diff --git a/code/__DEFINES/atom_hud.dm b/code/__DEFINES/atom_hud.dm index 5c77d0075ca..d49dedeb499 100644 --- a/code/__DEFINES/atom_hud.dm +++ b/code/__DEFINES/atom_hud.dm @@ -63,15 +63,9 @@ #define DATA_HUD_AI_DETECT 9 #define DATA_HUD_FAN 10 -// Notification action types -#define NOTIFY_JUMP "jump" -#define NOTIFY_PLAY "play" -#define NOTIFY_ORBIT "orbit" - /// cooldown for being shown the images for any particular data hud #define ADD_HUD_TO_COOLDOWN 20 - // Security HUD icon_state defines #define SECHUD_NO_ID "hudno_id" diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index c1c22091593..a0b9ac88925 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -784,28 +784,23 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." timeout = 30 SECONDS /// Weakref to the target atom to use the action on var/datum/weakref/target_ref - /// Which on click action to use - var/action = NOTIFY_JUMP + /// If we want to interact on click rather than jump/orbit + var/click_interact = FALSE /atom/movable/screen/alert/notify_action/Click() . = ..() + var/atom/target = target_ref?.resolve() - if(isnull(target)) + if(isnull(target) || !isobserver(owner) || target == owner) return var/mob/dead/observer/ghost_owner = owner - if(!istype(ghost_owner)) + + if(click_interact) + ghost_owner.jump_to_interact(target) return - switch(action) - if(NOTIFY_PLAY) - target.attack_ghost(ghost_owner) - if(NOTIFY_JUMP) - var/turf/target_turf = get_turf(target) - if(target_turf && isturf(target_turf)) - ghost_owner.abstract_move(target_turf) - if(NOTIFY_ORBIT) - ghost_owner.ManualFollow(target) + ghost_owner.observer_view(target) //OBJECT-BASED diff --git a/code/datums/brain_damage/split_personality.dm b/code/datums/brain_damage/split_personality.dm index faa05a6bd28..8b6436f1d15 100644 --- a/code/datums/brain_damage/split_personality.dm +++ b/code/datums/brain_damage/split_personality.dm @@ -266,9 +266,8 @@ 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", + notify_flags = NOTIFY_CATEGORY_NOFLASH, ) /datum/brain_trauma/severe/split_personality/blackout/on_lose() diff --git a/code/datums/components/cult_ritual_item.dm b/code/datums/components/cult_ritual_item.dm index a155e904c7f..749fa1eac1c 100644 --- a/code/datums/components/cult_ritual_item.dm +++ b/code/datums/components/cult_ritual_item.dm @@ -380,7 +380,6 @@ notify_ghosts( "[cultist] has begun scribing a Nar'Sie rune!", source = cultist, - action = NOTIFY_ORBIT, header = "Maranax Infirmux!", notify_flags = NOTIFY_CATEGORY_NOFLASH, ) diff --git a/code/datums/components/deadchat_control.dm b/code/datums/components/deadchat_control.dm index 2a00b2f955d..f1ec2d73bc8 100644 --- a/code/datums/components/deadchat_control.dm +++ b/code/datums/components/deadchat_control.dm @@ -42,8 +42,7 @@ notify_ghosts( "[parent] is now deadchat controllable!", source = parent, - action = NOTIFY_ORBIT, - header = "Something Interesting!", + header = "Ghost Possession!", ) if(!ismob(parent) && !SSpoints_of_interest.is_valid_poi(parent)) SSpoints_of_interest.make_point_of_interest(parent) diff --git a/code/datums/components/energized.dm b/code/datums/components/energized.dm index 90066ecd97e..97ff670113f 100644 --- a/code/datums/components/energized.dm +++ b/code/datums/components/energized.dm @@ -113,7 +113,6 @@ notify_ghosts( "[future_tram_victim] has fallen in the path of an oncoming tram!", source = future_tram_victim, - action = NOTIFY_ORBIT, header = "Electrifying!", ) do_sparks(4, FALSE, source) diff --git a/code/datums/components/food/ghost_edible.dm b/code/datums/components/food/ghost_edible.dm index ff524ed7a1c..801aa95cb6b 100644 --- a/code/datums/components/food/ghost_edible.dm +++ b/code/datums/components/food/ghost_edible.dm @@ -26,8 +26,8 @@ notify_ghosts( "[parent] is edible by ghosts!", source = parent, - action = NOTIFY_ORBIT, - header="Something Tasty!", + header = "Something Tasty!", + notify_flags = NOTIFY_CATEGORY_NOFLASH, ) /datum/component/ghost_edible/RegisterWithParent() diff --git a/code/datums/components/orbit_poll.dm b/code/datums/components/orbit_poll.dm index dda7207ed45..ceb85d16d64 100644 --- a/code/datums/components/orbit_poll.dm +++ b/code/datums/components/orbit_poll.dm @@ -49,12 +49,11 @@ notify_ghosts( "[message]. An orbiter will be chosen in [DisplayTimeText(timeout)].\n", - action = NOTIFY_ORBIT, - enter_link = "(Ignore)", - notify_flags = NOTIFY_CATEGORY_NOFLASH, - header = "Volunteers requested", - ignore_key = ignore_key, source = parent, + header = "Volunteers requested", + custom_link = " (Ignore)", + ignore_key = ignore_key, + notify_flags = NOTIFY_CATEGORY_NOFLASH, ) addtimer(CALLBACK(src, PROC_REF(end_poll)), timeout, TIMER_UNIQUE|TIMER_OVERRIDE|TIMER_STOPPABLE|TIMER_DELETE_ME) diff --git a/code/datums/components/supermatter_crystal.dm b/code/datums/components/supermatter_crystal.dm index 14a0122dcf5..15048ffff93 100644 --- a/code/datums/components/supermatter_crystal.dm +++ b/code/datums/components/supermatter_crystal.dm @@ -306,7 +306,6 @@ "[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 diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm index 3d3bbb6f690..d39e9011ec3 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm @@ -180,8 +180,6 @@ 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) diff --git a/code/game/machinery/harvester.dm b/code/game/machinery/harvester.dm index 1a16c00e42d..2d34c6214f3 100644 --- a/code/game/machinery/harvester.dm +++ b/code/game/machinery/harvester.dm @@ -103,7 +103,6 @@ "[occupant] is about to be ground up by a malfunctioning organ harvester!", source = src, header = "Gruesome!", - action = NOTIFY_ORBIT, ) operation_order = reverseList(carbon_occupant.bodyparts) //Chest and head are first in bodyparts, so we invert it to make them suffer more diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index 956e2bd7588..acd01f2488c 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -254,7 +254,6 @@ 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) diff --git a/code/game/objects/items/devices/reverse_bear_trap.dm b/code/game/objects/items/devices/reverse_bear_trap.dm index 8ac8d2a6026..cc94deb7da9 100644 --- a/code/game/objects/items/devices/reverse_bear_trap.dm +++ b/code/game/objects/items/devices/reverse_bear_trap.dm @@ -110,11 +110,10 @@ notify_ghosts( "[user] put a reverse bear trap on [target]!", source = src, - action = NOTIFY_ORBIT, + header = "Reverse bear trap armed", 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() diff --git a/code/game/objects/items/eightball.dm b/code/game/objects/items/eightball.dm index 6bac2e7df37..719789b2a93 100644 --- a/code/game/objects/items/eightball.dm +++ b/code/game/objects/items/eightball.dm @@ -161,8 +161,8 @@ notify_ghosts( "[user] is shaking [src], hoping to get an answer to \"[selected_message]\"", source = src, - action = NOTIFY_PLAY, header = "Magic eightball", + click_interact = TRUE, ) /obj/item/toy/eightball/haunted/get_answer() diff --git a/code/game/objects/items/grenades/plastic.dm b/code/game/objects/items/grenades/plastic.dm index 998057bce2a..9b44b2ed4a2 100644 --- a/code/game/objects/items/grenades/plastic.dm +++ b/code/game/objects/items/grenades/plastic.dm @@ -122,9 +122,8 @@ 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", + notify_flags = NOTIFY_CATEGORY_NOFLASH, ) moveToNullspace() //Yep diff --git a/code/game/objects/items/his_grace.dm b/code/game/objects/items/his_grace.dm index fe0e12d4d50..83af88f003b 100644 --- a/code/game/objects/items/his_grace.dm +++ b/code/game/objects/items/his_grace.dm @@ -152,7 +152,6 @@ 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) diff --git a/code/game/objects/items/hot_potato.dm b/code/game/objects/items/hot_potato.dm index 797c24aaf4c..9a7da338885 100644 --- a/code/game/objects/items/hot_potato.dm +++ b/code/game/objects/items/hot_potato.dm @@ -153,7 +153,6 @@ notify_ghosts( "[user] has primed a Hot Potato!", source = src, - action = NOTIFY_ORBIT, header = "Hot Hot Hot!", ) diff --git a/code/game/objects/items/implants/implant_explosive.dm b/code/game/objects/items/implants/implant_explosive.dm index 0661db5dbe0..29627f377f2 100644 --- a/code/game/objects/items/implants/implant_explosive.dm +++ b/code/game/objects/items/implants/implant_explosive.dm @@ -124,10 +124,9 @@ notify_ghosts( "[imp_in] is about to detonate their explosive implant!", source = src, - action = NOTIFY_ORBIT, + header = "Tick Tick Tick...", notify_flags = NOTIFY_CATEGORY_NOFLASH, ghost_sound = 'sound/machines/warning-buzzer.ogg', - header = "Tick Tick Tick...", notify_volume = 75, ) diff --git a/code/modules/antagonists/blob/blob_antag.dm b/code/modules/antagonists/blob/blob_antag.dm index 99bba74ae89..07ca14586e1 100644 --- a/code/modules/antagonists/blob/blob_antag.dm +++ b/code/modules/antagonists/blob/blob_antag.dm @@ -140,11 +140,9 @@ notify_ghosts( "A Blob host has burst in [get_area_name(blob_cam.blob_core)]", source = blob_cam.blob_core, - action = NOTIFY_ORBIT, ghost_sound = 'sound/ambience/antag/blobalert.ogg', header = "Blob Awakening!", notify_volume = 75, - notify_flags = NOTIFY_CATEGORY_DEFAULT, ) /datum/antagonist/blob/antag_listing_status() diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index 240e3617029..a90475d2b9a 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -924,9 +924,9 @@ GLOBAL_VAR_INIT(narsie_summon_count, 0) return list() notify_ghosts( "Manifest rune invoked in [get_area(src)].", - 'sound/effects/ghost2.ogg', source = src, header = "Manifest rune", + ghost_sound = 'sound/effects/ghost2.ogg', ) var/list/ghosts_on_rune = list() for(var/mob/dead/observer/O in T) diff --git a/code/modules/antagonists/heretic/heretic_knowledge.dm b/code/modules/antagonists/heretic/heretic_knowledge.dm index 81130d2f5a0..c4513571036 100644 --- a/code/modules/antagonists/heretic/heretic_knowledge.dm +++ b/code/modules/antagonists/heretic/heretic_knowledge.dm @@ -733,9 +733,7 @@ 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 diff --git a/code/modules/antagonists/malf_ai/malf_ai_modules.dm b/code/modules/antagonists/malf_ai/malf_ai_modules.dm index a5ef076d5b6..3489110918a 100644 --- a/code/modules/antagonists/malf_ai/malf_ai_modules.dm +++ b/code/modules/antagonists/malf_ai/malf_ai_modules.dm @@ -275,7 +275,6 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module)) "[owner_AI] has activated a Doomsday Device!", source = owner_AI, header = "DOOOOOOM!!!", - action = NOTIFY_ORBIT, ) qdel(src) diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_bomb/_nuclear_bomb.dm b/code/modules/antagonists/nukeop/equipment/nuclear_bomb/_nuclear_bomb.dm index 024f60b4edb..2e66001bfbe 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclear_bomb/_nuclear_bomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclear_bomb/_nuclear_bomb.dm @@ -463,8 +463,6 @@ GLOBAL_VAR(station_nuke_source) "A nuclear device has been armed in [get_area_name(src)]!", source = src, header = "Nuke Armed", - action = NOTIFY_ORBIT, - notify_flags = NOTIFY_CATEGORY_DEFAULT, ) update_appearance() diff --git a/code/modules/antagonists/pirate/pirate_event.dm b/code/modules/antagonists/pirate/pirate_event.dm index 26456c3a35f..fd1dcc84034 100644 --- a/code/modules/antagonists/pirate/pirate_event.dm +++ b/code/modules/antagonists/pirate/pirate_event.dm @@ -90,14 +90,12 @@ 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!", ) diff --git a/code/modules/antagonists/space_dragon/carp_rift.dm b/code/modules/antagonists/space_dragon/carp_rift.dm index 7e95fd1b93a..e003bf76e4d 100644 --- a/code/modules/antagonists/space_dragon/carp_rift.dm +++ b/code/modules/antagonists/space_dragon/carp_rift.dm @@ -44,9 +44,8 @@ notify_ghosts( "The Space Dragon has opened a rift!", source = new_rift, - action = NOTIFY_ORBIT, - notify_flags = NOTIFY_CATEGORY_NOFLASH, header = "Carp Rift Opened", + notify_flags = NOTIFY_CATEGORY_NOFLASH, ) 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. @@ -198,9 +197,8 @@ notify_ghosts( "The carp rift can summon an additional carp!", source = src, - action = NOTIFY_ORBIT, - notify_flags = NOTIFY_CATEGORY_NOFLASH, header = "Carp Spawn Available", + notify_flags = NOTIFY_CATEGORY_NOFLASH, ) last_carp_inc -= carp_interval diff --git a/code/modules/antagonists/traitor/objectives/eyesnatching.dm b/code/modules/antagonists/traitor/objectives/eyesnatching.dm index c350eff981f..5cf95e90384 100644 --- a/code/modules/antagonists/traitor/objectives/eyesnatching.dm +++ b/code/modules/antagonists/traitor/objectives/eyesnatching.dm @@ -211,7 +211,6 @@ notify_ghosts( "[target] has just had their eyes snatched!", source = target, - action = NOTIFY_ORBIT, header = "Ouch!", ) target.emote("scream") diff --git a/code/modules/atmospherics/machinery/components/fusion/hfr_procs.dm b/code/modules/atmospherics/machinery/components/fusion/hfr_procs.dm index 1ea5fe9c6de..71e5a8bcc5f 100644 --- a/code/modules/atmospherics/machinery/components/fusion/hfr_procs.dm +++ b/code/modules/atmospherics/machinery/components/fusion/hfr_procs.dm @@ -421,10 +421,8 @@ "The [src] has begun melting down!", source = src, header = "Meltdown Incoming", - action = NOTIFY_ORBIT, ghost_sound = 'sound/machines/warning-buzzer.ogg', notify_volume = 75, - notify_flags = NOTIFY_CATEGORY_DEFAULT, ) for(var/i in HYPERTORUS_COUNTDOWN_TIME to 0 step -10) diff --git a/code/modules/basketball/controller.dm b/code/modules/basketball/controller.dm index d045d965341..53726c57389 100644 --- a/code/modules/basketball/controller.dm +++ b/code/modules/basketball/controller.dm @@ -119,8 +119,6 @@ GLOBAL_VAR(basketball_game) header = "Basketball Minigame", ghost_sound = 'sound/effects/ghost2.ogg', notify_volume = 75, - action = NOTIFY_ORBIT, - notify_flags = NOTIFY_CATEGORY_DEFAULT, ) create_bodies(ready_players) diff --git a/code/modules/capture_the_flag/ctf_controller.dm b/code/modules/capture_the_flag/ctf_controller.dm index f5695ae65dc..a38937db301 100644 --- a/code/modules/capture_the_flag/ctf_controller.dm +++ b/code/modules/capture_the_flag/ctf_controller.dm @@ -50,9 +50,7 @@ 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() diff --git a/code/modules/capture_the_flag/ctf_game.dm b/code/modules/capture_the_flag/ctf_game.dm index b7d97be8ecd..a4c3c68f634 100644 --- a/code/modules/capture_the_flag/ctf_game.dm +++ b/code/modules/capture_the_flag/ctf_game.dm @@ -518,14 +518,16 @@ 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', + ghost_sound = 'sound/effects/ghost2.ogg', + header = "CTF Restarted" ) 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', + ghost_sound = 'sound/effects/ghost2.ogg', + header = "CTF [ctf_enabled? "Enabled" : "Disabled"]" ) #undef CTF_LOADING_UNLOADED diff --git a/code/modules/cards/deck/tarot.dm b/code/modules/cards/deck/tarot.dm index 3dcdc8608c6..cf21fe78935 100644 --- a/code/modules/cards/deck/tarot.dm +++ b/code/modules/cards/deck/tarot.dm @@ -59,7 +59,6 @@ header = "Haunted Tarot Deck", ghost_sound = 'sound/effects/ghost2.ogg', notify_volume = 75, - action = NOTIFY_ORBIT, ) /obj/item/toy/cards/deck/tarot/haunted/proc/on_unwield(obj/item/source, mob/living/carbon/user) diff --git a/code/modules/events/_event.dm b/code/modules/events/_event.dm index fd2ae8bd596..99b708110e1 100644 --- a/code/modules/events/_event.dm +++ b/code/modules/events/_event.dm @@ -232,8 +232,6 @@ Runs the event notify_ghosts( "[control.name] has an object of interest: [atom_of_interest]!", source = atom_of_interest, - action = NOTIFY_ORBIT, - header = "Something's Interesting!", ) return diff --git a/code/modules/events/ghost_role/fugitive_event.dm b/code/modules/events/ghost_role/fugitive_event.dm index 11eaf3c78b2..d272ba637ce 100644 --- a/code/modules/events/ghost_role/fugitive_event.dm +++ b/code/modules/events/ghost_role/fugitive_event.dm @@ -137,14 +137,12 @@ 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!", ) diff --git a/code/modules/mining/lavaland/megafauna_loot.dm b/code/modules/mining/lavaland/megafauna_loot.dm index 91b70f9f4ed..c30b4b9a765 100644 --- a/code/modules/mining/lavaland/megafauna_loot.dm +++ b/code/modules/mining/lavaland/megafauna_loot.dm @@ -674,7 +674,6 @@ 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", @@ -682,12 +681,6 @@ summon_cooldown = world.time + 600 -/obj/item/melee/ghost_sword/Topic(href, href_list) - if(href_list["orbit"]) - var/mob/dead/observer/ghost = usr - if(istype(ghost)) - ghost.ManualFollow(src) - /obj/item/melee/ghost_sword/process() ghost_check() diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 7c661514e64..382866accb7 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -742,17 +742,33 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp reenter_corpse() return - if(href_list["jump"]) - var/atom/movable/target = locate(href_list["jump"]) - var/turf/target_turf = get_turf(target) - if(target_turf && isturf(target_turf)) - abstract_move(target_turf) + if(href_list["view"]) + var/atom/target = locate(href_list["view"]) + observer_view(target) + return if(href_list["play"]) var/atom/movable/target = locate(href_list["play"]) - if(istype(target) && (target != src)) - target.attack_ghost(usr) - return + jump_to_interact(target) + +/// We orbit and interact with the target +/mob/dead/observer/proc/jump_to_interact(atom/target) + if(isnull(target) || target == src) + return + + ManualFollow(target) + target.attack_ghost(usr) + +/// We orbit the target or jump if its a turf +/mob/dead/observer/proc/observer_view(atom/target) + if(isnull(target) || target == src) + return + + if(isturf(target)) + abstract_move(target) + return + + ManualFollow(target) //We don't want to update the current var //But we will still carry a mind. diff --git a/code/modules/mob/living/basic/drone/drones_as_items.dm b/code/modules/mob/living/basic/drone/drones_as_items.dm index d816c9b3060..32d8c0e1f5a 100644 --- a/code/modules/mob/living/basic/drone/drones_as_items.dm +++ b/code/modules/mob/living/basic/drone/drones_as_items.dm @@ -29,9 +29,10 @@ notify_ghosts( "A drone shell has been created in \the [area.name].", source = src, - action = NOTIFY_PLAY, - notify_flags = (GHOST_NOTIFY_IGNORE_MAPLOAD), + header = "Drone Shell Created", + click_interact = TRUE, ignore_key = POLL_IGNORE_DRONE, + notify_flags = (GHOST_NOTIFY_IGNORE_MAPLOAD), ) /obj/effect/mob_spawn/ghost_role/drone/allow_spawn(mob/user, silent = FALSE) diff --git a/code/modules/mob/living/basic/space_fauna/regal_rat/regal_rat.dm b/code/modules/mob/living/basic/space_fauna/regal_rat/regal_rat.dm index 69998948019..3602d5e8a99 100644 --- a/code/modules/mob/living/basic/space_fauna/regal_rat/regal_rat.dm +++ b/code/modules/mob/living/basic/space_fauna/regal_rat/regal_rat.dm @@ -108,9 +108,8 @@ notify_ghosts( "All rise for [name], ascendant to the throne in \the [get_area(src)].", source = src, - action = NOTIFY_ORBIT, - notify_flags = NOTIFY_CATEGORY_NOFLASH, header = "Sentient Rat Created", + notify_flags = NOTIFY_CATEGORY_NOFLASH, ) /// Supplementary work we do when we login. Done this way so we synchronize with the ai controller shutting off and all that jazz as well as allowing more shit to be passed in if need be in future. diff --git a/code/modules/mob/living/brain/posibrain.dm b/code/modules/mob/living/brain/posibrain.dm index 1ba926a210e..d2d59ce2f43 100644 --- a/code/modules/mob/living/brain/posibrain.dm +++ b/code/modules/mob/living/brain/posibrain.dm @@ -45,12 +45,13 @@ GLOBAL_VAR(posibrain_notify_cooldown) 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, - notify_flags = (GHOST_NOTIFY_IGNORE_MAPLOAD), + header = "Ghost in the Machine", + click_interact = TRUE, + ghost_sound = !newlymade ? 'sound/effects/ghost2.ogg':null, ignore_key = POLL_IGNORE_POSIBRAIN, + notify_flags = (GHOST_NOTIFY_IGNORE_MAPLOAD), + notify_volume = 75, ) if(!newlymade) GLOB.posibrain_notify_cooldown = world.time + ask_delay diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index 9abc10c86b4..f726fcb9819 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -514,10 +514,10 @@ 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", + click_interact = TRUE, + ghost_sound = 'sound/effects/ghost2.ogg', ) /obj/machinery/anomalous_crystal/helpers/attack_ghost(mob/dead/observer/user) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm index 798fd51d692..b1430b19324 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm @@ -215,9 +215,8 @@ While using this makes the system rely on OnFire, it still gives options for tim 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", + notify_flags = NOTIFY_CATEGORY_NOFLASH, ) mychild.log_message("has been awakened by [key_name(activator)]!", LOG_GAME, color="#960000") icon_state = "tumor_popped" @@ -235,9 +234,8 @@ While using this makes the system rely on OnFire, it still gives options for tim 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", + notify_flags = NOTIFY_CATEGORY_NOFLASH, ) mychild.log_message("has been challenged by [key_name(activator)]!", LOG_GAME, color="#960000") diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index d9bfef8f72b..19ca3e7736b 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -245,27 +245,27 @@ * The kitchen sink of notification procs * * Arguments: - * * message - * * ghost_sound sound to play - * * enter_link Href link to enter the ghost role being notified for - * * 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 - * * ignore_key Ignore keys if they're in the GLOB.poll_ignore list - * * header The header of the notifiaction - * * notify_volume How loud the sound should be to spook the user + * * message: The message displayed in chat. + * * source: The source of the notification. This is required for an icon + * * header: The title text to display on the icon tooltip. + * * alert_overlay: Optional. Create a custom overlay if you want, otherwise it will use the source + * * click_interact: If true, adds a link + clicking the icon will attack_ghost the source + * * custom_link: Optional. If you want to add a custom link to the chat notification + * * ghost_sound: sound to play + * * ignore_key: Ignore keys if they're in the GLOB.poll_ignore list + * * notify_volume: How loud the sound should be to spook the user */ /proc/notify_ghosts( message, - ghost_sound, - enter_link, atom/source, + header = "Something Interesting!", mutable_appearance/alert_overlay, - action = NOTIFY_JUMP, - notify_flags = NOTIFY_CATEGORY_DEFAULT, + click_interact = FALSE, + custom_link = "", + ghost_sound, ignore_key, - header = "", - notify_volume = 100 + notify_flags = NOTIFY_CATEGORY_DEFAULT, + notify_volume = 100, ) if(notify_flags & GHOST_NOTIFY_IGNORE_MAPLOAD && SSatoms.initialized != INITIALIZATION_INNEW_REGULAR) //don't notify for objects created during a map load @@ -295,18 +295,18 @@ to_chat(ghost, span_ghostalert(message)) continue - var/custom_link = enter_link ? " [enter_link]" : "" - var/link = " ([capitalize(action)])" + var/interact_link = click_interact ? " (Play)" : "" + var/view_link = " (View)" - to_chat(ghost, span_ghostalert("[message][custom_link][link]")) + to_chat(ghost, span_ghostalert("[message][custom_link][interact_link][view_link]")) var/atom/movable/screen/alert/notify_action/toast = ghost.throw_alert( category = "[REF(source)]_notify_action", type = /atom/movable/screen/alert/notify_action, ) - toast.action = action toast.add_overlay(alert_overlay) - toast.desc = "[message] -- Click to [action]." + toast.click_interact = click_interact + toast.desc = "Click to [click_interact ? "play" : "view"]." toast.name = header toast.target_ref = WEAKREF(source) diff --git a/code/modules/mob_spawn/ghost_roles/golem_roles.dm b/code/modules/mob_spawn/ghost_roles/golem_roles.dm index 1fa23698e4a..b3475e9207f 100644 --- a/code/modules/mob_spawn/ghost_roles/golem_roles.dm +++ b/code/modules/mob_spawn/ghost_roles/golem_roles.dm @@ -26,9 +26,10 @@ notify_ghosts( "\A golem shell has been completed in \the [init_area.name].", source = src, - action = NOTIFY_PLAY, - notify_flags = NOTIFY_CATEGORY_NOFLASH, + header = "Golem Shell", + click_interact = TRUE, ignore_key = POLL_IGNORE_GOLEM, + notify_flags = NOTIFY_CATEGORY_NOFLASH, ) /obj/effect/mob_spawn/ghost_role/human/golem/name_mob(mob/living/spawned_mob, forced_name) diff --git a/code/modules/mob_spawn/ghost_roles/mining_roles.dm b/code/modules/mob_spawn/ghost_roles/mining_roles.dm index d322fc4c366..208a74a3edb 100644 --- a/code/modules/mob_spawn/ghost_roles/mining_roles.dm +++ b/code/modules/mob_spawn/ghost_roles/mining_roles.dm @@ -256,9 +256,10 @@ 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, + header = "Ash Walker Egg", + click_interact = TRUE, ignore_key = POLL_IGNORE_ASHWALKER, + notify_flags = NOTIFY_CATEGORY_NOFLASH, ) /datum/outfit/ashwalker diff --git a/code/modules/mob_spawn/ghost_roles/spider_roles.dm b/code/modules/mob_spawn/ghost_roles/spider_roles.dm index 4dada2a2468..f50d31d75cd 100644 --- a/code/modules/mob_spawn/ghost_roles/spider_roles.dm +++ b/code/modules/mob_spawn/ghost_roles/spider_roles.dm @@ -113,7 +113,8 @@ notify_ghosts( "[src] is ready to hatch!", source = src, - action = NOTIFY_PLAY, + header = "Spider Infestation", + click_interact = TRUE, ignore_key = POLL_IGNORE_SPIDER, notify_flags = notify_flags_to_pass, ) diff --git a/code/modules/mob_spawn/ghost_roles/venus_human_trap.dm b/code/modules/mob_spawn/ghost_roles/venus_human_trap.dm index 1a1fd623e0d..af5203cc396 100644 --- a/code/modules/mob_spawn/ghost_roles/venus_human_trap.dm +++ b/code/modules/mob_spawn/ghost_roles/venus_human_trap.dm @@ -36,7 +36,8 @@ notify_ghosts( "[src] has borne fruit!", source = src, - action = NOTIFY_PLAY, + header = "Venus Human Trap", + click_interact = TRUE, ignore_key = POLL_IGNORE_VENUSHUMANTRAP, ) diff --git a/code/modules/pai/card.dm b/code/modules/pai/card.dm index 2fc3d2d0ca4..da3bfe4e0ce 100644 --- a/code/modules/pai/card.dm +++ b/code/modules/pai/card.dm @@ -236,10 +236,9 @@ 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!", + alert_overlay = alert_overlay, + notify_flags = NOTIFY_CATEGORY_NOFLASH, ignore_key = POLL_IGNORE_PAI, ) diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm index b464a406b20..9aafcee948d 100644 --- a/code/modules/power/singularity/narsie.dm +++ b/code/modules/power/singularity/narsie.dm @@ -61,8 +61,9 @@ notify_ghosts( "Nar'Sie has risen in [area]. Reach out to the Geometer to be given a new shell for your soul.", source = src, + header = "Nar'Sie has risen!", + click_interact = TRUE, alert_overlay = alert_overlay, - action = NOTIFY_PLAY, ) narsie_spawn_animation() diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index fc2836a4e6d..b21b26dcea0 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -79,14 +79,11 @@ notify_ghosts( ghost_notification_message, source = src, - action = NOTIFY_ORBIT, - notify_flags = NOTIFY_CATEGORY_DEFAULT, - ghost_sound = 'sound/machines/warning-buzzer.ogg', header = ghost_notification_message, + ghost_sound = 'sound/machines/warning-buzzer.ogg', notify_volume = 75, ) - /obj/singularity/Destroy() STOP_PROCESSING(SSsinguloprocess, src) return ..() diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index fc822877910..f8c5cf1c99f 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -538,7 +538,6 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) "[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 diff --git a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm index 582ee474f4d..72b4ce4a141 100644 --- a/code/modules/projectiles/guns/energy/pulse.dm +++ b/code/modules/projectiles/guns/energy/pulse.dm @@ -29,9 +29,7 @@ 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 diff --git a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm index 5b9d87e96c6..ae7489d5866 100644 --- a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm @@ -48,9 +48,7 @@ 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)) diff --git a/code/modules/shuttle/battlecruiser_starfury.dm b/code/modules/shuttle/battlecruiser_starfury.dm index 054de00504e..d8dc3c312f7 100644 --- a/code/modules/shuttle/battlecruiser_starfury.dm +++ b/code/modules/shuttle/battlecruiser_starfury.dm @@ -171,15 +171,11 @@ notify_ghosts( "The battlecruiser has an object of interest: [our_candidate]!", source = our_candidate, - action = NOTIFY_ORBIT, - header = "Something's Interesting!", ) else notify_ghosts( "The battlecruiser has an object of interest: [spawner]!", source = spawner, - action = NOTIFY_ORBIT, - header="Something's Interesting!", ) priority_announce("Unidentified armed ship detected near the station.") diff --git a/code/modules/surgery/organs/internal/appendix/_appendix.dm b/code/modules/surgery/organs/internal/appendix/_appendix.dm index 43a6bfb7a41..ee87d674dc4 100644 --- a/code/modules/surgery/organs/internal/appendix/_appendix.dm +++ b/code/modules/surgery/organs/internal/appendix/_appendix.dm @@ -49,7 +49,6 @@ notify_ghosts( "[owner] has developed spontaneous appendicitis!", source = owner, - action = NOTIFY_ORBIT, header = "Whoa, Sick!", ) diff --git a/code/modules/uplink/uplink_items/badass.dm b/code/modules/uplink/uplink_items/badass.dm index d2eee3afa33..dbd28a136c8 100644 --- a/code/modules/uplink/uplink_items/badass.dm +++ b/code/modules/uplink/uplink_items/badass.dm @@ -25,7 +25,6 @@ notify_ghosts( "[user] has purchased a BADASS Syndicate Balloon!", source = src, - action = NOTIFY_ORBIT, header = "What are they THINKING?", )