Adds crawling. (#17899)

* crawling?

* knockdown. CONTAINS CHANGES THAT NEED REVERTING

* plotting can_moves death

* CANMOVE IS DEAD

* mappers are insane

* removes todos as the are todone

* decreases crawling speed

* silly-con fixes

* surgery fixes

* fixes death

* pAI fixes

* removes var/lying

* runtime fix

* decreases default crawling speed

* correct crawling dir

* some more fixes

* stunbaton tweak, revert later

* rejuv fix

* restraint and incapacitated refactor

* crawling dir in line with TG

* fixes vehicle movement and grabs

* alien rest fixes

* antistun fixes

* fixed fall sounds

* forgor to stage this

* first review

* canmove zombie dispersal

* fix

* lots of fixes

* defines

* fixes the trait helper

* if you got no legs you can still crawl

* sillyconfix

* no reverty keepy

* jaunt fix

* hopefully fixes perma sleepy zzz

* admin rejuv temp fix

* rest canceling

* antistun chems now remove knockdown

* buckle offset fix

* fixes some stuff

* crawling delay = 4

* descuffs bed

* sleeping hotfix

* fixes simple mob resting

* V is the macro for resting

* projectiles no dodgy

* refines the projectile check

* god I hate strings

* MORE FIXES

* I hate buckling

* fixes capulettium plus

* winding down

* farie review

* bugs did stop showing up

* SEAN

* todo

* sean review

* ed209

* i HATE cyborgs

* steel review

* laaaaaast things

* reverts stun baton changes

* and done
This commit is contained in:
Charlie
2022-06-30 11:57:52 -05:00
committed by GitHub
parent 5e2f62800c
commit bead47ea29
190 changed files with 1012 additions and 725 deletions
+2 -2
View File
@@ -249,8 +249,8 @@
/datum/reagent/proc/fakerevive(mob/living/M)
if(!HAS_TRAIT_FROM(M, TRAIT_FAKEDEATH, id))
return
if(M.resting)
M.StopResting()
if(IS_HORIZONTAL(M))
M.stand_up()
REMOVE_TRAIT(M, TRAIT_FAKEDEATH, id)
if(M.healthdoll)
M.healthdoll.cached_healthdoll_overlays.Cut()
@@ -37,6 +37,7 @@
M.SetWeakened(0)
M.SetStunned(0)
M.SetImmobilized(0)
M.SetKnockDown(0)
M.SetParalysis(0)
M.SetSilence(0)
M.SetHallucinate(0)
@@ -1102,6 +1102,7 @@
M.AdjustParalysis(-2 SECONDS)
M.AdjustStunned(-2 SECONDS)
M.AdjustWeakened(-2 SECONDS)
M.AdjustKnockDown(-2 SECONDS)
if(prob(8))
M.reagents.add_reagent("methamphetamine",1.2)
var/sonic_message = pick("Gotta go fast!", "Time to speed, keed!", "I feel a need for speed!", "Let's juice.", "Juice time.", "Way Past Cool!")
@@ -302,6 +302,7 @@
M.AdjustParalysis(-2 SECONDS)
M.AdjustStunned(-2 SECONDS)
M.AdjustWeakened(-2 SECONDS)
M.AdjustKnockDown(-2 SECONDS)
return ..() | update_flags
/datum/reagent/consumable/drink/coffee/overdose_process(mob/living/M, severity)
@@ -8,7 +8,7 @@
/datum/reagent/lithium/on_mob_life(mob/living/M)
if(isturf(M.loc) && !istype(M.loc, /turf/space))
if(M.canmove && !M.restrained())
if((M.mobility_flags & MOBILITY_MOVE) && !M.restrained())
step(M, pick(GLOB.cardinal))
if(prob(5))
M.emote(pick("twitch","drool","moan"))
@@ -44,7 +44,7 @@
var/update_flags = STATUS_UPDATE_NONE
M.Druggy(30 SECONDS)
if(isturf(M.loc) && !istype(M.loc, /turf/space))
if(M.canmove && !M.restrained())
if((M.mobility_flags & MOBILITY_MOVE) && !M.restrained())
step(M, pick(GLOB.cardinal))
if(prob(7))
M.emote(pick("twitch","drool","moan","giggle"))
@@ -104,6 +104,7 @@
M.AdjustParalysis(-2 SECONDS)
M.AdjustStunned(-2 SECONDS)
M.AdjustWeakened(-2 SECONDS)
M.AdjustKnockDown(-2 SECONDS)
update_flags |= M.adjustStaminaLoss(-1*REAGENTS_EFFECT_MULTIPLIER, FALSE)
return ..() | update_flags
@@ -166,6 +167,7 @@
M.AdjustParalysis(-4 SECONDS)
M.AdjustStunned(-4 SECONDS)
M.AdjustWeakened(-4 SECONDS)
M.AdjustKnockDown(-4 SECONDS)
if(prob(15))
M.emote(pick("twitch", "twitch_s", "grumble", "laugh"))
if(prob(8))
@@ -320,6 +322,7 @@
M.AdjustParalysis(-5 SECONDS)
M.AdjustStunned(-5 SECONDS)
M.AdjustWeakened(-5 SECONDS)
M.AdjustKnockDown(-5 SECONDS)
update_flags |= M.adjustStaminaLoss(-2, FALSE)
M.SetSleeping(0)
ADD_TRAIT(M, TRAIT_GOTTAGOFAST, id)
@@ -387,6 +390,7 @@
M.SetParalysis(0)
M.SetStunned(0)
M.SetWeakened(0)
M.SetKnockDown(0)
if(check < 30)
M.emote(pick("twitch", "twitch_s", "scream", "drool", "grumble", "mumble"))
M.Druggy(30 SECONDS)
@@ -588,6 +592,7 @@
M.AdjustParalysis(-3 SECONDS)
M.AdjustStunned(-3 SECONDS)
M.AdjustWeakened(-3 SECONDS)
M.AdjustKnockDown(-3 SECONDS)
update_flags |= M.adjustStaminaLoss(-1.5, FALSE)
M.SetSleeping(0)
return ..() | update_flags
@@ -681,8 +686,9 @@
if(prob(5))
to_chat(M, "<span class='notice'>[high_message]</span>")
M.AdjustParalysis(-4 SECONDS)
M.AdjustStunned(-2, FALSE)
M.AdjustWeakened(-2, FALSE)
M.AdjustStunned(-4 SECONDS)
M.AdjustWeakened(-4 SECONDS)
M.AdjustKnockDown(-4 SECONDS)
update_flags |= M.adjustStaminaLoss(-2, FALSE)
ADD_TRAIT(M, TRAIT_GOTTAGOFAST, id)
M.Jitter(6 SECONDS)
@@ -108,6 +108,7 @@
M.AdjustParalysis(-2 SECONDS)
M.AdjustStunned(-2 SECONDS)
M.AdjustWeakened(-2 SECONDS)
M.AdjustKnockDown(-2 SECONDS)
if(prob(4))
M.reagents.add_reagent("epinephrine", 1.2)
return ..() | update_flags
@@ -825,7 +826,6 @@
if(istype(H) && method == REAGENT_INGEST)
if(H.dna.species.taste_sensitivity < TASTE_SENSITIVITY_NO_TASTE) // If you can taste it, then you know how awful it is.
H.Weaken(4 SECONDS)
H.update_canmove()
to_chat(H, "<span class='danger'>Ugh! Eating that was a terrible idea!</span>")
if(HAS_TRAIT(H, TRAIT_NOHUNGER)) //If you don't eat, then you can't get food poisoning
return
@@ -58,6 +58,7 @@
M.AdjustParalysis(-2 SECONDS)
M.AdjustStunned(-2 SECONDS)
M.AdjustWeakened(-2 SECONDS)
M.AdjustKnockDown(-2 SECONDS)
M.SetSleeping(0)
if(prob(50))
update_flags |= M.adjustBrainLoss(-1, FALSE)
@@ -534,6 +535,7 @@
M.AdjustParalysis(-2 SECONDS)
M.AdjustStunned(-2 SECONDS)
M.AdjustWeakened(-2 SECONDS)
M.AdjustKnockDown(-2 SECONDS)
update_flags |= M.adjustStaminaLoss(-1*REAGENTS_EFFECT_MULTIPLIER, FALSE)
M.AdjustLoseBreath(-2 SECONDS, bound_lower = 10 SECONDS)
if(M.getOxyLoss() > 75)
@@ -697,6 +699,7 @@
M.AdjustStunned(-2 SECONDS)
if(prob(20))
M.AdjustWeakened(-2 SECONDS)
M.AdjustKnockDown(-2 SECONDS)
if(prob(5))
M.SetSleeping(0)
if(prob(5))
@@ -919,6 +922,7 @@
M.AdjustParalysis(-6 SECONDS)
M.AdjustStunned(-6 SECONDS)
M.AdjustWeakened(-6 SECONDS)
M.AdjustKnockDown(-6 SECONDS)
update_flags |= M.adjustStaminaLoss(-5*REAGENTS_EFFECT_MULTIPLIER, FALSE)
return ..() | update_flags
@@ -1125,6 +1129,7 @@
M.AdjustParalysis(-2 SECONDS)
M.AdjustStunned(-2 SECONDS)
M.AdjustWeakened(-2 SECONDS)
M.AdjustKnockDown(-2 SECONDS)
M.AdjustConfused(-10 SECONDS)
for(var/datum/reagent/R in M.reagents.reagent_list)
if(R != src)
@@ -346,6 +346,7 @@
M.AdjustParalysis(-2 SECONDS)
M.AdjustStunned(-4 SECONDS)
M.AdjustWeakened(-4 SECONDS)
M.AdjustKnockDown(-4 SECONDS)
update_flags |= M.adjustToxLoss(-2, FALSE)
update_flags |= M.adjustFireLoss(-2, FALSE)
update_flags |= M.adjustOxyLoss(-2, FALSE)
@@ -100,7 +100,7 @@
set name = "Empty Spray Bottle"
set category = "Object"
set src in usr
if(usr.stat || !usr.canmove || usr.restrained())
if(usr.stat || HAS_TRAIT(usr, TRAIT_HANDS_BLOCKED) || usr.restrained())
return
if(alert(usr, "Are you sure you want to empty that?", "Empty Bottle:", "Yes", "No") != "Yes")
return