diff --git a/GainStation13/code/modules/mob/living/brap.dm b/GainStation13/code/modules/mob/living/brap.dm
index b51e368b..762279ad 100644
--- a/GainStation13/code/modules/mob/living/brap.dm
+++ b/GainStation13/code/modules/mob/living/brap.dm
@@ -4,36 +4,17 @@
message = " "
emote_type = EMOTE_AUDIBLE
-/datum/emote/living/brap/select_message_type(mob/user)
+/datum/emote/living/brap/select_message_type(var/mob/user)
return pick("farts loudly!", "cuts a fat one!", "rips absolute ass!")
-
-
-/datum/emote/living/brap/run_emote(mob/living/user, params)
+/datum/emote/living/brap/run_emote(var/mob/living/user, params)
if(!ishuman(user))
return FALSE
- var/fartSoundChoice = rand(7)
- switch(fartSoundChoice)
- if(0)
- playsound(user, 'GainStation13/sound/voice/brap3.ogg', 50, 1, -1)
- if(1)
- playsound(user, 'GainStation13/sound/voice/brap4.ogg', 50, 1, -1)
- if(2)
- playsound(user, 'GainStation13/sound/voice/brap2.ogg', 50, 1, -1)
- if(3)
- playsound(user, 'GainStation13/sound/voice/brap1.ogg', 50, 1, -1)
- if(4)
- playsound(user, 'GainStation13/sound/voice/brap5.ogg', 50, 1, -1)
- if(5)
- playsound(user, 'GainStation13/sound/voice/brap6.ogg', 50, 1, -1)
- if(6)
- playsound(user, 'GainStation13/sound/voice/brap7.ogg', 50, 1, -1)
- if(7)
- playsound(user, 'GainStation13/sound/voice/brap8.ogg', 50, 1, -1)
+ var/turf/source = get_turf(user)
+ var/sound/farting = sound(get_sfx("fart"))
+ for(var/mob/living/M in get_hearers_in_view(3, source))
+ if(M.client && M.client.prefs.cit_toggles & FARTING_NOISES)
+ SEND_SOUND(M, farting)
. = ..()
-
-
-
-
diff --git a/code/__DEFINES/citadel_defines.dm b/code/__DEFINES/citadel_defines.dm
index 859824ee..a1d95966 100644
--- a/code/__DEFINES/citadel_defines.dm
+++ b/code/__DEFINES/citadel_defines.dm
@@ -125,15 +125,17 @@
#define STAMINA_SOFTCRIT_TRADITIONAL 0 //same as STAMINA_SOFTCRIT except for the more traditional health calculations
#define STAMINA_CRIT_TRADITIONAL -40 //ditto, but for STAMINA_CRIT
-#define CRAWLUNDER_DELAY 30 //Delay for crawling under a standing mob
+#define CRAWLUNDER_DELAY 30 //Delay for crawling under a standing mob
//Citadel toggles because bitflag memes
#define MEDIHOUND_SLEEPER (1<<0)
#define EATING_NOISES (1<<1)
#define DIGESTION_NOISES (1<<2)
#define TRASH_FORCEFEED (1<<3)
+#define FARTING_NOISES (1<<4) //GS13
-#define TOGGLES_CITADEL (EATING_NOISES|DIGESTION_NOISES)
+//toggles on by default
+#define TOGGLES_CITADEL (EATING_NOISES|DIGESTION_NOISES|FARTING_NOISES)
//component stuff
#define COMSIG_COMBAT_TOGGLED "combatmode_toggled" //called by combat mode toggle on all equipped items. args: (mob/user, combatmode)
diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm
index ccee8f3c..0f702350 100644
--- a/code/__DEFINES/sound.dm
+++ b/code/__DEFINES/sound.dm
@@ -10,7 +10,6 @@
#define CHANNEL_BUZZ 1018
#define CHANNEL_BICYCLE 1017
-
//CIT CHANNELS - TRY NOT TO REGRESS
#define CHANNEL_PRED 1010
#define CHANNEL_DIGEST 1009
@@ -19,17 +18,16 @@
//Hyperstation Channels
#define CHANNEL_REACTOR_ALERT 1007 // reactor sounds
+//GS13 Channels
+#define CHANNEL_BRAP 1006
//THIS SHOULD ALWAYS BE THE LOWEST ONE!
//KEEP IT UPDATED
-
-#define CHANNEL_HIGHEST_AVAILABLE 1006 //CIT CHANGE - COMPENSATES FOR VORESOUND CHANNELS
-
+#define CHANNEL_HIGHEST_AVAILABLE 1005
#define SOUND_MINIMUM_PRESSURE 10
#define FALLOFF_SOUNDS 1
-
//Ambience types
#define GENERIC list('sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg',\
@@ -136,4 +134,4 @@
#define PICKUP_SOUND_VOLUME 40
#define DROP_SOUND_VOLUME 50
-#define YEET_SOUND_VOLUME 90
\ No newline at end of file
+#define YEET_SOUND_VOLUME 90
diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm
index 3fe39024..b9ddd659 100644
--- a/code/__DEFINES/traits.dm
+++ b/code/__DEFINES/traits.dm
@@ -197,9 +197,10 @@
#define TRAIT_CUM_PLUS "cum_plus"
#define TRAIT_NEVER_CLONE "donotclone"
#define TRAIT_COLDBLOODED "coldblooded" // Your body is literal room temperature. Does not make you immune to the temp.
-#define TRAIT_FLIMSY "flimsy" //you have 20% less maxhealth
-#define TRAIT_TRASHCAN "trashcan" //Im the TRASH MAN! (Shamlessly stolen from hyper for local trash eater, flint)
-
+#define TRAIT_FLIMSY "flimsy" //you have 20% less maxhealth
+#define TRAIT_TRASHCAN "trashcan" //Im the TRASH MAN! (Shamlessly stolen from hyper for local trash eater, flint)
+#define TRAIT_FAT_GOOD "fat_good"
+#define TRAIT_FAT_BAD "fat_bad"
//Hyper
#define TRAIT_VIRILE "virile" //you have 20% more chance of impreg
diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm
index 67745c90..619ba131 100644
--- a/code/controllers/subsystem/processing/quirks.dm
+++ b/code/controllers/subsystem/processing/quirks.dm
@@ -26,7 +26,8 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
list("Ananas Affinity","Ananas Aversion"),
list("Alcohol Tolerance","Light Drinker"),
list("Social Anxiety","Mute"),
- list("Prosthetic Limb (Left Arm)","Prosthetic Limb (Right Arm)","Prosthetic Limb (Left Leg)","Prosthetic Limb (Right Leg)","Prosthetic Limb")
+ list("Prosthetic Limb (Left Arm)","Prosthetic Limb (Right Arm)","Prosthetic Limb (Left Leg)","Prosthetic Limb (Right Leg)","Prosthetic Limb"),
+ list("Fat Affinity","Fat Aversion")
)
return ..()
diff --git a/code/datums/components/mood.dm b/code/datums/components/mood.dm
index f188c66c..ff0d5f9d 100644
--- a/code/datums/components/mood.dm
+++ b/code/datums/components/mood.dm
@@ -297,7 +297,10 @@
switch(L.fatness)
if(FATNESS_LEVEL_FAT to INFINITY)
- add_event(null, "fatness", /datum/mood_event/fat)
+ if(HAS_TRAIT(L, TRAIT_FAT_GOOD))
+ add_event(null, "fatness", /datum/mood_event/fat_good)
+ else if(HAS_TRAIT(L, TRAIT_FAT_BAD))
+ add_event(null, "fatness", /datum/mood_event/fat_bad)
/datum/component/mood/proc/HandleNutrition(mob/living/L)
switch(L.nutrition)
diff --git a/code/datums/mood_events/needs_events.dm b/code/datums/mood_events/needs_events.dm
index 79ce9d17..f4dde733 100644
--- a/code/datums/mood_events/needs_events.dm
+++ b/code/datums/mood_events/needs_events.dm
@@ -1,6 +1,10 @@
//nutrition
-/datum/mood_event/fat
- description = "I'm so fat...\n" //yay for fats!
+/datum/mood_event/fat_bad
+ description = "I'm so fat...\n"
+ mood_change = -4
+
+/datum/mood_event/fat_good
+ description = "I'm so fat!\n"
mood_change = 4
/datum/mood_event/wellfed
diff --git a/code/datums/traits/neutral.dm b/code/datums/traits/neutral.dm
index e025626d..ae6d5d81 100644
--- a/code/datums/traits/neutral.dm
+++ b/code/datums/traits/neutral.dm
@@ -207,3 +207,19 @@
if(H)
var/datum/species/species = H.dna.species
species.disliked_food = initial(species.disliked_food)
+
+/datum/quirk/fatness_liker
+ name = "Fat Affinity"
+ desc = "You like being fat, alot, maybe even a little bit too much. Being fat gives you a bigger mood boost."
+ mob_trait = TRAIT_FAT_GOOD
+ value = 0
+ category = CATEGORY_MOODS
+ medical_record_text = "Patient seems overly content with gaining weight."
+
+/datum/quirk/fatness_hater
+ name = "Fat Aversion"
+ desc = "You dislike being fat. Being fat brings your mood down, alot."
+ mob_trait = TRAIT_FAT_BAD
+ value = 0
+ category = CATEGORY_MOODS
+ medical_record_text = "Patient seems distressed by gaining weight."
diff --git a/code/game/sound.dm b/code/game/sound.dm
index 11e02610..2e7d7552 100644
--- a/code/game/sound.dm
+++ b/code/game/sound.dm
@@ -227,4 +227,13 @@
if("slosh")
soundin = pick('sound/effects/slosh1.ogg', 'sound/effects/slosh2.ogg')
//END OF CIT CHANGES
+ if("fart") //GS13
+ soundin = pick( 'GainStation13/sound/voice/brap1.ogg',
+ 'GainStation13/sound/voice/brap2.ogg',
+ 'GainStation13/sound/voice/brap3.ogg',
+ 'GainStation13/sound/voice/brap4.ogg',
+ 'GainStation13/sound/voice/brap5.ogg',
+ 'GainStation13/sound/voice/brap6.ogg',
+ 'GainStation13/sound/voice/brap7.ogg',
+ 'GainStation13/sound/voice/brap8.ogg')
return soundin
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index de4ad41f..9a3e240a 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -240,7 +240,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/unlock_content = 0
var/vip = 0
- //visable pins!
+ //visible pins!
var/list/pins = list()
var/list/ignoring = list()
@@ -946,7 +946,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Color:
"
dat += " Change
"
dat += "Hide on Round-Start:[features["hide_belly"] == 1 ? "Yes" : "No"]"
- dat += "Manual belly size change (Found in Climax menu):[features["inflatable_belly"] == 1 ? "Yes" : "No"]"
+ dat += "Inflation (climax with and manual belly size change in arousal menu):[features["inflatable_belly"] == 1 ? "Yes" : "No"]"
dat += ""
@@ -1021,6 +1021,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Exhibitionist:[features["exhibitionist"] == TRUE ? "Yes" : "No"]
"
dat += "Hear Vore Sounds: [(cit_toggles & EATING_NOISES) ? "Yes" : "No"]
"
dat += "Hear Vore Digestion Sounds: [(cit_toggles & DIGESTION_NOISES) ? "Yes" : "No"]
"
+ dat += "Hear Fart Sounds: [(cit_toggles & FARTING_NOISES) ? "Yes" : "No"]
"
dat += "Allow trash forcefeeding (requires Trashcan quirk) [(cit_toggles & TRASH_FORCEFEED) ? "Yes" : "No"]
"
dat += "Lewdchem:[lewdchem == TRUE ? "Enabled" : "Disabled"]
"
dat += "Widescreen: [widescreenpref ? "Enabled ([CONFIG_GET(string/default_view)])" : "Disabled (15x15)"]
"
@@ -2797,14 +2798,14 @@ GLOBAL_LIST_EMPTY(preferences_datums)
// Citadel edit - Prefs don't work outside of this. :c
if("hound_sleeper")
cit_toggles ^= MEDIHOUND_SLEEPER
-
if("toggleeatingnoise")
cit_toggles ^= EATING_NOISES
-
if("toggledigestionnoise")
cit_toggles ^= DIGESTION_NOISES
- if("toggleforcefeedtrash") //gs13 added for flint
+ if("toggleforcefeedtrash") //GS13
cit_toggles ^= TRASH_FORCEFEED
+ if("togglefartingnoise") //GS13
+ cit_toggles ^= FARTING_NOISES
//END CITADEL EDIT
if("ambientocclusion")
diff --git a/hyperstation/code/modules/arousal/arousalhud.dm b/hyperstation/code/modules/arousal/arousalhud.dm
index 1b18f21e..36abaa74 100644
--- a/hyperstation/code/modules/arousal/arousalhud.dm
+++ b/hyperstation/code/modules/arousal/arousalhud.dm
@@ -11,7 +11,7 @@
for(var/obj/item/organ/genital/G in U.internal_organs)
if(!G.nochange)
if(!G.dontlist)
- dat += "[G.mode == "hidden" ? "[G.name] (Hidden)" : (G.mode == "clothes" ? "[G.name] (Hidden by Clothes)" : (G.mode == "visable" ? "[G.name] (Visable)" : "[G.name] (Visable)"))]
"
+ dat += "[G.mode == "hidden" ? "[G.name] (Hidden)" : (G.mode == "clothes" ? "[G.name] (Hidden by Clothes)" : (G.mode == "visible" ? "[G.name] (Visible)" : "[G.name] (Visible)"))]
"
dat += {"
Contexual Options