mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-31 07:57:47 +01:00
Merge pull request #4491 from IK3I/Sleeper-death-fix
Makes occupied machines not delete you when destroyed
This commit is contained in:
@@ -73,6 +73,7 @@
|
||||
if(M.environment_smash)
|
||||
M.do_attack_animation(src)
|
||||
visible_message("<span class='danger'>[M.name] smashes [src] apart!</span>")
|
||||
go_out()
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
@@ -354,15 +355,21 @@
|
||||
to_chat(occupant, "<span class='notice'>You no longer feel reliant on [R.name]!</span>")
|
||||
occupant.reagents.addiction_list.Remove(R)
|
||||
|
||||
for(var/mob/M as mob in src) // makes sure that simple mobs don't get stuck inside a sleeper when they resist out of occupant's grasp
|
||||
if(M == occupant)
|
||||
continue
|
||||
else
|
||||
M.forceMove(src.loc)
|
||||
|
||||
updateDialog()
|
||||
return
|
||||
|
||||
|
||||
/obj/machinery/sleeper/blob_act()
|
||||
if(prob(75))
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.forceMove(src.loc)
|
||||
A.blob_act()
|
||||
var/atom/movable/A = occupant
|
||||
go_out()
|
||||
A.blob_act()
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
@@ -404,11 +411,14 @@
|
||||
orient = "RIGHT"
|
||||
dir = 4
|
||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||
return
|
||||
|
||||
if(exchange_parts(user, G))
|
||||
return
|
||||
|
||||
default_deconstruction_crowbar(G)
|
||||
if(istype(G, /obj/item/weapon/crowbar))
|
||||
default_deconstruction_crowbar(G)
|
||||
return
|
||||
|
||||
if(istype(G, /obj/item/weapon/grab))
|
||||
if(panel_open)
|
||||
@@ -453,24 +463,23 @@
|
||||
if(1.0)
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.forceMove(src.loc)
|
||||
ex_act(severity)
|
||||
A.ex_act(severity)
|
||||
qdel(src)
|
||||
return
|
||||
if(2.0)
|
||||
if(prob(50))
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.forceMove(src.loc)
|
||||
ex_act(severity)
|
||||
A.ex_act(severity)
|
||||
qdel(src)
|
||||
return
|
||||
if(3.0)
|
||||
if(prob(25))
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.forceMove(src.loc)
|
||||
ex_act(severity)
|
||||
A.ex_act(severity)
|
||||
qdel(src)
|
||||
return
|
||||
return
|
||||
|
||||
/obj/machinery/sleeper/emp_act(severity)
|
||||
if(filtering)
|
||||
|
||||
@@ -19,6 +19,13 @@
|
||||
else
|
||||
set_light(0)
|
||||
|
||||
/obj/machinery/bodyscanner/process()
|
||||
for(var/mob/M as mob in src) // makes sure that simple mobs don't get stuck inside a sleeper when they resist out of occupant's grasp
|
||||
if(M == occupant)
|
||||
continue
|
||||
else
|
||||
M.forceMove(src.loc)
|
||||
|
||||
/obj/machinery/bodyscanner/New()
|
||||
..()
|
||||
component_parts = list()
|
||||
@@ -59,11 +66,14 @@
|
||||
else
|
||||
dir = 4
|
||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||
return
|
||||
|
||||
if(exchange_parts(user, G))
|
||||
return
|
||||
|
||||
default_deconstruction_crowbar(G)
|
||||
if(istype(G, /obj/item/weapon/crowbar))
|
||||
default_deconstruction_crowbar(G)
|
||||
return
|
||||
|
||||
if(istype(G, /obj/item/weapon/grab))
|
||||
var/obj/item/weapon/grab/TYPECAST_YOUR_SHIT = G
|
||||
@@ -161,39 +171,40 @@
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.loc = src.loc
|
||||
ex_act(severity)
|
||||
//Foreach goto(35)
|
||||
//SN src = null
|
||||
A.forceMove(src.loc)
|
||||
A.ex_act(severity)
|
||||
qdel(src)
|
||||
return
|
||||
if(2.0)
|
||||
if (prob(50))
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.loc = src.loc
|
||||
ex_act(severity)
|
||||
//Foreach goto(108)
|
||||
//SN src = null
|
||||
A.forceMove(src.loc)
|
||||
A.ex_act(severity)
|
||||
qdel(src)
|
||||
return
|
||||
if(3.0)
|
||||
if (prob(25))
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.loc = src.loc
|
||||
ex_act(severity)
|
||||
//Foreach goto(181)
|
||||
//SN src = null
|
||||
A.forceMove(src.loc)
|
||||
A.ex_act(severity)
|
||||
qdel(src)
|
||||
return
|
||||
else
|
||||
return
|
||||
|
||||
/obj/machinery/bodyscanner/blob_act()
|
||||
if(prob(50))
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.loc = src.loc
|
||||
var/atom/movable/A = occupant
|
||||
go_out()
|
||||
A.blob_act()
|
||||
qdel(src)
|
||||
|
||||
/obj/machinery/bodyscanner/attack_animal(var/mob/living/simple_animal/M)//Stop putting hostile mobs in things guise
|
||||
if(M.environment_smash)
|
||||
M.do_attack_animation(src)
|
||||
visible_message("<span class='danger'>[M.name] smashes [src] apart!</span>")
|
||||
go_out()
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/machinery/body_scanconsole
|
||||
var/obj/machinery/bodyscanner/connected
|
||||
var/delete
|
||||
@@ -249,6 +260,13 @@
|
||||
if(prob(50))
|
||||
qdel(src)
|
||||
|
||||
/obj/machinery/body_scanconsole/attack_animal(var/mob/living/simple_animal/M)//Stop putting hostile mobs in things guise
|
||||
if(M.environment_smash)
|
||||
M.do_attack_animation(src)
|
||||
visible_message("<span class='danger'>[M.name] smashes [src] apart!</span>")
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/machinery/body_scanconsole/proc/findscanner()
|
||||
var/obj/machinery/bodyscanner/bodyscannernew = null
|
||||
// Loop through every direction
|
||||
|
||||
@@ -54,8 +54,52 @@
|
||||
|
||||
if(src.occupant)
|
||||
process_occupant()
|
||||
|
||||
for(var/mob/M as mob in src) // makes sure that simple mobs don't get stuck inside a sleeper when they resist out of occupant's grasp
|
||||
if(M == occupant)
|
||||
continue
|
||||
else
|
||||
M.forceMove(src.loc)
|
||||
return 1
|
||||
|
||||
/obj/machinery/recharge_station/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.forceMove(src.loc)
|
||||
A.ex_act(severity)
|
||||
qdel(src)
|
||||
return
|
||||
if(2.0)
|
||||
if (prob(50))
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.forceMove(src.loc)
|
||||
A.ex_act(severity)
|
||||
qdel(src)
|
||||
return
|
||||
if(3.0)
|
||||
if (prob(25))
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.forceMove(src.loc)
|
||||
A.ex_act(severity)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/machinery/recharge_station/blob_act()
|
||||
if(prob(50))
|
||||
var/atom/movable/A = occupant
|
||||
go_out()
|
||||
A.blob_act()
|
||||
qdel(src)
|
||||
|
||||
/obj/machinery/recharge_station/attack_animal(var/mob/living/simple_animal/M)//Stop putting hostile mobs in things guise
|
||||
if(M.environment_smash)
|
||||
M.do_attack_animation(src)
|
||||
visible_message("<span class='danger'>[M.name] smashes [src] apart!</span>")
|
||||
go_out()
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/machinery/recharge_station/Bumped(var/mob/AM)
|
||||
move_inside(AM)
|
||||
|
||||
|
||||
@@ -299,7 +299,7 @@
|
||||
return
|
||||
|
||||
/mob/living/simple_animal/hostile/proc/FindHidden()
|
||||
if(istype(target.loc, /obj/structure/closet) || istype(target.loc, /obj/machinery/disposal) || istype(target.loc, /obj/machinery/sleeper))
|
||||
if(istype(target.loc, /obj/structure/closet) || istype(target.loc, /obj/machinery/disposal) || istype(target.loc, /obj/machinery/sleeper) || istype(target.loc, /obj/machinery/bodyscanner) || istype(target.loc, /obj/machinery/recharge_station))
|
||||
var/atom/A = target.loc
|
||||
Goto(A,move_to_delay,minimum_distance)
|
||||
if(A.Adjacent(src))
|
||||
|
||||
Reference in New Issue
Block a user