From e70eb23dce749a02728e64cfc050cdc982758617 Mon Sep 17 00:00:00 2001 From: Heroman Date: Mon, 5 Jul 2021 18:05:46 +1000 Subject: [PATCH 1/3] Makes incorporeal things properly immune to bonfires and lava --- code/game/objects/structures/bonfire.dm | 5 +++-- code/game/turfs/simulated/lava.dm | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/code/game/objects/structures/bonfire.dm b/code/game/objects/structures/bonfire.dm index 92aad9af87..8ce86945ce 100644 --- a/code/game/objects/structures/bonfire.dm +++ b/code/game/objects/structures/bonfire.dm @@ -180,8 +180,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() diff --git a/code/game/turfs/simulated/lava.dm b/code/game/turfs/simulated/lava.dm index 67524c05ef..0e842626ab 100644 --- a/code/game/turfs/simulated/lava.dm +++ b/code/game/turfs/simulated/lava.dm @@ -95,6 +95,6 @@ // Tells AI mobs to not suicide by pathing into lava if it would hurt them. /turf/simulated/floor/lava/is_safe_to_enter(mob/living/L) - if(!is_safe() && !L.hovering) + if(!is_safe() && !L.hovering && !(L.is_incorporeal())) return FALSE return ..() \ No newline at end of file From 8e737db15817ed7024d49b74f2ac6b42a2e085f5 Mon Sep 17 00:00:00 2001 From: Heroman Date: Mon, 5 Jul 2021 18:30:35 +1000 Subject: [PATCH 2/3] also applies checks to tram and elevator --- code/modules/turbolift/turbolift.dm | 4 ++-- maps/tether/tether_things.dm | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/turbolift/turbolift.dm b/code/modules/turbolift/turbolift.dm index 9468179122..5ea1fd683c 100644 --- a/code/modules/turbolift/turbolift.dm +++ b/code/modules/turbolift/turbolift.dm @@ -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) diff --git a/maps/tether/tether_things.dm b/maps/tether/tether_things.dm index 283ec4e9f6..6ae40b8ae9 100644 --- a/maps/tether/tether_things.dm +++ b/maps/tether/tether_things.dm @@ -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)) From 3d9dcddec64a66fc82cc708733c719928e62446c Mon Sep 17 00:00:00 2001 From: Heroman Date: Tue, 6 Jul 2021 04:11:46 +1000 Subject: [PATCH 3/3] Foxes lava safety check --- code/game/turfs/simulated/lava.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/turfs/simulated/lava.dm b/code/game/turfs/simulated/lava.dm index 0e842626ab..f2902abdfe 100644 --- a/code/game/turfs/simulated/lava.dm +++ b/code/game/turfs/simulated/lava.dm @@ -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() @@ -95,6 +95,6 @@ // Tells AI mobs to not suicide by pathing into lava if it would hurt them. /turf/simulated/floor/lava/is_safe_to_enter(mob/living/L) - if(!is_safe() && !L.hovering && !(L.is_incorporeal())) + if(!is_safe() && !L.hovering) return FALSE return ..() \ No newline at end of file