Many balance changes to halloss and damage. (#8160)

This commit is contained in:
Matt Atlas
2020-02-08 15:39:06 +01:00
committed by GitHub
parent 52f9c66c51
commit 16aeb5c9d9
16 changed files with 117 additions and 70 deletions
+9 -15
View File
@@ -81,8 +81,9 @@
..()
/mob/living/carbon/attack_hand(mob/M as mob)
if(!istype(M, /mob/living/carbon)) return
if (!M.can_use_hand())
if(!istype(M, /mob/living/carbon))
return
if(!M.can_use_hand())
return
if(M.a_intent != I_HELP)
@@ -115,29 +116,26 @@
willfully_sleeping = FALSE
for(var/datum/disease/D in viruses)
if(D.spread_by_touch())
M.contract_disease(D, 0, 1, CONTACT_HANDS)
for(var/datum/disease/D in M.viruses)
if(D.spread_by_touch())
contract_disease(D, 0, 1, CONTACT_HANDS)
return
/mob/living/carbon/electrocute_act(var/shock_damage, var/obj/source, var/siemens_coeff = 1.0, var/def_zone = null, var/tesla_shock = 0, var/ground_zero)
if(status_flags & GODMODE) return 0 //godmode
if (!tesla_shock)
if(status_flags & GODMODE)
return 0 //godmode
if(!tesla_shock)
shock_damage *= siemens_coeff
if (shock_damage<1)
if(shock_damage<1)
return 0
src.apply_damage(shock_damage, BURN, def_zone, used_weapon="Electrocution")
playsound(loc, "sparks", 50, 1, -1)
if (shock_damage > 15 || tesla_shock)
if(shock_damage > 15 || tesla_shock)
src.visible_message(
span("warning", "[src] was shocked by the [source]!"), \
span("danger", "You feel a powerful shock course through your body!"), \
@@ -151,9 +149,7 @@
span("warning", "You feel a mild shock course through your body."), \
span("warning", "You hear a light zapping.") \
)
spark(loc, 5, alldirs)
return shock_damage
/mob/proc/swap_hand()
@@ -166,7 +162,7 @@
if(item_in_hand:wielded == 1)
to_chat(usr, span("warning", "Your other hand is too busy holding the [item_in_hand.name]"))
return
src.hand = !( src.hand )
src.hand = !src.hand
if(hud_used.l_hand_hud_object && hud_used.r_hand_hud_object)
if(hand) //This being 1 means the left hand is in use
hud_used.l_hand_hud_object.icon_state = "l_hand_active"
@@ -181,10 +177,8 @@
return
/mob/living/carbon/proc/activate_hand(var/selhand) //0 or "r" or "right" for right hand; 1 or "l" or "left" for left hand.
if(istext(selhand))
selhand = lowertext(selhand)
if(selhand == "right" || selhand == "r")
selhand = 0
if(selhand == "left" || selhand == "l")
@@ -1367,9 +1367,7 @@
span("warning", "A spike of pain jolts your [organ.name] as you bump [O] inside."), \
span("warning", "Your movement jostles [O] in your [organ.name] painfully."), \
span("warning", "Your movement jostles [O] in your [organ.name] painfully."))
to_chat(src, msg)
organ.take_damage(rand(1, 3), sharp = TRUE, edge = TRUE, used_weapon = O)
custom_pain(msg, 10, 10, organ)
/mob/living/carbon/human/verb/check_pulse()
set category = "Object"
@@ -22,14 +22,16 @@
return amount
/mob/living/carbon/human/adjustBrainLoss(var/amount)
if(status_flags & GODMODE) return 0 //godmode
if(status_flags & GODMODE)
return 0 //godmode
if(should_have_organ(BP_BRAIN))
var/obj/item/organ/internal/brain/sponge = internal_organs_by_name[BP_BRAIN]
if(sponge)
sponge.take_internal_damage(amount)
/mob/living/carbon/human/setBrainLoss(var/amount)
if(status_flags & GODMODE) return 0 //godmode
if(status_flags & GODMODE)
return 0 //godmode
if(should_have_organ(BP_BRAIN))
var/obj/item/organ/internal/brain/sponge = internal_organs_by_name[BP_BRAIN]
if(sponge)
@@ -37,7 +39,8 @@
updatehealth()
/mob/living/carbon/human/getBrainLoss()
if(status_flags & GODMODE) return 0 //godmode
if(status_flags & GODMODE)
return 0 //godmode
if(should_have_organ(BP_BRAIN))
var/obj/item/organ/internal/brain/sponge = internal_organs_by_name[BP_BRAIN]
if(sponge)
@@ -114,15 +117,18 @@
BITSET(hud_updateflag, HEALTH_HUD)
/mob/living/carbon/human/Stun(amount)
if(HULK in mutations) return
if(HULK in mutations)
return
..()
/mob/living/carbon/human/Weaken(amount)
if(HULK in mutations) return
if(HULK in mutations)
return
..()
/mob/living/carbon/human/Paralyse(amount)
if(HULK in mutations) return
if(HULK in mutations)
return
// Notify our AI if they can now control the suit.
if(wearing_rig && !stat && paralysis < amount) //We are passing out right this second.
wearing_rig.notify_ai("<span class='danger'>Warning: user consciousness failure. Mobility control passed to integrated intelligence system.</span>")
@@ -386,7 +392,7 @@ This function restores all organs.
/mob/living/carbon/human/proc/get_organ(var/zone)
if(!zone) zone = BP_CHEST
if (zone in list( BP_EYES, BP_MOUTH ))
if (zone in list(BP_EYES, BP_MOUTH))
zone = BP_HEAD
return organs_by_name[zone]
@@ -401,7 +407,7 @@ This function restores all organs.
//Handle other types of damage
if(damagetype != BRUTE && damagetype != BURN)
if(!stat && damagetype == PAIN && (can_feel_pain()))
if ((damage > 25 && prob(20)) || (damage > 50 && prob(60)))
if((damage > 25 && prob(20)) || (damage > 50 && prob(60)))
emote("scream")
..(damage, damagetype, def_zone, blocked)
@@ -436,12 +442,11 @@ This function restores all organs.
damage *= species.brute_mod
if(organ.take_damage(damage, 0, sharp, edge, used_weapon, damage_flags = damage_flags))
UpdateDamageIcon()
if(BURN)
damageoverlaytemp = 20
if(damage > 0)
damage *= species.burn_mod
if(organ.take_damage(0, damage, sharp, edge, used_weapon, damage_flags = damage_flags))
UpdateDamageIcon()
@@ -451,20 +456,17 @@ This function restores all organs.
return 1
/mob/living/carbon/human/apply_radiation(var/rads)
if (species && rads > 0)
if(species && rads > 0)
rads = rads * species.radiation_mod
..(rads)
/mob/living/carbon/human/proc/get_shock()
if (!can_feel_pain())
if(!can_feel_pain())
return 0
var/traumatic_shock = getHalLoss() // Pain.
traumatic_shock -= chem_effects[CE_PAINKILLER]
if(stat == UNCONSCIOUS)
traumatic_shock *= 0.6
return max(0,traumatic_shock)
/mob/living/carbon/human/remove_blood_simple(var/blood)
@@ -288,11 +288,6 @@ emp_act
if(prob(effective_force) && head && !istype(head, /obj/item/clothing/head/helmet))
visible_message("<span class='danger'>[src] [species.knockout_message]</span>")
apply_effect(20, PARALYZE, blocked)
else
//Easier to score a stun but lasts less time
if(prob(effective_force + 10))
visible_message("<span class='danger'>[src] has been knocked down!</span>")
apply_effect(6, WEAKEN, blocked)
//Apply blood
if(!(I.flags & NOBLOODY))
@@ -58,7 +58,8 @@
tally += 1.5
if (can_feel_pain())
if(shock_stage >= 10) tally += 3
if(shock_stage >= 10)
tally += 3
if(is_asystole())
tally += 10 //heart attacks are kinda distracting
+3 -3
View File
@@ -61,7 +61,7 @@
//Updates the number of stored chemicals for powers
handle_changeling()
//Organs and blood
//Organs
handle_organs()
stabilize_body_temperature() //Body temperature adjusts itself (self-regulation)
@@ -749,10 +749,10 @@
for(var/atom/a in hallucinations)
qdel(a)
if(get_shock() >= species.total_health)
if(get_shock() >= (species.total_health * 0.75))
if(!stat)
to_chat(src, "<span class='warning'>[species.halloss_message_self]</span>")
src.visible_message("<B>[src]</B> [species.halloss_message].")
src.visible_message("<B>[src]</B> [species.halloss_message]")
Paralyse(10)
if(paralysis || sleeping)
-3
View File
@@ -28,7 +28,6 @@
updatehealth()
return 1
/mob/living/proc/apply_damages(var/brute = 0, var/burn = 0, var/tox = 0, var/oxy = 0, var/clone = 0, var/halloss = 0, var/def_zone = null, var/blocked = 0)
if(blocked >= 100) return 0
if(brute) apply_damage(brute, BRUTE, def_zone, blocked)
@@ -39,8 +38,6 @@
if(halloss) apply_damage(halloss, PAIN, def_zone, blocked)
return 1
/mob/living/proc/apply_effect(var/effect = 0,var/effecttype = STUN, var/blocked = 0)
if(!effect || (blocked >= 100)) return 0
switch(effecttype)