Vomit no longer stuns (#21952)

* vomit no longer stun

* KnockOut on blood vomit

* review tweaks

* TRUE FALSE

* oops

* stun into should_confuse, 0 into FALSE, 1 into TRUE

* god damnit
This commit is contained in:
HMBGERDO
2023-08-28 13:53:26 +01:00
committed by GitHub
parent 0ff7e6188d
commit ab04ec8744
6 changed files with 19 additions and 15 deletions
+11 -7
View File
@@ -95,21 +95,25 @@
return FALSE
/mob/living/carbon/proc/vomit(lost_nutrition = 10, blood = 0, stun = 1, distance = 0, message = 1)
/mob/living/carbon/proc/vomit(lost_nutrition = 10, blood = 0, should_confuse = TRUE, distance = 0, message = 1)
. = TRUE
if(stat == DEAD || ismachineperson(src)) // Dead people and IPCs do not vomit particulates
return FALSE
if(stun)
Stun(8 SECONDS)
if(should_confuse)
if(blood)
KnockDown(10 SECONDS)
AdjustConfused(8 SECONDS)
Slowed(8 SECONDS, 1)
if(!blood && nutrition < 100) // Nutrition vomiting while already starving
if(message)
visible_message("<span class='warning'>[src] dry heaves!</span>", \
"<span class='userdanger'>You try to throw up, but there's nothing in your stomach!</span>")
if(stun)
Weaken(20 SECONDS)
if(should_confuse)
KnockDown(20 SECONDS)
AdjustConfused(20 SECONDS)
return
if(message)
@@ -122,13 +126,13 @@
if(blood)
if(T)
add_splatter_floor(T)
if(stun)
if(should_confuse)
adjustBruteLoss(3)
else
if(T)
T.add_vomit_floor()
adjust_nutrition(-lost_nutrition)
if(stun)
if(should_confuse)
adjustToxLoss(-3)
T = get_step(T, dir)
@@ -739,7 +739,7 @@
if(getToxLoss() >= 45 && nutrition > 20)
lastpuke ++
if(lastpuke >= 25) // about 25 second delay I guess
vomit(20, 0, 1, 0, 1)
vomit(20, 0, TRUE, 0, 1)
adjustToxLoss(-3)
lastpuke = 0
@@ -262,7 +262,7 @@
if(prob(20))
if(ishuman(M))
var/mob/living/carbon/human/H = M
H.vomit(lost_nutrition = 0, blood = TRUE, stun = FALSE)
H.vomit(lost_nutrition = 0, blood = TRUE, should_confuse = FALSE)
M.KnockDown(1 SECONDS)
else
update_flags |= M.adjustStaminaLoss(10, FALSE)
@@ -586,7 +586,7 @@
var/mob/living/carbon/human/H = M
H.physiology.stun_mod /= tenacity
H.physiology.stamina_mod /= tenacity
H.vomit(blood = TRUE, stun = FALSE) // just a visual, very gritty. don't do drugs kids
H.vomit(blood = TRUE, should_confuse = FALSE) // just a visual, very gritty. don't do drugs kids
H.LoseBreath(10 SECONDS) // procs 5 times, mostly a visual thing. damage could stack to cause a slowdown.
H.Confused(10 SECONDS)
@@ -856,7 +856,7 @@
if(volume < 20)
if(prob(10))
to_chat(H, "<span class='warning>You cough up some congealed blood.</span>")
H.vomit(blood = TRUE, stun = FALSE) //mostly visual
H.vomit(blood = TRUE, should_confuse = FALSE) //mostly visual
else if(prob(10))
var/overdose_message = pick("Your vision is tinted red for a moment.", "You can hear your heart beating.")
to_chat(H, "<span class='warning'>[overdose_message]</span>")
@@ -864,7 +864,7 @@
if(prob(10))
to_chat(H, "<span class='danger'>You choke on congealed blood!</span>")
H.AdjustLoseBreath(2 SECONDS)
H.vomit(blood = TRUE, stun = FALSE)
H.vomit(blood = TRUE, should_confuse = FALSE)
else if(prob(10))
var/overdose_message = pick("You're seeing red!", "Your heartbeat thunders in your ears!", "Your veins writhe under your skin!")
to_chat(H, "<span class='danger'>[overdose_message]</span>")