From 2740fe471e95013266302617dcffe442d3992a5c Mon Sep 17 00:00:00 2001 From: Evalence0 Date: Wed, 23 Apr 2025 04:02:05 -0400 Subject: [PATCH 1/7] Fix floran speech verb _tongue.dm --- code/modules/surgery/organs/internal/tongue/_tongue.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/surgery/organs/internal/tongue/_tongue.dm b/code/modules/surgery/organs/internal/tongue/_tongue.dm index 26dd00ba8d7d..a258acae5f96 100644 --- a/code/modules/surgery/organs/internal/tongue/_tongue.dm +++ b/code/modules/surgery/organs/internal/tongue/_tongue.dm @@ -696,7 +696,7 @@ GLOBAL_LIST_INIT(english_to_zombie, list()) /obj/item/organ/internal/tongue/floran name = "floran tongue" desc = "A plant-like organ used for speaking and eating." - say_mod = "whistles" + say_mod = "hisses" liked_foodtypes = GORE | MEAT | DAIRY | SEAFOOD | BUGS disliked_foodtypes = VEGETABLES From e7a7e2955487983879e4cb1cfb064f4316de6916 Mon Sep 17 00:00:00 2001 From: Evalence0 Date: Wed, 23 Apr 2025 04:06:53 -0400 Subject: [PATCH 2/7] Update for Floran speech _tongue.dm --- code/modules/surgery/organs/internal/tongue/_tongue.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/modules/surgery/organs/internal/tongue/_tongue.dm b/code/modules/surgery/organs/internal/tongue/_tongue.dm index a258acae5f96..0041088b7361 100644 --- a/code/modules/surgery/organs/internal/tongue/_tongue.dm +++ b/code/modules/surgery/organs/internal/tongue/_tongue.dm @@ -697,9 +697,13 @@ GLOBAL_LIST_INIT(english_to_zombie, list()) name = "floran tongue" desc = "A plant-like organ used for speaking and eating." say_mod = "hisses" + modifies_speech = TRUE liked_foodtypes = GORE | MEAT | DAIRY | SEAFOOD | BUGS disliked_foodtypes = VEGETABLES + /// How long is our hissssssss? + var/draw_length = 3 + /obj/item/organ/internal/tongue/floran/get_scream_sound() return pick( 'sound/voice/lizard/lizard_scream_1.ogg', From 7e586be47defc76d4af3abc2eb81fe69902f4d55 Mon Sep 17 00:00:00 2001 From: Evalence0 Date: Wed, 23 Apr 2025 04:16:00 -0400 Subject: [PATCH 3/7] Update Floran _tongue.dm Attempting to revert the Floran speech changes that happened a while ago (around when Ornithids got added) --- .../surgery/organs/internal/tongue/_tongue.dm | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/code/modules/surgery/organs/internal/tongue/_tongue.dm b/code/modules/surgery/organs/internal/tongue/_tongue.dm index 0041088b7361..03171eba8a71 100644 --- a/code/modules/surgery/organs/internal/tongue/_tongue.dm +++ b/code/modules/surgery/organs/internal/tongue/_tongue.dm @@ -714,3 +714,26 @@ GLOBAL_LIST_INIT(english_to_zombie, list()) /obj/item/organ/internal/tongue/floran/get_laugh_sound() return 'monkestation/sound/voice/laugh/lizard/lizard_laugh.ogg' + +/obj/item/organ/internal/tongue/floran/Initialize(mapload) + . = ..() + draw_length = rand(2, 6) + if(prob(10)) + draw_length += 2 + +/obj/item/organ/internal/tongue/floran/modify_speech(datum/source, list/speech_args) + var/static/regex/floran_hiss = new("s+", "g") + var/static/regex/floran_hiSS = new("S+", "g") + var/static/regex/floran_kss = new(@"(\w)x", "g") + var/static/regex/floran_kSS = new(@"(\w)X", "g") + var/static/regex/floran_ecks = new(@"\bx([\-|r|R]|\b)", "g") + var/static/regex/floran_eckS = new(@"\bX([\-|r|R]|\b)", "g") + var/message = speech_args[SPEECH_MESSAGE] + if(message[1] != "*") + message = floran_hiss.Replace(message, repeat_string(draw_length, "s")) + message = floran_hiSS.Replace(message, repeat_string(draw_length, "S")) + message = floran_kss.Replace(message, "$1k[repeat_string(max(draw_length - 1, 1), "s")]") + message = floran_kSS.Replace(message, "$1K[repeat_string(max(draw_length - 1, 1), "S")]") + message = floran_ecks.Replace(message, "eck[repeat_string(max(draw_length - 2, 1), "s")]$1") + message = floran_eckS.Replace(message, "ECK[repeat_string(max(draw_length - 2, 1), "S")]$1") + speech_args[SPEECH_MESSAGE] = message From 4bd5f3194a2f111c7fa045b9a9af0aabb2265dbc Mon Sep 17 00:00:00 2001 From: Evalence0 Date: Wed, 23 Apr 2025 23:59:46 -0400 Subject: [PATCH 4/7] Indent fix --- .../surgery/organs/internal/tongue/_tongue.dm | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/code/modules/surgery/organs/internal/tongue/_tongue.dm b/code/modules/surgery/organs/internal/tongue/_tongue.dm index 03171eba8a71..8d872b75e017 100644 --- a/code/modules/surgery/organs/internal/tongue/_tongue.dm +++ b/code/modules/surgery/organs/internal/tongue/_tongue.dm @@ -722,18 +722,18 @@ GLOBAL_LIST_INIT(english_to_zombie, list()) draw_length += 2 /obj/item/organ/internal/tongue/floran/modify_speech(datum/source, list/speech_args) - var/static/regex/floran_hiss = new("s+", "g") - var/static/regex/floran_hiSS = new("S+", "g") - var/static/regex/floran_kss = new(@"(\w)x", "g") - var/static/regex/floran_kSS = new(@"(\w)X", "g") - var/static/regex/floran_ecks = new(@"\bx([\-|r|R]|\b)", "g") - var/static/regex/floran_eckS = new(@"\bX([\-|r|R]|\b)", "g") - var/message = speech_args[SPEECH_MESSAGE] - if(message[1] != "*") - message = floran_hiss.Replace(message, repeat_string(draw_length, "s")) - message = floran_hiSS.Replace(message, repeat_string(draw_length, "S")) - message = floran_kss.Replace(message, "$1k[repeat_string(max(draw_length - 1, 1), "s")]") - message = floran_kSS.Replace(message, "$1K[repeat_string(max(draw_length - 1, 1), "S")]") - message = floran_ecks.Replace(message, "eck[repeat_string(max(draw_length - 2, 1), "s")]$1") - message = floran_eckS.Replace(message, "ECK[repeat_string(max(draw_length - 2, 1), "S")]$1") - speech_args[SPEECH_MESSAGE] = message + var/static/regex/floran_hiss = new("s+", "g") + var/static/regex/floran_hiSS = new("S+", "g") + var/static/regex/floran_kss = new(@"(\w)x", "g") + var/static/regex/floran_kSS = new(@"(\w)X", "g") + var/static/regex/floran_ecks = new(@"\bx([\-|r|R]|\b)", "g") + var/static/regex/floran_eckS = new(@"\bX([\-|r|R]|\b)", "g") + var/message = speech_args[SPEECH_MESSAGE] + if(message[1] != "*") + message = floran_hiss.Replace(message, repeat_string(draw_length, "s")) + message = floran_hiSS.Replace(message, repeat_string(draw_length, "S")) + message = floran_kss.Replace(message, "$1k[repeat_string(max(draw_length - 1, 1), "s")]") + message = floran_kSS.Replace(message, "$1K[repeat_string(max(draw_length - 1, 1), "S")]") + message = floran_ecks.Replace(message, "eck[repeat_string(max(draw_length - 2, 1), "s")]$1") + message = floran_eckS.Replace(message, "ECK[repeat_string(max(draw_length - 2, 1), "S")]$1") + speech_args[SPEECH_MESSAGE] = message From caafbb3b8f9cea5395e50803487e2b85530be01d Mon Sep 17 00:00:00 2001 From: Evalence0 Date: Fri, 25 Apr 2025 19:20:08 -0400 Subject: [PATCH 5/7] Add Hiss Length Variable in Character Creation to floran.dm --- .../modules/client/preferences/species_features/floran.dm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/monkestation/code/modules/client/preferences/species_features/floran.dm b/monkestation/code/modules/client/preferences/species_features/floran.dm index 41f85e09b18e..dc91dd101cdf 100644 --- a/monkestation/code/modules/client/preferences/species_features/floran.dm +++ b/monkestation/code/modules/client/preferences/species_features/floran.dm @@ -11,6 +11,14 @@ "floran_leaves", list("ADJ"), ) +/datum/preference/numeric/hiss_length + savefile_key = "hiss_length" + savefile_identifier = PREFERENCE_CHARACTER + category = PREFERENCE_CATEGORY_SECONDARY_FEATURES + priority = PREFERENCE_PRIORITY_NAMES + can_randomize = FALSE + minimum = 2 + maximum = 6 /datum/preference/choiced/floran_leaves/apply_to_human(mob/living/carbon/human/target, value) target.dna.features["floran_leaves"] = value From 0b831bc1cb7817eced27d3179d7bd58ca4924026 Mon Sep 17 00:00:00 2001 From: Evalence0 Date: Sun, 27 Apr 2025 01:21:10 -0400 Subject: [PATCH 6/7] Actually fix hiss length control (hopefully) in floran.dm --- .../client/preferences/species_features/floran.dm | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/monkestation/code/modules/client/preferences/species_features/floran.dm b/monkestation/code/modules/client/preferences/species_features/floran.dm index dc91dd101cdf..a34a0ffc5a1b 100644 --- a/monkestation/code/modules/client/preferences/species_features/floran.dm +++ b/monkestation/code/modules/client/preferences/species_features/floran.dm @@ -20,5 +20,17 @@ minimum = 2 maximum = 6 +/datum/preference/numeric/hiss_length/create_default_value() + return 3 + +/datum/preference/numeric/hiss_length/is_accessible(datum/preferences/preferences) + return ..() && ispath(preferences.read_preference(/datum/preference/choiced/species), /datum/species/lizard) + +/datum/preference/numeric/hiss_length/apply_to_human(mob/living/carbon/human/target, value) + var/obj/item/organ/internal/tongue/lizard/tongue = target.get_organ_slot(ORGAN_SLOT_TONGUE) + if(!istype(tongue)) + return + tongue.draw_length = value + /datum/preference/choiced/floran_leaves/apply_to_human(mob/living/carbon/human/target, value) target.dna.features["floran_leaves"] = value From add3ca88ea04533908d59f54dcef5b8be07fe2e3 Mon Sep 17 00:00:00 2001 From: Evalence0 Date: Sun, 27 Apr 2025 01:23:51 -0400 Subject: [PATCH 7/7] Corrected lizard to floran floran.dm --- .../modules/client/preferences/species_features/floran.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/monkestation/code/modules/client/preferences/species_features/floran.dm b/monkestation/code/modules/client/preferences/species_features/floran.dm index a34a0ffc5a1b..ac22a3c955f4 100644 --- a/monkestation/code/modules/client/preferences/species_features/floran.dm +++ b/monkestation/code/modules/client/preferences/species_features/floran.dm @@ -24,10 +24,10 @@ return 3 /datum/preference/numeric/hiss_length/is_accessible(datum/preferences/preferences) - return ..() && ispath(preferences.read_preference(/datum/preference/choiced/species), /datum/species/lizard) + return ..() && ispath(preferences.read_preference(/datum/preference/choiced/species), /datum/species/floran) /datum/preference/numeric/hiss_length/apply_to_human(mob/living/carbon/human/target, value) - var/obj/item/organ/internal/tongue/lizard/tongue = target.get_organ_slot(ORGAN_SLOT_TONGUE) + var/obj/item/organ/internal/tongue/floran/tongue = target.get_organ_slot(ORGAN_SLOT_TONGUE) if(!istype(tongue)) return tongue.draw_length = value