diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm index 749797c433a..4353520880a 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 9ee6570247a..016727ac344 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 fa15004a5b8..80be2f2fa0c 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 da5739a31cf..e7d1afa545b 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 2fb11659dc0..500f719baac 100644 --- a/code/game/turfs/simulated/water.dm +++ b/code/game/turfs/simulated/water.dm @@ -127,7 +127,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 @@ -206,4 +208,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 ac763aa3e13..755678391e4 100644 --- a/code/modules/mob/living/simple_mob/simple_mob.dm +++ b/code/modules/mob/living/simple_mob/simple_mob.dm @@ -243,11 +243,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 b6a14697727..3f76f8c7f56 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 0ea518d99a1..4bd8d655069 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 ..()