/obj/item/radio/electropack name = "electropack" desc = "Dance my monkeys! DANCE!!!" icon_state = "electropack0" item_state = "electropack" obj_flags = OBJ_FLAG_CONDUCTABLE slot_flags = SLOT_BACK w_class = WEIGHT_CLASS_HUGE matter = list(DEFAULT_WALL_MATERIAL = 10000, MATERIAL_GLASS = 2500) var/code = 2 /obj/item/radio/electropack/Initialize() . = ..() set_frequency(1449) /obj/item/radio/electropack/attack_hand(mob/user as mob) if(src == user.back) to_chat(user, SPAN_NOTICE("You need help taking this off!")) return ..() /obj/item/radio/electropack/Topic(href, href_list) //..() if(usr.stat || usr.restrained()) return if(((istype(usr, /mob/living/carbon/human) && ((!(ROUND_IS_STARTED) || (SSticker.mode != "monkey")) && usr.contents.Find(src))) || (usr.contents.Find(master) || (in_range(src, usr) && istype(loc, /turf))))) usr.set_machine(src) 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 = min(100, code) code = max(1, code) else if(href_list["power"]) on = !( on ) icon_state = "electropack[on]" if(!( master )) if(istype(loc, /mob)) attack_self(loc) else for(var/mob/M in viewers(1, src)) if(M.client) attack_self(M) else if(istype(master.loc, /mob)) attack_self(master.loc) else for(var/mob/M in viewers(1, master)) if(M.client) attack_self(M) else usr << browse(null, "window=radio") return return /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) addtimer(CALLBACK(src, PROC_REF(update_move_recently)), 50 SECONDS) to_chat(M, SPAN_DANGER("You feel a sharp shock!")) spark(M, 3) M.Weaken(10) if(master && wires & 1) master.receive_signal() return /obj/item/radio/electropack/proc/update_move_recently() var/mob/M = loc if(M) M.moved_recently = 0 /obj/item/radio/electropack/attack_self(mob/user as mob, flag1) if(!istype(user, /mob/living/carbon/human)) return user.set_machine(src) var/dat = {" Turn [on ? "Off" : "On"]
Frequency/Code for electropack:
Frequency: - - [format_frequency(frequency)] + +
Code: - - [code] + +
"} user << browse(HTML_SKELETON(dat), "window=radio") onclose(user, "radio") return