Merge remote-tracking branch 'origin/master' into semi-sync

This commit is contained in:
Letter N
2020-12-29 10:37:06 +08:00
36 changed files with 236 additions and 49 deletions
+9
View File
@@ -89,6 +89,11 @@
to_chat(user, "<span class='warning'>You can't tackle while tased!</span>")
return
var/left_paralysis = HAS_TRAIT(user, TRAIT_PARALYSIS_L_ARM)
var/right_paralysis = HAS_TRAIT(user, TRAIT_PARALYSIS_R_ARM)
if(left_paralysis && right_paralysis)
to_chat(user, "<span class='warning'>You can't tackle without the use of your arms!</span>")
user.face_atom(A)
var/list/modifiers = params2list(params)
@@ -280,6 +285,10 @@
attack_mod -= 2
if(HAS_TRAIT(sacker, TRAIT_GIANT))
attack_mod += 2
var/left_paralysis = HAS_TRAIT(sacker, TRAIT_PARALYSIS_L_ARM)
var/right_paralysis = HAS_TRAIT(sacker, TRAIT_PARALYSIS_R_ARM)
if(left_paralysis || right_paralysis)
attack_mod -= 2
if(ishuman(target))
var/mob/living/carbon/human/S = sacker
@@ -31,9 +31,8 @@ Bonus
var/bleed = FALSE
var/pain = FALSE
threshold_desc = list(
"Resistance 9" = "Doubles the intensity of the immolation effect, but reduces the frequency of all of this symptom's effects.",
"Stage Speed 8" = "Increases explosion radius and explosion damage to the host when the host is wet.",
"Transmission 8" = "Additionally synthesizes chlorine trifluoride and napalm inside the host. More chemicals are synthesized if the resistance 9 threshold has been met."
"Resistance 7" = "Erodes the host's skin, causing them to bleed profusely.",
"Transmission 8" = "Eat's away at the host's musclemass, causing increased fatigue."
)
/datum/symptom/flesh_eating/Start(datum/disease/advance/A)
@@ -263,18 +263,18 @@
/datum/symptom/heal/coma/CanHeal(datum/disease/advance/A)
var/mob/living/M = A.affected_mob
if(M.getBruteLoss() + M.getFireLoss() >= 70 && !active_coma)
to_chat(M, "<span class='warning'>You feel yourself slip into a regenerative coma...</span>")
active_coma = TRUE
addtimer(CALLBACK(src, .proc/coma, M), 60)
if(HAS_TRAIT(M, TRAIT_DEATHCOMA))
return power
else if(M.IsUnconscious() || M.stat == UNCONSCIOUS)
return power * 0.9
else if(M.stat == SOFT_CRIT)
return power * 0.5
else if(M.IsSleeping())
return power * 0.25
else if(M.getBruteLoss() + M.getFireLoss() >= 70 && !active_coma)
to_chat(M, "<span class='warning'>You feel yourself slip into a regenerative coma...</span>")
active_coma = TRUE
addtimer(CALLBACK(src, .proc/coma, M), 60)
else if(M.IsUnconscious() || M.stat == UNCONSCIOUS)
return power * 0.9
/datum/symptom/heal/coma/proc/coma(mob/living/M)
if(deathgasp)
+38 -2
View File
@@ -13,6 +13,8 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code
var/save_key
/// Do not attempt to render a preview on examine. If this is on, it will display as \[flavor_name\]
var/examine_no_preview = FALSE
/// Examine FULLY views. Overrides examine_no_preview
var/examine_full_view = FALSE
/datum/element/flavor_text/Attach(datum/target, text = "", _name = "Flavor Text", _addendum, _max_len = MAX_FLAVOR_LEN, _always_show = FALSE, _edit = TRUE, _save_key, _examine_no_preview = FALSE)
. = ..()
@@ -37,7 +39,7 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code
if(can_edit && ismob(target)) //but only mobs receive the proc/verb for the time being
var/mob/M = target
LAZYOR(GLOB.mobs_with_editable_flavor_text[M], src)
M.verbs |= /mob/proc/manage_flavor_tests
add_verb(M, /mob/proc/manage_flavor_tests)
if(save_key && ishuman(target))
RegisterSignal(target, COMSIG_HUMAN_PREFS_COPIED_TO, .proc/update_prefs_flavor_text)
@@ -71,6 +73,9 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code
examine_list += "<span class='notice'><a href='?src=[REF(src)];show_flavor=[REF(target)]'>\[[flavor_name]\]</a></span>"
return
var/msg = replacetext(text, "\n", " ")
if(examine_full_view)
examine_list += "[msg]"
return
if(length_char(msg) <= 40)
examine_list += "<span class='notice'>[msg]</span>"
else
@@ -113,6 +118,21 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code
var/datum/element/flavor_text/F = choices[chosen]
F.set_flavor(src)
/mob/proc/set_pose()
set name = "Set Pose"
set desc = "Sets your temporary flavor text"
set category = "IC"
var/list/L = GLOB.mobs_with_editable_flavor_text[src]
var/datum/element/flavor_text/carbon/temporary/T
for(var/i in L)
if(istype(i, /datum/element/flavor_text/carbon/temporary))
T = i
if(!T)
to_chat(src, "<span class='warning'>Your mob type does not support temporary flavor text.</span>")
return
T.set_flavor(src)
/datum/element/flavor_text/proc/set_flavor(mob/user)
if(!(user in texts_by_atom))
return FALSE
@@ -135,7 +155,7 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code
var/static/list/i_dont_even_know_who_you_are = typecacheof(list(/datum/antagonist/abductor, /datum/antagonist/ert,
/datum/antagonist/nukeop, /datum/antagonist/wizard))
/datum/element/flavor_text/carbon/Attach(datum/target, text = "", _name = "Flavor Text", _addendum, _max_len = MAX_FLAVOR_LEN, _always_show = FALSE, _edit = TRUE, _save_key = "flavor_text", _examine_no_preview = FALSE)
/datum/element/flavor_text/carbon/Attach(datum/target, text = "", _name = "Flavor Text", _addendum, _max_len = MAX_FLAVOR_LEN, _always_show = FALSE, _edit = TRUE, _save_key, _examine_no_preview = FALSE)
if(!iscarbon(target))
return ELEMENT_INCOMPATIBLE
. = ..()
@@ -167,3 +187,19 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code
texts_by_atom[user] = ""
if(user.dna)
user.dna.features[save_key] = ""
/datum/element/flavor_text/carbon/temporary
examine_full_view = TRUE
max_len = 1024
/datum/element/flavor_text/carbon/temporary/Attach(datum/target, text, _name, _addendum, _max_len, _always_show, _edit, _save_key, _examine_no_preview)
. = ..()
if(. & ELEMENT_INCOMPATIBLE)
return
if(ismob(target))
add_verb(target, /mob/proc/set_pose)
/datum/element/flavor_Text/carbon/temporary/Detach(datum/source, force)
. = ..()
if(ismob(source))
remove_verb(source, /mob/proc/set_pose)