mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
Merge remote-tracking branch 'upstream/dev-freeze' into dev
This commit is contained in:
@@ -281,7 +281,7 @@
|
||||
if(HP.ambience)
|
||||
linkedholodeck.forced_ambience = HP.ambience
|
||||
else
|
||||
linkedholodeck.forced_ambience = initial(linkedholodeck.ambience)
|
||||
linkedholodeck.forced_ambience = list()
|
||||
|
||||
for(var/mob/living/M in mobs_in_area(linkedholodeck))
|
||||
if(M.mind)
|
||||
|
||||
@@ -77,10 +77,36 @@ note dizziness decrements automatically in the mob's Life() proc.
|
||||
pixel_y = old_y
|
||||
|
||||
|
||||
//handles up-down floaty effect in space
|
||||
//handles up-down floaty effect in space and zero-gravity
|
||||
/mob/var/is_floating = 0
|
||||
/mob/var/floatiness = 0
|
||||
|
||||
/mob/proc/update_floating(var/dense_object=0)
|
||||
|
||||
if(anchored||buckled)
|
||||
make_floating(0)
|
||||
return
|
||||
|
||||
var/turf/turf = get_turf(src)
|
||||
if(!istype(turf,/turf/space))
|
||||
var/area/A = turf.loc
|
||||
if(istype(A) && A.has_gravity)
|
||||
make_floating(0)
|
||||
return
|
||||
else if (Check_Shoegrip())
|
||||
make_floating(0)
|
||||
return
|
||||
else
|
||||
make_floating(1)
|
||||
return
|
||||
|
||||
if(dense_object && Check_Shoegrip())
|
||||
make_floating(0)
|
||||
return
|
||||
|
||||
make_floating(1)
|
||||
return
|
||||
|
||||
/mob/proc/make_floating(var/n)
|
||||
|
||||
floatiness = n
|
||||
|
||||
@@ -1361,3 +1361,8 @@
|
||||
..()
|
||||
if(update_hud)
|
||||
handle_regular_hud_updates()
|
||||
|
||||
/mob/living/carbon/human/Check_Shoegrip()
|
||||
if(istype(shoes, /obj/item/clothing/shoes/magboots) && (shoes.flags & NOSLIP)) //magboots + dense_object = no floating
|
||||
return 1
|
||||
return 0
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
show_stat_health = 1
|
||||
faction = "cult"
|
||||
supernatural = 1
|
||||
see_invisible = SEE_INVISIBLE_OBSERVER_NOLIGHTING
|
||||
var/nullblock = 0
|
||||
|
||||
mob_swap_flags = HUMAN|SIMPLE_ANIMAL|SLIME|MONKEY
|
||||
|
||||
@@ -449,17 +449,10 @@
|
||||
/mob/proc/Process_Spacemove(var/check_drift = 0)
|
||||
|
||||
if(!Check_Dense_Object()) //Nothing to push off of so end here
|
||||
make_floating(1)
|
||||
update_floating(0)
|
||||
return 0
|
||||
|
||||
if(istype(src,/mob/living/carbon/human/))
|
||||
var/mob/living/carbon/human/H = src
|
||||
if(istype(H.shoes, /obj/item/clothing/shoes/magboots) && (H.shoes.flags & NOSLIP)) //magboots + dense_object = no floaty effect
|
||||
make_floating(0)
|
||||
else
|
||||
make_floating(1)
|
||||
else
|
||||
make_floating(1)
|
||||
update_floating(1)
|
||||
|
||||
if(restrained()) //Check to see if we can do things
|
||||
return 0
|
||||
@@ -477,6 +470,8 @@
|
||||
/mob/proc/Check_Dense_Object() //checks for anything to push off in the vicinity. also handles magboots on gravity-less floors tiles
|
||||
|
||||
var/dense_object = 0
|
||||
var/shoegrip
|
||||
|
||||
for(var/turf/turf in oview(1,src))
|
||||
if(istype(turf,/turf/space))
|
||||
continue
|
||||
@@ -484,14 +479,9 @@
|
||||
if(istype(turf,/turf/simulated/floor)) // Floors don't count if they don't have gravity
|
||||
var/area/A = turf.loc
|
||||
if(istype(A) && A.has_gravity == 0)
|
||||
var/can_walk = 0
|
||||
|
||||
if(ishuman(src)) // Only humans can wear magboots, so we give them a chance to.
|
||||
var/mob/living/carbon/human/H = src
|
||||
if(istype(H.shoes, /obj/item/clothing/shoes/magboots) && (H.shoes.flags & NOSLIP))
|
||||
can_walk = 1
|
||||
|
||||
if(!can_walk)
|
||||
if(shoegrip == null)
|
||||
shoegrip = Check_Shoegrip() //Shoegrip is only ever checked when a zero-gravity floor is encountered to reduce load
|
||||
if(!shoegrip)
|
||||
continue
|
||||
|
||||
dense_object++
|
||||
@@ -511,6 +501,8 @@
|
||||
|
||||
return dense_object
|
||||
|
||||
/mob/proc/Check_Shoegrip()
|
||||
return 0
|
||||
|
||||
/mob/proc/Process_Spaceslipping(var/prob_slip = 5)
|
||||
//Setup slipage
|
||||
|
||||
Reference in New Issue
Block a user