mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-18 02:24:11 +01:00
Ghost bar (#22368)
* Ghost bar initial changes * more changes * we ball again brothers * we are (once again) SO back * Update code/modules/admin/verbs/debug.dm Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com> * Update code/_onclick/hud/alert.dm Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com> * Update code/_onclick/hud/alert.dm Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com> * Update code/modules/ruins/ghost_bar.dm Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com> * Update code/modules/ruins/ghost_bar.dm Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com> * Update code/modules/ruins/ghost_bar.dm Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com> * Update code/modules/ruins/ghost_bar.dm Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com> * Update code/modules/ruins/ghost_bar.dm Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com> * Update code/game/objects/items/weapons/cards_ids.dm Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com> * deck of cards and shittt * global placement * Update code/modules/ruins/ghost_bar.dm Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com> * readded * hotfix * zamn * fixes * greyfix * last of the fixes * can't stop me baby * bam --------- Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com> Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>
This commit is contained in:
@@ -361,6 +361,7 @@
|
||||
var/mob/dead/observer/chosen = pick(candidates)
|
||||
S.key = chosen.key
|
||||
S.mind.special_role = SPECIAL_ROLE_PYROCLASTIC_SLIME
|
||||
dust_if_respawnable(chosen)
|
||||
log_game("[key_name(S.key)] was made into a slime by pyroclastic anomaly at [AREACOORD(T)].")
|
||||
|
||||
/////////////////////
|
||||
|
||||
@@ -198,6 +198,7 @@
|
||||
var/mob/C = pick(candidates)
|
||||
if(C)
|
||||
S.key = C.key
|
||||
dust_if_respawnable(C)
|
||||
if(S.master_commander)
|
||||
to_chat(S, "<span class='biggerdanger'>You are a spider who is loyal to [S.master_commander], obey [S.master_commander]'s every order and assist [S.master_commander.p_them()] in completing [S.master_commander.p_their()] goals at any cost.</span>")
|
||||
qdel(src)
|
||||
|
||||
@@ -20,6 +20,8 @@ GLOBAL_LIST_INIT(default_medbay_channels, list(
|
||||
num2text(MED_I_FREQ) = list(ACCESS_MEDICAL)
|
||||
))
|
||||
|
||||
GLOBAL_LIST_EMPTY(deadsay_radio_systems)
|
||||
|
||||
/obj/item/radio
|
||||
icon = 'icons/obj/radio.dmi'
|
||||
name = "station bounced radio"
|
||||
@@ -795,3 +797,48 @@ GLOBAL_LIST_INIT(default_medbay_channels, list(
|
||||
/obj/item/radio/phone/medbay/New()
|
||||
..()
|
||||
internal_channels = GLOB.default_medbay_channels.Copy()
|
||||
|
||||
/obj/item/radio/proc/attempt_send_deadsay_message(mob/subject, message)
|
||||
return
|
||||
|
||||
/obj/item/radio/headset/deadsay
|
||||
name = "spectral radio"
|
||||
ks2type = /obj/item/encryptionkey/centcom
|
||||
|
||||
/obj/item/radio/headset/deadsay/New()
|
||||
..()
|
||||
GLOB.deadsay_radio_systems.Add(src)
|
||||
make_syndie()
|
||||
|
||||
/obj/item/radio/headset/deadsay/Destroy()
|
||||
GLOB.deadsay_radio_systems.Remove(src)
|
||||
return ..()
|
||||
|
||||
/obj/item/radio/headset/deadsay/screwdriver_act(mob/user, obj/item/I)
|
||||
return
|
||||
|
||||
/obj/item/radio/headset/deadsay/attempt_send_deadsay_message(mob/subject, message)
|
||||
if(!listening)
|
||||
return
|
||||
var/mob/hearer = loc // if people want dchat to shut up, they shouldn't need to deal with other people's headsets
|
||||
if(!istype(hearer) || hearer.stat || !hearer.can_hear())
|
||||
return
|
||||
|
||||
if(!hearer.get_preference(PREFTOGGLE_CHAT_DEAD))
|
||||
return
|
||||
|
||||
var/speaker_name
|
||||
if(!subject || subject.client.prefs.toggles2 & PREFTOGGLE_2_ANON)
|
||||
subject ? (speaker_name = "<i>Anon</i> ([subject.mind.name])") : (speaker_name = "<i>Anon</i>")
|
||||
else
|
||||
speaker_name = "[subject.client.key] ([subject.mind.name])"
|
||||
|
||||
to_chat(hearer, "<span class='deadsay'><b>[speaker_name]</b> ([ghost_follow_link(subject, hearer)]) [message]</span>")
|
||||
|
||||
/obj/item/radio/headset/deadsay/talk_into(mob/living/M, list/message_pieces, channel, verbage)
|
||||
var/message = sanitize(copytext(multilingual_to_message(message_pieces), 1, MAX_MESSAGE_LEN))
|
||||
|
||||
if(!message)
|
||||
return
|
||||
|
||||
return M.say_dead(message)
|
||||
|
||||
@@ -385,6 +385,12 @@
|
||||
name = "agent card"
|
||||
initial_access = list(ACCESS_MAINT_TUNNELS, ACCESS_VOX, ACCESS_EXTERNAL_AIRLOCKS)
|
||||
|
||||
/obj/item/card/id/syndicate/ghost_bar
|
||||
name = "ghost bar identification card"
|
||||
assignment = "Ghost Bar Occupant"
|
||||
initial_access = list() // This is for show, they don't need actual accesses
|
||||
icon_state = "assistant"
|
||||
|
||||
/obj/item/card/id/syndicate/command
|
||||
initial_access = list(ACCESS_MAINT_TUNNELS, ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER, ACCESS_SYNDICATE_COMMAND, ACCESS_EXTERNAL_AIRLOCKS)
|
||||
icon_state = "commander"
|
||||
|
||||
@@ -296,6 +296,7 @@
|
||||
var/mob/dead/observer/C = pick(candidates)
|
||||
message_admins("[ADMIN_LOOKUPFLW(C)] was spawned as Dice Servant")
|
||||
H.key = C.key
|
||||
dust_if_respawnable(C)
|
||||
to_chat(H, "<span class='notice'>You are a servant of [user.real_name]. You must do everything in your power to follow their orders.</span>")
|
||||
|
||||
var/obj/effect/proc_holder/spell/summonmob/S = new
|
||||
|
||||
@@ -294,6 +294,7 @@
|
||||
S.real_name = name
|
||||
S.name = name
|
||||
S.ckey = theghost.ckey
|
||||
dust_if_respawnable(theghost)
|
||||
var/input = stripped_input(S, "What are you named?", null, "", MAX_NAME_LEN)
|
||||
|
||||
if(src && input)
|
||||
|
||||
@@ -78,6 +78,9 @@
|
||||
if(istype(I, /obj/item/grab))
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
var/obj/item/grab/G = I
|
||||
if(HAS_TRAIT(user, TRAIT_PACIFISM))
|
||||
to_chat(user, "<span class='danger'>Swirling [G.affecting] might hurt them!</span>")
|
||||
return
|
||||
if(!G.confirm())
|
||||
return
|
||||
if(isliving(G.affecting))
|
||||
@@ -204,6 +207,9 @@
|
||||
var/obj/item/grab/G = I
|
||||
if(!G.confirm())
|
||||
return
|
||||
if(HAS_TRAIT(user, TRAIT_PACIFISM))
|
||||
to_chat(user, "<span class='danger'>Slamming [G.affecting] into [src] might hurt them!</span>")
|
||||
return
|
||||
if(isliving(G.affecting))
|
||||
var/mob/living/GM = G.affecting
|
||||
if(G.state >= GRAB_AGGRESSIVE)
|
||||
|
||||
Reference in New Issue
Block a user