Merge pull request #10898 from Heroman3003/incorporeal-fires

Makes incorporeal things properly immune to bonfires and lava (and tram and elevator...)
This commit is contained in:
Aronai Sieyes
2021-07-05 16:24:54 -04:00
committed by Chompstation Bot
parent b40f14fc6b
commit e9cb44d9ca
4 changed files with 8 additions and 7 deletions

View File

@@ -190,8 +190,9 @@
O.fire_act(null, 1000, 500)
else if(isliving(A) && get_fuel_amount() > 4)
var/mob/living/L = A
L.adjust_fire_stacks(get_fuel_amount() / 4)
L.IgniteMob()
if(!(L.is_incorporeal()))
L.adjust_fire_stacks(get_fuel_amount() / 4)
L.IgniteMob()
/obj/structure/bonfire/update_icon()
cut_overlays()

View File

@@ -77,14 +77,14 @@
for(var/thing in thing_to_check)
if(isobj(thing))
var/obj/O = thing
if(O.throwing)
if(O.throwing || O.is_incorporeal())
continue
. = TRUE
O.lava_act()
else if(isliving(thing))
var/mob/living/L = thing
if(L.hovering || L.throwing) // Flying over the lava. We're just gonna pretend convection doesn't exist.
if(L.hovering || L.throwing || L.is_incorporeal()) // Flying over the lava. We're just gonna pretend convection doesn't exist.
continue
. = TRUE
L.lava_act()

View File

@@ -192,12 +192,12 @@
for(var/turf/T in destination)
for(var/atom/movable/AM in T)
if(istype(AM, /mob/living))
if(istype(AM, /mob/living) && !(AM.is_incorporeal()))
var/mob/living/M = AM
M.gib()
else if(istype(AM, /mob/zshadow))
AM.Destroy() //prevent deleting shadow without deleting shadow's shadows
else if(AM.simulated && !(istype(AM, /mob/observer)))
else if(AM.simulated && !(istype(AM, /mob/observer)) && !(AM.is_incorporeal()))
qdel(AM)
origin.move_contents_to(destination)

View File

@@ -170,7 +170,7 @@
// Walking on maglev tracks will shock you! Horray!
/turf/simulated/floor/maglev/Entered(var/atom/movable/AM, var/atom/old_loc)
if(isliving(AM) && prob(50))
if(isliving(AM) && !(AM.is_incorporeal()) && prob(50))
track_zap(AM)
/turf/simulated/floor/maglev/attack_hand(var/mob/user)
if(prob(75))