mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-30 08:29:57 +01:00
Many balance changes to halloss and damage. (#8160)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user