Adds runechat to the abductor mindlink (#23868)

* Adds runechat to the abductor mindlink

* Update code/game/gamemodes/miniantags/abduction/abduction_gear.dm
This commit is contained in:
GDN
2024-02-04 15:59:52 -06:00
committed by GitHub
parent a31a1aafa1
commit 605abfc76d
4 changed files with 17 additions and 15 deletions
+1
View File
@@ -8,6 +8,7 @@
#define NO_STUTTER 256 // No stuttering, slurring, or other speech problems
#define NOBABEL 512 // Not granted by book of babel. Typically antag languages.
#define NOLIBRARIAN 1024 // Flag for banning the Librarian from certain languages. (actual 1984)
#define HIVEMIND_RUNECHAT (1<<11) // Flag for letting hivemind languages have a runechat appear over the head of the recipient
//Auto-accent level defines.
#define AUTOHISS_OFF 0
+9 -9
View File
@@ -928,10 +928,10 @@
log_say("(TPATH to [key_name(target)]) [say]", user)
user.create_log(SAY_LOG, "Telepathically said '[say]' using [src]", target)
if(target.dna?.GetSEState(GLOB.remotetalkblock))
target.show_message("<span class='abductor'>You hear [user.real_name]'s voice: [say]</span>")
target.show_message("<i><span class='abductor'>You hear [user.real_name]'s voice: [say]</span></i>")
else
target.show_message("<span class='abductor'>You hear a voice that seems to echo around the room: [say]</span>")
user.show_message("<span class='abductor'>You project your mind into [(target in user.get_visible_mobs()) ? target.name : "the unknown entity"]: [say]</span>")
target.show_message("<i><span class='abductor'>You hear a voice that seems to echo around the room: [say]</span></i>")
user.show_message("<i><span class='abductor'>You project your mind into [(target in user.get_visible_mobs()) ? target.name : "the unknown entity"]: [say]</span></i>")
for(var/mob/dead/observer/G in GLOB.player_list)
G.show_message("<i>Telepathic message from <b>[user]</b> ([ghost_follow_link(user, ghost=G)]) to <b>[target]</b> ([ghost_follow_link(target, ghost=G)]): [say]</i>")
@@ -955,8 +955,8 @@
var/message = "You feel your mind expand briefly... (Click to send a message.)"
if(target.dna?.GetSEState(GLOB.remotetalkblock))
message = "You feel [user.real_name] request a response from you... (Click here to project mind.)"
user.show_message("<span class='abductor'>You offer your mind to [(target in user.get_visible_mobs()) ? target.name : "the unknown entity"].</span>")
target.show_message("<span class='abductor'><A href='?src=[UID()];target=[target.UID()];user=[user.UID()]'>[message]</a></span>")
user.show_message("<i><span class='abductor'>You offer your mind to [(target in user.get_visible_mobs()) ? target.name : "the unknown entity"].</span></i>")
target.show_message("<i><span class='abductor'><A href='?src=[UID()];target=[target.UID()];user=[user.UID()]'>[message]</a></span></i>")
available_targets += target
addtimer(CALLBACK(src, PROC_REF(removeAvailability), target), 100)
@@ -964,7 +964,7 @@
if(target in available_targets)
available_targets -= target
if(!(target in available_targets))
target.show_message("<span class='abductor'>You feel the sensation fade...</span>")
target.show_message("<i><span class='abductor'>You feel the sensation fade...</span></i>")
/obj/effect/proc_holder/spell/mindscan/Topic(href, href_list)
var/mob/living/user
@@ -985,10 +985,10 @@
user.create_log(SAY_LOG, "Telepathically responded '[say]' using [src]", target)
log_say("(TPATH to [key_name(target)]) [say]", user)
if(target.dna?.GetSEState(GLOB.remotetalkblock))
target.show_message("<span class='abductor'>You project your mind into [user.name]: [say]</span>")
target.show_message("<i><span class='abductor'>You project your mind into [user.name]: [say]</span></i>")
else
target.show_message("<span class='abductor'>You fill the space in your thoughts: [say]</span>")
user.show_message("<span class='abductor'>You hear [target.name]'s voice: [say]</span>")
target.show_message("<i><span class='abductor'>You fill the space in your thoughts: [say]</span></i>")
user.show_message("<i><span class='abductor'>You hear [target.name]'s voice: [say]</span></i>")
for(var/mob/dead/observer/G in GLOB.player_list)
G.show_message("<i>Telepathic response from <b>[target]</b> ([ghost_follow_link(target, ghost=G)]) to <b>[user]</b> ([ghost_follow_link(user, ghost=G)]): [say]</i>")
+6 -5
View File
@@ -111,13 +111,15 @@
var/msg = "<i><span class='game say'>[name], <span class='name'>[speaker_mask]</span> [get_spoken_verb(message)], [format_message(message)]</span></i>"
for(var/mob/player in GLOB.player_list)
if(istype(player,/mob/dead) && follow)
if(istype(player, /mob/dead) && follow)
var/msg_dead = "<i><span class='game say'>[name], <span class='name'>[speaker_mask]</span> ([ghost_follow_link(speaker, ghost=player)]) [get_spoken_verb(message)], [format_message(message)]</span></i>"
to_chat(player, msg_dead)
continue
else if(istype(player,/mob/dead) || ((src in player.languages) && check_special_condition(player, speaker)))
else if(istype(player, /mob/dead) || ((src in player.languages) && check_special_condition(player, speaker)))
to_chat(player, msg)
if((flags & HIVEMIND) && (flags & HIVEMIND_RUNECHAT))
player.create_chat_message(player, "[speaker_mask], [format_message(message)]")
/datum/language/proc/check_special_condition(mob/other, mob/living/speaker)
return TRUE
@@ -281,7 +283,6 @@
/datum/language/trinary/scramble(input)
. = ..(copytext(input, 1, max(length(input) / 4, 2)))
/datum/language/trinary/get_random_name()
var/new_name
if(prob(70))
@@ -313,7 +314,6 @@
new_name += "[pick(list("Tristan", "Zarlan", "Clack", "Kkraz", "Zramn", "Orlan", "Zrax", "Orax", "Oriz", "Tariz", "Kvestan"))]"
return new_name
/datum/language/slime
name = "Bubblish"
desc = "The language of slimes. It's a mixture of bubbling noises and pops. Very difficult to speak without mechanical aid for humans."
@@ -564,7 +564,7 @@
exclaim_verbs = list("gibbers")
colour = "abductor"
key = "zw" //doesn't matter, this is their default and only language
flags = RESTRICTED | HIVEMIND | NOBABEL
flags = RESTRICTED | HIVEMIND | NOBABEL | HIVEMIND_RUNECHAT
follow = TRUE
/datum/language/abductor/broadcast(mob/living/speaker, message, speaker_mask)
@@ -581,6 +581,7 @@
/datum/language/abductor/golem
name = "Golem Mindlink"
desc = "Communicate with other alien alloy golems through a psychic link."
flags = RESTRICTED | HIVEMIND | NOBABEL
/datum/language/abductor/golem/check_special_condition(mob/living/carbon/human/other, mob/living/carbon/human/speaker)
return TRUE
+1 -1
View File
@@ -178,7 +178,7 @@ window "paramapwindow"
is-default = true
saved-params = "icon-size;zoom-mode"
zoom-mode = "distort"
style = ".center { text-align: center; } .maptext { font-family: 'Small Fonts'; font-size: 7px; -dm-text-outline: 1px black; color: white; line-height: 1.1; } .small { font-size: 6px; } .big { font-size: 8px; } .reallybig { font-size: 8px; } .extremelybig { font-size: 8px; } .clown { color: #FF69Bf;} .tajaran {color: #803B56;} .skrell {color: #00CED1;} .solcom {color: #22228B;} .com_srus {color: #7c4848;} .zombie\t{color: #ff0000;} .soghun {color: #228B22;} .vox {color: #AA00AA;} .diona {color: #804000; font-weight: bold;} .trinary {color: #727272;} .kidan {color: #664205;} .slime {color: #0077AA;} .drask {color: #a3d4eb;} .vulpkanin {color: #B97A57;} .abductor {color: #800080; font-style: italic;} .his_grace { color: #15D512; } .hypnophrase { color: #0d0d0d; font-weight: bold; } .yell { font-weight: bold; }"
style = ".center { text-align: center; } .maptext { font-family: 'Small Fonts'; font-size: 7px; -dm-text-outline: 1px black; color: white; line-height: 1.1; } .small { font-size: 6px; } .big { font-size: 8px; } .reallybig { font-size: 8px; } .extremelybig { font-size: 8px; } .clown { color: #FF69Bf;} .tajaran {color: #803B56;} .skrell {color: #00CED1;} .solcom {color: #22228B;} .com_srus {color: #7c4848;} .zombie\t{color: #ff0000;} .soghun {color: #228B22;} .vox {color: #AA00AA;} .diona {color: #804000; font-weight: bold;} .trinary {color: #727272;} .kidan {color: #664205;} .slime {color: #0077AA;} .drask {color: #a3d4eb;} .vulpkanin {color: #B97A57;} .abductor {color: #800080;} .his_grace { color: #15D512; } .hypnophrase { color: #0d0d0d; font-weight: bold; } .yell { font-weight: bold; }"
on-show = ".winset \"menu.statusbar.is-checked=true?paramapwindow.status_bar.is-visible=true:paramapwindow.status_bar.is-visible=false\""
elem "status_bar"
type = LABEL