mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-22 04:22:39 +01:00
Junkfood Powernerf + Some pain and organ tweaks (#4127)
Added several new preservatives and flavorings in vending machine junkfood. As a result, junkfood is now more filling Tweaked pain messages. Penalties for Organ damage now start at >=1 instead of >0. Added Adipemcina, a fictional heart medication that specially reduces heart damage.
This commit is contained in:
@@ -74,12 +74,12 @@ var/const/BLOOD_VOLUME_SURVIVE = 122
|
||||
|
||||
if(!heart)
|
||||
blood_volume = 0
|
||||
else if(heart.damage > 1 && heart.damage < heart.min_bruised_damage)
|
||||
blood_volume *= 0.8
|
||||
else if(heart.damage >= heart.min_bruised_damage && heart.damage < heart.min_broken_damage)
|
||||
blood_volume *= 0.6
|
||||
else if(heart.damage >= heart.min_broken_damage && heart.damage < INFINITY)
|
||||
blood_volume *= 0.3
|
||||
else if(heart.is_broken())
|
||||
blood_volume *= ((BLOOD_VOLUME_SURVIVE*1.5)/BLOOD_VOLUME_SAFE) //Fuck hardcoded values if it means one extra division operation per tick
|
||||
else if(heart.is_bruised())
|
||||
blood_volume *= (BLOOD_VOLUME_BAD/BLOOD_VOLUME_SAFE)
|
||||
else if(heart.is_damaged())
|
||||
blood_volume *= (BLOOD_VOLUME_OKAY/BLOOD_VOLUME_SAFE)
|
||||
|
||||
//Effects of bloodloss
|
||||
switch(blood_volume)
|
||||
|
||||
@@ -214,7 +214,7 @@
|
||||
damage = 0
|
||||
|
||||
/obj/item/organ/proc/is_damaged()
|
||||
return damage > 0
|
||||
return damage >= 1 // Not zero because honestly who gives a shit about 0.01 organ damage
|
||||
|
||||
/obj/item/organ/proc/is_bruised()
|
||||
return damage >= min_bruised_damage
|
||||
|
||||
+22
-12
@@ -8,7 +8,7 @@ mob/var/next_pain_time = 0
|
||||
// partname is the name of a body part
|
||||
// amount is a num from 1 to 100
|
||||
mob/living/carbon/proc/pain(var/partname, var/amount, var/force, var/burning = 0)
|
||||
if(stat >= 1)
|
||||
if(stat >= 1)
|
||||
return
|
||||
if(species && (species.flags & NO_PAIN))
|
||||
return
|
||||
@@ -28,20 +28,20 @@ mob/living/carbon/proc/pain(var/partname, var/amount, var/force, var/burning = 0
|
||||
msg = "<span class='danger'>Your [partname] burns.</span>"
|
||||
if(11 to 90)
|
||||
flash_weak_pain()
|
||||
msg = "<span class='danger'><font size=2>Your [partname] burns badly!</font></span>"
|
||||
msg = "<span class='danger'><font size=2>Your [partname] burns horribly!</font></span>"
|
||||
if(91 to 10000)
|
||||
flash_pain()
|
||||
msg = "<span class='danger'><font size=3>OH GOD! Your [partname] is on fire!</font></span>"
|
||||
msg = "<span class='danger'><font size=3>Your [partname] feels like it's on fire!</font></span>"
|
||||
else
|
||||
switch(amount)
|
||||
if(1 to 10)
|
||||
msg = "<b>Your [partname] hurts.</b>"
|
||||
if(11 to 90)
|
||||
flash_weak_pain()
|
||||
msg = "<b><font size=2>Your [partname] hurts badly.</font></b>"
|
||||
msg = "<b><font size=2>Your [partname] hurts badly!</font></b>"
|
||||
if(91 to 10000)
|
||||
flash_pain()
|
||||
msg = "<b><font size=3>OH GOD! Your [partname] is hurting terribly!</font></b>"
|
||||
msg = "<b><font size=3>Your [partname] is screaming out in pain!</font></b>"
|
||||
if(msg && (msg != last_pain_message || prob(10)))
|
||||
last_pain_message = msg
|
||||
src << msg
|
||||
@@ -51,9 +51,9 @@ mob/living/carbon/proc/pain(var/partname, var/amount, var/force, var/burning = 0
|
||||
// message is the custom message to be displayed
|
||||
// flash_strength is 0 for weak pain flash, 1 for strong pain flash
|
||||
mob/living/carbon/human/proc/custom_pain(var/message, var/flash_strength)
|
||||
if(stat >= 1)
|
||||
if(stat >= 1)
|
||||
return
|
||||
if(species.flags & NO_PAIN)
|
||||
if(species.flags & NO_PAIN)
|
||||
return
|
||||
if(reagents.has_reagent("tramadol"))
|
||||
return
|
||||
@@ -94,10 +94,20 @@ mob/living/carbon/human/proc/handle_pain()
|
||||
|
||||
// Damage to internal organs hurts a lot.
|
||||
for(var/obj/item/organ/I in internal_organs)
|
||||
if(I.status & (ORGAN_DEAD|ORGAN_ROBOT)) continue
|
||||
if(I.damage > 2) if(prob(2))
|
||||
if(I.status & (ORGAN_DEAD|ORGAN_ROBOT))
|
||||
continue
|
||||
if(prob(2))
|
||||
var/obj/item/organ/external/parent = get_organ(I.parent_organ)
|
||||
src.custom_pain("You feel a sharp pain in your [parent.name]", 1)
|
||||
var/painmessage
|
||||
if(I.is_broken())
|
||||
painmessage = "You feel an excrutiating pain in your [parent.name]!"
|
||||
else if (I.is_bruised())
|
||||
painmessage = "You feel a sharp pain in your [parent.name]..."
|
||||
else if (I.is_damaged())
|
||||
painmessage = "You feel discomfort in your [parent.name]."
|
||||
if(painmessage)
|
||||
src.custom_pain(painmessage, I.is_bruised())
|
||||
//The less hardcoded values, the better.
|
||||
|
||||
var/toxDamageMessage = null
|
||||
var/toxMessageProb = 1
|
||||
@@ -113,10 +123,10 @@ mob/living/carbon/human/proc/handle_pain()
|
||||
toxDamageMessage = "Your whole body hurts."
|
||||
if(15 to 25)
|
||||
toxMessageProb = 3
|
||||
toxDamageMessage = "Your whole body hurts badly."
|
||||
toxDamageMessage = "Your whole body hurts badly!"
|
||||
if(26 to INFINITY)
|
||||
toxMessageProb = 5
|
||||
toxDamageMessage = "Your body aches all over, it's driving you mad."
|
||||
toxDamageMessage = "Your body aches all over, it's driving you mad!"
|
||||
|
||||
if(toxDamageMessage && prob(toxMessageProb))
|
||||
src.custom_pain(toxDamageMessage, getToxLoss() >= 15)
|
||||
Reference in New Issue
Block a user