mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 02:16:05 +00:00
Fungal Telepathy (#30817)
* Mushroom Racials * Revert exoskeleton * telepathy formatting
This commit is contained in:
@@ -3,8 +3,11 @@
|
||||
var/muteletter_tries = 3
|
||||
var/list/muteletters_check = list()
|
||||
|
||||
///mob/living/carbon/human/say(var/message)
|
||||
// ..(message)
|
||||
/mob/living/carbon/human/say(var/message)
|
||||
if(species && (species.flags & SPECIES_NO_MOUTH) && !get_message_mode(message))
|
||||
species.silent_speech(src,message)
|
||||
else
|
||||
..()
|
||||
|
||||
// This is obsolete if the human is using a language.
|
||||
// Verbs in such a situation are given in /datum/language/get_spoken_verb().
|
||||
|
||||
@@ -285,6 +285,8 @@ var/global/list/whitelisted_species = list("Human")
|
||||
|
||||
/datum/species/proc/OutOfCrit(var/mob/living/carbon/human/H)
|
||||
|
||||
/datum/species/proc/silent_speech(message)
|
||||
|
||||
// -- Outfit datums --
|
||||
/datum/species/proc/final_equip(var/mob/living/carbon/human/H)
|
||||
|
||||
@@ -1283,10 +1285,10 @@ var/list/has_died_as_golem = list()
|
||||
|
||||
primitive = /mob/living/carbon/monkey/mushroom
|
||||
|
||||
spells = list(/spell/targeted/genetic/invert_eyes)
|
||||
spells = list(/spell/targeted/genetic/invert_eyes, /spell/targeted/genetic/fungaltelepathy)
|
||||
|
||||
default_mutations=list(M_REMOTE_TALK)
|
||||
default_block_names=list("REMOTETALK")
|
||||
|
||||
default_mutations=list() //exoskeleton someday...
|
||||
|
||||
blood_color = MUSHROOM_BLOOD
|
||||
flesh_color = "#D3D3D3"
|
||||
@@ -1309,9 +1311,10 @@ var/list/has_died_as_golem = list()
|
||||
|
||||
species_intro = "You are a Mushroom Person.<br>\
|
||||
You are an odd creature. Your lack of a mouth prevents you from eating, but you can stand or lay on food to absorb it.<br>\
|
||||
You have a resistance to burn and toxin, but a weakness to brute damage. You are adept at seeing in the dark, moreso with your light inversion ability.<br>\
|
||||
Additionally, you cannot speak. Instead you can remotely talk into somebodies mind should you examine them, or they talk to you.<br>\
|
||||
You have a resistance to burn and toxin, but you are vulnerable to brute attacks.<br>\
|
||||
You are adept at seeing in the dark, moreso with your light inversion ability. When you speak, it will only go to the target chosen with your Fungal Telepathy.<br>\
|
||||
You also have access to the Sporemind, which allows you to communicate with others on the Sporemind through :~"
|
||||
var/mob/living/telepathic_target
|
||||
|
||||
/datum/species/mushroom/makeName()
|
||||
return capitalize(pick(mush_first)) + " " + capitalize(pick(mush_last))
|
||||
@@ -1320,6 +1323,14 @@ var/list/has_died_as_golem = list()
|
||||
..()
|
||||
H.default_gib()
|
||||
|
||||
/datum/species/mushroom/silent_speech(mob/M, message)
|
||||
if(istype(telepathic_target) && M.can_mind_interact(telepathic_target))
|
||||
telepathic_target.show_message("<span class='mushroom'>You feel <b>[M]</b>'s thoughts: [message]</span>.")
|
||||
M.show_message("<span class='mushroom'>Projected to <b>[telepathic_target]</b>: [message]</span>")
|
||||
log_admin("[key_name(M)] mushroom projects his mind towards (believed:[telepathic_target]/actual:[key_name(telepathic_target)]: [message]</span>")
|
||||
for(var/mob/dead/observer/G in dead_mob_list)
|
||||
G.show_message("<i>Mushroom telepathy from <b>[M]</b> to <b>[telepathic_target]</b>: [message]</i>")
|
||||
|
||||
/datum/species/lich
|
||||
name = "Undead"
|
||||
icobase = 'icons/mob/human_races/r_lich.dmi'
|
||||
|
||||
@@ -21,3 +21,42 @@
|
||||
var/datum/organ/internal/eyes/mushroom/E = M.internal_organs_by_name["eyes"]
|
||||
if(istype(E))
|
||||
E.dark_mode = !E.dark_mode
|
||||
|
||||
/spell/targeted/genetic/fungaltelepathy
|
||||
name = "Fungal telepathy"
|
||||
desc = "Allows you to remotely speak to another being. You must either hear them speak or examine them to make contact."
|
||||
panel = "Mutant Powers"
|
||||
user_type = USER_TYPE_GENETIC
|
||||
charge_type = Sp_RECHARGE
|
||||
charge_max = 50
|
||||
invocation_type = SpI_NONE
|
||||
range = GLOBALCAST //the world
|
||||
max_targets = 1
|
||||
selection_type = "view"
|
||||
spell_flags = SELECTABLE|TALKED_BEFORE
|
||||
override_base = "genetic"
|
||||
hud_state = "gen_project"
|
||||
compatible_mobs = list(/mob/living/carbon/human, /datum/mind)
|
||||
mind_affecting = 1
|
||||
|
||||
/spell/targeted/genetic/fungaltelepathy/cast(var/list/targets, mob/living/carbon/human/user)
|
||||
if(!user || !istype(user))
|
||||
return
|
||||
|
||||
if(user.mind.miming)
|
||||
to_chat(user, "<span class = 'warning'>You find yourself unable to convey your thoughts outside of gestures.</span>")
|
||||
return
|
||||
|
||||
for(var/T in targets)
|
||||
var/mob/living/target
|
||||
if (isliving(T))
|
||||
target = T
|
||||
if (istype (T, /datum/mind))
|
||||
target = user.can_mind_interact(T)
|
||||
if(!T || !istype(target) || tinfoil_check(target))
|
||||
return
|
||||
to_chat(user, "<span class = 'notice'>You orient your mind toward [target].</span>")
|
||||
var/datum/species/mushroom/M = user.species
|
||||
if(!istype(M))
|
||||
return
|
||||
M.telepathic_target = target
|
||||
Reference in New Issue
Block a user