diff --git a/.vscode/settings.json b/.vscode/settings.json index 69761b02..1e30c940 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -5,5 +5,11 @@ "workbench.editorAssociations": { "*.dmi": "imagePreview.previewEditor" + }, + "files.exclude": { + "**/*.rpyc": true, + "**/*.rpa": true, + "**/*.rpymc": true, + "**/cache/": true } -} \ No newline at end of file +} diff --git a/GainStation13/icons/obj/vairous_weapons.dm b/GainStation13/icons/obj/vairous_weapons.dm new file mode 100644 index 00000000..18e12f1b --- /dev/null +++ b/GainStation13/icons/obj/vairous_weapons.dm @@ -0,0 +1,2 @@ +/obj/item/bdsm_whip/ridingcrop/fattening + damtype = FAT diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm index 9de2e282..2aa6ffe9 100644 --- a/code/__DEFINES/combat.dm +++ b/code/__DEFINES/combat.dm @@ -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) diff --git a/code/modules/mob/living/carbon/damage_procs.dm b/code/modules/mob/living/carbon/damage_procs.dm index 27a793b5..e84886b2 100644 --- a/code/modules/mob/living/carbon/damage_procs.dm +++ b/code/modules/mob/living/carbon/damage_procs.dm @@ -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: diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 27820d7c..27e7fc32 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -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) diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index 60ba3cb7..ac5764d3 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -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 diff --git a/tgstation.dme b/tgstation.dme index a618bcb1..369210fa 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -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"