diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm
index 6a579a37ed4..307ce09d7f1 100644
--- a/code/game/atoms_movable.dm
+++ b/code/game/atoms_movable.dm
@@ -28,11 +28,10 @@
src.throw_impact(A)
src.throwing = 0
- spawn( 0 )
- if ((A && yes))
- A.last_bumped = world.time
- A.Bumped(src)
- return
+ if ((A && yes))
+ A.last_bumped = world.time
+ A.Bumped(src)
+ return
..()
return
diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm
index 385c21f5f3c..53028eaa34e 100644
--- a/code/game/machinery/rechargestation.dm
+++ b/code/game/machinery/rechargestation.dm
@@ -2,181 +2,161 @@
name = "cyborg recharging station"
icon = 'icons/obj/objects.dmi'
icon_state = "borgcharger0"
- density = 1
+ density = 0
anchored = 1.0
use_power = 1
idle_power_usage = 5
active_power_usage = 1000
- var/mob/occupant = null
+ var/mob/living/silicon/robot/occupant = null
+ var/open = 1
- New()
- ..()
- build_icon()
+/obj/machinery/recharge_station/New()
+ ..()
+ build_icon()
- process()
- if(!(NOPOWER|BROKEN))
- return
-
- if(src.occupant)
- process_occupant()
- return 1
-
-
- allow_drop()
- return 0
-
-
- relaymove(mob/user as mob)
- if(user.stat)
- return
- src.go_out()
+/obj/machinery/recharge_station/process()
+ if(!(NOPOWER|BROKEN))
return
- emp_act(severity)
- if(stat & (BROKEN|NOPOWER))
- ..(severity)
- return
- if(occupant)
- occupant.emp_act(severity)
- go_out()
- ..(severity)
-
- proc
- build_icon()
- if(NOPOWER|BROKEN)
- if(src.occupant)
- icon_state = "borgcharger1"
- else
- icon_state = "borgcharger0"
- else
- icon_state = "borgcharger0"
-
+ if(src.occupant)
process_occupant()
- if(src.occupant)
- if (istype(occupant, /mob/living/silicon/robot))
- var/mob/living/silicon/robot/R = occupant
- restock_modules()
- if(!R.cell)
- return
- else if(R.cell.charge >= R.cell.maxcharge)
- R.cell.charge = R.cell.maxcharge
- return
- else
- R.cell.charge = min(R.cell.charge + 200, R.cell.maxcharge)
- return
+ return 1
- go_out()
- if(!( src.occupant ))
- return
- //for(var/obj/O in src)
- // O.loc = src.loc
- if (src.occupant.client)
- src.occupant.client.eye = src.occupant.client.mob
- src.occupant.client.perspective = MOB_PERSPECTIVE
- src.occupant.loc = src.loc
- src.occupant = null
- build_icon()
- src.use_power = 1
- return
+/obj/machinery/recharge_station/allow_drop()
+ return 0
+
+
+/obj/machinery/recharge_station/relaymove(mob/user as mob)
+ if(user.stat)
+ return
+ open()
+
+/obj/machinery/recharge_station/emp_act(severity)
+ if(stat & (BROKEN|NOPOWER))
+ ..(severity)
+ return
+ if(occupant)
+ occupant.emp_act(severity)
+ open()
+ ..(severity)
+
+/obj/machinery/recharge_station/attack_paw(user as mob)
+ return attack_hand(user)
+
+/obj/machinery/recharge_station/attack_ai(user as mob)
+ return attack_hand(user)
+
+/obj/machinery/recharge_station/attack_hand(mob/user)
+ if(..()) return
+ toggle_open()
+ add_fingerprint(user)
+
+/obj/machinery/recharge_station/proc/toggle_open()
+ if(open)
+ close()
+ else
+ open()
+
+/obj/machinery/recharge_station/proc/open()
+ if(occupant)
+ if (occupant.client)
+ occupant.client.eye = occupant
+ occupant.client.perspective = MOB_PERSPECTIVE
+ occupant.loc = loc
+ occupant = null
+ use_power = 1
+ open = 1
+ density = 0
+ build_icon()
+
+/obj/machinery/recharge_station/proc/close()
+ for(var/mob/living/silicon/robot/R in loc)
+ R.stop_pulling()
+ if(R.client)
+ R.client.eye = src
+ R.client.perspective = EYE_PERSPECTIVE
+ R.loc = src
+ occupant = R
+ use_power = 2
+ add_fingerprint(R)
+ break
+ open = 0
+ density = 1
+ build_icon()
+
+/obj/machinery/recharge_station/proc/build_icon()
+ if(NOPOWER|BROKEN)
+ if(open)
+ icon_state = "borgcharger0"
+ else
+ if(occupant)
+ icon_state = "borgcharger1"
+ else
+ icon_state = "borgcharger2"
+ else
+ icon_state = "borgcharger0"
+
+/obj/machinery/recharge_station/proc/process_occupant()
+ if(occupant)
restock_modules()
- if(src.occupant)
- if(istype(occupant, /mob/living/silicon/robot))
- var/mob/living/silicon/robot/R = occupant
- if(R.module && R.module.modules)
- var/list/um = R.contents|R.module.modules
- // ^ makes sinle list of active (R.contents) and inactive modules (R.module.modules)
- for(var/obj/O in um)
- // Engineering
- if(istype(O,/obj/item/stack/sheet/metal) || istype(O,/obj/item/stack/sheet/rglass) || istype(O,/obj/item/stack/rods) || istype(O,/obj/item/weapon/cable_coil))
- if(O:amount < 50)
- O:amount += 1
- // Security
- if(istype(O,/obj/item/device/flash))
- if(O:broken)
- O:broken = 0
- O:times_used = 0
- O:icon_state = "flash"
- if(istype(O,/obj/item/weapon/gun/energy/taser/cyborg))
- if(O:power_supply.charge < O:power_supply.maxcharge)
- O:power_supply.give(O:charge_cost)
- O:update_icon()
- else
- O:charge_tick = 0
- if(istype(O,/obj/item/weapon/melee/baton))
- var/obj/item/weapon/melee/baton/B = O
- if(B.bcell)
- B.bcell.charge = B.bcell.maxcharge
- //Service
- if(istype(O,/obj/item/weapon/reagent_containers/food/condiment/enzyme))
- if(O.reagents.get_reagent_amount("enzyme") < 50)
- O.reagents.add_reagent("enzyme", 2)
- //Medical
- if(istype(O,/obj/item/weapon/reagent_containers/glass/bottle/robot))
- var/obj/item/weapon/reagent_containers/glass/bottle/robot/B = O
- if(B.reagent && (B.reagents.get_reagent_amount(B.reagent) < B.volume))
- B.reagents.add_reagent(B.reagent, 2)
- //Janitor
- if(istype(O, /obj/item/device/lightreplacer))
- var/obj/item/device/lightreplacer/LR = O
- LR.Charge(R)
-
- if(R)
- if(R.module)
- R.module.respawn_consumable(R)
-
- //Emagged items for janitor and medical borg
- if(R.module.emag)
- if(istype(R.module.emag, /obj/item/weapon/reagent_containers/spray))
- var/obj/item/weapon/reagent_containers/spray/S = R.module.emag
- if(S.name == "Polyacid spray")
- S.reagents.add_reagent("pacid", 2)
- else if(S.name == "Lube spray")
- S.reagents.add_reagent("lube", 2)
-
-
- verb
- move_eject()
- set category = "Object"
- set src in oview(1)
- if (usr.stat != 0)
- return
- src.go_out()
- add_fingerprint(usr)
- return
-
- move_inside()
- set category = "Object"
- set src in oview(1)
- if (usr.stat == 2)
- //Whoever had it so that a borg with a dead cell can't enter this thing should be shot. --NEO
- return
- if (!(istype(usr, /mob/living/silicon/)))
- usr << "\blue Only non-organics may enter the recharger!"
- return
- if (src.occupant)
- usr << "\blue The cell is already occupied!"
- return
- if (!usr:cell)
- usr<<"\blue Without a powercell, you can't be recharged."
- //Make sure they actually HAVE a cell, now that they can get in while powerless. --NEO
- return
- usr.stop_pulling()
- if(usr && usr.client)
- usr.client.perspective = EYE_PERSPECTIVE
- usr.client.eye = src
- usr.loc = src
- src.occupant = usr
- /*for(var/obj/O in src)
- O.loc = src.loc*/
- src.add_fingerprint(usr)
- build_icon()
- src.use_power = 2
- return
-
-
+ if(occupant.cell)
+ if(occupant.cell.charge >= occupant.cell.maxcharge)
+ occupant.cell.charge = occupant.cell.maxcharge
+ else
+ occupant.cell.charge = min(occupant.cell.charge + 200, occupant.cell.maxcharge)
+/obj/machinery/recharge_station/proc/restock_modules()
+ if(occupant)
+ if(occupant.module && occupant.module.modules)
+ var/list/um = occupant.contents|occupant.module.modules
+ // ^ makes sinle list of active (occupant.contents) and inactive modules (occupant.module.modules)
+ for(var/obj/O in um)
+ // Engineering
+ if(istype(O,/obj/item/stack/sheet/metal) || istype(O,/obj/item/stack/sheet/rglass) || istype(O,/obj/item/stack/rods) || istype(O,/obj/item/weapon/cable_coil))
+ if(O:amount < 50)
+ O:amount += 1
+ // Security
+ if(istype(O,/obj/item/device/flash))
+ if(O:broken)
+ O:broken = 0
+ O:times_used = 0
+ O:icon_state = "flash"
+ if(istype(O,/obj/item/weapon/gun/energy/taser/cyborg))
+ if(O:power_supply.charge < O:power_supply.maxcharge)
+ O:power_supply.give(O:charge_cost)
+ O:update_icon()
+ else
+ O:charge_tick = 0
+ if(istype(O,/obj/item/weapon/melee/baton))
+ var/obj/item/weapon/melee/baton/B = O
+ if(B.bcell)
+ B.bcell.charge = B.bcell.maxcharge
+ //Service
+ if(istype(O,/obj/item/weapon/reagent_containers/food/condiment/enzyme))
+ if(O.reagents.get_reagent_amount("enzyme") < 50)
+ O.reagents.add_reagent("enzyme", 2)
+ //Medical
+ if(istype(O,/obj/item/weapon/reagent_containers/glass/bottle/robot))
+ var/obj/item/weapon/reagent_containers/glass/bottle/robot/B = O
+ if(B.reagent && (B.reagents.get_reagent_amount(B.reagent) < B.volume))
+ B.reagents.add_reagent(B.reagent, 2)
+ //Janitor
+ if(istype(O, /obj/item/device/lightreplacer))
+ var/obj/item/device/lightreplacer/LR = O
+ LR.Charge(occupant)
+ if(occupant)
+ if(occupant.module)
+ occupant.module.respawn_consumable(occupant)
+ //Emagged items for janitor and medical borg
+ if(occupant.module.emag)
+ if(istype(occupant.module.emag, /obj/item/weapon/reagent_containers/spray))
+ var/obj/item/weapon/reagent_containers/spray/S = occupant.module.emag
+ if(S.name == "Polyacid spray")
+ S.reagents.add_reagent("pacid", 2)
+ else if(S.name == "Lube spray")
+ S.reagents.add_reagent("lube", 2)
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
index 41f1d2ce0a4..4363f796d47 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
@@ -16,31 +16,28 @@
//This is fine, works the same as a human
/mob/living/carbon/alien/humanoid/Bump(atom/movable/AM as mob|obj, yes)
- spawn( 0 )
- if ((!( yes ) || now_pushing))
- return
- now_pushing = 0
- ..()
- if (!istype(AM, /atom/movable) || !istype(AM.loc, /turf))
- return
-
- if (ismob(AM))
- var/mob/tmob = AM
- tmob.LAssailant = src
-
- if (!now_pushing)
- now_pushing = 1
- if (!AM.anchored)
- var/t = get_dir(src, AM)
- if (istype(AM, /obj/structure/window))
- if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST)
- for(var/obj/structure/window/win in get_step(AM,t))
- now_pushing = 0
- return
- step(AM, t)
- now_pushing = null
+ if ((!( yes ) || now_pushing))
return
- return
+ now_pushing = 0
+ ..()
+ if (!istype(AM, /atom/movable))
+ return
+
+ if (ismob(AM))
+ var/mob/tmob = AM
+ tmob.LAssailant = src
+
+ if (!now_pushing)
+ now_pushing = 1
+ if (!AM.anchored)
+ var/t = get_dir(src, AM)
+ if (istype(AM, /obj/structure/window))
+ if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST)
+ for(var/obj/structure/window/win in get_step(AM,t))
+ now_pushing = 0
+ return
+ step(AM, t)
+ now_pushing = null
/mob/living/carbon/alien/humanoid/movement_delay()
var/tally = 0
@@ -413,4 +410,4 @@ In all, this is a lot like the monkey code. /N
"[usr] tries to empty [src]'s pouches.")
if(do_mob(usr, src, STRIP_DELAY * 0.5))
u_equip(r_store)
- u_equip(l_store)
+ u_equip(l_store)
diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm
index 772e1c6dc6a..3b0ceb7a4df 100644
--- a/code/modules/mob/living/carbon/alien/larva/larva.dm
+++ b/code/modules/mob/living/carbon/alien/larva/larva.dm
@@ -24,27 +24,24 @@
//This is fine, works the same as a human
/mob/living/carbon/alien/larva/Bump(atom/movable/AM as mob|obj, yes)
-
- spawn( 0 )
- if ((!( yes ) || now_pushing))
- return
- now_pushing = 1
- if(ismob(AM))
- var/mob/tmob = AM
- tmob.LAssailant = src
-
- now_pushing = 0
- ..()
- if (!istype(AM, /atom/movable) || !istype(AM.loc, /turf))
- return
- if (!( now_pushing ))
- now_pushing = 1
- if (!( AM.anchored ))
- var/t = get_dir(src, AM)
- step(AM, t)
- now_pushing = null
+ if ((!( yes ) || now_pushing))
return
- return
+ now_pushing = 1
+ if(ismob(AM))
+ var/mob/tmob = AM
+ tmob.LAssailant = src
+
+ now_pushing = 0
+ ..()
+ if (!istype(AM, /atom/movable))
+ return
+ if (!( now_pushing ))
+ now_pushing = 1
+ if (!( AM.anchored ))
+ var/t = get_dir(src, AM)
+ step(AM, t)
+ now_pushing = null
+
//This needs to be fixed
/mob/living/carbon/alien/larva/Stat()
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 1c0f5343112..c09a43984e1 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -79,24 +79,21 @@
tmob.LAssailant = src
now_pushing = 0
- spawn(0)
- ..()
- if (!istype(AM, /atom/movable) || !istype(AM.loc, /turf))
- return
- if (!now_pushing)
- now_pushing = 1
-
- if (!AM.anchored)
- var/t = get_dir(src, AM)
- if (istype(AM, /obj/structure/window))
- if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST)
- for(var/obj/structure/window/win in get_step(AM,t))
- now_pushing = 0
- return
- step(AM, t)
- now_pushing = 0
+ ..()
+ if (!istype(AM, /atom/movable))
return
- return
+ if (!now_pushing)
+ now_pushing = 1
+
+ if (!AM.anchored)
+ var/t = get_dir(src, AM)
+ if (istype(AM, /obj/structure/window))
+ if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST)
+ for(var/obj/structure/window/win in get_step(AM,t))
+ now_pushing = 0
+ return
+ step(AM, t)
+ now_pushing = 0
/mob/living/carbon/human/Stat()
..()
diff --git a/code/modules/mob/living/carbon/metroid/metroid.dm b/code/modules/mob/living/carbon/metroid/metroid.dm
index 707692685ed..864ab4f4f73 100644
--- a/code/modules/mob/living/carbon/metroid/metroid.dm
+++ b/code/modules/mob/living/carbon/metroid/metroid.dm
@@ -105,71 +105,68 @@
/mob/living/carbon/slime/Bump(atom/movable/AM as mob|obj, yes)
- spawn( 0 )
- if ((!( yes ) || now_pushing))
- return
- now_pushing = 1
+ if ((!( yes ) || now_pushing))
+ return
+ now_pushing = 1
- if(isobj(AM))
- if(!client && powerlevel > 0)
- var/probab = 10
- switch(powerlevel)
- if(1 to 2) probab = 20
- if(3 to 4) probab = 30
- if(5 to 6) probab = 40
- if(7 to 8) probab = 60
- if(9) probab = 70
- if(10) probab = 95
- if(prob(probab))
+ if(isobj(AM))
+ if(!client && powerlevel > 0)
+ var/probab = 10
+ switch(powerlevel)
+ if(1 to 2) probab = 20
+ if(3 to 4) probab = 30
+ if(5 to 6) probab = 40
+ if(7 to 8) probab = 60
+ if(9) probab = 70
+ if(10) probab = 95
+ if(prob(probab))
- if(istype(AM, /obj/structure/window) || istype(AM, /obj/structure/grille))
- if(istype(src, /mob/living/carbon/slime/adult))
- if(nutrition <= 600 && !Atkcool)
+ if(istype(AM, /obj/structure/window) || istype(AM, /obj/structure/grille))
+ if(istype(src, /mob/living/carbon/slime/adult))
+ if(nutrition <= 600 && !Atkcool)
+ AM.attack_slime(src)
+ spawn()
+ Atkcool = 1
+ sleep(15)
+ Atkcool = 0
+ else
+ if(nutrition <= 500 && !Atkcool)
+ if(prob(5))
AM.attack_slime(src)
spawn()
Atkcool = 1
sleep(15)
Atkcool = 0
- else
- if(nutrition <= 500 && !Atkcool)
- if(prob(5))
- AM.attack_slime(src)
- spawn()
- Atkcool = 1
- sleep(15)
- Atkcool = 0
- if(ismob(AM))
- var/mob/tmob = AM
+ if(ismob(AM))
+ var/mob/tmob = AM
- if(istype(src, /mob/living/carbon/slime/adult))
- if(istype(tmob, /mob/living/carbon/human))
- if(prob(90))
- now_pushing = 0
- return
- else
- if(istype(tmob, /mob/living/carbon/human))
+ if(istype(src, /mob/living/carbon/slime/adult))
+ if(istype(tmob, /mob/living/carbon/human))
+ if(prob(90))
now_pushing = 0
return
+ else
+ if(istype(tmob, /mob/living/carbon/human))
+ now_pushing = 0
+ return
- now_pushing = 0
- ..()
- if (!istype(AM, /atom/movable) || !istype(AM.loc, /turf))
- return
- if (!( now_pushing ))
- now_pushing = 1
- if (!( AM.anchored ))
- var/t = get_dir(src, AM)
- if (istype(AM, /obj/structure/window))
- if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST)
- for(var/obj/structure/window/win in get_step(AM,t))
- now_pushing = 0
- return
- step(AM, t)
- now_pushing = null
+ now_pushing = 0
+ ..()
+ if (!istype(AM, /atom/movable))
return
- return
+ if (!( now_pushing ))
+ now_pushing = 1
+ if (!( AM.anchored ))
+ var/t = get_dir(src, AM)
+ if (istype(AM, /obj/structure/window))
+ if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST)
+ for(var/obj/structure/window/win in get_step(AM,t))
+ now_pushing = 0
+ return
+ step(AM, t)
+ now_pushing = null
/mob/living/carbon/slime/Process_Spacemove()
return 2
diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm
index 20ccb8a8dfc..df8e09f4bf2 100644
--- a/code/modules/mob/living/carbon/monkey/monkey.dm
+++ b/code/modules/mob/living/carbon/monkey/monkey.dm
@@ -38,35 +38,31 @@
return tally+config.monkey_delay
/mob/living/carbon/monkey/Bump(atom/movable/AM as mob|obj, yes)
-
- spawn( 0 )
- if ((!( yes ) || now_pushing))
- return
- now_pushing = 1
- if(ismob(AM))
- var/mob/tmob = AM
- if(!(tmob.status_flags & CANPUSH))
- now_pushing = 0
- return
-
- tmob.LAssailant = src
- now_pushing = 0
- ..()
- if (!istype(AM, /atom/movable) || !istype(AM.loc, /turf))
- return
- if (!( now_pushing ))
- now_pushing = 1
- if (!( AM.anchored ))
- var/t = get_dir(src, AM)
- if (istype(AM, /obj/structure/window))
- if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST)
- for(var/obj/structure/window/win in get_step(AM,t))
- now_pushing = 0
- return
- step(AM, t)
- now_pushing = null
+ if ((!( yes ) || now_pushing))
return
- return
+ now_pushing = 1
+ if(ismob(AM))
+ var/mob/tmob = AM
+ if(!(tmob.status_flags & CANPUSH))
+ now_pushing = 0
+ return
+
+ tmob.LAssailant = src
+ now_pushing = 0
+ ..()
+ if (!istype(AM, /atom/movable))
+ return
+ if (!( now_pushing ))
+ now_pushing = 1
+ if (!( AM.anchored ))
+ var/t = get_dir(src, AM)
+ if (istype(AM, /obj/structure/window))
+ if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST)
+ for(var/obj/structure/window/win in get_step(AM,t))
+ now_pushing = 0
+ return
+ step(AM, t)
+ now_pushing = null
/mob/living/carbon/monkey/meteorhit(obj/O as obj)
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index b0955f512af..035d34f57ae 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -296,10 +296,11 @@
t7 = null
if ((t7 && (pulling && ((get_dist(src, pulling) <= 1 || pulling.loc == loc) && (client && client.moving)))))
var/turf/T = loc
+ var/turf/P = pulling.loc
. = ..()
if (pulling && pulling.loc)
- if(!( isturf(pulling.loc) ))
+ if(!isturf(pulling.loc) || pulling.loc != P)
stop_pulling()
return
else
@@ -343,7 +344,6 @@
if (istype(location, /turf/simulated))
location.add_blood(M)
-
step(pulling, get_dir(pulling.loc, T))
M.start_pulling(t)
else
diff --git a/code/modules/mob/living/silicon/robot/death.dm b/code/modules/mob/living/silicon/robot/death.dm
index 82657b8bb49..997dcccde37 100644
--- a/code/modules/mob/living/silicon/robot/death.dm
+++ b/code/modules/mob/living/silicon/robot/death.dm
@@ -54,10 +54,6 @@
uneq_all() // particularly to ensure sight modes are cleared
- if(in_contents_of(/obj/machinery/recharge_station))//exit the recharge station
- var/obj/machinery/recharge_station/RC = loc
- RC.go_out()
-
if(blind) blind.layer = 0
sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS
see_in_dark = 8
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 39b2f6b27a0..d8a66af4506 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -324,36 +324,29 @@
/mob/living/silicon/robot/Bump(atom/movable/AM as mob|obj, yes)
- spawn( 0 )
- if ((!( yes ) || now_pushing))
- return
- now_pushing = 1
- if(ismob(AM))
- var/mob/tmob = AM
- if(!(tmob.status_flags & CANPUSH))
- now_pushing = 0
- return
- now_pushing = 0
- ..()
- if (istype(AM, /obj/machinery/recharge_station))
- var/obj/machinery/recharge_station/F = AM
- F.move_inside()
- if (!istype(AM, /atom/movable) || !istype(AM.loc, /turf))
- return
- if (!now_pushing)
- now_pushing = 1
- if (!AM.anchored)
- var/t = get_dir(src, AM)
- if (istype(AM, /obj/structure/window))
- if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST)
- for(var/obj/structure/window/win in get_step(AM,t))
- now_pushing = 0
- return
- step(AM, t)
- now_pushing = null
+ if ((!( yes ) || now_pushing))
return
- return
-
+ now_pushing = 1
+ if(ismob(AM))
+ var/mob/tmob = AM
+ if(!(tmob.status_flags & CANPUSH))
+ now_pushing = 0
+ return
+ now_pushing = 0
+ ..()
+ if (!istype(AM, /atom/movable))
+ return
+ if (!now_pushing)
+ now_pushing = 1
+ if (!AM.anchored)
+ var/t = get_dir(src, AM)
+ if (istype(AM, /obj/structure/window))
+ if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST)
+ for(var/obj/structure/window/win in get_step(AM,t))
+ now_pushing = 0
+ return
+ step(AM, t)
+ now_pushing = null
/mob/living/silicon/robot/triggerAlarm(var/class, area/A, var/O, var/alarmsource)
if (stat == 2)
diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm
index 62f3cadb384..2c6feb47232 100644
--- a/code/modules/mob/living/simple_animal/constructs.dm
+++ b/code/modules/mob/living/simple_animal/constructs.dm
@@ -54,34 +54,31 @@
return
/mob/living/simple_animal/construct/Bump(atom/movable/AM as mob|obj, yes)
- spawn( 0 )
- if ((!( yes ) || now_pushing))
- return
- now_pushing = 1
- if(ismob(AM))
- var/mob/tmob = AM
- if(!(tmob.status_flags & CANPUSH))
- now_pushing = 0
- return
-
- tmob.LAssailant = src
- now_pushing = 0
- ..()
- if (!istype(AM, /atom/movable) || !istype(AM.loc, /turf))
- return
- if (!( now_pushing ))
- now_pushing = 1
- if (!( AM.anchored ))
- var/t = get_dir(src, AM)
- if (istype(AM, /obj/structure/window))
- if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST)
- for(var/obj/structure/window/win in get_step(AM,t))
- now_pushing = 0
- return
- step(AM, t)
- now_pushing = null
+ if ((!( yes ) || now_pushing))
return
- return
+ now_pushing = 1
+ if(ismob(AM))
+ var/mob/tmob = AM
+ if(!(tmob.status_flags & CANPUSH))
+ now_pushing = 0
+ return
+
+ tmob.LAssailant = src
+ now_pushing = 0
+ ..()
+ if (!istype(AM, /atom/movable))
+ return
+ if (!( now_pushing ))
+ now_pushing = 1
+ if (!( AM.anchored ))
+ var/t = get_dir(src, AM)
+ if (istype(AM, /obj/structure/window))
+ if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST)
+ for(var/obj/structure/window/win in get_step(AM,t))
+ now_pushing = 0
+ return
+ step(AM, t)
+ now_pushing = null
/mob/living/simple_animal/construct/attack_animal(mob/living/simple_animal/M as mob)
diff --git a/code/modules/mob/living/simple_animal/friendly/corgi.dm b/code/modules/mob/living/simple_animal/friendly/corgi.dm
index d040cdaba3e..808cd42104e 100644
--- a/code/modules/mob/living/simple_animal/friendly/corgi.dm
+++ b/code/modules/mob/living/simple_animal/friendly/corgi.dm
@@ -363,35 +363,31 @@
sleep(1)
/mob/living/simple_animal/corgi/Ian/Bump(atom/movable/AM as mob|obj, yes)
-
- spawn( 0 )
- if ((!( yes ) || now_pushing))
- return
- now_pushing = 1
- if(ismob(AM))
- var/mob/tmob = AM
- if(!(tmob.status_flags & CANPUSH))
- now_pushing = 0
- return
-
- tmob.LAssailant = src
- now_pushing = 0
- ..()
- if (!istype(AM, /atom/movable) || !istype(AM.loc, /turf))
- return
- if (!( now_pushing ))
- now_pushing = 1
- if (!( AM.anchored ))
- var/t = get_dir(src, AM)
- if (istype(AM, /obj/structure/window))
- if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST)
- for(var/obj/structure/window/win in get_step(AM,t))
- now_pushing = 0
- return
- step(AM, t)
- now_pushing = null
+ if ((!( yes ) || now_pushing))
return
- return
+ now_pushing = 1
+ if(ismob(AM))
+ var/mob/tmob = AM
+ if(!(tmob.status_flags & CANPUSH))
+ now_pushing = 0
+ return
+
+ tmob.LAssailant = src
+ now_pushing = 0
+ ..()
+ if (!istype(AM, /atom/movable))
+ return
+ if (!( now_pushing ))
+ now_pushing = 1
+ if (!( AM.anchored ))
+ var/t = get_dir(src, AM)
+ if (istype(AM, /obj/structure/window))
+ if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST)
+ for(var/obj/structure/window/win in get_step(AM,t))
+ now_pushing = 0
+ return
+ step(AM, t)
+ now_pushing = null
//PC stuff-Sieve
/mob/living/simple_animal/corgi/attackby(var/obj/item/O as obj, var/mob/user as mob) //Marker -Agouri
diff --git a/code/modules/mob/living/simple_animal/friendly/slime.dm b/code/modules/mob/living/simple_animal/friendly/slime.dm
index 0b6c2d00cfe..b49c3e9eabc 100644
--- a/code/modules/mob/living/simple_animal/friendly/slime.dm
+++ b/code/modules/mob/living/simple_animal/friendly/slime.dm
@@ -15,35 +15,31 @@
var/colour = "grey"
/mob/living/simple_animal/slime/Bump(atom/movable/AM as mob|obj, yes)
-
- spawn( 0 )
- if ((!( yes ) || now_pushing))
- return
- now_pushing = 1
- if(ismob(AM))
- var/mob/tmob = AM
- if(!(tmob.status_flags & CANPUSH))
- now_pushing = 0
- return
-
- tmob.LAssailant = src
- now_pushing = 0
- ..()
- if (!istype(AM, /atom/movable) || !istype(AM.loc, /turf))
- return
- if (!( now_pushing ))
- now_pushing = 1
- if (!( AM.anchored ))
- var/t = get_dir(src, AM)
- if (istype(AM, /obj/structure/window))
- if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST)
- for(var/obj/structure/window/win in get_step(AM,t))
- now_pushing = 0
- return
- step(AM, t)
- now_pushing = null
+ if ((!( yes ) || now_pushing))
return
- return
+ now_pushing = 1
+ if(ismob(AM))
+ var/mob/tmob = AM
+ if(!(tmob.status_flags & CANPUSH))
+ now_pushing = 0
+ return
+
+ tmob.LAssailant = src
+ now_pushing = 0
+ ..()
+ if (!istype(AM, /atom/movable))
+ return
+ if (!( now_pushing ))
+ now_pushing = 1
+ if (!( AM.anchored ))
+ var/t = get_dir(src, AM)
+ if (istype(AM, /obj/structure/window))
+ if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST)
+ for(var/obj/structure/window/win in get_step(AM,t))
+ now_pushing = 0
+ return
+ step(AM, t)
+ now_pushing = null
/mob/living/simple_animal/adultslime
name = "pet slime"
diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi
index 1204708ac70..294ccbf278f 100644
Binary files a/icons/obj/objects.dmi and b/icons/obj/objects.dmi differ