From 108e585cf1e2821d7df0d5d3f4982350a89ac359 Mon Sep 17 00:00:00 2001
From: kappa-sama <44128284+kappa-sama@users.noreply.github.com>
Date: Sat, 11 Jan 2020 12:25:38 -0500
Subject: [PATCH] shit
---
.../items/devices/radio/electropack.dm | 109 +++++++++---------
1 file changed, 55 insertions(+), 54 deletions(-)
diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm
index 5b13537a44..f9da35ec18 100644
--- a/code/game/objects/items/devices/radio/electropack.dm
+++ b/code/game/objects/items/devices/radio/electropack.dm
@@ -10,22 +10,23 @@
slot_flags = ITEM_SLOT_BACK
w_class = WEIGHT_CLASS_HUGE
materials = list(MAT_METAL=10000, MAT_GLASS=2500)
- var/on = TRUE
+
var/code = 2
var/frequency = FREQ_ELECTROPACK
- var/shock_cooldown = 0
+ var/on = TRUE
+ var/shock_cooldown = FALSE
-/obj/item/electropack/suicide_act(mob/user)
+/obj/item/electropack/suicide_act(mob/living/carbon/user)
user.visible_message("[user] hooks [user.p_them()]self to the electropack and spams the trigger! It looks like [user.p_theyre()] trying to commit suicide!")
return (FIRELOSS)
/obj/item/electropack/Initialize()
. = ..()
- SSradio.add_object(src, frequency, RADIO_SIGNALER)
+ set_frequency(frequency)
/obj/item/electropack/Destroy()
SSradio.remove_object(src, frequency)
- return ..()
+ . = ..()
//ATTACK HAND IGNORING PARENT RETURN VALUE
/obj/item/electropack/attack_hand(mob/user)
@@ -36,7 +37,7 @@
return
return ..()
-/obj/item/electropack/attackby(obj/item/W, mob/user, params)
+/obj/item/electropack/attackby(obj/item/W, mob/living/user, params)
if(istype(W, /obj/item/clothing/head/helmet))
var/obj/item/assembly/shock_kit/A = new /obj/item/assembly/shock_kit(user)
A.icon = 'icons/obj/assemblies.dmi'
@@ -57,43 +58,47 @@
return ..()
/obj/item/electropack/Topic(href, href_list)
- //..()
var/mob/living/carbon/C = usr
if(usr.stat || usr.restrained() || C.back == src)
return
- if((ishuman(usr) && usr.contents.Find(src)) || usr.contents.Find(master) || (in_range(src, usr) && isturf(loc)))
- usr.set_machine(src)
- if(href_list["freq"])
- SSradio.remove_object(src, frequency)
- frequency = sanitize_frequency(frequency + text2num(href_list["freq"]))
- SSradio.add_object(src, frequency, RADIO_SIGNALER)
- else
- if(href_list["code"])
- code += text2num(href_list["code"])
- code = round(code)
- code = min(100, code)
- code = max(1, code)
- else
- if(href_list["power"])
- on = !( on )
- icon_state = "electropack[on]"
- if(!( master ))
- if(ismob(loc))
- attack_self(loc)
- else
- for(var/mob/M in viewers(1, src))
- if(M.client)
- attack_self(M)
- else
- if(ismob(master.loc))
- attack_self(master.loc)
- else
- for(var/mob/M in viewers(1, master))
- if(M.client)
- attack_self(M)
- else
+
+ if(!usr.canUseTopic(src, BE_CLOSE))
usr << browse(null, "window=radio")
+ onclose(usr, "radio")
return
+
+ if(href_list["set"])
+ if(href_list["set"] == "freq")
+ var/new_freq = input(usr, "Input a new receiving frequency", "Electropack Frequency", format_frequency(frequency)) as num|null
+ if(!usr.canUseTopic(src, BE_CLOSE))
+ return
+ new_freq = unformat_frequency(new_freq)
+ new_freq = sanitize_frequency(new_freq, TRUE)
+ set_frequency(new_freq)
+
+ if(href_list["set"] == "code")
+ var/new_code = input(usr, "Input a new receiving code", "Electropack Code", code) as num|null
+ if(!usr.canUseTopic(src, BE_CLOSE))
+ return
+ new_code = round(new_code)
+ new_code = CLAMP(new_code, 1, 100)
+ code = new_code
+
+ if(href_list["set"] == "power")
+ if(!usr.canUseTopic(src, BE_CLOSE))
+ return
+ on = !(on)
+ icon_state = "electropack[on]"
+
+ if(usr)
+ attack_self(usr)
+
+ return
+
+/obj/item/electropack/proc/set_frequency(new_frequency)
+ SSradio.remove_object(src, frequency)
+ frequency = new_frequency
+ SSradio.add_object(src, frequency, RADIO_SIGNALER)
return
/obj/item/electropack/receive_signal(datum/signal/signal)
@@ -101,10 +106,10 @@
return
if(isliving(loc) && on)
- if(shock_cooldown != 0)
+ if(shock_cooldown == TRUE)
return
- shock_cooldown = 1
- addtimer(VARSET_CALLBACK(src, shock_cooldown, 0), 100)
+ shock_cooldown = TRUE
+ addtimer(VARSET_CALLBACK(src, shock_cooldown, FALSE), 100)
var/mob/living/L = loc
step(L, pick(GLOB.cardinals))
@@ -119,25 +124,21 @@
master.receive_signal()
return
-/obj/item/electropack/attack_self(mob/user)
-
+/obj/item/electropack/ui_interact(mob/user)
if(!ishuman(user))
return
+
user.set_machine(src)
- var/dat = {"Turned [on ? "On" : "Off"] -
-Toggle
+ var/dat = {"
+
+Turned [on ? "On" : "Off"] - Toggle
Frequency/Code for electropack:
Frequency:
--
-- [format_frequency(frequency)]
-+
-+
-
+[format_frequency(src.frequency)]
+Set
Code:
--
-- [code]
-+
-+
+[src.code]
+Set
"}
user << browse(dat, "window=radio")
onclose(user, "radio")