Diona Pain (#8966)

Diona now feel pain, although they only take 70% of the pain other species experience.
    Unathi now get a unique pain message, instead of the dear god one.
This commit is contained in:
Geeves
2020-06-08 19:04:49 +03:00
committed by GitHub
parent 4454b3380c
commit 77759d4a1f
10 changed files with 52 additions and 13 deletions
@@ -596,11 +596,10 @@
m_type = 1
else
if (!muzzled)
message = "screams!"
m_type = 2
message = pick(species.scream_emote)
else
message = "makes a very loud noise."
m_type = 2
m_type = 2
if("swish")
src.animate_tail_once()
@@ -148,7 +148,7 @@
continue
drop_from_inventory(r_hand)
var/emote_scream = pick("screams in pain and ", "lets out a sharp cry and ", "cries out and ")
var/emote_scream = pick(species.pain_item_drop_cry)
emote("me", 1, "[(species.flags & NO_PAIN) ? "" : emote_scream ]drops what they were holding in their [E.name]!")
else if(!(E.status & ORGAN_ROBOT) && (CE_DROPITEM in chem_effects) && prob(chem_effects[CE_DROPITEM]))
+1 -1
View File
@@ -1087,7 +1087,7 @@
return 0
if(shock_stage == 10)
custom_pain("[pick("It hurts so much", "You really need some painkillers", "Dear god, the pain")]!", 10, nohalloss = TRUE)
custom_pain("[pick(species.pain_messages)]!", 10, nohalloss = TRUE)
if(shock_stage >= 30)
if(shock_stage == 30)
@@ -67,6 +67,7 @@
/datum/unarmed_attack/bite
)
var/list/unarmed_attacks = null // For empty hand harm-intent attack
var/pain_mod = 1 // Pain multiplier
var/brute_mod = 1 // Physical damage multiplier.
var/burn_mod = 1 // Burn damage multiplier.
var/oxy_mod = 1 // Oxyloss modifier
@@ -96,9 +97,21 @@
var/death_sound
var/death_message = "falls limp and stops moving..."
var/death_message_range = 2
var/list/scream_emote = list("screams!")
var/knockout_message = "has been knocked unconscious!"
var/halloss_message = "slumps to the ground, too weak to continue fighting."
var/halloss_message_self = "You're in too much pain to keep going..."
var/list/pain_messages = list("It hurts so much", "You really need some painkillers", "Dear god, the pain") // passive message displayed to user when injured
var/list/pain_item_drop_cry = list("screams in pain and ", "lets out a sharp cry and ", "cries out and ")
// External Organ Pain Damage
var/organ_low_pain_message = "<b>Your %PARTNAME% hurts.</b>"
var/organ_med_pain_message = "<b><font size=3>Your %PARTNAME% hurts badly!</font></b>"
var/organ_high_pain_message = "<b><font size=3>Your %PARTNAME% is screaming out in pain!</font></b>"
var/organ_low_burn_message = "<span class='danger'>Your %PARTNAME% burns.</span>"
var/organ_med_burn_message = "<span class='danger'><font size=3>Your %PARTNAME% burns horribly!</font></span>"
var/organ_high_burn_message = "<span class='danger'><font size=4>Your %PARTNAME% feels like it's on fire!</font></span>"
// Environment tolerance/life processes vars.
var/reagent_tag //Used for metabolizing reagents.
@@ -45,6 +45,22 @@
even the simplest concepts of other minds. Their alien physiology allows them survive happily off a diet of nothing but light, \
water and other radiation."
organ_low_pain_message = "<b>The nymph making up our %PARTNAME% feels injured.</b>"
organ_med_pain_message = "<b><font size=3>The nymph making up our %PARTNAME% can barely manage the pain!</font></b>"
organ_high_pain_message = "<b><font size=3>The nymph making up our %PARTNAME% screams out in pain!</font></b>"
organ_low_burn_message = "<b>The nymph making up our %PARTNAME% notes a burning injury.</b>"
organ_med_burn_message = "<span class='danger'><font size=3>The nymph making up our %PARTNAME% burns terribly!</font></span>"
organ_high_burn_message = "<span class='danger'><font size=3>The nymph making up our %PARTNAME% screams in agony at the burning!</font></span>"
scream_emote = list("creaks in pain!", "rustles in agony!")
scream_emote = "screams!"
halloss_message = "creaks and crumbles to the floor."
halloss_message_self = "We can't take this much pain..."
pain_messages = list("We're in pain", "We hurt so much", "We can't stand the pain")
pain_item_drop_cry = list("creaks loudly and ", "rustles erratically and ", "twitches for a moment and ")
pain_mod = 0.7
grab_mod = 0.6 // Viney Tentacles and shit to cling onto
resist_mod = 1.5 // Reasonably stronk, not moreso than an Unathi or robot.
@@ -86,7 +102,7 @@
body_temperature = T0C + 15 //make the plant people have a bit lower body temperature, why not
appearance_flags = HAS_HAIR_COLOR | HAS_SKIN_TONE | HAS_SKIN_PRESET
flags = NO_BREATHE | NO_SCAN | IS_PLANT | NO_BLOOD | NO_PAIN | NO_SLIP | NO_CHUBBY | NO_ARTERIES
flags = NO_BREATHE | NO_SCAN | IS_PLANT | NO_BLOOD | NO_SLIP | NO_CHUBBY | NO_ARTERIES
spawn_flags = CAN_JOIN | IS_WHITELISTED | NO_AGE_MINIMUM
character_color_presets = list("Default Bark" = "#000000", "Light Bark" = "#141414", "Brown Bark" = "#2b1d0e", "Green Bark" = "#001400")
@@ -88,6 +88,8 @@
"Your scales bristle against the cold."
)
pain_messages = list("It hurts so much", "You really need some painkillers", "Ancestors, it hurts")
move_trail = /obj/effect/decal/cleanable/blood/tracks/claw
allowed_citizenships = list(CITIZENSHIP_IZWESKI, CITIZENSHIP_DOMINIA, CITIZENSHIP_BIESEL, CITIZENSHIP_SOL, CITIZENSHIP_COALITION, CITIZENSHIP_ELYRA, CITIZENSHIP_ERIDANI)
+1
View File
@@ -1346,6 +1346,7 @@ Note that amputating the affected organ does in fact remove the infection from t
return
var/last_pain = pain
if(owner)
amount *= owner.species.pain_mod
amount -= (owner.chem_effects[CE_PAINKILLER]/3)
if(amount <= 0)
return
+7 -6
View File
@@ -29,24 +29,25 @@ mob/var/next_pain_time = 0
if(burning)
switch(amount)
if(1 to 10)
msg = "<span class='danger'>Your [partname] burns.</span>"
msg = species.organ_low_burn_message
if(11 to 90)
flash_weak_pain()
msg = "<span class='danger'><font size=3>Your [partname] burns horribly!</font></span>"
msg = species.organ_med_burn_message
if(91 to 10000)
flash_pain()
msg = "<span class='danger'><font size=4>Your [partname] feels like it's on fire!</font></span>"
msg = species.organ_high_burn_message
else
switch(amount)
if(5 to 14)
msg = "<b>Your [partname] hurts.</b>"
msg = species.organ_low_pain_message
if(15 to 90)
flash_weak_pain()
msg = "<b><font size=3>Your [partname] hurts badly!</font></b>"
msg = species.organ_med_pain_message
if(91 to 10000)
flash_pain()
msg = "<b><font size=3>Your [partname] is screaming out in pain!</font></b>"
msg = species.organ_high_pain_message
if(msg && (msg != last_pain_message || prob(10)))
msg = replacetext(msg, "%PARTNAME%", partname)
last_pain_message = msg
to_chat(src, msg)
next_pain_time = world.time + 50
+1 -1
View File
@@ -480,7 +480,7 @@ datum/unit_test/mob_damage/diona/clone
datum/unit_test/mob_damage/diona/halloss
name = "MOB: Diona Halloss Damage Check"
damagetype = PAIN
expected_vulnerability = IMMUNE
expected_vulnerability = ARMORED
// =================================================================
// SPECIAL WHITTLE SNOWFLAKES aka IPC
+7
View File
@@ -0,0 +1,7 @@
author: Geeves
delete-after: True
changes:
- rscadd: "Diona now feel pain, although they only take 70% of the pain other species experience."
- rscadd: "Unathi now get a unique pain message, instead of the dear god one."