diff --git a/GainStation13/code/datums/accents.dm b/GainStation13/code/datums/accents.dm new file mode 100644 index 0000000000..939af0e50e --- /dev/null +++ b/GainStation13/code/datums/accents.dm @@ -0,0 +1,9 @@ +/datum/accent/kitty/modify_speech(list/speech_args) + var/message = speech_args[SPEECH_MESSAGE] + var/static/regex/taja_purr = new("r+", "g") + var/static/regex/taja_puRR = new("R+", "g") + if(message[1] != "*") + message = taja_purr.Replace(message, "rrr") + message = taja_puRR.Replace(message, "Rrr") + speech_args[SPEECH_MESSAGE] = message + return speech_args diff --git a/GainStation13/code/mechanics/fatness.dm b/GainStation13/code/mechanics/fatness.dm index 5f8b6ecdcb..de09afe0f4 100644 --- a/GainStation13/code/mechanics/fatness.dm +++ b/GainStation13/code/mechanics/fatness.dm @@ -1,5 +1,8 @@ GLOBAL_LIST_INIT(uncapped_resize_areas, list(/area/command/bridge, /area/maintenance, /area/security/prison, /area/holodeck, /area/commons/vacant_room/office, /area/space, /area/ruin, /area/lavaland, /area/awaymission, /area/centcom, /area/fatlab)) +/mob/living + var/burpslurring = 0 //GS13 - necessary due to "say" being defined by mob/living + /mob/living/carbon //Due to the changes needed to create the system to hide fatness, here's some notes: // -If you are making a mob simply gain or lose weight, use adjust_fatness. Try to not touch the variables directly unless you know 'em well @@ -21,7 +24,6 @@ GLOBAL_LIST_INIT(uncapped_resize_areas, list(/area/command/bridge, /area/mainten var/doorstuck = 0 var/fullness = FULLNESS_LEVEL_HALF_FULL - var/burpslurring = 0 var/fullness_reduction_timer = 0 // When was the last time they emoted to reduce their fullness /** diff --git a/GainStation13/code/modules/mob/mob_helpers.dm b/GainStation13/code/modules/mob/mob_helpers.dm new file mode 100644 index 0000000000..6f1531abae --- /dev/null +++ b/GainStation13/code/modules/mob/mob_helpers.dm @@ -0,0 +1,37 @@ +//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(.) diff --git a/GainStation13/code/modules/surgery/organs/tongue.dm b/GainStation13/code/modules/surgery/organs/tongue.dm new file mode 100644 index 0000000000..db682dd6f1 --- /dev/null +++ b/GainStation13/code/modules/surgery/organs/tongue.dm @@ -0,0 +1,8 @@ +/obj/item/organ/tongue/kitty + name = "barbed tongue" + desc = "A thin and prickled on top tongue, common among cats" + icon_state = "tonguenormal" + say_mod = "mrowls" + taste_sensitivity = 15 //Tastes like normal + maxHealth = 60 //And so has health like normal + initial_accents = list(/datum/accent/kitty) diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index 159347ebca..3b9fd4eb21 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -325,7 +325,7 @@ GLOBAL_LIST_INIT(wisdoms, world.file2list("strings/wisdoms.txt")) //LANGUAGE CHARACTER CUSTOMIZATION GLOBAL_LIST_INIT(speech_verbs, list("default","says","gibbers", "states", "chitters", "chimpers", "declares", "bellows", "buzzes" ,"beeps", "chirps", "clicks", "hisses" ,"poofs" , "puffs", "rattles", "mewls" ,"barks", "blorbles", "squeaks", "squawks", "flutters", "warbles", "caws", "gekkers", "clucks","mumbles","crackles")) -GLOBAL_LIST_INIT(roundstart_tongues, list("default","human tongue" = /obj/item/organ/tongue, "lizard tongue" = /obj/item/organ/tongue/lizard, "skeleton tongue" = /obj/item/organ/tongue/bone, "fly tongue" = /obj/item/organ/tongue/fly, "ipc tongue" = /obj/item/organ/tongue/robot/ipc, "xeno tongue" = /obj/item/organ/tongue/alien/hybrid)) +GLOBAL_LIST_INIT(roundstart_tongues, list("default","human tongue" = /obj/item/organ/tongue, "lizard tongue" = /obj/item/organ/tongue/lizard, "skeleton tongue" = /obj/item/organ/tongue/bone, "fly tongue" = /obj/item/organ/tongue/fly, "ipc tongue" = /obj/item/organ/tongue/robot/ipc, "xeno tongue" = /obj/item/organ/tongue/alien/hybrid, "kitty tongue" = /obj/item/organ/tongue/kitty)) //GS13 - added kitty tongue to list of roundstart tongues /proc/get_roundstart_languages() var/list/languages = subtypesof(/datum/language) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index d75398a790..a79c55bca8 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -643,6 +643,7 @@ remove_all_embedded_objects() set_heartattack(FALSE) drunkenness = 0 + burpslurring = 0 //GS13 edit 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/human/species_types/felinid.dm b/code/modules/mob/living/carbon/human/species_types/felinid.dm index beebbb1dfd..352f94af4e 100644 --- a/code/modules/mob/living/carbon/human/species_types/felinid.dm +++ b/code/modules/mob/living/carbon/human/species_types/felinid.dm @@ -8,6 +8,7 @@ mutantears = /obj/item/organ/ears/cat mutanttail = /obj/item/organ/tail/cat + mutanttongue = /obj/item/organ/tongue/kitty //GS13 - felinids start with kitty tongue tail_type = "mam_tail" wagging_type = "mam_waggingtail" diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index bfad3339f1..fa04e186d0 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -163,6 +163,11 @@ if(slurring) slurring = max(slurring-1,0) + // GS13 edit + if(burpslurring) + burpslurring = max(burpslurring-1,0) + //end of gs13 edit + if(cultslurring) cultslurring = max(cultslurring-1, 0) diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 5fe6a4b8da..411e91ab01 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -433,6 +433,10 @@ GLOBAL_LIST_INIT(department_radio_keys, list( if(slurring) message = slur(message,slurring) + //GS13 edit + if(burpslurring) + message = burpslur(message,burpslurring) + //end of GS13 edit if(cultslurring) message = cultslur(message) diff --git a/tgstation.dme b/tgstation.dme index 7b5e4ddf4a..e6836a43b0 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3935,6 +3935,7 @@ #include "GainStation13\code\clothing\shoes.dm" #include "GainStation13\code\clothing\suits.dm" #include "GainStation13\code\clothing\under.dm" +#include "GainStation13\code\datums\accents.dm" #include "GainStation13\code\datums\bark.dm" #include "GainStation13\code\datums\lavaland_ruins.dm" #include "GainStation13\code\datums\ruins.dm" @@ -4037,6 +4038,7 @@ #include "GainStation13\code\modules\loadout\tablet.dm" #include "GainStation13\code\modules\mapping\areas.dm" #include "GainStation13\code\modules\mapping\ghost_roles.dm" +#include "GainStation13\code\modules\mob\mob_helpers.dm" #include "GainStation13\code\modules\mob\dead\new_player\sprite_accessories\ears.dm" #include "GainStation13\code\modules\mob\dead\new_player\sprite_accessories\frills.dm" #include "GainStation13\code\modules\mob\dead\new_player\sprite_accessories\hair_face.dm" @@ -4074,6 +4076,7 @@ #include "GainStation13\code\modules\research\nanites\nanite_programs\fattening.dm" #include "GainStation13\code\modules\research\techweb\nutritech_nodes.dm" #include "GainStation13\code\modules\surgery\organs\augments.dm" +#include "GainStation13\code\modules\surgery\organs\tongue.dm" #include "GainStation13\code\modules\vehicles\grocery_cart_scooter.dm" #include "GainStation13\code\modules\vehicles\grocery_cart_scooter_unmortorized.dm" #include "GainStation13\code\modules\vending\gatocola.dm"