Merge pull request #5108 from CHOMPStation2/upstream-merge-13859

[MIRROR] ALL TERRAIN WINGS
This commit is contained in:
Nadyr
2022-10-11 20:34:22 -04:00
committed by GitHub
8 changed files with 22 additions and 12 deletions

View File

@@ -96,7 +96,7 @@
explode(M) explode(M)
if(istype(M, /mob/living/)) if(istype(M, /mob/living/))
if(!M.hovering) if(!M.hovering) //CHOMPedit: let's not make wings ignore mines because we use those here.
explode(M) explode(M)
/obj/effect/mine/attackby(obj/item/W as obj, mob/living/user as mob) /obj/effect/mine/attackby(obj/item/W as obj, mob/living/user as mob)
@@ -398,6 +398,6 @@
// This tells AI mobs to not be dumb and step on mines willingly. // This tells AI mobs to not be dumb and step on mines willingly.
/obj/item/weapon/mine/is_safe_to_step(mob/living/L) /obj/item/weapon/mine/is_safe_to_step(mob/living/L)
if(!L.hovering) if(!L.hovering) //CHOMPedit: Let's not trivialize mines.
return FALSE return FALSE
return ..() return ..()

View File

@@ -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) /obj/structure/cliff/CanPass(atom/movable/mover, turf/target)
if(isliving(mover)) if(isliving(mover))
var/mob/living/L = 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 TRUE
return ..() 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) /obj/structure/cliff/proc/should_fall(mob/living/L)
if(L.hovering) if(L.hovering || L.flying)
return FALSE return FALSE
var/turf/T = get_turf(L) var/turf/T = get_turf(L)

View File

@@ -514,7 +514,9 @@
/turf/simulated/floor/snow/Entered(atom/A) /turf/simulated/floor/snow/Entered(atom/A)
if(isliving(A)) if(isliving(A))
var/mob/living/L = 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 ..() return ..()
var/mdir = "[A.dir]" var/mdir = "[A.dir]"
crossed_dirs[mdir] = 1 crossed_dirs[mdir] = 1

View File

@@ -14,7 +14,9 @@
/turf/simulated/floor/outdoors/snow/Entered(atom/A) /turf/simulated/floor/outdoors/snow/Entered(atom/A)
if(isliving(A)) if(isliving(A))
var/mob/living/L = 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 ..() return ..()
var/mdir = "[A.dir]" var/mdir = "[A.dir]"
crossed_dirs[mdir] = 1 crossed_dirs[mdir] = 1

View File

@@ -136,7 +136,9 @@
/mob/living/proc/check_submerged() /mob/living/proc/check_submerged()
if(buckled) if(buckled)
return 0 return 0
if(hovering) if(hovering || flying)
if(flying)
adjust_nutrition(-0.5)
return 0 return 0
if(locate(/obj/structure/catwalk) in loc) if(locate(/obj/structure/catwalk) in loc)
return 0 return 0

View File

@@ -253,11 +253,13 @@
// Turf related slowdown // Turf related slowdown
var/turf/T = get_turf(src) 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) if(istype(T,/turf/simulated/floor/water) && aquatic_movement)
. -= aquatic_movement - 1 . -= aquatic_movement - 1
else else
. += T.movement_cost . += 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(purge)//Purged creatures will move more slowly. The more time before their purge stops, the slower they'll move.
if(. <= 0) if(. <= 0)

View File

@@ -101,7 +101,7 @@
if(!istype(H)) if(!istype(H))
return . 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 return TRUE
if(!.) if(!.)

View File

@@ -17,7 +17,9 @@
/turf/simulated/floor/smole/Entered(atom/A) /turf/simulated/floor/smole/Entered(atom/A)
if(isliving(A)) if(isliving(A))
var/mob/living/L = 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 ..() return ..()
if(L.get_effective_size(FALSE) <= RESIZE_NORMAL) if(L.get_effective_size(FALSE) <= RESIZE_NORMAL)
return ..() return ..()