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:
BurgerLUA
2018-02-19 00:31:38 +01:00
committed by Werner
parent f690788793
commit 475519c539
8 changed files with 177 additions and 39 deletions
+6 -6
View File
@@ -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)
+1 -1
View File
@@ -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
View File
@@ -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)