Merge pull request #253 from sheepishgoat/fattening-damage-type

Fattening Damage Type
This commit is contained in:
evilew
2024-08-31 15:30:32 +02:00
committed by GitHub
7 changed files with 35 additions and 2 deletions
+7 -1
View File
@@ -5,5 +5,11 @@
"workbench.editorAssociations": {
"*.dmi": "imagePreview.previewEditor"
},
"files.exclude": {
"**/*.rpyc": true,
"**/*.rpa": true,
"**/*.rpymc": true,
"**/cache/": true
}
}
}
@@ -0,0 +1,2 @@
/obj/item/bdsm_whip/ridingcrop/fattening
damtype = FAT
+4
View File
@@ -10,6 +10,10 @@
#define CLONE "clone"
#define STAMINA "stamina"
#define BRAIN "brain"
// GS13 EDIT
#define FAT "fat"
/// What is the rate that one damage is converted to fatness?
#define FAT_DAMAGE_TO_FATNESS 4
//bitflag damage defines used for suicide_act
#define BRUTELOSS (1<<0)
@@ -43,6 +43,8 @@
//citadel code
if(AROUSAL)
adjustArousalLoss(damage * hit_percent)
if(FAT)
applyFatnessDamage(damage * hit_percent)
return TRUE
@@ -120,6 +122,12 @@
adjustStaminaLoss(diff, updating, forced)
/mob/living/carbon/applyFatnessDamage(amount)
var/fat_to_add = ((amount * CONFIG_GET(number/damage_multiplier)) * FAT_DAMAGE_TO_FATNESS)
adjust_fatness(fat_to_add, FATTENING_TYPE_WEAPON)
return fat_to_add
/** adjustOrganLoss
* inputs: slot (organ slot, like ORGAN_SLOT_HEART), amount (damage to be done), and maximum (currently an arbitrarily large number, can be set so as to limit damage)
* outputs:
@@ -2461,6 +2461,8 @@ GLOBAL_LIST_EMPTY(roundstart_races)
H.adjustOrganLoss(ORGAN_SLOT_BRAIN, damage * hit_percent * H.physiology.brain_mod)
if(AROUSAL) //Citadel edit - arousal
H.adjustArousalLoss(damage * hit_percent)
if(FAT)
H.applyFatnessDamage(damage * hit_percent)
return 1
/datum/species/proc/on_hit(obj/item/projectile/P, mob/living/carbon/human/H)
+11 -1
View File
@@ -25,6 +25,8 @@
adjustCloneLoss(damage * hit_percent)
if(STAMINA)
adjustStaminaLoss(damage * hit_percent)
if(FAT)
applyFatnessDamage(damage * hit_percent)
return 1
/mob/living/proc/apply_damage_type(damage = 0, damagetype = BRUTE) //like apply damage except it always uses the damage procs
@@ -41,6 +43,8 @@
return adjustCloneLoss(damage)
if(STAMINA)
return adjustStaminaLoss(damage)
if(FAT)
return applyFatnessDamage(damage)
/mob/living/proc/get_damage_amount(damagetype = BRUTE)
switch(damagetype)
@@ -58,7 +62,7 @@
return getStaminaLoss()
/mob/living/proc/apply_damages(brute = 0, burn = 0, tox = 0, oxy = 0, clone = 0, def_zone = null, blocked = FALSE, stamina = 0, brain = 0)
/mob/living/proc/apply_damages(brute = 0, burn = 0, tox = 0, oxy = 0, clone = 0, def_zone = null, blocked = FALSE, stamina = 0, brain = 0, fatness = 0)
if(blocked >= 100)
return 0
if(brute)
@@ -75,6 +79,8 @@
apply_damage(stamina, STAMINA, def_zone, blocked)
if(brain)
apply_damage(brain, BRAIN, def_zone, blocked)
if(fatness)
apply_damage(fatness, FAT, def_zone, blocked)
return 1
@@ -230,6 +236,10 @@
/mob/living/proc/setStaminaLoss(amount, updating_stamina = TRUE, forced = FALSE)
return
/// Apply fatness damage from weapons or items that have the fatness damage type.
/mob/living/proc/applyFatnessDamage(amount)
return
// heal ONE external organ, organ gets randomly selected from damaged ones.
/mob/living/proc/heal_bodypart_damage(brute = 0, burn = 0, stamina = 0, updating_health = TRUE)
adjustBruteLoss(-brute, FALSE) //zero as argument for no instant health update
+1
View File
@@ -3159,6 +3159,7 @@
#include "GainStation13\code\obj\weapons\alter_rays.dm"
#include "GainStation13\code\obj\weapons\fatbeam.dm"
#include "GainStation13\code\obj\weapons\fatoray.dm"
#include "GainStation13\icons\obj\vairous_weapons.dm"
#include "hyperstation\code\__DEFINES\economy.dm"
#include "hyperstation\code\__DEFINES\wendigo.dm"
#include "hyperstation\code\controllers\subsystem\economy.dm"