From 5b33027e6929d2bb9ff9b191abd6899f77258975 Mon Sep 17 00:00:00 2001 From: "petethegoat@gmail.com" Date: Sat, 15 Sep 2012 23:37:20 +0000 Subject: [PATCH] Fixes issue 865. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4694 316c924e-a436-60f5-8080-3fe189b3f50e --- .../items/devices/radio/electropack.dm | 155 +++++++----------- code/game/objects/structures/electricchair.dm | 26 +-- .../structures/stool_bed_chair_nest/chairs.dm | 21 +-- code/modules/assembly/shock_kit.dm | 56 +++---- 4 files changed, 106 insertions(+), 152 deletions(-) diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm index 9c13b43c7f0..1adf748901f 100644 --- a/code/game/objects/items/devices/radio/electropack.dm +++ b/code/game/objects/items/devices/radio/electropack.dm @@ -1,161 +1,124 @@ /obj/item/device/radio/electropack - name = "Electropack" + name = "electropack" desc = "Dance my monkeys! DANCE!!!" icon_state = "electropack0" - var/code = 2 - var/e_pads = 0.0 - g_amt = 2500 - m_amt = 10000 + item_state = "electropack" frequency = 1449 - w_class = 5.0 flags = FPRINT | CONDUCT | TABLEPASS slot_flags = SLOT_BACK - 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 + w_class = 5.0 + g_amt = 2500 + m_amt = 10000 + var/code = 2 /obj/item/device/radio/electropack/attack_hand(mob/user as mob) - - if (src == user.back) - user << "\blue You need help taking this off!" + if(src == user.back) + user << "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/clothing/head/helmet)) + if(!b_stat) + 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 (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 = 'icons/obj/assemblies.dmi' + user.drop_from_inventory(W) + W.loc = A + W.master = A + A.part1 = W - user.drop_from_inventory(W) - W.loc = A - W.master = A - A.part1 = W + user.drop_from_inventory(src) + loc = A + master = A + A.part2 = src - user.drop_from_inventory(src) - src.loc = A - src.master = A - A.part2 = src - - user.put_in_hands(A) - A.add_fingerprint(user) - return + user.put_in_hands(A) + A.add_fingerprint(user) /obj/item/device/radio/electropack/Topic(href, href_list) //..() - if (usr.stat || usr.restrained()) + 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))))) + if(((istype(usr, /mob/living/carbon/human) && ((!( ticker ) || (ticker && ticker.mode != "monkey")) && usr.contents.Find(src))) || (usr.contents.Find(master) || (in_range(src, usr) && istype(loc, /turf))))) usr.machine = src - if (href_list["freq"]) + 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) + 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"]) - src.on = !( src.on ) - src.icon_state = text("electropack[]", src.on) - if (!( src.master )) - if (istype(src.loc, /mob)) - attack_self(src.loc) + 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) - src.attack_self(M) - //Foreach goto(308) + if(M.client) + attack_self(M) else - if (istype(src.master.loc, /mob)) - src.attack_self(src.master.loc) + if(istype(master.loc, /mob)) + attack_self(master.loc) else - for(var/mob/M in viewers(1, src.master)) - if (M.client) - src.attack_self(M) - //Foreach goto(384) + for(var/mob/M in viewers(1, master)) + if(M.client) + attack_self(M) 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)) + if(!signal || signal.encryption != code) return - if ((ismob(src.loc) && src.on)) - - var/mob/M = src.loc + if(ismob(loc) && on) + var/mob/M = loc var/turf/T = M.loc - if ((istype(T, /turf))) - if (!M.moved_recently && M.last_move) + if(istype(T, /turf)) + if(!M.moved_recently && M.last_move) M.moved_recently = 1 step(M, M.last_move) - sleep 50 + sleep(50) if(M) M.moved_recently = 0 - M.show_message("\red You feel a sharp shock!") + M << "You feel a sharp shock!" var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, M) s.start() M.Weaken(10) - if ((src.master && src.wires & 1)) - src.master.receive_signal() + if(master && wires & 1) + master.receive_signal() return /obj/item/device/radio/electropack/attack_self(mob/user as mob, flag1) - if (!( istype(user, /mob/living/carbon/human) )) + if(!istype(user, /mob/living/carbon/human)) return user.machine = src var/dat = {" -Turn [src.on ? "Off" : "On"]
+Turn [on ? "Off" : "On"]
Frequency/Code for electropack:
Frequency: - -- [format_frequency(src.frequency)] +- [format_frequency(frequency)] + +
Code: - -- [src.code] +- [code] + +
"} diff --git a/code/game/objects/structures/electricchair.dm b/code/game/objects/structures/electricchair.dm index 950d7f8ca50..611f3df45eb 100644 --- a/code/game/objects/structures/electricchair.dm +++ b/code/game/objects/structures/electricchair.dm @@ -7,18 +7,18 @@ var/last_time = 1.0 /obj/structure/stool/bed/chair/e_chair/New() + ..() overlays += image('icons/obj/objects.dmi', src, "echair_over", MOB_LAYER + 1, dir) return /obj/structure/stool/bed/chair/e_chair/attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W, /obj/item/weapon/wrench)) - var/obj/structure/stool/bed/chair/C = new /obj/structure/stool/bed/chair(src.loc) - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) - C.dir = src.dir - src.part.loc = src.loc - src.part.master = null - src.part = null + var/obj/structure/stool/bed/chair/C = new /obj/structure/stool/bed/chair(loc) + playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) + C.dir = dir + part.loc = loc + part.master = null + part = null del(src) return return @@ -34,6 +34,7 @@ else on = 1 icon_state = "echair1" + usr << "You switch [on ? "on" : "off"] [src]." return /obj/structure/stool/bed/chair/e_chair/rotate() @@ -43,11 +44,11 @@ return /obj/structure/stool/bed/chair/e_chair/proc/shock() - if(!(src.on)) + if(!on) return - if((src.last_time + 50) > world.time) + if(last_time + 50 > world.time) return - src.last_time = world.time + last_time = world.time // special power handling var/area/A = get_area(src) @@ -65,12 +66,11 @@ s.start() if(buckled_mob) buckled_mob.burn_skin(85) - buckled_mob << "\red You feel a deep shock course through your body!" + buckled_mob << "You feel a deep shock course through your body!" sleep(1) buckled_mob.burn_skin(85) buckled_mob.Stun(600) - for(var/mob/M in hearers(src, null)) - M.show_message("\red The electric chair went off!.", 3, "\red You hear a deep sharp shock.", 2) + visible_message("The electric chair went off!", "You hear a deep sharp shock!") A.power_light = light A.updateicon() diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm index a0f4d164ac2..972bb244221 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm @@ -6,25 +6,26 @@ /obj/structure/stool/bed/chair/New() if(anchored) src.verbs -= /atom/movable/verb/pull - handle_rotation() ..() + spawn(3) //sorry. i don't think there's a better way to do this. + handle_rotation() return /obj/structure/stool/bed/chair/attackby(obj/item/weapon/W as obj, mob/user as mob) ..() if(istype(W, /obj/item/assembly/shock_kit)) + var/obj/item/assembly/shock_kit/SK = W + if(!SK.status) + user << "[SK] is not ready to be attached!" + return + user.drop_item() var/obj/structure/stool/bed/chair/e_chair/E = new /obj/structure/stool/bed/chair/e_chair(src.loc) playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) - E.dir = src.dir - E.part = W - W.loc = E - W.master = E - user.u_equip(W) - W.layer = initial(W.layer) + E.dir = dir + E.part = SK + SK.loc = E + SK.master = E del(src) - return - return - /obj/structure/stool/bed/chair/proc/handle_rotation() //making this into a seperate proc so office chairs can call it on Move() if(src.dir == NORTH) diff --git a/code/modules/assembly/shock_kit.dm b/code/modules/assembly/shock_kit.dm index 3c737ead595..880424e66bd 100644 --- a/code/modules/assembly/shock_kit.dm +++ b/code/modules/assembly/shock_kit.dm @@ -1,56 +1,46 @@ /obj/item/assembly/shock_kit - name = "Shock Kit" - desc = "This appears to be made from both an Electric Pack and a Helmet." + name = "electrohelmet assembly" + desc = "This appears to be made from both an electropack and a helmet." icon_state = "shock_kit" var/obj/item/clothing/head/helmet/part1 = null var/obj/item/device/radio/electropack/part2 = null - var/status = 0.0 + var/status = 0 w_class = 5.0 flags = FPRINT | TABLEPASS| CONDUCT /obj/item/assembly/shock_kit/Del() - //src.part1 = null - del(src.part1) - //src.part2 = null - del(src.part2) + del(part1) + del(part2) ..() return /obj/item/assembly/shock_kit/attackby(obj/item/weapon/W as obj, mob/user as mob) - ..() - if ((istype(W, /obj/item/weapon/wrench) && !( src.status ))) - var/turf/T = src.loc - if (ismob(T)) + if(istype(W, /obj/item/weapon/wrench) && !status) + var/turf/T = loc + if(ismob(T)) T = T.loc - src.part1.loc = T - src.part2.loc = T - src.part1.master = null - src.part2.master = null - src.part1 = null - src.part2 = null + part1.loc = T + part2.loc = T + part1.master = null + part2.master = null + part1 = null + part2 = null del(src) return - if (!( istype(W, /obj/item/weapon/screwdriver) )) - return - src.status = !( src.status ) - if (!src.status) - user.show_message("\blue The shock pack is now secured!", 1) - else - user.show_message("\blue The shock pack is now unsecured!", 1) - src.add_fingerprint(user) + if(istype(W, /obj/item/weapon/screwdriver)) + status = !status + user << "[src] is now [status ? "secured" : "unsecured"]!" + add_fingerprint(user) return /obj/item/assembly/shock_kit/attack_self(mob/user as mob) - src.part1.attack_self(user, src.status) - src.part2.attack_self(user, src.status) - src.add_fingerprint(user) + part1.attack_self(user, status) + part2.attack_self(user, status) + add_fingerprint(user) return /obj/item/assembly/shock_kit/receive_signal() - //***** - //world << "Shock kit got r_signal" - if (istype(src.loc, /obj/structure/stool/bed/chair/e_chair)) - var/obj/structure/stool/bed/chair/e_chair/C = src.loc - //world << "Shock kit sending shock to EC" + if(istype(loc, /obj/structure/stool/bed/chair/e_chair)) + var/obj/structure/stool/bed/chair/e_chair/C = loc C.shock() return