* Soft crit

* Fix

* New define

* Fix shitcode

* Tabs not spaces

* Shitcomment

* Default to whispering in soft crit

* Fax
This commit is contained in:
Jordan Brown
2017-08-28 15:42:11 -04:00
committed by KorPhaeron
parent 33d0a8d2d0
commit c1ef78f8c9
10 changed files with 43 additions and 53 deletions

View File

@@ -43,6 +43,7 @@
//Health Defines //Health Defines
#define HEALTH_THRESHOLD_CRIT 0 #define HEALTH_THRESHOLD_CRIT 0
#define HEALTH_THRESHOLD_FULLCRIT -30
#define HEALTH_THRESHOLD_DEAD -100 #define HEALTH_THRESHOLD_DEAD -100
//Actual combat defines //Actual combat defines

View File

@@ -4,8 +4,9 @@
//mob/var/stat things //mob/var/stat things
#define CONSCIOUS 0 #define CONSCIOUS 0
#define UNCONSCIOUS 1 #define SOFT_CRIT 1
#define DEAD 2 #define UNCONSCIOUS 2
#define DEAD 3
//mob disabilities stat //mob disabilities stat

View File

@@ -214,28 +214,6 @@ GLOBAL_LIST_INIT(slot2type, list("head" = /obj/item/clothing/head/changeling, "w
obj_count++ obj_count++
return return
/*/datum/game_mode/changeling/check_finished()
var/changelings_alive = 0
for(var/datum/mind/changeling in changelings)
if(!iscarbon(changeling.current))
continue
if(changeling.current.stat==2)
continue
changelings_alive++
if (changelings_alive)
changelingdeath = 0
return ..()
else
if (!changelingdeath)
changelingdeathtime = world.time
changelingdeath = 1
if(world.time-changelingdeathtime > TIME_TO_GET_REVIVED)
return 1
else
return ..()
return 0*/
/datum/game_mode/proc/auto_declare_completion_changeling() /datum/game_mode/proc/auto_declare_completion_changeling()
if(changelings.len) if(changelings.len)
var/text = "<br><font size=3><b>The changelings were:</b></font>" var/text = "<br><font size=3><b>The changelings were:</b></font>"

View File

@@ -592,25 +592,25 @@ GLOBAL_LIST_EMPTY(possible_items_special)
var/captured_amount = 0 var/captured_amount = 0
var/area/centcom/holding/A = locate() in GLOB.sortedAreas var/area/centcom/holding/A = locate() in GLOB.sortedAreas
for(var/mob/living/carbon/human/M in A)//Humans. for(var/mob/living/carbon/human/M in A)//Humans.
if(M.stat==2)//Dead folks are worth less. if(M.stat == DEAD)//Dead folks are worth less.
captured_amount+=0.5 captured_amount+=0.5
continue continue
captured_amount+=1 captured_amount+=1
for(var/mob/living/carbon/monkey/M in A)//Monkeys are almost worthless, you failure. for(var/mob/living/carbon/monkey/M in A)//Monkeys are almost worthless, you failure.
captured_amount+=0.1 captured_amount+=0.1
for(var/mob/living/carbon/alien/larva/M in A)//Larva are important for research. for(var/mob/living/carbon/alien/larva/M in A)//Larva are important for research.
if(M.stat==2) if(M.stat == DEAD)
captured_amount+=0.5 captured_amount+=0.5
continue continue
captured_amount+=1 captured_amount+=1
for(var/mob/living/carbon/alien/humanoid/M in A)//Aliens are worth twice as much as humans. for(var/mob/living/carbon/alien/humanoid/M in A)//Aliens are worth twice as much as humans.
if(istype(M, /mob/living/carbon/alien/humanoid/royal/queen))//Queens are worth three times as much as humans. if(istype(M, /mob/living/carbon/alien/humanoid/royal/queen))//Queens are worth three times as much as humans.
if(M.stat==2) if(M.stat == DEAD)
captured_amount+=1.5 captured_amount+=1.5
else else
captured_amount+=3 captured_amount+=3
continue continue
if(M.stat==2) if(M.stat == DEAD)
captured_amount+=1 captured_amount+=1
continue continue
captured_amount+=2 captured_amount+=2

View File

@@ -687,6 +687,9 @@
return return
if(IsUnconscious() || IsSleeping() || getOxyLoss() > 50 || (status_flags & FAKEDEATH) || health <= HEALTH_THRESHOLD_CRIT) if(IsUnconscious() || IsSleeping() || getOxyLoss() > 50 || (status_flags & FAKEDEATH) || health <= HEALTH_THRESHOLD_CRIT)
if(stat == CONSCIOUS) if(stat == CONSCIOUS)
stat = SOFT_CRIT
update_canmove()
if(health <= HEALTH_THRESHOLD_FULLCRIT && stat == SOFT_CRIT)
stat = UNCONSCIOUS stat = UNCONSCIOUS
blind_eyes(1) blind_eyes(1)
update_canmove() update_canmove()

View File

@@ -53,7 +53,7 @@
var/datum/gas_mixture/breath var/datum/gas_mixture/breath
if(health <= HEALTH_THRESHOLD_CRIT || (pulledby && pulledby.grab_state >= GRAB_KILL && !getorganslot("breathing_tube"))) if(health <= HEALTH_THRESHOLD_FULLCRIT || (pulledby && pulledby.grab_state >= GRAB_KILL && !getorganslot("breathing_tube")))
losebreath++ losebreath++
//Suffocate //Suffocate

View File

@@ -241,7 +241,10 @@
return 1 return 1
/mob/living/proc/InCritical() /mob/living/proc/InCritical()
return (health < 0 && health > -100 && stat == UNCONSCIOUS) return (health < HEALTH_THRESHOLD_CRIT && health > HEALTH_THRESHOLD_DEAD && (stat == SOFT_CRIT || stat == UNCONSCIOUS))
/mob/living/proc/InFullCritical()
return (health < HEALTH_THRESHOLD_FULLCRIT && health > HEALTH_THRESHOLD_DEAD && stat == UNCONSCIOUS)
//This proc is used for mobs which are affected by pressure to calculate the amount of pressure that actually //This proc is used for mobs which are affected by pressure to calculate the amount of pressure that actually
//affects them once clothing is factored in. ~Errorage //affects them once clothing is factored in. ~Errorage

View File

@@ -37,36 +37,36 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
//kinda localization -- rastaf0 //kinda localization -- rastaf0
//same keys as above, but on russian keyboard layout. This file uses cp1251 as encoding. //same keys as above, but on russian keyboard layout. This file uses cp1251 as encoding.
// Location // Location
"<EFBFBD>" = "right hand", "ê" = "right hand",
"<EFBFBD>" = "left hand", "ä" = "left hand",
"<EFBFBD>" = "intercom", "ø" = "intercom",
// Department // Department
"<EFBFBD>" = "department", "ð" = "department",
"<EFBFBD>" = "Command", "ñ" = "Command",
"<EFBFBD>" = "Science", "ò" = "Science",
"<EFBFBD>" = "Medical", "ü" = "Medical",
"<EFBFBD>" = "Engineering", "ó" = "Engineering",
"<EFBFBD>" = "Security", "û" = "Security",
"<EFBFBD>" = "Supply", "ã" = "Supply",
"<EFBFBD>" = "Service", "ì" = "Service",
// Faction // Faction
"<EFBFBD>" = "Syndicate", "å" = "Syndicate",
"<EFBFBD>" = "CentCom", "í" = "CentCom",
// Species // Species
"<EFBFBD>" = "binary", "è" = "binary",
"<EFBFBD>" = "changeling", "ï" = "changeling",
"<EFBFBD>" = "alientalk", "ô" = "alientalk",
// Admin // Admin
"<EFBFBD>" = "admin", "ç" = "admin",
"<EFBFBD>" = "deadmin", "â" = "deadmin",
// Misc // Misc
"<EFBFBD>" = "AI Private", "ù" = "AI Private",
"<EFBFBD>" = "cords" "÷" = "cords"
)) ))
/mob/living/say(message, bubble_type,var/list/spans = list(), sanitize = TRUE, datum/language/language = null) /mob/living/say(message, bubble_type,var/list/spans = list(), sanitize = TRUE, datum/language/language = null)
@@ -108,7 +108,11 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
if(check_emote(original_message) || !can_speak_basic(original_message)) if(check_emote(original_message) || !can_speak_basic(original_message))
return return
var/in_full_critical = InFullCritical()
if(in_critical) if(in_critical)
if(!in_full_critical && !message_mode)
message_mode = MODE_WHISPER
if(!(crit_allowed_modes[message_mode])) if(!(crit_allowed_modes[message_mode]))
return return
else if(stat == UNCONSCIOUS) else if(stat == UNCONSCIOUS)
@@ -149,7 +153,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
message_range = 1 message_range = 1
spans |= SPAN_ITALICS spans |= SPAN_ITALICS
log_talk(src,"[key_name(src)] : [message]",LOGWHISPER) log_talk(src,"[key_name(src)] : [message]",LOGWHISPER)
if(in_critical) if(in_full_critical)
var/health_diff = round(-HEALTH_THRESHOLD_DEAD + health) var/health_diff = round(-HEALTH_THRESHOLD_DEAD + health)
// If we cut our message short, abruptly end it with a-.. // If we cut our message short, abruptly end it with a-..
var/message_len = length(message) var/message_len = length(message)

