mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-26 22:50:26 +01:00
Merge pull request #861 from Aranclanos/MobBump
Bump code spawn() removal and cyborg recharge station rework.
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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 <B>Only non-organics may enter the recharger!</B>"
|
||||
return
|
||||
if (src.occupant)
|
||||
usr << "\blue <B>The cell is already occupied!</B>"
|
||||
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)
|
||||
@@ -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
|
||||
"<span class='userdanger'>[usr] tries to empty [src]'s pouches.</span>")
|
||||
if(do_mob(usr, src, STRIP_DELAY * 0.5))
|
||||
u_equip(r_store)
|
||||
u_equip(l_store)
|
||||
u_equip(l_store)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
..()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 116 KiB After Width: | Height: | Size: 115 KiB |
Reference in New Issue
Block a user