/obj/item/radio/electropack name = "electropack" desc = "Dance my monkeys! DANCE!!!" icon_state = "electropack0" item_state = "electropack" frequency = AIRLOCK_FREQ flags = CONDUCT slot_flags = SLOT_BACK w_class = WEIGHT_CLASS_HUGE materials = list(MAT_METAL=10000, MAT_GLASS=2500) var/code = 2 is_special = 1 /obj/item/radio/electropack/attack_hand(mob/user as mob) if(src == user.back) to_chat(user, "You need help taking this off!") return 0 . = ..() /obj/item/radio/electropack/Destroy() if(istype(src.loc, /obj/item/assembly/shock_kit)) var/obj/item/assembly/shock_kit/S = src.loc if(S.part1 == src) S.part1 = null else if(S.part2 == src) S.part2 = null master = null return ..() /obj/item/radio/electropack/attackby(obj/item/W as obj, mob/user as mob, params) ..() if(istype(W, /obj/item/clothing/head/helmet)) if(!b_stat) to_chat(user, "[src] is not ready to be attached!") return var/obj/item/assembly/shock_kit/A = new /obj/item/assembly/shock_kit( user ) A.icon = 'icons/obj/assemblies.dmi' if(!user.unEquip(W)) to_chat(user, "\the [W] is stuck to your hand, you cannot attach it to \the [src]!") return W.loc = A W.master = A A.part1 = W user.unEquip(src) loc = A master = A A.part2 = src user.put_in_hands(A) A.add_fingerprint(user) if(src.flags & NODROP) A.flags |= NODROP /obj/item/radio/electropack/Topic(href, href_list) if(..()) return 1 if(href_list["freq"]) var/new_frequency = sanitize_frequency(frequency + text2num(href_list["freq"])) set_frequency(new_frequency) else if(href_list["code"]) code += text2num(href_list["code"]) code = round(code) code = Clamp(code, 1, 100) else if(href_list["power"]) on = !on add_fingerprint(usr) /obj/item/radio/electropack/receive_signal(datum/signal/signal) if(!signal || signal.encryption != code) return if(ismob(loc) && on) var/mob/M = loc var/turf/T = M.loc if(istype(T, /turf)) if(!M.moved_recently && M.last_move) M.moved_recently = 1 step(M, M.last_move) sleep(50) if(M) M.moved_recently = 0 to_chat(M, "You feel a sharp shock!") do_sparks(3, 1, M) M.Weaken(5) if(master) master.receive_signal() return /obj/item/radio/electropack/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) ui = new(user, src, ui_key, "radio_electro.tmpl", "[name]", 400, 500) ui.open() ui.set_auto_update(1) /obj/item/radio/electropack/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state) var/data[0] data["power"] = on data["freq"] = format_frequency(frequency) data["code"] = code return data