diff --git a/GainStation13/code/modules/food_and_drinks/drinks/drinks.dm b/GainStation13/code/modules/food_and_drinks/drinks/drinks.dm new file mode 100644 index 00000000..626e64fb --- /dev/null +++ b/GainStation13/code/modules/food_and_drinks/drinks/drinks.dm @@ -0,0 +1,26 @@ +//////////////////////////////////////////////////////////////////////////////// +/// GS13 Drinks +//////////////////////////////////////////////////////////////////////////////// + +/obj/item/reagent_containers/food/drinks/soda_cans/fizzwiz + name = "Fizz Wiz" + desc = "Unleash your inner magic!" + icon = 'GainStation13/icons/obj/drinks.dmi' + lefthand_file = 'GainStation13/icons/obj/food_lefthand.dmi' + righthand_file = 'GainStation13/icons/obj/food_righthand.dmi' + icon_state = "fizzwiz" + list_reagents = list(/datum/reagent/consumable/space_cola = 25, /datum/reagent/consumable/fizulphite = 15) + foodtype = SUGAR + price = 3 + + +/obj/item/reagent_containers/food/drinks/soda_cans/soothseltz + name = "Soothing Seltzer" + desc = "A useful drink that helps relieve a bloated stomach." + icon = 'GainStation13/icons/obj/drinks.dmi' + lefthand_file = 'GainStation13/icons/obj/food_lefthand.dmi' + righthand_file = 'GainStation13/icons/obj/food_righthand.dmi' + icon_state = "soothseltz" + list_reagents = list(/datum/reagent/consumable/space_cola = 25, /datum/reagent/consumable/extilphite = 15) + foodtype = SUGAR + price = 3 diff --git a/GainStation13/code/modules/reagents/chemistry/reagents/consumable_reagents.dm b/GainStation13/code/modules/reagents/chemistry/reagents/consumable_reagents.dm index e77d7ed1..cb556971 100644 --- a/GainStation13/code/modules/reagents/chemistry/reagents/consumable_reagents.dm +++ b/GainStation13/code/modules/reagents/chemistry/reagents/consumable_reagents.dm @@ -12,3 +12,44 @@ /datum/reagent/consumable/lipoifier/on_mob_life(mob/living/carbon/M) M.adjust_fatness(10, FATTENING_TYPE_CHEM) return ..() + + +//BURPY CHEM + +/datum/reagent/consumable/fizulphite + name = "Fizulphite" + description = "A strange chemical that produces large amounts of gas when in contact with organic, typically fleshy environments." + color = "#4cffed" // rgb: 102, 99, 0 + reagent_state = LIQUID + taste_description = "fizziness" + metabolization_rate = 2 * REAGENTS_METABOLISM + +/datum/reagent/consumable/fizulphite/on_mob_life(mob/living/carbon/M) + if(M && M?.client?.prefs.weight_gain_chems) + M.burpslurring = max(M.burpslurring,50) + M.burpslurring += 2 + else + M.burpslurring += 0 + ..() + +//ANTI-BURPY CHEM + +/datum/reagent/consumable/extilphite + name = "Extilphite" + description = "A very useful chemical that helps soothe bloated stomachs." + color = "#2aed96" + reagent_state = LIQUID + taste_description = "smoothness" + metabolization_rate = 0.8 * REAGENTS_METABOLISM + +/datum/reagent/consumable/extilphite/on_mob_life(mob/living/carbon/M) + if(M && M?.client?.prefs.weight_gain_chems) + M.burpslurring -= 3 + else + M.burpslurring -= 0 + + if(M.fullness>10) + M.fullness -= 6 + else + M.fullness -= 0 + ..() diff --git a/GainStation13/code/modules/reagents/chemistry/recipes/fatchem.dm b/GainStation13/code/modules/reagents/chemistry/recipes/fatchem.dm index af04badf..79ed2dc7 100644 --- a/GainStation13/code/modules/reagents/chemistry/recipes/fatchem.dm +++ b/GainStation13/code/modules/reagents/chemistry/recipes/fatchem.dm @@ -1,5 +1,26 @@ +//GS13 - fat chems + + +//WG chem /datum/chemical_reaction/lipoifier name = "lipoifier" id = /datum/reagent/consumable/lipoifier results = list(/datum/reagent/consumable/lipoifier = 3) required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/consumable/cornoil = 1, /datum/reagent/medicine/synthflesh = 1) + + +//BURP CHEM + +/datum/chemical_reaction/fizulphite + name = "fizulphite" + id = /datum/reagent/consumable/fizulphite + results = list(/datum/reagent/consumable/fizulphite = 3) + required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/nitrogen = 1, /datum/reagent/oxygen = 3) + +//ANTI-BURP / ANTI-FULLNESS CHEM + +/datum/chemical_reaction/extilphite + name = "extilphite" + id = /datum/reagent/consumable/extilphite + results = list(/datum/reagent/consumable/extilphite = 3) + required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/sodium = 2, /datum/reagent/carbon = 2) diff --git a/GainStation13/code/modules/vending/gatocola.dm b/GainStation13/code/modules/vending/gatocola.dm index b8d91b9f..a484830e 100644 --- a/GainStation13/code/modules/vending/gatocola.dm +++ b/GainStation13/code/modules/vending/gatocola.dm @@ -18,7 +18,8 @@ ) premium = list( /obj/item/reagent_containers/food/drinks/soda_cans/air = 20, - + /obj/item/reagent_containers/food/drinks/soda_cans/fizzwiz = 5, + /obj/item/reagent_containers/food/drinks/soda_cans/soothseltz = 8, ) refill_canister = /obj/item/vending_refill/mealdor diff --git a/GainStation13/icons/obj/drinks.dmi b/GainStation13/icons/obj/drinks.dmi new file mode 100644 index 00000000..d24ee43b Binary files /dev/null and b/GainStation13/icons/obj/drinks.dmi differ diff --git a/GainStation13/icons/obj/food_lefthand.dmi b/GainStation13/icons/obj/food_lefthand.dmi new file mode 100644 index 00000000..b6942354 Binary files /dev/null and b/GainStation13/icons/obj/food_lefthand.dmi differ diff --git a/GainStation13/icons/obj/food_righthand.dmi b/GainStation13/icons/obj/food_righthand.dmi new file mode 100644 index 00000000..b758ecd6 Binary files /dev/null and b/GainStation13/icons/obj/food_righthand.dmi differ diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm index e9d90e23..8f21bd85 100644 --- a/code/__DEFINES/combat.dm +++ b/code/__DEFINES/combat.dm @@ -25,6 +25,7 @@ #define EFFECT_IRRADIATE "irradiate" #define EFFECT_STUTTER "stutter" #define EFFECT_SLUR "slur" +#define EFFECT_BURPSLUR "burpslur" //GS13 - uncontrolled burp effect #define EFFECT_EYE_BLUR "eye_blur" #define EFFECT_DROWSY "drowsy" #define EFFECT_JITTER "jitter" diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 34568594..03c6eea8 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1019,7 +1019,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "

