Adds borg chargers to the list of fixed things

Also takes some code suggestions into account and clears up some edge
cases *cough*drones and diona*cough*
This commit is contained in:
IK3I
2016-05-23 14:33:55 -05:00
parent 3b29f033cb
commit 454f5d755a
4 changed files with 78 additions and 20 deletions
+16 -9
View File
@@ -355,13 +355,19 @@
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))
var/atom/movable/A = src.occupant
var/atom/movable/A = occupant
go_out()
A.blob_act()
qdel(src)
@@ -453,26 +459,27 @@
/obj/machinery/sleeper/ex_act(severity)
if(filtering)
toggle_filter()
var/mob/M = src.occupant
switch(severity)
if(1.0)
go_out()
M.ex_act(severity)
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))
go_out()
M.ex_act(severity)
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))
go_out()
M.ex_act(severity)
for(var/atom/movable/A as mob|obj in src)
A.forceMove(src.loc)
A.ex_act(severity)
qdel(src)
return
return
/obj/machinery/sleeper/emp_act(severity)
if(filtering)
+17 -10
View File
@@ -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()
@@ -161,31 +168,31 @@
return
/obj/machinery/bodyscanner/ex_act(severity)
var/mob/M = src.occupant
switch(severity)
if(1.0)
go_out()
M.ex_act(severity)
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))
go_out()
M.ex_act(severity)
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))
go_out()
M.ex_act(severity)
for(var/atom/movable/A as mob|obj in src)
A.forceMove(src.loc)
A.ex_act(severity)
qdel(src)
return
else
return
/obj/machinery/bodyscanner/blob_act()
if(prob(50))
var/atom/movable/A = src.occupant
var/atom/movable/A = occupant
go_out()
A.blob_act()
qdel(src)
+44
View File
@@ -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) || istype(target.loc, /obj/machinery/bodyscanner))
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))