View File

@@ -3,7 +3,7 @@
//Cost function for suit Procs/Verbs/Abilities //Cost function for suit Procs/Verbs/Abilities
/obj/item/clothing/suit/space/space_ninja/proc/ninjacost(cost = 0, specificCheck = 0) /obj/item/clothing/suit/space/space_ninja/proc/ninjacost(cost = 0, specificCheck = 0)
var/mob/living/carbon/human/H = affecting var/mob/living/carbon/human/H = affecting
if((H.stat || H.incorporeal_move) && (specificCheck != N_ADRENALINE))//Will not return if user is using an adrenaline booster since you can use them when stat==1. if((H.stat || H.incorporeal_move) && (specificCheck != N_ADRENALINE))//Will not return if user is using an adrenaline booster since you can use them when stat==UNCONSCIOUS.
to_chat(H, "<span class='danger'>You must be conscious and solid to do this.</span>") to_chat(H, "<span class='danger'>You must be conscious and solid to do this.</span>")
return 1 return 1

View File

@@ -30,7 +30,7 @@
addtimer(CALLBACK(src, .proc/ninitialize_four, delay, U), delay) addtimer(CALLBACK(src, .proc/ninitialize_four, delay, U), delay)
/obj/item/clothing/suit/space/space_ninja/proc/ninitialize_four(delay, mob/living/carbon/human/U) /obj/item/clothing/suit/space/space_ninja/proc/ninitialize_four(delay, mob/living/carbon/human/U)
if(U.stat==2||U.health<=0) if(U.stat == DEAD|| U.health <= 0)
to_chat(U, "<span class='danger'><B>FĆAL �Rr�R</B>: 344--93#�&&21 BR��N |/|/aV� PATT$RN <B>RED</B>\nA-A-aB�rT�NG...</span>") to_chat(U, "<span class='danger'><B>FĆAL �Rr�R</B>: 344--93#�&&21 BR��N |/|/aV� PATT$RN <B>RED</B>\nA-A-aB�rT�NG...</span>")
unlock_suit() unlock_suit()
return return