diff --git a/_maps/map_files/tgstation.2.1.3.dmm b/_maps/map_files/tgstation.2.1.3.dmm index 56c66067fb4..45f56905361 100644 --- a/_maps/map_files/tgstation.2.1.3.dmm +++ b/_maps/map_files/tgstation.2.1.3.dmm @@ -477,7 +477,7 @@ "aji" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating,/area/security/processing) "ajj" = (/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/security/processing) "ajk" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/hydroponics/soil,/obj/item/device/analyzer/plant_analyzer,/obj/machinery/camera{c_tag = "Prison Common Room"; network = list("SS13","Prison")},/turf/simulated/floor{dir = 5; icon_state = "green"},/area/security/prison) -"ajl" = (/obj/structure/table,/obj/item/device/radio/electropack,/turf/simulated/floor,/area/security/transfer) +"ajl" = (/obj/structure/table,/obj/item/device/electropack,/turf/simulated/floor,/area/security/transfer) "ajm" = (/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/plating,/area/security/prison) "ajn" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/prison) "ajo" = (/obj/machinery/door/window/brigdoor{id = "Cell 1"; name = "Cell 1"; req_access_txt = "2"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "red"},/area/security/brig) @@ -5029,7 +5029,7 @@ "bSK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "xenobio8"; name = "containment blast door"},/turf/simulated/floor/engine,/area/toxins/xenobiology) "bSL" = (/obj/structure/closet/l3closet/scientist{pixel_x = -2},/turf/simulated/floor,/area/toxins/misc_lab) "bSM" = (/obj/structure/stool,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/misc_lab) -"bSN" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/obj/item/device/radio/electropack,/obj/item/device/healthanalyzer,/obj/item/device/assembly/signaler,/turf/simulated/floor,/area/toxins/misc_lab) +"bSN" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/obj/item/device/electropack,/obj/item/device/healthanalyzer,/obj/item/device/assembly/signaler,/turf/simulated/floor,/area/toxins/misc_lab) "bSO" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold"; initialize_directions = 11; level = 2},/turf/simulated/floor/engine,/area/toxins/misc_lab) "bSP" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold"; level = 2},/turf/simulated/floor/engine,/area/toxins/misc_lab) "bSQ" = (/obj/machinery/atmospherics/pipe/manifold{icon_state = "manifold"; level = 2},/turf/simulated/floor/engine,/area/toxins/misc_lab) @@ -7427,7 +7427,7 @@ "cMQ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/syringe/lethal/choral,/obj/item/weapon/reagent_containers/syringe/lethal{pixel_y = 4},/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) "cMR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/tcommsat/chamber) "cMS" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/simulated/floor/airless,/area/tcommsat/chamber) -"cMT" = (/obj/structure/table,/obj/item/device/radio/electropack,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber) +"cMT" = (/obj/structure/table,/obj/item/device/electropack,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber) "cMU" = (/obj/structure/table,/obj/item/weapon/hemostat,/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) "cMV" = (/obj/structure/table,/obj/item/weapon/circular_saw,/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) "cMW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcommsat/chamber) @@ -8171,7 +8171,7 @@ "dbg" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/mine/abandoned) "dbh" = (/obj/machinery/atmospherics/pipe/tank/air,/turf/simulated/floor{dir = 5; icon_state = "yellow"},/area/ai_monitored/storage/secure) "dbi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall/r_wall,/area/ai_monitored/storage/secure) -"dbj" = (/obj/structure/table,/obj/item/device/radio/electropack,/turf/simulated/floor{icon_state = "whitehall"; dir = 2},/area/security/prison) +"dbj" = (/obj/structure/table,/obj/item/device/electropack,/turf/simulated/floor{icon_state = "whitehall"; dir = 2},/area/security/prison) "dbk" = (/obj/item/weapon/shard,/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/mine/abandoned) "dbl" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/mine/abandoned) "dbm" = (/obj/structure/table,/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 48bc30e5b41..0d5a26dba65 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -8,7 +8,6 @@ var/throwing = 0 var/throw_speed = 2 var/throw_range = 7 - var/moved_recently = 0 var/mob/pulledby = null var/languages = 0 //For say() and Hear() glide_size = 8 @@ -130,7 +129,7 @@ src.throwing = 0 if(isobj(src)) src.throw_impact(get_turf(src)) - + return 1 diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index 75ecaf82613..401410e2040 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -55,7 +55,7 @@ var/global/list/autolathe_recipes = list( \ var/global/list/autolathe_recipes_hidden = list( \ new /obj/item/weapon/flamethrower/full(), \ new /obj/item/weapon/rcd(), \ - new /obj/item/device/radio/electropack(), \ + new /obj/item/device/electropack(), \ new /obj/item/weapon/weldingtool/largetank(), \ new /obj/item/weapon/restraints/handcuffs(), \ new /obj/item/ammo_box/a357(), \ diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm index fe503966e2a..147eceec49a 100644 --- a/code/game/objects/items/devices/radio/electropack.dm +++ b/code/game/objects/items/devices/radio/electropack.dm @@ -1,24 +1,27 @@ -/obj/item/device/radio/electropack +/obj/item/device/electropack name = "electropack" desc = "Dance my monkeys! DANCE!!!" + icon = 'icons/obj/radio.dmi' icon_state = "electropack0" item_state = "electropack" - frequency = 1449 flags = CONDUCT slot_flags = SLOT_BACK w_class = 5.0 g_amt = 2500 m_amt = 10000 + var/on = 1 var/code = 2 + var/frequency = 1449 + var/shock_cooldown = 0 -/obj/item/device/radio/electropack/initialize() +/obj/item/device/electropack/initialize() radio_controller.add_object(src, frequency, RADIO_CHAT) -/obj/item/device/radio/electropack/New() +/obj/item/device/electropack/New() if(radio_controller) radio_controller.add_object(src, frequency, RADIO_CHAT) -/obj/item/device/radio/electropack/attack_hand(mob/user) +/obj/item/device/electropack/attack_hand(mob/user) if(iscarbon(user)) var/mob/living/carbon/C = user if(src == C.back) @@ -26,12 +29,9 @@ return ..() -/obj/item/device/radio/electropack/attackby(obj/item/weapon/W as obj, mob/user as mob) +/obj/item/device/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' @@ -52,15 +52,16 @@ if(src.flags & NODROP) A.flags |= NODROP -/obj/item/device/radio/electropack/Topic(href, href_list) +/obj/item/device/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(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) + radio_controller.remove_object(src, frequency) + frequency = sanitize_frequency(frequency + text2num(href_list["freq"])) + radio_controller.add_object(src, frequency, RADIO_CHAT) else if(href_list["code"]) code += text2num(href_list["code"]) @@ -90,20 +91,19 @@ return return -/obj/item/device/radio/electropack/receive_signal(datum/signal/signal) +/obj/item/device/electropack/receive_signal(datum/signal/signal) if(!signal || signal.encryption != code) return if(ismob(loc) && on) + if(shock_cooldown != 0) + return + shock_cooldown = 1 + spawn(100) + shock_cooldown = 0 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 + step(M, pick(cardinal)) + 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) @@ -111,17 +111,17 @@ M.Weaken(5) - if(master && !isWireCut(WIRE_SIGNAL)) + if(master) master.receive_signal() return -/obj/item/device/radio/electropack/attack_self(mob/user as mob, flag1) +/obj/item/device/electropack/attack_self(mob/user) if(!istype(user, /mob/living/carbon/human)) return user.set_machine(src) - var/dat = {" -Turn [on ? "Off" : "On"]
+ var/dat = {"Turned [on ? "On" : "Off"] - +Toggle
Frequency/Code for electropack:
Frequency: - diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index fa3032ad889..896b0408417 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -135,9 +135,9 @@ ..() sleep(2) new /obj/item/device/assembly/signaler(src) - new /obj/item/device/radio/electropack(src) - new /obj/item/device/radio/electropack(src) - new /obj/item/device/radio/electropack(src) + new /obj/item/device/electropack(src) + new /obj/item/device/electropack(src) + new /obj/item/device/electropack(src) return diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index bdf97295bab..7a91f06455c 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -273,7 +273,7 @@ if(opened) close() else - if(rigged && locate(/obj/item/device/radio/electropack) in src) + if(rigged && locate(/obj/item/device/electropack) in src) if(isliving(user)) var/mob/living/L = user if(L.electrocute_act(17, src)) @@ -346,7 +346,7 @@ else user << "You need 5 lengths of cable to rig [src]." return - else if(istype(W, /obj/item/device/radio/electropack)) + else if(istype(W, /obj/item/device/electropack)) if(rigged) user << "You attach [W] to [src]." user.drop_item() 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 9053517eb9a..8838ba46f78 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm @@ -15,9 +15,6 @@ ..() 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) diff --git a/code/modules/assembly/shock_kit.dm b/code/modules/assembly/shock_kit.dm index 84825acd7e3..b1c79da69d4 100644 --- a/code/modules/assembly/shock_kit.dm +++ b/code/modules/assembly/shock_kit.dm @@ -4,8 +4,7 @@ icon = 'icons/obj/assemblies.dmi' icon_state = "shock_kit" var/obj/item/clothing/head/helmet/part1 = null - var/obj/item/device/radio/electropack/part2 = null - var/status = 0 + var/obj/item/device/electropack/part2 = null w_class = 5.0 flags = CONDUCT @@ -16,7 +15,7 @@ return /obj/item/assembly/shock_kit/attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W, /obj/item/weapon/wrench) && !status) + if(istype(W, /obj/item/weapon/wrench)) var/turf/T = loc if(ismob(T)) T = T.loc @@ -28,15 +27,12 @@ part2 = null qdel(src) return - 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) - part1.attack_self(user, status) - part2.attack_self(user, status) + part1.attack_self(user) + part2.attack_self(user) add_fingerprint(user) return