Citadel Preferences

" //Because fuck me if preferences can't be fucking modularized and expected to update in a reasonable timeframe. dat += "Arousal:[arousable == TRUE ? "Enabled" : "Disabled"]
" dat += "Exhibitionist:[features["exhibitionist"] == TRUE ? "Yes" : "No"]
" - dat += "Voracious MediHound sleepers: [(cit_toggles & MEDIHOUND_SLEEPER) ? "Yes" : "No"]
" dat += "Hear Vore Sounds: [(cit_toggles & EATING_NOISES) ? "Yes" : "No"]
" dat += "Hear Vore Digestion Sounds: [(cit_toggles & DIGESTION_NOISES) ? "Yes" : "No"]
" dat += "Allow trash forcefeeding (requires Trashcan quirk) [(cit_toggles & TRASH_FORCEFEED) ? "Yes" : "No"]
" diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm index f5b00200..563f7dd8 100644 --- a/code/modules/mob/living/carbon/carbon_defines.dm +++ b/code/modules/mob/living/carbon/carbon_defines.dm @@ -64,3 +64,4 @@ var/drunkenness = 0 //Overall drunkenness - check handle_alcohol() in life.dm for effects + var/burpyness = 0 // GS13 - dumb name, I know. Trying to keep it closely related to "drunkenness" diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 89b05771..3aeedfb9 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -812,6 +812,7 @@ remove_all_embedded_objects() set_heartattack(FALSE) drunkenness = 0 + burpyness = 0 //GS13 - lil GS13 addition for(var/datum/mutation/human/HM in dna.mutations) if(HM.quality != POSITIVE) dna.remove_mutation(HM.name) diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index ca11c14d..048fb2a4 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -624,6 +624,9 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put if(slurring || drunkenness) slurring = max(slurring-1,0,drunkenness) + if(burpslurring) + burpslurring = max(burpslurring-1,0) + if(cultslurring) cultslurring = max(cultslurring-1, 0) diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index 60ba3cb7..dd54990c 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -94,6 +94,8 @@ radiation += max(effect * hit_percent, 0) if(EFFECT_SLUR) slurring = max(slurring,(effect * hit_percent)) + if(EFFECT_BURPSLUR) + burpslurring = max(burpslurring,(effect * hit_percent)) //GS13 if(EFFECT_STUTTER) if((status_flags & CANSTUN) && !HAS_TRAIT(src, TRAIT_STUNIMMUNE)) // stun is usually associated with stutter stuttering = max(stuttering,(effect * hit_percent)) @@ -107,7 +109,7 @@ return 1 -/mob/living/proc/apply_effects(stun = 0, knockdown = 0, unconscious = 0, irradiate = 0, slur = 0, stutter = 0, eyeblur = 0, drowsy = 0, blocked = FALSE, stamina = 0, jitter = 0, kd_stamoverride, kd_stammax) +/mob/living/proc/apply_effects(stun = 0, knockdown = 0, unconscious = 0, irradiate = 0, slur = 0, burpslur = 0, stutter = 0, eyeblur = 0, drowsy = 0, blocked = FALSE, stamina = 0, jitter = 0, kd_stamoverride, kd_stammax) if(blocked >= 100) return 0 if(stun) @@ -120,6 +122,8 @@ apply_effect(irradiate, EFFECT_IRRADIATE, blocked) if(slur) apply_effect(slur, EFFECT_SLUR, blocked) + if(burpslur) + apply_effect(burpslur, EFFECT_BURPSLUR, blocked) //GS13 if(stutter) apply_effect(stutter, EFFECT_STUTTER, blocked) if(eyeblur) diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 0de4cc2e..8f77323b 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -100,6 +100,7 @@ //Speech var/stuttering = 0 var/slurring = 0 + var/burpslurring = 0 //GS13 var/cultslurring = 0 var/derpspeech = 0 diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index ab9409e2..7694e7f8 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -369,6 +369,9 @@ GLOBAL_LIST_INIT(department_radio_keys, list( if(slurring) message = slur(message,slurring) + if(burpslurring) + message = burpslur(message,burpslurring) //GS13 + if(cultslurring) message = cultslur(message) diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 42048e65..a03d5883 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -104,6 +104,47 @@ . += "[newletter]" return sanitize(.) + +//GS13 - BURP SLURRING, USED IN SOME CHEMS OR EFFECTS + +/proc/burpslur(phrase, strength = 50) + strength = min(50, strength) + phrase = html_decode(phrase) + var/leng = length(phrase) + . = "" + var/newletter = "" + var/rawchar = "" + for(var/i = 1, i <= leng, i += length(rawchar)) + rawchar = newletter = phrase[i] + if(rand(1,100)<=strength * 0.5) + var/lowerletter = lowertext(newletter) + if(lowerletter == "o") + newletter = " -*BURRP*- " + else if(lowerletter == "s") + newletter = " -*URP*- " + else if(lowerletter == "a") + newletter = " -*GWUURRP*- " + else if(lowerletter == "u") + newletter = " -*BUUUURRP*- " + else if(lowerletter == "c") + newletter = " -*BURP*- " + if(rand(1,100) <= strength * 0.25) + if(newletter == " ") + newletter = "...*GWWUUARRP*..." + else if(newletter == ".") + newletter = " -*BWUUARRP*-." + switch(rand(1,100) <= strength * 0.5) + if(1) + newletter += " -*BURRP*- " + if(10) + newletter += "[newletter]" + if(20) + newletter += "[newletter][newletter]" + . += "[newletter]" + return sanitize(.) + +///////////////////////// + /// Makes you talk like you got cult stunned, which is slurring but with some dark messages /proc/cultslur(phrase) // Inflicted on victims of a stun talisman phrase = html_decode(phrase) diff --git a/tgstation.dme b/tgstation.dme index 0f6a1b3d..104053fe 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3337,6 +3337,7 @@ #include "GainStation13\code\obj\items\minor_items.dm" #include "GainStation13\code\obj\structure\scale.dm" #include "GainStation13\code\obj\weapons\fatoray.dm" +#include "GainStation13\code\modules\food_and_drinks\drinks\drinks.dm" #include "hyperstation\code\__DEFINES\economy.dm" #include "hyperstation\code\__DEFINES\wendigo.dm" #include "hyperstation\code\controllers\subsystem\economy.dm"