From 8eb38e5244533f6c34d6790075b94bb990c16834 Mon Sep 17 00:00:00 2001
From: Alphas00 <154434082+Alphas00@users.noreply.github.com>
Date: Tue, 10 Dec 2024 11:13:03 +0100
Subject: [PATCH 1/2] Fatten mode and vore fatness, Modular jumpsuit options
Ported Fatten vore mode
Ported vore fatness hide function which makes you appear fatter based on how fat the people you've vored are
Readded grey jumpsuits as an option in loadouts
Readded grey jumpsuits to ClothesMate
The helplessness prefs for clothes now ignore modular clothes as did the original modular grey jumpsuit
---
GainStation13/code/mechanics/helplessness.dm | 2 +-
.../code/modules/client/loadout/uniform.dm | 3 ++
.../code/modules/mob/living/species.dm | 2 +-
.../code/modules/vore/fatten_vore.dm | 53 +++++++++++++++++++
code/__DEFINES/voreconstants.dm | 1 +
code/datums/traits/good.dm | 2 +-
code/modules/vending/clothesmate.dm | 1 +
code/modules/vore/eating/belly_obj.dm | 2 +-
tgstation.dme | 2 +
9 files changed, 64 insertions(+), 4 deletions(-)
create mode 100644 GainStation13/code/modules/client/loadout/uniform.dm
create mode 100644 GainStation13/code/modules/vore/fatten_vore.dm
diff --git a/GainStation13/code/mechanics/helplessness.dm b/GainStation13/code/mechanics/helplessness.dm
index fe88e9af97..cf06e7e09a 100644
--- a/GainStation13/code/mechanics/helplessness.dm
+++ b/GainStation13/code/mechanics/helplessness.dm
@@ -9,7 +9,7 @@
to_chat(H, "You are too fat to wear anything on your back.")
return FALSE
- if(HAS_TRAIT(H, TRAIT_NO_JUMPSUIT) && slot == ITEM_SLOT_ICLOTHING)
+ if(I.modular_icon_location == null && HAS_TRAIT(H, TRAIT_NO_JUMPSUIT) && slot == ITEM_SLOT_ICLOTHING)
to_chat(H, "You are too fat to wear [I].")
return FALSE
diff --git a/GainStation13/code/modules/client/loadout/uniform.dm b/GainStation13/code/modules/client/loadout/uniform.dm
new file mode 100644
index 0000000000..f7b572108a
--- /dev/null
+++ b/GainStation13/code/modules/client/loadout/uniform.dm
@@ -0,0 +1,3 @@
+/datum/gear/uniform/modularjumpsuit
+ name = "Grey jumpsuit (Modular)"
+ path = /obj/item/clothing/under/color/grey
diff --git a/GainStation13/code/modules/mob/living/species.dm b/GainStation13/code/modules/mob/living/species.dm
index 133b41d9bc..c18bda8f14 100644
--- a/GainStation13/code/modules/mob/living/species.dm
+++ b/GainStation13/code/modules/mob/living/species.dm
@@ -142,7 +142,7 @@
ADD_TRAIT(fatty, TRAIT_NO_JUMPSUIT, HELPLESSNESS_TRAIT)
var/obj/item/clothing/under/jumpsuit = fatty.w_uniform
- if(istype(jumpsuit))
+ if(istype(jumpsuit) && jumpsuit.modular_icon_location == null)
to_chat(fatty, "[jumpsuit] can no longer contain your weight!")
fatty.dropItemToGround(jumpsuit)
diff --git a/GainStation13/code/modules/vore/fatten_vore.dm b/GainStation13/code/modules/vore/fatten_vore.dm
new file mode 100644
index 0000000000..de78c1dd3e
--- /dev/null
+++ b/GainStation13/code/modules/vore/fatten_vore.dm
@@ -0,0 +1,53 @@
+
+/obj/belly/release_all_contents(var/include_absorbed = FALSE, var/silent = FALSE)
+ if(iscarbon(owner))
+ var/mob/living/carbon/predator = owner
+ predator.hider_remove(src)
+ . = ..()
+
+/obj/belly/release_specific_contents(var/atom/movable/M, var/silent = FALSE)
+ if(iscarbon(owner))
+ var/mob/living/carbon/predator = owner
+ var/found = FALSE
+ for(var/prey in contents)
+ if(istype(prey, /mob/living/carbon))
+ found = TRUE
+ if(found)
+ predator.hider_add(src)
+ else
+ predator.hider_remove(src)
+ . = ..()
+
+/obj/belly/process_belly(var/times_fired,var/wait)
+////////////////////////// Vore Fatness /////////////////////////////
+ if(iscarbon(owner))
+ var/mob/living/carbon/predator = owner
+ var/found = FALSE
+ for(var/prey in contents)
+ if(istype(prey, /mob/living/carbon))
+ found = TRUE
+ if(found)
+ predator.hider_add(src)
+ else
+ predator.hider_remove(src)
+///////////////////////////// DM_FATTEN /////////////////////////////
+ if(digest_mode == DM_FATTEN)
+ if(iscarbon(owner))
+ var/mob/living/carbon/predator = owner
+ for(var/mob/living/M in contents)
+ var/mob/living/carbon/prey = M
+ if(iscarbon(prey) && predator.fatness_real)
+ if(predator.fatness_real > 50)
+ prey.adjust_fatness(predator.fatness_real * 0.02, FATTENING_TYPE_FOOD)
+ predator.adjust_fatness(-predator.fatness_real * 0.02, FATTENING_TYPE_FOOD)
+ if(predator.nutrition > NUTRITION_LEVEL_HUNGRY)
+ predator.nutrition -= 3
+ . = ..()
+
+/obj/belly/proc/fat_hide(var/mob/living/carbon/user)
+ var/preys_fatness = 0
+ for(var/prey in contents)
+ if(iscarbon(prey))
+ var/mob/living/carbon/cprey = prey
+ preys_fatness += cprey.fatness
+ return preys_fatness
diff --git a/code/__DEFINES/voreconstants.dm b/code/__DEFINES/voreconstants.dm
index 372c5b776c..93253a2aec 100644
--- a/code/__DEFINES/voreconstants.dm
+++ b/code/__DEFINES/voreconstants.dm
@@ -6,6 +6,7 @@
#define DM_DRAGON "Dragon"
#define DM_ABSORB "Absorb"
#define DM_UNABSORB "Un-absorb"
+#define DM_FATTEN "Fatten" // GS13 Edit - Added Fatten mode
#define DIGESTABLE (1<<0)
#define DEVOURABLE (1<<1)
diff --git a/code/datums/traits/good.dm b/code/datums/traits/good.dm
index e0793e952a..602c2abfbb 100644
--- a/code/datums/traits/good.dm
+++ b/code/datums/traits/good.dm
@@ -172,7 +172,7 @@
/datum/quirk/voracious
name = "Voracious"
- desc = "Nothing gets between you and your food. You eat twice as fast as everyone else!"
+ desc = "Nothing gets between you and your food. You eat and recover from stuffing twice as fast, while getting less full!" //GS13 Edit - Changed description
value = 1
mob_trait = TRAIT_VORACIOUS
gain_text = "You feel HONGRY."
diff --git a/code/modules/vending/clothesmate.dm b/code/modules/vending/clothesmate.dm
index 69ac3ef5ee..bd9a87687a 100644
--- a/code/modules/vending/clothesmate.dm
+++ b/code/modules/vending/clothesmate.dm
@@ -8,6 +8,7 @@
products = list(/obj/item/clothing/head/that = 4,
/obj/item/clothing/head/fedora = 3,
//GS13 EDIT START
+ /obj/item/clothing/under/color/grey = 20,
/obj/item/clothing/suit/jacket/letterman_gato = 5,
//GS13 EDIT END
/obj/item/clothing/head/beret = 3,
diff --git a/code/modules/vore/eating/belly_obj.dm b/code/modules/vore/eating/belly_obj.dm
index ba698b2eb4..9abd76a8b1 100644
--- a/code/modules/vore/eating/belly_obj.dm
+++ b/code/modules/vore/eating/belly_obj.dm
@@ -43,7 +43,7 @@
var/wet_loop = TRUE // Does this belly have a slimy internal loop?
//I don't think we've ever altered these lists. making them static until someone actually overrides them somewhere.
- var/tmp/static/list/digest_modes = list(DM_HOLD,DM_DIGEST,DM_HEAL,DM_NOISY,DM_ABSORB,DM_UNABSORB) // Possible digest modes
+ var/tmp/static/list/digest_modes = list(DM_HOLD,DM_DIGEST,DM_HEAL,DM_NOISY,DM_ABSORB,DM_UNABSORB,DM_FATTEN) // GS13 Edit- Added DM_FATTEN
var/tmp/mob/living/owner // The mob whose belly this is.
var/tmp/digest_mode = DM_HOLD // Current mode the belly is set to from digest_modes (+transform_modes if human)
diff --git a/tgstation.dme b/tgstation.dme
index 6255779b05..51d939c78d 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -4008,6 +4008,7 @@
#include "GainStation13\code\modules\cargo\packs.dm"
#include "GainStation13\code\modules\client\border_control.dm"
#include "GainStation13\code\modules\client\loadout\head.dm"
+#include "GainStation13\code\modules\client\loadout\uniform.dm"
#include "GainStation13\code\modules\client\preferences\preferences.dm"
#include "GainStation13\code\modules\clothing\under\jobs\modular_items.dm"
#include "GainStation13\code\modules\events\vent_clog.dm\vent_clog.dm"
@@ -4070,6 +4071,7 @@
#include "GainStation13\code\modules\vehicles\grocery_cart_scooter_unmortorized.dm"
#include "GainStation13\code\modules\vending\gatocola.dm"
#include "GainStation13\code\modules\vending\mealdor.dm"
+#include "GainStation13\code\modules\vore\fatten_vore.dm"
#include "GainStation13\code\modules\weapons\grenades.dm"
#include "GainStation13\code\obj\items\bluespace_belt.dm"
#include "GainStation13\code\obj\items\circuits.dm"
From ddef09510bf82ae441cf5575bbaa337964a247e0 Mon Sep 17 00:00:00 2001
From: Alphas00 <154434082+Alphas00@users.noreply.github.com>
Date: Wed, 11 Dec 2024 16:48:40 +0100
Subject: [PATCH 2/2] Hair Porting Define
Tweaked the file for GS13 ported hair to utilize a single, streamlined line of code to quickly integrate hair
---
.../new_player/sprite_accessories/hair_head.dm | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm b/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm
index 29ffcf5391..dda2bde3c1 100644
--- a/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm
+++ b/GainStation13/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm
@@ -1,11 +1,10 @@
//GS13 - markings, ported or our own (preferably mark where you took them from)
-/datum/sprite_accessory/hair/elize
- name = "Elize"
- icon = 'GainStation13/icons/mob/human_face.dmi'
- icon_state = "hair_elize"
+#define NEWHAIR(_name, new_state) /datum/sprite_accessory/hair/##new_state/icon_state=#new_state;/datum/sprite_accessory/hair/##new_state/name = #_name;/datum/sprite_accessory/hair/##new_state/icon = 'GainStation13/icons/mob/human_face.dmi'
+
+NEWHAIR(Elize, hair_elize)
+NEWHAIR(Lem, hair_lem)
+NEWHAIR(Straight (Floorlength), hair_straightfloorlength)
+
+#undef NEWHAIR
-/datum/sprite_accessory/hair/lem
- name = "Lem"
- icon = 'GainStation13/icons/mob/human_face.dmi'
- icon_state = "hair_lem"