mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-27 05:57:24 +01:00
Finally fixed the access stuff for medbay. It was a bug introduced by Doohl.
Also made electric chairs amazing, but the sprite needs work.
This commit is contained in:
+3
-1
@@ -650,7 +650,9 @@
|
||||
var/atom/movable/overlay/overl = null
|
||||
var/on = 0.0
|
||||
var/obj/item/assembly/shock_kit/part1 = null
|
||||
var/last_time = 1.0
|
||||
var/isshocking
|
||||
var/datum/effect/effect/system/spark_spread/spark = new /datum/effect/effect/system/spark_spread
|
||||
var/list/mob/living/affected = list()
|
||||
|
||||
/obj/structure/table
|
||||
name = "table"
|
||||
|
||||
@@ -147,7 +147,6 @@
|
||||
for(var/req in src.req_one_access)
|
||||
if(req in I.access) //has an access from the single access list
|
||||
return 1
|
||||
return 0
|
||||
for(var/req in src.req_access)
|
||||
if(!(req in I.access)) //doesn't have this access
|
||||
return 0
|
||||
@@ -164,7 +163,6 @@
|
||||
for(var/req in src.req_one_access)
|
||||
if(req in L) //has an access from the single access list
|
||||
return 1
|
||||
return 0
|
||||
for(var/req in src.req_access)
|
||||
if(!(req in L)) //doesn't have this access
|
||||
return 0
|
||||
|
||||
@@ -38,7 +38,6 @@ SYNDICATE UPLINK
|
||||
dat += "<BR>"
|
||||
dat += "<A href='byond://?src=\ref[src];buy_item=revolver'>Revolver</A> (6)<BR>"
|
||||
dat += "<A href='byond://?src=\ref[src];buy_item=revolver_ammo'>Ammo-357</A> for use with Revolver (2)<BR>"
|
||||
dat += "<A href='byond://?src=\ref[src];buy_item=suffocation_revolver_ammo'>Ammo-418</A> for use with Revolver (3)<BR>"
|
||||
dat += "<A href='byond://?src=\ref[src];buy_item=xbow'>Energy Crossbow</A> (5)<BR>"
|
||||
dat += "<A href='byond://?src=\ref[src];buy_item=sword'>Energy Sword</A> (4)<BR>"
|
||||
dat += "<BR>"
|
||||
@@ -99,10 +98,6 @@ SYNDICATE UPLINK
|
||||
if (src.uses >= 2)
|
||||
src.uses -= 2
|
||||
new /obj/item/ammo_magazine/a357(get_turf(src))
|
||||
if("suffocation_revolver_ammo")
|
||||
if (src.uses >= 3)
|
||||
src.uses -= 3
|
||||
new /obj/item/ammo_magazine/a418(get_turf(src))
|
||||
if("xbow")
|
||||
if (src.uses >= 5)
|
||||
src.uses -= 5
|
||||
|
||||
+38
-25
@@ -135,6 +135,7 @@
|
||||
src.overl.layer = 5
|
||||
src.overl.name = "electrified chair"
|
||||
src.overl.master = src
|
||||
spark.set_up(12, 1, src)
|
||||
return
|
||||
|
||||
/obj/structure/stool/chair/e_chair/Del()
|
||||
@@ -156,6 +157,14 @@
|
||||
//SN src = null
|
||||
del(src)
|
||||
return
|
||||
if(istype(W, /obj/item/device/assembly/signaler))
|
||||
var/obj/item/assembly/shock_kit/kit = src.part1
|
||||
var/obj/item/device/radio/electropack/target = kit.part2
|
||||
var/obj/item/device/assembly/signaler/S = W
|
||||
target.set_frequency(S.frequency)
|
||||
target.code = S.code
|
||||
for(var/mob/M in viewers(src, null))
|
||||
M.show_message("\red [user] has set the electric chair using the [W].")
|
||||
return
|
||||
|
||||
/obj/structure/stool/chair/e_chair/verb/toggle_power()
|
||||
@@ -165,6 +174,8 @@
|
||||
|
||||
if ((usr.stat || usr.restrained() || !( usr.canmove ) || usr.lying))
|
||||
return
|
||||
if(isshocking && on)
|
||||
shock()
|
||||
src.on = !( src.on )
|
||||
src.icon_state = text("e_chair[]", src.on)
|
||||
src.overl.icon_state = text("e_chairo[]", src.on)
|
||||
@@ -173,37 +184,39 @@
|
||||
/obj/structure/stool/chair/e_chair/proc/shock()
|
||||
if (!( src.on ))
|
||||
return
|
||||
if ( (src.last_time + 50) > world.time)
|
||||
if(isshocking)
|
||||
processing_objects.Remove(src)
|
||||
src.icon_state = text("e_chair[]", src.on)
|
||||
src.overl.icon_state = text("e_chairo[]", src.on)
|
||||
for(var/mob/living/M in affected)
|
||||
M.jitteriness = 0
|
||||
M.is_jittery = 0
|
||||
M.anchored = 0
|
||||
affected.Remove(M)
|
||||
isshocking = 0
|
||||
return
|
||||
else
|
||||
src.icon_state = "e_chairs"
|
||||
src.overl.icon_state = "e_chairos"
|
||||
spark.start()
|
||||
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)
|
||||
processing_objects.Add(src)
|
||||
isshocking = 1
|
||||
return
|
||||
src.last_time = world.time
|
||||
|
||||
/obj/structure/stool/chair/e_chair/process()
|
||||
// special power handling
|
||||
var/area/A = get_area(src)
|
||||
if(!isarea(A))
|
||||
return
|
||||
if(!A.powered(EQUIP))
|
||||
return
|
||||
A.use_power(EQUIP, 5000)
|
||||
var/light = A.power_light
|
||||
A.updateicon()
|
||||
|
||||
flick("e_chairs", src)
|
||||
flick("e_chairos", src.overl)
|
||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||
s.set_up(12, 1, src)
|
||||
s.start()
|
||||
if(isarea(A) && A.powered(EQUIP))
|
||||
A.use_power(EQUIP, 5000)
|
||||
for(var/mob/living/M in src.loc)
|
||||
M.burn_skin(85)
|
||||
M << "\red <B>You feel a deep shock course through your body!</B>"
|
||||
sleep(1)
|
||||
M.burn_skin(85)
|
||||
affected.Add(M)
|
||||
M.make_jittery(1000)
|
||||
M.anchored = 1
|
||||
M.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)
|
||||
|
||||
A.power_light = light
|
||||
A.updateicon()
|
||||
return
|
||||
M.burn_skin(10)
|
||||
spark.start()
|
||||
|
||||
/obj/structure/stool/chair/ex_act(severity)
|
||||
unbuckle_all()
|
||||
|
||||
@@ -115,8 +115,25 @@
|
||||
if(1)
|
||||
usr << "\red [src.name] appears to have bitten [t_his] tongue off!"
|
||||
|
||||
var/distance = get_dist(usr,src)
|
||||
if(istype(usr, /mob/dead/observer) || usr.stat == 2) // ghosts can see anything
|
||||
distance = 1
|
||||
|
||||
if (src.stat == 1 || stat == 2)
|
||||
usr << "\red [name] doesn't seem to be responding to anything around [t_him], [t_his] eyes closed as though asleep."
|
||||
if((health < 0 || stat == 1) && distance <= 3)
|
||||
usr << "\red [name] does not appear to be breathing."
|
||||
if(istype(usr, /mob/living/carbon/human) && usr.stat == 0 && src.stat == 1 && distance <= 1)
|
||||
for(var/mob/O in viewers(usr.loc, null))
|
||||
O.show_message("[usr] checks [src]'s pulse.", 1)
|
||||
usr << "\blue [name] has a pulse!"
|
||||
|
||||
if (src.stat == 2 || (changeling && changeling.changeling_fakedeath == 1))
|
||||
usr << "\red [src] is limp and unresponsive, a dull lifeless look in [t_his] eyes."
|
||||
if(distance <= 1)
|
||||
if(istype(usr, /mob/living/carbon/human) && usr.stat == 0)
|
||||
for(var/mob/O in viewers(usr.loc, null))
|
||||
O.show_message("[usr] checks [src]'s pulse.", 1)
|
||||
usr << "\red [name] has no pulse!"
|
||||
else
|
||||
if (src.getBruteLoss())
|
||||
if (src.getBruteLoss() < 30)
|
||||
@@ -144,8 +161,6 @@
|
||||
else
|
||||
usr << "\blue [src.name] looks quite chubby."
|
||||
|
||||
if (src.stat == 1)
|
||||
usr << "\red [src.name] doesn't seem to be responding to anything around [t_him], [t_his] eyes closed as though asleep."
|
||||
else if (src.brainloss >= 60)
|
||||
usr << "\red [src.name] has a stupid expression on [t_his] face."
|
||||
if (!src.client)
|
||||
|
||||
@@ -65,6 +65,8 @@
|
||||
if(!special_check(user)) return
|
||||
if(!load_into_chamber())
|
||||
user << "\red *click*";
|
||||
for(var/mob/M in orange(4,src.loc))
|
||||
M.show_message("*click, click*")
|
||||
return
|
||||
|
||||
if(!in_chamber) return
|
||||
|
||||
Reference in New Issue
Block a user