From 2aee076feea3872ce2282b4db15ec88d2f9ceb6c Mon Sep 17 00:00:00 2001 From: Casey Date: Tue, 24 Jan 2023 15:43:56 -0500 Subject: [PATCH] Buff Shadekin Empathy (And other hive languages) --- code/modules/mob/language/language.dm | 27 ++++++++++++++++--- code/modules/mob/language/snowflake.dm | 19 +++++++++++++ .../carbon/human/species/shadekin/shadekin.dm | 4 +++ .../carbon/human/species/station/station.dm | 3 ++- .../human/species/station/station_vr.dm | 2 ++ .../subtypes/vore/dominated_brain.dm | 5 +++- .../subtypes/vore/shadekin/shadekin.dm | 2 ++ vorestation.dme | 1 + 8 files changed, 58 insertions(+), 5 deletions(-) create mode 100644 code/modules/mob/language/snowflake.dm diff --git a/code/modules/mob/language/language.dm b/code/modules/mob/language/language.dm index 4fa749f41e..5ab9416da3 100644 --- a/code/modules/mob/language/language.dm +++ b/code/modules/mob/language/language.dm @@ -130,11 +130,27 @@ /datum/language/proc/broadcast(var/mob/living/speaker,var/message,var/speaker_mask) log_say("(HIVE) [message]", speaker) + speaker.verbs |= /mob/proc/adjust_hive_range //VOREStation Add - If you don't have the verb you should. + if(!speaker_mask) speaker_mask = speaker.name message = "[get_spoken_verb(message)], \"[format_message(message, get_spoken_verb(message))]\"" - - for(var/mob/player in player_list) - player.hear_broadcast(src, speaker, speaker_mask, message) + //VOREStation Edit Start + if(speaker.hive_lang_range == -1) + var/turf/t = get_turf(speaker) + for(var/mob/player in player_list) + var/turf/b = get_turf(player) + if (t.z == b.z) + player.hear_broadcast(src, speaker, speaker_mask, message) + else if(speaker.hive_lang_range) + var/turf/t = get_turf(speaker) + for(var/mob/player in player_list) + var/turf/b = get_turf(player) + if(get_dist(t,b) <= speaker.hive_lang_range) + player.hear_broadcast(src, speaker, speaker_mask, message) + else + for(var/mob/player in player_list) + player.hear_broadcast(src, speaker, speaker_mask, message) + //VOREStation Edit End /mob/proc/hear_broadcast(var/datum/language/language, var/mob/speaker, var/speaker_name, var/message) if((language in languages) && language.check_special_condition(src)) @@ -187,6 +203,11 @@ return 0 languages.Add(new_language) + //VOREStation Addition Start + if(new_language.flags & HIVEMIND) + verbs |= /mob/proc/adjust_hive_range + //VOREStation Addition End + return 1 /mob/proc/remove_language(var/rem_language) diff --git a/code/modules/mob/language/snowflake.dm b/code/modules/mob/language/snowflake.dm new file mode 100644 index 0000000000..7c8160c5c1 --- /dev/null +++ b/code/modules/mob/language/snowflake.dm @@ -0,0 +1,19 @@ +/mob + var/hive_lang_range = 0 + +/mob/proc/adjust_hive_range() + set name = "Adjust Special Language Range" + set desc = "Changes the range you will transmit your hive language to!" + set category = "IC" + + var/option = tgui_alert(src, "What range?", "Adjust special language range", list("Global","This Z level","Local", "Subtle")) + + switch(option) + if("Global") + hive_lang_range = 0 + if("This Z level") + hive_lang_range = -1 + if("Local") + hive_lang_range = world.view + if("Subtle") + hive_lang_range = 1 diff --git a/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm b/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm index f76555561b..dccba08f48 100644 --- a/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm +++ b/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm @@ -22,8 +22,12 @@ unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/claws/shadekin, /datum/unarmed_attack/bite/sharp/shadekin) rarity_value = 15 //INTERDIMENSIONAL FLUFFERS +<<<<<<< HEAD male_scream_sound = null //CHOMPedit female_scream_sound = null //CHOMPedit +======= + inherent_verbs = list(/mob/proc/adjust_hive_range) +>>>>>>> 68f3b83a08... Merge pull request #14375 from Very-Soft/shadekinempathy siemens_coefficient = 1 darksight = 10 diff --git a/code/modules/mob/living/carbon/human/species/station/station.dm b/code/modules/mob/living/carbon/human/species/station/station.dm index 5b7d45ab28..df76228e18 100644 --- a/code/modules/mob/living/carbon/human/species/station/station.dm +++ b/code/modules/mob/living/carbon/human/species/station/station.dm @@ -572,7 +572,8 @@ inherent_verbs = list( /mob/living/carbon/human/proc/diona_split_nymph, - /mob/living/carbon/human/proc/regenerate + /mob/living/carbon/human/proc/regenerate, + /mob/proc/adjust_hive_range //VOREStation Add ) warning_low_pressure = 50 diff --git a/code/modules/mob/living/carbon/human/species/station/station_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_vr.dm index 7d80479129..0182045c53 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_vr.dm @@ -494,6 +494,8 @@ unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/claws, /datum/unarmed_attack/bite/sharp) rarity_value = 5 //INTERDIMENSIONAL FLUFFERS + inherent_verbs = list(/mob/proc/adjust_hive_range) + siemens_coefficient = 0 darksight = 10 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/dominated_brain.dm b/code/modules/mob/living/simple_mob/subtypes/vore/dominated_brain.dm index e69e0fc54a..0b6e6e5607 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/dominated_brain.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/dominated_brain.dm @@ -154,6 +154,9 @@ langlist |= L.languages if(langlist.len) langlist -= languages + for(var/datum/language/L in langlist) + if(L.flags & HIVEMIND) + verbs |= /mob/proc/adjust_hive_range temp_languages |= langlist languages |= langlist @@ -460,4 +463,4 @@ pred.prey_controlled = TRUE log_and_message_admins("[pred] is now controlled by [pred.ckey], they were taken over via pred submission, and were originally controlled by [pred_brain.pred_ckey].") if(delete_source) - qdel(prey) \ No newline at end of file + qdel(prey) diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/shadekin.dm b/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/shadekin.dm index 418520f868..d32e7ff1b4 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/shadekin.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/shadekin.dm @@ -131,6 +131,8 @@ update_icon() + verbs |= /mob/proc/adjust_hive_range + return ..() /mob/living/simple_mob/shadekin/Destroy() diff --git a/vorestation.dme b/vorestation.dme index b483567d86..9b7cee46a3 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2901,6 +2901,7 @@ #include "code\modules\mob\language\generic.dm" #include "code\modules\mob\language\language.dm" #include "code\modules\mob\language\outsider.dm" +#include "code\modules\mob\language\snowflake.dm" #include "code\modules\mob\language\station.dm" #include "code\modules\mob\language\station_vr.dm" #include "code\modules\mob\language\station_YW.dm"