General and Diona Pain Tweaks (#9770)

This commit is contained in:
Geeves
2020-08-28 11:40:14 +02:00
committed by GitHub
parent 5b47fb0fc6
commit 1f8c14cdab
7 changed files with 34 additions and 23 deletions
+8 -10
View File
@@ -108,8 +108,8 @@ var/list/diona_banned_languages = list(
//This proc handles when diona take damage from being in darkness
/mob/living/carbon/proc/diona_darkness_damage(var/severity, var/datum/dionastats/DS)
adjustBruteLoss(severity*DS.trauma_factor)
adjustHalLoss(severity*DS.pain_factor, 1)
adjustBruteLoss(severity * DS.trauma_factor)
adjustHalLoss((severity * species.pain_mod) * DS.pain_factor) // pain mod here is to give a bit of padding to the amount of pain diona get, to make it less overbearing
DS.stored_energy = 0 //We reset the energy back to zero after calculating the damage. dont want it to go negative
/mob/living/carbon/proc/diona_handle_temperature(var/datum/dionastats/DS)
@@ -508,15 +508,13 @@ var/list/diona_banned_languages = list(
return health+(maxHealth*0.5)
/mob/living/carbon/proc/get_dionastats()
if (istype(src, /mob/living/carbon/alien/diona))
var/mob/living/carbon/alien/diona/T = src
return T.DS
return
if (istype(src, /mob/living/carbon/human))
var/mob/living/carbon/human/T = src
if (istype(T.species, /datum/species/diona))
return T.DS
return null
/mob/living/carbon/alien/diona/get_dionastats()
return DS
/mob/living/carbon/human/get_dionastats()
return DS
//Called on a nymph when it merges with a gestalt
//The nymph and gestalt get the combined total of both of their languages
@@ -58,7 +58,7 @@
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
pain_mod = 0.5
grab_mod = 0.6 // Viney Tentacles and shit to cling onto
resist_mod = 1.5 // Reasonably stronk, not moreso than an Unathi or robot.
+8 -8
View File
@@ -105,15 +105,15 @@
return 0
/mob/proc/is_diona()
//returns which type of diona we are, or zero
if (istype(src, /mob/living/carbon/human))
var/mob/living/carbon/human/T = src
if (istype(T.species, /datum/species/diona) || istype(src, /mob/living/carbon/human/diona))
return DIONA_WORKER
return FALSE
if (istype(src, /mob/living/carbon/alien/diona))
return DIONA_NYMPH
return 0
/mob/living/carbon/human/is_diona()
if(istype(species, /datum/species/diona))
return DIONA_WORKER
return FALSE
/mob/living/carbon/alien/diona/is_diona()
return DIONA_NYMPH
/proc/isskeleton(A)
if(istype(A, /mob/living/carbon/human) && (A:get_species() == SPECIES_SKELETON))
@@ -4,6 +4,7 @@
/obj/item/organ/internal
var/dead_icon // Icon to use when the organ has died.
var/damage_reduction = 0.5 //modifier for internal organ injury
var/unknown_pain_location = TRUE // if TRUE, pain messages will point to the parent organ, otherwise it will print the organ name
var/toxin_type = "undefined"
var/relative_size = 25 //Used for size calcs
var/on_mob_icon
@@ -1,3 +1,6 @@
/obj/item/organ/internal/diona
unknown_pain_location = FALSE
/obj/item/organ/internal/diona/process()
return
+4 -4
View File
@@ -49,7 +49,7 @@ mob/var/next_pain_time = 0
if(!(use_emote.message_type == AUDIBLE_MESSAGE && silent))
emote(force_emote)
next_pain_time = world.time + (100-power)
next_pain_time = world.time + 5 SECONDS
/mob/living/carbon/human/proc/handle_pain()
if(!can_feel_pain())
@@ -94,13 +94,13 @@ mob/var/next_pain_time = 0
if(prob(1) && !((I.status & ORGAN_DEAD) || BP_IS_ROBOTIC(I)) && I.damage > 5)
var/obj/item/organ/external/parent = get_organ(I.parent_organ)
var/pain = 10
var/message = "You feel a dull pain in your [parent.name]..."
var/message = I.unknown_pain_location ? "You feel a dull pain in your [parent.name]..." : "You feel a dull pain radiating from your [I.name]..."
if(I.is_bruised())
pain = 25
message = "You feel a stinging pain in your [parent.name]."
message = I.unknown_pain_location ? "You feel a stinging pain in your [parent.name]." : "You feel a stinging pain radiating from your [I.name]."
if(I.is_broken())
pain = 50
message = "You feel a sharp pain in your [parent.name]!"
message = I.unknown_pain_location ? "You feel a sharp pain in your [parent.name]!" : "You feel a sharp pain radiating from your [I.name]!"
src.custom_pain(message, pain, affecting = parent)
if(prob(1))