mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-22 12:41:09 +01:00
[MIRROR] Converts some notify_ghosts args to bitflags, multilines all notify_ghosts calls [MDB IGNORE] (#24804)
* Converts some notify_ghosts args to bitflags, multilines all notify_ghosts calls * Update supermatter.dm * Modular * More modular * Update cortical_borer_egg.dm --------- Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
This commit is contained in:
co-authored by
Rhials
Bloop
parent
3e9bb6f118
commit
596b2f050e
@@ -0,0 +1,12 @@
|
||||
// Various flags for notify_ghosts ghost popups.
|
||||
/// Determines if the notification will not run if called during mapload.
|
||||
#define GHOST_NOTIFY_IGNORE_MAPLOAD (1<<0)
|
||||
/// Determines if the notification will flash the Byond window.
|
||||
#define GHOST_NOTIFY_FLASH_WINDOW (1<<1)
|
||||
/// Determines if the notification will notify suiciders.
|
||||
#define GHOST_NOTIFY_NOTIFY_SUICIDERS (1<<2)
|
||||
|
||||
/// The default set of flags to be passed into a notify_ghosts call.
|
||||
#define NOTIFY_CATEGORY_DEFAULT (GHOST_NOTIFY_FLASH_WINDOW | GHOST_NOTIFY_IGNORE_MAPLOAD | GHOST_NOTIFY_NOTIFY_SUICIDERS)
|
||||
/// The default set of flags, without the flash_window flag.
|
||||
#define NOTIFY_CATEGORY_NOFLASH (NOTIFY_CATEGORY_DEFAULT & ~GHOST_NOTIFY_FLASH_WINDOW)
|
||||
@@ -262,7 +262,13 @@
|
||||
/datum/brain_trauma/severe/split_personality/blackout/on_gain()
|
||||
. = ..()
|
||||
RegisterSignal(owner, COMSIG_ATOM_SPLASHED, PROC_REF(on_splashed))
|
||||
notify_ghosts("[owner] is blacking out!", source = owner, action = NOTIFY_ORBIT, flashwindow = FALSE, header = "Bro I'm not even drunk right now")
|
||||
notify_ghosts(
|
||||
"[owner] is blacking out!",
|
||||
source = owner,
|
||||
action = NOTIFY_ORBIT,
|
||||
notify_flags = NOTIFY_CATEGORY_NOFLASH,
|
||||
header = "Bro I'm not even drunk right now",
|
||||
)
|
||||
|
||||
/datum/brain_trauma/severe/split_personality/blackout/on_lose()
|
||||
. = ..()
|
||||
|
||||
@@ -377,7 +377,13 @@
|
||||
for(var/shielded_turf in spiral_range_turfs(1, cultist, 1))
|
||||
LAZYADD(shields, new /obj/structure/emergency_shield/cult/narsie(shielded_turf))
|
||||
|
||||
notify_ghosts("[cultist] has begun scribing a Nar'Sie rune!", source = cultist, action = NOTIFY_ORBIT, header = "Maranax Infirmux!")
|
||||
notify_ghosts(
|
||||
"[cultist] has begun scribing a Nar'Sie rune!",
|
||||
source = cultist,
|
||||
action = NOTIFY_ORBIT,
|
||||
header = "Maranax Infirmux!",
|
||||
notify_flags = NOTIFY_CATEGORY_NOFLASH,
|
||||
)
|
||||
|
||||
return TRUE
|
||||
|
||||
|
||||
@@ -39,7 +39,12 @@
|
||||
if(deadchat_mode & ANARCHY_MODE) // Choose one, please.
|
||||
stack_trace("deadchat_control component added to [parent.type] with both democracy and anarchy modes enabled.")
|
||||
timerid = addtimer(CALLBACK(src, PROC_REF(democracy_loop)), input_cooldown, TIMER_STOPPABLE | TIMER_LOOP)
|
||||
notify_ghosts("[parent] is now deadchat controllable!", source = parent, action = NOTIFY_ORBIT, header="Something Interesting!")
|
||||
notify_ghosts(
|
||||
"[parent] is now deadchat controllable!",
|
||||
source = parent,
|
||||
action = NOTIFY_ORBIT,
|
||||
header = "Something Interesting!",
|
||||
)
|
||||
if(!ismob(parent) && !SSpoints_of_interest.is_valid_poi(parent))
|
||||
SSpoints_of_interest.make_point_of_interest(parent)
|
||||
generated_point_of_interest = TRUE
|
||||
|
||||
@@ -106,7 +106,12 @@
|
||||
return FALSE
|
||||
|
||||
// Finally the interesting part where they ACTUALLY get hit!
|
||||
notify_ghosts("[future_tram_victim] has fallen in the path of an oncoming tram!", source = future_tram_victim, action = NOTIFY_ORBIT, header = "Electrifying!")
|
||||
notify_ghosts(
|
||||
"[future_tram_victim] has fallen in the path of an oncoming tram!",
|
||||
source = future_tram_victim,
|
||||
action = NOTIFY_ORBIT,
|
||||
header = "Electrifying!",
|
||||
)
|
||||
playsound(src, SFX_SPARKS, 75, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
|
||||
source.audible_message(span_danger("[parent] makes a loud electric crackle!"))
|
||||
to_chat(future_tram_victim, span_userdanger("You hear a loud electric crackle!"))
|
||||
|
||||
@@ -23,7 +23,12 @@
|
||||
src.bite_chance = bite_chance
|
||||
src.minimum_scale = minimum_scale
|
||||
initial_reagent_volume = atom_parent.reagents.total_volume
|
||||
notify_ghosts("[parent] is edible by ghosts!", source = parent, action = NOTIFY_ORBIT, header="Something Tasty!")
|
||||
notify_ghosts(
|
||||
"[parent] is edible by ghosts!",
|
||||
source = parent,
|
||||
action = NOTIFY_ORBIT,
|
||||
header="Something Tasty!",
|
||||
)
|
||||
|
||||
/datum/component/ghost_edible/RegisterWithParent()
|
||||
START_PROCESSING(SSdcs, src)
|
||||
|
||||
@@ -47,13 +47,14 @@
|
||||
|
||||
var/message = custom_message || "[capitalize(src.title)] is looking for volunteers"
|
||||
|
||||
notify_ghosts("[message]. An orbiter will be chosen in [DisplayTimeText(timeout)].\n", \
|
||||
action = NOTIFY_ORBIT, \
|
||||
enter_link = "<a href='?src=[REF(src)];ignore=[ignore_key]'>(Ignore)</a>", \
|
||||
flashwindow = FALSE, \
|
||||
header = "Volunteers requested", \
|
||||
ignore_key = ignore_key, \
|
||||
source = parent \
|
||||
notify_ghosts(
|
||||
"[message]. An orbiter will be chosen in [DisplayTimeText(timeout)].\n",
|
||||
action = NOTIFY_ORBIT,
|
||||
enter_link = "<a href='?src=[REF(src)];ignore=[ignore_key]'>(Ignore)</a>",
|
||||
notify_flags = NOTIFY_CATEGORY_NOFLASH,
|
||||
header = "Volunteers requested",
|
||||
ignore_key = ignore_key,
|
||||
source = parent,
|
||||
)
|
||||
|
||||
addtimer(CALLBACK(src, PROC_REF(end_poll)), timeout, TIMER_UNIQUE|TIMER_OVERRIDE|TIMER_STOPPABLE|TIMER_DELETE_ME)
|
||||
|
||||
@@ -302,7 +302,12 @@
|
||||
consumed_mob.investigate_log("has been dusted by [atom_source].", INVESTIGATE_DEATHS)
|
||||
if(istype(consumed_mob, /mob/living/simple_animal/parrot/poly)) // Dusting Poly creates a power surge
|
||||
force_event(/datum/round_event_control/supermatter_surge/poly, "Poly's revenge")
|
||||
notify_ghosts("[consumed_mob] has been dusted by [atom_source]!", source = atom_source, action = NOTIFY_JUMP, header = "Polytechnical Difficulties")
|
||||
notify_ghosts(
|
||||
"[consumed_mob] has been dusted by [atom_source]!",
|
||||
source = atom_source,
|
||||
header = "Polytechnical Difficulties",
|
||||
notify_flags = NOTIFY_CATEGORY_DEFAULT,
|
||||
)
|
||||
consumed_mob.dust(force = TRUE)
|
||||
matter_increase += 100 * object_size
|
||||
if(is_clown_job(consumed_mob.mind?.assigned_role))
|
||||
|
||||
@@ -184,7 +184,12 @@
|
||||
if(makeBody)
|
||||
new_character = generate_ruleset_body(applicant)
|
||||
finish_setup(new_character, i)
|
||||
notify_ghosts("[applicant.name] has been picked for the ruleset [name]!", source = new_character, action = NOTIFY_ORBIT, header="Something Interesting!")
|
||||
notify_ghosts(
|
||||
"[applicant.name] has been picked for the ruleset [name]!",
|
||||
source = new_character,
|
||||
action = NOTIFY_ORBIT,
|
||||
header = "Something Interesting!",
|
||||
)
|
||||
|
||||
/datum/dynamic_ruleset/midround/from_ghosts/proc/generate_ruleset_body(mob/applicant)
|
||||
var/mob/living/carbon/human/new_character = make_body(applicant)
|
||||
|
||||
@@ -251,7 +251,12 @@
|
||||
if(isnull(payload) || istype(payload, /obj/machinery/syndicatebomb/training))
|
||||
return
|
||||
|
||||
notify_ghosts("\A [src] has been activated at [get_area(src)]!", source = src, action = NOTIFY_ORBIT, flashwindow = FALSE, header = "Bomb Planted")
|
||||
notify_ghosts(
|
||||
"\A [src] has been activated at [get_area(src)]!",
|
||||
source = src,
|
||||
action = NOTIFY_ORBIT,
|
||||
header = "Bomb Planted",
|
||||
)
|
||||
user.add_mob_memory(/datum/memory/bomb_planted/syndicate, antagonist = src)
|
||||
log_bomber(user, "has primed a", src, "for detonation (Payload: [payload.name])")
|
||||
payload.adminlog = "The [name] that [key_name(user)] had primed detonated!"
|
||||
|
||||
@@ -124,7 +124,11 @@
|
||||
span_hear("You hear a click."))
|
||||
message_admins("Power sink activated by [ADMIN_LOOKUPFLW(user)] at [ADMIN_VERBOSEJMP(src)]")
|
||||
user.log_message("activated a powersink", LOG_GAME)
|
||||
notify_ghosts("[user] has activated a power sink!", source = src, header = "Shocking News!")
|
||||
notify_ghosts(
|
||||
"[user] has activated a power sink!",
|
||||
source = src,
|
||||
header = "Shocking News!",
|
||||
)
|
||||
set_mode(OPERATING)
|
||||
|
||||
if(OPERATING)
|
||||
@@ -188,7 +192,11 @@
|
||||
if (!warning_given)
|
||||
warning_given = TRUE
|
||||
message_admins("Power sink at ([x],[y],[z] - <A HREF='?_src_=holder;[HrefToken()];adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>JMP</a>) has reached [ALERT]% of max heat. Explosion imminent.")
|
||||
notify_ghosts("[src] is about to reach critical heat capacity!", source = src, header = "Power Sunk")
|
||||
notify_ghosts(
|
||||
"[src] is about to reach critical heat capacity!",
|
||||
source = src,
|
||||
header = "Power Sunk",
|
||||
)
|
||||
playsound(src, 'sound/effects/screech.ogg', 100, TRUE, TRUE)
|
||||
|
||||
if(internal_heat >= max_heat)
|
||||
|
||||
@@ -107,7 +107,15 @@
|
||||
user.dropItemToGround(src)
|
||||
target.equip_to_slot_if_possible(src, ITEM_SLOT_HEAD)
|
||||
arm()
|
||||
notify_ghosts("[user] put a reverse bear trap on [target]!", source = src, action = NOTIFY_ORBIT, flashwindow = FALSE, ghost_sound = 'sound/machines/beep.ogg', notify_volume = 75, header = "Reverse bear trap armed")
|
||||
notify_ghosts(
|
||||
"[user] put a reverse bear trap on [target]!",
|
||||
source = src,
|
||||
action = NOTIFY_ORBIT,
|
||||
notify_flags = NOTIFY_CATEGORY_NOFLASH,
|
||||
ghost_sound = 'sound/machines/beep.ogg',
|
||||
notify_volume = 75,
|
||||
header = "Reverse bear trap armed",
|
||||
)
|
||||
|
||||
/obj/item/reverse_bear_trap/proc/snap()
|
||||
reset()
|
||||
|
||||
@@ -158,7 +158,12 @@
|
||||
// notify ghosts that someone's shaking a haunted eightball
|
||||
// and inform them of the message, (hopefully a yes/no question)
|
||||
selected_message = last_message
|
||||
notify_ghosts("[user] is shaking [src], hoping to get an answer to \"[selected_message]\"", source = src, action = NOTIFY_PLAY, header = "Magic eightball")
|
||||
notify_ghosts(
|
||||
"[user] is shaking [src], hoping to get an answer to \"[selected_message]\"",
|
||||
source = src,
|
||||
action = NOTIFY_PLAY,
|
||||
header = "Magic eightball",
|
||||
)
|
||||
|
||||
/obj/item/toy/eightball/haunted/get_answer()
|
||||
var/top_amount = 0
|
||||
|
||||
@@ -119,7 +119,13 @@
|
||||
|
||||
message_admins("[ADMIN_LOOKUPFLW(user)] planted [name] on [target.name] at [ADMIN_VERBOSEJMP(target)] with [det_time] second fuse")
|
||||
user.log_message("planted [name] on [target.name] with a [det_time] second fuse.", LOG_ATTACK)
|
||||
notify_ghosts("[user] has planted \a [src] on [target] with a [det_time] second fuse!", source = bomb_target, action = (isturf(target) ? NOTIFY_JUMP : NOTIFY_ORBIT), flashwindow = FALSE, header = "Explosive Planted")
|
||||
notify_ghosts(
|
||||
"[user] has planted \a [src] on [target] with a [det_time] second fuse!",
|
||||
source = bomb_target,
|
||||
action = (isturf(target) ? NOTIFY_JUMP : NOTIFY_ORBIT),
|
||||
notify_flags = NOTIFY_CATEGORY_NOFLASH,
|
||||
header = "Explosive Planted",
|
||||
)
|
||||
|
||||
moveToNullspace() //Yep
|
||||
|
||||
|
||||
@@ -149,7 +149,12 @@
|
||||
gender = MALE
|
||||
adjust_bloodthirst(1)
|
||||
force_bonus = HIS_GRACE_FORCE_BONUS * LAZYLEN(contents)
|
||||
notify_ghosts("[user] has awoken His Grace!", source = src, action = NOTIFY_ORBIT, header = "All Hail His Grace!")
|
||||
notify_ghosts(
|
||||
"[user] has awoken His Grace!",
|
||||
source = src,
|
||||
action = NOTIFY_ORBIT,
|
||||
header = "All Hail His Grace!",
|
||||
)
|
||||
playsound(user, 'sound/effects/pope_entry.ogg', 100)
|
||||
update_appearance()
|
||||
move_gracefully()
|
||||
|
||||
@@ -150,7 +150,12 @@
|
||||
log_bomber(null, null, src, "was primed for detonation (Timer:[delay],Explosive:[detonate_explosion],Range:[detonate_dev_range]/[detonate_heavy_range]/[detonate_light_range]/[detonate_fire_range])")
|
||||
active = TRUE
|
||||
if(detonate_explosion) //doesn't send a notification unless it's a genuine, exploding hot potato.
|
||||
notify_ghosts("[user] has primed a Hot Potato!", source = src, action = NOTIFY_ORBIT, header = "Hot Hot Hot!")
|
||||
notify_ghosts(
|
||||
"[user] has primed a Hot Potato!",
|
||||
source = src,
|
||||
action = NOTIFY_ORBIT,
|
||||
header = "Hot Hot Hot!",
|
||||
)
|
||||
|
||||
/obj/item/hot_potato/proc/deactivate()
|
||||
update_appearance()
|
||||
|
||||
@@ -125,10 +125,10 @@
|
||||
"[imp_in] is about to detonate their explosive implant!",
|
||||
source = src,
|
||||
action = NOTIFY_ORBIT,
|
||||
flashwindow = FALSE,
|
||||
notify_flags = NOTIFY_CATEGORY_NOFLASH,
|
||||
ghost_sound = 'sound/machines/warning-buzzer.ogg',
|
||||
header = "Tick Tick Tick...",
|
||||
notify_volume = 75
|
||||
notify_volume = 75,
|
||||
)
|
||||
|
||||
playsound(loc, 'sound/items/timer.ogg', 30, FALSE)
|
||||
|
||||
@@ -56,7 +56,11 @@
|
||||
|
||||
if(virgin)
|
||||
virgin = FALSE
|
||||
notify_ghosts("Someone has begun playing with \a [src] in [get_area(src)]!", source = src, header = "Spirit board")
|
||||
notify_ghosts(
|
||||
"Someone has begun playing with \a [src] in [get_area(src)]!",
|
||||
source = src,
|
||||
header = "Spirit board",
|
||||
)
|
||||
|
||||
var/new_planchette = tgui_input_list(ghost, "Choose the letter.", "Seance!", ghosty_options)
|
||||
if(isnull(new_planchette))
|
||||
|
||||
@@ -143,7 +143,8 @@
|
||||
action = NOTIFY_ORBIT,
|
||||
ghost_sound = 'sound/ambience/antag/blobalert.ogg',
|
||||
header = "Blob Awakening!",
|
||||
notify_volume = 75
|
||||
notify_volume = 75,
|
||||
notify_flags = NOTIFY_CATEGORY_DEFAULT,
|
||||
)
|
||||
|
||||
/datum/antagonist/blob/antag_listing_status()
|
||||
|
||||
@@ -922,7 +922,12 @@ GLOBAL_VAR_INIT(narsie_summon_count, 0)
|
||||
fail_invoke()
|
||||
log_game("Manifest rune failed - too many summoned ghosts")
|
||||
return list()
|
||||
notify_ghosts("Manifest rune invoked in [get_area(src)].", 'sound/effects/ghost2.ogg', source = src, header = "Manifest rune")
|
||||
notify_ghosts(
|
||||
"Manifest rune invoked in [get_area(src)].",
|
||||
'sound/effects/ghost2.ogg',
|
||||
source = src,
|
||||
header = "Manifest rune",
|
||||
)
|
||||
var/list/ghosts_on_rune = list()
|
||||
for(var/mob/dead/observer/O in T)
|
||||
if(O.client && !is_banned_from(O.ckey, ROLE_CULTIST) && !QDELETED(src) && !(isAdminObserver(O) && (O.client.prefs.toggles & ADMIN_IGNORE_CULT_GHOST)) && !QDELETED(O))
|
||||
|
||||
@@ -730,7 +730,13 @@
|
||||
|
||||
SSblackbox.record_feedback("tally", "heretic_ascended", 1, route)
|
||||
log_heretic_knowledge("[key_name(user)] completed their final ritual at [worldtime2text()].")
|
||||
notify_ghosts("[user] has completed an ascension ritual!", source = user, action = NOTIFY_ORBIT, header = "A Heretic is Ascending!")
|
||||
notify_ghosts(
|
||||
"[user] has completed an ascension ritual!",
|
||||
source = user,
|
||||
action = NOTIFY_ORBIT,
|
||||
header = "A Heretic is Ascending!",
|
||||
notify_flags = NOTIFY_CATEGORY_DEFAULT,
|
||||
)
|
||||
return TRUE
|
||||
|
||||
/datum/heretic_knowledge/ultimate/cleanup_atoms(list/selected_atoms)
|
||||
|
||||
@@ -464,6 +464,7 @@ GLOBAL_VAR(station_nuke_source)
|
||||
source = src,
|
||||
header = "Nuke Armed",
|
||||
action = NOTIFY_ORBIT,
|
||||
notify_flags = NOTIFY_CATEGORY_DEFAULT,
|
||||
)
|
||||
update_appearance()
|
||||
|
||||
|
||||
@@ -80,9 +80,19 @@
|
||||
var/mob/our_candidate = candidates[1]
|
||||
var/mob/spawned_mob = spawner.create_from_ghost(our_candidate)
|
||||
candidates -= our_candidate
|
||||
notify_ghosts("The [chosen_gang.ship_name] has an object of interest: [spawned_mob]!", source = spawned_mob, action = NOTIFY_ORBIT, header="Pirates!")
|
||||
notify_ghosts(
|
||||
"The [chosen_gang.ship_name] has an object of interest: [spawned_mob]!",
|
||||
source = spawned_mob,
|
||||
action = NOTIFY_ORBIT,
|
||||
header = "Pirates!",
|
||||
)
|
||||
else
|
||||
notify_ghosts("The [chosen_gang.ship_name] has an object of interest: [spawner]!", source = spawner, action = NOTIFY_ORBIT, header="Pirate Spawn Here!")
|
||||
notify_ghosts(
|
||||
"The [chosen_gang.ship_name] has an object of interest: [spawner]!",
|
||||
source = spawner,
|
||||
action = NOTIFY_ORBIT,
|
||||
header = "Pirate Spawn Here!",
|
||||
)
|
||||
|
||||
priority_announce(chosen_gang.arrival_announcement, sender_override = chosen_gang.ship_name)
|
||||
|
||||
|
||||
@@ -41,7 +41,13 @@
|
||||
new_rift.dragon = dragon
|
||||
dragon.rift_list += new_rift
|
||||
to_chat(owner, span_boldwarning("The rift has been summoned. Prevent the crew from destroying it at all costs!"))
|
||||
notify_ghosts("The Space Dragon has opened a rift!", source = new_rift, action = NOTIFY_ORBIT, flashwindow = FALSE, header = "Carp Rift Opened")
|
||||
notify_ghosts(
|
||||
"The Space Dragon has opened a rift!",
|
||||
source = new_rift,
|
||||
action = NOTIFY_ORBIT,
|
||||
notify_flags = NOTIFY_CATEGORY_NOFLASH,
|
||||
header = "Carp Rift Opened",
|
||||
)
|
||||
ASSERT(dragon.rift_ability == src) // Badmin protection.
|
||||
QDEL_NULL(dragon.rift_ability) // Deletes this action when used successfully, we re-gain a new one on success later.
|
||||
|
||||
@@ -189,7 +195,13 @@
|
||||
if(light_color != LIGHT_COLOR_PURPLE)
|
||||
set_light_color(LIGHT_COLOR_PURPLE)
|
||||
update_light()
|
||||
notify_ghosts("The carp rift can summon an additional carp!", source = src, action = NOTIFY_ORBIT, flashwindow = FALSE, header = "Carp Spawn Available")
|
||||
notify_ghosts(
|
||||
"The carp rift can summon an additional carp!",
|
||||
source = src,
|
||||
action = NOTIFY_ORBIT,
|
||||
notify_flags = NOTIFY_CATEGORY_NOFLASH,
|
||||
header = "Carp Spawn Available",
|
||||
)
|
||||
last_carp_inc -= carp_interval
|
||||
|
||||
// Is the rift now fully charged?
|
||||
|
||||
@@ -208,7 +208,12 @@
|
||||
playsound(target, 'sound/effects/pop.ogg', 100, TRAIT_MUTE)
|
||||
eyeballies.Remove(target)
|
||||
eyeballies.forceMove(get_turf(target))
|
||||
notify_ghosts("[target] has just had their eyes snatched!", source = target, action = NOTIFY_ORBIT, header = "Ouch!")
|
||||
notify_ghosts(
|
||||
"[target] has just had their eyes snatched!",
|
||||
source = target,
|
||||
action = NOTIFY_ORBIT,
|
||||
header = "Ouch!",
|
||||
)
|
||||
target.emote("scream")
|
||||
if(prob(20))
|
||||
target.emote("cry")
|
||||
|
||||
@@ -423,7 +423,8 @@
|
||||
header = "Meltdown Incoming",
|
||||
action = NOTIFY_ORBIT,
|
||||
ghost_sound = 'sound/machines/warning-buzzer.ogg',
|
||||
notify_volume = 75
|
||||
notify_volume = 75,
|
||||
notify_flags = NOTIFY_CATEGORY_DEFAULT,
|
||||
)
|
||||
|
||||
for(var/i in HYPERTORUS_COUNTDOWN_TIME to 0 step -10)
|
||||
|
||||
@@ -120,6 +120,7 @@ GLOBAL_VAR(basketball_game)
|
||||
ghost_sound = 'sound/effects/ghost2.ogg',
|
||||
notify_volume = 75,
|
||||
action = NOTIFY_ORBIT,
|
||||
notify_flags = NOTIFY_CATEGORY_DEFAULT,
|
||||
)
|
||||
|
||||
create_bodies(ready_players)
|
||||
|
||||
@@ -47,7 +47,13 @@
|
||||
ctf_enabled = TRUE
|
||||
for(var/team in teams)
|
||||
var/obj/machinery/ctf/spawner/spawner = teams[team].spawner
|
||||
notify_ghosts("[spawner.name] has been activated!", source = spawner, action = NOTIFY_ORBIT, header = "CTF has been activated")
|
||||
notify_ghosts(
|
||||
"[spawner.name] has been activated!",
|
||||
source = spawner,
|
||||
action = NOTIFY_ORBIT,
|
||||
header = "CTF has been activated",
|
||||
notify_flags = NOTIFY_CATEGORY_DEFAULT,
|
||||
)
|
||||
|
||||
/datum/ctf_controller/proc/stop_ctf()
|
||||
ctf_enabled = FALSE
|
||||
|
||||
@@ -516,11 +516,17 @@
|
||||
message_admins("[key_name_admin(user)] has [ctf_enabled ? "enabled" : "disabled"] CTF!")
|
||||
else if(automated)
|
||||
message_admins("CTF has finished a round and automatically restarted.")
|
||||
notify_ghosts("CTF has automatically restarted after a round finished in [initial(ctf_area.name)]!",'sound/effects/ghost2.ogg')
|
||||
notify_ghosts(
|
||||
"CTF has automatically restarted after a round finished in [initial(ctf_area.name)]!",
|
||||
'sound/effects/ghost2.ogg',
|
||||
)
|
||||
else
|
||||
message_admins("The players have spoken! Voting has enabled CTF!")
|
||||
if(!automated)
|
||||
notify_ghosts("CTF has been [ctf_enabled? "enabled" : "disabled"] in [initial(ctf_area.name)]!",'sound/effects/ghost2.ogg')
|
||||
notify_ghosts(
|
||||
"CTF has been [ctf_enabled? "enabled" : "disabled"] in [initial(ctf_area.name)]!",
|
||||
'sound/effects/ghost2.ogg',
|
||||
)
|
||||
|
||||
#undef CTF_LOADING_UNLOADED
|
||||
#undef CTF_LOADING_LOADING
|
||||
|
||||
@@ -261,7 +261,12 @@ Runs the event
|
||||
/datum/round_event/proc/announce_to_ghosts(atom/atom_of_interest)
|
||||
if(control.alert_observers)
|
||||
if (atom_of_interest)
|
||||
notify_ghosts("[control.name] has an object of interest: [atom_of_interest]!", source=atom_of_interest, action=NOTIFY_ORBIT, header="Something's Interesting!")
|
||||
notify_ghosts(
|
||||
"[control.name] has an object of interest: [atom_of_interest]!",
|
||||
source = atom_of_interest,
|
||||
action = NOTIFY_ORBIT,
|
||||
header = "Something's Interesting!",
|
||||
)
|
||||
return
|
||||
|
||||
//Called when the tick is equal to the announce_when variable.
|
||||
|
||||
@@ -93,7 +93,11 @@
|
||||
priority_announce("Planetary monitoring systems indicate a devastating seismic event in the near future.", "Seismic Report")
|
||||
|
||||
/datum/round_event/earthquake/start()
|
||||
notify_ghosts("The earthquake's epicenter has been located: [get_area_name(epicenter)]!", source = epicenter, header = "Rumble Rumble Rumble!")
|
||||
notify_ghosts(
|
||||
"The earthquake's epicenter has been located: [get_area_name(epicenter)]!",
|
||||
source = epicenter,
|
||||
header = "Rumble Rumble Rumble!",
|
||||
)
|
||||
|
||||
/datum/round_event/earthquake/tick()
|
||||
if(ISMULTIPLE(activeFor, 5))
|
||||
|
||||
@@ -134,9 +134,19 @@
|
||||
var/mob/our_candidate = candidates[1]
|
||||
var/mob/spawned_mob = spawner.create_from_ghost(our_candidate)
|
||||
candidates -= our_candidate
|
||||
notify_ghosts("[spawner.prompt_name] has awoken: [spawned_mob]!", source = spawned_mob, action = NOTIFY_ORBIT, header="Come look!")
|
||||
notify_ghosts(
|
||||
"[spawner.prompt_name] has awoken: [spawned_mob]!",
|
||||
source = spawned_mob,
|
||||
action = NOTIFY_ORBIT,
|
||||
header = "Come look!",
|
||||
)
|
||||
else
|
||||
notify_ghosts("[spawner.prompt_name] spawner has been created!", source = spawner, action = NOTIFY_ORBIT, header="Spawn Here!")
|
||||
notify_ghosts(
|
||||
"[spawner.prompt_name] spawner has been created!",
|
||||
source = spawner,
|
||||
action = NOTIFY_ORBIT,
|
||||
header = "Spawn Here!",
|
||||
)
|
||||
|
||||
priority_announce("Unidentified ship detected near the station.")
|
||||
|
||||
|
||||
@@ -594,7 +594,12 @@
|
||||
non_food_ingedients--
|
||||
if(istype(potential_fooditem, /obj/item/modular_computer/pda) && prob(75))
|
||||
pda_failure = TRUE
|
||||
notify_ghosts("[cooker] has overheated their PDA!", source = src, action = NOTIFY_JUMP, flashwindow = FALSE, header = "Hunger Games: Catching Fire")
|
||||
notify_ghosts(
|
||||
"[cooker] has overheated their PDA!",
|
||||
source = src,
|
||||
notify_flags = NOTIFY_CATEGORY_NOFLASH,
|
||||
header = "Hunger Games: Catching Fire",
|
||||
)
|
||||
|
||||
// If we're cooking non-food items we can fail randomly
|
||||
if(length(non_food_ingedients) && prob(min(dirty * 5, 100)))
|
||||
|
||||
@@ -190,7 +190,12 @@ GLOBAL_DATUM(necropolis_gate, /obj/structure/necropolis_gate/legion_gate)
|
||||
M.playsound_local(T, null, 100, FALSE, 0, FALSE, pressure_affected = FALSE, sound_to_use = legion_sound)
|
||||
flash_color(M, flash_color = "#FF0000", flash_time = 50)
|
||||
var/mutable_appearance/release_overlay = mutable_appearance('icons/effects/effects.dmi', "legiondoor")
|
||||
notify_ghosts("Legion has been released in the [get_area(src)]!", source = src, alert_overlay = release_overlay, action = NOTIFY_JUMP, flashwindow = FALSE)
|
||||
notify_ghosts(
|
||||
"Legion has been released in the [get_area(src)]!",
|
||||
source = src,
|
||||
alert_overlay = release_overlay,
|
||||
notify_flags = NOTIFY_CATEGORY_NOFLASH,
|
||||
)
|
||||
|
||||
/obj/effect/decal/necropolis_gate_decal
|
||||
icon = 'icons/effects/96x96.dmi'
|
||||
|
||||
@@ -674,9 +674,13 @@
|
||||
return
|
||||
to_chat(user, span_notice("You call out for aid, attempting to summon spirits to your side."))
|
||||
|
||||
notify_ghosts("[user] is raising [user.p_their()] [name], calling for your help!",
|
||||
enter_link="<a href=?src=[REF(src)];orbit=1>(Click to help)</a>",
|
||||
source = user, ignore_key = POLL_IGNORE_SPECTRAL_BLADE, header = "Spectral blade")
|
||||
notify_ghosts(
|
||||
"[user] is raising [user.p_their()] [name], calling for your help!",
|
||||
action = NOTIFY_ORBIT,
|
||||
source = user,
|
||||
ignore_key = POLL_IGNORE_SPECTRAL_BLADE,
|
||||
header = "Spectral blade",
|
||||
)
|
||||
|
||||
summon_cooldown = world.time + 600
|
||||
|
||||
|
||||
@@ -26,7 +26,13 @@
|
||||
. = ..()
|
||||
var/area/area = get_area(src)
|
||||
if(area)
|
||||
notify_ghosts("A drone shell has been created in \the [area.name].", source = src, action = NOTIFY_PLAY, flashwindow = FALSE, ignore_key = POLL_IGNORE_DRONE, notify_suiciders = FALSE)
|
||||
notify_ghosts(
|
||||
"A drone shell has been created in \the [area.name].",
|
||||
source = src,
|
||||
action = NOTIFY_PLAY,
|
||||
notify_flags = (GHOST_NOTIFY_IGNORE_MAPLOAD),
|
||||
ignore_key = POLL_IGNORE_DRONE,
|
||||
)
|
||||
|
||||
/obj/effect/mob_spawn/ghost_role/drone/allow_spawn(mob/user, silent = FALSE)
|
||||
var/client/user_client = user.client
|
||||
|
||||
@@ -103,7 +103,7 @@
|
||||
"All rise for [name], ascendant to the throne in \the [get_area(src)].",
|
||||
source = src,
|
||||
action = NOTIFY_ORBIT,
|
||||
flashwindow = FALSE,
|
||||
notify_flags = NOTIFY_CATEGORY_NOFLASH,
|
||||
header = "Sentient Rat Created",
|
||||
)
|
||||
|
||||
|
||||
@@ -43,7 +43,15 @@ GLOBAL_VAR(posibrain_notify_cooldown)
|
||||
///Notify ghosts that the posibrain is up for grabs
|
||||
/obj/item/mmi/posibrain/proc/ping_ghosts(msg, newlymade)
|
||||
if(newlymade || GLOB.posibrain_notify_cooldown <= world.time)
|
||||
notify_ghosts("[name] [msg] in [get_area(src)]! [ask_role ? "Personality requested: \[[ask_role]\]" : ""]", ghost_sound = !newlymade ? 'sound/effects/ghost2.ogg':null, notify_volume = 75, source = src, action = NOTIFY_PLAY, flashwindow = FALSE, ignore_key = POLL_IGNORE_POSIBRAIN, notify_suiciders = FALSE)
|
||||
notify_ghosts(
|
||||
"[name] [msg] in [get_area(src)]! [ask_role ? "Personality requested: \[[ask_role]\]" : ""]",
|
||||
ghost_sound = !newlymade ? 'sound/effects/ghost2.ogg':null,
|
||||
notify_volume = 75,
|
||||
source = src,
|
||||
action = NOTIFY_PLAY,
|
||||
notify_flags = (GHOST_NOTIFY_IGNORE_MAPLOAD),
|
||||
ignore_key = POLL_IGNORE_POSIBRAIN,
|
||||
)
|
||||
if(!newlymade)
|
||||
GLOB.posibrain_notify_cooldown = world.time + ask_delay
|
||||
|
||||
|
||||
@@ -512,7 +512,13 @@
|
||||
if(..() && !ready_to_deploy)
|
||||
SSpoints_of_interest.make_point_of_interest(src)
|
||||
ready_to_deploy = TRUE
|
||||
notify_ghosts("An anomalous crystal has been activated in [get_area(src)]! This crystal can always be used by ghosts hereafter.", ghost_sound = 'sound/effects/ghost2.ogg', source = src, action = NOTIFY_PLAY, header = "Anomalous crystal activated")
|
||||
notify_ghosts(
|
||||
"An anomalous crystal has been activated in [get_area(src)]! This crystal can always be used by ghosts hereafter.",
|
||||
ghost_sound = 'sound/effects/ghost2.ogg',
|
||||
source = src,
|
||||
action = NOTIFY_PLAY,
|
||||
header = "Anomalous crystal activated",
|
||||
)
|
||||
|
||||
/obj/machinery/anomalous_crystal/helpers/attack_ghost(mob/dead/observer/user)
|
||||
. = ..()
|
||||
|
||||
@@ -212,7 +212,13 @@ While using this makes the system rely on OnFire, it still gives options for tim
|
||||
if(boosted)
|
||||
mychild.key = elitemind.key
|
||||
mychild.sentience_act()
|
||||
notify_ghosts("\A [mychild] has been awakened in \the [get_area(src)]!", source = mychild, action = NOTIFY_ORBIT, flashwindow = FALSE, header = "Lavaland Elite awakened")
|
||||
notify_ghosts(
|
||||
"\A [mychild] has been awakened in \the [get_area(src)]!",
|
||||
source = mychild,
|
||||
action = NOTIFY_ORBIT,
|
||||
notify_flags = NOTIFY_CATEGORY_NOFLASH,
|
||||
header = "Lavaland Elite awakened",
|
||||
)
|
||||
mychild.log_message("has been awakened by [key_name(activator)]!", LOG_GAME, color="#960000")
|
||||
icon_state = "tumor_popped"
|
||||
RegisterSignal(mychild, COMSIG_QDELETING, PROC_REF(onEliteLoss))
|
||||
@@ -226,7 +232,13 @@ While using this makes the system rely on OnFire, it still gives options for tim
|
||||
if(boosted)
|
||||
mychild.maxHealth = mychild.maxHealth * 2
|
||||
mychild.health = mychild.maxHealth
|
||||
notify_ghosts("\A [mychild] has been challenged in \the [get_area(src)]!", source = mychild, action = NOTIFY_ORBIT, flashwindow = FALSE, header = "Lavaland Elite challenged")
|
||||
notify_ghosts(
|
||||
"\A [mychild] has been challenged in \the [get_area(src)]!",
|
||||
source = mychild,
|
||||
action = NOTIFY_ORBIT,
|
||||
notify_flags = NOTIFY_CATEGORY_NOFLASH,
|
||||
header = "Lavaland Elite challenged",
|
||||
)
|
||||
mychild.log_message("has been challenged by [key_name(activator)]!", LOG_GAME, color="#960000")
|
||||
|
||||
/obj/structure/elite_tumor/Initialize(mapload)
|
||||
|
||||
@@ -251,10 +251,8 @@
|
||||
* * source The source of the notification
|
||||
* * alert_overlay The alert overlay to show in the alert message
|
||||
* * action What action to take upon the ghost interacting with the notification, defaults to NOTIFY_JUMP
|
||||
* * flashwindow Flash the byond client window
|
||||
* * ignore_key Ignore keys if they're in the GLOB.poll_ignore list
|
||||
* * header The header of the notifiaction
|
||||
* * notify_suiciders If it should notify suiciders (who do not qualify for many ghost roles)
|
||||
* * notify_volume How loud the sound should be to spook the user
|
||||
*/
|
||||
/proc/notify_ghosts(
|
||||
@@ -264,24 +262,22 @@
|
||||
atom/source,
|
||||
mutable_appearance/alert_overlay,
|
||||
action = NOTIFY_JUMP,
|
||||
flashwindow = TRUE,
|
||||
ignore_mapload = TRUE,
|
||||
notify_flags = NOTIFY_CATEGORY_DEFAULT,
|
||||
ignore_key,
|
||||
header = "",
|
||||
notify_suiciders = TRUE,
|
||||
notify_volume = 100
|
||||
)
|
||||
|
||||
if(ignore_mapload && SSatoms.initialized != INITIALIZATION_INNEW_REGULAR) //don't notify for objects created during a map load
|
||||
if(notify_flags & GHOST_NOTIFY_IGNORE_MAPLOAD && SSatoms.initialized != INITIALIZATION_INNEW_REGULAR) //don't notify for objects created during a map load
|
||||
return
|
||||
|
||||
for(var/mob/dead/observer/ghost in GLOB.player_list)
|
||||
if(!notify_suiciders && HAS_TRAIT(ghost, TRAIT_SUICIDED))
|
||||
if(!(notify_flags & GHOST_NOTIFY_NOTIFY_SUICIDERS) && HAS_TRAIT(ghost, TRAIT_SUICIDED))
|
||||
continue
|
||||
if(ignore_key && (ghost.ckey in GLOB.poll_ignore[ignore_key]))
|
||||
continue
|
||||
|
||||
if(flashwindow)
|
||||
if(notify_flags & GHOST_NOTIFY_FLASH_WINDOW)
|
||||
window_flash(ghost.client)
|
||||
|
||||
if(ghost_sound)
|
||||
@@ -302,7 +298,7 @@
|
||||
new_master = source,
|
||||
)
|
||||
toast.action = action
|
||||
toast.desc = "Click to [action]."
|
||||
toast.desc = "[message] -- Click to [action]."
|
||||
toast.name = header
|
||||
toast.target = source
|
||||
|
||||
|
||||
@@ -23,7 +23,13 @@
|
||||
. = ..()
|
||||
var/area/init_area = get_area(src)
|
||||
if(!mapload && init_area)
|
||||
notify_ghosts("\A golem shell has been completed in \the [init_area.name].", source = src, action = NOTIFY_PLAY, flashwindow = FALSE, ignore_key = POLL_IGNORE_GOLEM)
|
||||
notify_ghosts(
|
||||
"\A golem shell has been completed in \the [init_area.name].",
|
||||
source = src,
|
||||
action = NOTIFY_PLAY,
|
||||
notify_flags = NOTIFY_CATEGORY_NOFLASH,
|
||||
ignore_key = POLL_IGNORE_GOLEM,
|
||||
)
|
||||
|
||||
/obj/effect/mob_spawn/ghost_role/human/golem/name_mob(mob/living/spawned_mob, forced_name)
|
||||
if(forced_name || !iscarbon(spawned_mob))
|
||||
|
||||
@@ -266,7 +266,13 @@
|
||||
eggshell.egg = src
|
||||
src.forceMove(eggshell)
|
||||
if(spawner_area)
|
||||
notify_ghosts("An ash walker egg is ready to hatch in \the [spawner_area.name].", source = src, action = NOTIFY_PLAY, flashwindow = FALSE, ignore_key = POLL_IGNORE_ASHWALKER)
|
||||
notify_ghosts(
|
||||
"An ash walker egg is ready to hatch in \the [spawner_area.name].",
|
||||
source = src,
|
||||
action = NOTIFY_PLAY,
|
||||
notify_flags = NOTIFY_CATEGORY_NOFLASH,
|
||||
ignore_key = POLL_IGNORE_ASHWALKER,
|
||||
)
|
||||
|
||||
/datum/outfit/ashwalker
|
||||
name = "Ash Walker"
|
||||
|
||||
@@ -107,7 +107,16 @@
|
||||
amount_grown += rand(5, 15) * seconds_per_tick
|
||||
if(amount_grown >= 100 && !ready)
|
||||
ready = TRUE
|
||||
notify_ghosts("[src] is ready to hatch!", null, enter_link = "<a href=?src=[REF(src)];activate=1>(Click to play)</a>", source = src, action = NOTIFY_ORBIT, ignore_key = POLL_IGNORE_SPIDER, flashwindow = flash_window)
|
||||
var/notify_flags_to_pass = NOTIFY_CATEGORY_NOFLASH
|
||||
if(flash_window)
|
||||
notify_flags_to_pass &= GHOST_NOTIFY_FLASH_WINDOW
|
||||
notify_ghosts(
|
||||
"[src] is ready to hatch!",
|
||||
source = src,
|
||||
action = NOTIFY_PLAY,
|
||||
ignore_key = POLL_IGNORE_SPIDER,
|
||||
notify_flags = notify_flags_to_pass,
|
||||
)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/effect/mob_spawn/ghost_role/spider/Topic(href, href_list)
|
||||
|
||||
@@ -33,7 +33,12 @@
|
||||
/// Called when the attached flower bud has borne fruit (ie. is ready)
|
||||
/obj/effect/mob_spawn/ghost_role/venus_human_trap/proc/bear_fruit()
|
||||
ready = TRUE
|
||||
notify_ghosts("[src] has borne fruit!", source = src, action = NOTIFY_PLAY, ignore_key = POLL_IGNORE_VENUSHUMANTRAP)
|
||||
notify_ghosts(
|
||||
"[src] has borne fruit!",
|
||||
source = src,
|
||||
action = NOTIFY_PLAY,
|
||||
ignore_key = POLL_IGNORE_VENUSHUMANTRAP,
|
||||
)
|
||||
|
||||
/obj/effect/mob_spawn/ghost_role/venus_human_trap/allow_spawn(mob/user, silent = FALSE)
|
||||
. = ..()
|
||||
|
||||
@@ -234,7 +234,17 @@
|
||||
playsound(src, 'sound/machines/ping.ogg', 20, TRUE)
|
||||
balloon_alert(user, "pAI assistance requested")
|
||||
var/mutable_appearance/alert_overlay = mutable_appearance('icons/obj/aicards.dmi', "pai")
|
||||
notify_ghosts("[user] is requesting a pAI companion! Use the pAI button to submit yourself as one.", source = user, alert_overlay = alert_overlay, action = NOTIFY_ORBIT, flashwindow = FALSE, header = "pAI Request!", ignore_key = POLL_IGNORE_PAI)
|
||||
|
||||
notify_ghosts(
|
||||
"[user] is requesting a pAI companion! Use the pAI button to submit yourself as one.",
|
||||
source = user,
|
||||
alert_overlay = alert_overlay,
|
||||
action = NOTIFY_ORBIT,
|
||||
notify_flags = NOTIFY_CATEGORY_NOFLASH,
|
||||
header = "pAI Request!",
|
||||
ignore_key = POLL_IGNORE_PAI,
|
||||
)
|
||||
|
||||
addtimer(VARSET_CALLBACK(src, request_spam, FALSE), PAI_SPAM_TIME, TIMER_UNIQUE | TIMER_STOPPABLE | TIMER_CLIENT_TIME | TIMER_DELETE_ME)
|
||||
return TRUE
|
||||
|
||||
|
||||
@@ -58,7 +58,13 @@
|
||||
var/area/area = get_area(src)
|
||||
if(area)
|
||||
var/mutable_appearance/alert_overlay = mutable_appearance('icons/effects/cult/effects.dmi', "ghostalertsie")
|
||||
notify_ghosts("Nar'Sie has risen in [area]. Reach out to the Geometer to be given a new shell for your soul.", source = src, alert_overlay = alert_overlay, action = NOTIFY_PLAY)
|
||||
notify_ghosts(
|
||||
"Nar'Sie has risen in [area]. Reach out to the Geometer to be given a new shell for your soul.",
|
||||
source = src,
|
||||
alert_overlay = alert_overlay,
|
||||
action = NOTIFY_PLAY,
|
||||
)
|
||||
|
||||
narsie_spawn_animation()
|
||||
|
||||
GLOB.cult_narsie = src
|
||||
|
||||
@@ -80,10 +80,10 @@
|
||||
ghost_notification_message,
|
||||
source = src,
|
||||
action = NOTIFY_ORBIT,
|
||||
flashwindow = FALSE,
|
||||
notify_flags = NOTIFY_CATEGORY_DEFAULT,
|
||||
ghost_sound = 'sound/machines/warning-buzzer.ogg',
|
||||
header = ghost_notification_message,
|
||||
notify_volume = 75
|
||||
notify_volume = 75,
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -535,7 +535,12 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
|
||||
final_countdown = TRUE
|
||||
|
||||
SEND_GLOBAL_SIGNAL(COMSIG_MAIN_SM_DELAMINATING, final_countdown) // SKYRAT EDIT ADDITION - DELAM_SCRAM
|
||||
notify_ghosts("[src] has begun the delamination process!", source = src, header = "Meltdown Incoming")
|
||||
notify_ghosts(
|
||||
"[src] has begun the delamination process!",
|
||||
source = src,
|
||||
header = "Meltdown Incoming",
|
||||
notify_flags = NOTIFY_CATEGORY_DEFAULT,
|
||||
)
|
||||
|
||||
var/datum/sm_delam/last_delamination_strategy = delamination_strategy
|
||||
var/list/count_down_messages = delamination_strategy.count_down_messages()
|
||||
|
||||
@@ -26,7 +26,13 @@
|
||||
message_admins("A pulse rifle prize has been created at [ADMIN_VERBOSEJMP(T)]")
|
||||
log_game("A pulse rifle prize has been created at [AREACOORD(T)]")
|
||||
|
||||
notify_ghosts("Someone won a pulse rifle as a prize!", source = src, action = NOTIFY_ORBIT, header = "Pulse rifle prize")
|
||||
notify_ghosts(
|
||||
"Someone won a pulse rifle as a prize!",
|
||||
source = src,
|
||||
action = NOTIFY_ORBIT,
|
||||
header = "Pulse rifle prize",
|
||||
notify_flags = NOTIFY_CATEGORY_DEFAULT,
|
||||
)
|
||||
|
||||
/obj/item/gun/energy/pulse/loyalpin
|
||||
pin = /obj/item/firing_pin/implant/mindshield
|
||||
|
||||
@@ -45,7 +45,13 @@
|
||||
. = UPDATE_MOB_HEALTH
|
||||
|
||||
if(good_kind_of_healing && !reaping && SPT_PROB(0.00005, seconds_per_tick)) //janken with the grim reaper!
|
||||
notify_ghosts("[affected_mob] has entered a game of rock-paper-scissors with death!", source = affected_mob, action = NOTIFY_ORBIT, header = "Who Will Win?")
|
||||
notify_ghosts(
|
||||
"[affected_mob] has entered a game of rock-paper-scissors with death!",
|
||||
source = affected_mob,
|
||||
action = NOTIFY_ORBIT,
|
||||
header = "Who Will Win?",
|
||||
notify_flags = NOTIFY_CATEGORY_DEFAULT,
|
||||
)
|
||||
reaping = TRUE
|
||||
if(affected_mob.apply_status_effect(/datum/status_effect/necropolis_curse, CURSE_BLINDING))
|
||||
helbent = TRUE
|
||||
|
||||
@@ -172,14 +172,14 @@
|
||||
"The battlecruiser has an object of interest: [our_candidate]!",
|
||||
source = our_candidate,
|
||||
action = NOTIFY_ORBIT,
|
||||
header = "Something's Interesting!"
|
||||
)
|
||||
header = "Something's Interesting!",
|
||||
)
|
||||
else
|
||||
notify_ghosts(
|
||||
"The battlecruiser has an object of interest: [spawner]!",
|
||||
source = spawner,
|
||||
action = NOTIFY_ORBIT,
|
||||
header="Something's Interesting!"
|
||||
)
|
||||
header="Something's Interesting!",
|
||||
)
|
||||
|
||||
priority_announce("Unidentified armed ship detected near the station.")
|
||||
|
||||
@@ -243,7 +243,12 @@ GLOBAL_VAR_INIT(bsa_unlock, FALSE)
|
||||
point.Beam(target, icon_state = "bsa_beam", time = 5 SECONDS, maxdistance = world.maxx) //ZZZAP
|
||||
new /obj/effect/temp_visual/bsa_splash(point, dir)
|
||||
|
||||
notify_ghosts("The Bluespace Artillery has been fired!", source = bullseye, header = "KABOOM!")
|
||||
notify_ghosts(
|
||||
"The Bluespace Artillery has been fired!",
|
||||
source = bullseye,
|
||||
header = "KABOOM!",
|
||||
)
|
||||
|
||||
if(!blocker)
|
||||
message_admins("[ADMIN_LOOKUPFLW(user)] has launched an artillery strike targeting [ADMIN_VERBOSEJMP(bullseye)].")
|
||||
user.log_message("has launched an artillery strike targeting [AREACOORD(bullseye)].", LOG_GAME)
|
||||
|
||||
@@ -46,7 +46,12 @@
|
||||
if(owner)
|
||||
ADD_TRAIT(owner, TRAIT_DISEASELIKE_SEVERITY_MEDIUM, type)
|
||||
owner.med_hud_set_status()
|
||||
notify_ghosts("[owner] has developed spontaneous appendicitis!", source = owner, action = NOTIFY_ORBIT, header = "Whoa, Sick!")
|
||||
notify_ghosts(
|
||||
"[owner] has developed spontaneous appendicitis!",
|
||||
source = owner,
|
||||
action = NOTIFY_ORBIT,
|
||||
header = "Whoa, Sick!",
|
||||
)
|
||||
|
||||
/obj/item/organ/internal/appendix/proc/inflamation(seconds_per_tick)
|
||||
var/mob/living/carbon/organ_owner = owner
|
||||
|
||||
@@ -22,7 +22,12 @@
|
||||
if(!.)
|
||||
return
|
||||
|
||||
notify_ghosts("[user] has purchased a BADASS Syndicate Balloon!", source = src, action = NOTIFY_ORBIT, header = "What are they THINKING?")
|
||||
notify_ghosts(
|
||||
"[user] has purchased a BADASS Syndicate Balloon!",
|
||||
source = src,
|
||||
action = NOTIFY_ORBIT,
|
||||
header = "What are they THINKING?",
|
||||
)
|
||||
|
||||
/datum/uplink_item/badass/syndiecards
|
||||
name = "Syndicate Playing Cards"
|
||||
|
||||
@@ -242,7 +242,12 @@
|
||||
investigate_log("has been gibbed due to being emagged by [user].", INVESTIGATE_DEATHS)
|
||||
visible_message(span_boldwarning("[user] swipes a card through [target]!"), span_notice("You overload [target]s internal reactor..."))
|
||||
|
||||
notify_ghosts("[user] has shortcircuited [target] to explode in 60 seconds!", source = target, action = NOTIFY_ORBIT, flashwindow = FALSE, header = "Borgi Emagged")
|
||||
notify_ghosts("[user] has shortcircuited [target] to explode in 60 seconds!",
|
||||
source = target,
|
||||
action = NOTIFY_ORBIT,
|
||||
notify_flags = NOTIFY_CATEGORY_NOFLASH,
|
||||
header = "Borgi Emagged",
|
||||
)
|
||||
addtimer(CALLBACK(src, PROC_REF(explode_imminent)), 50 SECONDS)
|
||||
|
||||
return TRUE
|
||||
|
||||
@@ -119,7 +119,12 @@
|
||||
do_jitter_animation(60)
|
||||
manual_emote("'s fur stands up, [src.p_their()] body trembling...")
|
||||
|
||||
notify_ghosts("[src] was startled by the supermatter!", source = src, action = NOTIFY_ORBIT, flashwindow = FALSE, header = "Safety Inspection!")
|
||||
notify_ghosts("[src] was startled by the supermatter!",
|
||||
source = src,
|
||||
action = NOTIFY_ORBIT,
|
||||
notify_flags = NOTIFY_CATEGORY_NOFLASH,
|
||||
header = "Safety Inspection!",
|
||||
)
|
||||
addtimer(CALLBACK(src, PROC_REF(calm_down)), 60 SECONDS)
|
||||
|
||||
/mob/living/simple_animal/pet/poppy/proc/calm_down()
|
||||
|
||||
@@ -53,7 +53,12 @@
|
||||
if(stored_cyborgs > max_stored_cyborgs)
|
||||
return
|
||||
stored_cyborgs++
|
||||
notify_ghosts("A new cyborg shell has been created at the [src]", source = src, action = NOTIFY_ORBIT, flashwindow = FALSE, header = "New malfunctioning cyborg created!")
|
||||
notify_ghosts("A new cyborg shell has been created at the [src]",
|
||||
source = src,
|
||||
action = NOTIFY_ORBIT,
|
||||
notify_flags = NOTIFY_CATEGORY_NOFLASH,
|
||||
header = "New malfunctioning cyborg created!",
|
||||
)
|
||||
|
||||
/obj/machinery/transformer_rp/proc/create_a_cyborg(mob/dead/observer/target_ghost)
|
||||
if(machine_stat & (BROKEN|NOPOWER))
|
||||
|
||||
@@ -196,7 +196,11 @@
|
||||
for(var/datum/status_effect/goldeneye_pinpointer/iterating_pinpointer in GLOB.goldeneye_pinpointers)
|
||||
iterating_pinpointer.set_target(new_key)
|
||||
|
||||
notify_ghosts("GoldenEye key launched!", source = new_key, action = NOTIFY_ORBIT, header = "Something's Interesting!")
|
||||
notify_ghosts("GoldenEye key launched!",
|
||||
source = new_key,
|
||||
action = NOTIFY_ORBIT,
|
||||
header = "Something's Interesting!",
|
||||
)
|
||||
|
||||
/obj/machinery/interrogator/proc/find_drop_turf()
|
||||
var/list/possible_turfs = list()
|
||||
|
||||
@@ -57,7 +57,11 @@
|
||||
var/matrix/our_matrix = matrix()
|
||||
our_matrix.Scale(scale_x, scale_y)
|
||||
transform = our_matrix
|
||||
notify_ghosts("An ICARUS sunbeam has been launched! [target_atom ? "Towards: [target_atom.name]" : ""]", source = src, action = NOTIFY_ORBIT, header = "Somethings burning!")
|
||||
notify_ghosts("An ICARUS sunbeam has been launched! [target_atom ? "Towards: [target_atom.name]" : ""]",
|
||||
source = src,
|
||||
action = NOTIFY_ORBIT,
|
||||
header = "Somethings burning!",
|
||||
)
|
||||
soundloop = new(src, TRUE)
|
||||
|
||||
/obj/effect/sunbeam/Destroy(force)
|
||||
|
||||
@@ -47,7 +47,12 @@
|
||||
addtimer(CALLBACK(src, PROC_REF(finish_setup), cogger_apc), SET_UP_TIME)
|
||||
|
||||
send_clock_message(null, span_brass(span_bold("[user] has installed an integration cog into [cogger_apc].")), msg_ghosts = FALSE)
|
||||
notify_ghosts("[user] has installed an integration cog into [cogger_apc]", source = user, action = NOTIFY_ORBIT, flashwindow = FALSE, header = "Integration cog")
|
||||
notify_ghosts("[user] has installed an integration cog into [cogger_apc]",
|
||||
source = user,
|
||||
action = NOTIFY_ORBIT,
|
||||
notify_flags = NOTIFY_CATEGORY_NOFLASH,
|
||||
header = "Integration cog",
|
||||
)
|
||||
|
||||
|
||||
/// Finish setting up the cog 5 minutes after insertion
|
||||
|
||||
@@ -43,7 +43,12 @@
|
||||
atom_area = get_area(atom_turf)
|
||||
|
||||
send_clock_message(null, "A portal has been opened at [atom_area] to our holy city, it is a glorious day in the name of Ratvar.", "<span class='bigbrass'>", msg_ghosts = FALSE)
|
||||
notify_ghosts("A portal has been opened at [atom_area] to our holy city, it is a glorious day in the name of Ratvar.", source = atom_area, action = NOTIFY_JUMP, flashwindow = FALSE, header = "Portal to Reebe")
|
||||
notify_ghosts("A portal has been opened at [atom_area] to our holy city, it is a glorious day in the name of Ratvar.",
|
||||
source = atom_area,
|
||||
action = NOTIFY_JUMP,
|
||||
notify_flags = NOTIFY_CATEGORY_NOFLASH,
|
||||
header = "Portal to Reebe",
|
||||
)
|
||||
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(reebe_station_warning), atom_area, portal), 5 MINUTES)
|
||||
|
||||
|
||||
@@ -65,8 +65,12 @@
|
||||
primary_researcher = FALSE
|
||||
log_game("A research ritual of [selected_research] was cancelled by deconstruction of [src].")
|
||||
send_clock_message(null, "A research ritual has been disrupted in [get_area(src)]! All research data has been lost.", msg_ghosts = FALSE)
|
||||
notify_ghosts("A research ritual was disrupted in [get_area(src)]", source = get_turf(src), action = NOTIFY_ORBIT, flashwindow = FALSE, header = "Research ritual cancelled")
|
||||
|
||||
notify_ghosts("A research ritual was disrupted in [get_area(src)]",
|
||||
source = get_turf(src),
|
||||
action = NOTIFY_ORBIT,
|
||||
notify_flags = NOTIFY_CATEGORY_NOFLASH,
|
||||
header = "Research ritual cancelled",
|
||||
)
|
||||
|
||||
return ..()
|
||||
|
||||
@@ -295,7 +299,12 @@
|
||||
playsound(target_turf, 'modular_skyrat/modules/clock_cult/sound/machinery/ark_deathrattle.ogg', 80, FALSE, pressure_affected = FALSE)
|
||||
research_sigil = new(target_turf)
|
||||
send_clock_message(null, "A research ritual has begun in [get_area(src)], ensure nobody stops it until it is completed in [DisplayTimeText(selected_research.time_to_research)]!", msg_ghosts = FALSE)
|
||||
notify_ghosts("[owner] has begun a research ritual in [get_area(src)]", source = src, action = NOTIFY_ORBIT, flashwindow = FALSE, header = "Research ritual")
|
||||
notify_ghosts("[owner] has begun a research ritual in [get_area(src)]",
|
||||
source = src,
|
||||
action = NOTIFY_ORBIT,
|
||||
notify_flags = NOTIFY_CATEGORY_NOFLASH,
|
||||
header = "Research ritual"
|
||||
)
|
||||
log_game("[owner] began a research ritual of [selected_research.name] in [get_area(src)].")
|
||||
|
||||
research_timer_id = addtimer(CALLBACK(src, PROC_REF(finish_research), owner), selected_research.time_to_research, TIMER_STOPPABLE)
|
||||
@@ -337,7 +346,12 @@
|
||||
return
|
||||
|
||||
send_clock_message(null, "The research ritual in [get_area(src)] has completed, rejoice!", msg_ghosts = FALSE)
|
||||
notify_ghosts("A research ritual in [get_area(src)] has been completed", source = src, action = NOTIFY_ORBIT, flashwindow = FALSE, header = "Research ritual completed")
|
||||
notify_ghosts("A research ritual in [get_area(src)] has been completed",
|
||||
source = src,
|
||||
action = NOTIFY_ORBIT,
|
||||
notify_flags = NOTIFY_CATEGORY_NOFLASH,
|
||||
header = "Research ritual completed",
|
||||
)
|
||||
log_game("Finished a research ritual of [selected_research.name] in [get_area(src)].")
|
||||
|
||||
researching = FALSE
|
||||
|
||||
@@ -41,7 +41,12 @@
|
||||
forceMove(host_egg)
|
||||
var/area/src_area = get_area(src)
|
||||
if(src_area)
|
||||
notify_ghosts("A cortical borer egg has been laid in \the [src_area.name].", source = src, action = NOTIFY_PLAY, flashwindow = FALSE, ignore_key = POLL_IGNORE_DRONE, notify_suiciders = FALSE)
|
||||
notify_ghosts("A cortical borer egg has been laid in \the [src_area.name].",
|
||||
source = src,
|
||||
action = NOTIFY_PLAY,
|
||||
notify_flags = NOTIFY_CATEGORY_NOFLASH & ~GHOST_NOTIFY_NOTIFY_SUICIDERS,
|
||||
ignore_key = POLL_IGNORE_DRONE,
|
||||
)
|
||||
|
||||
/obj/item/borer_egg
|
||||
name = "borer egg"
|
||||
|
||||
@@ -24,7 +24,9 @@
|
||||
break
|
||||
if(try_to_mutant_infect(iterating_human, TRUE))
|
||||
infectees++
|
||||
notify_ghosts("[iterating_human] has been infected by the HNZ-1 pathogen!", source = iterating_human)
|
||||
notify_ghosts("[iterating_human] has been infected by the HNZ-1 pathogen!",
|
||||
source = iterating_human,
|
||||
)
|
||||
|
||||
/datum/round_event/mutant_infestation/announce(fake)
|
||||
alert_sound_to_playing(sound('modular_skyrat/modules/alerts/sound/alerts/alert2.ogg'), override_volume = TRUE)
|
||||
|
||||
@@ -156,6 +156,7 @@
|
||||
#include "code\__DEFINES\nitrile.dm"
|
||||
#include "code\__DEFINES\nuclear_bomb.dm"
|
||||
#include "code\__DEFINES\obj_flags.dm"
|
||||
#include "code\__DEFINES\observers.dm"
|
||||
#include "code\__DEFINES\overlays.dm"
|
||||
#include "code\__DEFINES\pai.dm"
|
||||
#include "code\__DEFINES\paintings.dm"
|
||||
|
||||
Reference in New Issue
Block a user