mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-20 03:25:49 +01:00
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:
@@ -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
|
||||
|
||||
@@ -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>")
|
||||
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user