Ve'katak Hivenet Receiver (#18771)

Adds a new augment, available in loadout to non-Vaurca members of the
Ve'katak Phalanx, which can receive Hivenet broadcasts and transmit from
a selection of preset messages. Sprites done by @GMR25

---------

Signed-off-by: RustingWithYou <63625389+RustingWithYou@users.noreply.github.com>
Co-authored-by: GMR25 <GMR25@users.noreply.github.com>
Co-authored-by: Cody Brittain <cbrittain10@yahoo.com>
This commit is contained in:
RustingWithYou
2024-06-09 12:09:08 +00:00
committed by GitHub
co-authored by GMR25 Cody Brittain
parent 5b36e475eb
commit ddbe7073eb
7 changed files with 274 additions and 38 deletions
@@ -8,6 +8,8 @@
var/list/augment_languages = list()
/// A list of languages that get added when it's installed. used to remove languages later. don't touch this.
var/list/added_languages = list()
/// A list of language-related verbs granted by the augment.
var/list/granted_verbs = list()
/obj/item/organ/internal/augment/language/replaced(var/mob/living/carbon/human/target, obj/item/organ/external/affected)
. = ..()
@@ -15,11 +17,13 @@
if(!(language in target.languages))
target.add_language(language)
added_languages += language
add_verb(target, granted_verbs)
/obj/item/organ/internal/augment/language/removed(var/mob/living/carbon/human/target, mob/living/user)
for(var/language in added_languages)
target.remove_language(language)
added_languages = list()
remove_verb(target, granted_verbs)
..()
/obj/item/organ/internal/augment/language/emp_act()
@@ -99,3 +103,36 @@
SPECIES_VAURCA_WARRIOR,
SPECIES_VAURCA_WORKER,
)
/obj/item/organ/internal/augment/language/vekatak
name = "Ve'katak Phalanx Hivenet receiver"
icon_state = "phalanx_hivenet"
dead_icon = "phalanx_hivenet_broken"
on_mob_icon = 'icons/mob/human_races/augments_external.dmi'
augment_languages = list(LANGUAGE_VAURCA)
granted_verbs = list(/mob/living/carbon/human/proc/hivenet_recieve, /mob/living/carbon/human/proc/phalanx_transmit)
var/decryption_key
var/banned = FALSE
var/muted = FALSE
var/transmitting = FALSE
var/disrupted = FALSE
var/disrupttime = 0
/obj/item/organ/internal/augment/language/vekatak/process()
. = ..()
if(disrupted)
if(disrupttime > world.time)
disrupttime--
else
disrupted = FALSE
/obj/item/organ/internal/augment/language/vekatak/emp_act()
. = ..()
for(var/language in added_languages)
if(prob(25))
owner.remove_language(language)
owner.set_default_language(pick(owner.languages))
to_chat(owner, SPAN_DANGER("You feel thousands of voices, all clamoring inside your mind!"))
owner.adjustHalLoss(15)
owner.flash_pain(15)
owner.adjustBrainLoss(5)