/obj/item/device/radio/electropack name = "Electropack" desc = "Dance my monkeys! DANCE!!!" icon_state = "electropack0" var/code = 2 var/on = 0 var/e_pads = 0.0 g_amt = 2500 m_amt = 10000 frequency = 1449 w_class = 5.0 flags = 323 item_state = "electropack" /obj/item/device/radio/electropack/examine() set src in view() ..() if ((in_range(src, usr) || src.loc == usr)) if (src.e_pads) usr << "\blue The electric pads are exposed!" return /obj/item/device/radio/electropack/attack_paw(mob/user as mob) return src.attack_hand(user) return /obj/item/device/radio/electropack/attack_hand(mob/user as mob) if (src == user.back) user << "\blue You need help taking this off!" return else ..() return /obj/item/device/radio/electropack/attackby(obj/item/weapon/W as obj, mob/user as mob) ..() if (istype(W, /obj/item/weapon/screwdriver)) src.e_pads = !( src.e_pads ) if (src.e_pads) user.show_message("\blue The electric pads have been exposed!") else user.show_message("\blue The electric pads have been reinserted!") src.add_fingerprint(user) return else if (istype(W, /obj/item/clothing/head/helmet)) var/obj/item/assembly/shock_kit/A = new /obj/item/assembly/shock_kit( user ) A.icon = 'assemblies.dmi' W.loc = A A.part1 = W W.layer = initial(W.layer) if (user.client) user.client.screen -= W if (user.r_hand == W) user.u_equip(W) user.r_hand = A else user.u_equip(W) user.l_hand = A W.master = A src.master = A src.layer = initial(src.layer) user.u_equip(src) if (user.client) user.client.screen -= src src.loc = A A.part2 = src A.layer = 20 src.add_fingerprint(user) A.add_fingerprint(user) return /obj/item/device/radio/electropack/Topic(href, href_list) //..() if (usr.stat || usr.restrained()) return if (((istype(usr, /mob/living/carbon/human) && ((!( ticker ) || (ticker && ticker.mode != "monkey")) && usr.contents.Find(src))) || (usr.contents.Find(src.master) || (in_range(src, usr) && istype(src.loc, /turf))))) usr.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"]) src.code += text2num(href_list["code"]) src.code = round(src.code) src.code = min(100, src.code) src.code = max(1, src.code) else if (href_list["power"]) src.on = !( src.on ) src.icon_state = text("electropack[]", src.on) if (!( src.master )) if (istype(src.loc, /mob)) attack_self(src.loc) else for(var/mob/M in viewers(1, src)) if (M.client) src.attack_self(M) //Foreach goto(308) else if (istype(src.master.loc, /mob)) src.attack_self(src.master.loc) else for(var/mob/M in viewers(1, src.master)) if (M.client) src.attack_self(M) //Foreach goto(384) else usr << browse(null, "window=radio") return return /* /obj/item/device/radio/electropack/accept_rad(obj/item/device/radio/signaler/R as obj, message) if ((istype(R, /obj/item/device/radio/signaler) && R.frequency == src.frequency && R.code == src.code)) return 1 else return null return*/ /obj/item/device/radio/electropack/receive_signal(datum/signal/signal) if(!signal || (signal.encryption != code)) return if ((ismob(src.loc) && src.on)) var/mob/M = src.loc var/turf/T = M.loc if ((istype(T, /turf))) if (M.moved_recently && M.last_move) step(M, M.last_move) M.show_message("\red You feel a sharp shock!") var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread s.set_up(3, 1, M) s.start() if (M.weakened < 10) M.weakened = 10 if ((src.master && src.wires & 1)) src.master.receive_signal() return /obj/item/device/radio/electropack/attack_self(mob/user as mob, flag1) if (!( istype(user, /mob/living/carbon/human) )) return user.machine = src var/dat = {" Turn [src.on ? "Off" : "On"]
Frequency/Code for electropack:
Frequency: - - [format_frequency(src.frequency)] + +
Code: - - [src.code] + +
"} user << browse(dat, "window=radio") onclose(user, "radio") return