diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm index 749797c433..4353520880 100644 --- a/code/game/objects/effects/mines.dm +++ b/code/game/objects/effects/mines.dm @@ -96,7 +96,8 @@ explode(M) if(istype(M, /mob/living/)) - if(!M.hovering) + var/mob/living/mob = M + if(!mob.hovering || !mob.flying) explode(M) /obj/effect/mine/attackby(obj/item/W as obj, mob/living/user as mob) @@ -398,6 +399,6 @@ // This tells AI mobs to not be dumb and step on mines willingly. /obj/item/weapon/mine/is_safe_to_step(mob/living/L) - if(!L.hovering) + if(!L.hovering || !L.flying) return FALSE return ..() diff --git a/code/game/objects/structures/cliff.dm b/code/game/objects/structures/cliff.dm index 9ee6570247..016727ac34 100644 --- a/code/game/objects/structures/cliff.dm +++ b/code/game/objects/structures/cliff.dm @@ -153,7 +153,7 @@ two tiles on initialization, and which way a cliff is facing may change during m /obj/structure/cliff/CanPass(atom/movable/mover, turf/target) if(isliving(mover)) var/mob/living/L = mover - if(L.hovering) // Flying mobs can always pass. + if(L.hovering || L.flying) // Flying mobs can always pass. return TRUE return ..() @@ -174,7 +174,7 @@ two tiles on initialization, and which way a cliff is facing may change during m ..() /obj/structure/cliff/proc/should_fall(mob/living/L) - if(L.hovering) + if(L.hovering || L.flying) return FALSE var/turf/T = get_turf(L) diff --git a/code/game/turfs/flooring/flooring_premade.dm b/code/game/turfs/flooring/flooring_premade.dm index ff735044db..d0556fb59e 100644 --- a/code/game/turfs/flooring/flooring_premade.dm +++ b/code/game/turfs/flooring/flooring_premade.dm @@ -514,7 +514,9 @@ /turf/simulated/floor/snow/Entered(atom/A) if(isliving(A)) var/mob/living/L = A - if(L.hovering) // Flying things shouldn't make footprints. + if(L.hovering || L.flying) // Flying things shouldn't make footprints. + if(L.flying) + L.adjust_nutrition(-0.5) return ..() var/mdir = "[A.dir]" crossed_dirs[mdir] = 1 diff --git a/code/game/turfs/simulated/outdoors/snow.dm b/code/game/turfs/simulated/outdoors/snow.dm index da5739a31c..e7d1afa545 100644 --- a/code/game/turfs/simulated/outdoors/snow.dm +++ b/code/game/turfs/simulated/outdoors/snow.dm @@ -14,7 +14,9 @@ /turf/simulated/floor/outdoors/snow/Entered(atom/A) if(isliving(A)) var/mob/living/L = A - if(L.hovering) // Flying things shouldn't make footprints. + if(L.hovering || L.flying) // Flying things shouldn't make footprints. + if(L.flying) + L.adjust_nutrition(-0.5) return ..() var/mdir = "[A.dir]" crossed_dirs[mdir] = 1 diff --git a/code/game/turfs/simulated/water.dm b/code/game/turfs/simulated/water.dm index 57b89fccae..ea788daba6 100644 --- a/code/game/turfs/simulated/water.dm +++ b/code/game/turfs/simulated/water.dm @@ -136,7 +136,9 @@ /mob/living/proc/check_submerged() if(buckled) return 0 - if(hovering) + if(hovering || flying) + if(flying) + adjust_nutrition(-0.5) return 0 if(locate(/obj/structure/catwalk) in loc) return 0 @@ -215,4 +217,4 @@ var/list/shoreline_icon_cache = list() return poisonlevel *= 1 - L.get_water_protection() if(poisonlevel > 0) - L.adjustToxLoss(poisonlevel) \ No newline at end of file + L.adjustToxLoss(poisonlevel) diff --git a/code/modules/mob/living/simple_mob/simple_mob.dm b/code/modules/mob/living/simple_mob/simple_mob.dm index ae4583b501..8406a48137 100644 --- a/code/modules/mob/living/simple_mob/simple_mob.dm +++ b/code/modules/mob/living/simple_mob/simple_mob.dm @@ -253,11 +253,13 @@ // Turf related slowdown var/turf/T = get_turf(src) - if(T && T.movement_cost && !hovering) // Flying mobs ignore turf-based slowdown. Aquatic mobs ignore water slowdown, and can gain bonus speed in it. + if(T && T.movement_cost && (!hovering || !flying)) // Flying mobs ignore turf-based slowdown. Aquatic mobs ignore water slowdown, and can gain bonus speed in it. if(istype(T,/turf/simulated/floor/water) && aquatic_movement) . -= aquatic_movement - 1 else . += T.movement_cost + if(flying) + adjust_nutrition(-0.5) if(purge)//Purged creatures will move more slowly. The more time before their purge stops, the slower they'll move. if(. <= 0) diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/leech.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/leech.dm index cd74b8d4c5..1c89c7f21b 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/leech.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/leech.dm @@ -101,7 +101,7 @@ if(!istype(H)) return . - if(istype(L.buckled, /obj/vehicle) || L.hovering) // Ignore people hovering or on boats. + if(istype(L.buckled, /obj/vehicle) || L.hovering || L.flying) // Ignore people hovering or on boats. return TRUE if(!.) @@ -501,4 +501,4 @@ holder.a_intent = I_HURT /decl/mob_organ_names/leech - hit_zones = list("mouthparts", "central segment", "tail segment") \ No newline at end of file + hit_zones = list("mouthparts", "central segment", "tail segment") diff --git a/code/modules/vore/smoleworld/smoleworld_vr.dm b/code/modules/vore/smoleworld/smoleworld_vr.dm index 0ea518d99a..4bd8d65506 100644 --- a/code/modules/vore/smoleworld/smoleworld_vr.dm +++ b/code/modules/vore/smoleworld/smoleworld_vr.dm @@ -17,7 +17,9 @@ /turf/simulated/floor/smole/Entered(atom/A) if(isliving(A)) var/mob/living/L = A - if(L.hovering) // Flying things shouldn't make footprints. + if(L.hovering || L.flying) // Flying things shouldn't make footprints. + if(L.flying) + L.adjust_nutrition(-0.5) return ..() if(L.get_effective_size(FALSE) <= RESIZE_NORMAL) return ..()