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