mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 02:16:05 +00:00
Whispering in crit makes you succumb again (#21216)
* Fixes crit whisper + deathgasp * Fucking runtimes * Another dumb bug * Verbs => Proc * Special deathgasps * If I find you again * Most definitively works
This commit is contained in:
@@ -665,7 +665,7 @@
|
||||
C.update_canmove()
|
||||
C.remove_changeling_powers()
|
||||
|
||||
C.emote("deathgasp")
|
||||
C.emote("deathgasp", message = TRUE)
|
||||
C.tod = worldtime2text()
|
||||
var/time_to_take = rand(800, 1200)
|
||||
to_chat(C, "<span class='notice'>This will take [round((time_to_take/10))] seconds.</span>")
|
||||
|
||||
@@ -355,7 +355,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
return
|
||||
|
||||
if(src.health < 0 && stat != DEAD) //crit people
|
||||
succumb()
|
||||
succumb_proc(0)
|
||||
ghostize(1)
|
||||
else if(stat == DEAD)
|
||||
ghostize(1)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
if(healths)
|
||||
healths.icon_state = "health6"
|
||||
if(!gibbed)
|
||||
emote("deathgasp")
|
||||
emote("deathgasp", message = TRUE)
|
||||
stat = DEAD
|
||||
|
||||
if(!gibbed)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
if(healths)
|
||||
healths.icon_state = "health6"
|
||||
if(!gibbed)
|
||||
emote("deathgasp")
|
||||
emote("deathgasp", message = TRUE)
|
||||
stat = DEAD
|
||||
icon_state = "larva_dead"
|
||||
|
||||
|
||||
@@ -103,8 +103,6 @@
|
||||
H.mind.kills += "[name] ([ckey])"
|
||||
|
||||
if(!gibbed)
|
||||
emote("deathgasp") //Let the world KNOW WE ARE DEAD
|
||||
|
||||
update_canmove()
|
||||
stat = DEAD
|
||||
tod = worldtime2text() //Weasellos time of death patch
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
if(healths)
|
||||
healths.icon_state = "health5"
|
||||
if(!gibbed)
|
||||
emote("deathgasp")
|
||||
emote("deathgasp", message = TRUE)
|
||||
stat = DEAD
|
||||
|
||||
update_canmove()
|
||||
|
||||
@@ -56,10 +56,19 @@
|
||||
stat_allowed = UNCONSCIOUS
|
||||
mob_type_blacklist_typelist = list(/mob/living/carbon/brain) // Everyone can deathgasp
|
||||
|
||||
/datum/emote/living/deathgasp/run_emote(mob/user, params)
|
||||
/datum/emote/living/deathgasp/run_emote(mob/living/user, params)
|
||||
if(/datum/dna/gene/disability/elvis in user.active_genes)
|
||||
user.emote("fart", ignore_status = 1)
|
||||
message = "has left the building..."
|
||||
if(!issilent(user) && (M_HARDCORE in user.mutations))
|
||||
message = "whispers with their final breath, <i>'i told u i was hardcore..'</i>"
|
||||
. = ..()
|
||||
if(. && isalienadult(user))
|
||||
playsound(user.loc, 'sound/voice/hiss6.ogg', 80, 1, 1)
|
||||
if (. && user.stat == UNCONSCIOUS && !params)
|
||||
user.succumb_proc(0, 1)
|
||||
message = initial(message)
|
||||
|
||||
|
||||
/datum/emote/living/carbon/drool
|
||||
key = "drool"
|
||||
|
||||
@@ -178,10 +178,15 @@
|
||||
|
||||
/mob/living/verb/succumb()
|
||||
set hidden = 1
|
||||
succumb_proc(0)
|
||||
|
||||
/mob/living/proc/succumb_proc(var/gibbed = 0, var/from_deathgasp = FALSE)
|
||||
if (src.health < 0 && stat != DEAD)
|
||||
src.attack_log += "[src] has succumbed to death with [health] points of health!"
|
||||
src.apply_damage(maxHealth + src.health, OXY)
|
||||
death(0)
|
||||
if (!from_deathgasp)
|
||||
emote("deathgasp", message = TRUE)
|
||||
death(gibbed)
|
||||
to_chat(src, "<span class='info'>You have given up life and succumbed to death.</span>")
|
||||
|
||||
|
||||
|
||||
@@ -117,14 +117,14 @@ var/list/department_radio_keys = list(
|
||||
say_testing(src, "ur ded kid")
|
||||
say_dead(message)
|
||||
return
|
||||
if(check_emote(message))
|
||||
say_testing(src, "Emoted")
|
||||
return
|
||||
if (stat) // Unconcious.
|
||||
if(message_mode == MODE_WHISPER) //Lets us say our last words.
|
||||
say_testing(src, "message mode was whisper.")
|
||||
whisper(copytext(message, 3))
|
||||
return
|
||||
if(check_emote(message))
|
||||
say_testing(src, "Emoted")
|
||||
return
|
||||
if(!can_speak_basic(message))
|
||||
say_testing(src, "we aren't able to talk")
|
||||
return
|
||||
@@ -484,9 +484,6 @@ var/list/department_radio_keys = list(
|
||||
to_chat(usr, "<span class='danger'>Speech is currently admin-disabled.</span>")
|
||||
return
|
||||
|
||||
if(isUnconscious())
|
||||
return
|
||||
|
||||
var/datum/speech/speech = create_speech(message)
|
||||
speech.language = parse_language(speech.message)
|
||||
speech.mode = SPEECH_MODE_WHISPER
|
||||
@@ -553,7 +550,7 @@ var/list/department_radio_keys = list(
|
||||
watcher.show_message(rendered, 2)
|
||||
|
||||
if (said_last_words) // dying words
|
||||
succumb(1)
|
||||
succumb_proc(0)
|
||||
|
||||
returnToPool(speech)
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
if(stat == DEAD)
|
||||
return
|
||||
if(!gibbed)
|
||||
emote("deathgasp")
|
||||
emote("deathgasp", message = TRUE)
|
||||
playsound(src, 'sound/machines/WXP_shutdown.ogg', 75, FALSE)
|
||||
stat = DEAD
|
||||
update_icon()
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
if(stat == DEAD)
|
||||
return
|
||||
if(!gibbed)
|
||||
emote("deathgasp")
|
||||
emote("deathgasp", message = TRUE)
|
||||
stat = DEAD
|
||||
update_canmove()
|
||||
if(!gibbed)
|
||||
|
||||
@@ -324,7 +324,7 @@ var/global/list/animal_count = list() //Stores types, and amount of animals of t
|
||||
return "[emote], [text]"
|
||||
return "says, [text]";
|
||||
|
||||
/mob/living/simple_animal/emote(var/act, var/type, var/desc, var/auto)
|
||||
/mob/living/simple_animal/emote(var/act, var/type, var/desc, var/auto, var/message = null)
|
||||
if(timestopped)
|
||||
return //under effects of time magick
|
||||
if(stat)
|
||||
@@ -512,7 +512,7 @@ var/global/list/animal_count = list() //Stores types, and amount of animals of t
|
||||
return
|
||||
|
||||
if(!gibbed)
|
||||
emote("deathgasp")
|
||||
emote("deathgasp", message = TRUE)
|
||||
|
||||
health = 0 // so /mob/living/simple_animal/Life() doesn't magically revive them
|
||||
living_mob_list -= src
|
||||
|
||||
Reference in New Issue
Block a user