Merge pull request #5263 from Aranclanos/electropackrevamp

Electropack fixes
This commit is contained in:
Cheridan
2014-10-16 08:08:57 -05:00
8 changed files with 40 additions and 48 deletions
+4 -4
View File
@@ -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)
+1 -2
View File
@@ -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
+1 -1
View File
@@ -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(), \
@@ -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 << "<span class='notice'>[src] is not ready to be attached!</span>"
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 << "<span class='danger'>You feel a sharp shock!</span>"
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 = {"<TT>
<A href='?src=\ref[src];power=1'>Turn [on ? "Off" : "On"]</A><BR>
var/dat = {"<TT>Turned [on ? "On" : "Off"] -
<A href='?src=\ref[src];power=1'>Toggle</A><BR>
<B>Frequency/Code</B> for electropack:<BR>
Frequency:
<A href='byond://?src=\ref[src];freq=-10'>-</A>
@@ -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
@@ -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 << "<span class='warning'>You need 5 lengths of cable to rig [src].</span>"
return
else if(istype(W, /obj/item/device/radio/electropack))
else if(istype(W, /obj/item/device/electropack))
if(rigged)
user << "<span class='notice'>You attach [W] to [src].</span>"
user.drop_item()
@@ -15,9 +15,6 @@
..()
if(istype(W, /obj/item/assembly/shock_kit))
var/obj/item/assembly/shock_kit/SK = W
if(!SK.status)
user << "<span class='notice'>[SK] is not ready to be attached!</span>"
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)
+4 -8
View File
@@ -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 << "<span class='notice'>[src] is now [status ? "secured" : "unsecured"]!</span>"
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