[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:
SkyratBot
2023-11-05 22:01:17 -05:00
committed by GitHub
co-authored by Rhials Bloop
parent 3e9bb6f118
commit 596b2f050e
66 changed files with 432 additions and 92 deletions
+12
View File
@@ -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()
. = ..()
+7 -1
View File
@@ -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
+6 -1
View File
@@ -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
+6 -1
View File
@@ -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!"))
+6 -1
View File
@@ -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)
+8 -7
View File
@@ -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)
+6 -1
View File
@@ -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!"
+10 -2
View File
@@ -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()
+6 -1
View File
@@ -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
+7 -1
View File
@@ -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
+6 -1
View File
@@ -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()
+6 -1
View File
@@ -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)
+5 -1
View File
@@ -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))
+2 -1
View File
@@ -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()
+6 -1
View File
@@ -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)
+1
View File
@@ -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
+8 -2
View File
@@ -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
+6 -1
View File
@@ -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.
+5 -1
View File
@@ -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",
)
+9 -1
View File
@@ -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)
+5 -9
View File
@@ -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)
. = ..()
+11 -1
View File
@@ -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
+7 -1
View File
@@ -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.")
+6 -1
View File
@@ -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
+6 -1
View File
@@ -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)
+1
View File
@@ -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"