mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 10:21:11 +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.update_canmove()
|
||||||
C.remove_changeling_powers()
|
C.remove_changeling_powers()
|
||||||
|
|
||||||
C.emote("deathgasp")
|
C.emote("deathgasp", message = TRUE)
|
||||||
C.tod = worldtime2text()
|
C.tod = worldtime2text()
|
||||||
var/time_to_take = rand(800, 1200)
|
var/time_to_take = rand(800, 1200)
|
||||||
to_chat(C, "<span class='notice'>This will take [round((time_to_take/10))] seconds.</span>")
|
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
|
return
|
||||||
|
|
||||||
if(src.health < 0 && stat != DEAD) //crit people
|
if(src.health < 0 && stat != DEAD) //crit people
|
||||||
succumb()
|
succumb_proc(0)
|
||||||
ghostize(1)
|
ghostize(1)
|
||||||
else if(stat == DEAD)
|
else if(stat == DEAD)
|
||||||
ghostize(1)
|
ghostize(1)
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
if(healths)
|
if(healths)
|
||||||
healths.icon_state = "health6"
|
healths.icon_state = "health6"
|
||||||
if(!gibbed)
|
if(!gibbed)
|
||||||
emote("deathgasp")
|
emote("deathgasp", message = TRUE)
|
||||||
stat = DEAD
|
stat = DEAD
|
||||||
|
|
||||||
if(!gibbed)
|
if(!gibbed)
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
if(healths)
|
if(healths)
|
||||||
healths.icon_state = "health6"
|
healths.icon_state = "health6"
|
||||||
if(!gibbed)
|
if(!gibbed)
|
||||||
emote("deathgasp")
|
emote("deathgasp", message = TRUE)
|
||||||
stat = DEAD
|
stat = DEAD
|
||||||
icon_state = "larva_dead"
|
icon_state = "larva_dead"
|
||||||
|
|
||||||
|
|||||||
@@ -103,8 +103,6 @@
|
|||||||
H.mind.kills += "[name] ([ckey])"
|
H.mind.kills += "[name] ([ckey])"
|
||||||
|
|
||||||
if(!gibbed)
|
if(!gibbed)
|
||||||
emote("deathgasp") //Let the world KNOW WE ARE DEAD
|
|
||||||
|
|
||||||
update_canmove()
|
update_canmove()
|
||||||
stat = DEAD
|
stat = DEAD
|
||||||
tod = worldtime2text() //Weasellos time of death patch
|
tod = worldtime2text() //Weasellos time of death patch
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
if(healths)
|
if(healths)
|
||||||
healths.icon_state = "health5"
|
healths.icon_state = "health5"
|
||||||
if(!gibbed)
|
if(!gibbed)
|
||||||
emote("deathgasp")
|
emote("deathgasp", message = TRUE)
|
||||||
stat = DEAD
|
stat = DEAD
|
||||||
|
|
||||||
update_canmove()
|
update_canmove()
|
||||||
|
|||||||
@@ -56,10 +56,19 @@
|
|||||||
stat_allowed = UNCONSCIOUS
|
stat_allowed = UNCONSCIOUS
|
||||||
mob_type_blacklist_typelist = list(/mob/living/carbon/brain) // Everyone can deathgasp
|
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))
|
if(. && isalienadult(user))
|
||||||
playsound(user.loc, 'sound/voice/hiss6.ogg', 80, 1, 1)
|
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
|
/datum/emote/living/carbon/drool
|
||||||
key = "drool"
|
key = "drool"
|
||||||
|
|||||||
@@ -178,10 +178,15 @@
|
|||||||
|
|
||||||
/mob/living/verb/succumb()
|
/mob/living/verb/succumb()
|
||||||
set hidden = 1
|
set hidden = 1
|
||||||
|
succumb_proc(0)
|
||||||
|
|
||||||
|
/mob/living/proc/succumb_proc(var/gibbed = 0, var/from_deathgasp = FALSE)
|
||||||
if (src.health < 0 && stat != DEAD)
|
if (src.health < 0 && stat != DEAD)
|
||||||
src.attack_log += "[src] has succumbed to death with [health] points of health!"
|
src.attack_log += "[src] has succumbed to death with [health] points of health!"
|
||||||
src.apply_damage(maxHealth + src.health, OXY)
|
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>")
|
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_testing(src, "ur ded kid")
|
||||||
say_dead(message)
|
say_dead(message)
|
||||||
return
|
return
|
||||||
|
if(check_emote(message))
|
||||||
|
say_testing(src, "Emoted")
|
||||||
|
return
|
||||||
if (stat) // Unconcious.
|
if (stat) // Unconcious.
|
||||||
if(message_mode == MODE_WHISPER) //Lets us say our last words.
|
if(message_mode == MODE_WHISPER) //Lets us say our last words.
|
||||||
say_testing(src, "message mode was whisper.")
|
say_testing(src, "message mode was whisper.")
|
||||||
whisper(copytext(message, 3))
|
whisper(copytext(message, 3))
|
||||||
return
|
return
|
||||||
if(check_emote(message))
|
|
||||||
say_testing(src, "Emoted")
|
|
||||||
return
|
|
||||||
if(!can_speak_basic(message))
|
if(!can_speak_basic(message))
|
||||||
say_testing(src, "we aren't able to talk")
|
say_testing(src, "we aren't able to talk")
|
||||||
return
|
return
|
||||||
@@ -484,9 +484,6 @@ var/list/department_radio_keys = list(
|
|||||||
to_chat(usr, "<span class='danger'>Speech is currently admin-disabled.</span>")
|
to_chat(usr, "<span class='danger'>Speech is currently admin-disabled.</span>")
|
||||||
return
|
return
|
||||||
|
|
||||||
if(isUnconscious())
|
|
||||||
return
|
|
||||||
|
|
||||||
var/datum/speech/speech = create_speech(message)
|
var/datum/speech/speech = create_speech(message)
|
||||||
speech.language = parse_language(speech.message)
|
speech.language = parse_language(speech.message)
|
||||||
speech.mode = SPEECH_MODE_WHISPER
|
speech.mode = SPEECH_MODE_WHISPER
|
||||||
@@ -553,7 +550,7 @@ var/list/department_radio_keys = list(
|
|||||||
watcher.show_message(rendered, 2)
|
watcher.show_message(rendered, 2)
|
||||||
|
|
||||||
if (said_last_words) // dying words
|
if (said_last_words) // dying words
|
||||||
succumb(1)
|
succumb_proc(0)
|
||||||
|
|
||||||
returnToPool(speech)
|
returnToPool(speech)
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
if(stat == DEAD)
|
if(stat == DEAD)
|
||||||
return
|
return
|
||||||
if(!gibbed)
|
if(!gibbed)
|
||||||
emote("deathgasp")
|
emote("deathgasp", message = TRUE)
|
||||||
playsound(src, 'sound/machines/WXP_shutdown.ogg', 75, FALSE)
|
playsound(src, 'sound/machines/WXP_shutdown.ogg', 75, FALSE)
|
||||||
stat = DEAD
|
stat = DEAD
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
if(stat == DEAD)
|
if(stat == DEAD)
|
||||||
return
|
return
|
||||||
if(!gibbed)
|
if(!gibbed)
|
||||||
emote("deathgasp")
|
emote("deathgasp", message = TRUE)
|
||||||
stat = DEAD
|
stat = DEAD
|
||||||
update_canmove()
|
update_canmove()
|
||||||
if(!gibbed)
|
if(!gibbed)
|
||||||
|
|||||||
@@ -324,7 +324,7 @@ var/global/list/animal_count = list() //Stores types, and amount of animals of t
|
|||||||
return "[emote], [text]"
|
return "[emote], [text]"
|
||||||
return "says, [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)
|
if(timestopped)
|
||||||
return //under effects of time magick
|
return //under effects of time magick
|
||||||
if(stat)
|
if(stat)
|
||||||
@@ -512,7 +512,7 @@ var/global/list/animal_count = list() //Stores types, and amount of animals of t
|
|||||||
return
|
return
|
||||||
|
|
||||||
if(!gibbed)
|
if(!gibbed)
|
||||||
emote("deathgasp")
|
emote("deathgasp", message = TRUE)
|
||||||
|
|
||||||
health = 0 // so /mob/living/simple_animal/Life() doesn't magically revive them
|
health = 0 // so /mob/living/simple_animal/Life() doesn't magically revive them
|
||||||
living_mob_list -= src
|
living_mob_list -= src
|
||||||
|
|||||||
Reference in New Issue
Block a user