diff --git a/code/__defines/dcs/signals.dm b/code/__defines/dcs/signals.dm deleted file mode 100644 index 0fb30a9796..0000000000 --- a/code/__defines/dcs/signals.dm +++ /dev/null @@ -1,1076 +0,0 @@ -// All signals. Format: -// When the signal is called: (signal arguments) -// All signals send the source datum of the signal as the first argument - -// global signals -// These are signals which can be listened to by any component on any parent -// start global signals with "!", this used to be necessary but now it's just a formatting choice - -/// /datum/controller/subsystem/ticker/proc/setup() : () -#define COMSIG_GLOB_ROUND_START "!round_start" -/// /datum/controller/subsystem/ticker/proc/post_game_tick() : () -#define COMSIG_GLOB_ROUND_END "!round_end" -///from base of datum/controller/subsystem/mapping/proc/add_new_zlevel(): (list/args) -#define COMSIG_GLOB_NEW_Z "!new_z" -/// called after a successful var edit somewhere in the world: (list/args) -#define COMSIG_GLOB_VAR_EDIT "!var_edit" -/// called after an explosion happened, called by /datum/controller/subsystem/explosions/proc/end_resolve() : (epicenter, devastation_range, heavy_impact_range, light_impact_range, seconds_taken) -#define COMSIG_GLOB_EXPLOSION "!explosion" -/// mob was created somewhere, called by /mob/Initialize() : (mob) -#define COMSIG_GLOB_MOB_CREATED "!mob_created" -/// mob died somewhere, called by /mob/proc/death(gibbed,deathmessage) : (mob , gibbed) -#define COMSIG_GLOB_MOB_DEATH "!mob_death" -/// global living say plug - use sparingly: (mob/speaker , message) -#define COMSIG_GLOB_LIVING_SAY_SPECIAL "!say_special" -/// called by datum/cinematic/play() : (datum/cinematic/new_cinematic) -#define COMSIG_GLOB_PLAY_CINEMATIC "!play_cinematic" - #define COMPONENT_GLOB_BLOCK_CINEMATIC (1<<0) -/// ingame button pressed, called by /obj/machinery/button/attack_hand() : (obj/machinery/button/button, mob/user) -#define COMSIG_GLOB_BUTTON_PRESSED "!button_pressed" -/// Supply shuttle selling, before all items are sold, called by /datum/controller/subsystem/supply/proc/sell() : (/list/area/supply_shuttle_areas) -#define COMSIG_GLOB_SUPPLY_SHUTTLE_DEPART "!sell_supply_shuttle" -/// Supply shuttle selling, for each item sold, called by /datum/controller/subsystem/supply/proc/sell() : (atom/movable/sold_item, list/things_sold_successfully, datum/exported_crate/export_data, area/shuttle_subarea) -#define COMSIG_GLOB_SUPPLY_SHUTTLE_SELL_ITEM "!supply_shuttle_sell_item" -/// Mind inserted into body: (mob/new_owner, /datum/mind/assigned_mind) -#define COMSIG_GLOB_RESLEEVED_MIND "!resleeved_mind_into_body" -/// ID card modified: (obj/item/card/id/modified_card) -#define COMSIG_GLOB_REASSIGN_EMPLOYEE_IDCARD "!modified_employee_idcard" -/// ID card terminated: (obj/item/card/id/terminated_card) -#define COMSIG_GLOB_TERMINATE_EMPLOYEE_IDCARD "!modified_terminated_idcard" -/// payment account status changed /obj/machinery/account_database/tgui_act() : (datum/money_account/account) -#define COMSIG_GLOB_PAYMENT_ACCOUNT_STATUS "!payment_account_change_status" -/// payment account status changed /obj/machinery/account_database/tgui_act() : (datum/money_account/account) -#define COMSIG_GLOB_PAYMENT_ACCOUNT_REVOKE "!payment_account_revoke_payroll" -/// borg created: (mob/living/silicon/robot/new_robot) -#define COMSIG_GLOB_BORGIFY "!borgify_mob" -/// brain removed from body, called by /obj/item/organ/internal/brain/proc/transfer_identity() : (mob/living/carbon/brain/brainmob) -#define COMSIG_GLOB_BRAIN_REMOVED "!brain_removed_from_mob" -// base /decl/emote/proc/do_emote() : (mob/user, extra_params) -#define COMSIG_GLOB_EMOTE_PERFORMED "!emote_performed" -// base /proc/say_dead_direct() : (message) -#define COMSIG_GLOB_DEAD_SAY "!dead_say" -// base /turf/wash() : () -#define COMSIG_GLOB_WASHED_FLOOR "!washed_floor" -// base /obj/machinery/artifact_harvester/proc/harvest() : (obj/item/anobattery/inserted_battery, mob/user) -#define COMSIG_GLOB_HARVEST_ARTIFACT "!harvest_artifact" -// upon harvesting a slime's extract : (obj/item/slime_extract/newly_made_core) -#define COMSIG_GLOB_HARVEST_SLIME_CORE "!harvest_slime_core" -// base /datum/recipe/proc/make_food() : (obj/container, list/results) -#define COMSIG_GLOB_FOOD_PREPARED "!recipe_food_completed" -// base /datum/construction/proc/spawn_result() : (/obj/mecha/result_mech) -#define COMSIG_GLOB_MECH_CONSTRUCTED "!mecha_constructed" -// when trashpiles are successfully searched : (mob/living/user, list/searched_by) -#define COMSIG_GLOB_TRASHPILE_SEARCHED "!trash_pile_searched" -// base /obj/item/autopsy_scanner/do_surgery() : (mob/user, mob/target) -#define COMSIG_GLOB_AUTOPSY_PERFORMED "!performed_autopsy" -// upon forensics swap or sample kit forensics collection : (atom/target, mob/user) -#define COMSIG_GLOB_FORENSICS_COLLECTED "!performed_forensics_collection" - -/// signals from globally accessible objects - -///from SSsun when the sun changes position : (azimuth) -#define COMSIG_SUN_MOVED "sun_moved" - -////////////////////////////////////////////////////////////////// - -/// Signal that gets sent when a ghost query is completed -#define COMSIG_GHOST_QUERY_COMPLETE "ghost_query_complete" - -// /atom signals -///from base of atom/proc/Initialize(): sent any time a new atom is created -#define COMSIG_ATOM_CREATED "atom_created" -//from SSatoms InitAtom - Only if the atom was not deleted or failed initialization -#define COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZE "atom_init_success" -//from SSatoms InitAtom - Only if the atom was not deleted or failed initialization and has a loc -#define COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON "atom_init_success_on" - -/// called post /obj/item initialize (obj/item/created_item) -#define COMSIG_GLOB_ATOM_AFTER_POST_INIT "!atom_after_post_init" - -///from base of atom/attackby(): (/obj/item, /mob/living, params) -#define COMSIG_PARENT_ATTACKBY "atom_attackby" -///Return this in response if you don't want later item attack procs to be called. - #define COMPONENT_CANCEL_ATTACK_CHAIN (1<<0) -///from base of atom/attack_hulk(): (/mob/living/carbon/human) -#define COMSIG_ATOM_HULK_ATTACK "hulk_attack" -///from base of atom/animal_attack(): (/mob/user) -#define COMSIG_ATOM_ATTACK_ANIMAL "attack_animal" -///from base of atom/examine(): (/mob) -#define COMSIG_PARENT_EXAMINE "atom_examine" -///from base of atom/get_examine_name(): (/mob, list/overrides) -#define COMSIG_ATOM_GET_EXAMINE_NAME "atom_examine_name" - //Positions for overrides list - #define EXAMINE_POSITION_ARTICLE (1<<0) - #define EXAMINE_POSITION_BEFORE (1<<1) - //End positions - #define COMPONENT_EXNAME_CHANGED (1<<0) -///from base of atom/update_icon(): () -#define COMSIG_ATOM_UPDATE_ICON "atom_update_icon" - #define COMSIG_ATOM_NO_UPDATE_ICON_STATE (1<<0) - #define COMSIG_ATOM_NO_UPDATE_OVERLAYS (1<<1) -///from base of atom/update_overlays(): (list/new_overlays) -#define COMSIG_ATOM_UPDATE_OVERLAYS "atom_update_overlays" -///from base of atom/update_icon(): (signalOut, did_anything) -#define COMSIG_ATOM_UPDATED_ICON "atom_updated_icon" -///from base of atom/Entered(): (atom/movable/entering, /atom) -#define COMSIG_ATOM_ENTERED "atom_entered" -/// Sent from the atom that just Entered src. From base of atom/Entered(): (/atom/entered_atom, /atom/oldLoc) -#define COMSIG_ATOM_ENTERING "atom_entering" -///from base of atom/Exit(): (/atom/movable/exiting, /atom/newloc) -#define COMSIG_ATOM_EXIT "atom_exit" - #define COMPONENT_ATOM_BLOCK_EXIT (1<<0) -///from base of atom/Exited(): (atom/movable/exiting, atom/newloc) -#define COMSIG_ATOM_EXITED "atom_exited" -///from base of atom/Bumped(): (/atom/movable) -#define COMSIG_ATOM_BUMPED "atom_bumped" -///from base of atom/ex_act(): (severity, target) -#define COMSIG_ATOM_EX_ACT "atom_ex_act" - #define COMPONENT_IGNORE_EXPLOSION (1<<0) -///from base of atom/emp_act(): (severity) -#define COMSIG_ATOM_EMP_ACT "atom_emp_act" -///from base of atom/fire_act(): (exposed_temperature, exposed_volume) -#define COMSIG_ATOM_FIRE_ACT "atom_fire_act" -///from base of atom/bullet_act(): (/obj/projectile, def_zone) -#define COMSIG_ATOM_BULLET_ACT "atom_bullet_act" -///from base of atom/CheckParts(): (list/parts_list, datum/crafting_recipe/R) -#define COMSIG_ATOM_CHECKPARTS "atom_checkparts" -///from base of atom/CheckParts(): (atom/movable/new_craft) - The atom has just been used in a crafting recipe and has been moved inside new_craft. -#define COMSIG_ATOM_USED_IN_CRAFT "atom_used_in_craft" -///from base of atom/blob_act(): (/obj/structure/blob) -#define COMSIG_ATOM_BLOB_ACT "atom_blob_act" -///from base of atom/acid_act(): (acidpwr, acid_volume) -#define COMSIG_ATOM_ACID_ACT "atom_acid_act" -///from base of atom/emag_act(): (/mob/user) -#define COMSIG_ATOM_EMAG_ACT "atom_emag_act" -///from base of atom/rad_act(intensity) -#define COMSIG_ATOM_RAD_ACT "atom_rad_act" -///from base of atom/narsie_act(): () -#define COMSIG_ATOM_NARSIE_ACT "atom_narsie_act" -///from base of atom/rcd_act(): (/mob, /obj/item/construction/rcd, passed_mode) -#define COMSIG_ATOM_RCD_ACT "atom_rcd_act" -///from base of atom/singularity_pull(): (S, current_size) -#define COMSIG_ATOM_SING_PULL "atom_sing_pull" -///from obj/machinery/bsa/full/proc/fire(): () -#define COMSIG_ATOM_BSA_BEAM "atom_bsa_beam_pass" - #define COMSIG_ATOM_BLOCKS_BSA_BEAM (1<<0) -///from base of atom/setDir(): (old_dir, new_dir) -#define COMSIG_ATOM_DIR_CHANGE "atom_dir_change" -///from base of atom/handle_atom_del(): (atom/deleted) -#define COMSIG_ATOM_CONTENTS_DEL "atom_contents_del" -///from base of atom/get_gravity(): (turf/location, list/forced_gravities) -#define COMSIG_ATOM_HAS_GRAVITY "atom_has_gravity" -///from proc/get_rad_contents(): () -#define COMSIG_ATOM_RAD_PROBE "atom_rad_probe" - #define COMPONENT_BLOCK_RADIATION (1<<0) -///from base of datum/radiation_wave/radiate(): (strength) -#define COMSIG_ATOM_RAD_CONTAMINATING "atom_rad_contam" - #define COMPONENT_BLOCK_CONTAMINATION (1<<0) -///from base of datum/radiation_wave/check_obstructions(): (datum/radiation_wave, width) -#define COMSIG_ATOM_RAD_WAVE_PASSING "atom_rad_wave_pass" - #define COMPONENT_RAD_WAVE_HANDLED (1<<0) -///from internal loop in atom/movable/proc/CanReach(): (list/next) -#define COMSIG_ATOM_CANREACH "atom_can_reach" - #define COMPONENT_BLOCK_REACH (1<<0) -///from base of atom/screwdriver_act(): (mob/living/user, obj/item/I) -#define COMSIG_ATOM_SCREWDRIVER_ACT "atom_screwdriver_act" -///from base of atom/wrench_act(): (mob/living/user, obj/item/I) -#define COMSIG_ATOM_WRENCH_ACT "atom_wrench_act" -///from base of atom/multitool_act(): (mob/living/user, obj/item/I) -#define COMSIG_ATOM_MULTITOOL_ACT "atom_multitool_act" -///from base of atom/welder_act(): (mob/living/user, obj/item/I) -#define COMSIG_ATOM_WELDER_ACT "atom_welder_act" -///from base of atom/wirecutter_act(): (mob/living/user, obj/item/I) -#define COMSIG_ATOM_WIRECUTTER_ACT "atom_wirecutter_act" -///from base of atom/crowbar_act(): (mob/living/user, obj/item/I) -#define COMSIG_ATOM_CROWBAR_ACT "atom_crowbar_act" -///from base of atom/analyser_act(): (mob/living/user, obj/item/I) -#define COMSIG_ATOM_ANALYSER_ACT "atom_analyser_act" - #define COMPONENT_BLOCK_TOOL_ATTACK (1<<0) -///called when teleporting into a protected turf: (channel, turf/origin) -#define COMSIG_ATOM_INTERCEPT_TELEPORT "intercept_teleport" - #define COMPONENT_BLOCK_TELEPORT (1<<0) -///called when an atom is added to the hearers on get_hearers_in_view(): (list/processing_list, list/hearers) -#define COMSIG_ATOM_HEARER_IN_VIEW "atom_hearer_in_view" -///called when an atom starts orbiting another atom: (atom) -#define COMSIG_ATOM_ORBIT_BEGIN "atom_orbit_begin" -///called when an atom stops orbiting another atom: (atom) -#define COMSIG_ATOM_ORBIT_STOP "atom_orbit_stop" -///from base of atom/set_opacity(): (new_opacity) -#define COMSIG_ATOM_SET_OPACITY "atom_set_opacity" -///////////////// -///from base of atom/attack_ghost(): (mob/dead/observer/ghost) -#define COMSIG_ATOM_ATTACK_GHOST "atom_attack_ghost" -///from base of atom/attack_hand(): (mob/user) -#define COMSIG_ATOM_ATTACK_HAND "atom_attack_hand" -///from base of atom/attack_paw(): (mob/user) -//This signal return value bitflags can be found in __DEFINES/misc.dm - -///from base of /obj/structure/stairs/top/use_stairs(var/atom/movable/AM, var/atom/oldloc) -#define COMSIG_MOVED_DOWN_STAIRS "atom_moved_down_stairs" -///from base of /obj/structure/stairs/bottom/use_stairs(var/atom/movable/AM, var/atom/oldloc) -#define COMSIG_MOVED_UP_STAIRS "atom_moved_up_stairs" - -///called for each movable in a turf contents on /turf/zImpact(): (atom/movable/A, levels) -#define COMSIG_ATOM_INTERCEPT_Z_FALL "movable_intercept_z_impact" -///called on a movable (NOT living) when someone starts pulling it (atom/movable/puller, state, force) -#define COMSIG_ATOM_START_PULL "movable_start_pull" -///called on /living when someone starts pulling it (atom/movable/puller, state, force) -#define COMSIG_LIVING_START_PULL "living_start_pull" -///from base atom/Exited(): (mob/user, obj/item/extrapolator/extrapolator, dry_run, list/result) -#define COMSIG_ATOM_EXTRAPOLATOR_ACT "atom_extrapolator_act" - -///////////////// - -///from base of area/Entered(): (/area) -#define COMSIG_ENTER_AREA "enter_area" -///from base of area/Exited(): (/area) -#define COMSIG_EXIT_AREA "exit_area" - -///from base of atom/MouseDrop_T: do_after(mob/user, delay, atom/target, needhand, progress, incapacitation_flags, ignore_movement, max_distance, exclusive) -#define COMSIG_DO_AFTER_BEGAN "do_after_began" -///from base of atom/MouseDrop_T: do_after(mob/user, delay, atom/target, needhand, progress, incapacitation_flags, ignore_movement, max_distance, exclusive) -#define COMSIG_DO_AFTER_ENDED "do_after_ended" - -// /area signals - -///from base of area/Entered(): (atom/movable/M) -#define COMSIG_AREA_ENTERED "area_entered" -///from base of area/Exited(): (atom/movable/M) -#define COMSIG_AREA_EXITED "area_exited" - -// /turf signals - -///from base of turf/ChangeTurf(): (path, list/new_baseturfs, flags, list/transferring_comps) -#define COMSIG_TURF_CHANGE "turf_change" -///from base of atom/get_gravity(): (atom/asker, list/forced_gravities) -#define COMSIG_TURF_HAS_GRAVITY "turf_has_gravity" -///from base of turf/multiz_turf_del(): (turf/source, direction) -#define COMSIG_TURF_MULTIZ_DEL "turf_multiz_del" -///from base of turf/multiz_turf_new: (turf/source, direction) -#define COMSIG_TURF_MULTIZ_NEW "turf_multiz_new" - -// /atom/movable signals - -///from base of atom/movable/Move(): (atom/newloc, dir, movetime) -#define COMSIG_MOVABLE_PRE_MOVE "movable_pre_move" - #define COMPONENT_MOVABLE_BLOCK_PRE_MOVE (1<<0) -///from base of atom/movable/Moved(): (/atom, dir) -#define COMSIG_MOVABLE_MOVED "movable_moved" -///from base of atom/movable/Cross(): (/atom/movable) -#define COMSIG_MOVABLE_CROSS "movable_cross" - #define COMPONENT_BLOCK_CROSS (1<<0) -///from base of atom/movable/Move(): (/atom/movable) -#define COMSIG_MOVABLE_CROSS_OVER "movable_cross_am" -///from base of atom/movable/Bump(): (/atom) -#define COMSIG_MOVABLE_BUMP "movable_bump" -///from base of atom/movable/throw_impact(): (/atom/hit_atom, /datum/thrownthing/throwingdatum) -#define COMSIG_MOVABLE_IMPACT "movable_impact" - #define COMPONENT_MOVABLE_IMPACT_FLIP_HITPUSH (1<<0) //if true, flip if the impact will push what it hits - #define COMPONENT_MOVABLE_IMPACT_NEVERMIND (1<<1) //return true if you destroyed whatever it was you're impacting and there won't be anything for hitby() to run on -///from base of mob/living/hitby(): (mob/living/target, hit_zone) -#define COMSIG_MOVABLE_IMPACT_ZONE "item_impact_zone" -///from the base of mob/living/carbon/human/hitby(): (atom/movable/source, speed) -#define COMSIG_HUMAN_ON_CATCH_THROW "human_on_catch_throw" -///from base of atom/movable/buckle_mob(): (mob, force) -#define COMSIG_MOVABLE_BUCKLE "buckle" -///from base of atom/movable/unbuckle_mob(): (mob, force) -#define COMSIG_MOVABLE_UNBUCKLE "unbuckle" -///from base of atom/movable/throw_at(): (list/args) -#define COMSIG_MOVABLE_PRE_THROW "movable_pre_throw" - #define COMPONENT_CANCEL_THROW (1<<0) -///from base of atom/movable/throw_at(): (datum/thrownthing, spin) -#define COMSIG_MOVABLE_POST_THROW "movable_post_throw" -///from base of atom/movable/onTransitZ(): (old_z, new_z) -#define COMSIG_MOVABLE_Z_CHANGED "movable_ztransit" -///called when the movable is placed in an unaccessible area, used for stationloving: () -#define COMSIG_MOVABLE_SECLUDED_LOCATION "movable_secluded" -///from base of atom/movable/Hear(): (proc args list(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode)) -#define COMSIG_MOVABLE_HEAR "movable_hear" - #define HEARING_MESSAGE 1 - #define HEARING_SPEAKER 2 -// #define HEARING_LANGUAGE 3 - #define HEARING_RAW_MESSAGE 4 - /* #define HEARING_RADIO_FREQ 5 - #define HEARING_SPANS 6 - #define HEARING_MESSAGE_MODE 7 */ -///from /datum/controller/subsystem/motion_tracker/notice() (/datum/weakref/source_atom,/turf/echo_turf_location) -#define COMSIG_MOVABLE_MOTIONTRACKER "move_motiontracker" - -///called when a disposal connected object flushes its contents into the disposal pipe network -#define COMSIG_DISPOSAL_FLUSH "disposal_system_flushing" -///called when a disposal connected object gets a packet from the disposal pipe network -#define COMSIG_DISPOSAL_RECEIVING "disposal_system_receiving" -///called when the movable is added to a disposal holder object for disposal movement: (obj/structure/disposalholder/holder, obj/machinery/disposal/source) -#define COMSIG_MOVABLE_DISPOSING "movable_disposing" - -// /mob signals - -///from base of /mob/Login(): () -#define COMSIG_MOB_LOGIN "mob_login" -///from base of /mob/Logout(): () -#define COMSIG_MOB_LOGOUT "mob_logout" -///from base of mob/death(): (gibbed) -#define COMSIG_MOB_DEATH "mob_death" -///from base of mob/set_stat(): (new_stat) -#define COMSIG_MOB_STATCHANGE "mob_statchange" - -///from base of /obj/item/dice/proc/rollDice(mob/user as mob, var/silent = 0). Has the arguments of 'src, silent, result' -#define COMSIG_MOB_ROLLED_DICE "mob_rolled_dice" //can give a return value if we want it to make the dice roll a specific number! - -///from base of /client/Move(n, direct) : (direction) returns bool, if component handled movement -#define COMSIG_MOB_RELAY_MOVEMENT "mob_relay_movement" -///from base of obj/allowed(mob/M): (/obj) returns bool, if TRUE the mob has id access to the obj -#define COMSIG_MOB_ALLOWED "mob_allowed" -///from base of mob/anti_magic_check(): (mob/user, magic, holy, tinfoil, chargecost, self, protection_sources) -#define COMSIG_MOB_RECEIVE_MAGIC "mob_receive_magic" - #define COMPONENT_BLOCK_MAGIC (1<<0) -///from base of mob/create_mob_hud(): () -#define COMSIG_MOB_HUD_CREATED "mob_hud_created" -///from base of atom/attack_hand(): (mob/user) -#define COMSIG_MOB_ATTACK_HAND "mob_attack_hand" -///from base of /obj/item/attack(): (mob/M, mob/user) -#define COMSIG_MOB_ITEM_ATTACK "mob_item_attack" - #define COMPONENT_ITEM_NO_ATTACK (1<<0) -///from the base of /mob/living/silicon/robot/ClickOn(): (var/atom/A, var/params) -#define COMSIG_ROBOT_ITEM_ATTACK "robot_item_attack" -///from base of /mob/living/proc/apply_damage(): (damage, damagetype, def_zone) -#define COMSIG_MOB_APPLY_DAMGE "mob_apply_damage" -///from base of obj/item/afterattack(): (atom/target, mob/user, proximity_flag, click_parameters) -#define COMSIG_MOB_ITEM_AFTERATTACK "mob_item_afterattack" -///from base of obj/item/attack_qdeleted(): (atom/target, mob/user, proxiumity_flag, click_parameters) -#define COMSIG_MOB_ITEM_ATTACK_QDELETED "mob_item_attack_qdeleted" -///from base of mob/RangedAttack(): (atom/A, params) -#define COMSIG_MOB_ATTACK_RANGED "mob_attack_ranged" -///from base of obj/item/dropped(): (obj/item) -#define COMSIG_MOB_DROPPED_ITEM "mob_dropped_item" -///from base of /mob/throw_item(): (atom/target) -#define COMSIG_MOB_THROW "mob_throw" -///from base of /mob/verb/examinate(): (atom/target) -#define COMSIG_MOB_EXAMINATE "mob_examinate" -///from base of /mob/update_sight(): () -#define COMSIG_MOB_UPDATE_SIGHT "mob_update_sight" -////from /mob/living/say(): () -#define COMSIG_MOB_SAY "mob_say" - #define COMPONENT_UPPERCASE_SPEECH (1<<0) - // used to access COMSIG_MOB_SAY argslist - #define SPEECH_MESSAGE 1 - // #define SPEECH_BUBBLE_TYPE 2 - #define SPEECH_SPANS 3 - /* #define SPEECH_SANITIZE 4 - #define SPEECH_LANGUAGE 5 - #define SPEECH_IGNORE_SPAM 6 - #define SPEECH_FORCED 7 */ - -///from /mob/say_dead(): (mob/speaker, message) -#define COMSIG_MOB_DEADSAY "mob_deadsay" - #define MOB_DEADSAY_SIGNAL_INTERCEPT (1<<0) -///from /mob/living/emote(): () -#define COMSIG_MOB_EMOTE "mob_emote" -///from base of mob/swap_hand(): (obj/item) -#define COMSIG_MOB_SWAP_HANDS "mob_swap_hands" - #define COMPONENT_BLOCK_SWAP (1<<0) -/// From base of /mob/proc/reset_perspective() : () -#define COMSIG_MOB_RESET_PERSPECTIVE "mob_reset_perspective" -/// from base of /client/proc/set_eye() : (atom/old_eye, atom/new_eye) -#define COMSIG_CLIENT_SET_EYE "client_set_eye" - -// /mob/living signals - -///from base of mob/living/resist() (/mob/living) -#define COMSIG_LIVING_RESIST "living_resist" -///from base of mob/living/ignite_mob() (/mob/living) -#define COMSIG_LIVING_IGNITED "living_ignite" -///from base of mob/living/ExtinguishMob() (/mob/living) -#define COMSIG_LIVING_EXTINGUISHED "living_extinguished" -#define COMSIG_LIVING_SHOCK_PREVENTED "living_shock_prevented" -///sent by stuff like stunbatons and tasers: () -#define COMSIG_LIVING_MINOR_SHOCK "living_minor_shock" -///from base of mob/living/revive() (full_heal, admin_revive) -#define COMSIG_LIVING_REVIVE "living_revive" -///from base of /mob/living/regenerate_limbs(): (noheal, excluded_limbs) -#define COMSIG_LIVING_REGENERATE_LIMBS "living_regen_limbs" -///from base of /obj/item/bodypart/proc/attach_limb(): (new_limb, special) allows you to fail limb attachment -#define COMSIG_LIVING_ATTACH_LIMB "living_attach_limb" - #define COMPONENT_NO_ATTACH (1<<0) -///sent from borg recharge stations: (amount, repairs) -#define COMSIG_PROCESS_BORGCHARGER_OCCUPANT "living_charge" -///sent when a mob/login() finishes: (client) -#define COMSIG_MOB_CLIENT_LOGIN "comsig_mob_client_login" -///sent from borg mobs to itself, for tools to catch an upcoming destroy() due to safe decon (rather than detonation) -#define COMSIG_BORG_SAFE_DECONSTRUCT "borg_safe_decon" -///From living/Life(). -#define COMSIG_LIVING_LIFE "living_life" -///From /living/handle_disabilities(). -#define COMSIG_HANDLE_DISABILITIES "handle_disabilities" -///From /living/handle_allergens(). -#define COMSIG_HANDLE_ALLERGENS "handle_allergens" -///From /mob/living/proc/updatehealth(). -#define COMSIG_UPDATE_HEALTH "update_health" - #define COMSIG_UPDATE_HEALTH_GOD_MODE (1<<0) //If this will set health to 100 and stat to conscious. -///From /mob/handle_vision(). -#define COMSIG_LIVING_HANDLE_VISION "living_handle_vision" -///From /mob/handle_regular_hud_updates(). -#define COMSIG_LIVING_HANDLE_HUD "living_handle_hud" - #define COMSIG_COMPONENT_HANDLED_HUD (1<<0) -///From /mob/living/proc/handle_hud_icons_health(). -#define COMSIG_LIVING_HANDLE_HUD_HEALTH_ICON "living_handle_hud_health_icon" - #define COMSIG_COMPONENT_HANDLED_HEALTH_ICON (1<<0) -///From /mob/living/proc/handle_darksight(). -#define COMSIG_LIVING_HANDLE_HUD_DARKSIGHT "living_handle_hud_darksight" - - -// Damage specific signals for /mob/living -///from /mob/living/proc/adjustBrainLoss(amount) and /mob/living/proc/setBrainLoss(amount) -#define COMSIG_TAKING_BRAIN_DAMAGE "taking_brain_damage" -///Return this in response if you don't want brain damage to be dealt via the normal proc. - #define COMSIG_CANCEL_BRAIN_DAMAGE (1<<0) -///from /mob/living/proc/adjustOxyLoss(amount) and /mob/living/proc/setOxyLoss(amount) -#define COMSIG_TAKING_OXY_DAMAGE "taking_oxy_damage" -///Return this in response if you don't want brain damage to be dealt via the normal proc. - #define COMSIG_CANCEL_OXY_DAMAGE (1<<0) -///from /mob/living/proc/adjustToxLoss(amount) and /mob/living/proc/setToxLoss(amount) -#define COMSIG_TAKING_TOX_DAMAGE "taking_tox_damage" -///Return this in response if you don't want tox damage to be dealt via the normal proc. - #define COMSIG_CANCEL_TOX_DAMAGE (1<<0) -///from /mob/living/proc/adjustCloneLoss(amount) and /mob/living/proc/setCloneLoss(amount) -#define COMSIG_TAKING_CLONE_DAMAGE "taking_clone_damage" -///Return this in response if you don't want clone damage to be dealt via the normal proc. - #define COMSIG_CANCEL_CLONE_DAMAGE (1<<0) -///from /mob/living/proc/adjustFireLoss(amount, include_robo) -#define COMSIG_TAKING_FIRE_DAMAGE "taking_fire_damage" -///Return this in response if you don't want fire damage to be dealt via the normal proc. - #define COMSIG_CANCEL_FIRE_DAMAGE (1<<0) -///from /mob/living/proc/adjustBruteLoss(amount, include_robo) and /mob/living/carbon/human/adjustBruteLoss(amount, include_robo) -#define COMSIG_TAKING_BRUTE_DAMAGE "taking_brute_damage" -///Return this in response if you don't want brute damage to be dealt via the normal proc. - #define COMSIG_CANCEL_BRUTE_DAMAGE (1<<0) -///from /mob/living/proc/adjustHalLoss(amount) -#define COMSIG_TAKING_HALO_DAMAGE "taking_halo_damage" -///Return this in response if you don't want halo damage to be dealt via the normal proc. - #define COMSIG_CANCEL_HALO_DAMAGE (1<<0) -///from /mob/living/proc/apply_effect(effect, effecttype, blocked, check_protection) -#define COMSIG_TAKING_APPLY_EFFECT "applying_effect" -///Return this in response if you don't want the effect to be applied - #define COMSIG_CANCEL_EFFECT (1<<0) -///from /mob/living/proc/stun_effect_act(var/stun_amount, var/agony_amount, var/def_zone, var/used_weapon=null, var/electric = FALSE) -#define COMSIG_STUN_EFFECT_ACT "stun_effect_act" - -///Misc signal for checking for godmode. Used by /datum/element/godmode -#define COMSIG_CHECK_FOR_GODMODE "check_for_godmode" -///Returned by /datum/element/godmode if the target is in godmode and whatever we're checking we want to cancel - #define COMSIG_GODMODE_CANCEL (1<<0) - -//ALL OF THESE DO NOT TAKE INTO ACCOUNT WHETHER AMOUNT IS 0 OR LOWER AND ARE SENT REGARDLESS! - -///from base of mob/Stun() (amount, ignore_canstun) -#define COMSIG_LIVING_STATUS_STUN "living_stun" -///from base of mob/Knockdown() (amount, update, ignore) -#define COMSIG_LIVING_STATUS_KNOCKDOWN "living_knockdown" -///from base of mob/Weaken() (amount, ignore_canstun) -#define COMSIG_LIVING_STATUS_WEAKEN "living_weaken" -///from base of mob/Paralyze() (amount, ignore_canstun) -#define COMSIG_LIVING_STATUS_PARALYZE "living_paralyze" -///from base of mob/Immobilize() (amount, update, ignore) -#define COMSIG_LIVING_STATUS_IMMOBILIZE "living_immobilize" -///from base of mob/Unconscious() (amount, update, ignore) -#define COMSIG_LIVING_STATUS_UNCONSCIOUS "living_unconscious" -///from base of mob/Sleeping() (amount, ignore_canstun) -#define COMSIG_LIVING_STATUS_SLEEP "living_sleeping" -///from base of mob/Confuse() (amount, ignore_canstun) -#define COMSIG_LIVING_STATUS_CONFUSE "living_confuse" -///from base of mob/Blind() (amount, ignore_canstun) -#define COMSIG_LIVING_STATUS_BLIND "living_blind" -/// from mob/living/check_stun_immunity(): (check_flags) -#define COMSIG_LIVING_GENERIC_STUN_CHECK "living_check_stun" - #define COMPONENT_NO_STUN (1<<0) //For all of them -///from base of /mob/living/can_track(): (mob/user) -#define COMSIG_LIVING_CAN_TRACK "mob_cantrack" - #define COMPONENT_CANT_TRACK (1<<0) - -///from base of /mob/living/proc/apply_effect(var/effect = 0,var/effecttype = STUN, var/blocked = 0, var/check_protection = 1, rad_protection) -#define COMSIG_LIVING_IRRADIATE_EFFECT "living_irradiate_effect" - ///Return this if you want to block the effect. - #define COMPONENT_BLOCK_IRRADIATION (1<<0) - -// /mob/living/carbon signals - -///from base of mob/living/carbon/soundbang_act(): (list(intensity)) -#define COMSIG_CARBON_SOUNDBANG "carbon_soundbang" -///from /item/organ/proc/Insert() (/obj/item/organ/) -#define COMSIG_CARBON_GAIN_ORGAN "carbon_gain_organ" -///from /item/organ/proc/Remove() (/obj/item/organ/) -#define COMSIG_CARBON_LOSE_ORGAN "carbon_lose_organ" -///from /mob/living/carbon/doUnEquip(obj/item/I, force, newloc, no_move, invdrop, silent) -#define COMSIG_CARBON_EQUIP_HAT "carbon_equip_hat" -///from /mob/living/carbon/doUnEquip(obj/item/I, force, newloc, no_move, invdrop, silent) -#define COMSIG_CARBON_UNEQUIP_HAT "carbon_unequip_hat" -///defined twice, in carbon and human's topics, fired when interacting with a valid embedded_object to pull it out (mob/living/carbon/target, /obj/item, /obj/item/bodypart/L) -#define COMSIG_CARBON_EMBED_RIP "item_embed_start_rip" -///called when removing a given item from a mob, from mob/living/carbon/remove_embedded_object(mob/living/carbon/target, /obj/item) -#define COMSIG_CARBON_EMBED_REMOVAL "item_embed_remove_safe" -///called when being electrocuted, from /mob/living/carbon/electrocute_act(shock_damage, source, siemens_coeff, def_zone, stun) -#define COMSIG_BEING_ELECTROCUTED "being_electrocuted" - #define COMPONENT_CARBON_CANCEL_ELECTROCUTE (1<<0) //If this is set, the carbon will be not be electrocuted. -///called when a carbon slipps, from /mob/living/carbon/slip(var/slipped_on,stun_duration=8) -#define COMSIG_ON_CARBON_SLIP "carbon_slip" - -// /mob/living/silicon signals -///called when a silicon is emp'd. from /mob/living/silicon/emp_act(severity, recursive) -#define COMSIG_SILICON_EMP_ACT "silicon_emp_act" - #define COMPONENT_BLOCK_EMP (1<<0) //If this is set, the EMP will not go through. Used by other EMP acts as well. - -// /mob/living/silicon/robot signals -///called when a robot is emp'd. from /mob/living/silicon/robot/emp_act(severity, recursive) -#define COMSIG_ROBOT_EMP_ACT "robot_emp_act" - -///from base of obj/deconstruct(): (disassembled) -#define COMSIG_OBJ_DECONSTRUCT "obj_deconstruct" -///called in /obj/structure/setAnchored(): (value) -#define COMSIG_OBJ_SETANCHORED "obj_setanchored" -///from base of code/game/machinery -#define COMSIG_OBJ_DEFAULT_UNFASTEN_WRENCH "obj_default_unfasten_wrench" -///from base of /turf/proc/levelupdate(). (intact) true to hide and false to unhide -#define COMSIG_OBJ_HIDE "obj_hide" -///called in /obj/update_icon() -#define COMSIG_OBJ_UPDATE_ICON "obj_update_icon" - -// climbable signals - -///called when a mob is mousedropped onto, or uses a verb to climb an object -#define COMSIG_CLIMBABLE_START_CLIMB "starting_climb_action" -///called when an object is considered unsafe to climb on -#define COMSIG_CLIMBABLE_SHAKE_CLIMBERS "shaking_climbing_mobs" - -// /obj/machinery signals - -///from /obj/machinery/obj_break(damage_flag): (damage_flag) -#define COMSIG_MACHINERY_BROKEN "machinery_broken" -///from base power_change() when power is lost -#define COMSIG_MACHINERY_POWER_LOST "machinery_power_lost" -///from base power_change() when power is restored -#define COMSIG_MACHINERY_POWER_RESTORED "machinery_power_restored" - -// /obj/machinery/door signals - -//from /obj/machinery/door/can_open(): -#define COMSIG_DOOR_CAN_OPEN "attempt_door_open" - /// Return to stop the door opening - #define DOOR_DENY_OPEN (1<<0) -//from /obj/machinery/door/can_close(): -#define COMSIG_DOOR_CAN_CLOSE "attempt_door_close" - /// Return to stop the door closing - #define DOOR_DENY_CLOSE (1<<0) -//from /obj/machinery/door/open(): (forced) -#define COMSIG_DOOR_OPEN "door_open" -//from /obj/machinery/door/close(): (forced) -#define COMSIG_DOOR_CLOSE "door_close" -///from /obj/machinery/door/airlock/set_bolt(): -#define COMSIG_AIRLOCK_SET_BOLT "airlock_set_bolt" -///from /obj/machinery/door/bumpopen(), to the mob who bumped: (door) -#define COMSIG_MOB_BUMPED_DOOR_OPEN "mob_bumped_door_open" - /// Return to stop the door opening on bump. - #define DOOR_STOP_BUMP (1<<0) - -// /obj/item signals - -///from base of obj/item/attack(): (/mob/living/target, /mob/living/user) -#define COMSIG_ITEM_ATTACK "item_attack" -///from base of obj/item/attack_self(): (/mob) -#define COMSIG_ITEM_ATTACK_SELF "item_attack_self" - #define COMPONENT_NO_INTERACT (1<<0) -///from base of obj/item/attack_obj(): (/obj, /mob) -#define COMSIG_ITEM_ATTACK_OBJ "item_attack_obj" - #define COMPONENT_NO_ATTACK_OBJ (1<<0) -///from base of obj/item/pre_attack(): (atom/target, mob/user, params) -#define COMSIG_ITEM_PRE_ATTACK "item_pre_attack" - #define COMPONENT_NO_ATTACK (1<<0) -///from base of obj/item/afterattack(): (atom/target, mob/user, params) -#define COMSIG_ITEM_AFTERATTACK "item_afterattack" -///from base of obj/item/attack_qdeleted(): (atom/target, mob/user, params) -#define COMSIG_ITEM_ATTACK_QDELETED "item_attack_qdeleted" -///from base of obj/item/equipped(): (/mob/equipper, slot) -#define COMSIG_ITEM_EQUIPPED "item_equip" -///from base of obj/item/dropped(): (mob/user) -#define COMSIG_ITEM_DROPPED "item_drop" -/// A mob has just equipped an item. Called on [/mob] from base of [/obj/item/equipped()]: (/obj/item/equipped_item, slot) -#define COMSIG_MOB_EQUIPPED_ITEM "mob_equipped_item" -/// A mob has just unequipped an item. -#define COMSIG_MOB_UNEQUIPPED_ITEM "mob_unequipped_item" -///from base of obj/item/pickup(): (/mob/taker) -#define COMSIG_ITEM_PICKUP "item_pickup" -///from base of obj/item/pickup(): (/obj/item) -#define COMSIG_PICKED_UP_ITEM "piked_up_item" -///from base of mob/living/carbon/attacked_by(): (mob/living/carbon/target, mob/living/user, hit_zone) -#define COMSIG_ITEM_ATTACK_ZONE "item_attack_zone" -///return a truthy value to prevent ensouling, checked in /obj/effect/proc_holder/spell/targeted/lichdom/cast(): (mob/user) -#define COMSIG_ITEM_IMBUE_SOUL "item_imbue_soul" -///called before marking an object for retrieval, checked in /obj/effect/proc_holder/spell/targeted/summonitem/cast() : (mob/user) -#define COMSIG_ITEM_MARK_RETRIEVAL "item_mark_retrieval" - #define COMPONENT_BLOCK_MARK_RETRIEVAL (1<<0) -///from base of obj/item/hit_reaction(): (list/args) -#define COMSIG_ITEM_HIT_REACT "item_hit_react" -///called on item when crossed by something (): (/atom/movable, mob/living/crossed) -#define COMSIG_ITEM_WEARERCROSSED "wearer_crossed" -///called on item when microwaved (): (obj/machinery/microwave/M) -#define COMSIG_ITEM_MICROWAVE_ACT "microwave_act" -///from base of item/sharpener/attackby(): (amount, max) -#define COMSIG_ITEM_SHARPEN_ACT "sharpen_act" - #define COMPONENT_BLOCK_SHARPEN_APPLIED (1<<0) - #define COMPONENT_BLOCK_SHARPEN_BLOCKED (1<<1) - #define COMPONENT_BLOCK_SHARPEN_ALREADY (1<<2) - #define COMPONENT_BLOCK_SHARPEN_MAXED (1<<3) -///from base of [/obj/item/proc/tool_check_callback]: (mob/living/user) -#define COMSIG_TOOL_IN_USE "tool_in_use" -///from base of [/obj/item/proc/tool_start_check]: (mob/living/user) -#define COMSIG_TOOL_START_USE "tool_start_use" -///from [/obj/item/proc/disableEmbedding]: -#define COMSIG_ITEM_DISABLE_EMBED "item_disable_embed" -///from [/obj/effect/mine/proc/triggermine]: -#define COMSIG_MINE_TRIGGERED "minegoboom" - -// /obj/item signals for economy -///called when an item is sold by the exports subsystem -#define COMSIG_ITEM_SOLD "item_sold" -///called when an item's cargo sale value is scanned -#define COMSIG_ITEM_SCAN_PROFIT "item_scan_profit" -///called when a wrapped up structure is opened by hand -#define COMSIG_STRUCTURE_UNWRAPPED "structure_unwrapped" -#define COMSIG_ITEM_UNWRAPPED "item_unwrapped" -///called when a wrapped up item is opened by hand - #define COMSIG_ITEM_SPLIT_VALUE (1<<0) -///called when getting the item's exact ratio for cargo's profit. -#define COMSIG_ITEM_SPLIT_PROFIT "item_split_profits" -///called when getting the item's exact ratio for cargo's profit, without selling the item. -#define COMSIG_ITEM_SPLIT_PROFIT_DRY "item_split_profits_dry" - -// /obj/item/clothing signals - -///from base of obj/item/clothing/shoes/proc/step_action(): () -#define COMSIG_SHOES_STEP_ACTION "shoes_step_action" -///from base of /obj/item/clothing/suit/space/proc/toggle_spacesuit(): (obj/item/clothing/suit/space/suit) -#define COMSIG_SUIT_SPACE_TOGGLE "suit_space_toggle" - -// /obj/item/implant signals -///from base of /obj/item/implant/proc/activate(): () -#define COMSIG_IMPLANT_ACTIVATED "implant_activated" -///from base of /obj/item/implant/proc/implant(): (list/args) -#define COMSIG_IMPLANT_IMPLANTING "implant_implanting" - #define COMPONENT_STOP_IMPLANTING (1<<0) -///called on already installed implants when a new one is being added in /obj/item/implant/proc/implant(): (list/args, obj/item/implant/new_implant) -#define COMSIG_IMPLANT_OTHER "implant_other" - //#define COMPONENT_STOP_IMPLANTING (1<<0) //The name makes sense for both - #define COMPONENT_DELETE_NEW_IMPLANT (1<<1) - #define COMPONENT_DELETE_OLD_IMPLANT (1<<2) -///called on implants being implanted into someone with an uplink implant: (datum/component/uplink) -#define COMSIG_IMPLANT_EXISTING_UPLINK "implant_uplink_exists" - //This uses all return values of COMSIG_IMPLANT_OTHER - -// /obj/item/pda signals - -///called on pda when the user changes the ringtone: (mob/living/user, new_ringtone) -#define COMSIG_PDA_CHANGE_RINGTONE "pda_change_ringtone" - #define COMPONENT_STOP_RINGTONE_CHANGE (1<<0) -#define COMSIG_PDA_CHECK_DETONATE "pda_check_detonate" - #define COMPONENT_PDA_NO_DETONATE (1<<0) - -// /obj/item/radio signals - -///called from base of /obj/item/radio/proc/set_frequency(): (list/args) -#define COMSIG_RADIO_NEW_FREQUENCY "radio_new_frequency" - -// /obj/item/pen signals - -///called after rotation in /obj/item/pen/attack_self(): (rotation, mob/living/carbon/user) -#define COMSIG_PEN_ROTATED "pen_rotated" - -// /obj/item/gun signals - -///called in /obj/item/gun/process_fire (user, target, params, zone_override) -#define COMSIG_MOB_FIRED_GUN "mob_fired_gun" - -// /obj/item/grenade signals - -///called in /obj/item/gun/process_fire (user, target, params, zone_override) -#define COMSIG_GRENADE_PRIME "grenade_prime" -///called in /obj/item/gun/process_fire (user, target, params, zone_override) -#define COMSIG_GRENADE_ARMED "grenade_armed" - -// /obj/projectile signals (sent to the firer) - -///from base of /obj/projectile/proc/on_hit(): (atom/movable/firer, atom/target, Angle) -#define COMSIG_PROJECTILE_SELF_ON_HIT "projectile_self_on_hit" -///from base of /obj/projectile/proc/on_hit(): (atom/movable/firer, atom/target, Angle) -#define COMSIG_PROJECTILE_ON_HIT "projectile_on_hit" -///from base of /obj/projectile/proc/fire(): (obj/projectile, atom/original_target) -#define COMSIG_PROJECTILE_BEFORE_FIRE "projectile_before_fire" -///from the base of /obj/projectile/proc/fire(): () -#define COMSIG_PROJECTILE_FIRE "projectile_fire" -///sent to targets during the process_hit proc of projectiles -#define COMSIG_PROJECTILE_PREHIT "com_proj_prehit" -///sent to targets during the process_hit proc of projectiles -#define COMSIG_PROJECTILE_RANGE_OUT "projectile_range_out" -///sent when trying to force an embed (mainly for projectiles, only used in the embed element) -#define COMSIG_EMBED_TRY_FORCE "item_try_embed" - -///sent to targets during the process_hit proc of projectiles -#define COMSIG_PELLET_CLOUD_INIT "pellet_cloud_init" - -// /obj/mecha signals - -///sent from mecha action buttons to the mecha they're linked to -#define COMSIG_MECHA_ACTION_ACTIVATE "mecha_action_activate" - -// /mob/living/carbon/human signals - -///from mob/living/carbon/human/UnarmedAttack(): (atom/target, proximity) -#define COMSIG_HUMAN_EARLY_UNARMED_ATTACK "human_early_unarmed_attack" -///from mob/living/carbon/human/UnarmedAttack(): (atom/target, proximity) -#define COMSIG_HUMAN_MELEE_UNARMED_ATTACK "human_melee_unarmed_attack" -///from mob/living/carbon/human/UnarmedAttack(): (mob/living/carbon/human/attacker) -#define COMSIG_HUMAN_MELEE_UNARMED_ATTACKBY "human_melee_unarmed_attackby" -///Hit by successful disarm attack (mob/living/carbon/human/attacker,zone_targeted) -#define COMSIG_HUMAN_DISARM_HIT "human_disarm_hit" -///Whenever EquipRanked is called, called after job is set -#define COMSIG_JOB_RECEIVED "job_received" -///When the mob's dna and species have been fully applied -#define COMSIG_HUMAN_DNA_FINALIZED "human_dna_finished" -///from /proc/domutcheck(): () -#define COMSIG_MOB_DNA_MUTATION "mob_dna_mutation" -///from /mob/living/proc/handle_radiation() -#define COMSIG_HANDLE_RADIATION "handle_radiation" - #define COMPONENT_BLOCK_LIVING_RADIATION (1<<0) -///from /mob/living/proc/handle_mutations() -#define COMSIG_HANDLE_MUTATIONS "handle_mutations" - #define COMPONENT_BLOCK_LIVING_MUTATIONS (1<<0) - -// Organ specific signals - -///from /obj/item/organ/external/take_damage(brute, burn, sharp, edge, used_weapon, forbidden_limbs, permutation, projectile) -#define COMSIG_EXTERNAL_ORGAN_PRE_DAMAGE_APPLICATION "external_organ_pre_damage_application" -///Return this in response if you don't want external organ damage to be dealt via the normal proc. - #define COMPONENT_CANCEL_EXTERNAL_ORGAN_DAMAGE (1<<0) -///from /obj/item/organ/external/take_damage(brute, burn, sharp, edge, used_weapon, forbidden_limbs, permutation, projectile) -#define COMSIG_EXTERNAL_ORGAN_POST_DAMAGE_APPLICATION "external_organ_post_damage_application" -///from /obj/item/organ/take_damage(amount, silent) -#define COMSIG_INTERNAL_ORGAN_PRE_DAMAGE_APPLICATION "internal_organ_pre_damage_application" -///Return this in response if you don't want internal organ damage to be dealt via the normal proc. - #define COMPONENT_CANCEL_INTERNAL_ORGAN_DAMAGE (1<<0) -///from /obj/item/organ/take_damage(amount, silent) -#define COMSIG_INTERNAL_ORGAN_POST_DAMAGE_APPLICATION "internal_organ_post_damage_application" -///From /obj/item/organ/external/proc/embed(W, silent) -#define COMSIG_EMBED_OBJECT "embed_object" -///Return this in response if you don't want the embed to go through. - #define COMSIG_CANCEL_EMBED (1<<0) - -// /datum/species signals - -///from datum/species/on_species_gain(): (datum/species/new_species, datum/species/old_species) -#define COMSIG_SPECIES_GAIN "species_gain" -///from datum/species/on_species_loss(): (datum/species/lost_species) -#define COMSIG_SPECIES_LOSS "species_loss" - -// /datum/song signals - -///sent to the instrument when a song starts playing -#define COMSIG_SONG_START "song_start" -///sent to the instrument when a song stops playing -#define COMSIG_SONG_END "song_end" - -/*******Component Specific Signals*******/ -//Janitor - -///(): Returns bitflags of wet values. -#define COMSIG_TURF_IS_WET "check_turf_wet" -///(max_strength, immediate, duration_decrease = INFINITY): Returns bool. -#define COMSIG_TURF_MAKE_DRY "make_turf_try" - -//Creamed - -///called when you wash your face at a sink: (num/strength) -#define COMSIG_COMPONENT_CLEAN_FACE_ACT "clean_face_act" - -//Reagent holder - -///from base of /datum/reagents/proc/handle_reactions(): (list/decl/chemical_reaction) -#define COMSIG_REAGENTS_HOLDER_REACTED "reagents_holder_reacted" - -//Food - -///from base of obj/item/reagent_containers/food/snacks/attack(): (mob/living/eater, mob/feeder) -#define COMSIG_FOOD_EATEN "food_eaten" - -//Drink -#define COMSIG_CONTAINER_DRANK "container_drank" - -//Gibs - -///from base of /obj/effect/decal/cleanable/blood/gibs/streak(): (list/directions, list/diseases) -#define COMSIG_GIBS_STREAK "gibs_streak" - -//Autopsy - -//from base of /obj/item/autopsy_scanner/do_surgery() : (mob/user, mob/target) -#define COMSIG_AUTOPSY_PERFORMED "performed_autopsy" - -//Mood - -///called when you send a mood event from anywhere in the code. -#define COMSIG_ADD_MOOD_EVENT "add_mood" -///Mood event that only RnD members listen for -#define COMSIG_ADD_MOOD_EVENT_RND "RND_add_mood" -///called when you clear a mood event from anywhere in the code. -#define COMSIG_CLEAR_MOOD_EVENT "clear_mood" - -//Ventcrawling - -///called when a ventcrawling mob checks if it can begin ventcrawling : (obj/machinery/atmospherics/unary/vent_entered) -#define COMSIG_MOB_VENTCRAWL_CHECK "ventcrawl_check" -///called when a ventcrawling mob checks if it can enter a vent : (mob/entering_mob) -#define COMSIG_VENT_CRAWLER_CHECK "ventcrawl_check" - #define VENT_CRAWL_BLOCK_ENTRY (1<<0) - -///called when a ventcrawling mob enters a vent : (obj/machinery/atmospherics/unary/vent_entered) -#define COMSIG_MOB_VENTCRAWL_START "ventcrawl_start" -///called when a ventcrawling mob leaves a vent : (obj/machinery/atmospherics/unary/vent_exited) -#define COMSIG_MOB_VENTCRAWL_END "ventcrawl_end" - -///called when a ventcrawling mob enters a vent : (mob/entering_mob) -#define COMSIG_VENT_CRAWLER_ENTERED "ventcrawl_entered_vent" -///called when a ventcrawling mob leaves a vent : (mob/exiting_mob) -#define COMSIG_VENT_CRAWLER_EXITED "ventcrawl_exit_vent" - -//NTnet - -///called on an object by its NTNET connection component on receive. (sending_id(number), sending_netname(text), data(datum/netdata)) -#define COMSIG_COMPONENT_NTNET_RECEIVE "ntnet_receive" - -//Nanites - -///() returns TRUE if nanites are found -#define COMSIG_HAS_NANITES "has_nanites" -///() returns TRUE if nanites have stealth -#define COMSIG_NANITE_IS_STEALTHY "nanite_is_stealthy" -///() deletes the nanite component -#define COMSIG_NANITE_DELETE "nanite_delete" -///(list/nanite_programs) - makes the input list a copy the nanites' program list -#define COMSIG_NANITE_GET_PROGRAMS "nanite_get_programs" -///(amount) Returns nanite amount -#define COMSIG_NANITE_GET_VOLUME "nanite_get_volume" -///(amount) Sets current nanite volume to the given amount -#define COMSIG_NANITE_SET_VOLUME "nanite_set_volume" -///(amount) Adjusts nanite volume by the given amount -#define COMSIG_NANITE_ADJUST_VOLUME "nanite_adjust" -///(amount) Sets maximum nanite volume to the given amount -#define COMSIG_NANITE_SET_MAX_VOLUME "nanite_set_max_volume" -///(amount(0-100)) Sets cloud ID to the given amount -#define COMSIG_NANITE_SET_CLOUD "nanite_set_cloud" -///(method) Modify cloud sync status. Method can be toggle, enable or disable -#define COMSIG_NANITE_SET_CLOUD_SYNC "nanite_set_cloud_sync" -///(amount) Sets safety threshold to the given amount -#define COMSIG_NANITE_SET_SAFETY "nanite_set_safety" -///(amount) Sets regeneration rate to the given amount -#define COMSIG_NANITE_SET_REGEN "nanite_set_regen" -///(code(1-9999)) Called when sending a nanite signal to a mob. -#define COMSIG_NANITE_SIGNAL "nanite_signal" -///(comm_code(1-9999), comm_message) Called when sending a nanite comm signal to a mob. -#define COMSIG_NANITE_COMM_SIGNAL "nanite_comm_signal" -///(mob/user, full_scan) - sends to chat a scan of the nanites to the user, returns TRUE if nanites are detected -#define COMSIG_NANITE_SCAN "nanite_scan" -///(list/data, scan_level) - adds nanite data to the given data list - made for ui_data procs -#define COMSIG_NANITE_UI_DATA "nanite_ui_data" -///(datum/nanite_program/new_program, datum/nanite_program/source_program) Called when adding a program to a nanite component -#define COMSIG_NANITE_ADD_PROGRAM "nanite_add_program" - ///Installation successful - #define COMPONENT_PROGRAM_INSTALLED (1<<0) - ///Installation failed, but there are still nanites - #define COMPONENT_PROGRAM_NOT_INSTALLED (1<<1) -///(datum/component/nanites, full_overwrite, copy_activation) Called to sync the target's nanites to a given nanite component -#define COMSIG_NANITE_SYNC "nanite_sync" - -// /datum/component/storage signals - -///() - returns bool. -#define COMSIG_CONTAINS_STORAGE "is_storage" -///(obj/item/inserting, mob/user, silent, force) - returns bool -#define COMSIG_TRY_STORAGE_INSERT "storage_try_insert" -///(mob/show_to, force) - returns bool. -#define COMSIG_TRY_STORAGE_SHOW "storage_show_to" -///(mob/hide_from) - returns bool -#define COMSIG_TRY_STORAGE_HIDE_FROM "storage_hide_from" -///returns bool -#define COMSIG_TRY_STORAGE_HIDE_ALL "storage_hide_all" -///(newstate) -#define COMSIG_TRY_STORAGE_SET_LOCKSTATE "storage_lock_set_state" -///() - returns bool. MUST CHECK IF STORAGE IS THERE FIRST! -#define COMSIG_IS_STORAGE_LOCKED "storage_get_lockstate" -///(type, atom/destination, amount = INFINITY, check_adjacent, force, mob/user, list/inserted) - returns bool - type can be a list of types. -#define COMSIG_TRY_STORAGE_TAKE_TYPE "storage_take_type" -///(type, amount = INFINITY, force = FALSE). Force will ignore max_items, and amount is normally clamped to max_items. -#define COMSIG_TRY_STORAGE_FILL_TYPE "storage_fill_type" -///(obj, new_loc, force = FALSE) - returns bool -#define COMSIG_TRY_STORAGE_TAKE "storage_take_obj" -///(loc) - returns bool - if loc is null it will dump at parent location. -#define COMSIG_TRY_STORAGE_QUICK_EMPTY "storage_quick_empty" -///(list/list_to_inject_results_into, recursively_search_inside_storages = TRUE) -#define COMSIG_TRY_STORAGE_RETURN_INVENTORY "storage_return_inventory" -///(obj/item/insertion_candidate, mob/user, silent) - returns bool -#define COMSIG_TRY_STORAGE_CAN_INSERT "storage_can_equip" - -// /datum/component/two_handed signals - -///from base of datum/component/two_handed/proc/wield(mob/living/carbon/user): (/mob/user) -#define COMSIG_TWOHANDED_WIELD "twohanded_wield" - #define COMPONENT_TWOHANDED_BLOCK_WIELD (1<<0) -///from base of datum/component/two_handed/proc/unwield(mob/living/carbon/user): (/mob/user) -#define COMSIG_TWOHANDED_UNWIELD "twohanded_unwield" - -// /datum/component/remote_view signals -/// Signal that can be sent from the mob remote viewing, the viewed mob, or object being used to view to forcibly end all related remote viewing components -#define COMSIG_REMOTE_VIEW_CLEAR "remote_view_clear_viewers" - -// /datum/action signals - -///from base of datum/action/proc/Trigger(): (datum/action) -#define COMSIG_ACTION_TRIGGER "action_trigger" - #define COMPONENT_ACTION_BLOCK_TRIGGER (1<<0) -/// From /datum/action/Grant(): (mob/grant_to) -#define COMSIG_ACTION_GRANTED "action_grant" -/// From /datum/action/Remove(): (mob/removed_from) -#define COMSIG_ACTION_REMOVED "action_removed" -/// From /datum/action/Grant(): (datum/action) -#define COMSIG_MOB_GRANTED_ACTION "mob_action_grant" -/// From /datum/action/Remove(): (datum/action) -#define COMSIG_MOB_REMOVED_ACTION "mob_action_removed" -/// From /datum/action/apply_button_overlay() -#define COMSIG_ACTION_OVERLAY_APPLY "action_overlay_applied" - -//Xenobio hotkeys - -///from slime CtrlClickOn(): (/mob) -#define COMSIG_XENO_SLIME_CLICK_CTRL "xeno_slime_click_ctrl" -///from slime AltClickOn(): (/mob) -#define COMSIG_XENO_SLIME_CLICK_ALT "xeno_slime_click_alt" -///from slime ShiftClickOn(): (/mob) -#define COMSIG_XENO_SLIME_CLICK_SHIFT "xeno_slime_click_shift" -///from turf ShiftClickOn(): (/mob) -#define COMSIG_XENO_TURF_CLICK_SHIFT "xeno_turf_click_shift" -///from turf AltClickOn(): (/mob) -#define COMSIG_XENO_TURF_CLICK_CTRL "xeno_turf_click_alt" -///from monkey CtrlClickOn(): (/mob) -#define COMSIG_XENO_MONKEY_CLICK_CTRL "xeno_monkey_click_ctrl" - -///SSalarm signals -#define COMSIG_TRIGGERED_ALARM "ssalarm_triggered" -#define COMSIG_CANCELLED_ALARM "ssalarm_cancelled" - -#define COMSIG_REAGENTS_CRAFTING_PING "reagents_crafting_ping" - -// Lighting: -///from base of [atom/proc/set_light]: (l_range, l_power, l_color, l_on) -#define COMSIG_ATOM_SET_LIGHT "atom_set_light" - /// Blocks [/atom/proc/set_light], [/atom/proc/set_light_power], [/atom/proc/set_light_range], [/atom/proc/set_light_color], [/atom/proc/set_light_on], and [/atom/proc/set_light_flags]. - #define COMPONENT_BLOCK_LIGHT_UPDATE (1<<0) -///Called right before the atom changes the value of light_power to a different one, from base [atom/proc/set_light_power]: (new_power) -#define COMSIG_ATOM_SET_LIGHT_POWER "atom_set_light_power" -///Called right after the atom changes the value of light_power to a different one, from base of [/atom/proc/set_light_power]: (old_power) -#define COMSIG_ATOM_UPDATE_LIGHT_POWER "atom_update_light_power" -///Called right before the atom changes the value of light_range to a different one, from base [atom/proc/set_light_range]: (new_range) -#define COMSIG_ATOM_SET_LIGHT_RANGE "atom_set_light_range" -///Called right after the atom changes the value of light_range to a different one, from base of [/atom/proc/set_light_range]: (old_range) -#define COMSIG_ATOM_UPDATE_LIGHT_RANGE "atom_update_light_range" -///Called right before the atom changes the value of light_color to a different one, from base [atom/proc/set_light_color]: (new_color) -#define COMSIG_ATOM_SET_LIGHT_COLOR "atom_set_light_color" -///Called right after the atom changes the value of light_color to a different one, from base of [/atom/proc/set_light_color]: (old_color) -#define COMSIG_ATOM_UPDATE_LIGHT_COLOR "atom_update_light_color" -///Called right before the atom changes the value of light_on to a different one, from base [atom/proc/set_light_on]: (new_value) -#define COMSIG_ATOM_SET_LIGHT_ON "atom_set_light_on" -///Called right after the atom changes the value of light_on to a different one, from base of [/atom/proc/set_light_on]: (old_value) -#define COMSIG_ATOM_UPDATE_LIGHT_ON "atom_update_light_on" -///Called right before the atom changes the value of light_flags to a different one, from base [atom/proc/set_light_flags]: (new_flags) -#define COMSIG_ATOM_SET_LIGHT_FLAGS "atom_set_light_flags" -///Called right after the atom changes the value of light_flags to a different one, from base of [/atom/proc/set_light_flags]: (old_flags) -#define COMSIG_ATOM_UPDATE_LIGHT_FLAGS "atom_update_light_flags" -///Called right after the atom is flushed into a disposal holder and sent through the disposal network: (/obj/structure/disposalholder) -#define COMSIG_ATOM_DISPOSAL_FLUSHED "atom_disposal_flushed" - -// /datum/element/light_eater -///from base of [/datum/element/light_eater/proc/table_buffet]: (list/light_queue, datum/light_eater) -#define COMSIG_LIGHT_EATER_QUEUE "light_eater_queue" -///from base of [/datum/element/light_eater/proc/devour]: (datum/light_eater) -#define COMSIG_LIGHT_EATER_ACT "light_eater_act" - ///Prevents the default light eater behavior from running in case of immunity or custom behavior - #define COMPONENT_BLOCK_LIGHT_EATER (1<<0) -///from base of [/datum/element/light_eater/proc/devour]: (atom/eaten_light) -#define COMSIG_LIGHT_EATER_DEVOUR "light_eater_devour" - -// Lootpiles -#define COMSIG_LOOT_REWARD "lootpile_reward_drop" - -// conflict checking elements -/// (id) - returns flags - Registered on something by conflict checking elements. -#define COMSIG_CONFLICT_ELEMENT_CHECK "conflict_element_check" - /// A conflict was found - #define ELEMENT_CONFLICT_FOUND (1<<0) -//From reagents touch_x. -#define COMSIG_REAGENTS_TOUCH "reagent_touch" - - -//Moved observer stuff to DCS -#define COMSIG_OBSERVER_MOVED "observer_move" -#define COMSIG_OBSERVER_DESTROYED "observer_destroyed" -#define COMSIG_OBSERVER_SHUTTLE_ADDED "observer_shuttle_added" -#define COMSIG_OBSERVER_SHUTTLE_PRE_MOVE "observer_shuttle_premove" -#define COMSIG_OBSERVER_SHUTTLE_MOVED "observer_shuttle_moved" -#define COMSIG_OBSERVER_TURF_ENTERED "observer_turf_entered" -#define COMSIG_OBSERVER_TURF_EXITED "observer_turf_exited" -#define COMSIG_OBSERVER_Z_MOVED "observer_z_moved" -#define COMSIG_OBSERVER_MOB_EQUIPPED "observer_mob_equipped" -#define COMSIG_OBSERVER_ITEM_EQUIPPED "observer_item_equipped" -#define COMSIG_OBSERVER_MOB_UNEQUIPPED "observer_mob_unequipped" -#define COMSIG_OBSERVER_ITEM_UNEQUIPPED "observer_item_unequipped" -#define COMSIG_OBSERVER_APC "observer_apc" -#define COMSIG_OBSERVER_GLOBALMOVED "observer_global_move" - -// Bellies -///from /obj/belly/HandleBellyReagents() and /obj/belly/update_internal_overlay() -#define COMSIG_BELLY_UPDATE_VORE_FX "update_vore_fx" -///from /obj/belly/process() -#define COMSIG_BELLY_UPDATE_PREY_LOOP "update_prey_loop" -/// COMSIG used to get messages where they need to go -#define COMSIG_VISIBLE_MESSAGE "visible_message" - -// Gargoyle Component -///from /mob/living/carbon/human/proc/gargoyle_transformation() -#define COMSIG_GARGOYLE_TRANSFORMATION "gargoyle_transformation" -///from /mob/living/carbon/human/proc/gargoyle_pause() -#define COMSIG_GARGOYLE_PAUSE "gargoyle_pause" -///from /mob/living/carbon/human/proc/gargoyle_checkenergy() -#define COMSIG_GARGOYLE_CHECK_ENERGY "gargoyle_check_energy" - -// Species Components -///from /datum/species/proc/handle_species_components() -#define COMSIG_XENOCHIMERA_COMPONENT "xenochimera_component" -#define COMSIG_SHADEKIN_COMPONENT "shadekin_component" - -// Hose Connector Component -#define COMSIG_HOSE_FORCEPUMP "hose_force_pump" - - -// Spontaneous vore stuff. -///from /mob/living/stumble_into(mob/living/M) -#define COMSIG_LIVING_STUMBLED_INTO "living_stumbled_into" - ///Something has special handling. Don't continue. - #define CANCEL_STUMBLED_INTO (1<<0) -///from /mob/living/handle_fall(var/turf/landing) args: landing, drop_mob) -#define COMSIG_LIVING_FALLING_DOWN "living_falling_down" - //Special handling. Cancel the fall chain. - #define COMSIG_CANCEL_FALL (1<<0) -///from /mob/living/hitby(atom/movable/source, var/speed = THROWFORCE_SPEED_DIVISOR) -#define COMSIG_LIVING_HIT_BY_THROWN_ENTITY "hit_by_thrown_entity" - //Special handling. Cancel the hitby proc. - #define COMSIG_CANCEL_HITBY (1<<0) - -//Unittest data update -#ifdef UNIT_TESTS -#define COMSIG_UNITTEST_DATA "unittest_send_data" -#endif diff --git a/code/__defines/dcs/signals/mapping.dm b/code/__defines/dcs/signals/mapping.dm new file mode 100644 index 0000000000..d80d603658 --- /dev/null +++ b/code/__defines/dcs/signals/mapping.dm @@ -0,0 +1,2 @@ +// Sent when the max plane offset changes : (old_max_offset, new_max_offset) +#define COMSIG_PLANE_OFFSET_INCREASE "plane_offset_increase" diff --git a/code/__defines/dcs/signals/signals_action.dm b/code/__defines/dcs/signals/signals_action.dm new file mode 100644 index 0000000000..514a88b2be --- /dev/null +++ b/code/__defines/dcs/signals/signals_action.dm @@ -0,0 +1,59 @@ +// Action signals + +///from base of datum/action/proc/Trigger(): (datum/action) +#define COMSIG_ACTION_TRIGGER "action_trigger" + // Return to block the trigger from occurring + #define COMPONENT_ACTION_BLOCK_TRIGGER (1<<0) +/// From /datum/action/Grant(): (mob/grant_to) +#define COMSIG_ACTION_GRANTED "action_grant" +/// From /datum/action/Grant(): (datum/action) +#define COMSIG_MOB_GRANTED_ACTION "mob_action_grant" +/// From /datum/action/Remove(): (mob/removed_from) +#define COMSIG_ACTION_REMOVED "action_removed" +/// From /datum/action/Remove(): (datum/action) +#define COMSIG_MOB_REMOVED_ACTION "mob_action_removed" +/// From /datum/action/apply_button_overlay() +#define COMSIG_ACTION_OVERLAY_APPLY "action_overlay_applied" + +// Cooldown action signals + +/// From base of /datum/action/cooldown/proc/PreActivate(), sent to the action owner: (datum/action/cooldown/activated) +#define COMSIG_MOB_ABILITY_STARTED "mob_ability_base_started" + /// Return to block the ability from starting / activating + #define COMPONENT_BLOCK_ABILITY_START (1<<0) +/// From base of /datum/action/cooldown/proc/PreActivate(), sent to the action owner: (datum/action/cooldown/finished) +#define COMSIG_MOB_ABILITY_FINISHED "mob_ability_base_finished" + +/// From base of /datum/action/cooldown/proc/set_statpanel_format(): (list/stat_panel_data) +#define COMSIG_ACTION_SET_STATPANEL "ability_set_statpanel" + +// Specific cooldown action signals + +/// From base of /datum/action/cooldown/mob_cooldown/blood_warp/proc/blood_warp(): () +#define COMSIG_BLOOD_WARP "mob_ability_blood_warp" +/// From base of /datum/action/cooldown/mob_cooldown/charge/proc/do_charge(): () +#define COMSIG_STARTED_CHARGE "mob_ability_charge_started" +/// From base of /datum/action/cooldown/mob_cooldown/charge/proc/do_charge(): () +#define COMSIG_FINISHED_CHARGE "mob_ability_charge_finished" +/// From base of /datum/action/cooldown/mob_cooldown/lava_swoop/proc/swoop_attack(): () +#define COMSIG_SWOOP_INVULNERABILITY_STARTED "mob_swoop_invulnerability_started" +/// From base of /datum/action/cooldown/mob_cooldown/lava_swoop/proc/swoop_attack(): () +#define COMSIG_LAVA_ARENA_FAILED "mob_lava_arena_failed" + +/// From /datum/action/vehicle/sealed/mecha/mech_toggle_safeties/proc/update_action_icon(): () +#define COMSIG_MECH_SAFETIES_TOGGLE "mech_safeties_toggle" + +/// From /datum/action/vehicle/sealed/mecha//mob_exit(): () +#define COMSIG_MECHA_MOB_EXIT "mecha_mob_exit" + +/// From /datum/action/cooldown/mob_cooldown/assume_form/proc/assume_appearances(), sent to the action owner: (atom/movable/target) +#define COMSIG_ACTION_DISGUISED_APPEARANCE "mob_ability_disguise_appearance" + +/// From /datum/action/cooldown/manual_heart/Activate(): () +#define COMSIG_HEART_MANUAL_PULSE "heart_manual_pulse" + +/// From /datum/action/cooldown/mob_cooldown/capture_photo/Activate(): +#define COMSIG_ACTION_PHOTO_CAPTURED "action_photo_captured" + +/// From /datum/action/vehicle/ridden/wheelchair/bell/Trigger(): +#define COMSIG_WHEELCHAIR_BELL_RANG "wheelchair_bell_rang" diff --git a/code/__defines/dcs/signals/signals_admin.dm b/code/__defines/dcs/signals/signals_admin.dm new file mode 100644 index 0000000000..dafd135ead --- /dev/null +++ b/code/__defines/dcs/signals/signals_admin.dm @@ -0,0 +1,10 @@ +/// Admin helps +/// From /datum/admin_help/RemoveActive(). +/// Fired when an adminhelp is made inactive either due to closing or resolving. +#define COMSIG_ADMIN_HELP_MADE_INACTIVE "admin_help_made_inactive" + +/// Called on the /datum/admin_help when the player replies. From /client/proc/cmd_admin_pm(). +#define COMSIG_ADMIN_HELP_REPLIED "admin_help_replied" + +/// Called on a client when a player receives an adminhelp. From /client/proc/receive_ahelp(message) +#define COMSIG_ADMIN_HELP_RECEIVED "admin_help_received" diff --git a/code/__defines/dcs/signals/signals_adventure.dm b/code/__defines/dcs/signals/signals_adventure.dm new file mode 100644 index 0000000000..7aa87c86c5 --- /dev/null +++ b/code/__defines/dcs/signals/signals_adventure.dm @@ -0,0 +1,23 @@ +/// Exoprobe adventure finished: (result) result is ADVENTURE_RESULT_??? values +#define COMSIG_ADVENTURE_FINISHED "adventure_done" + +/// Sent on initial adventure qualities generation from /datum/adventure/proc/initialize_qualities(): (list/quality_list) +#define COMSIG_ADVENTURE_QUALITY_INIT "adventure_quality_init" + +/// Sent on adventure node delay start: (delay_time, delay_message) +#define COMSIG_ADVENTURE_DELAY_START "adventure_delay_start" +/// Sent on adventure delay finish: () +#define COMSIG_ADVENTURE_DELAY_END "adventure_delay_end" + +/// Exoprobe status changed : () +#define COMSIG_EXODRONE_STATUS_CHANGED "exodrone_status_changed" + +// Scanner controller signals +/// Sent on begingging of new scan : (datum/exoscan/new_scan) +#define COMSIG_EXOSCAN_STARTED "exoscan_started" +/// Sent on successful finish of exoscan: (datum/exoscan/finished_scan) +#define COMSIG_EXOSCAN_FINISHED "exoscan_finished" + +// Exosca signals +/// Sent on exoscan failure/manual interruption: () +#define COMSIG_EXOSCAN_INTERRUPTED "exoscan_interrupted" diff --git a/code/__defines/dcs/signals/signals_ai_controller.dm b/code/__defines/dcs/signals/signals_ai_controller.dm new file mode 100644 index 0000000000..1888612d2c --- /dev/null +++ b/code/__defines/dcs/signals/signals_ai_controller.dm @@ -0,0 +1,9 @@ + +///sent from ai controllers when they possess a pawn: (datum/ai_controller/source_controller) +#define COMSIG_AI_CONTROLLER_POSSESSED_PAWN "ai_controller_possessed_pawn" +///sent from ai controllers when they stop possessing a pawn: (datum/ai_controller/source_controller) +#define COMSIG_AI_CONTROLLER_UNPOSSESSED_PAWN "ai_controller_unpossessed_pawn" +///sent from ai controllers when they pick behaviors: (list/datum/ai_behavior/old_behaviors, list/datum/ai_behavior/new_behaviors) +#define COMSIG_AI_CONTROLLER_PICKED_BEHAVIORS "ai_controller_picked_behaviors" +///sent from ai controllers when a behavior is inserted into the queue: (list/new_arguments) +#define AI_CONTROLLER_BEHAVIOR_QUEUED(type) "ai_controller_behavior_queued_[type]" diff --git a/code/__defines/dcs/signals/signals_arcade.dm b/code/__defines/dcs/signals/signals_arcade.dm new file mode 100644 index 0000000000..cf18d404da --- /dev/null +++ b/code/__defines/dcs/signals/signals_arcade.dm @@ -0,0 +1,2 @@ +///from /obj/machinery/computer/arcade/prizevend(mob/user, prizes = 1) +#define COMSIG_ARCADE_PRIZEVEND "arcade_prizevend" diff --git a/code/__defines/dcs/signals/signals_area.dm b/code/__defines/dcs/signals/signals_area.dm new file mode 100644 index 0000000000..5636a4c35a --- /dev/null +++ b/code/__defines/dcs/signals/signals_area.dm @@ -0,0 +1,46 @@ +// Area signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +///from base of area/proc/power_change(): () +#define COMSIG_AREA_POWER_CHANGE "area_power_change" +///from base of area/Entered(): (atom/movable/arrived, area/old_area) +#define COMSIG_AREA_ENTERED "area_entered" +///from base of area/Exited(): (atom/movable/gone, direction) +#define COMSIG_AREA_EXITED "area_exited" +///from base of area/Entered(): (area/new_area). Sent to "area-sensitive" movables, see __DEFINES/traits.dm for info. +#define COMSIG_ENTER_AREA "enter_area" +///from base of area/Exited(): (area). Sent to "area-sensitive" movables, see __DEFINES/traits.dm for info. +#define COMSIG_EXIT_AREA "exit_area" + +// Alarm listener datum signals +///Sent when an alarm is fired and an alarm listener has tracked onto it (alarm, area/source_area) +#define COMSIG_ALARM_LISTENER_TRIGGERED "alarm_listener_triggered" +///Send when an alarm source is cleared and an alarm listener has tracked onto it (alarm_type, area/source_area) +#define COMSIG_ALARM_LISTENER_CLEARED "alarm_listener_clear" + +/// Called when an alarm handler fires an alarm +#define COMSIG_ALARM_TRIGGERED "alarm_triggered" +/// Called when an alarm handler clears an alarm +#define COMSIG_ALARM_CLEARED "alarm_cleared" + +/// Called when the air alarm mode is updated +#define COMSIG_AIRALARM_UPDATE_MODE "airalarm_update_mode" + +// Area fire signals +/// Sent when an area's fire var changes: (fire_value) +#define COMSIG_AREA_FIRE_CHANGED "area_fire_set" + +/// Called when some weather starts in this area +#define COMSIG_WEATHER_BEGAN_IN_AREA(event_type) "weather_began_in_area_[event_type]" +/// Called when some weather ends in this area +#define COMSIG_WEATHER_ENDED_IN_AREA(event_type) "weather_ended_in_area_[event_type]" + +///From base of area/update_beauty() +#define COMSIG_AREA_BEAUTY_UPDATED "area_beauty_updated" + +/// From base of turf/change_area(area/old_area) +#define COMSIG_AREA_TURF_ADDED "area_turf_added" + +/// From base of turf/change_area(area/new_area) +#define COMSIG_AREA_TURF_REMOVED "area_turf_removed" diff --git a/code/__defines/dcs/signals/signals_assembly.dm b/code/__defines/dcs/signals/signals_assembly.dm new file mode 100644 index 0000000000..a1330c0965 --- /dev/null +++ b/code/__defines/dcs/signals/signals_assembly.dm @@ -0,0 +1,2 @@ +//called when an igniter activates +#define COMSIG_IGNITER_ACTIVATE "igniter_activate" diff --git a/code/__defines/dcs/signals/signals_atom/signals_atom_attack.dm b/code/__defines/dcs/signals/signals_atom/signals_atom_attack.dm new file mode 100644 index 0000000000..0219f795c3 --- /dev/null +++ b/code/__defines/dcs/signals/signals_atom/signals_atom_attack.dm @@ -0,0 +1,81 @@ +// Atom attack signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +///from base of atom/attackby(): (/obj/item, /mob/living, list/modifiers) +#define COMSIG_ATOM_ATTACKBY "atom_attackby" +/// From base of [atom/proc/attacby_secondary()]: (/obj/item/weapon, /mob/user, list/modifiers) +#define COMSIG_ATOM_ATTACKBY_SECONDARY "atom_attackby_secondary" +/// From [/item/attack()], sent by an atom which was just attacked by an item: (/obj/item/weapon, /mob/user, list/modifiers) +#define COMSIG_ATOM_AFTER_ATTACKEDBY "atom_after_attackby" +/// From base of [/atom/proc/attack_hand_secondary]: (mob/user, list/modifiers) - Called when the atom receives a secondary unarmed attack. +#define COMSIG_ATOM_ATTACK_HAND_SECONDARY "atom_attack_hand_secondary" +///Return this in response if you don't want afterattack to be called + #define COMPONENT_NO_AFTERATTACK (1<<0) +///from base of atom/attack_hulk(): (/mob/living/carbon/human) +#define COMSIG_ATOM_HULK_ATTACK "hulk_attack" +///from base of atom/animal_attack(): (/mob/user) +#define COMSIG_ATOM_ATTACK_ANIMAL "attack_animal" +//from base of atom/attack_basic_mob(): (/mob/user) +#define COMSIG_ATOM_ATTACK_BASIC_MOB "attack_basic_mob" + #define COMSIG_BASIC_ATTACK_CANCEL_CHAIN (1<<0) +/// from /atom/proc/atom_break: (damage_flag) +#define COMSIG_ATOM_BREAK "atom_break" +/// from base of [/atom/proc/atom_fix]: () +#define COMSIG_ATOM_FIX "atom_fix" +/// from base of [/atom/proc/atom_destruction]: (damage_flag) +#define COMSIG_ATOM_DESTRUCTION "atom_destruction" +/// from base of [/atom/proc/extinguish] +#define COMSIG_ATOM_EXTINGUISH "atom_extinguish" +///from base of [/atom/proc/update_integrity]: (old_value, new_value) +#define COMSIG_ATOM_INTEGRITY_CHANGED "atom_integrity_changed" +///from base of [/atom/proc/take_damage]: (damage_amount, damage_type, damage_flag, sound_effect, attack_dir, aurmor_penetration) +#define COMSIG_ATOM_TAKE_DAMAGE "atom_take_damage" + /// Return bitflags for the above signal which prevents the atom taking any damage. + #define COMPONENT_NO_TAKE_DAMAGE (1<<0) +/* Attack signals. They should share the returned flags, to standardize the attack chain. */ +/// tool_act -> pre_attack -> target.attackby (item.attack) -> afterattack + ///Ends the attack chain. If sent early might cause posterior attacks not to happen. + #define COMPONENT_CANCEL_ATTACK_CHAIN (1<<0) + ///Skips the specific attack step, continuing for the next one to happen. + #define COMPONENT_SKIP_ATTACK (1<<1) +///from base of atom/attack_ghost(): (mob/dead/observer/ghost) +#define COMSIG_ATOM_ATTACK_GHOST "atom_attack_ghost" +///from base of atom/attack_hand(): (mob/user, list/modifiers) +#define COMSIG_ATOM_ATTACK_HAND "atom_attack_hand" +///from base of atom/attack_paw(): (mob/user) +#define COMSIG_ATOM_ATTACK_PAW "atom_attack_paw" +///from base of atom/mech_melee_attack(): (obj/vehicle/sealed/mecha/mecha_attacker, mob/living/user) +#define COMSIG_ATOM_ATTACK_MECH "atom_attack_mech" +/// from base of atom/attack_robot(): (mob/user) +#define COMSIG_ATOM_ATTACK_ROBOT "atom_attack_robot" +/// from base of atom/attack_robot_secondary(): (mob/user) +#define COMSIG_ATOM_ATTACK_ROBOT_SECONDARY "atom_attack_robot_secondary" +/// from base of atom/attack_ai(): (mob/user, params) +#define COMSIG_ATOM_ATTACK_AI "atom_attack_ai" +///from relay_attackers element: (atom/attacker, attack_flags) +#define COMSIG_ATOM_WAS_ATTACKED "atom_was_attacked" +///Called before a atom gets something tilted on them. If [COMPONENT_IMMUNE_TO_TILT_AND_CRUSH] is returned in a signal, the atom will be unaffected: (atom/target, atom/source) +#define COMSIG_PRE_TILT_AND_CRUSH "atom_pre_tilt_and_crush" + #define COMPONENT_IMMUNE_TO_TILT_AND_CRUSH (1<<0) +///Called when a atom gets something tilted on them: (atom/target, atom/source) +#define COMSIG_POST_TILT_AND_CRUSH "atom_post_tilt_and_crush" +/// Called when an atom is splashed with something: (atom/source) +#define COMSIG_ATOM_SPLASHED "atom_splashed" + + ///The damage type of the weapon projectile is non-lethal stamina + #define ATTACKER_STAMINA_ATTACK (1<<0) + ///the attacker is shoving the source + #define ATTACKER_SHOVING (1<<1) + /// The attack is a damaging-type attack + #define ATTACKER_DAMAGING_ATTACK (1<<2) + +/// Called on the atom being hit, from /datum/component/anti_magic/on_attack() : (obj/item/weapon, mob/user, antimagic_flags) +#define COMSIG_ATOM_HOLYATTACK "atom_holyattacked" + +/// Called from [/mob/living/proc/send_item_attack_message()]: (obj/item/weapon, /mob/living/victim, mob/living/attacker) +#define COMSIG_SEND_ITEM_ATTACK_MESSAGE_OBJECT "send_item_attack_message_object" +/// Called from [/mob/living/proc/send_item_attack_message()]: (mob/living/victim, obj/item/weapon, mob/living/user) +#define COMSIG_SEND_ITEM_ATTACK_MESSAGE_CARBON "send_item_attack_message_carbon" + /// Return value if the hitby messages are changed. + #define SIGNAL_MESSAGE_MODIFIED (1<<0) diff --git a/code/__defines/dcs/signals/signals_atom/signals_atom_explosion.dm b/code/__defines/dcs/signals/signals_atom/signals_atom_explosion.dm new file mode 100644 index 0000000000..7d7ba86139 --- /dev/null +++ b/code/__defines/dcs/signals/signals_atom/signals_atom_explosion.dm @@ -0,0 +1,15 @@ +// Atom explosion signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +///from [/datum/controller/subsystem/explosions/proc/explode]: (/list(/atom, devastation_range, heavy_impact_range, light_impact_range, flame_range, flash_range, adminlog, ignorecap, silent, smoke, explosion_cause)) +#define COMSIG_ATOM_EXPLODE "atom_explode" +///from [/datum/controller/subsystem/explosions/proc/explode]: (/list(/atom, devastation_range, heavy_impact_range, light_impact_range, flame_range, flash_range, adminlog, ignorecap, silent, smoke, explosion_cause)) +#define COMSIG_ATOM_INTERNAL_EXPLOSION "atom_internal_explosion" +///from [/datum/controller/subsystem/explosions/proc/explode]: (/list(/atom, devastation_range, heavy_impact_range, light_impact_range, flame_range, flash_range, adminlog, ignorecap, silent, smoke, explosion_cause)) +#define COMSIG_AREA_INTERNAL_EXPLOSION "area_internal_explosion" + /// When returned on a signal hooked to [COMSIG_ATOM_EXPLODE], [COMSIG_ATOM_INTERNAL_EXPLOSION], or [COMSIG_AREA_INTERNAL_EXPLOSION] it prevents the explosion from being propagated further. + #define COMSIG_CANCEL_EXPLOSION (1<<0) + +/// from [/atom/movable/proc/set_explosion_resistance] : (old_block, new_block) +#define COMSIG_MOVABLE_EXPLOSION_BLOCK_CHANGED "explosion_block_changed" diff --git a/code/__defines/dcs/signals/signals_atom/signals_atom_lighting.dm b/code/__defines/dcs/signals/signals_atom/signals_atom_lighting.dm new file mode 100644 index 0000000000..391ed0112a --- /dev/null +++ b/code/__defines/dcs/signals/signals_atom/signals_atom_lighting.dm @@ -0,0 +1,44 @@ +// Atom lighting signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +// Lighting: +///from base of [atom/proc/set_light]: (l_range, l_power, l_color, l_on) +#define COMSIG_ATOM_SET_LIGHT "atom_set_light" + /// Blocks [/atom/proc/set_light], [/atom/proc/set_light_power], [/atom/proc/set_light_range], [/atom/proc/set_light_color], [/atom/proc/set_light_on], and [/atom/proc/set_light_flags]. + #define COMPONENT_BLOCK_LIGHT_UPDATE (1<<0) +///Called right before the atom changes the value of light_power to a different one, from base [atom/proc/set_light_power]: (new_power) +#define COMSIG_ATOM_SET_LIGHT_POWER "atom_set_light_power" +///Called right after the atom changes the value of light_power to a different one, from base of [/atom/proc/set_light_power]: (old_power) +#define COMSIG_ATOM_UPDATE_LIGHT_POWER "atom_update_light_power" +///Called right before the atom changes the value of light_range to a different one, from base [atom/proc/set_light_range]: (new_range) +#define COMSIG_ATOM_SET_LIGHT_RANGE "atom_set_light_range" +///Called right after the atom changes the value of light_range to a different one, from base of [/atom/proc/set_light_range]: (old_range) +#define COMSIG_ATOM_UPDATE_LIGHT_RANGE "atom_update_light_range" +///Called right before the atom changes the value of light_color to a different one, from base [atom/proc/set_light_color]: (new_color) +#define COMSIG_ATOM_SET_LIGHT_COLOR "atom_set_light_color" +///Called right after the atom changes the value of light_color to a different one, from base of [/atom/proc/set_light_color]: (old_color) +#define COMSIG_ATOM_UPDATE_LIGHT_COLOR "atom_update_light_color" +///Called right before the atom changes the value of light_angle to a different one, from base [atom/proc/set_light_angle]: (new_angle) +#define COMSIG_ATOM_SET_LIGHT_ANGLE "atom_set_light_angle" +///Called right after the atom changes the value of light_angle to a different one, from base of [/atom/proc/set_light_angle]: (old_angle) +#define COMSIG_ATOM_UPDATE_LIGHT_ANGLE "atom_update_light_angle" +///Called right before the atom changes the value of light_dir to a different one, from base [atom/proc/set_light_dir]: (new_dir) +#define COMSIG_ATOM_SET_LIGHT_DIR "atom_set_light_dir" +///Called right after the atom changes the value of light_dir to a different one, from base of [/atom/proc/set_light_dir]: (old_dir) +#define COMSIG_ATOM_UPDATE_LIGHT_DIR "atom_update_light_dir" +///Called right before the atom changes the value of light_on to a different one, from base [atom/proc/set_light_on]: (new_value) +#define COMSIG_ATOM_SET_LIGHT_ON "atom_set_light_on" +///Called right after the atom changes the value of light_on to a different one, from base of [/atom/proc/set_light_on]: (old_value) +#define COMSIG_ATOM_UPDATE_LIGHT_ON "atom_update_light_on" +///Called right before the atom changes the value of light_height to a different one, from base [atom/proc/set_light_height]: (new_value) +#define COMSIG_ATOM_SET_LIGHT_HEIGHT "atom_set_light_height" +///Called right after the atom changes the value of light_height to a different one, from base of [/atom/proc/set_light_height]: (old_value) +#define COMSIG_ATOM_UPDATE_LIGHT_HEIGHT "atom_update_light_height" +///Called right before the atom changes the value of light_flags to a different one, from base [atom/proc/set_light_flags]: (new_flags) +#define COMSIG_ATOM_SET_LIGHT_FLAGS "atom_set_light_flags" +///Called right after the atom changes the value of light_flags to a different one, from base of [/atom/proc/set_light_flags]: (old_flags) +#define COMSIG_ATOM_UPDATE_LIGHT_FLAGS "atom_update_light_flags" + +///Called when an atom has a light template applied to it. Frombase of [/datum/light_template/proc/mirror_onto]: () +#define COMSIG_ATOM_LIGHT_TEMPLATE_MIRRORED "atom_light_template_mirrored" diff --git a/code/__defines/dcs/signals/signals_atom/signals_atom_main.dm b/code/__defines/dcs/signals/signals_atom/signals_atom_main.dm index df57a057ee..81632d25f3 100644 --- a/code/__defines/dcs/signals/signals_atom/signals_atom_main.dm +++ b/code/__defines/dcs/signals/signals_atom/signals_atom_main.dm @@ -2,14 +2,191 @@ // When the signal is called: (signal arguments) // All signals send the source datum of the signal as the first argument +// /atom signals +//from SSatoms InitAtom - Only if the atom was not deleted or failed initialization +#define COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZE "atom_init_success" +//from SSatoms InitAtom - Only if the atom was not deleted or failed initialization and has a loc +#define COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON "atom_init_success_on" +///from base of atom/examine(): (/mob, list/examine_text) +#define COMSIG_ATOM_EXAMINE "atom_examine" +///from base of atom/examine_tags(): (/mob, list/examine_tags) +#define COMSIG_ATOM_EXAMINE_TAGS "atom_examine_tags" +///from base of atom/get_examine_name(): (/mob, list/overrides) +#define COMSIG_ATOM_GET_EXAMINE_NAME "atom_examine_name" + //Positions for overrides list + #define EXAMINE_POSITION_ARTICLE 1 + #define EXAMINE_POSITION_BEFORE 2 + #define EXAMINE_POSITION_NAME 3 +///from base of atom/examine(): (/mob, list/examine_text, can_see_inside) +#define COMSIG_ATOM_REAGENT_EXAMINE "atom_reagent_examine" + /// Stop the generic reagent examine text + #define STOP_GENERIC_REAGENT_EXAMINE (1<<0) + /// Allows the generic reaegent examine text regardless of whether the user can scan reagents. + #define ALLOW_GENERIC_REAGENT_EXAMINE (1<<1) +///from base of atom/examine_more(): (/mob, examine_list) +#define COMSIG_ATOM_EXAMINE_MORE "atom_examine_more" +/// from atom/examine_more(): (/atom/examining, examine_list) +#define COMSIG_MOB_EXAMINING_MORE "mob_examining_more" +///from base of [/atom/proc/update_appearance]: (updates) +#define COMSIG_ATOM_UPDATE_APPEARANCE "atom_update_appearance" + /// If returned from [COMSIG_ATOM_UPDATE_APPEARANCE] it prevents the atom from updating its name. + #define COMSIG_ATOM_NO_UPDATE_NAME UPDATE_NAME + /// If returned from [COMSIG_ATOM_UPDATE_APPEARANCE] it prevents the atom from updating its desc. + #define COMSIG_ATOM_NO_UPDATE_DESC UPDATE_DESC + /// If returned from [COMSIG_ATOM_UPDATE_APPEARANCE] it prevents the atom from updating its icon. + #define COMSIG_ATOM_NO_UPDATE_ICON UPDATE_ICON +///from base of [/atom/proc/update_name]: (updates) +#define COMSIG_ATOM_UPDATE_NAME "atom_update_name" +///from base of [/atom/proc/update_desc]: (updates) +#define COMSIG_ATOM_UPDATE_DESC "atom_update_desc" +///from base of [/atom/update_icon]: () +#define COMSIG_ATOM_UPDATE_ICON "atom_update_icon" + /// If returned from [COMSIG_ATOM_UPDATE_ICON] it prevents the atom from updating its icon state. + #define COMSIG_ATOM_NO_UPDATE_ICON_STATE UPDATE_ICON_STATE + /// If returned from [COMSIG_ATOM_UPDATE_ICON] it prevents the atom from updating its overlays. + #define COMSIG_ATOM_NO_UPDATE_OVERLAYS UPDATE_OVERLAYS +///from base of [atom/update_inhand_icon]: (/mob) +#define COMSIG_ATOM_UPDATE_INHAND_ICON "atom_update_inhand_icon" +///from base of [atom/update_icon_state]: () +#define COMSIG_ATOM_UPDATE_ICON_STATE "atom_update_icon_state" +///from base of [/atom/update_overlays]: (list/new_overlays) +#define COMSIG_ATOM_UPDATE_OVERLAYS "atom_update_overlays" +///from base of [/atom/update_icon]: (signalOut, did_anything) +#define COMSIG_ATOM_UPDATED_ICON "atom_updated_icon" +///from base of [/atom/proc/smooth_icon]: () +#define COMSIG_ATOM_SMOOTHED_ICON "atom_smoothed_icon" +///from [/datum/controller/subsystem/processing/dcs/proc/rotate_decals]: (list/datum/element/decal/rotating) +#define COMSIG_ATOM_DECALS_ROTATING "atom_decals_rotating" +///from base of atom/Entered(): (atom/movable/arrived, atom/old_loc, list/atom/old_locs) +#define COMSIG_ATOM_ENTERED "atom_entered" +///from base of atom/movable/Moved(): (atom/movable/arrived, atom/old_loc, list/atom/old_locs) +#define COMSIG_ATOM_ABSTRACT_ENTERED "atom_abstract_entered" +/// Sent from the atom that just Entered src. From base of atom/Entered(): (/atom/destination, atom/old_loc, list/atom/old_locs) +#define COMSIG_ATOM_ENTERING "atom_entering" +///from base of atom/Exit(): (/atom/movable/leaving, direction) +#define COMSIG_ATOM_EXIT "atom_exit" + #define COMPONENT_ATOM_BLOCK_EXIT (1<<0) +///from base of atom/Exited(): (atom/movable/gone, direction) +#define COMSIG_ATOM_EXITED "atom_exited" +///from base of atom/movable/Moved(): (atom/movable/gone, direction) +#define COMSIG_ATOM_ABSTRACT_EXITED "atom_abstract_exited" +///from base of atom/Exited(): (atom/exited, direction) +#define COMSIG_ATOM_EXITING "atom_exiting" +///from base of atom/Bumped(): (/atom/movable) (the one that gets bumped) +#define COMSIG_ATOM_BUMPED "atom_bumped" +///from base of atom/has_gravity(): (turf/location, list/forced_gravities) +#define COMSIG_ATOM_HAS_GRAVITY "atom_has_gravity" +///for when an atom has been created through processing (atom/original_atom, list/chosen_processing_option) +#define COMSIG_ATOM_CREATEDBY_PROCESSING "atom_createdby_processing" +///when an atom is processed (mob/living/user, obj/item/process_item, list/atom/results) +#define COMSIG_ATOM_PROCESSED "atom_processed" +///called when teleporting into a possibly protected turf: (channel, turf/origin, turf/destination) +#define COMSIG_ATOM_INTERCEPT_TELEPORTING "intercept_teleporting" +///called when an atom is added to the hearers on get_hearers_in_view(): (list/processing_list, list/hearers) +#define COMSIG_ATOM_HEARER_IN_VIEW "atom_hearer_in_view" +///called when an atom starts orbiting another atom: (atom) +#define COMSIG_ATOM_ORBIT_BEGIN "atom_orbit_begin" +///called when an atom stops orbiting another atom: (atom) +#define COMSIG_ATOM_ORBIT_STOP "atom_orbit_stop" +///from base of atom/set_opacity(): (new_opacity) +#define COMSIG_ATOM_SET_OPACITY "atom_set_opacity" +///from base of atom/throw_impact, sent by the target hit by a thrown object. (hit_atom, thrown_atom, datum/thrownthing/throwingdatum) +#define COMSIG_ATOM_PREHITBY "atom_pre_hitby" + #define COMSIG_HIT_PREVENTED (1<<0) +///from base of atom/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) +#define COMSIG_ATOM_HITBY "atom_hitby" ///when an atom starts playing a song datum (datum/song) #define COMSIG_ATOM_STARTING_INSTRUMENT "atom_starting_instrument" ///When the transform or an atom is varedited through vv topic. #define COMSIG_ATOM_VV_MODIFY_TRANSFORM "atom_vv_modify_transform" -/// from base of [/atom/proc/extinguish] -#define COMSIG_ATOM_EXTINGUISH "atom_extinguish" +/// generally called before temporary non-parallel animate()s on the atom (animation_duration) +#define COMSIG_ATOM_TEMPORARY_ANIMATION_START "atom_temp_animate_start" -/// From base atom/hitby(atom/movable/AM) -#define COMSIG_ATOM_HITBY "atom_hitby" +/// called on [/obj/item/lazarus_injector/afterattack] : (injector, user) +#define COMSIG_ATOM_ON_LAZARUS_INJECTOR "atom_on_lazarus_injector" + #define LAZARUS_INJECTOR_USED (1<<0) //Early return. + +/// from internal loop in /atom/proc/propagate_radiation_pulse: (atom/pulse_source) +#define COMSIG_ATOM_PROPAGATE_RAD_PULSE "atom_propagate_radiation_pulse" +/// from cosmetic items to restyle certain mobs, objects or organs: (atom/source, mob/living/trimmer, atom/movable/original_target, body_zone, restyle_type, style_speed) +#define COMSIG_ATOM_RESTYLE "atom_restyle" +/// when a timestop ability is used on the atom: (datum/proximity_monitor/advanced/timestop) +#define COMSIG_ATOM_TIMESTOP_FREEZE "atom_timestop_freeze" +/// when the timestop ability effect ends on the atom: (datum/proximity_monitor/advanced/timestop) +#define COMSIG_ATOM_TIMESTOP_UNFREEZE "atom_timestop_unfreeze" + +/// Called on [/atom/SpinAnimation()] : (speed, loops, segments, angle) +#define COMSIG_ATOM_SPIN_ANIMATION "atom_spin_animation" + +/// when atom falls onto the floor and become exposed to germs: (datum/component/germ_exposure) +#define COMSIG_ATOM_GERM_EXPOSED "atom_germ_exposed" +/// when atom is picked up from the floor or moved to an elevated structure: (datum/component/germ_exposure) +#define COMSIG_ATOM_GERM_UNEXPOSED "atom_germ_unexposed" +/// signal sent to puzzle pieces by activator +#define COMSIG_PUZZLE_COMPLETED "puzzle_completed" + +/// From /datum/compomnent/cleaner/clean() +#define COMSIG_ATOM_PRE_CLEAN "atom_pre_clean" + ///cancel clean + #define COMSIG_ATOM_CANCEL_CLEAN (1<<0) + +/// From /obj/effect/particle_effect/sparks/proc/sparks_touched(datum/source, atom/movable/singed) +#define COMSIG_ATOM_TOUCHED_SPARKS "atom_touched_sparks" +#define COMSIG_ATOM_TOUCHED_HAZARDOUS_SPARKS "atom_touched_hazardous_sparks" + +/// From whoever has been revealed (atom/revealed) +#define COMSIG_ATOM_REVEAL "atom_reveal" + +/// From /atom/proc/set_density(new_value) for when an atom changes density +#define COMSIG_ATOM_DENSITY_CHANGED "atom_density_change" + +/// From /datum/component/tether/UnregisterFromParent() +#define COMSIG_ATOM_TETHER_SNAPPED "atom_tether_snapped" + +/// From /atom/finalize_material_effects(): (list/materials, datum/material/main_material) +#define COMSIG_ATOM_FINALIZE_MATERIAL_EFFECTS "atom_finalize_material_effects" +/// From /atom/finalize_remove_material_effects(): (list/materials, datum/material/main_material) +#define COMSIG_ATOM_FINALIZE_REMOVE_MATERIAL_EFFECTS "atom_finalize_remove_material_effects" + +/// From /atom/proc/update_atom_colour() : (color_changed) +#define COMSIG_ATOM_COLOR_UPDATED "atom_color_updated" + /// Cancels update_appearance call in case you are somehow forced to call it manually to prevent dupe calls + #define COMPONENT_CANCEL_COLOR_APPEARANCE_UPDATE (1<<0) + +/// From /obj/item/organ/stomach/on_life() : (obj/item/organ/stomach/stomach, mob/living/carbon/owner, seconds_per_tick) +#define COMSIG_ATOM_STOMACH_DIGESTED "atom_stomach_digested" + #define COMPONENT_CANCEL_DIGESTION (1<<0) + +//Non /TG/ signals: + +///from base of atom/CheckParts(): (list/parts_list, datum/crafting_recipe/R) +#define COMSIG_ATOM_CHECKPARTS "atom_checkparts" + +///from base atom/Exited(): (mob/user, obj/item/extrapolator/extrapolator, dry_run, list/result) +#define COMSIG_ATOM_EXTRAPOLATOR_ACT "atom_extrapolator_act" + +///from base of /obj/item/dice/proc/rollDice(mob/user as mob, var/silent = 0). Has the arguments of 'src, silent, result' +#define COMSIG_MOB_ROLLED_DICE "mob_rolled_dice" //can give a return value if we want it to make the dice roll a specific number! + +///from base of /datum/destroy +#define COMSIG_OBSERVER_DESTROYED "observer_destroyed" + +#define COMSIG_OBSERVER_APC "observer_apc" + +#define COMSIG_OBSERVER_SHUTTLE_ADDED "observer_shuttle_added" + +#define COMSIG_OBSERVER_SHUTTLE_PRE_MOVE "observer_shuttle_premove" +#define COMSIG_OBSERVER_SHUTTLE_MOVED "observer_shuttle_moved" +#define COMSIG_OBSERVER_TURF_ENTERED "observer_turf_entered" +#define COMSIG_OBSERVER_TURF_EXITED "observer_turf_exited" +#define COMSIG_OBSERVER_Z_MOVED "observer_z_moved" +#define COMSIG_OBSERVER_ITEM_EQUIPPED "observer_item_equipped" +#define COMSIG_OBSERVER_MOB_UNEQUIPPED "observer_mob_unequipped" +#define COMSIG_OBSERVER_ITEM_UNEQUIPPED "observer_item_unequipped" +#define COMSIG_OBSERVER_GLOBALMOVED "observer_global_move" + +///called when teleporting into a protected turf: (channel, turf/origin) +#define COMSIG_ATOM_INTERCEPT_TELEPORT "intercept_teleport" + #define COMPONENT_BLOCK_TELEPORT (1<<0) diff --git a/code/__defines/dcs/signals/signals_atom/signals_atom_movable.dm b/code/__defines/dcs/signals/signals_atom/signals_atom_movable.dm index a3cb404fb3..412f5701ee 100644 --- a/code/__defines/dcs/signals/signals_atom/signals_atom_movable.dm +++ b/code/__defines/dcs/signals/signals_atom/signals_atom_movable.dm @@ -1,4 +1,142 @@ +// Atom movable signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +///from base of atom/movable/Moved(): (/atom, newloc, direction) +#define COMSIG_MOVABLE_ATTEMPTED_MOVE "movable_attempted_move" +///from base of atom/movable/Moved(): (/atom) +#define COMSIG_MOVABLE_PRE_MOVE "movable_pre_move" + #define COMPONENT_MOVABLE_BLOCK_PRE_MOVE (1<<0) +///from base of atom/movable/Moved(): (atom/old_loc, dir, forced, list/old_locs) +#define COMSIG_MOVABLE_MOVED "movable_moved" +///from base of atom/movable/Cross(): (/atom/movable) +#define COMSIG_MOVABLE_CROSS "movable_cross" + #define COMPONENT_BLOCK_CROSS (1<<0) +///from base of atom/movable/Move(): (/atom/movable) +#define COMSIG_MOVABLE_CROSS_OVER "movable_cross_am" +///from base of atom/movable/Bump(): (/atom) +#define COMSIG_MOVABLE_BUMP "movable_bump" + #define COMPONENT_INTERCEPT_BUMPED (1<<0) +///from datum/component/drift/apply_initial_visuals(): () +#define COMSIG_MOVABLE_DRIFT_VISUAL_ATTEMPT "movable_drift_visual_attempt" + #define DRIFT_VISUAL_FAILED (1<<0) +///from datum/component/drift/allow_final_movement(): () +#define COMSIG_MOVABLE_DRIFT_BLOCK_INPUT "movable_drift_block_input" + #define DRIFT_ALLOW_INPUT (1<<0) +///from base of atom/movable/throw_impact(): (/atom/hit_atom, /datum/thrownthing/throwingdatum) +#define COMSIG_MOVABLE_PRE_IMPACT "movable_pre_impact" + #define COMPONENT_MOVABLE_IMPACT_FLIP_HITPUSH (1<<0) //if true, flip if the impact will push what it hits + #define COMPONENT_MOVABLE_IMPACT_NEVERMIND (1<<1) //return true if you destroyed whatever it was you're impacting and there won't be anything for hitby() to run on +///from base of atom/movable/throw_impact() after confirming a hit: (/atom/hit_atom, /datum/thrownthing/throwingdatum) +#define COMSIG_MOVABLE_IMPACT "movable_impact" +///from base of mob/living/hitby(): (mob/living/target, hit_zone, blocked, datum/thrownthing/throwingdatum) +#define COMSIG_MOVABLE_IMPACT_ZONE "item_impact_zone" + #define MOVABLE_IMPACT_ZONE_OVERRIDE (1<<0) +///from /atom/movable/proc/buckle_mob(): (mob/living/M, force, check_loc, buckle_mob_flags) +#define COMSIG_MOVABLE_PREBUCKLE "prebuckle" // this is the last chance to interrupt and block a buckle before it finishes + #define COMPONENT_BLOCK_BUCKLE (1<<0) +///from base of atom/movable/buckle_mob(): (mob, force) +#define COMSIG_MOVABLE_BUCKLE "buckle" +///from base of atom/movable/unbuckle_mob(): (mob, force) +#define COMSIG_MOVABLE_UNBUCKLE "unbuckle" +///from /atom/movable/proc/buckle_mob(): (buckled_movable) +#define COMSIG_MOB_BUCKLED "mob_buckle" +///from /atom/movable/proc/unbuckle_mob(): (buckled_movable) +#define COMSIG_MOB_UNBUCKLED "mob_unbuckle" +///from /obj/vehicle/proc/driver_move, caught by the riding component to check and execute the driver trying to drive the vehicle +#define COMSIG_RIDDEN_DRIVER_MOVE "driver_move" + #define COMPONENT_DRIVER_BLOCK_MOVE (1<<0) +///from base of atom/movable/throw_at(): (list/args) +#define COMSIG_MOVABLE_PRE_THROW "movable_pre_throw" + #define COMPONENT_CANCEL_THROW (1<<0) +///from base of atom/movable/throw_at(): (datum/thrownthing, spin) +#define COMSIG_MOVABLE_POST_THROW "movable_post_throw" +///from base of datum/thrownthing/finalize(): (obj/thrown_object, datum/thrownthing) used for when a throw is finished +#define COMSIG_MOVABLE_THROW_LANDED "movable_throw_landed" +///from base of atom/movable/on_changed_z_level(): (turf/old_turf, turf/new_turf, same_z_layer) +#define COMSIG_MOVABLE_Z_CHANGED "movable_ztransit" +/// from /atom/movable/can_z_move(): (turf/start, turf/destination) +#define COMSIG_CAN_Z_MOVE "movable_can_z_move" + /// Return to block z movement + #define COMPONENT_CANT_Z_MOVE (1<<0) +///called before hearing a message from atom/movable/Hear(): +#define COMSIG_MOVABLE_PRE_HEAR "movable_pre_hear" + ///cancel hearing the message because we're doing something else presumably + #define COMSIG_MOVABLE_CANCEL_HEARING (1<<0) +///from base of atom/movable/Hear(): (proc args list(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, list/message_mods = list(), message_range)) +#define COMSIG_MOVABLE_HEAR "movable_hear" + #define HEARING_SPEAKER 1 + #define HEARING_LANGUAGE 2 + #define HEARING_RAW_MESSAGE 3 + #define HEARING_RADIO_FREQ 4 + #define HEARING_RADIO_FREQ_NAME 5 + #define HEARING_RADIO_FREQ_COLOR 6 + #define HEARING_SPANS 7 + #define HEARING_MESSAGE_MODE 8 + #define HEARING_RANGE 9 + +///called when space wind can't move a movable. (pressure_difference, pressure_direction) +#define COMSIG_MOVABLE_RESISTED_SPACEWIND "movable_resisted_wind" + +///called when the movable is added to a disposal holder object for disposal movement: (obj/structure/disposalholder/holder, obj/machinery/disposal/source) +#define COMSIG_MOVABLE_DISPOSING "movable_disposing" +// called when movable is expelled from a disposal pipe, bin or outlet on obj/pipe_eject: (direction) +#define COMSIG_MOVABLE_PIPE_EJECTING "movable_pipe_ejecting" +///called when the movable successfully has its anchored var changed, from base atom/movable/set_anchored(): (value) +#define COMSIG_MOVABLE_SET_ANCHORED "movable_set_anchored" +///from base of atom/movable/setGrabState(): (newstate) +#define COMSIG_MOVABLE_SET_GRAB_STATE "living_set_grab_state" +///called when the movable's glide size is updated: (new_glide_size) +#define COMSIG_MOVABLE_UPDATE_GLIDE_SIZE "movable_glide_size" +///Called when a movable is hit by a plunger in layer mode, from /obj/item/plunger/attack_atom() +#define COMSIG_MOVABLE_CHANGE_DUCT_LAYER "movable_change_duct_layer" ///Called before a movable is being teleported from `check_teleport_valid()`: (destination, channel) #define COMSIG_MOVABLE_TELEPORTING "movable_teleporting" ///Called after a movable is teleported from `do_teleport()`: () #define COMSIG_MOVABLE_POST_TELEPORT "movable_post_teleport" +/// from /mob/living/can_z_move, sent to whatever the mob is buckled to. Only ridable movables should be ridden up or down btw. +#define COMSIG_BUCKLED_CAN_Z_MOVE "ridden_pre_can_z_move" + #define COMPONENT_RIDDEN_STOP_Z_MOVE 1 + #define COMPONENT_RIDDEN_ALLOW_Z_MOVE 2 +/// from base of atom/movable/Process_Spacemove(): (movement_dir, continuous_move) +#define COMSIG_MOVABLE_SPACEMOVE "spacemove" + #define COMSIG_MOVABLE_STOP_SPACEMOVE (1<<0) + +/// Sent from /obj/item/radio/talk_into(): (obj/item/radio/used_radio) +#define COMSIG_MOVABLE_USING_RADIO "movable_radio" + /// Return to prevent the movable from talking into the radio. + #define COMPONENT_CANNOT_USE_RADIO (1<<0) + +/// Sent from /atom/movable/proc/generate_messagepart() generating a quoted message, after say verb is chosen and before spans are applied. +#define COMSIG_MOVABLE_SAY_QUOTE "movable_say_quote" + // Used to access COMSIG_MOVABLE_SAY_QUOTE argslist + /// The index of args that corresponds to the actual message + #define MOVABLE_SAY_QUOTE_MESSAGE 1 + #define MOVABLE_SAY_QUOTE_MESSAGE_SPANS 2 + #define MOVABLE_SAY_QUOTE_MESSAGE_MODS 3 + +/// From /datum/element/immerse/proc/add_immerse_overlay(): (atom/movable/immerse_mask/effect_relay) +#define COMSIG_MOVABLE_EDIT_UNIQUE_IMMERSE_OVERLAY "movable_edit_unique_submerge_overlay" +/// From base of area/Exited(): (area/left, direction) +#define COMSIG_MOVABLE_EXITED_AREA "movable_exited_area" + +///from base of /datum/component/splat/splat: (hit_atom) +#define COMSIG_MOVABLE_SPLAT "movable_splat" + +///from base of /atom/movable/point_at: (atom/A, obj/effect/temp_visual/point/point) +#define COMSIG_MOVABLE_POINTED "movable_pointed" + +///From /datum/component/aquarium/get_content_beauty: (beauty_holder) +#define COMSIG_MOVABLE_GET_AQUARIUM_BEAUTY "movable_ge_aquarium_beauty" + +/// Sent to movables when they are being stolen by a spy: (mob/living/spy, datum/spy_bounty/bounty) +#define COMSIG_MOVABLE_SPY_STEALING "movable_spy_stealing" +/// Called when something is pushed by a living mob bumping it: (mob/living/pusher, push force) +#define COMSIG_MOVABLE_BUMP_PUSHED "movable_bump_pushed" + /// Stop it from moving + #define COMPONENT_NO_PUSH (1<<0) + +/// Called when the atom is dropped into a chasm: (turf/chasm) +#define COMSIG_MOVABLE_CHASM_DROPPED "movable_charm_dropped" + /// Stop it from actually dropping into the chasm + #define COMPONENT_NO_CHASM_DROP (1<<0) diff --git a/code/__defines/dcs/signals/signals_atom/signals_atom_movement.dm b/code/__defines/dcs/signals/signals_atom/signals_atom_movement.dm new file mode 100644 index 0000000000..d468be8bf8 --- /dev/null +++ b/code/__defines/dcs/signals/signals_atom/signals_atom_movement.dm @@ -0,0 +1,76 @@ +// Atom movement signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +///signal sent out by an atom when it checks if it can be pulled, for additional checks +#define COMSIG_ATOM_CAN_BE_PULLED "movable_can_be_pulled" + #define COMSIG_ATOM_CANT_PULL (1 << 0) +///signal sent out by an atom when it is no longer being pulled by something else : (atom/puller) +#define COMSIG_ATOM_NO_LONGER_PULLED "movable_no_longer_pulled" +///signal sent out by an atom when it is no longer pulling something : (atom/pulling) +#define COMSIG_ATOM_NO_LONGER_PULLING "movable_no_longer_pulling" +///called for each movable in a turf contents on /turf/zImpact(): (atom/movable/A, levels) +#define COMSIG_ATOM_INTERCEPT_Z_FALL "movable_intercept_z_impact" +///signal sent out by an atom upon onZImpact : (turf/impacted_turf, levels) +#define COMSIG_ATOM_ON_Z_IMPACT "movable_on_z_impact" +/// From base of /atom/movable/beforeShuttleMove (turf/newT, direction, move_mode, /obj/docking_port/mobile/moving_dock) +#define COMSIG_ATOM_BEFORE_SHUTTLE_MOVE "movable_before_shuttle_move" + // Docking turf movement return values - return a combination of these to override the move_mode for the turf containing the atom + #define COMPONENT_MOVE_TURF MOVE_TURF + #define COMPONENT_MOVE_AREA MOVE_AREA + #define COMPONENT_MOVE_CONTENTS MOVE_CONTENTS +/// From base of /atom/movable/afterShuttleMove (turf/oldT) +#define COMSIG_ATOM_AFTER_SHUTTLE_MOVE "movable_after_shuttle_move" +///called on a movable (NOT living) when it starts pulling (atom/movable/pulled, state, force) +#define COMSIG_ATOM_START_PULL "movable_start_pull" +/// called on /atom when something attempts to pass through it (atom/movable/source, atom/movable/passing, dir) +#define COMSIG_ATOM_TRIED_PASS "atom_tried_pass" +/// called on /movable when something attempts to pass through it (atom/movable/source, atom/movable/passing, dir) AND WHEN general_movement = FALSE for some fucking reason +#define COMSIG_MOVABLE_CAN_PASS_THROUGH "movable_can_pass_through" +/// If given, we permit passage through +#define COMSIG_COMPONENT_PERMIT_PASSAGE (1 << 0) +/// If given, we DONT permit passage through +#define COMSIG_COMPONENT_REFUSE_PASSAGE (1 << 1) +///called on /living when someone starts pulling (atom/movable/pulled, state, force) +#define COMSIG_LIVING_START_PULL "living_start_pull" +///called on /living when someone is pulled (mob/living/puller) +#define COMSIG_LIVING_GET_PULLED "living_start_pulled" +///called on /living, when pull is attempted, but before it completes, from base of [/mob/living/start_pulling]: (atom/movable/thing, force) +#define COMSIG_LIVING_TRY_PULL "living_try_pull" + #define COMSIG_LIVING_CANCEL_PULL (1 << 0) +#define COMSIG_LIVING_TRYING_TO_PULL "living_tried_pulling" +/// Called from /mob/living/update_pull_movespeed +#define COMSIG_LIVING_UPDATING_PULL_MOVESPEED "living_updating_pull_movespeed" +/// Called from /mob/living/PushAM -- Called when this mob is about to push a movable, but before it moves +/// (aotm/movable/being_pushed) +#define COMSIG_LIVING_PUSHING_MOVABLE "living_pushing_movable" +///from base of [/atom/proc/interact]: (mob/user) +#define COMSIG_ATOM_UI_INTERACT "atom_ui_interact" +///from base of atom/relaymove(): (mob/living/user, direction) +#define COMSIG_ATOM_RELAYMOVE "atom_relaymove" + ///prevents the "you cannot move while buckled! message" + #define COMSIG_BLOCK_RELAYMOVE (1<<0) + +/// From base of atom/setDir(): (old_dir, new_dir). Called before the direction changes +#define COMSIG_ATOM_PRE_DIR_CHANGE "atom_pre_face_atom" + #define COMPONENT_ATOM_BLOCK_DIR_CHANGE (1<<0) +///from base of atom/setDir(): (old_dir, new_dir). Called before the direction changes. +#define COMSIG_ATOM_DIR_CHANGE "atom_dir_change" +///from base of atom/setDir(): (old_dir, new_dir). Called after the direction changes. +#define COMSIG_ATOM_POST_DIR_CHANGE "atom_post_dir_change" +///from base of atom/movable/keybind_face_direction(): (dir). Called before turning with the movement lock key. +#define COMSIG_MOVABLE_KEYBIND_FACE_DIR "keybind_face_dir" + ///ignores the movement lock key, used for turning while strafing in a mech + #define COMSIG_IGNORE_MOVEMENT_LOCK (1<<0) + +/// from /datum/component/singularity/proc/can_move(), as well as /obj/energy_ball/proc/can_move() +/// if a callback returns `SINGULARITY_TRY_MOVE_BLOCK`, then the singularity will not move to that turf +#define COMSIG_ATOM_SINGULARITY_TRY_MOVE "atom_singularity_try_move" + /// When returned from `COMSIG_ATOM_SINGULARITY_TRY_MOVE`, the singularity will move to that turf + #define SINGULARITY_TRY_MOVE_BLOCK (1 << 0) +///from base of atom/experience_pressure_difference(): (pressure_difference, direction, pressure_resistance_prob_delta) +#define COMSIG_ATOM_PRE_PRESSURE_PUSH "atom_pre_pressure_push" + ///prevents pressure movement + #define COMSIG_ATOM_BLOCKS_PRESSURE (1<<0) +///From base of /datum/move_loop/process() after attempting to move a movable: (datum/move_loop/loop, old_dir) +#define COMSIG_MOVABLE_MOVED_FROM_LOOP "movable_moved_from_loop" diff --git a/code/__defines/dcs/signals/signals_atom/signals_atom_x_act.dm b/code/__defines/dcs/signals/signals_atom/signals_atom_x_act.dm new file mode 100644 index 0000000000..8cd65c3db1 --- /dev/null +++ b/code/__defines/dcs/signals/signals_atom/signals_atom_x_act.dm @@ -0,0 +1,101 @@ +// Atom x_act() procs signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +///from the [EX_ACT] wrapper macro: (severity, target) +#define COMSIG_ATOM_PRE_EX_ACT "atom_pre_ex_act" + /// if returned, don't let the explosion act on this atom + #define COMPONENT_CANCEL_EX_ACT (1<<0) +///from the [EX_ACT] wrapper macro: (severity, target) +#define COMSIG_ATOM_EX_ACT "atom_ex_act" + #define COMPONENT_IGNORE_EXPLOSION (1<<0) +///from base of atom/emp_act(severity): (severity). return EMP protection flags +#define COMSIG_ATOM_PRE_EMP_ACT "atom_emp_act" +///from base of atom/emp_act(severity): (severity, protection) +#define COMSIG_ATOM_EMP_ACT "atom_emp_act" +///from base of atom/fire_act(): (exposed_temperature, exposed_volume) +#define COMSIG_ATOM_FIRE_ACT "atom_fire_act" +///from base of atom/bullet_act(): (/obj/proj, def_zone, piercing_hit) +#define COMSIG_ATOM_PRE_BULLET_ACT "pre_atom_bullet_act" + /// All this does is prevent default bullet on_hit from being called, [BULLET_ACT_HIT] being return is implied + #define COMPONENT_BULLET_ACTED (1<<0) + /// Forces bullet act to return [BULLET_ACT_BLOCK], takes priority over above + #define COMPONENT_BULLET_BLOCKED (1<<1) + /// Forces bullet act to return [BULLET_ACT_FORCE_PIERCE], takes priority over above + #define COMPONENT_BULLET_PIERCED (1<<2) +///from base of atom/bullet_act(): (/obj/proj, def_zone, piercing_hit, blocked) +#define COMSIG_ATOM_BULLET_ACT "atom_bullet_act" +///from base of atom/on_craft_completion(): (components, datum/crafting_recipe/current_recipe, atom/crafter) +#define COMSIG_ATOM_ON_CRAFT "atom_on_craft_completion" +///from base of atom/used_in_craft(): (atom/result) +#define COMSIG_ATOM_USED_IN_CRAFT "atom_used_in_craft" +///from base of atom/blob_act(): (/obj/structure/blob) +#define COMSIG_ATOM_BLOB_ACT "atom_blob_act" + /// if returned, forces nothing to happen when the atom is attacked by a blob + #define COMPONENT_CANCEL_BLOB_ACT (1<<0) +///from base of atom/acid_act(): (acidpwr, acid_volume) +#define COMSIG_ATOM_ACID_ACT "atom_acid_act" +///from base of atom/emag_act(): (/mob/user) +#define COMSIG_ATOM_EMAG_ACT "atom_emag_act" +///from base of atom/narsie_act(): () +#define COMSIG_ATOM_NARSIE_ACT "atom_narsie_act" +///from base of atom/rcd_act(): (/mob, /obj/item/construction/rcd, passed_mode) +#define COMSIG_ATOM_RCD_ACT "atom_rcd_act" +///from base of atom/singularity_pull(): (/atom, current_size) +#define COMSIG_ATOM_SING_PULL "atom_sing_pull" +///from obj/machinery/bsa/full/proc/fire(): () +#define COMSIG_ATOM_BSA_BEAM "atom_bsa_beam_pass" + #define COMSIG_ATOM_BLOCKS_BSA_BEAM (1<<0) + +/// Sent from [atom/proc/item_interaction], when this atom is left-clicked on by a mob with an item +/// Sent from the very beginning of the click chain, intended for generic atom-item interactions +/// Args: (mob/living/user, obj/item/tool, list/modifiers) +/// Return any ITEM_INTERACT_ flags as relevant (see tools.dm) +#define COMSIG_ATOM_ITEM_INTERACTION "atom_item_interaction" +/// Sent from [atom/proc/item_interaction], when this atom is right-clicked on by a mob with an item +/// Sent from the very beginning of the click chain, intended for generic atom-item interactions +/// Args: (mob/living/user, obj/item/tool, list/modifiers) +/// Return any ITEM_INTERACT_ flags as relevant (see tools.dm) +#define COMSIG_ATOM_ITEM_INTERACTION_SECONDARY "atom_item_interaction_secondary" +/// Sent from [atom/proc/item_interaction], to a mob clicking on an atom with an item +#define COMSIG_USER_ITEM_INTERACTION "user_item_interaction" +/// Sent from [atom/proc/item_interaction], to an item clicking on an atom +/// Args: (mob/living/user, atom/interacting_with, list/modifiers) +/// Return any ITEM_INTERACT_ flags as relevant (see tools.dm) +#define COMSIG_ITEM_INTERACTING_WITH_ATOM "item_interacting_with_atom" +/// Sent from [atom/proc/item_interaction], to an item right-clicking on an atom +/// Args: (mob/living/user, atom/interacting_with, list/modifiers) +/// Return any ITEM_INTERACT_ flags as relevant (see tools.dm) +#define COMSIG_ITEM_INTERACTING_WITH_ATOM_SECONDARY "item_interacting_with_atom_secondary" +/// Sent from [atom/proc/item_interaction], when this atom is right-clicked on by a mob with a tool +#define COMSIG_USER_ITEM_INTERACTION_SECONDARY "user_item_interaction_secondary" +/// Sent from [atom/proc/item_interaction], when this atom is left-clicked on by a mob with a tool of a specific tool type +/// Args: (mob/living/user, obj/item/tool, list/recipes) +/// Return any ITEM_INTERACT_ flags as relevant (see tools.dm) +#define COMSIG_ATOM_TOOL_ACT(tooltype) "tool_act_[tooltype]" +/// Sent from [atom/proc/item_interaction], when this atom is right-clicked on by a mob with a tool of a specific tool type +/// Args: (mob/living/user, obj/item/tool) +/// Return any ITEM_INTERACT_ flags as relevant (see tools.dm) +#define COMSIG_ATOM_SECONDARY_TOOL_ACT(tooltype) "tool_secondary_act_[tooltype]" + +/// Sent from [atom/proc/ranged_item_interaction], when this atom is left-clicked on by a mob with an item while not adjacent +#define COMSIG_ATOM_RANGED_ITEM_INTERACTION "atom_ranged_item_interaction" +/// Sent from [atom/proc/ranged_item_interaction], when this atom is right-clicked on by a mob with an item while not adjacent +#define COMSIG_ATOM_RANGED_ITEM_INTERACTION_SECONDARY "atom_ranged_item_interaction_secondary" +/// Sent from [atom/proc/ranged_item_interaction], when a mob is using this item while left-clicking on by an atom while not adjacent +#define COMSIG_RANGED_ITEM_INTERACTING_WITH_ATOM "ranged_item_interacting_with_atom" +/// Sent from [atom/proc/ranged_item_interaction], when a mob is using this item while right-clicking on by an atom while not adjacent +#define COMSIG_RANGED_ITEM_INTERACTING_WITH_ATOM_SECONDARY "ranged_item_interacting_with_atom_secondary" + +/// Sent from [atom/proc/item_interaction], when this atom is used as a tool and an event occurs +#define COMSIG_ITEM_TOOL_ACTED "tool_item_acted" + +/// from /obj/projectile/energy/fisher/on_hit() or /obj/item/gun/energy/recharge/fisher when striking a target +#define COMSIG_ATOM_SABOTEUR_ACT "hit_by_saboteur" + #define COMSIG_SABOTEUR_SUCCESS 1 + +/// signal sent when a mouse is hovering over us, sent by atom/proc/on_mouse_entered +#define COMSIG_ATOM_MOUSE_ENTERED "mouse_entered" + +/// Sent from [/datum/element/burn_on_item_ignition] to an atom being ignited by something: (mob/living/user, obj/item/burning_thing) +#define COMSIG_ATOM_IGNITED_BY_ITEM "atom_ignited_by_item" diff --git a/code/__defines/dcs/signals/signals_backpack.dm b/code/__defines/dcs/signals/signals_backpack.dm new file mode 100644 index 0000000000..d202e950fc --- /dev/null +++ b/code/__defines/dcs/signals/signals_backpack.dm @@ -0,0 +1,2 @@ +/// From /obj/item/storage/backpack/duffelbag/proc/set_zipper() : (new_zip) +#define COMSIG_DUFFEL_ZIP_CHANGE "duffel_zip_change" diff --git a/code/__defines/dcs/signals/signals_beam.dm b/code/__defines/dcs/signals/signals_beam.dm new file mode 100644 index 0000000000..12d58b70c9 --- /dev/null +++ b/code/__defines/dcs/signals/signals_beam.dm @@ -0,0 +1,12 @@ +/// Called before beam is redrawn +#define COMSIG_BEAM_BEFORE_DRAW "beam_before_draw" + #define BEAM_CANCEL_DRAW (1 << 0) + +/// Sent to a beam when an atom enters any turf the beam covers: (obj/effect/ebeam/hit_beam, atom/movable/entered) +#define COMSIG_BEAM_ENTERED "beam_entered" + +/// Sent to a beam when an atom exits any turf the beam covers: (obj/effect/ebeam/hit_beam, atom/movable/exited) +#define COMSIG_BEAM_EXITED "beam_exited" + +/// Sent to a beam when any turf the beam covers changes: (list/datum/callback/post_change_callbacks) +#define COMSIG_BEAM_TURFS_CHANGED "beam_turfs_changed" diff --git a/code/__defines/dcs/signals/signals_bitrunning.dm b/code/__defines/dcs/signals/signals_bitrunning.dm new file mode 100644 index 0000000000..fcce7ea68d --- /dev/null +++ b/code/__defines/dcs/signals/signals_bitrunning.dm @@ -0,0 +1,61 @@ +/// from /atom/movable/screen/alert/bitrunning/qserver_domain_complete +#define COMSIG_BITRUNNER_ALERT_SEVER "bitrunner_alert_sever" + +/// from /obj/effect/bitrunning/loot_signal: (points) +#define COMSIG_BITRUNNER_GOAL_POINT "bitrunner_goal_point" + +// Netpods + +/// from /obj/machinery/netpod/sever_connection() +#define COMSIG_BITRUNNER_NETPOD_SEVER "bitrunner_netpod_sever" + +/// from /obj/machinery/netpod/default_pry_open() : (mob/living/intruder) +#define COMSIG_BITRUNNER_CROWBAR_ALERT "bitrunner_crowbar" + +/// from /obj/machinery/netpod/on_damage_taken() +#define COMSIG_BITRUNNER_NETPOD_INTEGRITY "bitrunner_netpod_damage" + +/// from /obj/machinery/netpod/open_machine() +#define COMSIG_BITRUNNER_NETPOD_OPENED "bitrunner_netpod_opened" + +// Server + +/// from /obj/machinery/quantum_server/on_goal_turf_entered(): (atom/entered, reward_points) +#define COMSIG_BITRUNNER_DOMAIN_COMPLETE "bitrunner_complete" + +/// from /obj/machinery/quantum_server/generate_loot() +#define COMSIG_BITRUNNER_CACHE_SEVER "bitrunner_cache_sever" + +/// from /obj/machinery/quantum_server/sever_connection() +#define COMSIG_BITRUNNER_QSRV_SEVER "bitrunner_qserver_sever" + +/// from /obj/machinery/quantum_server/shutdown() : (mob/living) +#define COMSIG_BITRUNNER_SHUTDOWN_ALERT "bitrunner_shutdown" + +/// from /obj/machinery/quantum_server/notify_threat() +#define COMSIG_BITRUNNER_THREAT_CREATED "bitrunner_threat" + +/// from /obj/machinery/quantum_server/scrub_vdom() +#define COMSIG_BITRUNNER_DOMAIN_SCRUBBED "bitrunner_domain_scrubbed" + +/// from /obj/machienry/quantum_server/station_spawn() +#define COMSIG_BITRUNNER_STATION_SPAWN "bitrunner_station_spawn" + +/// from /obj/machinery/quantum_server/stock_gear(): (mob/living/carbon/human/avatar, external_load_flags) +#define COMSIG_BITRUNNER_STOCKING_GEAR "bitrunner_stocking_gear" + +// Ladder + +/// from /obj/structure/hololadder/disconnect() +#define COMSIG_BITRUNNER_LADDER_SEVER "bitrunner_ladder_sever" + +/// Sent when a server console is emagged +#define COMSIG_BITRUNNER_SERVER_EMAGGED "bitrunner_server_emagged" + +// Spawners + +/// from /obj/effect/mob_spawn/ghost_role/human/virtual_domain/proc/artificial_spawn() : (mob/living/runner) +#define COMSIG_BITRUNNER_SPAWNED "bitrunner_spawned" + +/// from /obj/effect/landmark/bitrunning/mob_segment/proc/spawn_mobs() : (list/mob/living) +#define COMSIG_BITRUNNING_MOB_SEGMENT_SPAWNED "bitrunner_mob_segment_spawned" diff --git a/code/__defines/dcs/signals/signals_blob.dm b/code/__defines/dcs/signals/signals_blob.dm new file mode 100644 index 0000000000..dac33906a3 --- /dev/null +++ b/code/__defines/dcs/signals/signals_blob.dm @@ -0,0 +1,4 @@ +/// Signal sent when a blob overmind picked a new strain (/mob/eye/blob/overmind, /datum/blobstrain/new_strain) +#define COMSIG_BLOB_SELECTED_STRAIN "blob_selected_strain" +/// Signal sent by a blob spore when it creates a zombie (/mob/living/basic/blob_minion/spore/spore, //mob/living/basic/blob_minion/zombie/zombie) +#define COMSIG_BLOB_ZOMBIFIED "blob_zombified" diff --git a/code/__defines/dcs/signals/signals_bot.dm b/code/__defines/dcs/signals/signals_bot.dm new file mode 100644 index 0000000000..593083b213 --- /dev/null +++ b/code/__defines/dcs/signals/signals_bot.dm @@ -0,0 +1,8 @@ +/// Called in /obj/structure/moneybot/add_money(). (to_add) +#define COMSIG_MONEYBOT_ADD_MONEY "moneybot_add_money" + +/// Called in /obj/structure/dispenserbot/add_item(). (obj/item/to_add) +#define COMSIG_DISPENSERBOT_ADD_ITEM "moneybot_add_item" + +/// Called in /obj/structure/dispenserbot/remove_item(). (obj/item/to_remove) +#define COMSIG_DISPENSERBOT_REMOVE_ITEM "moneybot_remove_item" diff --git a/code/__defines/dcs/signals/signals_camera.dm b/code/__defines/dcs/signals/signals_camera.dm new file mode 100644 index 0000000000..92e9b94f35 --- /dev/null +++ b/code/__defines/dcs/signals/signals_camera.dm @@ -0,0 +1,4 @@ +///Signal sent when a /datum/trackable found a target: (mob/living/target) +#define COMSIG_TRACKABLE_TRACKING_TARGET "comsig_trackable_tracking_target" +///Signal sent when the mob a /datum/trackable is actively following changes glide size: mob/living/target, new_glide_size) +#define COMSIG_TRACKABLE_GLIDE_CHANGED "comsig_trackable_glide_changed" diff --git a/code/__defines/dcs/signals/signals_changeling.dm b/code/__defines/dcs/signals/signals_changeling.dm new file mode 100644 index 0000000000..9b5406d669 --- /dev/null +++ b/code/__defines/dcs/signals/signals_changeling.dm @@ -0,0 +1,2 @@ +///Called when a changeling uses its transform ability (source = carbon), from /datum/action/changeling/transform/sting_action(mob/living/carbon/human/user) +#define COMSIG_CHANGELING_TRANSFORM "changeling_transform" diff --git a/code/__defines/dcs/signals/signals_circuit.dm b/code/__defines/dcs/signals/signals_circuit.dm new file mode 100644 index 0000000000..bdc4c3e1a9 --- /dev/null +++ b/code/__defines/dcs/signals/signals_circuit.dm @@ -0,0 +1,100 @@ +// Circuit signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +// Component signals +/// Sent when the value of a port is set. +#define COMSIG_PORT_SET_VALUE "port_set_value" +/// Sent when the type of a port is set. +#define COMSIG_PORT_SET_TYPE "port_set_type" +/// Sent when a port disconnects from everything. +#define COMSIG_PORT_DISCONNECT "port_disconnect" + +/// Sent when a [/obj/item/circuit_component] is added to a circuit. +#define COMSIG_CIRCUIT_ADD_COMPONENT "circuit_add_component" + /// Cancels adding the component to the circuit. + #define COMPONENT_CANCEL_ADD_COMPONENT (1<<0) + +/// Sent when a [/obj/item/circuit_component] is added to a circuit manually, by putting the item inside directly. +/// Accepts COMPONENT_CANCEL_ADD_COMPONENT. +#define COMSIG_CIRCUIT_ADD_COMPONENT_MANUALLY "circuit_add_component_manually" + +/// Sent when a circuit is removed from its shell +#define COMSIG_CIRCUIT_SHELL_REMOVED "circuit_shell_removed" + +/// Send to [/obj/item/circuit_component] when it is added to a circuit. (/obj/item/integrated_circuit) +#define COMSIG_CIRCUIT_COMPONENT_ADDED "circuit_component_added" + +/// Sent to [/obj/item/circuit_component] when it is removed from a circuit. (/obj/item/integrated_circuit) +#define COMSIG_CIRCUIT_COMPONENT_REMOVED "circuit_component_removed" + +/// Called when the integrated circuit's cell is set. +#define COMSIG_CIRCUIT_SET_CELL "circuit_set_cell" + +/// Called when the integrated circuit is turned on or off. +#define COMSIG_CIRCUIT_SET_ON "circuit_set_on" + +/// Called when the integrated circuit's shell is set. +#define COMSIG_CIRCUIT_SET_SHELL "circuit_set_shell" + +/// Called when the integrated circuit is locked. +#define COMSIG_CIRCUIT_SET_LOCKED "circuit_set_locked" + +/// Called before power is used in an integrated circuit (power_to_use) +#define COMSIG_CIRCUIT_PRE_POWER_USAGE "circuit_pre_power_usage" + #define COMPONENT_OVERRIDE_POWER_USAGE (1<<0) + +/// Called right before the integrated circuit data is converted to json. Allows modification to the data right before it is returned. +#define COMSIG_CIRCUIT_PRE_SAVE_TO_JSON "circuit_pre_save_to_json" + +/// Called when the integrated circuit is loaded. +#define COMSIG_CIRCUIT_POST_LOAD "circuit_post_load" + +/// Sent to an atom when a [/obj/item/usb_cable] attempts to connect to something. (/obj/item/usb_cable/usb_cable, /mob/user) +#define COMSIG_ATOM_USB_CABLE_TRY_ATTACH "usb_cable_try_attach" + /// Attaches the USB cable to the atom. If the USB cables moves away, it will disconnect. + #define COMSIG_USB_CABLE_ATTACHED (1<<0) + + /// Attaches the USB cable to a circuit. Producers of this are expected to set the usb_cable's + /// `attached_circuit` variable. + #define COMSIG_USB_CABLE_CONNECTED_TO_CIRCUIT (1<<1) + + /// Cancels the attack chain, but without performing any other action. + #define COMSIG_CANCEL_USB_CABLE_ATTACK (1<<2) + +/// Called when the circuit component is saved. +#define COMSIG_CIRCUIT_COMPONENT_SAVE "circuit_component_save" + +/// Called when circuit component data should be saved +#define COMSIG_CIRCUIT_COMPONENT_SAVE_DATA "circuit_component_save_data" +/// Called when circuit component data should be loaded +#define COMSIG_CIRCUIT_COMPONENT_LOAD_DATA "circuit_component_load_data" + +/// Called when an external object is loaded. +#define COMSIG_MOVABLE_CIRCUIT_LOADED "movable_circuit_loaded" + +/// Called when a ui action is sent for the circuit component +#define COMSIG_CIRCUIT_COMPONENT_PERFORM_ACTION "circuit_component_perform_action" + +///Called when an Ntnet sender is sending Ntnet data +#define COMSIG_GLOB_CIRCUIT_NTNET_DATA_SENT "!circuit_ntnet_data_sent" + +/// Called when an equipment action component is added to a shell (/obj/item/circuit_component/equipment_action/action_comp) +#define COMSIG_CIRCUIT_ACTION_COMPONENT_REGISTERED "circuit_action_component_registered" + +/// Called when an equipment action component is removed from a shell (/obj/item/circuit_component/equipment_action/action_comp) +#define COMSIG_CIRCUIT_ACTION_COMPONENT_UNREGISTERED "circuit_action_component_unregistered" + +/// Called when an NFC sender sends data to this circuit +#define COMSIG_CIRCUIT_NFC_DATA_SENT "circuit_nfc_data_receive" + +///Sent to the shell component when a circuit is attached. +#define COMSIG_SHELL_CIRCUIT_ATTACHED "shell_circuit_attached" +///Sent to the shell component when a circuit is removed. +#define COMSIG_SHELL_CIRCUIT_REMOVED "shell_circuit_removed" + +/// Called when a usb port registers signals on a circuit or shell (atom/movable/new_physical_object) +#define COMSIG_USB_PORT_REGISTER_PHYSICAL_OBJECT "usb_port_register_physical_object" + +/// Called when a usb port unregisters signals from a circuit or shell (atom/movable/old_physical_object) +#define COMSIG_USB_PORT_UNREGISTER_PHYSICAL_OBJECT "usb_port_unregister_physical_object" diff --git a/code/__defines/dcs/signals/signals_client.dm b/code/__defines/dcs/signals/signals_client.dm index 460c4a3f47..07e5251cad 100644 --- a/code/__defines/dcs/signals/signals_client.dm +++ b/code/__defines/dcs/signals/signals_client.dm @@ -1,4 +1,14 @@ -/// Called after a client logs into a mob: (mob) -#define COMSIG_CLIENT_MOB_LOGIN "client_mob_changed" +// from /client/proc/change_view() : (new_size) +#define COMSIG_VIEW_SET "view_set" + // from /client/proc/handle_popup_close() : (window_id) #define COMSIG_POPUP_CLEARED "popup_cleared" + +/// Called after one or more verbs are added: (list of verbs added) +#define COMSIG_CLIENT_VERB_ADDED "client_verb_added" + +/// Called after one or more verbs are added: (list of verbs added) +#define COMSIG_CLIENT_VERB_REMOVED "client_verb_removed" + +/// Called after a client logs into a mob: (mob) +#define COMSIG_CLIENT_MOB_LOGIN "client_mob_changed" diff --git a/code/__defines/dcs/signals/signals_cliff.dm b/code/__defines/dcs/signals/signals_cliff.dm new file mode 100644 index 0000000000..79fb4db443 --- /dev/null +++ b/code/__defines/dcs/signals/signals_cliff.dm @@ -0,0 +1,4 @@ +///called when a mob is mousedropped onto, or uses a verb to climb an object +#define COMSIG_CLIMBABLE_START_CLIMB "starting_climb_action" +///called when an object is considered unsafe to climb on +#define COMSIG_CLIMBABLE_SHAKE_CLIMBERS "shaking_climbing_mobs" diff --git a/code/__defines/dcs/signals/signals_cloner.dm b/code/__defines/dcs/signals/signals_cloner.dm new file mode 100644 index 0000000000..5474570d5c --- /dev/null +++ b/code/__defines/dcs/signals/signals_cloner.dm @@ -0,0 +1,2 @@ +/// Sent from [/obj/machinery/experimental_cloner_scanner/proc/complete_scan] : (/datum/experimental_cloning_record/new_record) +#define COMSIG_CLONER_SCAN_SUCCESSFUL "cloner_scan_successful" diff --git a/code/__defines/dcs/signals/signals_closet.dm b/code/__defines/dcs/signals/signals_closet.dm new file mode 100644 index 0000000000..8945e876cc --- /dev/null +++ b/code/__defines/dcs/signals/signals_closet.dm @@ -0,0 +1,2 @@ +/// Called in /obj/structure/closet/PopulateContents() +#define COMSIG_CLOSET_CONTENTS_INITIALIZED "closet_initialize_contents" diff --git a/code/__defines/dcs/signals/signals_clothing.dm b/code/__defines/dcs/signals/signals_clothing.dm new file mode 100644 index 0000000000..eeb40ade8a --- /dev/null +++ b/code/__defines/dcs/signals/signals_clothing.dm @@ -0,0 +1,21 @@ +// /obj/item/clothing +/// (/obj/item/clothing, visor_state) - When a clothing gets its visor toggled. +#define COMSIG_CLOTHING_VISOR_TOGGLE "clothing_visor_toggle" +/// From an undersuit being adjusted: () +#define COMSIG_CLOTHING_UNDER_ADJUSTED "clothing_under_adjusted" + +// Accessory sending to clothing +/// /obj/item/clothing/accessory/successful_attach : (obj/item/clothing/under/attached_to) +/// The accessory, at the point of signal sent, is in the clothing's accessory list / loc +#define COMSIG_CLOTHING_ACCESSORY_ATTACHED "clothing_accessory_pinned" +/// /obj/item/clothing/accessory/detach : (obj/item/clothing/under/detach_from) +/// The accessory, at the point of signal sent, is no longer in the accessory list but may still be in the loc +#define COMSIG_CLOTHING_ACCESSORY_DETACHED "clothing_accessory_unpinned" + +// To accessories themselves +/// /obj/item/clothing/accessory/successful_attach : (obj/item/clothing/under/attached_to) +/// The accessory, at the point of signal sent, is in the clothing's accessory list / loc +#define COMSIG_ACCESSORY_ATTACHED "accessory_pinned" +/// /obj/item/clothing/accessory/detach : (obj/item/clothing/under/detach_from) +/// The accessory, at the point of signal sent, is no longer in the accessory list but may still be in the loc +#define COMSIG_ACCESSORY_DETACHED "accessory_unpinned" diff --git a/code/__defines/dcs/signals/signals_component.dm b/code/__defines/dcs/signals/signals_component.dm new file mode 100644 index 0000000000..c201f7e6ab --- /dev/null +++ b/code/__defines/dcs/signals/signals_component.dm @@ -0,0 +1,10 @@ +// conflict checking elements +/// (id) - returns flags - Registered on something by conflict checking elements. +#define COMSIG_CONFLICT_ELEMENT_CHECK "conflict_element_check" + /// A conflict was found + #define ELEMENT_CONFLICT_FOUND (1<<0) + +///Misc signal for checking for godmode. Used by /datum/element/godmode +#define COMSIG_CHECK_FOR_GODMODE "check_for_godmode" +///Returned by /datum/element/godmode if the target is in godmode and whatever we're checking we want to cancel + #define COMSIG_GODMODE_CANCEL (1<<0) diff --git a/code/__defines/dcs/signals/signals_container.dm b/code/__defines/dcs/signals/signals_container.dm new file mode 100644 index 0000000000..c9217d992d --- /dev/null +++ b/code/__defines/dcs/signals/signals_container.dm @@ -0,0 +1,7 @@ +// /datum/component/container_item +/// (atom/container, mob/user) - returns bool +#define COMSIG_CONTAINER_TRY_ATTACH "container_try_attach" + +//NON TG Signals: +///from /obj/structure/closet/close() +#define COMSIG_CLOSET_CLOSED "closet_closed" diff --git a/code/__defines/dcs/signals/signals_customizable.dm b/code/__defines/dcs/signals/signals_customizable.dm new file mode 100644 index 0000000000..6656aac9c0 --- /dev/null +++ b/code/__defines/dcs/signals/signals_customizable.dm @@ -0,0 +1,3 @@ +//Customizable +///called when an atom with /datum/component/ingredients_holder is customized (obj/item/I) +#define COMSIG_ATOM_CUSTOMIZED "atom_customized" diff --git a/code/__defines/dcs/signals/signals_cytology.dm b/code/__defines/dcs/signals/signals_cytology.dm new file mode 100644 index 0000000000..fce8e8a271 --- /dev/null +++ b/code/__defines/dcs/signals/signals_cytology.dm @@ -0,0 +1,5 @@ +//Cytology signals +///Sent from /datum/biological_sample/proc/reset_sample +#define COMSIG_SAMPLE_GROWTH_COMPLETED "sample_growth_completed" +///Sent from /datum/biological_sample/proc/succeed_growing : (atom/grown_thing) +#define COMSIG_SAMPLE_DEPOSITED "sample_deposited" diff --git a/code/__defines/dcs/signals/signals_datum.dm b/code/__defines/dcs/signals/signals_datum.dm index 72439b6f79..7d5d583981 100644 --- a/code/__defines/dcs/signals/signals_datum.dm +++ b/code/__defines/dcs/signals/signals_datum.dm @@ -7,8 +7,11 @@ #define COMSIG_COMPONENT_ADDED "component_added" /// before a component is removed from a datum because of ClearFromParent: (/datum/component) #define COMSIG_COMPONENT_REMOVING "component_removing" + /// before a datum's Destroy() is called: (force), returning a nonzero value will cancel the qdel operation -#define COMSIG_PARENT_PREQDELETED "parent_preqdeleted" +/// you should only be using this if you want to block deletion +/// that's the only functional difference between it and COMSIG_QDELETING, outside setting QDELETING to detect +#define COMSIG_PREQDELETED "parent_preqdeleted" /// just before a datum's Destroy() is called: (force), at this point none of the other components chose to interrupt qdel and Destroy will be called #define COMSIG_QDELETING "parent_qdeleting" /// Called whenever an admin manually deletes an object, via the "Delete" verb, before qdel() is called: (client/deleting_admin) @@ -20,13 +23,37 @@ #define COMPONENT_VV_HANDLED (1<<0) /// from datum ui_act (usr, action) #define COMSIG_UI_ACT "COMSIG_UI_ACT" -/// from datum tgui_fallback (payload) -#define COMSIG_UI_FALLBACK "COMSIG_UI_FALLBACK" /// fires on the target datum when an element is attached to it (/datum/element) #define COMSIG_ELEMENT_ATTACH "element_attach" /// fires on the target datum when an element is detached from it (/datum/element) #define COMSIG_ELEMENT_DETACH "element_detach" -///Called on an object to "clean it", such as removing blood decals/overlays, etc. The clean types bitfield is sent with it. Return TRUE if any cleaning was necessary and thus performed. -#define COMSIG_COMPONENT_CLEAN_ACT "clean_act" +// Merger datum signals +/// Called on the object being added to a merger group: (datum/merger/new_merger) +#define COMSIG_MERGER_ADDING "comsig_merger_adding" +/// Called on the object being removed from a merger group: (datum/merger/old_merger) +#define COMSIG_MERGER_REMOVING "comsig_merger_removing" +/// Called on the merger after finishing a refresh: (list/leaving_members, list/joining_members) +#define COMSIG_MERGER_REFRESH_COMPLETE "comsig_merger_refresh_complete" + +// Gas mixture signals +/// From /datum/gas_mixture/proc/merge: () +#define COMSIG_GASMIX_MERGED "comsig_gasmix_merged" +/// From /datum/gas_mixture/proc/remove: () +#define COMSIG_GASMIX_REMOVED "comsig_gasmix_removed" +/// From /datum/gas_mixture/proc/react: () +#define COMSIG_GASMIX_REACTED "comsig_gasmix_reacted" + +///from /datum/bank_account/pay_debt(), after a portion or all the debt has been paid. +#define COMSIG_BANK_ACCOUNT_DEBT_PAID "bank_account_debt_paid" + +///from /datum/component/on_hit_effect/send_signal(): (user, target, hit_zone) +#define COMSIG_ON_HIT_EFFECT "comsig_on_hit_effect" + +///from /datum/component/bubble_icon_override/get_bubble_icon(): (list/holder) +#define COMSIG_GET_BUBBLE_ICON "get_bubble_icon" + +//NON TG Signals: +/// from datum tgui_fallback (payload) +#define COMSIG_UI_FALLBACK "COMSIG_UI_FALLBACK" diff --git a/code/__defines/dcs/signals/signals_disposals.dm b/code/__defines/dcs/signals/signals_disposals.dm new file mode 100644 index 0000000000..be5b57eff0 --- /dev/null +++ b/code/__defines/dcs/signals/signals_disposals.dm @@ -0,0 +1,11 @@ +///called when a disposal connected object flushes its contents into the disposal pipe network +#define COMSIG_DISPOSAL_FLUSH "disposal_system_flushing" + +///called when a disposal connected object gets a packet from the disposal pipe network +#define COMSIG_DISPOSAL_RECEIVING "disposal_system_receiving" + +///called when the movable is added to a disposal holder object for disposal movement: (obj/structure/disposalholder/holder, obj/machinery/disposal/source) +//#define COMSIG_MOVABLE_DISPOSING "movable_disposing" //This is in signals_atom_movable.dm but kept here for housekeeping. + +///Called right after the atom is flushed into a disposal holder and sent through the disposal network: (/obj/structure/disposalholder) +#define COMSIG_ATOM_DISPOSAL_FLUSHED "atom_disposal_flushed" diff --git a/code/__defines/dcs/signals/signals_door.dm b/code/__defines/dcs/signals/signals_door.dm new file mode 100644 index 0000000000..4f0ba8887d --- /dev/null +++ b/code/__defines/dcs/signals/signals_door.dm @@ -0,0 +1,20 @@ +// /obj/machinery/door signals + +//from /obj/machinery/door/can_open(): +#define COMSIG_DOOR_CAN_OPEN "attempt_door_open" + /// Return to stop the door opening + #define DOOR_DENY_OPEN (1<<0) +//from /obj/machinery/door/can_close(): +#define COMSIG_DOOR_CAN_CLOSE "attempt_door_close" + /// Return to stop the door closing + #define DOOR_DENY_CLOSE (1<<0) +//from /obj/machinery/door/open(): (forced) +#define COMSIG_DOOR_OPEN "door_open" +//from /obj/machinery/door/close(): (forced) +#define COMSIG_DOOR_CLOSE "door_close" +///from /obj/machinery/door/airlock/set_bolt(): +// #define COMSIG_AIRLOCK_SET_BOLT "airlock_set_bolt" //In signals_object.dm +///from /obj/machinery/door/bumpopen(), to the mob who bumped: (door) +#define COMSIG_MOB_BUMPED_DOOR_OPEN "mob_bumped_door_open" + /// Return to stop the door opening on bump. + #define DOOR_STOP_BUMP (1<<0) diff --git a/code/__defines/dcs/signals/signals_event.dm b/code/__defines/dcs/signals/signals_event.dm new file mode 100644 index 0000000000..e966129a03 --- /dev/null +++ b/code/__defines/dcs/signals/signals_event.dm @@ -0,0 +1,10 @@ +// Grey Tide event signals +/// Sent when the Grey Tide event begins affecting the station. +/// (list/area/greytide_areas) +#define COMSIG_GLOB_GREY_TIDE "grey_tide" + +/// A different signal, used specifically for flickering the lights during the event +#define COMSIG_GLOB_GREY_TIDE_LIGHT "grey_tide_light" + +/// Signal sent by round event controls when they create round event datums before calling setup() on them: (datum/round_event_control/source_event_control, datum/round_event/created_event) +#define COMSIG_CREATED_ROUND_EVENT "creating_round_event" diff --git a/code/__defines/dcs/signals/signals_exports.dm b/code/__defines/dcs/signals/signals_exports.dm new file mode 100644 index 0000000000..da179c78d1 --- /dev/null +++ b/code/__defines/dcs/signals/signals_exports.dm @@ -0,0 +1,5 @@ +// /obj/item signals for economy +///called when an item's cargo sale value is scanned +#define COMSIG_ITEM_SCAN_PROFIT "item_scan_profit" +///called when a wrapped up structure is opened by hand +#define COMSIG_STRUCTURE_UNWRAPPED "structure_unwrapped" diff --git a/code/__defines/dcs/signals/signals_fish.dm b/code/__defines/dcs/signals/signals_fish.dm new file mode 100644 index 0000000000..3dda733df1 --- /dev/null +++ b/code/__defines/dcs/signals/signals_fish.dm @@ -0,0 +1,91 @@ +// Aquarium related signals + +///From /datum/component/aquarium/ui_act, when changing the fluid of the aquarium: (fluid_type) +#define COMSIG_AQUARIUM_FLUID_CHANGED "aquarium_fluid_changed" +///From /datum/component/aquarium/can_insert: (obj/item/item) +#define COMSIG_AQUARIUM_CAN_INSERT "aquarium_can_insert" + ///The item will be inserted into the aquarium + #define COMSIG_CAN_INSERT_IN_AQUARIUM (1<<0) + ///The item won't be inserted into the aquarium, but will early return attackby anyway. + #define COMSIG_CANNOT_INSERT_IN_AQUARIUM (1<<1) +///From /datum/component/aquarium_content/set_vc_base_position: (obj/effect/aquarium/visual) +#define COMSIG_AQUARIUM_SET_VISUAL "aquarium_set_visual" +///From /datum/component/aquarium_content/remove_from_aquarium: (obj/effect/aquarium/visual) +#define COMSIG_AQUARIUM_REMOVE_VISUAL "aquarium_remove_visual" +///From /obj/item/fish/try_to_reproduce: (fish, candidates) +#define COMSIG_AQUARIUM_GET_REPRODUCTION_CANDIDATES "aquarium_get_reproduction_candidates" +///From /datum/fish_evolution/check_conditions: (fish, mate, evolution) +#define COMSIG_AQUARIUM_CHECK_EVOLUTION_CONDITIONS "aquarium_check_evolution_conditions" + #define COMPONENT_ALLOW_EVOLUTION (1<<0) + +///Updates the appearance of a newly generated aquarium content visual:(visual) +#define COMSIG_AQUARIUM_CONTENT_GENERATE_APPEARANCE "aquarium_content_apply_appearance" +///Updates the base position of an aquarium content visual:(aquarium, visual) +#define COMSIG_AQUARIUM_CONTENT_RANDOMIZE_POSITION "aquarium_content_randomize_position" +///Updates the animation of an aquarium content visual:(aquarium, visual) +#define COMSIG_AQUARIUM_CONTENT_DO_ANIMATION "aquarium_content_do_animation" + +// Fish signals +#define COMSIG_FISH_STATUS_CHANGED "fish_status_changed" +///From /obj/item/fish/process: (seconds_per_tick) +#define COMSIG_FISH_LIFE "fish_life" +///From /datum/fish_trait/eat_fish: (predator) +#define COMSIG_FISH_EATEN_BY_OTHER_FISH "fish_eaten_by_other_fish" +///From /obj/item/fish/generate_reagents_to_add, which returns a holder when the fish is eaten or composted for example: (list/reagents) +#define COMSIG_GENERATE_REAGENTS_TO_ADD "generate_reagents_to_add" +///From /obj/item/fish/update_size_and_weight: (new_size, new_weight) +#define COMSIG_FISH_UPDATE_SIZE_AND_WEIGHT "fish_update_size_and_weight" +///From /obj/item/fish/update_fish_force: (weight_rank, bonus_malus) +#define COMSIG_FISH_FORCE_UPDATED "fish_force_updated" + +///From /obj/item/fish/interact_with_atom_secondary, sent to the target: (fish) +#define COMSIG_FISH_RELEASED_INTO "fish_released_into" + +///From /datum/fishing_challenge/New: (datum/fishing_challenge/challenge) +#define COMSIG_ROD_BEGIN_FISHING "rod_begin_fishing" +///From /datum/fishing_challenge/New: (datum/fishing_challenge/challenge) +#define COMSIG_MOB_BEGIN_FISHING "mob_begin_fishing" +///From /datum/fishing_challenge/start_minigame_phase: (datum/fishing_challenge/challenge) +#define COMSIG_MOB_BEGIN_FISHING_MINIGAME "mob_begin_fishing_minigame" +///From /datum/fishing_challenge/completed: (datum/fishing_challenge/challenge, win) +#define COMSIG_MOB_COMPLETE_FISHING "mob_complete_fishing" + +/// Rolling a reward path for a fishing challenge +#define COMSIG_FISHING_CHALLENGE_ROLL_REWARD "fishing_roll_reward" +/// Adjusting the difficulty of a rishing challenge, often based on the reward path +#define COMSIG_FISHING_CHALLENGE_GET_DIFFICULTY "fishing_get_difficulty" +/// From /datum/fishing_challenge/start_minigame_phase, called after the fish movement datum is spawned: (datum/fish_movement/mover) +#define COMSIG_FISHING_CHALLENGE_MOVER_INITIALIZED "fishing_mover_initialized" +/// Fishing challenge completed +/// Sent to the fisherman when the reward is dispensed: (reward) +#define COMSIG_FISH_SOURCE_REWARD_DISPENSED "fish_source_reward_dispensed" + +/// Called when an ai-controlled mob interacts with the fishing spot +#define COMSIG_NPC_FISHING "npc_fishing" + #define NPC_FISHING_SPOT 1 + +/// Sent by the target of the fishing rod cast +#define COMSIG_FISHING_ROD_CAST "fishing_rod_cast" + #define FISHING_ROD_CAST_HANDLED (1 << 0) + +/// From /datum/fish_source/proc/dispense_reward(), not set if the reward is a dud: (reward, user) +#define COMSIG_FISHING_ROD_CAUGHT_FISH "fishing_rod_caught_fish" +/// From /obj/item/fishing_rod/proc/hook_item(): (reward, user) +#define COMSIG_FISHING_ROD_HOOKED_ITEM "fishing_rod_hooked_item" + +/// From /obj/item/fishing_rod/set_slot: (obj/item/fishing_rod/rod, slot) +#define COMSIG_ITEM_FISHING_ROD_SLOTTED "item_fishing_rod_slotted" +/// From /obj/item/fishing_rod/Exited: (obj/item/fishing_rod/rod, slot) +#define COMSIG_ITEM_FISHING_ROD_UNSLOTTED "item_fishing_rod_unslotted" + +/// Sent when the challenge is to be interrupted: (reason) +#define COMSIG_FISHING_SOURCE_INTERRUPT_CHALLENGE "fishing_spot_interrupt_challenge" + +/// From /obj/item/fish_analyzer/proc/analyze_status: (fish, user) +#define COMSIG_FISH_ANALYZER_ANALYZE_STATUS "fish_analyzer_analyze_status" + +/// From /datum/component/fish_growth/on_fish_life: (seconds_per_tick) +#define COMSIG_FISH_BEFORE_GROWING "fish_before_growing" + #define COMPONENT_DONT_GROW (1 << 0) +/// From /datum/component/fish_growth/finish_growing: (result) +#define COMSIG_FISH_FINISH_GROWING "fish_finish_growing" diff --git a/code/__defines/dcs/signals/signals_food.dm b/code/__defines/dcs/signals/signals_food.dm new file mode 100644 index 0000000000..e72199c6af --- /dev/null +++ b/code/__defines/dcs/signals/signals_food.dm @@ -0,0 +1,85 @@ + +//Food + +// Eating stuff +/// From datum/component/edible/proc/TakeBite: (atom/owner) +#define COMSIG_LIVING_EAT_FOOD "food_bit" +/// From datum/component/edible/proc/TakeBite: (mob/living/eater, mob/feeder, bitecount, bitesize) +#define COMSIG_FOOD_EATEN "food_eaten" + #define DESTROY_FOOD (1<<0) +/// From base of datum/component/edible/on_entered: (mob/crosser, bitecount) +#define COMSIG_FOOD_CROSSED "food_crossed" +/// From base of Component/edible/On_Consume: (mob/living/eater, mob/living/feeder) +#define COMSIG_FOOD_CONSUMED "food_consumed" +/// called when a pill is injested (mob/living/eater, mob/living/feeder) +#define COMSIG_PILL_CONSUMED "pill_consumed" +/// called when an item is used as an ingredient: (atom/customized) +#define COMSIG_ITEM_USED_AS_INGREDIENT "item_used_as_ingredient" +/// called when an edible ingredient is added: (datum/component/edible/ingredient) +#define COMSIG_FOOD_INGREDIENT_ADDED "edible_ingredient_added" + +/// from base of /datum/component/edible/get_recipe_complexity(): (list/extra_complexity) +#define COMSIG_FOOD_GET_EXTRA_COMPLEXITY "food_get_extra_complexity" + +// Deep frying foods +/// An item becomes fried - From /datum/element/fried_item/Attach: (fry_time) +#define COMSIG_ITEM_FRIED "item_fried" +/// An item entering the deep frying (not fried yet) - From obj/machinery/deepfryer/start_fry: () +#define COMSIG_ITEM_ENTERED_FRYER "item_entered_fryer" + +// Microwaving foods +///called on item when microwaved (): (obj/machinery/microwave/microwave, mob/microwaver) +#define COMSIG_ITEM_MICROWAVE_ACT "microwave_act" + /// Return on success - that is, a microwaved item was produced + #define COMPONENT_MICROWAVE_SUCCESS (1<<0) + /// Returned on "failure" - an item was produced but it was the default fail recipe + #define COMPONENT_MICROWAVE_BAD_RECIPE (1<<1) +///called on item when created through microwaving (): (obj/machinery/microwave/M, cooking_efficiency) +#define COMSIG_ITEM_MICROWAVE_COOKED "microwave_cooked" +///called on the ingredient through microwawing: (result) +#define COMSIG_ITEM_MICROWAVE_COOKED_FROM "item_microwave_cooked_from" + +// Grilling foods (griddle, grill, and bonfire) +///Called when an object is placed onto a griddle +#define COMSIG_ITEM_GRILL_PLACED "item_placed_on_griddle" +///Called when a griddle is turned on +#define COMSIG_ITEM_GRILL_TURNED_ON "item_grill_turned_on" +///Called when a griddle is turned off +#define COMSIG_ITEM_GRILL_TURNED_OFF "item_grill_turned_off" +///Called when an object is grilled ontop of a griddle +#define COMSIG_ITEM_GRILL_PROCESS "item_griddled" + /// Return to not burn the item + #define COMPONENT_HANDLED_GRILLING (1<<0) +///Called when an object is turned into another item through grilling ontop of a griddle +#define COMSIG_ITEM_GRILLED "item_grill_completed" +///Sent to the newly spawned object when it's grilled on a griddle. +#define COMSIG_ITEM_GRILLED_RESULT "item_grilled_result" + +///Called when the object is grilled by the grill (not to be confused by the griddle, but oh gee the two should be merged in one) +#define COMSIG_ITEM_BARBEQUE_GRILLED "item_barbeque_grilled" + +// Baking foods (oven) +//Called when an object is inserted into an oven (atom/oven, mob/baker) +#define COMSIG_ITEM_OVEN_PLACED_IN "item_placed_in_oven" +//Called when an object is in an oven +#define COMSIG_ITEM_OVEN_PROCESS "item_baked" + /// Return to not burn the item + #define COMPONENT_HANDLED_BAKING (1<<0) + /// Return if the result of the baking was a good thing + #define COMPONENT_BAKING_GOOD_RESULT (1<<1) + /// Return if the result of the baking was a bad thing / failuire + #define COMPONENT_BAKING_BAD_RESULT (1<<2) +///Called when an object is turned into another item through baking in an oven +#define COMSIG_ITEM_BAKED "item_bake_completed" +///Sent to the newly spawned object when it's baked in an oven. +#define COMSIG_ITEM_BAKED_RESULT "item_baked_result" + +///Called on the result spawned during decomposition: (obj/decomposed) +#define COMSIG_OBJ_DECOMPOSITION_RESULT "obj_decomposition_result" + +//Drink + +///from base of: +/// /obj/item/reagent_containers/food/drinks/proc/On_Consume(var/mob/living/eater, var/mob/feeder, var/changed = FALSE) +/// and /obj/item/reagent_containers/proc/standard_feed_mob(var/mob/user, var/mob/target) +#define COMSIG_GLASS_DRANK "glass_drank" diff --git a/code/__defines/dcs/signals/signals_gargoyle.dm b/code/__defines/dcs/signals/signals_gargoyle.dm new file mode 100644 index 0000000000..c177610a68 --- /dev/null +++ b/code/__defines/dcs/signals/signals_gargoyle.dm @@ -0,0 +1,7 @@ +// Gargoyle Component +///from /mob/living/carbon/human/proc/gargoyle_transformation() +#define COMSIG_GARGOYLE_TRANSFORMATION "gargoyle_transformation" +///from /mob/living/carbon/human/proc/gargoyle_pause() +#define COMSIG_GARGOYLE_PAUSE "gargoyle_pause" +///from /mob/living/carbon/human/proc/gargoyle_checkenergy() +#define COMSIG_GARGOYLE_CHECK_ENERGY "gargoyle_check_energy" diff --git a/code/__defines/dcs/signals/signals_gib.dm b/code/__defines/dcs/signals/signals_gib.dm new file mode 100644 index 0000000000..a5c54e38de --- /dev/null +++ b/code/__defines/dcs/signals/signals_gib.dm @@ -0,0 +1,5 @@ +//Gibs +///from base of /obj/effect/decal/cleanable/blood/gibs/streak(): (list/directions, list/diseases) +#define COMSIG_GIBS_STREAK "gibs_streak" +/// Called on mobs when they step in blood. (obj/effect/decal/cleanable/blood/blood) +#define COMSIG_STEP_ON_BLOOD "step_on_blood" diff --git a/code/__defines/dcs/signals/signals_global.dm b/code/__defines/dcs/signals/signals_global.dm new file mode 100644 index 0000000000..e7944ee88c --- /dev/null +++ b/code/__defines/dcs/signals/signals_global.dm @@ -0,0 +1,160 @@ +// Global signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +// global signals +// These are signals which can be listened to by any component on any parent +// start global signals with "!", this used to be necessary but now it's just a formatting choice + + +/// called after a successful area creation by a mob: (area/created_area, list/area/old_areas, mob/creator) +#define COMSIG_AREA_CREATED "!mob_created_area" +///from base of datum/controller/subsystem/mapping/proc/add_new_zlevel(): (list/args) +#define COMSIG_GLOB_NEW_Z "!new_z" +/// sent after world.maxx and/or world.maxy are expanded: (has_exapnded_world_maxx, has_expanded_world_maxy) +#define COMSIG_GLOB_EXPANDED_WORLD_BOUNDS "!expanded_world_bounds" +/// called after a successful var edit somewhere in the world: (list/args) +#define COMSIG_GLOB_VAR_EDIT "!var_edit" +/// called after an explosion happened : (epicenter, devastation_range, heavy_impact_range, light_impact_range, took, orig_dev_range, orig_heavy_range, orig_light_range) +#define COMSIG_GLOB_EXPLOSION "!explosion" +/// Called from base of /mob/Initialise : (mob) +#define COMSIG_GLOB_MOB_CREATED "!mob_created" +/// mob died somewhere : (mob/living, gibbed) +#define COMSIG_GLOB_MOB_DEATH "!mob_death" +/// global living say plug - use sparingly: (mob/speaker , message) +#define COMSIG_GLOB_LIVING_SAY_SPECIAL "!say_special" +/// called by datum/cinematic/play() : (datum/cinematic/new_cinematic) +#define COMSIG_GLOB_PLAY_CINEMATIC "!play_cinematic" + #define COMPONENT_GLOB_BLOCK_CINEMATIC (1<<0) +/// ingame button pressed (/obj/machinery/button/button) +#define COMSIG_GLOB_BUTTON_PRESSED "!button_pressed" +/// job subsystem has spawned and equipped a new mob +#define COMSIG_GLOB_JOB_AFTER_SPAWN "!job_after_spawn" +/// job datum has been called to deal with the aftermath of a latejoin spawn +#define COMSIG_GLOB_JOB_AFTER_LATEJOIN_SPAWN "!job_after_latejoin_spawn" +/// crewmember joined the game (mob/living, rank) +#define COMSIG_GLOB_CREWMEMBER_JOINED "!crewmember_joined" +/// Random event is trying to roll. (/datum/round_event_control/random_event) +/// Called by (/datum/round_event_control/preRunEvent). +#define COMSIG_GLOB_PRE_RANDOM_EVENT "!pre_random_event" + /// Do not allow this random event to continue. + #define CANCEL_PRE_RANDOM_EVENT (1<<0) +/// Called by (/datum/round_event_control/run_event). +#define COMSIG_GLOB_RANDOM_EVENT "!random_event" + /// Do not allow this random event to continue. + #define CANCEL_RANDOM_EVENT (1<<0) +/// a trapdoor remote has sent out a signal to link with a trapdoor +#define COMSIG_GLOB_TRAPDOOR_LINK "!trapdoor_link" + ///successfully linked to a trapdoor! + #define LINKED_UP (1<<0) +/// an obj/item is created! (obj/item/created_item) +#define COMSIG_GLOB_NEW_ITEM "!new_item" +/// called post /obj/item initialize (obj/item/created_item) +#define COMSIG_GLOB_ATOM_AFTER_POST_INIT "!atom_after_post_init" +/// an obj/machinery is created! (obj/machinery/created_machine) +#define COMSIG_GLOB_NEW_MACHINE "!new_machine" +/// a client (re)connected, after all /client/New() checks have passed : (client/connected_client) +#define COMSIG_GLOB_CLIENT_CONNECT "!client_connect" +/// a weather event of some kind occurred +#define COMSIG_WEATHER_TELEGRAPH(event_type) "!weather_telegraph [event_type]" +#define COMSIG_WEATHER_START(event_type) "!weather_start [event_type]" +#define COMSIG_WEATHER_WINDDOWN(event_type) "!weather_winddown [event_type]" +#define COMSIG_WEATHER_END(event_type) "!weather_end [event_type]" +/// An alarm of some form was sent (datum/alarm_handler/source, alarm_type, area/source_area) +#define COMSIG_GLOB_ALARM_FIRE(alarm_type) "!alarm_fire [alarm_type]" +/// An alarm of some form was cleared (datum/alarm_handler/source, alarm_type, area/source_area) +#define COMSIG_GLOB_ALARM_CLEAR(alarm_type) "!alarm_clear [alarm_type]" +///global mob logged in signal! (/mob/added_player) +#define COMSIG_GLOB_MOB_LOGGED_IN "!mob_logged_in" + +/// global signal sent when a nuclear device is armed (/obj/machinery/nuclearbomb/nuke/exploding_nuke) +#define COMSIG_GLOB_NUKE_DEVICE_ARMED "!nuclear_device_armed" +/// global signal sent when a nuclear device is disarmed (/obj/machinery/nuclearbomb/nuke/disarmed_nuke) +#define COMSIG_GLOB_NUKE_DEVICE_DISARMED "!nuclear_device_disarmed" + +/// global signal sent when a nuclear device is detonating (/obj/machinery/nuclearbomb/nuke/exploding_nuke) +#define COMSIG_GLOB_NUKE_DEVICE_DETONATING "!nuclear_device_detonating" + +/// Global signal sent when a puzzle piece is completed (light mechanism, etc.) (try_id) +#define COMSIG_GLOB_PUZZLE_COMPLETED "!puzzle_completed" + +/// Global signal called after the station changes its name. +/// (new_name, old_name) +#define COMSIG_GLOB_STATION_NAME_CHANGED "!station_name_changed" + +/// Global signal sent before we decide what job everyone has +#define COMSIG_GLOB_PRE_JOBS_ASSIGNED "!pre_roles_assigned" + +/// global signal when a global nullrod type is picked +#define COMSIG_GLOB_NULLROD_PICKED "!nullrod_picked" + +/// Global signal when light debugging is canceled +#define COMSIG_LIGHT_DEBUG_DISABLED "!light_debug_disabled" + +/// Global signal when starlight color is changed (old_star, new_star) +#define COMSIG_STARLIGHT_COLOR_CHANGED "!starlight_color_changed" + +/// Global signal sent when a religious sect is chosen +#define COMSIG_RELIGIOUS_SECT_CHANGED "!religious_sect_changed" +/// Global signal sent when a religious sect is reset +#define COMSIG_RELIGIOUS_SECT_RESET "!religious_sect_reset" + +/// Global signal sent when narsie summon count is updated: (new count) +#define COMSIG_NARSIE_SUMMON_UPDATE "!narsie_summon_update" + +/// Global signal sent when a mob is spawned from a ghost in a dynamic ruleset (mob/spawned_mob) +#define COMSIG_RULESET_BODY_GENERATED_FROM_GHOSTS "!ruleset_body_generated_from_ghosts" + +/// Global signal whenever a camera network broadcast is started/stopped/updated: (camera_net, is_show_active, announcement) +#define COMSIG_GLOB_NETWORK_BROADCAST_UPDATED "!network_broadcast_updated" + +// NON TG SPECIFIC SIGNALS: + +// Shuttle Comsigs +/// Supply shuttle selling, before all items are sold, called by /datum/controller/subsystem/supply/proc/sell() : (/list/area/supply_shuttle_areas) +#define COMSIG_GLOB_SUPPLY_SHUTTLE_DEPART "!sell_supply_shuttle" +/// Supply shuttle selling, for each item sold, called by /datum/controller/subsystem/supply/proc/sell() : (atom/movable/sold_item, sold_successfully, datum/exported_crate/export_data, area/shuttle_subarea) +#define COMSIG_GLOB_SUPPLY_SHUTTLE_SELL_ITEM "!supply_shuttle_sell_item" +/// Mind inserted into body: (mob/new_owner, /datum/mind/assigned_mind) +#define COMSIG_GLOB_RESLEEVED_MIND "!resleeved_mind_into_body" + +/// /datum/controller/subsystem/ticker/proc/setup() : () +#define COMSIG_GLOB_ROUND_START "!round_start" +/// /datum/controller/subsystem/ticker/proc/post_game_tick() : () +#define COMSIG_GLOB_ROUND_END "!round_end" + +//NON TG Signals: +/// borg created: (mob/living/silicon/robot/new_robot) +#define COMSIG_GLOB_BORGIFY "!borgify_mob" +/// brain removed from body, called by /obj/item/organ/internal/brain/proc/transfer_identity() : (mob/living/carbon/brain/brainmob) +#define COMSIG_GLOB_BRAIN_REMOVED "!brain_removed_from_mob" +/// ID card modified: (obj/item/card/id/modified_card) +#define COMSIG_GLOB_REASSIGN_EMPLOYEE_IDCARD "!modified_employee_idcard" +/// ID card terminated: (obj/item/card/id/terminated_card) +#define COMSIG_GLOB_TERMINATE_EMPLOYEE_IDCARD "!modified_terminated_idcard" +/// payment account status changed /obj/machinery/account_database/tgui_act() : (datum/money_account/account) +#define COMSIG_GLOB_PAYMENT_ACCOUNT_STATUS "!payment_account_change_status" +/// payment account status changed /obj/machinery/account_database/tgui_act() : (datum/money_account/account) +#define COMSIG_GLOB_PAYMENT_ACCOUNT_REVOKE "!payment_account_revoke_payroll" + +// base /decl/emote/proc/do_emote() : (mob/user, extra_params) +#define COMSIG_GLOB_EMOTE_PERFORMED "!emote_performed" +// base /proc/say_dead_direct() : (message) +#define COMSIG_GLOB_DEAD_SAY "!dead_say" +// base /turf/wash() : () +#define COMSIG_GLOB_WASHED_FLOOR "!washed_floor" +// base /obj/machinery/artifact_harvester/proc/harvest() : (obj/item/anobattery/inserted_battery, mob/user) +#define COMSIG_GLOB_HARVEST_ARTIFACT "!harvest_artifact" +// upon harvesting a slime's extract : (obj/item/slime_extract/newly_made_core) +#define COMSIG_GLOB_HARVEST_SLIME_CORE "!harvest_slime_core" +// base /datum/recipe/proc/make_food() : (obj/container, list/results) +#define COMSIG_GLOB_FOOD_PREPARED "!recipe_food_completed" +// base /datum/construction/proc/spawn_result() : (/obj/mecha/result_mech) +#define COMSIG_GLOB_MECH_CONSTRUCTED "!mecha_constructed" +// when trashpiles are successfully searched : (mob/living/user, list/searched_by) +#define COMSIG_GLOB_TRASHPILE_SEARCHED "!trash_pile_searched" +// upon forensics swap or sample kit forensics collection : (atom/target, mob/user) +#define COMSIG_GLOB_FORENSICS_COLLECTED "!performed_forensics_collection" + +// base /obj/item/autopsy_scanner/do_surgery() : (mob/user, mob/target) +#define COMSIG_GLOB_AUTOPSY_PERFORMED "!performed_autopsy" diff --git a/code/__defines/dcs/signals/signals_global_object.dm b/code/__defines/dcs/signals/signals_global_object.dm new file mode 100644 index 0000000000..d100f47a3c --- /dev/null +++ b/code/__defines/dcs/signals/signals_global_object.dm @@ -0,0 +1,16 @@ +/// signals from globally accessible objects + +///from SSJob whenever setup_occupations() is called, all occupations are set +#define COMSIG_OCCUPATIONS_SETUP "occupations_setup" + +///from SSJob when divide_occupations() is called +#define COMSIG_OCCUPATIONS_DIVIDED "occupations_divided" + +///from SSsun when the sun changes position : (azimuth) +#define COMSIG_SUN_MOVED "sun_moved" + +///from SSsecurity_level when the security level changes : (new_level) +#define COMSIG_SECURITY_LEVEL_CHANGED "security_level_changed" + +///from SSshuttle when the supply shuttle starts spawning orders : () +#define COMSIG_SUPPLY_SHUTTLE_BUY "supply_shuttle_buy" diff --git a/code/__defines/dcs/signals/signals_greyscale.dm b/code/__defines/dcs/signals/signals_greyscale.dm new file mode 100644 index 0000000000..b3192760cd --- /dev/null +++ b/code/__defines/dcs/signals/signals_greyscale.dm @@ -0,0 +1 @@ +#define COMSIG_GREYSCALE_CONFIG_REFRESHED "greyscale_config_refreshed" diff --git a/code/__defines/dcs/signals/signals_heretic.dm b/code/__defines/dcs/signals/signals_heretic.dm new file mode 100644 index 0000000000..14fe7a51e5 --- /dev/null +++ b/code/__defines/dcs/signals/signals_heretic.dm @@ -0,0 +1,26 @@ +/// Heretic signals + +/// From /datum/action/cooldown/spell/touch/mansus_grasp/cast_on_hand_hit : (mob/living/source, mob/living/target) +#define COMSIG_HERETIC_MANSUS_GRASP_ATTACK "mansus_grasp_attack" + /// Default behavior is to use the hand, so return this to blocks the mansus fist from being consumed after use. + #define COMPONENT_BLOCK_HAND_USE (1<<0) +/// From /datum/action/cooldown/spell/touch/mansus_grasp/cast_on_secondary_hand_hit : (mob/living/source, atom/target) +#define COMSIG_HERETIC_MANSUS_GRASP_ATTACK_SECONDARY "mansus_grasp_attack_secondary" + /// Default behavior is to continue attack chain and do nothing else, so return this to use up the hand after use. + #define COMPONENT_USE_HAND (1<<0) + +/// From /obj/item/melee/sickly_blade/afterattack : (mob/living/source, mob/living/target) +#define COMSIG_HERETIC_BLADE_ATTACK "blade_attack" +/// From /obj/item/melee/sickly_blade/ranged_interact_with_atom (without proximity) : (mob/living/source, mob/living/target) +#define COMSIG_HERETIC_RANGED_BLADE_ATTACK "ranged_blade_attack" + +/// For [/datum/status_effect/protective_blades] to signal when it is triggered +#define COMSIG_BLADE_BARRIER_TRIGGERED "blade_barrier_triggered" + +/// at the end of determine_drafted_knowledge +#define COMSIG_HERETIC_SHOP_SETUP "heretic_shop_finished" + +/// called on the antagonist datum, upgrades the passive to level 2 +#define COMSIG_HERETIC_PASSIVE_UPGRADE_FIRST "heretic_passive_upgrade_first" +/// called on the antagonist datum, upgrades the passive to level 3 +#define COMSIG_HERETIC_PASSIVE_UPGRADE_FINAL "heretic_passive_upgrade_final" diff --git a/code/__defines/dcs/signals/signals_hose.dm b/code/__defines/dcs/signals/signals_hose.dm new file mode 100644 index 0000000000..3713152ba4 --- /dev/null +++ b/code/__defines/dcs/signals/signals_hose.dm @@ -0,0 +1,2 @@ +// Hose Connector Component +#define COMSIG_HOSE_FORCEPUMP "hose_force_pump" diff --git a/code/__defines/dcs/signals/signals_hud.dm b/code/__defines/dcs/signals/signals_hud.dm new file mode 100644 index 0000000000..b141f7d8f5 --- /dev/null +++ b/code/__defines/dcs/signals/signals_hud.dm @@ -0,0 +1,12 @@ +/// Sent from /datum/hud/proc/on_eye_change(): (atom/old_eye, atom/new_eye) +#define COMSIG_HUD_EYE_CHANGED "hud_eye_changed" +/// Sent from /datum/hud/proc/eye_z_changed() : (new_z) +#define COMSIG_HUD_Z_CHANGED "hud_z_changed" +/// Sent from /datum/hud/proc/eye_z_changed() : (old_offset, new_offset) +#define COMSIG_HUD_OFFSET_CHANGED "hud_offset_changed" +/// Sent from /atom/movable/screen/lobby/button/collapse/proc/collapse_buttons() : () +#define COMSIG_HUD_LOBBY_COLLAPSED "hud_lobby_collapsed" +/// Sent from /atom/movable/screen/lobby/button/collapse/proc/expand_buttons() : () +#define COMSIG_HUD_LOBBY_EXPANDED "hud_lobby_expanded" +/// Sent from /atom/movable/screen/lobby/button/ready/Click() : () +#define COMSIG_HUD_PLAYER_READY_TOGGLE "hud_player_ready_toggle" diff --git a/code/__defines/dcs/signals/signals_hydroponic.dm b/code/__defines/dcs/signals/signals_hydroponic.dm new file mode 100644 index 0000000000..204239b236 --- /dev/null +++ b/code/__defines/dcs/signals/signals_hydroponic.dm @@ -0,0 +1,35 @@ +//Plants / Plant Traits + +///called when a plant with slippery skin is slipped on (mob/victim) +#define COMSIG_PLANT_ON_SLIP "plant_on_slip" +///called when a plant with liquid contents is squashed on (atom/target) +#define COMSIG_PLANT_ON_SQUASH "plant_on_squash" +///called when a plant backfires via the backfire element (mob/victim) +#define COMSIG_PLANT_ON_BACKFIRE "plant_on_backfire" +///called when a seed grows in a tray (obj/machinery/hydroponics) +#define COMSIG_SEED_ON_GROW "plant_on_grow" +///called when a seed is planted in a tray (obj/machinery/hydroponics) +#define COMSIG_SEED_ON_PLANTED "plant_on_plant" + +//Hydro tray +///from base of /obj/machinery/hydroponics/set_seed() : (obj/item/new_seed) +#define COMSIG_HYDROTRAY_SET_SEED "hydrotray_set_seed" +///from base of /obj/machinery/hydroponics/set_self_sustaining() : (new_value) +#define COMSIG_HYDROTRAY_SET_SELFSUSTAINING "hydrotray_set_selfsustaining" +///from base of /obj/machinery/hydroponics/set_weedlevel() : (new_value) +#define COMSIG_HYDROTRAY_SET_WEEDLEVEL "hydrotray_set_weedlevel" +///from base of /obj/machinery/hydroponics/set_pestlevel() : (new_value) +#define COMSIG_HYDROTRAY_SET_PESTLEVEL "hydrotray_set_pestlevel" +///from base of /obj/machinery/hydroponics/set_waterlevel() : (new_value) +#define COMSIG_HYDROTRAY_SET_WATERLEVEL "hydrotray_set_waterlevel" +///from base of /obj/machinery/hydroponics/set_plant_health() : (new_value) +#define COMSIG_HYDROTRAY_SET_PLANT_HEALTH "hydrotray_set_plant_health" +///from base of /obj/machinery/hydroponics/set_toxic() : (new_value) +#define COMSIG_HYDROTRAY_SET_TOXIC "hydrotray_set_toxic" +///from base of /obj/machinery/hydroponics/set_plant_status() : (new_value) +#define COMSIG_HYDROTRAY_SET_PLANT_STATUS "hydrotray_set_plant_status" +///from base of /obj/machinery/hydroponics/update_tray() : (mob/user, product_count) +#define COMSIG_HYDROTRAY_ON_HARVEST "hydrotray_on_harvest" +///from base of /obj/machinery/hydroponics/plantdies() +#define COMSIG_HYDROTRAY_PLANT_DEATH "hydrotray_plant_death" +///from base of obj/item/attack(): (/mob/living/target, /mob/living/user) diff --git a/code/__defines/dcs/signals/signals_instrument.dm b/code/__defines/dcs/signals/signals_instrument.dm new file mode 100644 index 0000000000..be64d05efd --- /dev/null +++ b/code/__defines/dcs/signals/signals_instrument.dm @@ -0,0 +1,6 @@ +// /datum/song signals + +///sent to the instrument when a song starts playing +#define COMSIG_SONG_START "song_start" +///sent to the instrument when a song stops playing +#define COMSIG_SONG_END "song_end" diff --git a/code/__defines/dcs/signals/signals_janitor.dm b/code/__defines/dcs/signals/signals_janitor.dm new file mode 100644 index 0000000000..ebec9bcc93 --- /dev/null +++ b/code/__defines/dcs/signals/signals_janitor.dm @@ -0,0 +1,19 @@ +//Janitor + +///Called on an object to "clean it", such as removing blood decals/overlays, etc. The clean types bitfield is sent with it. Return TRUE if any cleaning was necessary and thus performed. +#define COMSIG_COMPONENT_CLEAN_ACT "clean_act" + ///Returned by cleanable components when they are cleaned. + #define COMPONENT_CLEANED (1<<0) + ///Returned by cleanable components when they are cleaned and give xp for it. + #define COMPONENT_CLEANED_GAIN_XP (1<<1) + +// Vacuum signals +/// Called on a bag being attached to a vacuum parent +#define COMSIG_VACUUM_BAG_ATTACH "comsig_vacuum_bag_attach" +/// Called on a bag being detached from a vacuum parent +#define COMSIG_VACUUM_BAG_DETACH "comsig_vacuum_bag_detach" + +///(): Returns bitflags of wet values. +#define COMSIG_TURF_IS_WET "check_turf_wet" +///(max_strength, immediate, duration_decrease = INFINITY): Returns bool. +#define COMSIG_TURF_MAKE_DRY "make_turf_try" diff --git a/code/__defines/dcs/signals/signals_key.dm b/code/__defines/dcs/signals/signals_key.dm new file mode 100644 index 0000000000..58448562cb --- /dev/null +++ b/code/__defines/dcs/signals/signals_key.dm @@ -0,0 +1,2 @@ +///Called when a keycard is sending a department's access. (obj/machinery/keycard_auth/source, list/region_access) +#define COMSIG_ON_DEPARTMENT_ACCESS "on_department_access" diff --git a/code/__defines/dcs/signals/signals_ladder.dm b/code/__defines/dcs/signals/signals_ladder.dm new file mode 100644 index 0000000000..ed398e9012 --- /dev/null +++ b/code/__defines/dcs/signals/signals_ladder.dm @@ -0,0 +1,3 @@ +/// Called on a mob attempting to use a ladder to go in either direction. (entrance_ladder, exit_ladder, going_up) +#define COMSIG_LADDER_TRAVEL "ladder-travel" + #define LADDER_TRAVEL_BLOCK (1<<0) diff --git a/code/__defines/dcs/signals/signals_lattice.dm b/code/__defines/dcs/signals/signals_lattice.dm new file mode 100644 index 0000000000..fe45ad5cf5 --- /dev/null +++ b/code/__defines/dcs/signals/signals_lattice.dm @@ -0,0 +1,4 @@ +//From base of /obj/structure/lattice/proc/replace_with_catwalk() : (list/post_replacement_callbacks) +/// `post_replacement_callbacks` is a list that signal handlers can mutate to append `/datum/callback` objects. +/// They will be called with the new catwalk after it has been initialized. +#define COMSIG_LATTICE_PRE_REPLACE_WITH_CATWALK "lattice_pre_replace_with_catwalk" diff --git a/code/__defines/dcs/signals/signals_lazy_templates.dm b/code/__defines/dcs/signals/signals_lazy_templates.dm new file mode 100644 index 0000000000..1c6ce7926e --- /dev/null +++ b/code/__defines/dcs/signals/signals_lazy_templates.dm @@ -0,0 +1,2 @@ +/// Fired on the lazy template datum when the template is finished loading. (list/loaded_atom_movables, list/loaded_turfs, list/loaded_areas) +#define COMSIG_LAZY_TEMPLATE_LOADED "lazy_template_loaded" diff --git a/code/__defines/dcs/signals/signals_leash.dm b/code/__defines/dcs/signals/signals_leash.dm new file mode 100644 index 0000000000..4f83d79090 --- /dev/null +++ b/code/__defines/dcs/signals/signals_leash.dm @@ -0,0 +1,11 @@ +/// Called when a /datum/component/leash must forcibly teleport the parent to the owner. +/// Fired on the object with the leash component. +#define COMSIG_LEASH_FORCE_TELEPORT "leash_force_teleport" + +/// Called when a /datum/component/leash plans on pathfinding to the target, if out of range. +/// Fired on the object with the leash component. +#define COMSIG_LEASH_PATH_STARTED "leash_path_started" + +/// Called when a /datum/component/leash finishes its pathfinding to the target. +/// Fired on the object with the leash component. +#define COMSIG_LEASH_PATH_COMPLETE "leash_path_complete" diff --git a/code/__defines/dcs/signals/signals_lift.dm b/code/__defines/dcs/signals/signals_lift.dm new file mode 100644 index 0000000000..b2ecbf0700 --- /dev/null +++ b/code/__defines/dcs/signals/signals_lift.dm @@ -0,0 +1,2 @@ +/// Sent from /datum/transport_controller when a normal lift starts or stops going up or down. (direction if started or 0 if stopped) +#define COMSIG_LIFT_SET_DIRECTION "lift_set_direction" diff --git a/code/__defines/dcs/signals/signals_light_eater.dm b/code/__defines/dcs/signals/signals_light_eater.dm new file mode 100644 index 0000000000..319b52f059 --- /dev/null +++ b/code/__defines/dcs/signals/signals_light_eater.dm @@ -0,0 +1,9 @@ +// /datum/element/light_eater +///from base of [/datum/element/light_eater/proc/table_buffet]: (list/light_queue, datum/light_eater) +#define COMSIG_LIGHT_EATER_QUEUE "light_eater_queue" +///from base of [/datum/element/light_eater/proc/devour]: (datum/light_eater) +#define COMSIG_LIGHT_EATER_ACT "light_eater_act" + ///Prevents the default light eater behavior from running in case of immunity or custom behavior + #define COMPONENT_BLOCK_LIGHT_EATER (1<<0) +///from base of [/datum/element/light_eater/proc/devour]: (atom/eaten_light) +#define COMSIG_LIGHT_EATER_DEVOUR "light_eater_devour" diff --git a/code/__defines/dcs/signals/signals_lootpiles.dm b/code/__defines/dcs/signals/signals_lootpiles.dm new file mode 100644 index 0000000000..bd2bfdd9de --- /dev/null +++ b/code/__defines/dcs/signals/signals_lootpiles.dm @@ -0,0 +1 @@ +#define COMSIG_LOOT_REWARD "lootpile_reward_drop" diff --git a/code/__defines/dcs/signals/signals_market.dm b/code/__defines/dcs/signals/signals_market.dm new file mode 100644 index 0000000000..86e3d9277a --- /dev/null +++ b/code/__defines/dcs/signals/signals_market.dm @@ -0,0 +1,2 @@ +///From /datum/market_item/spawn_item(): (uplink, shipping_method, shipping_loc) +#define COMSIG_MARKET_ITEM_SPAWNED "market_item_spawned" diff --git a/code/__defines/dcs/signals/signals_material_container.dm b/code/__defines/dcs/signals/signals_material_container.dm index 2c77be55c3..86056976bc 100644 --- a/code/__defines/dcs/signals/signals_material_container.dm +++ b/code/__defines/dcs/signals/signals_material_container.dm @@ -7,8 +7,8 @@ #define MATCONTAINER_BLOCK_INSERT (1<<1) /// Called from datum/component/material_container/proc/insert_item() : (item, primary_mat, mats_consumed, material_amount, context) #define COMSIG_MATCONTAINER_ITEM_CONSUMED "matcontainer_item_consumed" -/// Called from datum/component/material_container/proc/retrieve_sheets() : (new_sheets, context) -#define COMSIG_MATCONTAINER_SHEETS_RETRIEVED "matcontainer_sheets_retrieved" +/// Called from datum/component/material_container/proc/retrieve_stack() : (new_stack, context) +#define COMSIG_MATCONTAINER_STACK_RETRIEVED "matcontainer_stack_retrieved" //mat container signals but from the ore silo's perspective /// Called from /obj/machinery/ore_silo/on_item_consumed() : (container, item_inserted, last_inserted_id, mats_consumed, amount_inserted) diff --git a/code/__defines/dcs/signals/signals_medical.dm b/code/__defines/dcs/signals/signals_medical.dm new file mode 100644 index 0000000000..39bcb1d7cd --- /dev/null +++ b/code/__defines/dcs/signals/signals_medical.dm @@ -0,0 +1,25 @@ +/// From /datum/surgery/New(): (datum/surgery/surgery, surgery_location (body zone), obj/item/bodypart/targeted_limb) +#define COMSIG_MOB_SURGERY_STARTED "mob_surgery_started" + +/// From /datum/surgery/Destroy(): (surgery_type, surgery_location, obj/item/bodypart/targeted_limb) +#define COMSIG_MOB_SURGERY_FINISHED "mob_surgery_finished" + +/// From /datum/surgery_step/success(): (datum/surgery_step/step, mob/living/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results) +#define COMSIG_MOB_SURGERY_STEP_SUCCESS "mob_surgery_step_success" + +/// From /obj/item/shockpaddles/do_help, after the defib do_after is complete, but before any effects are applied: (mob/living/defibber, obj/item/shockpaddles/source) +#define COMSIG_DEFIBRILLATOR_PRE_HELP_ZAP "carbon_being_defibbed" + /// Return to stop default defib handling + #define COMPONENT_DEFIB_STOP (1<<0) + +/// From /obj/item/shockpaddles/proc/do_success(): (obj/item/shockpaddles/source) +#define COMSIG_DEFIBRILLATOR_SUCCESS "defib_success" + // #define COMPONENT_DEFIB_STOP (1<<0) // Same return, to stop default defib handling + +/// From /obj/item/shockpaddles/proc/do_disarm(), sent to the shock-ee in non-revival scenarios: (obj/item/shockpaddles/source) +#define COMSIG_HEARTATTACK_DEFIB "heartattack_defib" + +/// From /datum/surgery/can_start(): (mob/source, datum/surgery/surgery, mob/living/patient) +#define COMSIG_SURGERY_STARTING "surgery_starting" + #define COMPONENT_CANCEL_SURGERY (1<<0) + #define COMPONENT_FORCE_SURGERY (1<<1) diff --git a/code/__defines/dcs/signals/signals_mind.dm b/code/__defines/dcs/signals/signals_mind.dm new file mode 100644 index 0000000000..e9a62a2610 --- /dev/null +++ b/code/__defines/dcs/signals/signals_mind.dm @@ -0,0 +1,11 @@ +///from mind/transfer_to. Sent after the mind has been transferred: (mob/previous_body) +#define COMSIG_MIND_TRANSFERRED "mind_transferred" + +/// Called on the mind when an antagonist is being gained, after the antagonist list has updated (datum/antagonist/antagonist) +#define COMSIG_ANTAGONIST_GAINED "antagonist_gained" + +/// Called on the mind when an antagonist is being removed, after the antagonist list has updated (datum/antagonist/antagonist) +#define COMSIG_ANTAGONIST_REMOVED "antagonist_removed" + +/// Called on the mob when losing an antagonist datum (datum/antagonist/antagonist) +#define COMSIG_MOB_ANTAGONIST_REMOVED "mob_antagonist_removed" diff --git a/code/__defines/dcs/signals/signals_mining.dm b/code/__defines/dcs/signals/signals_mining.dm new file mode 100644 index 0000000000..3ef84b1f7b --- /dev/null +++ b/code/__defines/dcs/signals/signals_mining.dm @@ -0,0 +1,9 @@ +/// Sent from /obj/structure/ore_vent, lets the spawner component know to qdel. +#define COMSIG_VENT_WAVE_CONCLUDED "mining_waves_stop" + +/// Fired by a mob which has been grabbed by a goliath +#define COMSIG_GOLIATH_TENTACLED_GRABBED "comsig_goliath_tentacle_grabbed" +/// Fired by a goliath tentacle which is returning to the earth +#define COMSIG_GOLIATH_TENTACLE_RETRACTING "comsig_goliath_tentacle_retracting" +/// Fired by a mob which has triggered a brimdust explosion from itself (not the mobs that get hit) +#define COMSIG_BRIMDUST_EXPLOSION "comsig_brimdust_explosion" diff --git a/code/__defines/dcs/signals/signals_mob/signals_mob_ai.dm b/code/__defines/dcs/signals/signals_mob/signals_mob_ai.dm new file mode 100644 index 0000000000..1c6fcbffbd --- /dev/null +++ b/code/__defines/dcs/signals/signals_mob/signals_mob_ai.dm @@ -0,0 +1,16 @@ +/// Signal sent when a blackboard key is set to a new value +#define COMSIG_AI_BLACKBOARD_KEY_SET(blackboard_key) "ai_blackboard_key_set_[blackboard_key]" + +///Signal sent before a blackboard key is cleared +#define COMSIG_AI_BLACKBOARD_KEY_PRECLEAR(blackboard_key) "ai_blackboard_key_pre_clear_[blackboard_key]" + +/// Signal sent when a blackboard key is cleared +#define COMSIG_AI_BLACKBOARD_KEY_CLEARED(blackboard_key) "ai_blackboard_key_clear_[blackboard_key]" + +///Signal sent when a bot is reset +#define COMSIG_BOT_RESET "bot_reset" +///Sent off /mob/living/basic/bot/proc/set_mode_flags() : (new_flags) +#define COMSIG_BOT_MODE_FLAGS_SET "bot_mode_flags_set" + +///Signal sent off of ai/movement/proc/start_moving_towards +#define COMSIG_MOB_AI_MOVEMENT_STARTED "mob_ai_movement_started" diff --git a/code/__defines/dcs/signals/signals_mob/signals_mob_arcade.dm b/code/__defines/dcs/signals/signals_mob/signals_mob_arcade.dm new file mode 100644 index 0000000000..e9e96770f2 --- /dev/null +++ b/code/__defines/dcs/signals/signals_mob/signals_mob_arcade.dm @@ -0,0 +1,6 @@ +///Called when a mob plays a videogame +#define COMSIG_MOB_PLAYED_VIDEOGAME "mob_played_videogame" +///Called when a mob loses a videogame +#define COMSIG_MOB_LOST_VIDEOGAME "mob_lost_videogame" +///Called when a mob wins a videogame +#define COMSIG_MOB_WON_VIDEOGAME "mob_won_videogame" diff --git a/code/__defines/dcs/signals/signals_mob/signals_mob_basic.dm b/code/__defines/dcs/signals/signals_mob/signals_mob_basic.dm new file mode 100644 index 0000000000..01df92ebcc --- /dev/null +++ b/code/__defines/dcs/signals/signals_mob/signals_mob_basic.dm @@ -0,0 +1,30 @@ +/// Sent from /mob/living/basic/proc/look_dead() : () +#define COMSIG_BASICMOB_LOOK_DEAD "basicmob_look_dead" +/// Sent from /mob/living/basic/proc/look_alive() : () +#define COMSIG_BASICMOB_LOOK_ALIVE "basicmob_look_alive" + +///from the ranged_attacks component for basic mobs: (mob/living/basic/firer, atom/target, modifiers) +#define COMSIG_BASICMOB_PRE_ATTACK_RANGED "basicmob_pre_attack_ranged" + #define COMPONENT_CANCEL_RANGED_ATTACK COMPONENT_CANCEL_ATTACK_CHAIN //! Cancel to prevent the attack from happening + +///from the ranged_attacks component for basic mobs: (mob/living/basic/firer, atom/target, modifiers) +#define COMSIG_BASICMOB_POST_ATTACK_RANGED "basicmob_post_attack_ranged" + +/// Sent from /datum/ai_planning_subtree/parrot_as_in_repeat() : () +#define COMSIG_NEEDS_NEW_PHRASE "parrot_needs_new_phrase" + #define NO_NEW_PHRASE_AVAILABLE (1<<0) //! Cancel to try again later for when we actually get a new phrase + +/// Called whenever an animal is pet via the /datum/element/pet_bonus element: (mob/living/petter, modifiers) +#define COMSIG_ANIMAL_PET "animal_pet" + +///from base of mob/living/basic/regal_rat: (mob/living/basic/regal_rat/king) +#define COMSIG_RAT_INTERACT "rat_interaction" + #define COMPONENT_RAT_INTERACTED (1<<0) //! If this is returned, cancel any further interactions. + +///from /datum/status_effect/slime_leech: (mob/living/basic/slime/draining_slime) +#define COMSIG_SLIME_DRAINED "slime_drained" + +/// from /mob/living/basic/mutate(): (mob/living/basic/mutated_mob) +#define COMSIG_BASICMOB_MUTATED "basicmob_mutated" + ///cancel further mutation modifications to the mob such as shiny mutation. + #define MUTATED_NO_FURTHER_MUTATIONS (1 << 0) diff --git a/code/__defines/dcs/signals/signals_mob/signals_mob_carbon.dm b/code/__defines/dcs/signals/signals_mob/signals_mob_carbon.dm new file mode 100644 index 0000000000..feb531d119 --- /dev/null +++ b/code/__defines/dcs/signals/signals_mob/signals_mob_carbon.dm @@ -0,0 +1,215 @@ +///Called from /datum/species/proc/help : (mob/living/carbon/human/helper, datum/martial_art/helper_style) +#define COMSIG_CARBON_PRE_HELP "carbon_pre_help" + /// Stops the rest of the help + #define COMPONENT_BLOCK_HELP_ACT (1<<0) + +///Called from /mob/living/carbon/help_shake_act, before any hugs have occurred. (mob/living/helper) +#define COMSIG_CARBON_PRE_MISC_HELP "carbon_pre_misc_help" + /// Stops the rest of help act (hugging, etc) from occurring + #define COMPONENT_BLOCK_MISC_HELP (1<<0) + +///Called from /mob/living/carbon/help_shake_act on the person being helped, after any hugs have occurred. (mob/living/helper) +#define COMSIG_CARBON_HELP_ACT "carbon_help" +///Called from /mob/living/carbon/help_shake_act on the helper, after any hugs have occurred. (mob/living/helped) +#define COMSIG_CARBON_HELPED "carbon_helped_someone" + +///When a carbon slips. Called on /turf/open/handle_slip() +#define COMSIG_ON_CARBON_SLIP "carbon_slip" +// /mob/living/carbon physiology signals +#define COMSIG_CARBON_GAIN_WOUND "carbon_gain_wound" //from /datum/wound/proc/apply_wound() (/mob/living/carbon/C, /datum/wound/W, /obj/item/bodypart/L) +#define COMSIG_CARBON_LOSE_WOUND "carbon_lose_wound" //from /datum/wound/proc/remove_wound() (/mob/living/carbon/C, /datum/wound/W, /obj/item/bodypart/L) +/// Called after limb AND victim has been unset +#define COMSIG_CARBON_POST_LOSE_WOUND "carbon_post_lose_wound" //from /datum/wound/proc/remove_wound() (/datum/wound/lost_wound, /obj/item/bodypart/part, ignore_limb, replaced) +///from base of /obj/item/bodypart/proc/can_attach_limb(): (new_limb, special) allows you to fail limb attachment +#define COMSIG_ATTEMPT_CARBON_ATTACH_LIMB "attempt_carbon_attach_limb" + #define COMPONENT_NO_ATTACH (1<<0) +///from base of /obj/item/bodypart/proc/try_attach_limb(): (new_limb, special, lazy) +#define COMSIG_CARBON_ATTACH_LIMB "carbon_attach_limb" +/// Called from bodypart being attached /obj/item/bodypart/proc/try_attach_limb(mob/living/carbon/new_owner, special, lazy) +#define COMSIG_BODYPART_ATTACHED "bodypart_attached" +///from base of /obj/item/bodypart/proc/try_attach_limb(): (new_limb, special, lazy) +#define COMSIG_CARBON_POST_ATTACH_LIMB "carbon_post_attach_limb" +///from /obj/item/bodypart/proc/receive_damage, sent from the limb owner (limb, brute, burn) +#define COMSIG_CARBON_LIMB_DAMAGED "carbon_limb_damaged" + #define COMPONENT_PREVENT_LIMB_DAMAGE (1 << 0) +/// from /obj/item/bodypart/proc/apply_gauze(/obj/item/stack/gauze): (/obj/item/stack/medical/gauze/applied_gauze, /obj/item/stack/medical/gauze/stack_used) +#define COMSIG_BODYPART_GAUZED "bodypart_gauzed" +/// from /obj/item/stack/medical/gauze/Destroy(): (/obj/item/stack/medical/gauze/removed_gauze) +#define COMSIG_BODYPART_UNGAUZED "bodypart_ungauzed" + +/// Called from bodypart changing owner, which could be on attach or detachment. Either argument can be null. (mob/living/carbon/new_owner, mob/living/carbon/old_owner) +#define COMSIG_BODYPART_CHANGED_OWNER "bodypart_changed_owner" +/// Called from /obj/item/bodypart/proc/update_part_wound_overlay() +#define COMSIG_BODYPART_UPDATE_WOUND_OVERLAY "bodypart_update_wound_overlay" + #define COMPONENT_PREVENT_WOUND_OVERLAY_UPDATE (1 << 0) + +/// Called from update_health_hud, whenever a bodypart is being updated on the health doll +#define COMSIG_BODYPART_UPDATING_HEALTH_HUD "bodypart_updating_health_hud" + /// Return to override that bodypart's health hud with whatever is returned by the list + #define OVERRIDE_BODYPART_HEALTH_HUD (1<<0) + +/// Called from /obj/item/bodypart/check_for_injuries (mob/living/carbon/examiner, list/check_list) +#define COMSIG_BODYPART_CHECKED_FOR_INJURY "bodypart_injury_checked" +/// Called from /obj/item/bodypart/check_for_injuries (obj/item/bodypart/examined, list/check_list) +#define COMSIG_CARBON_CHECKING_BODYPART "carbon_checking_injury" + +/// Called from carbon losing a limb /obj/item/bodypart/proc/drop_limb(obj/item/bodypart/lost_limb, special, dismembered) +#define COMSIG_CARBON_REMOVE_LIMB "carbon_remove_limb" +/// Called from carbon losing a limb /obj/item/bodypart/proc/drop_limb(obj/item/bodypart/lost_limb, special, dismembered) +#define COMSIG_CARBON_POST_REMOVE_LIMB "carbon_post_remove_limb" +/// Called from bodypart being removed /obj/item/bodypart/proc/drop_limb(mob/living/carbon/old_owner, special, dismembered) +#define COMSIG_BODYPART_REMOVED "bodypart_removed" + +///from base of mob/living/carbon/soundbang_act(): (list(intensity)) +#define COMSIG_CARBON_SOUNDBANG "carbon_soundbang" +///from /item/organ/proc/Insert() (/obj/item/organ/) +#define COMSIG_CARBON_GAIN_ORGAN "carbon_gain_organ" +///from /item/organ/proc/Remove() (/obj/item/organ/) +#define COMSIG_CARBON_LOSE_ORGAN "carbon_lose_organ" +///Called when someone attempts to cuff a carbon +#define COMSIG_CARBON_CUFF_ATTEMPTED "carbon_attempt_cuff" + #define COMSIG_CARBON_CUFF_PREVENT (1<<0) +///Called when a carbon mutates (source = dna, mutation = mutation added) +#define COMSIG_CARBON_GAIN_MUTATION "carbon_gain_mutation" +///Called when a carbon loses a mutation (source = dna, mutation = mutation lose) +#define COMSIG_CARBON_LOSE_MUTATION "carbon_lose_mutation" +///Called when a carbon becomes addicted (source = what addiction datum, addicted_mind = mind of the addicted carbon) +#define COMSIG_CARBON_GAIN_ADDICTION "carbon_gain_addiction" +///Called when a carbon is no longer addicted (source = what addiction datum was lost, addicted_mind = mind of the freed carbon) +#define COMSIG_CARBON_LOSE_ADDICTION "carbon_lose_addiction" +///Called when a carbon gets a brain trauma (source = carbon, trauma = what trauma was added, resilience = the resilience of the trauma given, if set differently from the default) - this is before on_gain() +#define COMSIG_CARBON_GAIN_TRAUMA "carbon_gain_trauma" + /// Return if you want to prevent the carbon from gaining the brain trauma. + #define COMSIG_CARBON_BLOCK_TRAUMA (1 << 0) +///Called when a carbon loses a brain trauma (source = carbon, trauma = what trauma was removed) +#define COMSIG_CARBON_LOSE_TRAUMA "carbon_lose_trauma" +///Called when a carbon's health hud is updated. (source = carbon, shown_health_amount) +#define COMSIG_CARBON_UPDATING_HEALTH_HUD "carbon_health_hud_update" + /// Return if you override the carbon's health hud with something else + #define COMPONENT_OVERRIDE_HEALTH_HUD (1<<0) +///Called when a carbon updates their sanity (source = carbon) +#define COMSIG_CARBON_SANITY_UPDATE "carbon_sanity_update" +///Called when a carbon attempts to breath, before the breath has actually occurred +#define COMSIG_CARBON_ATTEMPT_BREATHE "carbon_attempt_breathe" + // Prevents the breath + #define COMSIG_CARBON_BLOCK_BREATH (1 << 0) +///Called when a carbon breathes, before the breath has actually occurred +#define COMSIG_CARBON_PRE_BREATHE "carbon_pre_breathe" +///Called when a carbon updates their mood +#define COMSIG_CARBON_MOOD_UPDATE "carbon_mood_update" +///Called when a carbon attempts to eat (eating) +#define COMSIG_CARBON_ATTEMPT_EAT "carbon_attempt_eat" + // Prevents the breath + #define COMSIG_CARBON_BLOCK_EAT (1 << 0) +///Called when a carbon vomits : (distance, force) +#define COMSIG_CARBON_VOMITED "carbon_vomited" +///Called from apply_overlay(cache_index, overlay) +#define COMSIG_CARBON_APPLY_OVERLAY "carbon_apply_overlay" +///Called from remove_overlay(cache_index, overlay) +#define COMSIG_CARBON_REMOVE_OVERLAY "carbon_remove_overlay" +///Called when a carbon checks their mood +#define COMSIG_CARBON_MOOD_CHECK "carbon_mod_check" + +// /mob/living/carbon/human signals + +///Applied preferences to a human +#define COMSIG_HUMAN_PREFS_APPLIED "human_prefs_applied" +///Whenever equip_rank is called, called after job is set +#define COMSIG_JOB_RECEIVED "job_received" +///from /mob/living/carbon/human/proc/set_coretemperature(): (oldvalue, newvalue) +#define COMSIG_HUMAN_CORETEMP_CHANGE "human_coretemp_change" +///from /datum/species/handle_fire. Called when the human is set on fire and burning clothes and stuff +#define COMSIG_HUMAN_BURNING "human_burning" +///from /mob/living/carbon/human/proc/force_say(): () +#define COMSIG_HUMAN_FORCESAY "human_forcesay" + +///from /mob/living/carbon/human/get_visible_name(), not sent if the mob has TRAIT_UNKNOWN: (identity) +#define COMSIG_HUMAN_GET_VISIBLE_NAME "human_get_visible_name" + //Index for the name of the face + #define VISIBLE_NAME_FACE 1 + //Index for the name of the id + #define VISIBLE_NAME_ID 2 + //Index for whether their name is being overridden instead of obfuscated + #define VISIBLE_NAME_FORCED 3 +///from /mob/living/carbon/human/get_id_name; only returns if the mob has TRAIT_UNKNOWN and it's being overridden: (identity) +#define COMSIG_HUMAN_GET_FORCED_NAME "human_get_forced_name" + +// Mob transformation signals +///Called when a human turns into a monkey, from /mob/living/carbon/proc/finish_monkeyize() +#define COMSIG_HUMAN_MONKEYIZE "human_monkeyize" +///Called when a monkey turns into a human, from /mob/living/carbon/proc/finish_humanize(species) +#define COMSIG_MONKEY_HUMANIZE "monkey_humanize" + +///From mob/living/carbon/human/suicide() +#define COMSIG_HUMAN_SUICIDE_ACT "human_suicide_act" + +///from base of /mob/living/carbon/regenerate_limbs(): (excluded_limbs) +#define COMSIG_CARBON_REGENERATE_LIMBS "living_regen_limbs" + +/// Sent from /mob/living/carbon/human/handle_blood(): (seconds_per_tick, times_fired) +#define COMSIG_HUMAN_ON_HANDLE_BLOOD "human_on_handle_blood" + /// Return to prevent all default blood handling + #define HANDLE_BLOOD_HANDLED (1<<0) + /// Return to skip default nutrition -> blood conversion + #define HANDLE_BLOOD_NO_NUTRITION_DRAIN (1<<1) + /// Return to skip oxyloss and similar effects from blood level + #define HANDLE_BLOOD_NO_OXYLOSS (1<<2) + +/// from /datum/status_effect/limp/proc/check_step(mob/whocares, OldLoc, Dir, forced) iodk where it should go +#define COMSIG_CARBON_LIMPING "mob_limp_check" + #define COMPONENT_CANCEL_LIMP (1<<0) + +/// from /obj/item/toy/crayon/spraycan/use_on(target, user, modifiers): (atom/target, mob/user) +#define COMSIG_CARBON_SPRAYPAINTED "comsig_carbon_spraypainted" + #define COMPONENT_CANCEL_SPRAYPAINT (1<<0) + +///Called from on_acquiring(mob/living/carbon/human/acquirer) +#define COMSIG_MUTATION_GAINED "mutation_gained" +///Called from on_losing(mob/living/carbon/human/owner) +#define COMSIG_MUTATION_LOST "mutation_lost" + +/// Called from /datum/species/proc/harm(): (mob/living/carbon/human/attacker, damage, attack_type, obj/item/bodypart/affecting, final_armor_block, kicking) +#define COMSIG_HUMAN_GOT_PUNCHED "human_got_punched" +/// Called from /datum/species/proc/harm(): (mob/living/carbon/human/attacked, damage, attack_type, obj/item/bodypart/affecting, final_armor_block, kicking) +#define COMSIG_HUMAN_PUNCHED "human_punched" + +/// Called at the very end of human character setup +/// At this point all quirks are assigned and the mob has a mind / client +#define COMSIG_HUMAN_CHARACTER_SETUP_FINISHED "human_character_setup_finished" + +/// From /mob/living/carbon/proc/set_blood_type : (mob/living/carbon/user, datum/blood_type, update_cached_blood_dna_info) +#define COMSIG_CARBON_CHANGED_BLOOD_TYPE "carbon_set_blood_type" + +//from base of [/obj/effect/particle_effect/fluid/smoke/proc/smoke_mob]: (seconds_per_tick) +#define COMSIG_CARBON_EXPOSED_TO_SMOKE "carbon_exposed_to_smoke" + +//NON TG Signals +///When the mob's dna and species have been fully applied +#define COMSIG_HUMAN_DNA_FINALIZED "human_dna_finished" +///from the base of mob/living/carbon/human/hitby(): (atom/movable/source, speed) +#define COMSIG_HUMAN_ON_CATCH_THROW "human_on_catch_throw" + + +// Organ specific signals + +///from /obj/item/organ/external/take_damage(brute, burn, sharp, edge, used_weapon, forbidden_limbs, permutation, projectile) +#define COMSIG_EXTERNAL_ORGAN_PRE_DAMAGE_APPLICATION "external_organ_pre_damage_application" +///Return this in response if you don't want external organ damage to be dealt via the normal proc. + #define COMPONENT_CANCEL_EXTERNAL_ORGAN_DAMAGE (1<<0) +///from /obj/item/organ/external/take_damage(brute, burn, sharp, edge, used_weapon, forbidden_limbs, permutation, projectile) +#define COMSIG_EXTERNAL_ORGAN_POST_DAMAGE_APPLICATION "external_organ_post_damage_application" +///from /obj/item/organ/take_damage(amount, silent) +#define COMSIG_INTERNAL_ORGAN_PRE_DAMAGE_APPLICATION "internal_organ_pre_damage_application" +///Return this in response if you don't want internal organ damage to be dealt via the normal proc. + #define COMPONENT_CANCEL_INTERNAL_ORGAN_DAMAGE (1<<0) +///from /obj/item/organ/take_damage(amount, silent) +#define COMSIG_INTERNAL_ORGAN_POST_DAMAGE_APPLICATION "internal_organ_post_damage_application" +///From /obj/item/organ/external/proc/embed(W, silent) +#define COMSIG_EMBED_OBJECT "embed_object" +///Return this in response if you don't want the embed to go through. + #define COMSIG_CANCEL_EMBED (1<<0) + +//NON TG Signals: +///called when being electrocuted, from /mob/living/carbon/electrocute_act(shock_damage, source, siemens_coeff, def_zone, stun) +#define COMSIG_BEING_ELECTROCUTED "being_electrocuted" + #define COMPONENT_CARBON_CANCEL_ELECTROCUTE (1<<0) //If this is set, the carbon will be not be electrocuted. diff --git a/code/__defines/dcs/signals/signals_mob/signals_mob_guardian.dm b/code/__defines/dcs/signals/signals_mob/signals_mob_guardian.dm new file mode 100644 index 0000000000..9f4819de79 --- /dev/null +++ b/code/__defines/dcs/signals/signals_mob/signals_mob_guardian.dm @@ -0,0 +1,7 @@ +/// Sent when a guardian is manifested +#define COMSIG_GUARDIAN_MANIFESTED "guardian_manifested" +/// Sent when a guardian is recalled +#define COMSIG_GUARDIAN_RECALLED "guardian_recalled" + +/// Sent when an assassin guardian is forced to exit stealth +#define COMSIG_GUARDIAN_ASSASSIN_REVEALED "guardian_assassin_revealed" diff --git a/code/__defines/dcs/signals/signals_mob/signals_mob_living.dm b/code/__defines/dcs/signals/signals_mob/signals_mob_living.dm new file mode 100644 index 0000000000..6e84d3e320 --- /dev/null +++ b/code/__defines/dcs/signals/signals_mob/signals_mob_living.dm @@ -0,0 +1,451 @@ +///called on /living when attempting to pick up an item, from base of /mob/living/put_in_hand_check(): (obj/item/I) +#define COMSIG_LIVING_TRY_PUT_IN_HAND "living_try_put_in_hand" + /// Can't pick up + #define COMPONENT_LIVING_CANT_PUT_IN_HAND (1<<0) + +// Organ signals +/// Called on the organ when it is implanted into someone (mob/living/carbon/receiver) +#define COMSIG_ORGAN_IMPLANTED "organ_implanted" +/// Called on the organ when it is removed from someone (mob/living/carbon/old_owner) +#define COMSIG_ORGAN_REMOVED "organ_removed" +/// Called when an organ is being regenerated with a new copy in species regenerate_organs (obj/item/organ/replacement) +#define COMSIG_ORGAN_BEING_REPLACED "organ_being_replaced" +/// Called when an organ gets surgically removed (mob/living/user, mob/living/carbon/old_owner, target_zone, obj/item/tool) +#define COMSIG_ORGAN_SURGICALLY_REMOVED "organ_surgically_removed" +/// Called when an organ gets surgically removed (mob/living/user, mob/living/carbon/new_owner, target_zone, obj/item/tool) +#define COMSIG_ORGAN_SURGICALLY_INSERTED "organ_surgically_inserted" +/// Called when an organ finishes inserting into a bodypart (obj/item/bodypart/limb, movement_flags) +#define COMSIG_ORGAN_BODYPART_INSERTED "organ_bodypart_inserted" +/// Called when a organ's damage is adjusted apply_organ_damage (damage_amount, maximum, required_organ_flag) +#define COMSIG_ORGAN_ADJUST_DAMAGE "organ_adjust_damage" + +///Called when movement intent is toggled. +#define COMSIG_MOVE_INTENT_TOGGLED "move_intent_toggled" + +/// Called when combat mode is toggled. +#define COMSIG_COMBAT_MODE_TOGGLED "combat_mode_toggled" + +///from base of mob/update_transform() +#define COMSIG_LIVING_POST_UPDATE_TRANSFORM "living_post_update_transform" + +/// from /datum/status_effect/incapacitating/stamcrit/on_apply() +#define COMSIG_LIVING_ENTER_STAMCRIT "living_enter_stamcrit" +///from /obj/structure/door/crush(): (mob/living/crushed, /obj/machinery/door/crushing_door) +#define COMSIG_LIVING_DOORCRUSHED "living_doorcrush" + /// Stop the door from causing wounds (damage still applies though) + #define DOORCRUSH_NO_WOUND (1<<0) +///from base of mob/living/resist() (/mob/living) +#define COMSIG_LIVING_RESIST "living_resist" +///from base of mob/living/ignite_mob() (/mob/living) +#define COMSIG_LIVING_IGNITED "living_ignite" +///from base of mob/living/extinguish_mob() (/mob/living) +#define COMSIG_LIVING_EXTINGUISHED "living_extinguished" +///from base of mob/living/electrocute_act(): (shock_damage, source, siemens_coeff, flags) +#define COMSIG_LIVING_ELECTROCUTE_ACT "living_electrocute_act" + /// Block the electrocute_act() proc from proceeding + #define COMPONENT_LIVING_BLOCK_SHOCK (1<<0) +///sent when items with siemen coeff. of 0 block a shock: (power_source, source, siemens_coeff, dist_check) +#define COMSIG_LIVING_SHOCK_PREVENTED "living_shock_prevented" +///sent by stuff like stunbatons and tasers: () +#define COMSIG_LIVING_MINOR_SHOCK "living_minor_shock" +///from base of mob/living/revive() (full_heal, admin_revive) +#define COMSIG_LIVING_REVIVE "living_revive" +///from base of mob/living/set_buckled(): (new_buckled) +#define COMSIG_LIVING_SET_BUCKLED "living_set_buckled" +///from base of mob/living/set_body_position(): (new_position, old_position) +#define COMSIG_LIVING_SET_BODY_POSITION "living_set_body_position" +/// Sent to a mob being injected with a syringe when the do_after initiates +#define COMSIG_LIVING_TRY_SYRINGE_INJECT "living_try_syringe_inject" +/// Sent to a mob being withdrawn from with a syringe when the do_after initiates +#define COMSIG_LIVING_TRY_SYRINGE_WITHDRAW "living_try_syringe_withdraw" +///from base of mob/living/set_usable_legs() +#define COMSIG_LIVING_LIMBLESS_SLOWDOWN "living_limbless_slowdown" +///From living/Life(). (deltatime, times_fired) +#define COMSIG_LIVING_LIFE "living_life" + /// Block the Life() proc from proceeding... this should really only be done in some really wacky situations. + #define COMPONENT_LIVING_CANCEL_LIFE_PROCESSING (1<<0) +///From living/set_resting(): (new_resting, silent, instant) +#define COMSIG_LIVING_RESTING "living_resting" + +///from base of element/bane/activate(): (item/weapon, mob/user) +#define COMSIG_LIVING_BANED "living_baned" + +///from base of element/bane/activate(): (item/weapon, mob/user) +#define COMSIG_OBJECT_PRE_BANING "obj_pre_baning" + #define COMPONENT_CANCEL_BANING (1<<0) + +///from base of element/bane/activate(): (item/weapon, mob/user) +#define COMSIG_OBJECT_ON_BANING "obj_on_baning" + +// adjust_x_loss messages sent from /mob/living/proc/adjust[x]Loss +/// Returned from all the following messages if you actually aren't going to apply any change +#define COMPONENT_IGNORE_CHANGE (1<<0) +// Each of these messages sends the damagetype even though it is inferred by the signal so you can pass all of them to the same proc if required +/// Send when bruteloss is modified (type, amount, forced) +#define COMSIG_LIVING_ADJUST_BRUTE_DAMAGE "living_adjust_brute_damage" +/// Send when fireloss is modified (type, amount, forced) +#define COMSIG_LIVING_ADJUST_BURN_DAMAGE "living_adjust_burn_damage" +/// Send when oxyloss is modified (type, amount, forced) +#define COMSIG_LIVING_ADJUST_OXY_DAMAGE "living_adjust_oxy_damage" +/// Send when toxloss is modified (type, amount, forced) +#define COMSIG_LIVING_ADJUST_TOX_DAMAGE "living_adjust_tox_damage" +/// Send when staminaloss is modified (type, amount, forced) +#define COMSIG_LIVING_ADJUST_STAMINA_DAMAGE "living_adjust_stamina_damage" + +/// List of signals sent when you receive any damage except stamina +#define COMSIG_LIVING_ADJUST_STANDARD_DAMAGE_TYPES list(\ + COMSIG_LIVING_ADJUST_BRUTE_DAMAGE,\ + COMSIG_LIVING_ADJUST_BURN_DAMAGE,\ + COMSIG_LIVING_ADJUST_OXY_DAMAGE,\ + COMSIG_LIVING_ADJUST_TOX_DAMAGE,\ +) +/// List of signals sent when you receive any kind of damage at all +#define COMSIG_LIVING_ADJUST_ALL_DAMAGE_TYPES (COMSIG_LIVING_ADJUST_STANDARD_DAMAGE_TYPES + COMSIG_LIVING_ADJUST_STAMINA_DAMAGE) + + +/// from base of mob/living/updatehealth() +#define COMSIG_LIVING_HEALTH_UPDATE "living_health_update" + #define COMSIG_LIVING_HEALTH_UPDATE_GOD_MODE (1<<0) +/// from base of mob/living/updatestamina() +#define COMSIG_LIVING_STAMINA_UPDATE "living_stamina_update" +///from base of mob/living/death(): (gibbed) +#define COMSIG_LIVING_DEATH "living_death" + +///from base of mob/living/gib(): (drop_bitflags) +///Note that it is fired regardless of whether the mob was dead beforehand or not. +#define COMSIG_LIVING_GIBBED "living_gibbed" + +///from base of mob/living/Write_Memory(): (dead, gibbed) +#define COMSIG_LIVING_WRITE_MEMORY "living_write_memory" + #define COMPONENT_DONT_WRITE_MEMORY (1<<0) + +/// from /proc/healthscan(): (list/scan_results, advanced, mob/user, mode) +/// Consumers are allowed to mutate the scan_results list to add extra information +#define COMSIG_LIVING_HEALTHSCAN "living_healthscan" + +//ALL OF THESE DO NOT TAKE INTO ACCOUNT WHETHER AMOUNT IS 0 OR LOWER AND ARE SENT REGARDLESS! + +///from base of mob/living/Stun() (amount, ignore_canstun) +#define COMSIG_LIVING_STATUS_STUN "living_stun" +///from base of mob/living/Knockdown() (amount, ignore_canstun) +#define COMSIG_LIVING_STATUS_KNOCKDOWN "living_knockdown" +///from base of mob/living/Paralyze() (amount, ignore_canstun) +#define COMSIG_LIVING_STATUS_PARALYZE "living_paralyze" +///from base of mob/living/Immobilize() (amount, ignore_canstun) +#define COMSIG_LIVING_STATUS_IMMOBILIZE "living_immobilize" +///from base of mob/living/incapacitate() (amount, ignore_canstun) +#define COMSIG_LIVING_STATUS_INCAPACITATE "living_incapacitate" +///from base of mob/living/Unconscious() (amount, ignore_canstun) +#define COMSIG_LIVING_STATUS_UNCONSCIOUS "living_unconscious" +///from base of mob/living/Sleeping() (amount, ignore_canstun) +#define COMSIG_LIVING_STATUS_SLEEP "living_sleeping" +/// from mob/living/check_stun_immunity(): (check_flags) +#define COMSIG_LIVING_GENERIC_STUN_CHECK "living_check_stun" + #define COMPONENT_NO_STUN (1<<0) //For all of them +///from base of /mob/living/can_track(): (mob/user) +#define COMSIG_LIVING_CAN_TRACK "mob_cantrack" + #define COMPONENT_CANT_TRACK (1<<0) +///from end of fully_heal(): (heal_flags) +#define COMSIG_LIVING_POST_FULLY_HEAL "living_post_fully_heal" +/// from start of /mob/living/handle_breathing(): (seconds_per_tick, times_fired) +#define COMSIG_LIVING_HANDLE_BREATHING "living_handle_breathing" +///from /obj/item/hand_item/slapper/attack_atom(): (source=mob/living/slammer, obj/structure/table/slammed_table) +#define COMSIG_LIVING_SLAM_TABLE "living_slam_table" +///from /obj/item/hand_item/slapper/attack(): (source=mob/living/slapper, mob/living/slapped) +#define COMSIG_LIVING_SLAP_MOB "living_slap_mob" +///from /obj/item/hand_item/slapper/attack(): (source=mob/living/slapper, mob/living/slapped) +#define COMSIG_LIVING_SLAPPED "living_slapped" +///from /obj/item/hand_item/attack(): (source=mob/living/attacker, mob/living/attacked) +#define COMSIG_LIVING_HAND_ITEM_ATTACK "living_hand_item_attack" +/// from /mob/living/*/UnarmedAttack(), before sending [COMSIG_LIVING_UNARMED_ATTACK]: (mob/living/source, atom/target, proximity, modifiers) +/// The only reason this exists is so hulk can fire before Fists of the North Star. +/// Note that this is called before [/mob/living/proc/can_unarmed_attack] is called, so be wary of that. +#define COMSIG_LIVING_EARLY_UNARMED_ATTACK "human_pre_attack_hand" +/// from mob/living/*/UnarmedAttack(): (mob/living/source, atom/target, proximity, modifiers) +#define COMSIG_LIVING_UNARMED_ATTACK "living_unarmed_attack" +///From base of mob/living/MobBump(): (mob/bumped, mob/living/bumper) +#define COMSIG_LIVING_PRE_MOB_BUMP "movable_pre_bump" + #define COMPONENT_LIVING_BLOCK_PRE_MOB_BUMP (1<<0) +///From base of mob/living/MobBump() (mob/living) +#define COMSIG_LIVING_MOB_BUMP "living_mob_bump" +///From base of mob/living/MobBump() (mob/living) +#define COMSIG_LIVING_MOB_BUMPED "living_mob_bumped" +///From base of mob/living/Bump() (turf/closed) +#define COMSIG_LIVING_WALL_BUMP "living_wall_bump" +///From base of turf/closed/Exited() (turf/closed) +#define COMSIG_LIVING_WALL_EXITED "living_wall_exited" +///From base of mob/living/ZImpactDamage() (mob/living, levels, turf/t) +#define COMSIG_LIVING_Z_IMPACT "living_z_impact" + /// Just for the signal return, does not run normal living handing of z fall damage for mobs + #define ZIMPACT_CANCEL_DAMAGE (1<<0) + /// Do not show default z-impact message + #define ZIMPACT_NO_MESSAGE (1<<1) + /// Do not do the spin animation when landing + #define ZIMPACT_NO_SPIN (1<<2) + +/// From mob/living/try_speak(): (message, ignore_spam, forced) +#define COMSIG_MOB_TRY_SPEECH "living_vocal_speech" + /// Return to skip can_speak check, IE, forcing success. Overrides below. + #define COMPONENT_IGNORE_CAN_SPEAK (1<<0) + /// Return if the mob cannot speak. + #define COMPONENT_CANNOT_SPEAK (1<<1) + +/// From mob/living/treat_message(): (list/message_args) +#define COMSIG_LIVING_TREAT_MESSAGE "living_treat_message" + /// The index of message_args that corresponds to the actual message + #define TREAT_MESSAGE_ARG 1 + #define TREAT_TTS_MESSAGE_ARG 2 + #define TREAT_TTS_FILTER_ARG 3 + #define TREAT_CAPITALIZE_MESSAGE 4 + +///From obj/item/toy/crayon/spraycan +#define COMSIG_LIVING_MOB_PAINTED "living_mob_painted" + +///From obj/closet/supplypod/return_victim: (turf/destination) +#define COMSIG_LIVING_RETURN_FROM_CAPTURE "living_return_from_capture" + +///From mob/living/proc/wabbajack(): (randomize_type) +#define COMSIG_LIVING_PRE_WABBAJACKED "living_mob_wabbajacked" + /// Return to stop the rest of the wabbajack from triggering. + #define STOP_WABBAJACK (1<<0) +///From mob/living/proc/on_wabbajack(): (mob/living/new_mob) +#define COMSIG_LIVING_ON_WABBAJACKED "living_wabbajacked" + +/// From /datum/status_effect/shapechange_mob/on_apply(): (mob/living/shape) +#define COMSIG_LIVING_SHAPESHIFTED "living_shapeshifted" +/// From /datum/status_effect/shapechange_mob/after_unchange(): (mob/living/caster) +#define COMSIG_LIVING_UNSHAPESHIFTED "living_unshapeshifted" + +///From /obj/effect/rune/convert/do_sacrifice() : (list/invokers) +#define COMSIG_LIVING_CULT_SACRIFICED "living_cult_sacrificed" + /// Return to stop the sac from occurring + #define STOP_SACRIFICE (1<<0) + /// Don't send a message for sacrificing this thing, we have our own + #define SILENCE_SACRIFICE_MESSAGE (1<<1) + /// Don't send a message for sacrificing this thing UNLESS it's the cult target + #define SILENCE_NONTARGET_SACRIFICE_MESSAGE (1<<2) + /// Dusts the target instead of gibbing them (no soulstone) + #define DUST_SACRIFICE (1<<3) + +/// From /mob/living/befriend() : (mob/living/new_friend) +#define COMSIG_LIVING_BEFRIENDED "living_befriended" + +/// From /obj/item/proc/pickup(): (/obj/item/picked_up_item) +#define COMSIG_LIVING_PICKED_UP_ITEM "living_picked_up_item" + +/// From /mob/living/unfriend() : (mob/living/old_friend) +#define COMSIG_LIVING_UNFRIENDED "living_unfriended" + +/// From /obj/effect/temp_visual/resonance/burst() : (mob/creator, mob/living/hit_living) +#define COMSIG_LIVING_RESONATOR_BURST "living_resonator_burst" + +/// From /obj/projectile/on_parry() : (obj/projectile/parried_projectile) +#define COMSIG_LIVING_PROJECTILE_PARRIED "living_projectile_parried" + /// Return to prevent the projectile from executing any code in on_parry() + #define INTERCEPT_PARRY_EFFECTS (1<<0) + +/// From /turf/closed/mineral/gibtonite/defuse() : (det_time) +#define COMSIG_LIVING_DEFUSED_GIBTONITE "living_defused_gibtonite" + +/// From /obj/item/kinetic_crusher/afterattack() : (mob/living/target, obj/item/kinetic_crusher/crusher, backstabbed) +#define COMSIG_LIVING_CRUSHER_DETONATE "living_crusher_detonate" + +/// From /obj/structure/geyser/attackby() : (obj/structure/geyser/geyser) +#define COMSIG_LIVING_DISCOVERED_GEYSER "living_discovered_geyser" + +/// From /datum/ai/behavior/climb_tree/perform() : (mob/living/basic/living_pawn) +#define COMSIG_LIVING_CLIMB_TREE "living_climb_tree" + +///from /mob/living/proc/check_block(): (atom/hit_by, damage, attack_text, attack_type, armour_penetration, damage_type) +#define COMSIG_LIVING_CHECK_BLOCK "living_check_block" + #define FAILED_BLOCK NONE + #define SUCCESSFUL_BLOCK (1<<0) + +///Hit by successful disarm attack (mob/living/attacker, zone_targeted, item/weapon) +#define COMSIG_LIVING_DISARM_HIT "living_disarm_hit" +///Before a living mob is shoved, sent to the turf we're trying to shove onto (mob/living/shover, mob/living/target) +#define COMSIG_LIVING_DISARM_PRESHOVE "living_disarm_preshove" + #define COMSIG_LIVING_ACT_SOLID (1<<0) //Tells disarm code to act as if the mob was shoved into something solid, even we we're not +///When a living mob is disarmed, this is sent to the turf we're trying to shove onto (mob/living/shover, mob/living/target, shove_blocked) +#define COMSIG_LIVING_DISARM_COLLIDE "living_disarm_collision" + #define COMSIG_LIVING_SHOVE_HANDLED (1<<0) + +/// Sent on a mob from /datum/component/mob_chain when component is attached with it as the "front" : (mob/living/basic/tail) +#define COMSIG_MOB_GAINED_CHAIN_TAIL "living_gained_chain_tail" +/// Sent on a mob from /datum/component/mob_chain when component is detached from it as the "front" : (mob/living/basic/tail) +#define COMSIG_MOB_LOST_CHAIN_TAIL "living_detached_chain_tail" +/// Sent from a 'contract chain' button on a mob chain +#define COMSIG_MOB_CHAIN_CONTRACT "living_chain_contracted" + +/// Sent from `obj/item/reagent_containers/applicator/pill/on_consumption`: (obj/item/reagent_containers/applicator/pill/pill, mob/feeder) +#define COMSIG_LIVING_PILL_CONSUMED "living_pill_consumed" + +/// Sent from a mob to their loc when starting to remove cuffs on itself +#define COMSIG_MOB_REMOVING_CUFFS "living_removing_cuffs" + /// Sent as a reply to above from any atom that wishs to stop self-cuff removal + #define COMSIG_MOB_BLOCK_CUFF_REMOVAL (1<<0) + +/// Sent to a mob grabbing another mob: (mob/living/grabbing) +#define COMSIG_LIVING_GRAB "living_grab" + // Return COMPONENT_CANCEL_ATTACK_CHAIN / COMPONENT_SKIP_ATTACK_CHAIN to stop the grab + +/// From /datum/component/edible/get_perceived_food_quality(): (datum/component/edible/edible, list/extra_quality) +#define COMSIG_LIVING_GET_PERCEIVED_FOOD_QUALITY "get_perceived_food_quality" + +///Called when living finish eat (/datum/component/edible/proc/On_Consume) +#define COMSIG_LIVING_FINISH_EAT "living_finish_eat" + +/// From /datum/element/basic_eating/try_eating() +#define COMSIG_MOB_PRE_EAT "mob_pre_eat" + ///cancel eating attempt + #define COMSIG_MOB_CANCEL_EAT (1<<0) + +/// From /datum/element/basic_eating/finish_eating() +#define COMSIG_MOB_ATE "mob_ate" + ///cancel post eating + #define COMSIG_MOB_TERMINATE_EAT (1<<0) + +///From mob/living/proc/throw_mode_on and throw_mode_off +#define COMSIG_LIVING_THROW_MODE_TOGGLE "living_throw_mode_toggle" +///from /atom/movable/screen/alert/give/proc/handle_transfer(): (taker, item) +#define COMSIG_LIVING_ITEM_GIVEN "living_item_given" +/// From mob/living/proc/on_fall +#define COMSIG_LIVING_THUD "living_thud" +///From /datum/component/happiness() +#define COMSIG_MOB_HAPPINESS_CHANGE "happiness_change" +/// From /obj/item/melee/baton/baton_effect(): (datum/source, mob/living/user, /obj/item/melee/baton) +#define COMSIG_MOB_BATONED "mob_batoned" + +/// From /obj/machinery/gibber/startgibbing(): (mob/living/user, /obj/machinery/gibber, list/results) +#define COMSIG_LIVING_GIBBER_ACT "living_gibber_act" + +/// Sent to the mob when their mind is slaved +#define COMSIG_MOB_ENSLAVED_TO "mob_enslaved_to" +/// From /obj/item/proc/attack_atom: (mob/living/attacker, atom/attacked, list/modifiers) +#define COMSIG_LIVING_ATTACK_ATOM "living_attack_atom" +/// From /mob/living/proc/stop_leaning() +#define COMSIG_LIVING_STOPPED_LEANING "living_stopped_leaning" + +/// When a living mob is table slamming another mob: (mob/living/slammed, obj/structure/table/slammed_table) +#define COMSIG_LIVING_TABLE_SLAMMING "living_table_slamming" +/// When a living mob is table slamming another mob, neck grab (so a limb slam): (mob/living/slammed, obj/structure/table/slammed_table) +#define COMSIG_LIVING_TABLE_LIMB_SLAMMING "living_table_limb_slamming" + +/// From /mob/living/get_examine_name(mob/user) : (mob/examined, visible_name, list/name_override) +/// Allows mobs to override how they perceive others when examining +#define COMSIG_LIVING_PERCEIVE_EXAMINE_NAME "living_perceive_examine_name" + #define COMPONENT_EXAMINE_NAME_OVERRIDEN (1<<0) + +/// From /obj/item/book/bible/attack() : (mob/living/user, obj/item/book/bible/bible, bless_result) +#define COMSIG_LIVING_BLESSED "living_blessed" + +/// From /datum/surgery_step/initiate() : (mob/living/user, mob/living/target, target_zone, obj/item/tool, datum/surgery/surgery, datum/surgery_step/step, list/modifiers) +#define COMSIG_LIVING_INITIATE_SURGERY_STEP "living_initiate_surgery_step" +#define COMSIG_LIVING_SURGERY_STEP_INITIATED_ON "living_surgery_step_initiated_on" + /// Index in modifiers containing the modifier to failure chance + #define FAIL_PROB_INDEX 1 + /// Index in modifiers containing the modifer to surgery speed + #define SPEED_MOD_INDEX 2 + +/// From /datum/status_effect/proc/on_creation() : (datum/status_effect/effect) +#define COMSIG_LIVING_STATUS_APPLIED "living_status_applied" + +/// From /datum/status_effect/proc/Destroy() : (datum/status_effect/effect) +#define COMSIG_LIVING_STATUS_REMOVED "living_status_removed" + +/// From /datum/spawners_menu/ui_static_data(mob/user) : (list/string_info) +#define COMSIG_LIVING_GHOSTROLE_INFO "living_ghostrole_info" + +///from mob/living/befriend() +#define COMSIG_LIVING_MADE_NEW_FRIEND "living_made_new_friend" + +/// From /mob/living/update_offsets(animate) : (new_x, new_y, new_w, new_z, animate) +#define COMSIG_LIVING_UPDATE_OFFSETS "living_update_offsets" + +/// From /datum/element/death_drops/on_death(mob/living/target, gibbed) : (list/loot, gibbed) +#define COMSIG_LIVING_DROP_LOOT "living_drop_loot" + /// Prevent loot from being dropped + #define COMPONENT_NO_LOOT_DROP (1<<0) + +// Non TG signals: +///From /living/handle_disabilities(). +#define COMSIG_HANDLE_DISABILITIES "handle_disabilities" +///From /living/handle_allergens(). +#define COMSIG_HANDLE_ALLERGENS "handle_allergens" + +//ALL OF THESE DO NOT TAKE INTO ACCOUNT WHETHER AMOUNT IS 0 OR LOWER AND ARE SENT REGARDLESS! + +///from base of mob/Weaken() (amount, ignore_canstun) +#define COMSIG_LIVING_STATUS_WEAKEN "living_weaken" +///from base of mob/Confuse() (amount, ignore_canstun) +#define COMSIG_LIVING_STATUS_CONFUSE "living_confuse" +///from base of mob/Blind() (amount, ignore_canstun) +#define COMSIG_LIVING_STATUS_BLIND "living_blind" +///from /mob/living/proc/stun_effect_act(var/stun_amount, var/agony_amount, var/def_zone, var/used_weapon=null, var/electric = FALSE) +#define COMSIG_STUN_EFFECT_ACT "stun_effect_act" + +///from /mob/living/proc/handle_radiation() +#define COMSIG_HANDLE_RADIATION "handle_radiation" + #define COMPONENT_BLOCK_LIVING_RADIATION (1<<0) +///from base of /mob/living/proc/apply_effect(var/effect = 0,var/effecttype = STUN, var/blocked = 0, var/check_protection = 1, rad_protection) +#define COMSIG_LIVING_IRRADIATE_EFFECT "living_irradiate_effect" + #define COMPONENT_BLOCK_IRRADIATION (1<<0) + + +// Damage specific signals for /mob/living +///from /mob/living/proc/adjustBrainLoss(amount) and /mob/living/proc/setBrainLoss(amount) +#define COMSIG_TAKING_BRAIN_DAMAGE "taking_brain_damage" +///Return this in response if you don't want brain damage to be dealt via the normal proc. + #define COMSIG_CANCEL_BRAIN_DAMAGE (1<<0) +///from /mob/living/proc/adjustOxyLoss(amount) and /mob/living/proc/setOxyLoss(amount) +#define COMSIG_TAKING_OXY_DAMAGE "taking_oxy_damage" +///Return this in response if you don't want brain damage to be dealt via the normal proc. + #define COMSIG_CANCEL_OXY_DAMAGE (1<<0) +///from /mob/living/proc/adjustToxLoss(amount) and /mob/living/proc/setToxLoss(amount) +#define COMSIG_TAKING_TOX_DAMAGE "taking_tox_damage" +///Return this in response if you don't want tox damage to be dealt via the normal proc. + #define COMSIG_CANCEL_TOX_DAMAGE (1<<0) +///from /mob/living/proc/adjustCloneLoss(amount) and /mob/living/proc/setCloneLoss(amount) +#define COMSIG_TAKING_CLONE_DAMAGE "taking_clone_damage" +///Return this in response if you don't want clone damage to be dealt via the normal proc. + #define COMSIG_CANCEL_CLONE_DAMAGE (1<<0) +///from /mob/living/proc/adjustFireLoss(amount, include_robo) +#define COMSIG_TAKING_FIRE_DAMAGE "taking_fire_damage" +///Return this in response if you don't want fire damage to be dealt via the normal proc. + #define COMSIG_CANCEL_FIRE_DAMAGE (1<<0) +///from /mob/living/proc/adjustBruteLoss(amount, include_robo) and /mob/living/carbon/human/adjustBruteLoss(amount, include_robo) +#define COMSIG_TAKING_BRUTE_DAMAGE "taking_brute_damage" +///Return this in response if you don't want brute damage to be dealt via the normal proc. + #define COMSIG_CANCEL_BRUTE_DAMAGE (1<<0) +///from /mob/living/proc/adjustHalLoss(amount) +#define COMSIG_TAKING_HALO_DAMAGE "taking_halo_damage" +///Return this in response if you don't want halo damage to be dealt via the normal proc. + #define COMSIG_CANCEL_HALO_DAMAGE (1<<0) +///from /mob/living/proc/apply_effect(effect, effecttype, blocked, check_protection) +#define COMSIG_TAKING_APPLY_EFFECT "applying_effect" +///Return this in response if you don't want the effect to be applied + #define COMSIG_CANCEL_EFFECT (1<<0) +///from /mob/living/proc/handle_mutations() +#define COMSIG_HANDLE_MUTATIONS "handle_mutations" + #define COMPONENT_BLOCK_LIVING_MUTATIONS (1<<0) +///from base of /mob/living/regenerate_limbs(): (noheal, excluded_limbs) +#define COMSIG_LIVING_REGENERATE_LIMBS "living_regen_limbs" + + +//Ventcrawling + +///called when a ventcrawling mob checks if it can begin ventcrawling : (obj/machinery/atmospherics/unary/vent_entered) +#define COMSIG_MOB_VENTCRAWL_CHECK "ventcrawl_check" +///called when a ventcrawling mob checks if it can enter a vent : (mob/entering_mob) +#define COMSIG_VENT_CRAWLER_CHECK "ventcrawl_check" + #define VENT_CRAWL_BLOCK_ENTRY (1<<0) + +///called when a ventcrawling mob enters a vent : (obj/machinery/atmospherics/unary/vent_entered) +#define COMSIG_MOB_VENTCRAWL_START "ventcrawl_start" +///called when a ventcrawling mob leaves a vent : (obj/machinery/atmospherics/unary/vent_exited) +#define COMSIG_MOB_VENTCRAWL_END "ventcrawl_end" + +///called when a ventcrawling mob enters a vent : (mob/entering_mob) +#define COMSIG_VENT_CRAWLER_ENTERED "ventcrawl_entered_vent" +///called when a ventcrawling mob leaves a vent : (mob/exiting_mob) +#define COMSIG_VENT_CRAWLER_EXITED "ventcrawl_exit_vent" diff --git a/code/__defines/dcs/signals/signals_mob/signals_mob_main.dm b/code/__defines/dcs/signals/signals_mob/signals_mob_main.dm index 716372a131..5cd035e537 100644 --- a/code/__defines/dcs/signals/signals_mob/signals_mob_main.dm +++ b/code/__defines/dcs/signals/signals_mob/signals_mob_main.dm @@ -1,27 +1,17 @@ -///from base of /mob/verb/pointed: (atom/A) -#define COMSIG_MOB_POINTED "mob_pointed" - -/// from /mob/living/proc/apply_damage(): (damage, damagetype, def_zone, blocked, sharp, edge, used_weapon, projectile) -/// allows you to add multiplicative damage modifiers to the damage mods argument to adjust incoming damage... UNUSED ATM -/// not sent if the apply damage call was forced -#define COMSIG_MOB_APPLY_DAMAGE_MODIFIERS "mob_apply_damage_modifiers" -/// from base of /mob/living/proc/apply_damage(): (damage, damagetype, def_zone, blocked, sharp, edge, used_weapon, projectile) -#define COMSIG_MOB_APPLY_DAMAGE "mob_apply_damage" -/// from /mob/living/proc/apply_damage(): (damage, damagetype, def_zone, blocked, sharp, edge, /obj/used_weapon, projectile) -/// works like above but after the damage is actually inflicted -#define COMSIG_MOB_AFTER_APPLY_DAMAGE "mob_after_apply_damage" -///from end of revival_healing_action(): () -#define COMSIG_LIVING_AHEAL "living_post_aheal" - -/// From /datum/status_effect/proc/on_creation() : (datum/status_effect/effect) -#define COMSIG_LIVING_STATUS_APPLIED "living_status_applied" - -/// From /datum/status_effect/proc/Destroy() : (datum/status_effect/effect) -#define COMSIG_LIVING_STATUS_REMOVED "living_status_removed" - -///from /datum/species/handle_fire. Called when the human is set on fire and burning clothes and stuff -#define COMSIG_HUMAN_BURNING "human_burning" - +///Called on /basic when updating its speed, from base of /mob/living/basic/update_basic_mob_varspeed(): () +#define POST_BASIC_MOB_UPDATE_VARSPEED "post_basic_mob_update_varspeed" +///from base of /mob/Login(): () +#define COMSIG_MOB_LOGIN "mob_login" +///from base of /mob/Logout(): () +#define COMSIG_MOB_LOGOUT "mob_logout" +///from base of /mob/mind_initialize +#define COMSIG_MOB_MIND_INITIALIZED "mob_mind_inited" +///from base of mob/set_stat(): (new_stat, old_stat) +#define COMSIG_MOB_STATCHANGE "mob_statchange" +///from base of mob/reagent_tick(): (datum/reagent/chem, seconds_per_tick, times_fired) +#define COMSIG_MOB_REAGENT_TICK "mob_reagent_tick" + ///stops the reagent check call + #define COMSIG_MOB_STOP_REAGENT_TICK (1<<0) ///from base of mob/clickon(): (atom/A, list/modifiers) #define COMSIG_MOB_CLICKON "mob_clickon" ///from base of mob/MiddleClickOn(): (atom/A) @@ -29,9 +19,297 @@ ///from base of mob/AltClickOn(): (atom/A) #define COMSIG_MOB_ALTCLICKON "mob_altclickon" #define COMSIG_MOB_CANCEL_CLICKON (1<<0) +///from base of mob/alt_click_on_secodary(): (atom/A) +#define COMSIG_MOB_ALTCLICKON_SECONDARY "mob_altclickon_secondary" +/// From base of /mob/living/simple_animal/bot/proc/bot_step() +#define COMSIG_MOB_BOT_PRE_STEP "mob_bot_pre_step" + /// Should always match COMPONENT_MOVABLE_BLOCK_PRE_MOVE as these are interchangeable and used to block movement. + #define COMPONENT_MOB_BOT_BLOCK_PRE_STEP COMPONENT_MOVABLE_BLOCK_PRE_MOVE +/// From base of /mob/living/simple_animal/bot/proc/bot_step() +#define COMSIG_MOB_BOT_STEP "mob_bot_step" + +/// From base of /mob/proc/update_held_items +#define COMSIG_MOB_UPDATE_HELD_ITEMS "mob_update_held_items" + +/// From base of /client/Move(): (list/move_args) +#define COMSIG_MOB_CLIENT_PRE_LIVING_MOVE "mob_client_pre_living_move" + /// Should we stop the current living movement attempt + #define COMSIG_MOB_CLIENT_BLOCK_PRE_LIVING_MOVE COMPONENT_MOVABLE_BLOCK_PRE_MOVE + +/// From base of /client/Move(), invoked when a non-living mob is attempting to move: (list/move_args) +#define COMSIG_MOB_CLIENT_PRE_NON_LIVING_MOVE "mob_client_move_possessed_object" + /// Cancels the move attempt + #define COMSIG_MOB_CLIENT_BLOCK_PRE_NON_LIVING_MOVE COMPONENT_MOVABLE_BLOCK_PRE_MOVE + +/// From base of /client/Move(): (new_loc, direction) +#define COMSIG_MOB_CLIENT_PRE_MOVE "mob_client_pre_move" + /// Should always match COMPONENT_MOVABLE_BLOCK_PRE_MOVE as these are interchangeable and used to block movement. + #define COMSIG_MOB_CLIENT_BLOCK_PRE_MOVE COMPONENT_MOVABLE_BLOCK_PRE_MOVE + /// The argument of move_args which corresponds to the loc we're moving to + #define MOVE_ARG_NEW_LOC 1 + /// The argument of move_args which dictates our movement direction + #define MOVE_ARG_DIRECTION 2 +/// From base of /client/Move(): (new_loc, direction) +#define COMSIG_MOB_CLIENT_MOVE_NOGRAV "mob_client_move_nograv" +/// From base of /client/Move(): (direction, old_dir) +#define COMSIG_MOB_CLIENT_MOVED "mob_client_moved" +/// From base of /client/proc/change_view() (mob/source, new_size) +#define COMSIG_MOB_CLIENT_CHANGE_VIEW "mob_client_change_view" +/// From base of /mob/proc/reset_perspective() : () +#define COMSIG_MOB_RESET_PERSPECTIVE "mob_reset_perspective" +/// from base of /client/proc/set_eye() : (atom/old_eye, atom/new_eye) +#define COMSIG_CLIENT_SET_EYE "client_set_eye" +/// from base of /datum/view_data/proc/afterViewChange() : (view) +#define COMSIG_VIEWDATA_UPDATE "viewdata_update" + +/// Sent from /proc/do_after if someone starts a do_after action bar. +#define COMSIG_DO_AFTER_BEGAN "mob_do_after_began" +/// Sent from /proc/do_after once a do_after action completes, whether via the bar filling or via interruption. +#define COMSIG_DO_AFTER_ENDED "mob_do_after_ended" + +///from mind/transfer_to. Sent to the receiving mob. +#define COMSIG_MOB_MIND_TRANSFERRED_INTO "mob_mind_transferred_into" +///from mind/transfer_from. Sent to the mob the mind is being transferred out of. +#define COMSIG_MOB_MIND_TRANSFERRED_OUT_OF "mob_mind_transferred_out_of" +/// From /mob/proc/ghostize() Called when a mob successfully ghosts +#define COMSIG_MOB_GHOSTIZED "mob_ghostized" +/// can_roll_midround(datum/antagonist/antag_type) from certain midround rulesets, (mob/living/source, datum/mind/mind, datum/antagonist/antagonist) +#define COMSIG_MOB_MIND_BEFORE_MIDROUND_ROLL "mob_mind_before_midround_roll" + #define CANCEL_ROLL (1<<1) + +///signal sent when a mob has their holy role set. Sent to the mob having their role changed. +#define COMSIG_MOB_MIND_SET_HOLY_ROLE "mob_mind_set_holy_role" +///signal sent when a mob has their job role set. Sent to the mob having their role changed. +#define COMSIG_MOB_MIND_SET_ROLE "mob_mind_set_role" + +///from base of obj/allowed(mob/M): (/obj) returns ACCESS_ALLOWED if mob has id access to the obj +#define COMSIG_MOB_TRIED_ACCESS "tried_access" + #define ACCESS_ALLOWED (1<<0) + #define ACCESS_DISALLOWED (1<<1) + #define LOCKED_ATOM_INCOMPATIBLE (1<<2) + +///from the component /datum/component/simple_access +#define COMSIG_MOB_RETRIEVE_SIMPLE_ACCESS "retrieve_simple_access" + +///from base of mob/can_cast_magic(): (mob/user, magic_flags, charge_cost) +#define COMSIG_MOB_RESTRICT_MAGIC "mob_cast_magic" +///from base of mob/can_block_magic(): (mob/user, casted_magic_flags, charge_cost) +#define COMSIG_MOB_RECEIVE_MAGIC "mob_receive_magic" + #define COMPONENT_MAGIC_BLOCKED (1<<0) + +///from base of mob/create_mob_hud(): () +#define COMSIG_MOB_HUD_CREATED "mob_hud_created" +///from base of hud/show_to(): (datum/hud/hud_source) +#define COMSIG_MOB_HUD_REFRESHED "mob_hud_refreshed" + +///from base of mob/set_sight(): (new_sight, old_sight) +#define COMSIG_MOB_SIGHT_CHANGE "mob_sight_changed" +///from base of mob/set_invis_see(): (new_invis, old_invis) +#define COMSIG_MOB_SEE_INVIS_CHANGE "mob_see_invis_change" + +/// from /mob/living/proc/apply_damage(): (list/damage_mods, damage, damagetype, def_zone, sharpness, attack_direction, attacking_item) +/// allows you to add multiplicative damage modifiers to the damage mods argument to adjust incoming damage +/// not sent if the apply damage call was forced +#define COMSIG_MOB_APPLY_DAMAGE_MODIFIERS "mob_apply_damage_modifiers" +/// from base of /mob/living/proc/apply_damage(): (damage, damagetype, def_zone, blocked, wound_bonus, exposed_wound_bonus, sharpness, attack_direction, attacking_item) +#define COMSIG_MOB_APPLY_DAMAGE "mob_apply_damage" +/// from /mob/living/proc/apply_damage(): (damage, damagetype, def_zone, blocked, wound_bonus, exposed_wound_bonus, sharpness, attack_direction, attacking_item) +/// works like above but after the damage is actually inflicted +#define COMSIG_MOB_AFTER_APPLY_DAMAGE "mob_after_apply_damage" + +///from base of /mob/living/attack_alien(): (user) +#define COMSIG_MOB_ATTACK_ALIEN "mob_attack_alien" +///from base of /mob/throw_item(): (atom/target) +#define COMSIG_MOB_THROW "mob_throw" +///from base of /mob/verb/examinate(): (atom/target, list/examine_strings) +#define COMSIG_MOB_EXAMINING "mob_examining" +///from base of /mob/verb/examinate(): (atom/target) +#define COMSIG_MOB_EXAMINATE "mob_examinate" +///from /mob/living/handle_eye_contact(): (mob/living/other_mob) +#define COMSIG_MOB_EYECONTACT "mob_eyecontact" + /// return this if you want to block printing this message to this person, if you want to print your own (does not affect the other person's message) + #define COMSIG_BLOCK_EYECONTACT (1<<0) +///from base of /mob/update_sight(): () +#define COMSIG_MOB_UPDATE_SIGHT "mob_update_sight" +////from /mob/living/say(): () +#define COMSIG_MOB_SAY "mob_say" + #define COMPONENT_UPPERCASE_SPEECH (1<<0) + // used to access COMSIG_MOB_SAY argslist + #define SPEECH_MESSAGE 1 + #define SPEECH_BUBBLE_TYPE 2 + #define SPEECH_SPANS 3 + #define SPEECH_SANITIZE 4 + #define SPEECH_LANGUAGE 5 + #define SPEECH_IGNORE_SPAM 6 + #define SPEECH_FORCED 7 + #define SPEECH_FILTERPROOF 8 + #define SPEECH_RANGE 9 + #define SPEECH_SAYMODE 10 + #define SPEECH_MODS 11 + +///from /datum/component/speechmod/handle_speech(): () +#define COMSIG_TRY_MODIFY_SPEECH "try_modify_speech" + ///Return value if we prevent speech from being modified + #define PREVENT_MODIFY_SPEECH 1 + +///from /mob/say_dead(): (mob/speaker, message) +#define COMSIG_MOB_DEADSAY "mob_deadsay" + #define MOB_DEADSAY_SIGNAL_INTERCEPT (1<<0) +///from /mob/living/check_cooldown(): () +#define COMSIG_MOB_EMOTE_COOLDOWN_CHECK "mob_emote_cd" + /// make a wild guess + #define COMPONENT_EMOTE_COOLDOWN_BYPASS (1<<0) +///from /mob/living/emote(): () +#define COMSIG_MOB_EMOTE "mob_emote" +///from base of mob/swap_hand(): (obj/item/currently_held_item) +#define COMSIG_MOB_SWAPPING_HANDS "mob_swapping_hands" + #define COMPONENT_BLOCK_SWAP (1<<0) +/// from base of mob/swap_hand(): () +/// Performed after the hands are swapped. +#define COMSIG_MOB_SWAP_HANDS "mob_swap_hands" +///Mob is trying to open the wires of a target [/atom], from /datum/wires/interactable(): (atom/target) +#define COMSIG_TRY_WIRES_INTERACT "try_wires_interact" + #define COMPONENT_CANT_INTERACT_WIRES (1<<0) +///Mob is trying to emote, from /datum/emote/proc/run_emote(): (key, params, type_override, intentional, emote) +#define COMSIG_MOB_PRE_EMOTED "mob_pre_emoted" + #define COMPONENT_CANT_EMOTE (1<<0) +#define COMSIG_MOB_EMOTED(emote_key) "mob_emoted_[emote_key]" +///sent when a mob/login() finishes: (client) +#define COMSIG_MOB_CLIENT_LOGIN "comsig_mob_client_login" +//from base of client/MouseDown(): (/client, object, location, control, params) +#define COMSIG_CLIENT_MOUSEDOWN "client_mousedown" +//from base of client/MouseUp(): (/client, object, location, control, params) +#define COMSIG_CLIENT_MOUSEUP "client_mouseup" + #define COMPONENT_CLIENT_MOUSEUP_INTERCEPT (1<<0) +//from base of client/MouseUp(): (/client, object, location, control, params) +#define COMSIG_CLIENT_MOUSEDRAG "client_mousedrag" +///Called on the mob being stripped, accepts COMPONENT_CANT_STRIP (mob/user, obj/item/unequipping) +#define COMSIG_BEING_STRIPPED "try_strip" +///Called on user, from base of /datum/strippable_item/try_(un)equip() (atom/target, obj/item/equipping?) +#define COMSIG_TRY_STRIP "try_strip" + #define COMPONENT_CANT_STRIP (1<<0) +///From /datum/component/face_decal/splat/Initialize() +#define COMSIG_MOB_HIT_BY_SPLAT "hit_by_splat" +///From /obj/item/gun/proc/check_botched() +#define COMSIG_MOB_CLUMSY_SHOOT_FOOT "mob_clumsy_shoot_foot" +///from /obj/item/hand_item/slapper/attack_atom(): (source=obj/structure/table/slammed_table, mob/living/slammer) +#define COMSIG_TABLE_SLAMMED "table_slammed" +///from base of atom/attack_hand(): (mob/user, modifiers) +#define COMSIG_MOB_ATTACK_HAND "mob_attack_hand" +///from base of /obj/item/attack(): (mob/M, mob/user, list/modifiers, list/attack_modifiers) +#define COMSIG_MOB_ITEM_ATTACK "mob_item_attack" +///from base of mob/RangedAttack(): (atom/A, modifiers) +#define COMSIG_MOB_ATTACK_RANGED "mob_attack_ranged" +///from base of mob/ranged_secondary_attack(): (atom/target, modifiers) +#define COMSIG_MOB_ATTACK_RANGED_SECONDARY "mob_attack_ranged_secondary" ///From base of /mob/base_click_ctrl: (atom/A) #define COMSIG_MOB_CTRL_CLICKED "mob_ctrl_clicked" ///From base of /mob/base_click_ctrl_shift: (atom/A) #define COMSIG_MOB_CTRL_SHIFT_CLICKED "mob_ctrl_shift_clicked" -///from base of mob/alt_click_on_secodary(): (atom/A) -#define COMSIG_MOB_ALTCLICKON_SECONDARY "mob_altclickon_secondary" +///From base of mob/update_movespeed():area +#define COMSIG_MOB_MOVESPEED_UPDATED "mob_update_movespeed" +/// From /atom/movable/screen/zone_sel/proc/set_selected_zone. +/// Fires when the user has changed their selected body target. +#define COMSIG_MOB_SELECTED_ZONE_SET "mob_set_selected_zone" +/// from base of [/client/proc/handle_spam_prevention] (message, mute_type) +#define COMSIG_MOB_AUTOMUTE_CHECK "client_automute_check" // The check is performed by the client. + /// Prevents the automute system checking this client for repeated messages. + #define WAIVE_AUTOMUTE_CHECK (1<<0) +///From base of /turf/closed/mineral/proc/gets_drilled(): (turf/closed/mineral/rock, give_exp) +#define COMSIG_MOB_MINED "mob_mined" +///Sent by pilot of mech in base of /obj/vehicle/sealed/mecha/relaymove(): (/obj/vehicle/sealed/mecha/mech) +#define COMSIG_MOB_DROVE_MECH "mob_drove_mech" +///Sent by pilot of mech in /obj/vehicle/sealed/mecha/on_mouseclick when using mech equipment : (/obj/vehicle/sealed/mecha/mech) +#define COMSIG_MOB_USED_MECH_EQUIPMENT "mob_used_mech_equipment" +///Sent by pilot of mech in /obj/vehicle/sealed/mecha/on_mouseclick when triggering mech punch : (/obj/vehicle/sealed/mecha/mech) +#define COMSIG_MOB_USED_CLICK_MECH_MELEE "mob_used_click_mech_melee" + +///from living/flash_act(), when a mob is successfully flashed. +#define COMSIG_MOB_FLASHED "mob_flashed" +/// from /obj/item/assembly/flash/flash_mob, to the mob being flashed +#define COMSIG_MOB_FLASH_OVERRIDE_CHECK "mob_flash_override_check" + /// Has the flash effect been overridden? + #define FLASH_OVERRIDDEN (1<<0) +/// from /obj/item/assembly/flash/flash_carbon, to the mob flashing another carbon +#define COMSIG_MOB_PRE_FLASHED_MOB "mob_pre_flashed_mob" + /// Return to override deviation to be full deviation (fail the flash, usually) + #define DEVIATION_OVERRIDE_FULL (1<<0) + /// Return to override deviation to be partial deviation + #define DEVIATION_OVERRIDE_PARTIAL (1<<1) + /// Return to override deviation to be no deviation + #define DEVIATION_OVERRIDE_NONE (1<<2) + /// Return to stop the flash entirely + #define STOP_FLASH (1<<3) +/// from /obj/item/assembly/flash/flash_mob, to the mob flashing another carbon +/// (mob/living/carbon/flashed, obj/item/assembly/flash/flash, deviation (from code/__DEFINES/mobs.dm)) +#define COMSIG_MOB_SUCCESSFUL_FLASHED_MOB "mob_success_flashed_mob" + +/// from mob/get_status_tab_items(): (list/items) +#define COMSIG_MOB_GET_STATUS_TAB_ITEMS "mob_get_status_tab_items" + +/// from /mob/living/carbon/human/can_equip(): (mob/living/carbon/human/source_human, obj/item/equip_target, slot) +#define COMSIG_HUMAN_EQUIPPING_ITEM "mob_equipping_item" + /// cancels the equip. + #define COMPONENT_BLOCK_EQUIP (1<<0) + +/// from mob/proc/dropItemToGround() +#define COMSIG_MOB_DROPPING_ITEM "mob_dropping_item" + +/// from /mob/proc/change_mob_type() : () +#define COMSIG_PRE_MOB_CHANGED_TYPE "pre_mob_changed_type" + #define COMPONENT_BLOCK_MOB_CHANGE (1<<0) +/// from /mob/proc/change_mob_type_unchecked() : () +#define COMSIG_MOB_CHANGED_TYPE "mob_changed_type" + +/// from /mob/proc/slip(): (knockdown_amonut, obj/slipped_on, lube_flags [mobs.dm], paralyze, force_drop) +#define COMSIG_MOB_SLIPPED "mob_slipped" + +/// From the base of /datum/component/callouts/proc/callout_picker(mob/user, atom/clicked_atom): (datum/callout_option/callout, atom/target) +#define COMSIG_MOB_CREATED_CALLOUT "mob_created_callout" + +/// from /mob/proc/key_down(): (key, client/client, full_key) +#define COMSIG_MOB_KEYDOWN "mob_key_down" + +/// from /mob/Process_Spacemove(movement_dir, continuous_move): (movement_dir, continuous_move, atom/backup) +#define COMSIG_MOB_ATTEMPT_HALT_SPACEMOVE "mob_attempt_halt_spacemove" + #define COMPONENT_PREVENT_SPACEMOVE_HALT (1<<0) + +/// from /mob/update_incapacitated(): (old_incap, new_incap) +#define COMSIG_MOB_INCAPACITATE_CHANGED "mob_incapacitated" + +/// from /obj/item/reagent_containers/dropper/interact_with_atom(atom/target, mob/living/user, list/modifiers): (mob/living/user, atom/dropper, datum/reagents/reagents, fraction) +#define COMSIG_MOB_REAGENTS_DROPPED_INTO_EYES "mob_reagents_drop_into_eyes" + +///from /obj/item/crusher_trophy/on_mark_activate(): (trophy, user) +#define COMSIG_MOB_TROPHY_ACTIVATED(identifier) "COMSIG_MOB_TROPHY_ACTIVATED[identifier]" + +/// from /mob/eye/camera/remote/assign_user(): (mob/living/new_user, mob/living/old_user) +#define COMSIG_REMOTE_CAMERA_ASSIGN_USER "remote_camera_assign_user" + +/// from base of mob/death(): (gibbed) +#define COMSIG_MOB_DEATH "mob_death" + + +// NON TG SIGNALS + +///from base of /client/Move(n, direct) : (direction) returns bool, if component handled movement +#define COMSIG_MOB_RELAY_MOVEMENT "mob_relay_movement" +///From /mob/handle_vision(). +#define COMSIG_MOB_HANDLE_VISION "mob_handle_vision" +///From /mob/handle_regular_hud_updates(). +#define COMSIG_MOB_HANDLE_HUD "mob_handle_hud" + #define COMSIG_COMPONENT_HANDLED_HUD (1<<0) +///From /mob/living/proc/handle_hud_icons_health(). +#define COMSIG_MOB_HANDLE_HUD_HEALTH_ICON "living_handle_hud_health_icon" + #define COMSIG_COMPONENT_HANDLED_HEALTH_ICON (1<<0) +///From /mob/living/proc/handle_darksight(). +#define COMSIG_MOB_HANDLE_HUD_DARKSIGHT "living_handle_hud_darksight" +///from /proc/domutcheck(): () +#define COMSIG_MOB_DNA_MUTATION "mob_dna_mutation" +/// Signal that gets sent when a ghost query is completed +#define COMSIG_GHOST_QUERY_COMPLETE "ghost_query_complete" +/// COMSIG used to get messages where they need to go +#define COMSIG_VISIBLE_MESSAGE "visible_message" +#define COMSIG_OBSERVER_MOB_EQUIPPED "observer_mob_equipped" +///from end of revival_healing_action(): () +#define COMSIG_LIVING_AHEAL "living_post_aheal" diff --git a/code/__defines/dcs/signals/signals_mob/signals_mob_megafauna.dm b/code/__defines/dcs/signals/signals_mob/signals_mob_megafauna.dm new file mode 100644 index 0000000000..52ee745f66 --- /dev/null +++ b/code/__defines/dcs/signals/signals_mob/signals_mob_megafauna.dm @@ -0,0 +1,2 @@ + +#define COMSIG_MEGAFAUNA_THETHING_PHASEUPDATED "COMSIG_MEGAFAUNA_THETHING_PHASEUPDATED" diff --git a/code/__defines/dcs/signals/signals_mob/signals_mob_shadekin.dm b/code/__defines/dcs/signals/signals_mob/signals_mob_shadekin.dm new file mode 100644 index 0000000000..8ddc72eb15 --- /dev/null +++ b/code/__defines/dcs/signals/signals_mob/signals_mob_shadekin.dm @@ -0,0 +1,3 @@ +// Species Components +///from /datum/species/proc/handle_species_components() +#define COMSIG_SHADEKIN_COMPONENT "shadekin_component" diff --git a/code/__defines/dcs/signals/signals_mob/signals_mob_silicon.dm b/code/__defines/dcs/signals/signals_mob/signals_mob_silicon.dm new file mode 100644 index 0000000000..741a749af2 --- /dev/null +++ b/code/__defines/dcs/signals/signals_mob/signals_mob_silicon.dm @@ -0,0 +1,30 @@ +///sent from borg recharge stations: (amount, repairs) +#define COMSIG_PROCESS_BORGCHARGER_OCCUPANT "living_charge" +///sent from borg mobs to itself, for tools to catch an upcoming destroy() due to safe decon (rather than detonation) +#define COMSIG_BORG_SAFE_DECONSTRUCT "borg_safe_decon" +///called from /obj/item/borg/cyborghug/attack proc +#define COMSIG_BORG_HUG_MOB "borg_hug_mob" + ///returned if this action was handled by signal handler. + #define COMSIG_BORG_HUG_HANDLED 1 +///called from /mob/living/silicon/attack_hand proc +#define COMSIG_MOB_PAT_BORG "mob_pat_borg" +///called when someone is inquiring about an AI's linked core +#define COMSIG_SILICON_AI_CORE_STATUS "AI_core_status" + #define COMPONENT_CORE_ALL_GOOD (1<<0) + #define COMPONENT_CORE_DISCONNECTED (1<<1) +///called when an AI (malf or perhaps combat upgraded or some other circumstance that has them inhabit +///an APC) enters an APC +#define COMSIG_SILICON_AI_OCCUPY_APC "AI_occupy_apc" +///called when an AI vacates an APC +#define COMSIG_SILICON_AI_VACATE_APC "AI_vacate_apc" +///called when an AI's control is toggled +#define COMSIG_SILICON_AI_SET_CONTROL_DISABLED "AI_set_control_disabled" + +//Non TG signals: +///from the base of /mob/living/silicon/robot/ClickOn(): (var/atom/A, var/params) +#define COMSIG_ROBOT_ITEM_ATTACK "robot_item_attack" +///called when a silicon is emp'd. from /mob/living/silicon/emp_act(severity) +#define COMSIG_SILICON_EMP_ACT "silicon_emp_act" + #define COMPONENT_BLOCK_EMP (1<<0) //If this is set, the EMP will not go through. Used by other EMP acts as well. +///called when a robot is emp'd. from /mob/living/silicon/robot/emp_act(severity) +#define COMSIG_ROBOT_EMP_ACT "robot_emp_act" diff --git a/code/__defines/dcs/signals/signals_mob/signals_mob_simple.dm b/code/__defines/dcs/signals/signals_mob/signals_mob_simple.dm new file mode 100644 index 0000000000..cdbd0d3e43 --- /dev/null +++ b/code/__defines/dcs/signals/signals_mob/signals_mob_simple.dm @@ -0,0 +1,22 @@ +// simple_animal signals +/// called when a simplemob is given sentience from a sentience potion (target = person who sentienced) +#define COMSIG_SIMPLEMOB_SENTIENCEPOTION "simplemob_sentiencepotion" +/// called when a simplemob is given sentience from a consciousness transference potion (target = person who sentienced) +#define COMSIG_SIMPLEMOB_TRANSFERPOTION "simplemob_transferpotion" + +// /mob/living/simple_animal/hostile signals +///before attackingtarget has happened, source is the attacker and target is the attacked +#define COMSIG_HOSTILE_PRE_ATTACKINGTARGET "hostile_pre_attackingtarget" + #define COMPONENT_HOSTILE_NO_ATTACK COMPONENT_CANCEL_ATTACK_CHAIN //cancel the attack, only works before attack happens +///after attackingtarget has happened, source is the attacker and target is the attacked, extra argument for if the attackingtarget was successful +#define COMSIG_HOSTILE_POST_ATTACKINGTARGET "hostile_post_attackingtarget" + +///FROM mob/living/simple_animal/hostile/ooze/eat_atom(): (atom/target, edible_flags) +#define COMSIG_OOZE_EAT_ATOM "ooze_eat_atom" + #define COMPONENT_ATOM_EATEN (1<<0) + +///Called when a /mob/living/simple_animal/hostile fines a new target: (atom/source, new_target) +#define COMSIG_HOSTILE_FOUND_TARGET "comsig_hostile_found_target" + +///Called when a regal rat uses their riot ability on a mob +#define COMSIG_REGAL_RAT_RIOTED "comsig_regal_rat_rioted" diff --git a/code/__defines/dcs/signals/signals_mob/signals_mob_spawner.dm b/code/__defines/dcs/signals/signals_mob/signals_mob_spawner.dm new file mode 100644 index 0000000000..2e1b157ec1 --- /dev/null +++ b/code/__defines/dcs/signals/signals_mob/signals_mob_spawner.dm @@ -0,0 +1,9 @@ +// signals for use by mob spawners +/// called when a spawner spawns a mob +#define COMSIG_SPAWNER_SPAWNED "spawner_spawned" + +/// Called when a spawner spawns a mob in a turf peel, but we need to use the default case. +#define COMSIG_SPAWNER_SPAWNED_DEFAULT "spawner_spawned_default" + +/// called when a ghost clicks a spawner role: (mob/living) +#define COMSIG_GHOSTROLE_SPAWNED "ghostrole_spawned" diff --git a/code/__defines/dcs/signals/signals_mob/signals_mob_xenochimera.dm b/code/__defines/dcs/signals/signals_mob/signals_mob_xenochimera.dm new file mode 100644 index 0000000000..ca888a2680 --- /dev/null +++ b/code/__defines/dcs/signals/signals_mob/signals_mob_xenochimera.dm @@ -0,0 +1,2 @@ +///from /datum/species/proc/handle_species_components() +#define COMSIG_XENOCHIMERA_COMPONENT "xenochimera_component" diff --git a/code/__defines/dcs/signals/signals_mod.dm b/code/__defines/dcs/signals/signals_mod.dm new file mode 100644 index 0000000000..bc76dd3e87 --- /dev/null +++ b/code/__defines/dcs/signals/signals_mod.dm @@ -0,0 +1,56 @@ +//MODsuit signals +/// Called when a module is selected to be the active one from on_select(obj/item/mod/module/module) +#define COMSIG_MOD_MODULE_SELECTED "mod_module_selected" +/// Called when a MOD user deploys one or more of its parts. +#define COMSIG_MOD_DEPLOYED "mod_deployed" +/// Called when a MOD user retracts one or more of its parts. +#define COMSIG_MOD_RETRACTED "mod_retracted" +/// Called when a MOD deploys a part. (mob/user, datum/mod_part/part) +#define COMSIG_MOD_PART_DEPLOYED "mod_part_deployed" +/// Called when a MOD retracts a part. (mob/user, datum/mod_part/part) +#define COMSIG_MOD_PART_RETRACTING "mod_part_retracting" + #define MOD_CANCEL_RETRACTION (1 << 0) +/// Called when a MOD seals/unseals a part. (datum/mod_part/part) +#define COMSIG_MOD_PART_SEALED "mod_part_sealed" +/// Called when a MOD is finished toggling itself. +#define COMSIG_MOD_TOGGLED "mod_toggled" +/// Called when a MOD activation is called from toggle_activate(mob/user) +#define COMSIG_MOD_ACTIVATE "mod_activate" + /// Cancels the suit's activation + #define MOD_CANCEL_ACTIVATE (1 << 0) +/// Called when a MOD finishes having a module removed from it. +#define COMSIG_MOD_MODULE_REMOVED "mod_module_removed" +/// Called when a MOD finishes having a module added to it. +#define COMSIG_MOD_MODULE_ADDED "mod_module_added" +/// Called when a MOD is having modules removed from crowbar_act(mob/user, obj/crowbar) +#define COMSIG_MOD_MODULE_REMOVAL "mod_module_removal" + /// Cancels the removal of modules + #define MOD_CANCEL_REMOVAL (1 << 0) +/// Called when a module attempts to activate, however it does. At the end of checks so you can add some yourself, or work on trigger behavior (mob/user) +#define COMSIG_MODULE_TRIGGERED "mod_module_triggered" + /// Cancels activation, with no message. Include feedback on your cancel. + #define MOD_ABORT_USE (1<<0) +/// Called when a module activates, after all checks have passed and cooldown started. +#define COMSIG_MODULE_ACTIVATED "mod_module_activated" +/// Called when a module successfully activates on the MODsuit itself +#define COMSIG_MOD_MODULE_ACTIVATED "mod_core_module_activated" +/// Called when a module starts a cooldown until its next activation. Passed the cooldown time. +#define COMSIG_MODULE_COOLDOWN_STARTED "mod_module_cooldown_started" +/// Called when a module deactivates, after all checks have passed. +#define COMSIG_MODULE_DEACTIVATED "mod_module_deactivated" +/// Called when a module successfully deactivates on the mod itself +#define COMSIG_MOD_MODULE_DEACTIVATED "mod_core_module_deactivated" +/// Called when a module is used, after all checks have passed and cooldown started. +#define COMSIG_MODULE_USED "mod_module_used" +/// Called when the MODsuit wearer is set. +#define COMSIG_MOD_WEARER_SET "mod_wearer_set" +/// Called when the MODsuit wearer is unset. +#define COMSIG_MOD_WEARER_UNSET "mod_wearer_unset" +/// Sent by the tether module when it triggers its snapping function +#define COMSIG_MOD_TETHER_SNAP "mod_tether_snap" +/// Called when a MOD module generats its worn overlay +#define COMSIG_MODULE_GENERATE_WORN_OVERLAY "mod_module_generate_worn_overlay" +/// Called when the MOD control unit fetches its visor icon +#define COMSIG_MOD_GET_VISOR_OVERLAY "mod_get_visor_overlay" +/// Called when the MOD control unit updates its parts speed +#define COMSIG_MOD_UPDATE_SPEED "mod_update_speed" diff --git a/code/__defines/dcs/signals/signals_modular_computer.dm b/code/__defines/dcs/signals/signals_modular_computer.dm new file mode 100644 index 0000000000..dd325e4198 --- /dev/null +++ b/code/__defines/dcs/signals/signals_modular_computer.dm @@ -0,0 +1,49 @@ +// Various modular computer signals. + +/// From /obj/item/modular_computer/proc/turn_on: (user) +#define COMSIG_MODULAR_COMPUTER_TURNED_ON "comsig_modular_computer_turned_on" +/// From /obj/item/modular_computer/proc/shutdown_computer: (loud) +#define COMSIG_MODULAR_COMPUTER_SHUT_DOWN "comsig_modular_computer_shut_down" + +/// From /obj/item/modular_computer/proc/store_file: (datum/computer_file/file_storing) +#define COMSIG_MODULAR_COMPUTER_FILE_STORE "comsig_modular_computer_file_store" +/// From /obj/item/modular_computer/proc/remove_file: (datum/computer_file/file_removing) +#define COMSIG_MODULAR_COMPUTER_FILE_DELETE "comsig_modular_computer_file_delete" +/// From /obj/item/modular_computer/proc/store_file: (datum/computer_file/file_source, obj/item/modular_computer/host) +#define COMSIG_COMPUTER_FILE_STORE "comsig_computer_file_store" +/// From /obj/item/modular_computer/proc/store_file: () +#define COMSIG_COMPUTER_FILE_DELETE "comsig_computer_file_delete" + +/// From /obj/item/modular_computer/proc/InsertID: (inserting_id, user) +#define COMSIG_MODULAR_COMPUTER_INSERTED_ID "comsig_computer_inserted_id" + +/// From /datum/computer_file/program/on_start: (user) +#define COMSIG_COMPUTER_PROGRAM_START "computer_program_start" + +/// From /datum/computer_file/program/kill_program: (user) +#define COMSIG_COMPUTER_PROGRAM_KILL "computer_program_kill" + +/// From /datum/computer_file/program/nt_pay/make_payment: (payment_result) +#define COMSIG_MODULAR_COMPUTER_NT_PAY_RESULT "comsig_modular_computer_nt_pay_result" + +/// From /datum/computer_file/program/nt_pay/make_payment: (spookiness, manual) +#define COMSIG_MODULAR_COMPUTER_SPECTRE_SCAN "comsig_modular_computer_spectre_scan" + +/// From /datum/computer_file/program/radar/trackable: (atom/signal, turf/signal_turf, turf/computer_turf) +#define COMSIG_MODULAR_COMPUTER_RADAR_TRACKABLE "comsig_modular_computer_radar_trackable" + #define COMPONENT_RADAR_TRACK_ANYWAY (1<<0) + #define COMPONENT_RADAR_DONT_TRACK (1<<1) +/// From /datum/computer_file/program/radar/find_atom: (list/atom_container) +#define COMSIG_MODULAR_COMPUTER_RADAR_FIND_ATOM "comsig_modular_computer_radar_find_atom" +/// From /datum/computer_file/program/radar/ui_act, when action is "selecttarget": (selected_ref) +#define COMSIG_MODULAR_COMPUTER_RADAR_SELECTED "comsig_modular_computer_radar_selected" + +/// from /obj/item/modular_computer/imprint_id(): (name, job) +#define COMSIG_MODULAR_PDA_IMPRINT_UPDATED "comsig_modular_pda_imprint_updated" +/// from /obj/item/modular_computer/reset_id(): () +#define COMSIG_MODULAR_PDA_IMPRINT_RESET "comsig_modular_pda_imprint_reset" + +/// From /datum/computer_file/program/messenger/receive_message, sent to the computer: (signal/subspace/messaging/tablet_message/signal, sender_job, sender_name) +#define COMSIG_MODULAR_PDA_MESSAGE_RECEIVED "comsig_modular_pda_message_received" +/// From /datum/computer_file/program/messenger/send_message_signal, sent to the computer: (atom/origin, datum/signal/subspace/messaging/tablet_message/signal) +#define COMSIG_MODULAR_PDA_MESSAGE_SENT "comsig_modular_pda_message_sent" diff --git a/code/__defines/dcs/signals/signals_motiontracker.dm b/code/__defines/dcs/signals/signals_motiontracker.dm new file mode 100644 index 0000000000..01f0096101 --- /dev/null +++ b/code/__defines/dcs/signals/signals_motiontracker.dm @@ -0,0 +1,2 @@ +///from /datum/controller/subsystem/motion_tracker/notice() (/datum/weakref/source_atom,/turf/echo_turf_location) +#define COMSIG_MOVABLE_MOTIONTRACKER "move_motiontracker" diff --git a/code/__defines/dcs/signals/signals_moveloop.dm b/code/__defines/dcs/signals/signals_moveloop.dm new file mode 100644 index 0000000000..8a354f8bfb --- /dev/null +++ b/code/__defines/dcs/signals/signals_moveloop.dm @@ -0,0 +1,13 @@ +///from [/datum/move_loop/start_loop] (): +#define COMSIG_MOVELOOP_START "moveloop_start" +///from [/datum/move_loop/stop_loop] (): +#define COMSIG_MOVELOOP_STOP "moveloop_stop" +///from [/datum/move_loop/process] (): +#define COMSIG_MOVELOOP_PREPROCESS_CHECK "moveloop_preprocess_check" + #define MOVELOOP_SKIP_STEP (1<<0) +///from [/datum/move_loop/process] (result, visual_delay): //Result is an enum value. Enums defined in __DEFINES/movement.dm +#define COMSIG_MOVELOOP_POSTPROCESS "moveloop_postprocess" +//from [/datum/move_loop/has_target/jps/recalculate_path] (): +#define COMSIG_MOVELOOP_JPS_REPATH "moveloop_jps_repath" +///from [/datum/move_loop/has_target/jps/on_finish_pathing] +#define COMSIG_MOVELOOP_JPS_FINISHED_PATHING "moveloop_jps_finished_pathing" diff --git a/code/__defines/dcs/signals/signals_movetype.dm b/code/__defines/dcs/signals/signals_movetype.dm new file mode 100644 index 0000000000..da584ba022 --- /dev/null +++ b/code/__defines/dcs/signals/signals_movetype.dm @@ -0,0 +1,4 @@ +/// From base of datum/element/movetype_handler/on_movement_type_trait_gain: (flag, old_movement_type) +#define COMSIG_MOVETYPE_FLAG_ENABLED "movetype_flag_enabled" +/// From base of datum/element/movetype_handler/on_movement_type_trait_loss: (flag, old_movement_type) +#define COMSIG_MOVETYPE_FLAG_DISABLED "movetype_flag_disabled" diff --git a/code/__defines/dcs/signals/signals_music.dm b/code/__defines/dcs/signals/signals_music.dm index 2f15f4e632..107a2bff02 100644 --- a/code/__defines/dcs/signals/signals_music.dm +++ b/code/__defines/dcs/signals/signals_music.dm @@ -10,3 +10,8 @@ #define COMSIG_INSTRUMENT_REPEAT "instrument_repeat" ///sent to the instrument when tempo changes, skipped on new. (datum/song) #define COMSIG_INSTRUMENT_TEMPO_CHANGE "instrument_tempo_change" + +// /datum/jukebox signals + +///sent to the jukebox when the volume preference is changed and applied +#define COMSIG_MOB_JUKEBOX_PREFERENCE_APPLIED "jukebox_pref_applied" diff --git a/code/__defines/dcs/signals/signals_object.dm b/code/__defines/dcs/signals/signals_object.dm index cdac6dd54a..6145170995 100644 --- a/code/__defines/dcs/signals/signals_object.dm +++ b/code/__defines/dcs/signals/signals_object.dm @@ -1,6 +1,640 @@ -///from /obj/machinery/computer/arcade/prizevend(mob/user, prizes = 1) -#define COMSIG_ARCADE_PRIZEVEND "arcade_prizevend" -///from /obj/machinery/rnd/destructive_analyzer/proc/destroy_item_individual(gain_research_points = FALSE): Runs when the destructive scanner scans a group of objects. (obj/item) +// Object signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +// /obj signals +///from base of obj/deconstruct(): (disassembled) +#define COMSIG_OBJ_DECONSTRUCT "obj_deconstruct" +///from base of code/game/machinery +#define COMSIG_OBJ_DEFAULT_UNFASTEN_WRENCH "obj_default_unfasten_wrench" +///from base of /turf/proc/levelupdate(). (intact) true to hide and false to unhide +#define COMSIG_OBJ_HIDE "obj_hide" +/// from /obj/item/toy/crayon/spraycan/use_on: (user, spraycan, color_is_dark) +#define COMSIG_OBJ_PAINTED "obj_painted" + #define DONT_USE_SPRAYCAN_CHARGES (1<<0) +/// from /obj/obj_reskin: (mob/user, skin) +#define COMSIG_OBJ_RESKIN "obj_reskin" + +#define COMSIG_LIONHUNTER_ON_HIT "lionhunter_on_hit" + +/// from /datum/component/subtype_picker/pick_subtype(): (obj/item/old_item, mob/picker) +#define COMSIG_ITEM_SUBTYPE_PICKER_SELECTED "item_subtype_picker_selected" + +// /obj/machinery signals + +///from /obj/machinery/atom_break(damage_flag): (damage_flag) +#define COMSIG_MACHINERY_BROKEN "machinery_broken" +///from base power_change() when power is lost +#define COMSIG_MACHINERY_POWER_LOST "machinery_power_lost" +///from base power_change() when power is restored +#define COMSIG_MACHINERY_POWER_RESTORED "machinery_power_restored" +///from /obj/machinery/set_occupant(atom/movable/O): (new_occupant) +#define COMSIG_MACHINERY_SET_OCCUPANT "machinery_set_occupant" +///from /obj/machinery/destructive_scanner/proc/open(aggressive): Runs when the destructive scanner scans a group of objects. (list/scanned_atoms) #define COMSIG_MACHINERY_DESTRUCTIVE_SCAN "machinery_destructive_scan" -///from /obj/structure/closet/close() -#define COMSIG_CLOSET_CLOSED "closet_closed" +///from /obj/machinery/computer/arcade/victory_tickets(tickets, sound = TRUE) +#define COMSIG_ARCADE_VICTORY "arcade_victory" +///from /datum/controller/subsystem/air/proc/start_processing_machine: () +#define COMSIG_MACHINERY_START_PROCESSING_AIR "start_processing_air" +///from /datum/controller/subsystem/air/proc/stop_processing_machine: () +#define COMSIG_MACHINERY_STOP_PROCESSING_AIR "stop_processing_air" +///from /obj/machinery/RefreshParts: () +#define COMSIG_MACHINERY_REFRESH_PARTS "machine_refresh_parts" +///from /obj/machinery/default_change_direction_wrench: (mob/user, obj/item/wrench) +#define COMSIG_MACHINERY_DEFAULT_ROTATE_WRENCH "machinery_default_rotate_wrench" + +///from /obj/machinery/can_interact(mob/user): Called on user when attempting to interact with a machine (obj/machinery/machine) +#define COMSIG_TRY_USE_MACHINE "try_use_machine" + /// Can't interact with the machine + #define COMPONENT_CANT_USE_MACHINE_INTERACT (1<<0) + /// Can't use tools on the machine + #define COMPONENT_CANT_USE_MACHINE_TOOLS (1<<1) + +#define COMSIG_ORE_SILO_PERMISSION_CHECKED "ore_silo_permission_checked" + /// The ore silo is not allowed to be used + #define COMPONENT_ORE_SILO_DENY (1<<0) + /// The ore silo is allowed to be used + #define COMPONENT_ORE_SILO_ALLOW (1<<1) + +///from obj/machinery/iv_drip/IV_attach(target, usr) : (attachee) +#define COMSIG_IV_ATTACH "iv_attach" +///from obj/machinery/iv_drip/IV_detach() : (detachee) +#define COMSIG_IV_DETACH "iv_detach" + + +// /obj/machinery/computer/teleporter +/// from /obj/machinery/computer/teleporter/proc/set_target(target, old_target) +#define COMSIG_TELEPORTER_NEW_TARGET "teleporter_new_target" +/// from /obj/item/beacon/proc/turn_off() +#define COMSIG_BEACON_DISABLED "beacon_disabled" + +// /obj/machinery/power/supermatter_crystal +/// from /obj/machinery/power/supermatter_crystal/process_atmos(); when the SM sounds an audible alarm +#define COMSIG_SUPERMATTER_DELAM_ALARM "sm_delam_alarm" + +/// from /datum/component/supermatter_crystal/proc/consume() +/// called on the thing consumed, passes the thing which consumed it +#define COMSIG_SUPERMATTER_CONSUMED "sm_consumed_this" + +// /obj/machinery/cryo_cell signals + +/// from /obj/machinery/cryo_cell/set_on(bool): (on) +#define COMSIG_CRYO_SET_ON "cryo_set_on" + +/// from /obj/proc/unfreeze() +#define COMSIG_OBJ_UNFREEZE "obj_unfreeze" + +// /obj/machinery/atmospherics/components/binary/valve signals + +/// from /obj/machinery/atmospherics/components/binary/valve/toggle(): (on) +#define COMSIG_VALVE_SET_OPEN "valve_toggled" + +/// from /obj/machinery/atmospherics/set_on(active): (on) +#define COMSIG_ATMOS_MACHINE_SET_ON "atmos_machine_set_on" + +/// from /obj/machinery/light_switch/set_lights(), sent to every switch in the area: (status) +#define COMSIG_LIGHT_SWITCH_SET "light_switch_set" + +/// from /obj/machinery/fire_alarm/reset(), /obj/machinery/fire_alarm/alarm(): (status) +#define COMSIG_FIREALARM_ON_TRIGGER "firealarm_trigger" +#define COMSIG_FIREALARM_ON_RESET "firealarm_reset" + +// /obj access signals + +#define COMSIG_OBJ_ALLOWED "door_try_to_activate" + #define COMPONENT_OBJ_ALLOW (1<<0) + #define COMPONENT_OBJ_DISALLOW (1<<1) + +#define COMSIG_AIRLOCK_SHELL_ALLOWED "airlock_shell_try_allowed" + +// /obj/machinery/door/airlock signals + +//from /obj/machinery/door/airlock/open(): (forced) +#define COMSIG_AIRLOCK_OPEN "airlock_open" +//from /obj/machinery/door/airlock/close(): (forced) +#define COMSIG_AIRLOCK_CLOSE "airlock_close" +///from /obj/machinery/door/airlock/set_bolt(): +#define COMSIG_AIRLOCK_SET_BOLT "airlock_set_bolt" +///from /obj/machinery/door/airlock/bumpopen(), to the carbon who bumped: (airlock) +#define COMSIG_CARBON_BUMPED_AIRLOCK_OPEN "carbon_bumped_airlock_open" + /// Return to stop the door opening on bump. + #define STOP_BUMP (1<<0) + +// /obj/item signals + +///from base of obj/item/equipped(): (mob/equipper, slot) +#define COMSIG_ITEM_EQUIPPED "item_equip" +///From base of obj/item/on_equipped() (mob/equipped, slot) +#define COMSIG_ITEM_POST_EQUIPPED "item_post_equipped" + /// This will make the on_equipped proc return FALSE. + #define COMPONENT_EQUIPPED_FAILED (1<<0) +/// A mob has just equipped an item. Called on [/mob] from base of [/obj/item/equipped()]: (/obj/item/equipped_item, slot) +#define COMSIG_MOB_EQUIPPED_ITEM "mob_equipped_item" +/// A mob has just unequipped an item. +#define COMSIG_MOB_UNEQUIPPED_ITEM "mob_unequipped_item" +///called on [/obj/item] before unequip from base of [mob/proc/doUnEquip]: (force, atom/newloc, no_move, invdrop, silent) +#define COMSIG_ITEM_PRE_UNEQUIP "item_pre_unequip" + ///only the pre unequip can be cancelled + #define COMPONENT_ITEM_BLOCK_UNEQUIP (1<<0) +///called on [/obj/item] AFTER unequip from base of [mob/proc/doUnEquip]: (force, atom/newloc, no_move, invdrop, silent) +#define COMSIG_ITEM_POST_UNEQUIP "item_post_unequip" +///from base of obj/item/on_grind(): ()) +#define COMSIG_ITEM_ON_GRIND "on_grind" +///from base of obj/item/on_juice(): () +#define COMSIG_ITEM_ON_JUICE "on_juice" +///from /obj/machinery/hydroponics/attackby(obj/item/O, mob/user, list/modifiers, list/attack_modifiers) when an object is used as compost: (mob/user) +#define COMSIG_ITEM_ON_COMPOSTED "on_composted" +///Called when an item is dried by a drying rack +#define COMSIG_ITEM_DRIED "item_dried" +///from base of obj/item/dropped(): (mob/user) +#define COMSIG_ITEM_DROPPED "item_drop" +///a mob has just dropped an item +#define COMSIG_MOB_DROPPED_ITEM "mob_dropped_item" +///from base of obj/item/pickup(): (/mob/taker) +#define COMSIG_ITEM_PICKUP "item_pickup" +///from base of obj/item/on_outfit_equip(): (mob/equipper, visuals_only, slot) +#define COMSIG_ITEM_EQUIPPED_AS_OUTFIT "item_equip_as_outfit" +///from base of datum/storage/handle_enter(): (datum/storage/storage) +#define COMSIG_ITEM_STORED "item_stored" +///from base of datum/storage/handle_exit(): (datum/storage/storage) +#define COMSIG_ITEM_UNSTORED "item_unstored" + +/** + * From base of datum/strippable_item/get_alternate_actions(): (atom/owner, mob/user, list/alt_actions) + * As a side note, make sure the strippable item datum (the slot) in question doesn't have too many alternate actions already, + * as only up to three are supported at a time (as of september 2025), though, so far only the jumpsuit slot uses all three slots. + * + * Also make sure to code the alt action and add it to the StripMenu.tsx interface + */ +#define COMSIG_ITEM_GET_STRIPPABLE_ALT_ACTIONS "item_get_strippable_alt_actions" + +/// From base of datum/strippable_item/perform_alternate_action(): (atom/owner, mob/user, action_key) +#define COMSIG_ITEM_STRIPPABLE_ALT_ACTION "item_strippable_alt_action" + #define COMPONENT_ALT_ACTION_DONE (1<<0) + +///from base of obj/item/apply_fantasy_bonuses(): (bonus) +#define COMSIG_ITEM_APPLY_FANTASY_BONUSES "item_apply_fantasy_bonuses" +///from base of obj/item/remove_fantasy_bonuses(): (bonus) +#define COMSIG_ITEM_REMOVE_FANTASY_BONUSES "item_remove_fantasy_bonuses" + +/// Sebt from obj/item/ui_action_click(): (mob/user, datum/action) +#define COMSIG_ITEM_UI_ACTION_CLICK "item_action_click" + /// Return to prevent the default behavior (attack_selfing) from occurring. + #define COMPONENT_ACTION_HANDLED (1<<0) + +/// Sent from obj/item/item_action_slot_check(): (mob/user, datum/action, slot) +#define COMSIG_ITEM_UI_ACTION_SLOT_CHECKED "item_action_slot_checked" + /// Return to prevent the default behavior (attack_selfing) from occurring. + #define COMPONENT_ITEM_ACTION_SLOT_INVALID (1<<0) + +///from base of mob/living/carbon/attacked_by(): (mob/living/carbon/target, mob/living/user, hit_zone) +#define COMSIG_ITEM_ATTACK_ZONE "item_attack_zone" +///from base of obj/item/hit_reaction(): (owner, hitby, attack_text, final_block_chance, damage, attack_type, damage_type) +#define COMSIG_ITEM_HIT_REACT "item_hit_react" + #define COMPONENT_HIT_REACTION_BLOCK (1<<0) +///from base of item/sharpener/attackby(): (amount, max) +#define COMSIG_ITEM_SHARPEN_ACT "sharpen_act" + #define COMPONENT_BLOCK_SHARPEN_APPLIED (1<<0) + #define COMPONENT_BLOCK_SHARPEN_BLOCKED (1<<1) + #define COMPONENT_BLOCK_SHARPEN_ALREADY (1<<2) + #define COMPONENT_BLOCK_SHARPEN_MAXED (1<<3) + +///Called when an armor plate is successfully applied to an object +#define COMSIG_ARMOR_PLATED "armor_plated" +///Called when an item gets recharged by the ammo powerup +#define COMSIG_ITEM_RECHARGED "item_recharged" +///Called when an item is being offered, from [/obj/item/proc/on_offered(mob/living/offerer)] +#define COMSIG_ITEM_OFFERING "item_offering" + ///Interrupts the offer proc + #define COMPONENT_OFFER_INTERRUPT (1<<0) +///Called when an someone tries accepting an offered item, from [/obj/item/proc/on_offer_taken(mob/living/offerer, mob/living/taker)] +#define COMSIG_ITEM_OFFER_TAKEN "item_offer_taken" + ///Interrupts the offer acceptance + #define COMPONENT_OFFER_TAKE_INTERRUPT (1<<0) +/// sent from obj/effect/attackby(): (/obj/effect/hit_effect, /mob/living/attacker, list/modifiers) +#define COMSIG_ITEM_ATTACK_EFFECT "item_effect_attacked" +/// Called by /obj/item/proc/worn_overlays(list/overlays, mutable_appearance/standing, isinhands, icon_file) +#define COMSIG_ITEM_GET_WORN_OVERLAYS "item_get_worn_overlays" +/// Called by /obj/item/proc/separate_worn_overlays(list/overlays, mutable_appearance/standing, mutable_appearance/draw_target, isinhands, icon_file) +#define COMSIG_ITEM_GET_SEPARATE_WORN_OVERLAYS "item_get_separate_worn_overlays" + +///from base of [/obj/item/proc/tool_check_callback]: (mob/living/user) +#define COMSIG_TOOL_IN_USE "tool_in_use" +///from base of [/obj/item/proc/tool_start_check]: (mob/living/user) +#define COMSIG_TOOL_START_USE "tool_start_use" +/// From /obj/item/multitool/remove_buffer(): (buffer) +#define COMSIG_MULTITOOL_REMOVE_BUFFER "multitool_remove_buffer" +///from [/obj/effect/mine/proc/triggermine]: +#define COMSIG_MINE_TRIGGERED "minegoboom" +///from [/obj/structure/closet/supplypod/proc/preOpen]: +#define COMSIG_SUPPLYPOD_LANDED "supplypodgoboom" + +/// from [/obj/item/stack/proc/can_merge]: (obj/item/stack/merge_with, in_hand) +#define COMSIG_STACK_CAN_MERGE "stack_can_merge" + #define CANCEL_STACK_MERGE (1<<0) + +///from /obj/item/book/bible/interact_with_atom(): (mob/user) +#define COMSIG_BIBLE_SMACKED "bible_smacked" + ///stops the bible chain from continuing. When all of the effects of the bible smacking have been moved to a signal we can kill this + #define COMSIG_END_BIBLE_CHAIN (1<<0) +///Closets +///From base of [/obj/structure/closet/proc/insert]: (atom/movable/inserted) +#define COMSIG_CLOSET_INSERT "closet_insert" + ///used to interrupt insertion + #define COMPONENT_CLOSET_INSERT_INTERRUPT (1<<0) + +///From open: (forced) +#define COMSIG_CLOSET_PRE_OPEN "closet_pre_open" + #define BLOCK_OPEN (1<<0) +///From open: (forced) +#define COMSIG_CLOSET_POST_OPEN "closet_post_open" + +///From close +#define COMSIG_CLOSET_PRE_CLOSE "closet_pre_close" + #define BLOCK_CLOSE (1<<1) +///From close +#define COMSIG_CLOSET_POST_CLOSE "closet_post_close" + +///a deliver_first element closet was successfully delivered +#define COMSIG_CLOSET_DELIVERED "crate_delivered" + +///Eigenstasium +///From base of [/datum/controller/subsystem/eigenstates/proc/use_eigenlinked_atom]: (var/target) +#define COMSIG_EIGENSTATE_ACTIVATE "eigenstate_activate" + +// /obj signals for economy +///called when the payment component tries to charge an account. +#define COMSIG_OBJ_ATTEMPT_CHARGE "obj_attempt_simple_charge" + #define COMPONENT_OBJ_CANCEL_CHARGE (1<<0) +///Called when a payment component changes value +#define COMSIG_OBJ_ATTEMPT_CHARGE_CHANGE "obj_attempt_simple_charge_change" + +// /obj/item signals for economy +///called before an item is sold by the exports system. +#define COMSIG_ITEM_PRE_EXPORT "item_pre_sold" + /// Stops the export from calling sell_object() on the item, so you can handle it manually. + #define COMPONENT_STOP_EXPORT (1<<0) +///called when an item is sold by the exports subsystem +#define COMSIG_ITEM_EXPORTED "item_sold" + /// Stops the export from adding the export information to the report, so you can handle it manually. + #define COMPONENT_STOP_EXPORT_REPORT (1<<0) +///called when a wrapped up item is opened by hand +#define COMSIG_ITEM_UNWRAPPED "item_unwrapped" + #define COMSIG_ITEM_SPLIT_VALUE (1<<0) +///called when getting the item's exact ratio for cargo's profit. +#define COMSIG_ITEM_SPLIT_PROFIT "item_split_profits" +///called when getting the item's exact ratio for cargo's profit, without selling the item. +#define COMSIG_ITEM_SPLIT_PROFIT_DRY "item_split_profits_dry" + +/// Called on component/uplink/OnAttackBy(..) +#define COMSIG_ITEM_ATTEMPT_TC_REIMBURSE "item_attempt_tc_reimburse" +/// Called when a holoparasite/guardiancreator is used. +#define COMSIG_TRAITOR_ITEM_USED(type) "traitor_item_used_[type]" +/// Called after an item is refunded +#define COMSIG_ITEM_TC_REIMBURSED "item_tc_reimbursed" + +// /obj/item/clothing signals + +///from [/mob/living/carbon/human/Move]: () +#define COMSIG_SHOES_STEP_ACTION "shoes_step_action" + +// /obj/item/implant signals +///from base of /obj/item/implant/proc/activate(): () +#define COMSIG_IMPLANT_ACTIVATED "implant_activated" +///from base of /obj/item/implant/proc/implant(): (list/args) +#define COMSIG_IMPLANT_IMPLANTING "implant_implanting" + #define COMPONENT_STOP_IMPLANTING (1<<0) +///called on already installed implants when a new one is being added in /obj/item/implant/proc/implant(): (list/args, obj/item/implant/new_implant) +#define COMSIG_IMPLANT_OTHER "implant_other" + //#define COMPONENT_STOP_IMPLANTING (1<<0) //The name makes sense for both + #define COMPONENT_DELETE_NEW_IMPLANT (1<<1) + #define COMPONENT_DELETE_OLD_IMPLANT (1<<2) + +/// called on implants, after a successful implantation: (mob/living/target, mob/user, silent, force) +#define COMSIG_IMPLANT_IMPLANTED "implant_implanted" + +/// called on implants, after an implant has been removed: (mob/living/source, silent, special) +#define COMSIG_IMPLANT_REMOVED "implant_removed" + +/// called as a mindshield is implanted: (mob/user) +#define COMSIG_PRE_MINDSHIELD_IMPLANT "pre_mindshield_implant" + /// Did they successfully get mindshielded? + #define COMPONENT_MINDSHIELD_PASSED (NONE) + /// Did they resist the mindshield? + #define COMPONENT_MINDSHIELD_RESISTED (1<<0) + +/// called once a mindshield is implanted: (mob/user) +#define COMSIG_MINDSHIELD_IMPLANTED "mindshield_implanted" + /// Are we the reason for deconversion? + #define COMPONENT_MINDSHIELD_DECONVERTED (1<<0) + +///called on implants being implanted into someone with an uplink implant: (datum/component/uplink) +#define COMSIG_IMPLANT_EXISTING_UPLINK "implant_uplink_exists" + //This uses all return values of COMSIG_IMPLANT_OTHER + +// /obj/item/pda signals + +///called on pda when the user changes the ringtone: (mob/living/user, new_ringtone) +#define COMSIG_TABLET_CHANGE_ID "comsig_tablet_change_id" + #define COMPONENT_STOP_RINGTONE_CHANGE (1<<0) +#define COMSIG_TABLET_CHECK_DETONATE "pda_check_detonate" + #define COMPONENT_TABLET_NO_DETONATE (1<<0) + +// /obj/item/radio signals + +///called from base of /obj/item/proc/talk_into(): (atom/movable/speaker, message, channel, list/spans, language, list/message_mods) +#define COMSIG_ITEM_TALK_INTO "item_talk_into" +///called from base of /obj/item/radio/proc/set_frequency(): (list/args) +#define COMSIG_RADIO_NEW_FREQUENCY "radio_new_frequency" +///called from base of /obj/item/radio/talk_into(): (atom/movable/M, message, channel) +#define COMSIG_RADIO_NEW_MESSAGE "radio_new_message" +///called from base of /obj/item/radio/proc/on_receive_messgae(): (list/data) +#define COMSIG_RADIO_RECEIVE_MESSAGE "radio_receive_message" + +// /obj/item/pen signals + +///called after rotation in /obj/item/pen/attack_self(): (rotation, mob/living/carbon/user) +#define COMSIG_PEN_ROTATED "pen_rotated" + +// /obj/item/gun signals + +///called in /obj/item/gun/try_fire_gun (user, src, target, flag, params) +#define COMSIG_MOB_TRYING_TO_FIRE_GUN "mob_trying_to_fire_gun" +///called in /obj/item/gun/fire_gun (user, target, flag, params) +#define COMSIG_GUN_TRY_FIRE "gun_try_fire" + #define COMPONENT_CANCEL_GUN_FIRE (1<<0) /// Also returned to cancel COMSIG_MOB_TRYING_TO_FIRE_GUN +///called in /obj/item/gun/process_fire (src, target, params, zone_override, bonus_spread_values) +#define COMSIG_MOB_FIRED_GUN "mob_fired_gun" + #define MIN_BONUS_SPREAD_INDEX 1 + #define MAX_BONUS_SPREAD_INDEX 2 +///called in /obj/item/gun/process_fire (user, target, params, zone_override) +#define COMSIG_GUN_FIRED "gun_fired" +///called in /obj/item/gun/process_chamber (src) +#define COMSIG_GUN_CHAMBER_PROCESSED "gun_chamber_processed" +///called in /obj/item/gun/ballistic/process_chamber (casing) +#define COMSIG_CASING_EJECTED "casing_ejected" +///called in /obj/item/gun/ballistic/sawoff(mob/user, obj/item/saw, handle_modifications) : (mob/user) +#define COMSIG_GUN_BEING_SAWNOFF "gun_being_sawnoff" + #define COMPONENT_CANCEL_SAWING_OFF (1<<0) +#define COMSIG_GUN_SAWN_OFF "gun_sawn_off" + +///called in /obj/item/firing_pin/proc/gun_insert(mob/living/user, obj/item/gun/new_gun): (obj/item/firing_pin/pin, mob/living/user) +#define COMSIG_GUN_PIN_INSERTED "gun_pin_inserted" + +///called in /obj/item/firing_pin/proc/gun_remove(mob/living/user): (obj/item/firing_pin/pin, mob/living/user) +#define COMSIG_GUN_PIN_REMOVED "gun_pin_removed" + +// Jetpack things +// Please kill me + +//called in /obj/item/tank/jetpack/proc/turn_on() : () +#define COMSIG_JETPACK_ACTIVATED "jetpack_activated" + #define JETPACK_ACTIVATION_FAILED (1<<0) +//called in /obj/item/tank/jetpack/proc/turn_off() : () +#define COMSIG_JETPACK_DEACTIVATED "jetpack_deactivated" + +//called in /obj/item/organ/cyberimp/chest/thrusters/proc/toggle() : () +#define COMSIG_THRUSTER_ACTIVATED "jetmodule_activated" + #define THRUSTER_ACTIVATION_FAILED (1<<0) +//called in /obj/item/organ/cyberimp/chest/thrusters/proc/toggle() : () +#define COMSIG_THRUSTER_DEACTIVATED "jetmodule_deactivated" + +// /obj/item/camera signals + +///from /obj/item/camera/captureimage(): (atom/target, mob/user) +#define COMSIG_CAMERA_IMAGE_CAPTURED "camera_image_captured" + +// /obj/item/grenade signals + +///called in /obj/item/grenade/proc/detonate(): (lanced_by) +#define COMSIG_GRENADE_DETONATE "grenade_prime" +///called in /obj/item/grenade/gas_crystal/arm_grenade(): (armed_by, nade, det_time, delayoverride) +#define COMSIG_MOB_GRENADE_ARMED "grenade_mob_armed" +///called in /obj/item/grenade/proc/arm_grenade() and /obj/item/grenade/gas_crystal/arm_grenade(): (det_time, delayoverride) +#define COMSIG_GRENADE_ARMED "grenade_armed" + +// /obj/projectile signals (sent to the firer) + +///from base of /obj/projectile/proc/on_hit(), like COMSIG_PROJECTILE_ON_HIT but on the projectile itself and with the hit limb (if any): (atom/movable/firer, atom/target, angle, hit_limb, blocked, pierce_hit) +#define COMSIG_PROJECTILE_SELF_ON_HIT "projectile_self_on_hit" +///from base of /obj/projectile/proc/on_hit(): (atom/movable/firer, atom/target, angle, hit_limb, blocked, pierce_hit) +#define COMSIG_PROJECTILE_ON_HIT "projectile_on_hit" +///from base of /obj/projectile/proc/fire(): (obj/projectile, atom/original_target) +#define COMSIG_PROJECTILE_BEFORE_FIRE "projectile_before_fire" +///from base of /obj/projectile/proc/fire(): (obj/projectile, atom/firer, atom/original_target) +#define COMSIG_PROJECTILE_FIRER_BEFORE_FIRE "projectile_firer_before_fire" +///from the base of /obj/projectile/proc/fire(): () +#define COMSIG_PROJECTILE_FIRE "projectile_fire" +///sent to targets during the process_hit proc of projectiles +#define COMSIG_PROJECTILE_PREHIT "com_proj_prehit" + #define PROJECTILE_INTERRUPT_HIT (1<<0) + #define PROJECTILE_INTERRUPT_HIT_PHASE (1<<1) +///from /obj/projectile/process_movement(): () +#define COMSIG_PROJECTILE_MOVE_PROCESS_STEP "projectile_move_process_step" +///sent to self during the process_hit proc of projectiles +#define COMSIG_PROJECTILE_SELF_PREHIT "com_proj_prehit" +///from the base of /obj/projectile/reduce_range(): () +#define COMSIG_PROJECTILE_RANGE "projectile_range" +///from the base of /obj/projectile/on_range(): () +#define COMSIG_PROJECTILE_RANGE_OUT "projectile_range_out" +///from the base of /obj/projectile/process(): () +#define COMSIG_PROJECTILE_BEFORE_MOVE "projectile_before_move" +// FROM [/obj/item/proc/set_embed] sent when an item's embedding properties are changed : () +#define COMSIG_ITEM_EMBEDDING_UPDATE "item_embedding_update" + +///sent to targets during the process_hit proc of projectiles +#define COMSIG_FIRE_CASING "fire_casing" + +///from the base of /obj/item/ammo_casing/ready_proj() : (atom/target, mob/living/user, quiet, zone_override, atom/fired_from) +#define COMSIG_CASING_READY_PROJECTILE "casing_ready_projectile" + +///sent to the projectile after an item is spawned by the projectile_drop element: (new_item) +#define COMSIG_PROJECTILE_ON_SPAWN_DROP "projectile_on_spawn_drop" +///sent to the projectile when spawning the item (shrapnel) that may be embedded: (new_item, victim) +#define COMSIG_PROJECTILE_ON_SPAWN_EMBEDDED "projectile_on_spawn_embedded" +///sent to the projectile when successfully embedding into something: (new_item, victim) +#define COMSIG_PROJECTILE_ON_EMBEDDED "projectile_on_embedded" + +// /obj/vehicle/sealed/car/vim signals + +///from /datum/action/vehicle/sealed/noise/chime/Trigger(): () +#define COMSIG_VIM_CHIME_USED "vim_chime_used" +///from /datum/action/vehicle/sealed/noise/buzz/Trigger(): () +#define COMSIG_VIM_BUZZ_USED "vim_buzz_used" +///from /datum/action/vehicle/sealed/headlights/vim/Trigger(): (headlights_on) +#define COMSIG_VIM_HEADLIGHTS_TOGGLED "vim_headlights_toggled" + +///from /datum/computer_file/program/messenger/proc/receive_message +#define COMSIG_COMPUTER_RECEIVED_MESSAGE "computer_received_message" +///from /datum/computer_file/program/virtual_pet/proc/handle_level_up +#define COMSIG_VIRTUAL_PET_LEVEL_UP "virtual_pet_level_up" +///from /datum/computer_file/program/virtual_pet/proc/release_pet +#define COMSIG_VIRTUAL_PET_SUMMONED "virtual_pet_summoned" +///from /datum/computer_file/program/virtual_pet/proc/recall_pet +#define COMSIG_VIRTUAL_PET_RECALLED "virtual_pet_recalled" + +// /obj/vehicle/sealed/mecha signals + +/// sent if you attach equipment to mecha +#define COMSIG_MECHA_EQUIPMENT_ATTACHED "mecha_equipment_attached" +/// sent if you detach equipment to mecha +#define COMSIG_MECHA_EQUIPMENT_DETACHED "mecha_equipment_detached" +/// sent when you are able to drill through a mob +#define COMSIG_MECHA_DRILL_MOB "mecha_drill_mob" + +///sent from mecha action buttons to the mecha they're linked to +#define COMSIG_MECHA_ACTION_TRIGGER "mecha_action_activate" + +///sent from clicking while you have no equipment selected. Sent before cooldown and adjacency checks, so you can use this for infinite range things if you want. +#define COMSIG_MECHA_MELEE_CLICK "mecha_action_melee_click" + /// Prevents click from happening. + #define COMPONENT_CANCEL_MELEE_CLICK (1<<0) +///sent from clicking while you have equipment selected. +#define COMSIG_MECHA_EQUIPMENT_CLICK "mecha_action_equipment_click" + /// Prevents click from happening. + #define COMPONENT_CANCEL_EQUIPMENT_CLICK (1<<0) + +///from base of /obj/item/attack(): (mob/living, mob/living, list/modifiers, list/attack_modifiers) +#define COMSIG_ITEM_ATTACK "item_attack" +///from base of obj/item/attack_self(): (/mob) +#define COMSIG_ITEM_ATTACK_SELF "item_attack_self" +//from base of obj/item/attack_self_secondary(): (/mob) +#define COMSIG_ITEM_ATTACK_SELF_SECONDARY "item_attack_self_secondary" +///from base of obj/item/attack_atom(): (/atom, /mob, list/modifiers) +#define COMSIG_ITEM_ATTACK_ATOM "item_attack_atom" +///from base of obj/item/pre_attack(): (atom/target, mob/user, list/modifiers, list/attack_modifiers) +#define COMSIG_ITEM_PRE_ATTACK "item_pre_attack" +///from base of obj/item/pre_attack(): (obj/item/weapon, atom/target, list/modifiers, list/attack_modifiers) +#define COMSIG_USER_PRE_ITEM_ATTACK "user_pre_item_attack" +/// From base of [/obj/item/proc/pre_attack_secondary()]: (atom/target, mob/user, list/modifiers, list/attack_modifiers) +#define COMSIG_ITEM_PRE_ATTACK_SECONDARY "item_pre_attack_secondary" + #define COMPONENT_SECONDARY_CANCEL_ATTACK_CHAIN (1<<0) + #define COMPONENT_SECONDARY_CONTINUE_ATTACK_CHAIN (1<<1) + #define COMPONENT_SECONDARY_CALL_NORMAL_ATTACK_CHAIN (1<<2) +///from base of obj/item/pre_attack_secondary(): (obj/item/weapon, atom/target, list/modifiers, list/attack_modifiers) +#define COMSIG_USER_PRE_ITEM_ATTACK_SECONDARY "user_pre_item_attack_secondary" +/// From base of [/obj/item/proc/attack_secondary()]: (atom/target, mob/user, list/modifiers, list/attack_modifiers) +#define COMSIG_ITEM_ATTACK_SECONDARY "item_attack_secondary" +///from base of [obj/item/attack()]: (atom/target, mob/user, proximity_flag, list/modifiers) +#define COMSIG_ITEM_AFTERATTACK "item_afterattack" +///from base of datum/embedding/proc/embed_into(): (mob/living/carbon/victim, obj/item/bodypart/limb) +#define COMSIG_ITEM_EMBEDDED "item_embedded" +///from base of datum/embedding/proc/remove_embedding(): (mob/living/carbon/victim, obj/item/bodypart/limb) +#define COMSIG_ITEM_UNEMBEDDED "item_unembedded" +///from base of datum/embedding/proc/failed_embed(): (mob/living/carbon/victim, hit_zone) +#define COMSIG_ITEM_FAILED_EMBED "item_unembedded" + +/// from base of datum/element/disarm_attack/secondary_attack(), used to prevent shoving: (victim, user, send_message) +#define COMSIG_ITEM_CAN_DISARM_ATTACK "item_pre_disarm_attack" + #define COMPONENT_BLOCK_ITEM_DISARM_ATTACK (1<<0) + +///from /obj/item/assembly/proc/pulsed(mob/pulser) +#define COMSIG_ASSEMBLY_PULSED "assembly_pulsed" + +///from /datum/computer_file/program/nt_pay/_pay(), sent to every physical card of a bank account: (computer, money_received) +#define COMSIG_ID_CARD_NTPAY_MONEY_RECEIVED "id_card_ntpay_money_received" + +///from base of /obj/item/mmi/set_brainmob(): (mob/living/brain/new_brainmob) +#define COMSIG_MMI_SET_BRAINMOB "mmi_set_brainmob" + +/// from base of /obj/item/slimepotion/speed/interact_with_atom(): (obj/target, /obj/src, mob/user) +#define COMSIG_SPEED_POTION_APPLIED "speed_potion" + #define SPEED_POTION_STOP (1<<0) + +/// from /obj/item/detective_scanner/scan(): (mob/user, datum/detective_scanner_log/entry) +#define COMSIG_DETECTIVE_SCANNED "det_scanned" + +/// from /obj/plunger_act when an object is being plungered +#define COMSIG_PLUNGER_ACT "plunger_act" + +/// from /obj/structure/cursed_slot_machine/handle_status_effect() when someone pulls the handle on the slot machine +#define COMSIG_CURSED_SLOT_MACHINE_USE "cursed_slot_machine_use" + #define SLOT_MACHINE_USE_CANCEL (1<<0) //! we've used up the number of times we may use this slot machine. womp womp. + #define SLOT_MACHINE_USE_POSTPONE (1<<1) //! we haven't used up all our attempts to gamble away our life but we should chill for a few seconds + +/// from /obj/structure/cursed_slot_machine/determine_victor() when someone loses. +#define COMSIG_CURSED_SLOT_MACHINE_LOST "cursed_slot_machine_lost" + +/// from /obj/structure/cursed_slot_machine/determine_victor() when someone finally wins. +#define COMSIG_GLOB_CURSED_SLOT_MACHINE_WON "cursed_slot_machine_won" + +/// from /datum/component/dart_insert/add_to_dart() : (obj/item/ammo_casing, mob/user) +#define COMSIG_DART_INSERT_ADDED "dart_insert_added" + +/// from /datum/component/dart_insert/remove_from_dart() : (obj/ammo_casing/dart, mob/user) +#define COMSIG_DART_INSERT_REMOVED "dart_insert_removed" + +/// from /datum/component/dart_insert/on_reskin() +#define COMSIG_DART_INSERT_PARENT_RESKINNED "dart_insert_parent_reskinned" + +/// from /datum/element/undertile/hide() +#define COMSIG_UNDERTILE_UPDATED "undertile_updated" + +/// Sent from /obj/item/update_weight_class(). (old_w_class, new_w_class) +#define COMSIG_ITEM_WEIGHT_CLASS_CHANGED "item_weight_class_changed" +/// Sent from /obj/item/update_weight_class(), to its loc. (obj/item/changed_item, old_w_class, new_w_class) +#define COMSIG_ATOM_CONTENTS_WEIGHT_CLASS_CHANGED "atom_contents_weight_class_changed" + +/// Sent from /obj/item/proc/animate_attack() : (atom/movable/attacker, atom/attacked_atom, animation_type, list/image_override, list/animation_override, list/angle_override) +#define COMSIG_ITEM_ATTACK_ANIMATION "item_attack_animation" + +///Sent from /obj/item/skillchip/on_implant() +#define COMSIG_SKILLCHIP_IMPLANTED "skillchip_implanted" + +///Sent from /obj/item/skillchip/on_remove() +#define COMSIG_SKILLCHIP_REMOVED "skillchip_removed" + +/// from /obj/machinery/computer/camera_advanced/shuttle_docker/gatherNavComputerOverlays() : (list/images_out) +#define COMSIG_SHUTTLE_NAV_COMPUTER_IMAGE_REQUESTED "shuttle_nav_computer_image_requested" + +/// Sent from /obj/item/organ/wings/functional/proc/open_wings(): (mob/living/carbon/owner) +#define COMSIG_WINGS_OPENED "wings_opened" +/// Sent from /obj/item/organ/wings/functional/proc/close_wings(): (mob/living/carbon/owner) +#define COMSIG_WINGS_CLOSED "wings_closed" + +/// Sent from /obj/item/assembly/on_attach(): (atom/holder) +#define COMSIG_ASSEMBLY_ATTACHED "assembly_attached" + +/// Sent from /obj/item/assembly/on_detach(): (atom/holder) +#define COMSIG_ASSEMBLY_DETACHED "assembly_detached" + +/* + * The following four signals are separate from the above two because buttons and pressure plates don't set the holder of the inserted assembly. + * This causes subtle behavioral differences that future handlers for these signals may need to account for, + * even if none of the currently implemented handlers do. + */ + +/// Sent when an assembly is added to a button : (obj/machinery/button/button, mob/user) +#define COMSIG_ASSEMBLY_ADDED_TO_BUTTON "assembly_added_to_button" + +/// Sent when an assembly is removed from a button : (obj/machinery/button/button, mob/user) +#define COMSIG_ASSEMBLY_REMOVED_FROM_BUTTON "assembly_removed_from_button" + +/// Sent when an assembly is added to a pressure plate : (obj/item/pressureplate/pressure_plate, mob/user) +#define COMSIG_ASSEMBLY_ADDED_TO_PRESSURE_PLATE "assembly_added_to_pressure_plate" + +/// Sent when an assembly is removed from a pressure plate : (obj/item/pressureplate/pressure_plate, mob/user) +#define COMSIG_ASSEMBLY_REMOVED_FROM_PRESSURE_PLATE "assembly_removed_from_pressure_playe" + +/// Sent from /datum/powernet/add_cable() +#define COMSIG_CABLE_ADDED_TO_POWERNET "cable_added_to_powernet" + +/// Sent from /datum/powernet/remove_cable() +#define COMSIG_CABLE_REMOVED_FROM_POWERNET "cable_removed_from_powernet" + +/// Sent from /datum/wires/attach_assembly() : (atom/holder) +#define COMSIG_ASSEMBLY_PRE_ATTACH "assembly_pre_attach" + #define COMPONENT_CANCEL_ATTACH (1<<0) + +/// Before an item has been equipped as a prosthetic limb +#define COMSIG_ITEM_PRE_USED_AS_PROSTHETIC "item_used_as_prosthetic" +/// After an item has been equipped as a prosthetic limb +#define COMSIG_ITEM_POST_USED_AS_PROSTHETIC "item_post_used_as_prosthetic" +/// Item has been unequipped from a mob as a prosthetic limb +#define COMSIG_ITEM_DROPPED_FROM_PROSTHETIC "item_dropped_from_prosthetic" + +/// Sent from /obj/item/kinetic_crusher/proc/fire_kinetic_blast() : (atom/target, mob/living/user, obj/projectile/destabilizer/destabilizer) +#define COMSIG_CRUSHER_FIRED_BLAST "crusher_fired_blast" + +/// Sent from /obj/machinert/console/camera_advanced/attack_hand() : (mob/eye/camera/remote/new_camera) +#define COMSIG_ADVANCED_CAMERA_EYE_CREATED "advanced_camera_eye_created" diff --git a/code/__defines/dcs/signals/signals_operating_computer.dm b/code/__defines/dcs/signals/signals_operating_computer.dm new file mode 100644 index 0000000000..8974bb99db --- /dev/null +++ b/code/__defines/dcs/signals/signals_operating_computer.dm @@ -0,0 +1,5 @@ +// /obj/machinery/computer/operating signals + +/// Fired when a autopsy surgery completes. +/// (mob/living/target) +#define COMSIG_OPERATING_COMPUTER_AUTOPSY_COMPLETE "operating_computer_autopsy_complete" diff --git a/code/__defines/dcs/signals/signals_operatives.dm b/code/__defines/dcs/signals/signals_operatives.dm new file mode 100644 index 0000000000..12a3bed466 --- /dev/null +++ b/code/__defines/dcs/signals/signals_operatives.dm @@ -0,0 +1,2 @@ +/// For when a new teammate is added to a nukie team +#define COMSIG_NUKE_TEAM_ADDITION "nuke_team_addition" diff --git a/code/__defines/dcs/signals/signals_painting.dm b/code/__defines/dcs/signals/signals_painting.dm new file mode 100644 index 0000000000..73f9eb4719 --- /dev/null +++ b/code/__defines/dcs/signals/signals_painting.dm @@ -0,0 +1,10 @@ +// signals for painting canvases, tools and the /datum/component/palette component + +///from base of /item/proc/set_painting_tool_color(): (chosen_color) +#define COMSIG_PAINTING_TOOL_SET_COLOR "painting_tool_set_color" + +/// from base of /item/canvas/ui_data(): (data) +#define COMSIG_PAINTING_TOOL_GET_ADDITIONAL_DATA "painting_tool_get_data" + +///from base of /item/canvas/ui_act(), "change_color" action: (chosen_color, color_index) +#define COMSIG_PAINTING_TOOL_PALETTE_COLOR_CHANGED "painting_tool_palette_color_changed" diff --git a/code/__defines/dcs/signals/signals_plane_master_group.dm b/code/__defines/dcs/signals/signals_plane_master_group.dm new file mode 100644 index 0000000000..d27adb5f8c --- /dev/null +++ b/code/__defines/dcs/signals/signals_plane_master_group.dm @@ -0,0 +1,2 @@ +/// from /datum/plane_master_group/proc/set_hud(): (datum/hud/new_hud) +#define COMSIG_GROUP_HUD_CHANGED "group_hud_changed" diff --git a/code/__defines/dcs/signals/signals_powernet.dm b/code/__defines/dcs/signals/signals_powernet.dm new file mode 100644 index 0000000000..1343e9e1d6 --- /dev/null +++ b/code/__defines/dcs/signals/signals_powernet.dm @@ -0,0 +1,4 @@ +// Powernet signals + +/// Sent when a wirenet circuit component sends a signal (list/data) +#define COMSIG_POWERNET_CIRCUIT_TRANSMISSION "powernet_circuit_transmision" diff --git a/code/__defines/dcs/signals/signals_proxmonitor.dm b/code/__defines/dcs/signals/signals_proxmonitor.dm new file mode 100644 index 0000000000..2124c80ec5 --- /dev/null +++ b/code/__defines/dcs/signals/signals_proxmonitor.dm @@ -0,0 +1,4 @@ +/// Called when a projectile dampener captures an object. +#define COMSIG_DAMPENER_CAPTURE "dampener_capture" +/// Called when a projectile dampener releases an object. +#define COMSIG_DAMPENER_RELEASE "dampener_release" diff --git a/code/__defines/dcs/signals/signals_radiation.dm b/code/__defines/dcs/signals/signals_radiation.dm new file mode 100644 index 0000000000..24aa75a9a4 --- /dev/null +++ b/code/__defines/dcs/signals/signals_radiation.dm @@ -0,0 +1,22 @@ +// Radiation signals + +/// From the radiation subsystem, called before a potential irradiation. +/// This does not guarantee radiation can reach or will succeed, but merely that there's a radiation source within range. +/// (datum/radiation_pulse_information/pulse_information, insulation_to_target) +#define COMSIG_IN_RANGE_OF_IRRADIATION "in_range_of_irradiation" + +/// Fired when the target could be irradiated, right before the chance check is rolled. +/// (datum/radiation_pulse_information/pulse_information) +#define COMSIG_IN_THRESHOLD_OF_IRRADIATION "pre_potential_irradiation_within_range" + #define CANCEL_IRRADIATION (1 << 0) + + /// If this is flipped, then minimum exposure time will not be checked. + /// If it is not flipped, and the pulse information has a minimum exposure time, then + /// the countdown will begin. + #define SKIP_MINIMUM_EXPOSURE_TIME_CHECK (1 << 1) + +/// Fired when scanning something with a geiger counter. +/// (mob/user, obj/item/geiger_counter/geiger_counter) +#define COMSIG_GEIGER_COUNTER_SCAN "geiger_counter_scan" + /// If not flagged by any handler, will report the subject as being free of irradiation + #define COMSIG_GEIGER_COUNTER_SCAN_SUCCESSFUL (1 << 0) diff --git a/code/__defines/dcs/signals/signals_reagent.dm b/code/__defines/dcs/signals/signals_reagent.dm new file mode 100644 index 0000000000..65dba024e6 --- /dev/null +++ b/code/__defines/dcs/signals/signals_reagent.dm @@ -0,0 +1,51 @@ +// Atom reagent signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +///from base of atom/expose_reagents(): (/list, /datum/reagents, methods, volume_modifier, show_message) +#define COMSIG_ATOM_EXPOSE_REAGENTS "atom_expose_reagents" + /// Prevents the atom from being exposed to reagents if returned on [COMSIG_ATOM_EXPOSE_REAGENTS] + #define COMPONENT_NO_EXPOSE_REAGENTS (1<<0) +///from base of [/datum/reagent/proc/expose_atom]: (/datum/reagent, reac_volume) +#define COMSIG_ATOM_EXPOSE_REAGENT "atom_expose_reagent" +///from base of [/datum/reagent/proc/expose_atom]: (/atom, reac_volume) +#define COMSIG_REAGENT_EXPOSE_ATOM "reagent_expose_atom" +///from base of [/datum/reagent/proc/touch_obj]: (var/obj/O, var/amount) +#define COMSIG_REAGENT_EXPOSE_OBJ "reagent_expose_obj" +///from base of [/datum/reagent/proc/touch_mob]: (var/mob/M, var/amount) // ovemind arg is only used by blob reagents. +#define COMSIG_REAGENT_EXPOSE_MOB "reagent_expose_mob" +///from base of [/datum/reagent/proc/touch_turf]: (var/turf/T, var/amount) +#define COMSIG_REAGENT_EXPOSE_TURF "reagent_expose_turf" +///from base of [/datum/reagent/proc/on_merge(data, amount)]: (list/data, amount) +#define COMSIG_REAGENT_ON_MERGE "reagent_on_merge" +///from base of [/datum/reagent/proc/on_transfer_creation(reagent, target_holder, new_reagent)]: (datum/reagents/target_holder, datum/reagent/new_reagent) +#define COMSIG_REAGENT_ON_TRANSFER "reagent_on_transfer" + +///from base of [/datum/materials_controller/proc/InitializeMaterial]: (/datum/material) +#define COMSIG_MATERIALS_INIT_MAT "SSmaterials_init_mat" + +///from base of [/datum/component/multiple_lives/proc/respawn]: (mob/respawned_mob, gibbed, lives_left) +#define COMSIG_ON_MULTIPLE_LIVES_RESPAWN "on_multiple_lives_respawn" + +///from base of [/datum/reagents/proc/update_total()] +#define COMSIG_REAGENTS_HOLDER_UPDATED "reagents_update_total" +///from base of [/datum/reagents/proc/set_temperature]: (new_temp, old_temp) +#define COMSIG_REAGENTS_TEMP_CHANGE "reagents_temp_change" +///from base of [/datum/reagents/proc/process]: (num_reactions) +#define COMSIG_REAGENTS_REACTION_STEP "reagents_time_step" + +///from base of [/obj/proc/expose_reagents]: (/obj, /list, methods, volume_modifier, show_message) +#define COMSIG_REAGENTS_EXPOSE_OBJ "reagents_expose_obj" +///from base of [/mob/living/proc/expose_reagents]: (/mob/living, /list, methods, volume_modifier, show_message, touch_protection) +#define COMSIG_REAGENTS_EXPOSE_MOB "reagents_expose_mob" +///from base of [/turf/proc/expose_reagents]: (/turf, /list, methods, volume_modifier, show_message) +#define COMSIG_REAGENTS_EXPOSE_TURF "reagents_expose_turf" +/// sent when reagents are transfered from a cup, to something refillable (atom/transfer_to) +#define COMSIG_REAGENTS_CUP_TRANSFER_TO "reagents_cup_transfer_to" +/// sent when reagents are transfered from some reagent container, to a cup (atom/transfer_from) +#define COMSIG_REAGENTS_CUP_TRANSFER_FROM "reagents_cup_transfer_from" + +//Non TG signals: +#define COMSIG_REAGENTS_CRAFTING_PING "reagents_crafting_ping" +///from base of /datum/reagents/proc/handle_reactions(): (list/decl/chemical_reaction) +#define COMSIG_REAGENTS_HOLDER_REACTED "reagents_holder_reacted" diff --git a/code/__defines/dcs/signals/signals_remote_view.dm b/code/__defines/dcs/signals/signals_remote_view.dm new file mode 100644 index 0000000000..4636a2a265 --- /dev/null +++ b/code/__defines/dcs/signals/signals_remote_view.dm @@ -0,0 +1,3 @@ +// /datum/component/remote_view signals +/// Signal that can be sent from the mob remote viewing, the viewed mob, or object being used to view to forcibly end all related remote viewing components +#define COMSIG_REMOTE_VIEW_CLEAR "remote_view_clear_viewers" diff --git a/code/__defines/dcs/signals/signals_restaurant.dm b/code/__defines/dcs/signals/signals_restaurant.dm new file mode 100644 index 0000000000..12a8aee769 --- /dev/null +++ b/code/__defines/dcs/signals/signals_restaurant.dm @@ -0,0 +1,14 @@ +///Restaurant + +///(wanted_item) custom order signal sent when checking if the order is correct. +#define COMSIG_ITEM_IS_CORRECT_CUSTOM_ORDER "item_is_correct_order" + #define COMPONENT_CORRECT_ORDER (1<<0) + +///(customer, container) venue signal sent when a venue sells an item. source is the thing sold, which can be a datum, so we send container for location checks +#define COMSIG_ITEM_EXPORTED_TO_CUSTOMER "item_sold_to_customer" +///(customer, container) venue signal sent when a venue sells an reagent. source is the thing sold, which can be a datum, so we send container for location checks +#define COMSIG_REAGENT_SOLD_TO_CUSTOMER "reagent_sold_to_customer" + /// Return from either above signal to denote the transaction completed successfully, so the venue can finish processing it + #define TRANSACTION_SUCCESS (1<<0) + /// Return from either above to stop the venue default processing, allowing you to handle cleanup / aftermath yourself + #define TRANSACTION_HANDLED (1<<1) diff --git a/code/__defines/dcs/signals/signals_scangate.dm b/code/__defines/dcs/signals/signals_scangate.dm new file mode 100644 index 0000000000..bb11beb046 --- /dev/null +++ b/code/__defines/dcs/signals/signals_scangate.dm @@ -0,0 +1,8 @@ +/// Called when somebody passes through a scanner gate and it triggers +#define COMSIG_SCANGATE_PASS_TRIGGER "scangate_pass_trigger" + +/// Called when somebody passes through a scanner gate and it does not trigger +#define COMSIG_SCANGATE_PASS_NO_TRIGGER "scangate_pass_no_trigger" + +/// Called when something passes through a scanner gate shell +#define COMSIG_SCANGATE_SHELL_PASS "scangate_shell_pass" diff --git a/code/__defines/dcs/signals/signals_screentips.dm b/code/__defines/dcs/signals/signals_screentips.dm new file mode 100644 index 0000000000..31a851c048 --- /dev/null +++ b/code/__defines/dcs/signals/signals_screentips.dm @@ -0,0 +1,35 @@ +/// A "Type-A" contextual screentip interaction. +/// These are used for items that are defined by their behavior. They define their contextual text within *themselves*, +/// not in their targets. +/// Examples include syringes (LMB to inject, RMB to draw) and health analyzers (LMB to scan health/wounds, RMB for chems) +/// Items can override `add_item_context()`, and call `register_item_context()` in order to easily connect to this. +/// Called on /obj/item with a mutable screentip context list, the hovered target, and the mob hovering. +/// A screentip context list is a list that has context keys (SCREENTIP_CONTEXT_*, from __DEFINES/screentips.dm) +/// that map to the action as text. +/// If you mutate the list in this signal, you must return CONTEXTUAL_SCREENTIP_SET. +#define COMSIG_ITEM_REQUESTING_CONTEXT_FOR_TARGET "item_requesting_context_for_target" + +/// A "Type-B" contextual screentip interaction. +/// These are atoms that are defined by what happens *to* them. These should define contextual text within themselves, and +/// not in their operating tools. +/// Examples include construction objects (LMB with glass to put in screen for computers). +/// Called on /atom with a mutable screentip context list, the item being used, and the mob hovering. +/// A screentip context list is a list that has context keys (SCREENTIP_CONTEXT_*, from __DEFINES/screentips.dm) +/// that map to the action as text. +/// If you mutate the list in this signal, you must return CONTEXTUAL_SCREENTIP_SET. +#define COMSIG_ATOM_REQUESTING_CONTEXT_FROM_ITEM "atom_requesting_context_from_item" + +/// Tells the contextual screentips system that the list context was mutated. +#define CONTEXTUAL_SCREENTIP_SET (1 << 0) + + +/// A user screentip name override. +/// These are used for mobs that may override the names of atoms they hover over. +/// Examples include prosopagnosia (sees human names as Unknown regardless of what they are). +/// Called on /mob with a mutable screentip name list, the item being used, and the atom hovered over. +/// A screentip name override list is a list used for returning a string value from the signal. Only the first value matters. +/// If you mutate the list in this signal, you must return SCREENTIP_NAME_SET. +#define COMSIG_MOB_REQUESTING_SCREENTIP_NAME_FROM_USER "mob_requesting_screentip_name_from_user" + +/// Tells the screentips system that the list names was mutated. +#define SCREENTIP_NAME_SET (1 << 0) diff --git a/code/__defines/dcs/signals/signals_shuttle.dm b/code/__defines/dcs/signals/signals_shuttle.dm new file mode 100644 index 0000000000..69aa13c390 --- /dev/null +++ b/code/__defines/dcs/signals/signals_shuttle.dm @@ -0,0 +1,11 @@ + +// Shuttle signals. this file is empty because shuttle code is ancient, feel free to +// add more signals where its appropriate to have them + +/// Called when the shuttle tries to move. Do not return anything to continue with default behaviour (always allow) : () +#define COMSIG_SHUTTLE_SHOULD_MOVE "shuttle_should_move" + /// Return this when the shuttle move should be blocked. + #define BLOCK_SHUTTLE_MOVE (1<<0) + +//from base of /proc/expand_shuttle() : (list/turfs) +#define COMSIG_SHUTTLE_EXPANDED "shuttle_expanded" diff --git a/code/__defines/dcs/signals/signals_spatial_grid.dm b/code/__defines/dcs/signals/signals_spatial_grid.dm new file mode 100644 index 0000000000..82e69dfcdf --- /dev/null +++ b/code/__defines/dcs/signals/signals_spatial_grid.dm @@ -0,0 +1,6 @@ +//spatial grid signals + +///Called from base of /datum/controller/subsystem/spatial_grid/proc/enter_cell: (/atom/movable) +#define SPATIAL_GRID_CELL_ENTERED(contents_type) "spatial_grid_cell_entered_[contents_type]" +///Called from base of /datum/controller/subsystem/spatial_grid/proc/exit_cell: (/atom/movable) +#define SPATIAL_GRID_CELL_EXITED(contents_type) "spatial_grid_cell_exited_[contents_type]" diff --git a/code/__defines/dcs/signals/signals_species.dm b/code/__defines/dcs/signals/signals_species.dm new file mode 100644 index 0000000000..ba5cde804f --- /dev/null +++ b/code/__defines/dcs/signals/signals_species.dm @@ -0,0 +1,5 @@ +// /datum/species signals +///from datum/species/on_species_gain(): (datum/species/new_species, datum/species/old_species, pref_load, regenerate_icons) +#define COMSIG_SPECIES_GAIN "species_gain" +///from datum/species/on_species_loss(): (datum/species/lost_species) +#define COMSIG_SPECIES_LOSS "species_loss" diff --git a/code/__defines/dcs/signals/signals_spell.dm b/code/__defines/dcs/signals/signals_spell.dm new file mode 100644 index 0000000000..ebbdcc4e2b --- /dev/null +++ b/code/__defines/dcs/signals/signals_spell.dm @@ -0,0 +1,126 @@ +// Signals sent to or by spells + +// Generic spell signals + + +/// Sent from /datum/action/cooldown/spell/before_cast() to the caster: (datum/action/cooldown/spell/spell, atom/cast_on) +#define COMSIG_MOB_BEFORE_SPELL_CAST "mob_spell_pre_cast" +/// Sent from /datum/action/cooldown/spell/before_cast() to the spell: (atom/cast_on) +#define COMSIG_SPELL_BEFORE_CAST "spell_pre_cast" + /// Return to prevent the spell cast from continuing. + #define SPELL_CANCEL_CAST (1 << 0) + /// Return from before cast signals to prevent the spell from giving off sound or invocation. + #define SPELL_NO_FEEDBACK (1 << 1) + /// Return from before cast signals to prevent the spell from going on cooldown before aftercast. + #define SPELL_NO_IMMEDIATE_COOLDOWN (1 << 2) + +/// Sent to an mob when a [/datum/action/cooldown/spell] calls try_invoke() to the caster: (datum/action/cooldown/spell/spell, feedback) +#define COMSIG_MOB_TRY_INVOKE_SPELL "try_invoke_spell" + /// The spell gets canceled + #define SPELL_INVOCATION_FAIL SPELL_CANCEL_CAST + /// The spell always succeeds to invoke regardless of following checks + #define SPELL_INVOCATION_ALWAYS_SUCCEED (1 << 1) + +/// Sent from /datum/action/cooldown/spell/set_click_ability() to the caster: (datum/action/cooldown/spell/spell) +#define COMSIG_MOB_SPELL_ACTIVATED "mob_spell_active" + /// Same as spell_cancel_cast, as they're able to be used interchangeably + #define SPELL_CANCEL_ACTIVATION SPELL_CANCEL_CAST + +/// Sent from /datum/action/cooldown/spell/cast() to the caster: (datum/action/cooldown/spell/spell, atom/cast_on) +#define COMSIG_MOB_CAST_SPELL "mob_cast_spell" +/// Sent from /datum/action/cooldown/spell/cast() to the spell: (atom/cast_on) +#define COMSIG_SPELL_CAST "spell_cast" +// Sent from /datum/action/cooldown/spell/after_cast() to the caster: (datum/action/cooldown/spell/spell, atom/cast_on) +#define COMSIG_MOB_AFTER_SPELL_CAST "mob_after_spell_cast" +/// Sent from /datum/action/cooldown/spell/after_cast() to the spell: (atom/cast_on) +#define COMSIG_SPELL_AFTER_CAST "spell_after_cast" +/// Sent from /datum/action/cooldown/spell/reset_spell_cooldown() to the spell: () +#define COMSIG_SPELL_CAST_RESET "spell_cast_reset" +/// Sent from /datum/action/cooldown/spell/proc/invocation() to the mob: (datum/source, /datum/action/cooldown/spell/spell, list/invocation) +#define COMSIG_MOB_PRE_INVOCATION "spell_pre_invocation" + ///index for the invocation message string + #define INVOCATION_MESSAGE 1 + ///index for the invocation type string + #define INVOCATION_TYPE 2 + ///index for the invocation garble probability number + #define INVOCATION_GARBLE_PROB 3 + +// Spell type signals + +// Pointed projectiles +// Sent from /datum/action/cooldown/spell/pointed/projectile/fire_projectile() to the caster: (datum/action/cooldown/spell/spell, atom/cast_on, obj/projectile/to_fire) +#define COMSIG_MOB_SPELL_PROJECTILE "mob_spell_projectile" +/// Sent from /datum/action/cooldown/spell/pointed/projectile/on_cast_hit: (atom/firer, atom/target, atom/hit, angle, hit_limb) +#define COMSIG_SPELL_PROJECTILE_HIT "spell_projectile_hit" + +// AOE spells +/// Sent from /datum/action/cooldown/spell/aoe/cast: (list/atoms_affected, atom/caster) +#define COMSIG_SPELL_AOE_ON_CAST "spell_aoe_cast" + +// Cone spells +/// Sent from /datum/action/cooldown/spell/cone/cast: (list/atoms_affected, atom/caster) +#define COMSIG_SPELL_CONE_ON_CAST "spell_cone_cast" +/// Sent from /datum/action/cooldown/spell/cone/do_cone_effects: (list/atoms_affected, atom/caster, level) +#define COMSIG_SPELL_CONE_ON_LAYER_EFFECT "spell_cone_cast_effect" + +// Touch spells +/// Sent from /datum/action/cooldown/spell/touch/do_hand_hit: (atom/hit, mob/living/carbon/caster, obj/item/melee/touch_attack/hand) +#define COMSIG_SPELL_TOUCH_HAND_HIT "spell_touch_hand_cast" +/// Sent from /datum/action/cooldown/spell/touch/cast: (mob/living/carbon/cast_on) +#define COMSIG_TOUCH_HANDLESS_CAST "spell_touch_handless_cast" + /// Return this to prevent the hand spawning/unspawning + #define COMPONENT_CAST_HANDLESS (1<<0) + +// Jaunt Spells +/// Sent from datum/action/cooldown/spell/jaunt/before_cast, before the mob enters jaunting as a pre-check: (datum/action/cooldown/spell/spell) +#define COMSIG_MOB_PRE_JAUNT "spell_mob_pre_jaunt" + #define COMPONENT_BLOCK_JAUNT (1<<0) +/// Sent from datum/action/cooldown/spell/jaunt/enter_jaunt, to the mob jaunting: (obj/effect/dummy/phased_mob/jaunt, datum/action/cooldown/spell/spell) +#define COMSIG_MOB_ENTER_JAUNT "spell_mob_enter_jaunt" +/// Set from /obj/effect/dummy/phased_mob after the mob is ejected from its contents: (obj/effect/dummy/phased_mob/jaunt, mob/living/unjaunter) +#define COMSIG_MOB_EJECTED_FROM_JAUNT "spell_mob_eject_jaunt" +/// Sent from datum/action/cooldown/spell/jaunt/exit_jaunt, after the mob exited jaunt: (datum/action/cooldown/spell/spell) +#define COMSIG_MOB_AFTER_EXIT_JAUNT "spell_mob_after_exit_jaunt" +/// Sent from /obj/effect/dummy/phased_mob/proc/phased_check when moving to the holder object: (/obj/effect/dummy/phased_mob, mob/living/phaser, turf/newloc) +#define COMSIG_MOB_PHASED_CHECK "mob_phased_check" + /// Return this to cancel the phased move + #define COMPONENT_BLOCK_PHASED_MOVE (1 << 0) + +/// Sent from/datum/action/cooldown/spell/jaunt/bloodcrawl/slaughter_demon/try_enter_jaunt, +/// to any unconscious / critical mobs being dragged when the jaunter enters blood: +/// (datum/action/cooldown/spell/jaunt/bloodcrawl/crawl, mob/living/jaunter, obj/effect/decal/cleanable/blood) +#define COMSIG_LIVING_BLOOD_CRAWL_PRE_CONSUMED "living_pre_consumed_by_bloodcrawl" +/// Sent from/datum/action/cooldown/spell/jaunt/bloodcrawl/slaughter_demon/consume_victim, +/// to the victim being consumed by the slaughter demon. +/// (datum/action/cooldown/spell/jaunt/bloodcrawl/crawl, mob/living/jaunter) +#define COMSIG_LIVING_BLOOD_CRAWL_CONSUMED "living_consumed_by_bloodcrawl" + /// Return at any point to stop the bloodcrawl "consume" process from continuing. + #define COMPONENT_STOP_CONSUMPTION (1 << 0) + +// Signals for specific spells + +// Lichdom +/// Sent from /datum/action/cooldown/spell/lichdom/cast(), to the item being imbued: (datum/action/cooldown/spell/spell, mob/user) +#define COMSIG_ITEM_IMBUE_SOUL "item_imbue_soul" + /// Return to stop the cast and prevent the soul imbue + #define COMPONENT_BLOCK_IMBUE (1 << 0) + +/// Sent from /datum/action/cooldown/spell/aoe/knock/cast(), to every nearby turf (for connect loc): (datum/action/cooldown/spell/aoe/knock/spell, mob/living/caster) +#define COMSIG_ATOM_MAGICALLY_UNLOCKED "atom_magic_unlock" + +// Instant Summons +/// Sent from /datum/action/cooldown/spell/summonitem/cast(), to the item being marked for recall: (datum/action/cooldown/spell/spell, mob/user) +#define COMSIG_ITEM_MARK_RETRIEVAL "item_mark_retrieval" + /// Return to stop the cast and prevent the item from being marked + #define COMPONENT_BLOCK_MARK_RETRIEVAL (1 << 0) +///When an object is retrieved by a magic recall spell. This will apply to all containers, mobs, etc. that are pulled by the spell. +#define COMSIG_MAGIC_RECALL "magic_recall" + + +// Charge +/// Sent from /datum/action/cooldown/spell/charge/cast(), to the item in hand being charged: (datum/action/cooldown/spell/spell, mob/user) +#define COMSIG_ITEM_MAGICALLY_CHARGED "item_magic_charged" + /// Return if an item was successful recharged + #define COMPONENT_ITEM_CHARGED (1 << 0) + /// Return if the item had a negative side effect occur while recharging + #define COMPONENT_ITEM_BURNT_OUT (1 << 1) diff --git a/code/__defines/dcs/signals/signals_stairs.dm b/code/__defines/dcs/signals/signals_stairs.dm new file mode 100644 index 0000000000..af1d413da3 --- /dev/null +++ b/code/__defines/dcs/signals/signals_stairs.dm @@ -0,0 +1,4 @@ +///from base of /obj/structure/stairs/top/use_stairs(var/atom/movable/AM, var/atom/oldloc) +#define COMSIG_MOVED_DOWN_STAIRS "atom_moved_down_stairs" +///from base of /obj/structure/stairs/bottom/use_stairs(var/atom/movable/AM, var/atom/oldloc) +#define COMSIG_MOVED_UP_STAIRS "atom_moved_up_stairs" diff --git a/code/__defines/dcs/signals/signals_status_effect.dm b/code/__defines/dcs/signals/signals_status_effect.dm new file mode 100644 index 0000000000..917f5dffc9 --- /dev/null +++ b/code/__defines/dcs/signals/signals_status_effect.dm @@ -0,0 +1,2 @@ +/// From /datum/status_effect/fire_handler/fire_stacks/tick() +#define COMSIG_FIRE_STACKS_UPDATED "fire_stacks_updated" diff --git a/code/__defines/dcs/signals/signals_storage.dm b/code/__defines/dcs/signals/signals_storage.dm new file mode 100644 index 0000000000..98fc780185 --- /dev/null +++ b/code/__defines/dcs/signals/signals_storage.dm @@ -0,0 +1,23 @@ +/// Sent when /datum/storage/dump_content_at(): (obj/item/storage_source, mob/user) +#define COMSIG_STORAGE_DUMP_CONTENT "storage_dump_contents" + /// Return to stop the standard dump behavior. + #define STORAGE_DUMP_HANDLED (1<<0) +/// Sent after dumping into some other storage object: (atom/dest_object, mob/user) +#define COMSIG_STORAGE_DUMP_POST_TRANSFER "storage_dump_into_storage" + +/// Sent before storing an item (obj/item/being_stored, mob/user, force, messages) +#define COMSIG_ATOM_PRE_STORED_ITEM "atom_pre_storing_item" + /// Return to block the item from being stored. + #define BLOCK_STORAGE_INSERT (1<<0) + +/// Fired off the storage's PARENT when an ITEM is STORED INSIDE. (obj/item, mob, force) +#define COMSIG_ATOM_STORED_ITEM "atom_storing_item" + +/// Fired off the storage's PARENT when an ITEM is REMOVED. (obj/item, atom, silent) +#define COMSIG_ATOM_REMOVED_ITEM "atom_removing_item" + +/// Sent to the STORAGE when an ITEM is STORED INSIDE. (obj/item, mob, force) +#define COMSIG_STORAGE_STORED_ITEM "storage_storing_item" + +/// Sent to the STORAGE when an ITEM is REMOVED. (obj/item, atom, silent) +#define COMSIG_STORAGE_REMOVED_ITEM "storage_removing_item" diff --git a/code/__defines/dcs/signals/signals_subsystem.dm b/code/__defines/dcs/signals/signals_subsystem.dm index 749ba9f638..2260a480a7 100644 --- a/code/__defines/dcs/signals/signals_subsystem.dm +++ b/code/__defines/dcs/signals/signals_subsystem.dm @@ -26,3 +26,6 @@ ///Sent after awards are saved in the database (/datum/controller/subsystem/achievements/save_achievements_to_db) #define COMSIG_ACHIEVEMENTS_SAVED_TO_DB "achievements_saved_to_db" + +/// Send after config is loaded but before picking roundstart rulesets +#define COMSIG_DYNAMIC_PRE_ROUNDSTART "dynamic_pre_roundstart" diff --git a/code/__defines/dcs/signals/signals_surgery.dm b/code/__defines/dcs/signals/signals_surgery.dm new file mode 100644 index 0000000000..2f397bd5b6 --- /dev/null +++ b/code/__defines/dcs/signals/signals_surgery.dm @@ -0,0 +1,4 @@ +//Autopsy + +//from base of /obj/item/autopsy_scanner/do_surgery() : (mob/user, mob/target) +#define COMSIG_AUTOPSY_PERFORMED "performed_autopsy" diff --git a/code/__defines/dcs/signals/signals_swab.dm b/code/__defines/dcs/signals/signals_swab.dm new file mode 100644 index 0000000000..6a6aefb66d --- /dev/null +++ b/code/__defines/dcs/signals/signals_swab.dm @@ -0,0 +1,3 @@ +// /datum/component/swabbing signals +#define COMSIG_SWAB_FOR_SAMPLES "swab_for_samples" ///Called when you try to swab something using the swabable component, includes a mutable list of what has been swabbed so far so it can be modified. + #define COMPONENT_SWAB_FOUND (1<<0) diff --git a/code/__defines/dcs/signals/signals_tools.dm b/code/__defines/dcs/signals/signals_tools.dm new file mode 100644 index 0000000000..a3cc381b97 --- /dev/null +++ b/code/__defines/dcs/signals/signals_tools.dm @@ -0,0 +1,14 @@ +// Notifies tools that something is happening. + +// Successful actions against an atom. +///Called from /atom/proc/tool_act (atom) +#define COMSIG_TOOL_ATOM_ACTED_PRIMARY(tooltype) "tool_atom_acted_[tooltype]" +///Called from /atom/proc/tool_act (atom) +#define COMSIG_TOOL_ATOM_ACTED_SECONDARY(tooltype) "tool_atom_acted_[tooltype]" + +//Called when a tool attempts to pry open an airlock. Called from /obj/machinery/door/airlock/try_to_crowbar +#define COMSIG_TOOL_FORCE_OPEN_AIRLOCK "tool_force_open_airlock" + //If this value is returned, prevents the airlock from being forced open. + #define COMPONENT_TOOL_DO_NOT_ALLOW_FORCE_OPEN (1<<0) + //If this value is returned, it means the tool successfully opened the airlock without interruption + #define COMPONENT_TOOL_ALLOW_FORCE_OPEN (1<<1) diff --git a/code/__defines/dcs/signals/signals_traitor.dm b/code/__defines/dcs/signals/signals_traitor.dm new file mode 100644 index 0000000000..0a221dbd06 --- /dev/null +++ b/code/__defines/dcs/signals/signals_traitor.dm @@ -0,0 +1,14 @@ +/// Called whenever the uplink handler receives any sort of update. Used by uplinks to update their UI. No arguments passed +#define COMSIG_UPLINK_HANDLER_ON_UPDATE "uplink_handler_on_update" + +/// Called when a device a traitor has planted effects someone's mood. Pass the mind of the viewer. +#define COMSIG_DEMORALISING_EVENT "traitor_demoralise_event" +/// Called when you finish drawing some graffiti so we can register more signals on it. Pass the graffiti effect. +#define COMSIG_TRAITOR_GRAFFITI_DRAWN "traitor_rune_drawn" +/// Called when someone slips on some seditious graffiti. Pass the mind of the viewer. +#define COMSIG_TRAITOR_GRAFFITI_SLIPPED "traitor_demoralise_event" +/// For when someone is injected with the EHMS virus from /datum/traitor_objective_category/infect +#define COMSIG_EHMS_INJECTOR_INJECTED "after_ehms_inject" + +/// Called by an battle royale implanter when successfully implanting someone. Passes the implanted mob. +#define COMSIG_ROYALE_IMPLANTED "royale_implanted" diff --git a/code/__defines/dcs/signals/signals_transform.dm b/code/__defines/dcs/signals/signals_transform.dm new file mode 100644 index 0000000000..a70e4c0b19 --- /dev/null +++ b/code/__defines/dcs/signals/signals_transform.dm @@ -0,0 +1,10 @@ +// /datum/component/transforming signals + +/// From /datum/component/transforming/proc/on_attack_self(obj/item/source, mob/user): (obj/item/source, mob/user, active) +#define COMSIG_TRANSFORMING_PRE_TRANSFORM "transforming_pre_transform" + /// Return COMPONENT_BLOCK_TRANSFORM to prevent the item from transforming. + #define COMPONENT_BLOCK_TRANSFORM (1<<0) +/// From /datum/component/transforming/proc/do_transform(obj/item/source, mob/user): (obj/item/source, mob/user, active) +#define COMSIG_TRANSFORMING_ON_TRANSFORM "transforming_on_transform" + /// Return COMPONENT_NO_DEFAULT_MESSAGE to prevent the transforming component from displaying the default transform message / sound. + #define COMPONENT_NO_DEFAULT_MESSAGE (1<<0) diff --git a/code/__defines/dcs/signals/signals_transport.dm b/code/__defines/dcs/signals/signals_transport.dm new file mode 100644 index 0000000000..baa4e2ca1f --- /dev/null +++ b/code/__defines/dcs/signals/signals_transport.dm @@ -0,0 +1,20 @@ +/// Sent from /obj/structure/transport/linear/tram when it begins to travel. (obj/effect/landmark/tram/idle_platform, obj/effect/landmark/tram/to_where) +#define COMSIG_TRAM_TRAVEL "tram_travel" + +/// Sent from /obj/structure/transport/linear/tram when it hits someone: () +#define COMSIG_TRAM_COLLISION "tram_collided" + +/// Sent from a mob that just got hit by the tram +#define COMSIG_LIVING_HIT_BY_TRAM "tram_hit_me" + +// Sent to and from SStransport for control between various components +/// Requesting transport move to a destination +#define COMSIG_TRANSPORT_REQUEST "!REQ" +/// Response to a COMSIG_TRANSPORT_REQUEST request signal +#define COMSIG_TRANSPORT_RESPONSE "!RESP" +/// Transport controller 'active' (busy) status +#define COMSIG_TRANSPORT_ACTIVE "!ACTV" +/// Transport controller destination change signal +#define COMSIG_TRANSPORT_DESTINATION "!DEST" +/// Transport controller communication status (tram malfunction event) +#define COMSIG_COMMS_STATUS "!COMM" diff --git a/code/__defines/dcs/signals/signals_turf.dm b/code/__defines/dcs/signals/signals_turf.dm index fae8092b22..bdef0cc61d 100644 --- a/code/__defines/dcs/signals/signals_turf.dm +++ b/code/__defines/dcs/signals/signals_turf.dm @@ -1,2 +1,62 @@ +// Turf signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +/// from base of turf/ChangeTurf(): (path, list/new_baseturfs, flags, list/post_change_callbacks). +/// `post_change_callbacks` is a list that signal handlers can mutate to append `/datum/callback` objects. +/// They will be called with the new turf after the turf has changed. +#define COMSIG_TURF_CHANGE "turf_change" +///from base of atom/has_gravity(): (atom/asker, list/forced_gravities) +#define COMSIG_TURF_HAS_GRAVITY "turf_has_gravity" +///from base of turf/multiz_turf_del(): (turf/source, direction) +#define COMSIG_TURF_MULTIZ_DEL "turf_multiz_del" +///from base of turf/multiz_turf_new: (turf/source, direction) +#define COMSIG_TURF_MULTIZ_NEW "turf_multiz_new" +///from base of turf/proc/onShuttleMove(): (turf/new_turf) +#define COMSIG_TURF_ON_SHUTTLE_MOVE "turf_on_shuttle_move" +///from base of /datum/turf_reservation/proc/Release: (datum/turf_reservation/reservation) +#define COMSIG_TURF_RESERVATION_RELEASED "turf_reservation_released" +///from /turf/open/temperature_expose(datum/gas_mixture/air, exposed_temperature) +#define COMSIG_TURF_EXPOSE "turf_expose" +///from /turf/proc/immediate_calculate_adjacent_turfs() +#define COMSIG_TURF_CALCULATED_ADJACENT_ATMOS "turf_calculated_adjacent_atmos" +///called when an elevator enters this turf +#define COMSIG_TURF_INDUSTRIAL_LIFT_ENTER "turf_industrial_life_enter" + +///from /datum/element/decal/Detach(): (description, cleanable, directional, mutable_appearance/pic) +#define COMSIG_TURF_DECAL_DETACHED "turf_decal_detached" + +///from /obj/item/pushbroom/sweep(): (broom, user, items_to_sweep) +#define COMSIG_TURF_RECEIVE_SWEEPED_ITEMS "turf_receive_sweeped_items" + +///from /datum/element/footstep/prepare_step(): (list/steps) #define COMSIG_TURF_PREPARE_STEP_SOUND "turf_prepare_step_sound" + //stops element/footstep/proc/prepare_step() from returning null if the turf itself has no sound #define FOOTSTEP_OVERRIDEN (1<<0) +///from base of datum/thrownthing/finalize(): (turf/turf, atom/movable/thrownthing) when something is thrown and lands on us +#define COMSIG_TURF_MOVABLE_THROW_LANDED "turf_movable_throw_landed" + +///From element/elevation/reset_elevation(): (list/values) +#define COMSIG_TURF_RESET_ELEVATION "turf_reset_elevation" + #define ELEVATION_CURRENT_PIXEL_SHIFT 1 + #define ELEVATION_MAX_PIXEL_SHIFT 2 + +///Called when turf no longer blocks light from passing through +#define COMSIG_TURF_NO_LONGER_BLOCK_LIGHT "turf_no_longer_block_light" + +///from /turf/proc/attempt_lattice_replacement() : (list/post_successful_replacement_callbacks) +/// `post_successful_replacement_callbacks` is a list that signal handlers can mutate to append `/datum/callback` objects. +/// They will be called with the new catwalk if it is actually created. +#define COMSIG_TURF_ATTEMPT_LATTICE_REPLACEMENT "turf_replaced_with_lattice" + +///from /turf/proc/change_area() : (area/old_area) +#define COMSIG_TURF_AREA_CHANGED "turf_area_changed" + +///from /proc/create_shuttle() and /proc/expand_shuttle() : (obj/docking_port/mobile/shuttle) +#define COMSIG_TURF_ADDED_TO_SHUTTLE "turf_added_to_shuttle" + +///from /proc/clear_empty_shuttle_turfs() : (obj/docking_port/mobile/shuttle) +#define COMSIG_TURF_REMOVED_FROM_SHUTTLE "turf_removed_from_shuttle" + +///from /turf/proc/afterShuttleMove() : (/turf/old_turf) +#define COMSIG_TURF_AFTER_SHUTTLE_MOVE "turf_after_shuttle_move" diff --git a/code/__defines/dcs/signals/signals_twohand.dm b/code/__defines/dcs/signals/signals_twohand.dm new file mode 100644 index 0000000000..ffe335954c --- /dev/null +++ b/code/__defines/dcs/signals/signals_twohand.dm @@ -0,0 +1,7 @@ +// /datum/component/two_handed signals + +///from base of datum/component/two_handed/proc/wield(mob/living/carbon/user): (/mob/user) +#define COMSIG_TWOHANDED_WIELD "twohanded_wield" + #define COMPONENT_TWOHANDED_BLOCK_WIELD (1<<0) +///from base of datum/component/two_handed/proc/unwield(mob/living/carbon/user): (/mob/user) +#define COMSIG_TWOHANDED_UNWIELD "twohanded_unwield" diff --git a/code/__defines/dcs/signals/signals_unittest.dm b/code/__defines/dcs/signals/signals_unittest.dm new file mode 100644 index 0000000000..e9798d1652 --- /dev/null +++ b/code/__defines/dcs/signals/signals_unittest.dm @@ -0,0 +1,4 @@ +//Unittest data update +#ifdef UNIT_TESTS +#define COMSIG_UNITTEST_DATA "unittest_send_data" +#endif diff --git a/code/__defines/dcs/signals/signals_vehicle.dm b/code/__defines/dcs/signals/signals_vehicle.dm new file mode 100644 index 0000000000..1717943a81 --- /dev/null +++ b/code/__defines/dcs/signals/signals_vehicle.dm @@ -0,0 +1,4 @@ +/// Called on a mob when they start riding a vehicle (obj/vehicle) +#define COMSIG_VEHICLE_RIDDEN "vehicle-ridden" + /// Return this to signal that the mob should be removed from the vehicle + #define EJECT_FROM_VEHICLE (1<<0) diff --git a/code/__defines/dcs/signals/signals_vore.dm b/code/__defines/dcs/signals/signals_vore.dm new file mode 100644 index 0000000000..6c0eb35fce --- /dev/null +++ b/code/__defines/dcs/signals/signals_vore.dm @@ -0,0 +1,18 @@ +///from /obj/belly/HandleBellyReagents() and /obj/belly/update_internal_overlay() +#define COMSIG_BELLY_UPDATE_VORE_FX "update_vore_fx" +///from /obj/belly/process() +#define COMSIG_BELLY_UPDATE_PREY_LOOP "update_prey_loop" + +// Spontaneous vore stuff. +///from /mob/living/stumble_into(mob/living/M) +#define COMSIG_LIVING_STUMBLED_INTO "living_stumbled_into" + ///Something has special handling. Don't continue. + #define CANCEL_STUMBLED_INTO (1<<0) +///from /mob/living/handle_fall(var/turf/landing) args: landing, drop_mob) +#define COMSIG_LIVING_FALLING_DOWN "living_falling_down" + //Special handling. Cancel the fall chain. + #define COMSIG_CANCEL_FALL (1<<0) +///from /mob/living/hitby(atom/movable/source, var/speed = THROWFORCE_SPEED_DIVISOR) +#define COMSIG_LIVING_HIT_BY_THROWN_ENTITY "hit_by_thrown_entity" + //Special handling. Cancel the hitby proc. + #define COMSIG_CANCEL_HITBY (1<<0) diff --git a/code/__defines/dcs/signals/signals_wash.dm b/code/__defines/dcs/signals/signals_wash.dm new file mode 100644 index 0000000000..299a2e3443 --- /dev/null +++ b/code/__defines/dcs/signals/signals_wash.dm @@ -0,0 +1,4 @@ +//Creamed + +///called when you wash your face at a sink: (num/strength) +#define COMSIG_COMPONENT_CLEAN_FACE_ACT "clean_face_act" diff --git a/code/__defines/dcs/signals/signals_wizard.dm b/code/__defines/dcs/signals/signals_wizard.dm new file mode 100644 index 0000000000..5cdebf4f06 --- /dev/null +++ b/code/__defines/dcs/signals/signals_wizard.dm @@ -0,0 +1,4 @@ +/// Signal sent when we finish invoking a rune. Will also send the amount of cheese sacrificed on the rune : (cheese_sacrificed) +#define COMSIG_GRAND_RUNE_COMPLETE "grand rune complete" +/// Signal sent when we finish 7 grand rituals +#define COMSIG_GRAND_RITUAL_FINAL_COMPLETE "grand ritual finale complete" diff --git a/code/__defines/dcs/signals/uplink.dm b/code/__defines/dcs/signals/uplink.dm new file mode 100644 index 0000000000..1daa4f3127 --- /dev/null +++ b/code/__defines/dcs/signals/uplink.dm @@ -0,0 +1,2 @@ +///Signal sent to a mob when they purchase an item from their uplink: (datum/uplink_handler/uplink_handler_source, atom/spawned_item, mob/user) +#define COMSIG_ON_UPLINK_PURCHASE "comsig_on_uplink_purchase" diff --git a/code/__defines/status_effects.dm b/code/__defines/status_effects.dm index 903a67443e..4762725bed 100644 --- a/code/__defines/status_effects.dm +++ b/code/__defines/status_effects.dm @@ -37,17 +37,17 @@ //Incapacitated status effect flags /// If the mob is normal incapacitated. Should never need this, just avoids issues if we ever overexpand this -// #define TRADITIONAL_INCAPACITATED (1<<0) +#define TRADITIONAL_INCAPACITATED (1<<0) /// If the incapacitated status effect is being caused by restraints (handcuffs) -// #define INCAPABLE_RESTRAINTS (1<<1) +#define INCAPABLE_RESTRAINTS (1<<1) /// If the incapacitated status effect is being caused by stasis (stasis beds) -// #define INCAPABLE_STASIS (1<<2) +#define INCAPABLE_STASIS (1<<2) /// If the incapacitated status effect is being caused by being agressively grabbed -// #define INCAPABLE_GRAB (1<<3) +#define INCAPABLE_GRAB (1<<3) /// Checks to see if a mob would be incapacitated even while ignoring some types /// Does this by inverting the passed in flags and seeing if we're still incapacitated -// #define INCAPACITATED_IGNORING(mob, flags) (mob.incapacitated & ~(flags)) +#define INCAPACITATED_IGNORING(mob, flags) (mob.incapacitated & ~(flags)) /// Max amounts of fire stacks a mob can get #define MAX_FIRE_STACKS 20 diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 62565cebb0..790bebc141 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -84,6 +84,11 @@ CtrlClickOn(A) return + //Replaces thee old 'stat||paralysis||stunned' check + //Not fully implemented yet. + if(INCAPACITATED_IGNORING(src, INCAPABLE_RESTRAINTS|INCAPABLE_STASIS)) + return + if(stat || paralysis || stunned) return diff --git a/code/_onclick/click_ctrl.dm b/code/_onclick/click_ctrl.dm index 2375fb6852..b640d85cbb 100644 --- a/code/_onclick/click_ctrl.dm +++ b/code/_onclick/click_ctrl.dm @@ -20,13 +20,13 @@ if(SEND_SIGNAL(target, COMSIG_CLICK_CTRL, src) & CLICK_ACTION_ANY) return TRUE - target.click_ctrl(src) - /* //NYI // If it has a custom click_alt that returns success/block, done. + return target.click_ctrl(src) & CLICK_ACTION_ANY + /* //NYI if(can_perform_action(target, target.interaction_flags_click | SILENT_ADJACENCY)) return target.click_ctrl(src) & CLICK_ACTION_ANY - */ return + */ //NYI END /** * Ctrl click diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 71c2096eba..9a71f57614 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -21,10 +21,15 @@ avoid code duplication. This includes items that may sometimes act as a standard // Called when the item is in the active hand, and clicked; alternately, there is an 'activate held object' verb or you can hit pagedown. /obj/item/proc/attack_self(mob/user) - if(SEND_SIGNAL(src, COMSIG_ITEM_ATTACK_SELF, user) & COMPONENT_NO_INTERACT) + if(SEND_SIGNAL(src, COMSIG_ITEM_ATTACK_SELF, user) & COMPONENT_CANCEL_ATTACK_CHAIN) return return +/// Called when the item is in the active hand, and right-clicked. Intended for alternate or opposite functions, such as lowering reagent transfer amount. At the moment, there is no verb or hotkey. +/obj/item/proc/attack_self_secondary(mob/user, modifiers) + if(SEND_SIGNAL(src, COMSIG_ITEM_ATTACK_SELF_SECONDARY, user) & COMPONENT_CANCEL_ATTACK_CHAIN) + return TRUE + /** * Called at the start of resolve_attackby(), before the actual attack. * @@ -51,7 +56,7 @@ avoid code duplication. This includes items that may sometimes act as a standard // No comment /atom/proc/attackby(obj/item/W, mob/user, var/attack_modifier, var/click_parameters) - if(SEND_SIGNAL(src, COMSIG_PARENT_ATTACKBY, W, user, click_parameters) & COMPONENT_CANCEL_ATTACK_CHAIN) + if(SEND_SIGNAL(src, COMSIG_ATOM_ATTACKBY, W, user, click_parameters) & COMPONENT_CANCEL_ATTACK_CHAIN) return TRUE return FALSE @@ -59,7 +64,7 @@ avoid code duplication. This includes items that may sometimes act as a standard if(!ismob(user)) return FALSE - if(SEND_SIGNAL(src, COMSIG_PARENT_ATTACKBY, I, user, click_parameters) & COMPONENT_CANCEL_ATTACK_CHAIN) + if(SEND_SIGNAL(src, COMSIG_ATOM_ATTACKBY, I, user, click_parameters) & COMPONENT_CANCEL_ATTACK_CHAIN) return FALSE if(can_operate(src, user) && I.do_surgery(src,user)) diff --git a/code/controllers/subsystems/garbage.dm b/code/controllers/subsystems/garbage.dm index eda5602107..9a46e0510a 100644 --- a/code/controllers/subsystems/garbage.dm +++ b/code/controllers/subsystems/garbage.dm @@ -365,7 +365,7 @@ SUBSYSTEM_DEF(garbage) CRASH("[to_delete.type] destroy proc was called multiple times, likely due to a qdel loop in the Destroy logic") return - if (SEND_SIGNAL(to_delete, COMSIG_PARENT_PREQDELETED, force)) // Give the components a chance to prevent their parent from being deleted + if (SEND_SIGNAL(to_delete, COMSIG_PREQDELETED, force)) // Give the components a chance to prevent their parent from being deleted return to_delete.gc_destroyed = GC_CURRENTLY_BEING_QDELETED diff --git a/code/controllers/subsystems/supply.dm b/code/controllers/subsystems/supply.dm index 930eb090cb..0d1d4eb0a8 100644 --- a/code/controllers/subsystems/supply.dm +++ b/code/controllers/subsystems/supply.dm @@ -88,12 +88,12 @@ SUBSYSTEM_DEF(supply) // For each thing in the crate, get the value and quantity for(var/atom/A in CR) - if(SEND_SIGNAL(A,COMSIG_ITEM_SOLD,EC,TRUE)) + if(SEND_SIGNAL(A,COMSIG_ITEM_EXPORTED,EC,TRUE)) things_sold_successfully += A else // Selling things that are not in crates. // Usually it just makes a log that it wasn't shipped properly, and so isn't worth anything - if(SEND_SIGNAL(MA,COMSIG_ITEM_SOLD,EC,FALSE)) + if(SEND_SIGNAL(MA,COMSIG_ITEM_EXPORTED,EC,FALSE)) things_sold_successfully += MA SEND_GLOBAL_SIGNAL(COMSIG_GLOB_SUPPLY_SHUTTLE_SELL_ITEM, MA, things_sold_successfully, EC, subarea) diff --git a/code/datums/components/machinery/disposal_connection.dm b/code/datums/components/machinery/disposal_connection.dm index 2283eea2ac..57a0c7e81e 100644 --- a/code/datums/components/machinery/disposal_connection.dm +++ b/code/datums/components/machinery/disposal_connection.dm @@ -6,12 +6,12 @@ disposal_owner = parent RegisterSignal(disposal_owner, COMSIG_DISPOSAL_FLUSH, PROC_REF(on_flush)) RegisterSignal(disposal_owner, COMSIG_DISPOSAL_RECEIVING, PROC_REF(on_recieve)) - RegisterSignal(disposal_owner, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine)) + RegisterSignal(disposal_owner, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) /datum/component/disposal_system_connection/Destroy() UnregisterSignal(disposal_owner, COMSIG_DISPOSAL_FLUSH) UnregisterSignal(disposal_owner, COMSIG_DISPOSAL_RECEIVING) - UnregisterSignal(disposal_owner, COMSIG_PARENT_EXAMINE) + UnregisterSignal(disposal_owner, COMSIG_ATOM_EXAMINE) disposal_owner = null . = ..() diff --git a/code/datums/components/materials/machine_shim.dm b/code/datums/components/materials/machine_shim.dm index ee47b3f821..64295dfe31 100644 --- a/code/datums/components/materials/machine_shim.dm +++ b/code/datums/components/materials/machine_shim.dm @@ -15,7 +15,7 @@ // Mob host_mob = parent RegisterSignal(host_mob, COMSIG_LIVING_LIFE, PROC_REF(on_mob_action)) - RegisterSignal(host_mob, COMSIG_OBSERVER_MOVED, PROC_REF(on_mob_action)) + RegisterSignal(host_mob, COMSIG_MOVABLE_ATTEMPTED_MOVE, PROC_REF(on_mob_action)) RegisterSignal(host_mob, COMSIG_MOB_LOGOUT, PROC_REF(on_mob_logout)) // Machine @@ -34,7 +34,7 @@ linked_machine.in_use = FALSE linked_machine = null // Mob - UnregisterSignal(host_mob, COMSIG_OBSERVER_MOVED) + UnregisterSignal(host_mob, COMSIG_MOVABLE_ATTEMPTED_MOVE) UnregisterSignal(host_mob, COMSIG_LIVING_LIFE) UnregisterSignal(host_mob, COMSIG_MOB_LOGOUT) host_mob.reset_perspective() // Required, because our machine may have been operating a remote view diff --git a/code/datums/components/materials/material_container.dm b/code/datums/components/materials/material_container.dm index 3a217c4fea..a417f7bdef 100644 --- a/code/datums/components/materials/material_container.dm +++ b/code/datums/components/materials/material_container.dm @@ -76,11 +76,11 @@ // can we insert into this container if(!(mat_container_flags & MATCONTAINER_NO_INSERT)) - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(on_attackby)) + RegisterSignal(parent, COMSIG_ATOM_ATTACKBY, PROC_REF(on_attackby)) //to see available materials if(mat_container_flags & MATCONTAINER_EXAMINE) - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine)) + RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) //drop sheets when object is deconstructed but not deleted RegisterSignal(parent, COMSIG_OBJ_DECONSTRUCT, PROC_REF(drop_sheets)) @@ -89,9 +89,9 @@ var/list/signals = list() if(!(mat_container_flags & MATCONTAINER_NO_INSERT)) - signals += COMSIG_PARENT_ATTACKBY + signals += COMSIG_ATOM_ATTACKBY if(mat_container_flags & MATCONTAINER_EXAMINE) - signals += COMSIG_PARENT_EXAMINE + signals += COMSIG_ATOM_EXAMINE signals += COMSIG_OBJ_DECONSTRUCT UnregisterSignal(parent, signals) @@ -114,14 +114,14 @@ . = ..() if(var_name == NAMEOF(src, mat_container_flags) && parent) if(!(old_flags & MATCONTAINER_EXAMINE) && mat_container_flags & MATCONTAINER_EXAMINE) - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine)) + RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) else if(old_flags & MATCONTAINER_EXAMINE && !(mat_container_flags & MATCONTAINER_EXAMINE)) - UnregisterSignal(parent, COMSIG_PARENT_EXAMINE) + UnregisterSignal(parent, COMSIG_ATOM_EXAMINE) if(old_flags & MATCONTAINER_NO_INSERT && !(mat_container_flags & MATCONTAINER_NO_INSERT)) - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(on_attackby)) + RegisterSignal(parent, COMSIG_ATOM_ATTACKBY, PROC_REF(on_attackby)) else if(!(old_flags & MATCONTAINER_NO_INSERT) && mat_container_flags & MATCONTAINER_NO_INSERT) - UnregisterSignal(parent, COMSIG_PARENT_ATTACKBY) + UnregisterSignal(parent, COMSIG_ATOM_ATTACKBY) /** * 3 Types of Procs @@ -654,7 +654,7 @@ * sheet_amt: number of sheets to extract * [material][datum/material]: type of sheets present in this container to extract * [target][atom]: drop location - * [atom][context]: context - the atom performing the operation, this is the last argument sent in COMSIG_MATCONTAINER_SHEETS_RETRIEVED and is used mostly for silo logging + * [atom][context]: context - the atom performing the operation, this is the last argument sent in COMSIG_MATCONTAINER_STACK_RETRIEVED and is used mostly for silo logging */ /datum/component/material_container/proc/retrieve_sheets(sheet_amt, datum/material/material, atom/target = null, atom/context = parent) //do we support sheets of this material @@ -684,7 +684,7 @@ use_amount_mat(new_sheets.amount * SHEET_MATERIAL_AMOUNT, material) sheet_amt -= new_sheets.amount //send signal - SEND_SIGNAL(src, COMSIG_MATCONTAINER_SHEETS_RETRIEVED, new_sheets, context) + SEND_SIGNAL(src, COMSIG_MATCONTAINER_STACK_RETRIEVED, new_sheets, context) //no point merging anything into an already full stack if(new_sheets.amount == new_sheets.max_amount) continue diff --git a/code/datums/components/materials/remote_materials.dm b/code/datums/components/materials/remote_materials.dm index f2c5ddb5cd..2231e07556 100644 --- a/code/datums/components/materials/remote_materials.dm +++ b/code/datums/components/materials/remote_materials.dm @@ -43,7 +43,7 @@ handles linking back and forth. if(force_connect || (mapload && (T.z in using_map.station_levels))) connect_to_silo = TRUE - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(on_item_insert)) + RegisterSignal(parent, COMSIG_ATOM_ATTACKBY, PROC_REF(on_item_insert)) if(mapload) // wait for silo to initialize during mapload SSticker.OnRoundstart(CALLBACK(src, PROC_REF(_PrepareStorage), connect_to_silo)) diff --git a/code/datums/components/reagent_hose/connector.dm b/code/datums/components/reagent_hose/connector.dm index 6cb2a9cab8..0dafb15dfc 100644 --- a/code/datums/components/reagent_hose/connector.dm +++ b/code/datums/components/reagent_hose/connector.dm @@ -23,7 +23,7 @@ // Setup signaling var/list/CL = carrier.GetComponents(type) connector_number = CL.len + 1 - RegisterSignal(carrier, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine)) + RegisterSignal(carrier, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) RegisterSignal(carrier, COMSIG_MOVABLE_MOVED, PROC_REF(move_react)) RegisterSignal(carrier, COMSIG_HOSE_FORCEPUMP, PROC_REF(force_pump)) carrier.verbs |= /atom/proc/disconnect_hose @@ -32,7 +32,7 @@ /datum/component/hose_connector/Destroy() STOP_PROCESSING(SSobj, src) - UnregisterSignal(carrier, COMSIG_PARENT_EXAMINE) + UnregisterSignal(carrier, COMSIG_ATOM_EXAMINE) UnregisterSignal(carrier, COMSIG_MOVABLE_MOVED) UnregisterSignal(carrier, COMSIG_HOSE_FORCEPUMP) carrier.verbs -= /atom/proc/disconnect_hose diff --git a/code/datums/components/recursive_move.dm b/code/datums/components/recursive_move.dm index 01fe4e89aa..2abc1136da 100644 --- a/code/datums/components/recursive_move.dm +++ b/code/datums/components/recursive_move.dm @@ -83,12 +83,12 @@ //Parent at top of heirarchy moved. /datum/component/recursive_move/proc/top_moved(var/atom/movable/am, var/atom/new_loc, var/atom/old_loc) SIGNAL_HANDLER - SEND_SIGNAL(holder, COMSIG_OBSERVER_MOVED, old_loc, new_loc) + SEND_SIGNAL(holder, COMSIG_MOVABLE_ATTEMPTED_MOVE, old_loc, new_loc) //One of the parents other than the top parent moved. /datum/component/recursive_move/proc/heirarchy_changed(var/atom/old_loc, var/atom/movable/am, var/atom/new_loc) SIGNAL_HANDLER - SEND_SIGNAL(holder, COMSIG_OBSERVER_MOVED, old_loc, new_loc) + SEND_SIGNAL(holder, COMSIG_MOVABLE_ATTEMPTED_MOVE, old_loc, new_loc) //Rebuild our list of parents reset_parents() setup_parents() @@ -130,4 +130,4 @@ /obj/item/bananapeel/test/Initialize(mapload) . = ..() AddComponent(/datum/component/recursive_move) - RegisterSignal(src, COMSIG_OBSERVER_MOVED, PROC_REF(shmove)) + RegisterSignal(src, COMSIG_MOVABLE_ATTEMPTED_MOVE, PROC_REF(shmove)) diff --git a/code/datums/components/remote_view.dm b/code/datums/components/remote_view.dm index eed9be4a39..5a8979a201 100644 --- a/code/datums/components/remote_view.dm +++ b/code/datums/components/remote_view.dm @@ -43,17 +43,17 @@ // Handle relayed movement if(settings.relay_movement) RegisterSignal(host_mob, COMSIG_MOB_RELAY_MOVEMENT, PROC_REF(handle_relay_movement)) - RegisterSignal(host_mob, COMSIG_LIVING_HANDLE_VISION, PROC_REF(handle_mob_vision_update)) + RegisterSignal(host_mob, COMSIG_MOB_HANDLE_VISION, PROC_REF(handle_mob_vision_update)) // Hud overrides if(settings.override_entire_hud) - RegisterSignal(host_mob, COMSIG_LIVING_HANDLE_HUD, PROC_REF(handle_hud_override)) + RegisterSignal(host_mob, COMSIG_MOB_HANDLE_HUD, PROC_REF(handle_hud_override)) if(settings.override_health_hud) - RegisterSignal(host_mob, COMSIG_LIVING_HANDLE_HUD_HEALTH_ICON, PROC_REF(handle_hud_health)) + RegisterSignal(host_mob, COMSIG_MOB_HANDLE_HUD_HEALTH_ICON, PROC_REF(handle_hud_health)) if(settings.override_darkvision_hud) - RegisterSignal(host_mob, COMSIG_LIVING_HANDLE_HUD_DARKSIGHT, PROC_REF(handle_hud_darkvision)) + RegisterSignal(host_mob, COMSIG_MOB_HANDLE_HUD_DARKSIGHT, PROC_REF(handle_hud_darkvision)) // Recursive move component fires this, we only want it to handle stuff like being inside a paicard when releasing turf lock if(isturf(focused_on)) - RegisterSignal(host_mob, COMSIG_OBSERVER_MOVED, PROC_REF(handle_recursive_moved)) + RegisterSignal(host_mob, COMSIG_MOVABLE_ATTEMPTED_MOVE, PROC_REF(handle_recursive_moved)) // Focus on remote view remote_view_target = focused_on if(host_mob != remote_view_target) // Some items just offset our view, so we set ourselves as the view target, don't double dip if so! @@ -88,20 +88,20 @@ if(settings.will_blind) UnregisterSignal(host_mob, COMSIG_LIVING_STATUS_BLIND) if(isturf(remote_view_target)) - UnregisterSignal(host_mob, COMSIG_OBSERVER_MOVED) + UnregisterSignal(host_mob, COMSIG_MOVABLE_ATTEMPTED_MOVE) if(settings.will_death) UnregisterSignal(host_mob, COMSIG_MOB_DEATH) // Handle relayed movement if(settings.relay_movement) UnregisterSignal(host_mob, COMSIG_MOB_RELAY_MOVEMENT) - UnregisterSignal(host_mob, COMSIG_LIVING_HANDLE_VISION) + UnregisterSignal(host_mob, COMSIG_MOB_HANDLE_VISION) // Hud overrides if(settings.override_entire_hud) - UnregisterSignal(host_mob, COMSIG_LIVING_HANDLE_HUD) + UnregisterSignal(host_mob, COMSIG_MOB_HANDLE_HUD) if(settings.override_health_hud) - UnregisterSignal(host_mob, COMSIG_LIVING_HANDLE_HUD_HEALTH_ICON) + UnregisterSignal(host_mob, COMSIG_MOB_HANDLE_HUD_HEALTH_ICON) if(settings.override_darkvision_hud) - UnregisterSignal(host_mob, COMSIG_LIVING_HANDLE_HUD_DARKSIGHT) + UnregisterSignal(host_mob, COMSIG_MOB_HANDLE_HUD_DARKSIGHT) // Cleanup remote view if(host_mob != remote_view_target) // If target is not ourselves UnregisterSignal(remote_view_target, COMSIG_QDELETING) @@ -419,13 +419,13 @@ . = ..() // Items can be nested deeply, so we need to update on any parent reorganization or actual move. host_mob.AddComponent(/datum/component/recursive_move) - RegisterSignal(host_mob, COMSIG_OBSERVER_MOVED, PROC_REF(handle_recursive_moved)) // Doesn't need override, basetype only ever registers this signal if we're looking at a turf + RegisterSignal(host_mob, COMSIG_MOVABLE_ATTEMPTED_MOVE, PROC_REF(handle_recursive_moved)) // Doesn't need override, basetype only ever registers this signal if we're looking at a turf // Check our inmob state if(ismob(find_topmost_atom())) needs_to_decouple = TRUE /datum/component/remote_view/mob_holding_item/Destroy(force) - UnregisterSignal(host_mob, COMSIG_OBSERVER_MOVED) + UnregisterSignal(host_mob, COMSIG_MOVABLE_MOVED) . = ..() /datum/component/remote_view/mob_holding_item/handle_status_effects(datum/source, amount, ignore_canstun) diff --git a/code/datums/components/tethered_item.dm b/code/datums/components/tethered_item.dm index 2b4cf51c93..7d20245462 100644 --- a/code/datums/components/tethered_item.dm +++ b/code/datums/components/tethered_item.dm @@ -11,14 +11,14 @@ host_item.verbs += /obj/item/proc/toggle_tethered_handheld host_item.actions_types += list(/datum/action/item_action/swap_tethered_item) // AddComponent for this must be called before . = ..() in Initilize() RegisterSignal(host_item, COMSIG_ITEM_ATTACK_SELF, PROC_REF(on_attackself)) - RegisterSignal(host_item, COMSIG_PARENT_ATTACKBY, PROC_REF(on_attackby)) + RegisterSignal(host_item, COMSIG_ATOM_ATTACKBY, PROC_REF(on_attackby)) RegisterSignal(host_item, COMSIG_MOVABLE_MOVED, PROC_REF(on_moved)) // Link handheld make_handheld() /datum/component/tethered_item/Destroy() UnregisterSignal(host_item, COMSIG_ITEM_ATTACK_SELF) - UnregisterSignal(host_item, COMSIG_PARENT_ATTACKBY) + UnregisterSignal(host_item, COMSIG_ATOM_ATTACKBY) UnregisterSignal(host_item, COMSIG_MOVABLE_MOVED) host_item.verbs -= /obj/item/proc/toggle_tethered_handheld host_item = null @@ -32,12 +32,12 @@ // Anything that uses this component must intercept attack_hand() and emit COMSIG_ITEM_ATTACK_SELF. // This stops you from removing the item from your backpack slot while trying to take the handheld item out. // There's no way to block the item pickup code, so it has to be done this way. Unfortunately. -// Will return COMPONENT_NO_INTERACT if the component handled the action. Otherwise attack_hand() should resolve normally. +// Will return COMPONENT_CANCEL_ATTACK_CHAIN if the component handled the action. Otherwise attack_hand() should resolve normally. /datum/component/tethered_item/proc/on_attackself(obj/item/source, mob/living/carbon/human/user) SIGNAL_HANDLER if(hand_held.loc != host_item) reattach_handheld() - return COMPONENT_NO_INTERACT + return COMPONENT_CANCEL_ATTACK_CHAIN //Detach the handset into the user's hands if(!slot_check()) if(ismob(host_item.loc)) @@ -49,7 +49,7 @@ host_item.update_icon() hand_held.update_icon() to_chat(user,span_notice("You remove \the [hand_held] from \the [host_item].")) - return COMPONENT_NO_INTERACT + return COMPONENT_CANCEL_ATTACK_CHAIN // Signal registry for handheld item /datum/component/tethered_item/proc/make_handheld() diff --git a/code/datums/components/traits/unlucky.dm b/code/datums/components/traits/unlucky.dm index 86c1b854c6..c503f6be24 100644 --- a/code/datums/components/traits/unlucky.dm +++ b/code/datums/components/traits/unlucky.dm @@ -88,10 +88,10 @@ RegisterSignal(parent, COMSIG_STUN_EFFECT_ACT, PROC_REF(check_taser)) RegisterSignal(parent, COMSIG_MOB_ROLLED_DICE, PROC_REF(check_roll)) RegisterSignal(parent, COMSIG_HUMAN_ON_CATCH_THROW, PROC_REF(check_throw)) - RegisterSignal(parent, COMSIG_PICKED_UP_ITEM, PROC_REF(check_pickup)) + RegisterSignal(parent, COMSIG_ITEM_PICKUP, PROC_REF(check_pickup)) /datum/component/omen/UnregisterFromParent() - UnregisterSignal(parent, list(COMSIG_ON_CARBON_SLIP, COMSIG_MOVABLE_MOVED, COMSIG_STUN_EFFECT_ACT, COMSIG_MOVED_DOWN_STAIRS, COMSIG_MOB_ROLLED_DICE, COMSIG_HUMAN_ON_CATCH_THROW, COMSIG_PICKED_UP_ITEM)) + UnregisterSignal(parent, list(COMSIG_ON_CARBON_SLIP, COMSIG_MOVABLE_MOVED, COMSIG_STUN_EFFECT_ACT, COMSIG_MOVED_DOWN_STAIRS, COMSIG_MOB_ROLLED_DICE, COMSIG_HUMAN_ON_CATCH_THROW, COMSIG_ITEM_PICKUP)) /datum/component/omen/proc/consume_omen() incidents_left-- diff --git a/code/datums/datum.dm b/code/datums/datum.dm index a62f94d187..3f8fbfcf80 100644 --- a/code/datums/datum.dm +++ b/code/datums/datum.dm @@ -100,7 +100,7 @@ * * Returns [QDEL_HINT_QUEUE] */ -/datum/proc/Destroy(force=FALSE) +/datum/proc/Destroy(force = FALSE) SHOULD_CALL_PARENT(TRUE) SHOULD_NOT_SLEEP(TRUE) tag = null diff --git a/code/datums/elements/climbable.dm b/code/datums/elements/climbable.dm index b826f647bf..bd6ca37725 100644 --- a/code/datums/elements/climbable.dm +++ b/code/datums/elements/climbable.dm @@ -18,7 +18,7 @@ RegisterSignal(target, COMSIG_CLIMBABLE_START_CLIMB, PROC_REF(start_climb)) RegisterSignal(target, COMSIG_CLIMBABLE_SHAKE_CLIMBERS, PROC_REF(shaken)) RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(move_shaken)) - RegisterSignal(target, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine)) + RegisterSignal(target, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) target.verbs += /obj/proc/climb_on ADD_TRAIT(target, TRAIT_CLIMBABLE, ELEMENT_TRAIT(type)) @@ -27,7 +27,7 @@ UnregisterSignal(source, COMSIG_CLIMBABLE_START_CLIMB) UnregisterSignal(source, COMSIG_CLIMBABLE_SHAKE_CLIMBERS) UnregisterSignal(source, COMSIG_MOVABLE_MOVED) - UnregisterSignal(source, COMSIG_PARENT_EXAMINE) + UnregisterSignal(source, COMSIG_ATOM_EXAMINE) source.verbs -= /obj/proc/climb_on REMOVE_TRAIT(source, TRAIT_CLIMBABLE, ELEMENT_TRAIT(type)) diff --git a/code/datums/elements/godmode.dm b/code/datums/elements/godmode.dm index e83c05e16f..ebd2dd02df 100644 --- a/code/datums/elements/godmode.dm +++ b/code/datums/elements/godmode.dm @@ -39,7 +39,7 @@ RegisterSignal(target, COMSIG_TAKING_HALO_DAMAGE, PROC_REF(on_halo_damage)) //Things such as update health. - RegisterSignal(target, COMSIG_UPDATE_HEALTH, PROC_REF(on_update_health)) + RegisterSignal(target, COMSIG_LIVING_HEALTH_UPDATE, PROC_REF(on_update_health)) RegisterSignal(target, COMSIG_TAKING_APPLY_EFFECT, PROC_REF(on_apply_effect)) //For things that don't fall into a single bucket @@ -62,7 +62,7 @@ //All the general comsigs. UnregisterSignal(target, list(COMSIG_TAKING_OXY_DAMAGE, COMSIG_TAKING_TOX_DAMAGE, COMSIG_TAKING_FIRE_DAMAGE, \ COMSIG_TAKING_BRUTE_DAMAGE, COMSIG_TAKING_BRAIN_DAMAGE, COMSIG_TAKING_CLONE_DAMAGE, COMSIG_TAKING_HALO_DAMAGE, \ - COMSIG_UPDATE_HEALTH, COMSIG_TAKING_APPLY_EFFECT, COMSIG_CHECK_FOR_GODMODE, COMSIG_BEING_ELECTROCUTED, COMSIG_EMBED_OBJECT)) + COMSIG_LIVING_HEALTH_UPDATE, COMSIG_TAKING_APPLY_EFFECT, COMSIG_CHECK_FOR_GODMODE, COMSIG_BEING_ELECTROCUTED, COMSIG_EMBED_OBJECT)) var/mob/our_target = target //And finally, remove the fact we're in godmode. @@ -108,7 +108,7 @@ /datum/element/godmode/proc/on_update_health() SIGNAL_HANDLER - return COMSIG_UPDATE_HEALTH_GOD_MODE + return COMSIG_LIVING_HEALTH_UPDATE_GOD_MODE /datum/element/godmode/proc/on_apply_effect() SIGNAL_HANDLER @@ -145,7 +145,7 @@ our_target.status_flags &= ~CANWEAKEN our_target.status_flags &= ~CANPARALYSE RegisterSignal(target, COMSIG_INTERNAL_ORGAN_PRE_DAMAGE_APPLICATION, PROC_REF(on_internal_damaged)) - RegisterSignal(target, COMSIG_UPDATE_HEALTH, PROC_REF(on_update_health)) + RegisterSignal(target, COMSIG_LIVING_HEALTH_UPDATE, PROC_REF(on_update_health)) RegisterSignal(target, COMSIG_TAKING_APPLY_EFFECT, PROC_REF(on_apply_effect)) if(ishuman(target)) @@ -159,7 +159,7 @@ /datum/element/lite_godmode/Detach(atom/movable/target) var/mob/our_target = target UnregisterSignal(target, COMSIG_INTERNAL_ORGAN_PRE_DAMAGE_APPLICATION) - UnregisterSignal(target, COMSIG_UPDATE_HEALTH) + UnregisterSignal(target, COMSIG_LIVING_HEALTH_UPDATE) UnregisterSignal(target, COMSIG_TAKING_APPLY_EFFECT) our_target.status_flags |= CANSTUN|CANWEAKEN|CANPARALYSE if(ishuman(target)) @@ -173,7 +173,7 @@ /datum/element/lite_godmode/proc/on_update_health() SIGNAL_HANDLER - return COMSIG_UPDATE_HEALTH_GOD_MODE + return COMSIG_LIVING_HEALTH_UPDATE_GOD_MODE /datum/element/lite_godmode/proc/on_apply_effect() SIGNAL_HANDLER diff --git a/code/datums/elements/sellable.dm b/code/datums/elements/sellable.dm index 8232154b91..70af9cecb4 100644 --- a/code/datums/elements/sellable.dm +++ b/code/datums/elements/sellable.dm @@ -6,15 +6,15 @@ . = ..() if(!isobj(target)) return ELEMENT_INCOMPATIBLE - RegisterSignal(target, COMSIG_ITEM_SOLD, PROC_REF(sell)) + RegisterSignal(target, COMSIG_ITEM_EXPORTED, PROC_REF(sell)) RegisterSignal(target, COMSIG_ITEM_SCAN_PROFIT, PROC_REF(calculate_sell_value)) - RegisterSignal(target, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine)) + RegisterSignal(target, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) return /datum/element/sellable/Detach(datum/source) - UnregisterSignal(source, COMSIG_ITEM_SOLD) + UnregisterSignal(source, COMSIG_ITEM_EXPORTED) UnregisterSignal(source, COMSIG_ITEM_SCAN_PROFIT) - UnregisterSignal(source, COMSIG_PARENT_EXAMINE) + UnregisterSignal(source, COMSIG_ATOM_EXAMINE) return ..() // Override this for sub elements that need to do complex calculations when sold diff --git a/code/datums/elements/topturfcrossed.dm b/code/datums/elements/topturfcrossed.dm index bbc9e546ff..43f9eba561 100644 --- a/code/datums/elements/topturfcrossed.dm +++ b/code/datums/elements/topturfcrossed.dm @@ -14,11 +14,11 @@ /datum/component/topturfcrossed/RegisterWithParent() our_owner.AddComponent(/datum/component/recursive_move) // Required if we want to be useful at all - RegisterSignal(our_owner, COMSIG_OBSERVER_MOVED, PROC_REF(handle_location_change)) + RegisterSignal(our_owner, COMSIG_MOVABLE_MOVED, PROC_REF(handle_location_change)) update_turf_signals(get_turf(our_owner)) /datum/component/topturfcrossed/UnregisterFromParent() - UnregisterSignal(our_owner, COMSIG_OBSERVER_MOVED) + UnregisterSignal(our_owner, COMSIG_MOVABLE_MOVED) update_turf_signals(null) /datum/component/topturfcrossed/proc/handle_location_change(datum/source, atom/old_loc, atom/new_loc) diff --git a/code/datums/observation/helpers.dm b/code/datums/observation/helpers.dm index abb59a8766..747e72bf1a 100644 --- a/code/datums/observation/helpers.dm +++ b/code/datums/observation/helpers.dm @@ -1,6 +1,6 @@ /* /atom/movable/proc/recursive_move(var/atom/movable/am, var/old_loc, var/new_loc) - SEND_SIGNAL(src,COMSIG_OBSERVER_MOVED, old_loc, new_loc) + SEND_SIGNAL(src, COMSIG_MOVABLE_ATTEMPTED_MOVE, old_loc, new_loc) */ /atom/movable/proc/move_to_destination(var/atom/movable/am, var/old_loc, var/new_loc) var/turf/T = get_turf(new_loc) @@ -16,10 +16,10 @@ /* /proc/register_all_movement(var/event_source, var/datum/listener) - listener.RegisterSignal(event_source,COMSIG_OBSERVER_MOVED, /atom/movable/proc/recursive_move) + listener.RegisterSignal(event_source, COMSIG_MOVABLE_ATTEMPTED_MOVE, /atom/movable/proc/recursive_move) //GLOB.dir_set_event.register(event_source, listener, /atom/proc/recursive_dir_set) /proc/unregister_all_movement(var/event_source, var/datum/listener) - listener.UnregisterSignal(event_source,COMSIG_OBSERVER_MOVED) + listener.UnregisterSignal(event_source, COMSIG_MOVABLE_ATTEMPTED_MOVE) //GLOB.dir_set_event.unregister(event_source, listener, /atom/proc/recursive_dir_set) */ diff --git a/code/datums/observation/moved.dm b/code/datums/observation/moved.dm index 058fb31740..7b0da012e7 100644 --- a/code/datums/observation/moved.dm +++ b/code/datums/observation/moved.dm @@ -31,21 +31,21 @@ GLOBAL_DATUM_INIT(moved_event, /decl/observ/moved, new) /* /atom/movable/Entered(var/atom/movable/am, atom/old_loc) . = ..() - am.RegisterSignal(src,COMSIG_OBSERVER_MOVED, /atom/movable/proc/recursive_move, override = TRUE) + am.RegisterSignal(src,COMSIG_MOVABLE_MOVED, /atom/movable/proc/recursive_move, override = TRUE) /atom/movable/Exited(var/atom/movable/am, atom/old_loc) . = ..() - am.UnregisterSignal(src,COMSIG_OBSERVER_MOVED) + am.UnregisterSignal(src,COMSIG_MOVABLE_MOVED) */ // Entered() typically lifts the moved event, but in the case of null-space we'll have to handle it. /atom/movable/Move() var/old_loc = loc . = ..() if(. && !loc) - SEND_SIGNAL(src,COMSIG_OBSERVER_MOVED, old_loc, null) + SEND_SIGNAL(src,COMSIG_MOVABLE_MOVED, old_loc, null) /atom/movable/forceMove(atom/destination, direction, movetime) // pass movetime through var/old_loc = loc . = ..() if(. && !loc) - SEND_SIGNAL(src,COMSIG_OBSERVER_MOVED, old_loc, null) + SEND_SIGNAL(src,COMSIG_MOVABLE_MOVED, old_loc, null) diff --git a/code/game/atom/_atom.dm b/code/game/atom/_atom.dm index 352f9d59f9..1e13b87c07 100644 --- a/code/game/atom/_atom.dm +++ b/code/game/atom/_atom.dm @@ -222,7 +222,7 @@ var/list/output = list("[icon2html(src,user.client)] That's [f_name] [suffix] [borg]", get_examine_desc()) - SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE, user, output) + SEND_SIGNAL(src, COMSIG_ATOM_EXAMINE, user, output) return output // Don't make these call bicon or anything, these are what bicon uses. They need to return an icon. @@ -471,7 +471,7 @@ /atom/Entered(atom/movable/AM, atom/old_loc) . = ..() - SEND_SIGNAL(AM, COMSIG_OBSERVER_MOVED, old_loc, AM.loc) + SEND_SIGNAL(AM, COMSIG_MOVABLE_ATTEMPTED_MOVE, old_loc, AM.loc) SEND_SIGNAL(src, COMSIG_ATOM_ENTERED, AM, old_loc) SEND_SIGNAL(AM, COMSIG_ATOM_ENTERING, src, old_loc) diff --git a/code/game/machinery/machinery_power.dm b/code/game/machinery/machinery_power.dm index 7a4dba29fc..e08f285f1d 100644 --- a/code/game/machinery/machinery_power.dm +++ b/code/game/machinery/machinery_power.dm @@ -73,7 +73,7 @@ // Do not do power stuff in New/Initialize until after ..() /obj/machinery/Initialize(mapload) . = ..() - RegisterSignal(src, COMSIG_OBSERVER_MOVED, PROC_REF(update_power_on_move)) + RegisterSignal(src, COMSIG_MOVABLE_ATTEMPTED_MOVE, PROC_REF(update_power_on_move)) AddComponent(/datum/component/recursive_move) var/power = POWER_CONSUMPTION REPORT_POWER_CONSUMPTION_CHANGE(0, power) @@ -83,7 +83,7 @@ /obj/machinery/Destroy() /* if(ismovable(loc)) - UnregisterSignal(loc, COMSIG_OBSERVER_MOVED) // Unregister just in case + UnregisterSignal(loc, COMSIG_MOVABLE_ATTEMPTED_MOVE) // Unregister just in case */ var/power = POWER_CONSUMPTION REPORT_POWER_CONSUMPTION_CHANGE(power, 0) @@ -96,9 +96,9 @@ update_power_on_move(src, old_loc, loc) /* No if(ismovable(old_loc)) // Unregister recursive movement. - UnregisterSignal(old_loc, COMSIG_OBSERVER_MOVED) + UnregisterSignal(old_loc, COMSIG_MOVABLE_ATTEMPTED_MOVE) if(ismovable(loc)) // Register for recursive movement (if the thing we're inside moves) - RegisterSignal(loc, COMSIG_OBSERVER_MOVED, PROC_REF(update_power_on_move), override = TRUE) + RegisterSignal(loc, COMSIG_MOVABLE_ATTEMPTED_MOVE, PROC_REF(update_power_on_move), override = TRUE) */ /obj/machinery/proc/update_power_on_move(atom/movable/mover, atom/old_loc, atom/new_loc) diff --git a/code/game/mecha/equipment/tools/shield_omni.dm b/code/game/mecha/equipment/tools/shield_omni.dm index 2c086e9eb8..ca497c1148 100644 --- a/code/game/mecha/equipment/tools/shield_omni.dm +++ b/code/game/mecha/equipment/tools/shield_omni.dm @@ -77,7 +77,7 @@ /obj/item/shield_projector/rectangle/mecha/Initialize(mapload) . = ..() my_mech = loc - RegisterSignal(my_mech, COMSIG_OBSERVER_MOVED, /obj/item/shield_projector/proc/update_shield_positions) + RegisterSignal(my_mech, COMSIG_MOVABLE_ATTEMPTED_MOVE, /obj/item/shield_projector/proc/update_shield_positions) my_mech.AddComponent(/datum/component/recursive_move) update_shift(my_mech) @@ -89,7 +89,7 @@ shift_y = round(y_dif, 1) /obj/item/shield_projector/rectangle/mecha/Destroy() - UnregisterSignal(my_mech, COMSIG_OBSERVER_MOVED) + UnregisterSignal(my_mech, COMSIG_MOVABLE_ATTEMPTED_MOVE) my_mech = null . = ..() diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 8b9e8146d6..3c455b1210 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -450,7 +450,7 @@ // called just as an item is picked up (loc is not yet changed) /obj/item/proc/pickup(mob/user) SEND_SIGNAL(src, COMSIG_ITEM_PICKUP, user) - SEND_SIGNAL(user, COMSIG_PICKED_UP_ITEM, src) + SEND_SIGNAL(user, COMSIG_ITEM_PICKUP, src) pixel_x = 0 pixel_y = 0 return diff --git a/code/game/objects/items/devices/communicator/phone.dm b/code/game/objects/items/devices/communicator/phone.dm index 8d019a4530..f7938facc3 100644 --- a/code/game/objects/items/devices/communicator/phone.dm +++ b/code/game/objects/items/devices/communicator/phone.dm @@ -349,7 +349,7 @@ video_source = comm.camera comm.visible_message(span_danger("[icon2html(src,viewers(src))] New video connection from [comm].")) update_active_camera_screen() - RegisterSignal(video_source, COMSIG_OBSERVER_MOVED, PROC_REF(update_active_camera_screen)) + RegisterSignal(video_source, COMSIG_MOVABLE_ATTEMPTED_MOVE, PROC_REF(update_active_camera_screen)) video_source.AddComponent(/datum/component/recursive_move) update_icon() @@ -357,7 +357,7 @@ // Parameters: reason - the text reason to print for why it ended // Description: Ends the video call by clearing video_source /obj/item/communicator/proc/end_video(var/reason) - UnregisterSignal(video_source, COMSIG_OBSERVER_MOVED) + UnregisterSignal(video_source, COMSIG_MOVABLE_ATTEMPTED_MOVE) show_static() video_source = null diff --git a/code/game/objects/items/devices/defib.dm b/code/game/objects/items/devices/defib.dm index 20ba42f404..6d72f30a61 100644 --- a/code/game/objects/items/devices/defib.dm +++ b/code/game/objects/items/devices/defib.dm @@ -64,7 +64,7 @@ /obj/item/defib_kit/attack_hand(mob/living/user) // See important note in tethered_item.dm - if(SEND_SIGNAL(src,COMSIG_ITEM_ATTACK_SELF,user) & COMPONENT_NO_INTERACT) + if(SEND_SIGNAL(src,COMSIG_ITEM_ATTACK_SELF,user) & COMPONENT_CANCEL_ATTACK_CHAIN) return TRUE . = ..() diff --git a/code/game/objects/items/devices/gps.dm b/code/game/objects/items/devices/gps.dm index 4cbeeeaa41..d49211d4ae 100644 --- a/code/game/objects/items/devices/gps.dm +++ b/code/game/objects/items/devices/gps.dm @@ -40,14 +40,14 @@ GLOBAL_LIST_EMPTY(GPS_list) /obj/item/gps/proc/update_holder() if(holder && loc != holder) - UnregisterSignal(holder, COMSIG_OBSERVER_MOVED) + UnregisterSignal(holder, COMSIG_MOVABLE_ATTEMPTED_MOVE) //GLOB.dir_set_event.unregister(holder, src) holder.client?.screen -= compass holder = null if(istype(loc, /mob)) holder = loc - RegisterSignal(holder, COMSIG_OBSERVER_MOVED, PROC_REF(update_compass), override = TRUE) + RegisterSignal(holder, COMSIG_MOVABLE_ATTEMPTED_MOVE, PROC_REF(update_compass), override = TRUE) holder.AddComponent(/datum/component/recursive_move) //GLOB.dir_set_event.register(holder, src, PROC_REF(update_compass)) diff --git a/code/game/objects/items/devices/radio/radiopack.dm b/code/game/objects/items/devices/radio/radiopack.dm index c4cde14478..693cadacdb 100644 --- a/code/game/objects/items/devices/radio/radiopack.dm +++ b/code/game/objects/items/devices/radio/radiopack.dm @@ -18,7 +18,7 @@ /obj/item/bluespaceradio/attack_hand(mob/living/user) // See important note in tethered_item.dm - if(SEND_SIGNAL(src,COMSIG_ITEM_ATTACK_SELF,user) & COMPONENT_NO_INTERACT) + if(SEND_SIGNAL(src,COMSIG_ITEM_ATTACK_SELF,user) & COMPONENT_CANCEL_ATTACK_CHAIN) return TRUE . = ..() diff --git a/code/game/objects/items/devices/tvcamera.dm b/code/game/objects/items/devices/tvcamera.dm index e5f6ba46be..4e50da983c 100644 --- a/code/game/objects/items/devices/tvcamera.dm +++ b/code/game/objects/items/devices/tvcamera.dm @@ -154,7 +154,7 @@ /obj/item/tvcamera/proc/update_feed() if(camera.status) - SEND_SIGNAL(camera, COMSIG_OBSERVER_MOVED) // Forward the movement signal + SEND_SIGNAL(camera, COMSIG_MOVABLE_ATTEMPTED_MOVE) // Forward the movement signal //Assembly by roboticist diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm index 6cfaeacc7f..6832f2f667 100644 --- a/code/game/objects/items/weapons/handcuffs.dm +++ b/code/game/objects/items/weapons/handcuffs.dm @@ -36,17 +36,17 @@ if ((CLUMSY in user.mutations) && prob(50)) to_chat(user, span_warning("Uh ... how do those things work?!")) - place_handcuffs(user, user) + attempt_to_cuff(user, user) return if(!C.handcuffed) if (C == user) - place_handcuffs(user, user) + attempt_to_cuff(user, user) return //check for an aggressive grab (or robutts) if(can_place(C, user)) - place_handcuffs(C, user) + attempt_to_cuff(C, user) else to_chat(user, span_danger("You need to have a firm grip on [C] before you can put \the [src] on!")) @@ -62,36 +62,39 @@ return 1 return 0 -/obj/item/handcuffs/proc/place_handcuffs(var/mob/living/carbon/target, var/mob/user) +/obj/item/handcuffs/proc/attempt_to_cuff(var/mob/living/carbon/victim, var/mob/user) + if(SEND_SIGNAL(victim, COMSIG_CARBON_CUFF_ATTEMPTED, user) & COMSIG_CARBON_CUFF_PREVENT) + victim.balloon_alert(user, "can't be handcuffed!") + return playsound(src, cuff_sound, 30, 1, -2) - var/mob/living/carbon/human/H = target - if(!istype(H)) + var/mob/living/carbon/human/human_victim = victim + if(!istype(human_victim)) return 0 - if (!H.has_organ_for_slot(slot_handcuffed)) - to_chat(user, span_danger("\The [H] needs at least two wrists before you can cuff them together!")) + if (!human_victim.has_organ_for_slot(slot_handcuffed)) + to_chat(user, span_danger("\The [victim] needs at least two wrists before you can cuff them together!")) return 0 - if(istype(H.gloves,/obj/item/clothing/gloves/gauntlets/rig) && !elastic) // Can't cuff someone who's in a deployed hardsuit. - to_chat(user, span_danger("\The [src] won't fit around \the [H.gloves]!")) + if(istype(human_victim.gloves,/obj/item/clothing/gloves/gauntlets/rig) && !elastic) // Can't cuff someone who's in a deployed hardsuit. + to_chat(user, span_danger("\The [src] won't fit around \the [human_victim.gloves]!")) return 0 - user.visible_message(span_danger("\The [user] is attempting to put [cuff_type] on \the [H]!")) + user.visible_message(span_danger("\The [user] is attempting to put [cuff_type] on \the [victim]!")) if(!do_after(user, use_time, target = src)) return 0 - if(!can_place(target, user)) //victim may have resisted out of the grab in the meantime + if(!can_place(victim, user)) //victim may have resisted out of the grab in the meantime return 0 - add_attack_logs(user,H,"Handcuffed (attempt)") - feedback_add_details("handcuffs","H") + add_attack_logs(user,victim,"Handcuffed (attempt)") + feedback_add_details("handcuffs","victim") user.setClickCooldown(user.get_attack_speed(src)) - user.do_attack_animation(H) + user.do_attack_animation(victim) - user.visible_message(span_danger("\The [user] has put [cuff_type] on \the [H]!")) + user.visible_message(span_danger("\The [user] has put [cuff_type] on \the [victim]!")) // Apply cuffs. var/obj/item/handcuffs/cuffs = src @@ -99,12 +102,12 @@ cuffs = new(get_turf(user)) else user.drop_from_inventory(cuffs) - cuffs.loc = target - target.handcuffed = cuffs - target.update_handcuffed() - target.drop_r_hand() - target.drop_l_hand() - target.stop_pulling() + cuffs.loc = victim + victim.handcuffed = cuffs + victim.update_handcuffed() + victim.drop_r_hand() + victim.drop_l_hand() + victim.stop_pulling() return 1 /obj/item/handcuffs/equipped(var/mob/living/user,var/slot) diff --git a/code/game/objects/items/weapons/id cards/cards.dm b/code/game/objects/items/weapons/id cards/cards.dm index 50347e55f6..c40c9d56cb 100644 --- a/code/game/objects/items/weapons/id cards/cards.dm +++ b/code/game/objects/items/weapons/id cards/cards.dm @@ -280,7 +280,7 @@ if(isrobot(loc?.loc)) R = loc.loc registered_name = R.braintype - RegisterSignal(src, COMSIG_OBSERVER_MOVED, PROC_REF(check_loc)) + RegisterSignal(src, COMSIG_MOVABLE_ATTEMPTED_MOVE, PROC_REF(check_loc)) /obj/item/card/id/cargo/miner/borg/proc/check_loc(atom/movable/mover, atom/old_loc, atom/new_loc) SIGNAL_HANDLER @@ -297,7 +297,7 @@ /obj/item/card/id/cargo/miner/borg/Destroy() if(R) - UnregisterSignal(src, COMSIG_OBSERVER_MOVED) + UnregisterSignal(src, COMSIG_MOVABLE_ATTEMPTED_MOVE) R = null last_robot_loc = null . = ..() diff --git a/code/game/objects/items/weapons/id cards/id_stacks.dm b/code/game/objects/items/weapons/id cards/id_stacks.dm index 34823cfd1b..b37342aae5 100644 --- a/code/game/objects/items/weapons/id cards/id_stacks.dm +++ b/code/game/objects/items/weapons/id cards/id_stacks.dm @@ -306,7 +306,7 @@ if(isrobot(loc?.loc)) R = loc.loc registered_name = R.braintype - RegisterSignal(src, COMSIG_OBSERVER_MOVED, PROC_REF(check_loc)) + RegisterSignal(src, COMSIG_MOVABLE_ATTEMPTED_MOVE, PROC_REF(check_loc)) /obj/item/card/id/exploration/borg/proc/check_loc(atom/movable/mover, atom/old_loc, atom/new_loc) SIGNAL_HANDLER @@ -323,7 +323,7 @@ /obj/item/card/id/exploration/borg/Destroy() if(R) - UnregisterSignal(src, COMSIG_OBSERVER_MOVED) + UnregisterSignal(src, COMSIG_MOVABLE_ATTEMPTED_MOVE) R = null last_robot_loc = null . = ..() diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm index 0bed0a9e5d..6a859d7ab6 100644 --- a/code/game/objects/items/weapons/storage/bags.dm +++ b/code/game/objects/items/weapons/storage/bags.dm @@ -209,11 +209,11 @@ /obj/item/storage/bag/ore/equipped(mob/user) ..() user.AddComponent(/datum/component/recursive_move) - RegisterSignal(user, COMSIG_OBSERVER_MOVED, /obj/item/storage/bag/ore/proc/autoload, user) + RegisterSignal(user, COMSIG_MOVABLE_MOVED, /obj/item/storage/bag/ore/proc/autoload, user) /obj/item/storage/bag/ore/dropped(mob/user) ..() - UnregisterSignal(user, COMSIG_OBSERVER_MOVED) + UnregisterSignal(user, COMSIG_MOVABLE_MOVED) /obj/item/storage/bag/ore/proc/autoload(mob/user) SIGNAL_HANDLER diff --git a/code/game/objects/items/weapons/tape.dm b/code/game/objects/items/weapons/tape.dm index af3c3a2891..3010dac351 100644 --- a/code/game/objects/items/weapons/tape.dm +++ b/code/game/objects/items/weapons/tape.dm @@ -94,7 +94,7 @@ var/obj/item/handcuffs/cable/tape/T = new(user) playsound(src, 'sound/effects/tape.ogg',25) - if(!T.place_handcuffs(H, user)) + if(!T.attempt_to_cuff(H, user)) user.unEquip(T) qdel(T) else diff --git a/code/modules/admin/modify_robot.dm b/code/modules/admin/modify_robot.dm index 1b330c8ee3..0f7d8c6d6e 100644 --- a/code/modules/admin/modify_robot.dm +++ b/code/modules/admin/modify_robot.dm @@ -228,7 +228,7 @@ target.module.modules.Add(add_item) target.module.contents.Add(add_item) spawn(0) - SEND_SIGNAL(add_item, COMSIG_OBSERVER_MOVED) + SEND_SIGNAL(add_item, COMSIG_MOVABLE_MOVED) target.hud_used?.update_robot_modules_display() if(istype(add_item, /obj/item/stack/)) var/obj/item/stack/item_with_synth = add_item diff --git a/code/modules/clothing/spacesuits/rig/modules/specific/pat_module_vr.dm b/code/modules/clothing/spacesuits/rig/modules/specific/pat_module_vr.dm index 5e89131092..7c29692490 100644 --- a/code/modules/clothing/spacesuits/rig/modules/specific/pat_module_vr.dm +++ b/code/modules/clothing/spacesuits/rig/modules/specific/pat_module_vr.dm @@ -39,7 +39,7 @@ var/mob/living/carbon/human/H = holder.wearer to_chat(H,span_notice("You activate the P.A.T. module.")) H.AddComponent(/datum/component/recursive_move) - RegisterSignal(H, COMSIG_OBSERVER_MOVED, /obj/item/rig_module/pat_module/proc/boop) + RegisterSignal(H, COMSIG_MOVABLE_MOVED, /obj/item/rig_module/pat_module/proc/boop) /obj/item/rig_module/pat_module/deactivate() if(!..()) @@ -47,7 +47,7 @@ var/mob/living/carbon/human/H = holder.wearer to_chat(H,span_notice("Your disable the P.A.T. module.")) - UnregisterSignal(H, COMSIG_OBSERVER_MOVED) + UnregisterSignal(H, COMSIG_MOVABLE_MOVED) /obj/item/rig_module/pat_module/proc/boop(var/mob/living/carbon/human/user,var/turf/To,var/turf/Tn) SIGNAL_HANDLER diff --git a/code/modules/food/food/drinks.dm b/code/modules/food/food/drinks.dm index a3f991b7a8..324f517cea 100644 --- a/code/modules/food/food/drinks.dm +++ b/code/modules/food/food/drinks.dm @@ -87,7 +87,7 @@ return ..() /obj/item/reagent_containers/food/drinks/proc/On_Consume(var/mob/living/eater, var/mob/feeder, var/changed = FALSE) - SEND_SIGNAL(src, COMSIG_CONTAINER_DRANK, eater, feeder) + SEND_SIGNAL(src, COMSIG_GLASS_DRANK, eater, feeder) if(!feeder) feeder = eater diff --git a/code/modules/holomap/station_holomap.dm b/code/modules/holomap/station_holomap.dm index 8d65eb69a9..fa5426db41 100644 --- a/code/modules/holomap/station_holomap.dm +++ b/code/modules/holomap/station_holomap.dm @@ -110,7 +110,7 @@ watching_mob = user watching_mob.AddComponent(/datum/component/recursive_move) - RegisterSignal(watching_mob, COMSIG_OBSERVER_MOVED, /obj/machinery/station_map/proc/checkPosition) + RegisterSignal(watching_mob, COMSIG_MOVABLE_MOVED, /obj/machinery/station_map/proc/checkPosition) //GLOB.dir_set_event.register(watching_mob, src, /obj/machinery/station_map/proc/checkPosition) RegisterSignal(watching_mob, COMSIG_OBSERVER_DESTROYED, /obj/machinery/station_map/proc/stopWatching) update_use_power(USE_POWER_ACTIVE) @@ -141,7 +141,7 @@ var/mob/M = watching_mob spawn(5) //we give it time to fade out M.client.images -= holomap_datum.station_map - UnregisterSignal(watching_mob, COMSIG_OBSERVER_MOVED) + UnregisterSignal(watching_mob, COMSIG_MOVABLE_MOVED) //GLOB.dir_set_event.unregister(watching_mob, src) UnregisterSignal(watching_mob, COMSIG_OBSERVER_DESTROYED) watching_mob = null diff --git a/code/modules/integrated_electronics/subtypes/output.dm b/code/modules/integrated_electronics/subtypes/output.dm index 03c2f977fd..a8cdfcb235 100644 --- a/code/modules/integrated_electronics/subtypes/output.dm +++ b/code/modules/integrated_electronics/subtypes/output.dm @@ -449,11 +449,11 @@ /obj/item/integrated_circuit/output/holographic_projector/Initialize(mapload) . = ..() AddComponent(/datum/component/recursive_move) - RegisterSignal(src, COMSIG_OBSERVER_MOVED, PROC_REF(on_moved)) + RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(on_moved)) /obj/item/integrated_circuit/output/holographic_projector/Destroy() destroy_hologram() - UnregisterSignal(src, COMSIG_OBSERVER_MOVED) + UnregisterSignal(src, COMSIG_MOVABLE_MOVED) return ..() /obj/item/integrated_circuit/output/holographic_projector/do_work() diff --git a/code/modules/mining/machine_silo.dm b/code/modules/mining/machine_silo.dm index 0ba1260b76..26dc8d4a70 100644 --- a/code/modules/mining/machine_silo.dm +++ b/code/modules/mining/machine_silo.dm @@ -23,7 +23,7 @@ MATCONTAINER_EXAMINE, \ container_signals = list( \ COMSIG_MATCONTAINER_ITEM_CONSUMED = TYPE_PROC_REF(/obj/machinery/ore_silo, on_item_consumed), \ - COMSIG_MATCONTAINER_SHEETS_RETRIEVED = TYPE_PROC_REF(/obj/machinery/ore_silo, log_sheets_ejected), \ + COMSIG_MATCONTAINER_STACK_RETRIEVED = TYPE_PROC_REF(/obj/machinery/ore_silo, log_sheets_ejected), \ ), \ allowed_items = /obj/item/stack \ ) diff --git a/code/modules/mob/living/bot/bot.dm b/code/modules/mob/living/bot/bot.dm index 3b53e9528f..a58f9769d3 100644 --- a/code/modules/mob/living/bot/bot.dm +++ b/code/modules/mob/living/bot/bot.dm @@ -95,7 +95,7 @@ . += span_info("You can use a crowbar to remove it.") */ /mob/living/bot/updatehealth() - if(SEND_SIGNAL(src, COMSIG_UPDATE_HEALTH) & COMSIG_UPDATE_HEALTH_GOD_MODE) + if(SEND_SIGNAL(src, COMSIG_LIVING_HEALTH_UPDATE) & COMSIG_LIVING_HEALTH_UPDATE_GOD_MODE) health = getMaxHealth() set_stat(CONSCIOUS) else diff --git a/code/modules/mob/living/bot/secbot.dm b/code/modules/mob/living/bot/secbot.dm index ce1c270582..bd3ab7afd2 100644 --- a/code/modules/mob/living/bot/secbot.dm +++ b/code/modules/mob/living/bot/secbot.dm @@ -214,19 +214,19 @@ playsound(src, pick(preparing_arrest_sounds), 50) // Register to be told when the target moves target.AddComponent(/datum/component/recursive_move) - RegisterSignal(target, COMSIG_OBSERVER_MOVED, /mob/living/bot/secbot/proc/target_moved) + RegisterSignal(target, COMSIG_MOVABLE_MOVED, /mob/living/bot/secbot/proc/target_moved) // Callback invoked if the registered target moves /mob/living/bot/secbot/proc/target_moved(atom/movable/moving_instance, atom/old_loc, atom/new_loc) SIGNAL_HANDLER if(get_dist(get_turf(src), get_turf(target)) >= 1) awaiting_surrender = INFINITY // Done waiting! - UnregisterSignal(moving_instance, COMSIG_OBSERVER_MOVED) + UnregisterSignal(moving_instance, COMSIG_MOVABLE_MOVED) /mob/living/bot/secbot/resetTarget() ..() if(target) - UnregisterSignal(target, COMSIG_OBSERVER_MOVED) + UnregisterSignal(target, COMSIG_MOVABLE_MOVED) awaiting_surrender = 0 attacked = FALSE walk_to(src, 0) diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index 58b9f10d84..6a67a026ca 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -2,7 +2,7 @@ /mob/living/carbon/human/updatehealth() var/huskmodifier = 2.5 // With 1.5, you need 250 burn instead of 200 to husk a human. - if(SEND_SIGNAL(src, COMSIG_UPDATE_HEALTH) & COMSIG_UPDATE_HEALTH_GOD_MODE) + if(SEND_SIGNAL(src, COMSIG_LIVING_HEALTH_UPDATE) & COMSIG_LIVING_HEALTH_UPDATE_GOD_MODE) health = getMaxHealth() set_stat(CONSCIOUS) return diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index 5b52ab4d89..b979d3750e 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -254,7 +254,7 @@ /mob/living/proc/handle_hud_icons_health() SHOULD_CALL_PARENT(TRUE) - if(SEND_SIGNAL(src,COMSIG_LIVING_HANDLE_HUD_HEALTH_ICON) & COMSIG_COMPONENT_HANDLED_HEALTH_ICON) + if(SEND_SIGNAL(src,COMSIG_MOB_HANDLE_HUD_HEALTH_ICON) & COMSIG_COMPONENT_HANDLED_HEALTH_ICON) return FALSE return TRUE @@ -276,7 +276,7 @@ return FALSE /mob/living/proc/handle_darksight() - SEND_SIGNAL(src,COMSIG_LIVING_HANDLE_HUD_DARKSIGHT) + SEND_SIGNAL(src,COMSIG_MOB_HANDLE_HUD_DARKSIGHT) if(!seedarkness) //Cheap 'always darksight' var dsoverlay.alpha = 255 return diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 9550049a65..8ee97b930d 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -173,7 +173,7 @@ manual_afk = TRUE /mob/living/proc/updatehealth() - if(SEND_SIGNAL(src, COMSIG_UPDATE_HEALTH) & COMSIG_UPDATE_HEALTH_GOD_MODE) + if(SEND_SIGNAL(src, COMSIG_LIVING_HEALTH_UPDATE) & COMSIG_LIVING_HEALTH_UPDATE_GOD_MODE) health = getMaxHealth() set_stat(CONSCIOUS) else diff --git a/code/modules/mob/living/silicon/ai/life.dm b/code/modules/mob/living/silicon/ai/life.dm index beadb686e5..fd3a7daa28 100644 --- a/code/modules/mob/living/silicon/ai/life.dm +++ b/code/modules/mob/living/silicon/ai/life.dm @@ -168,7 +168,7 @@ return ((!A.power_equip) && A.requires_power == 1 || istype(T, /turf/space)) && !istype(src.loc,/obj/item) /mob/living/silicon/ai/updatehealth() - if(SEND_SIGNAL(src, COMSIG_UPDATE_HEALTH) & COMSIG_UPDATE_HEALTH_GOD_MODE) + if(SEND_SIGNAL(src, COMSIG_LIVING_HEALTH_UPDATE) & COMSIG_LIVING_HEALTH_UPDATE_GOD_MODE) health = getMaxHealth() set_stat(CONSCIOUS) setOxyLoss(0) diff --git a/code/modules/mob/living/silicon/decoy/life.dm b/code/modules/mob/living/silicon/decoy/life.dm index a61eea9c3b..82e92d7b6c 100644 --- a/code/modules/mob/living/silicon/decoy/life.dm +++ b/code/modules/mob/living/silicon/decoy/life.dm @@ -8,7 +8,7 @@ /mob/living/silicon/decoy/updatehealth() - if(SEND_SIGNAL(src, COMSIG_UPDATE_HEALTH) & COMSIG_UPDATE_HEALTH_GOD_MODE) + if(SEND_SIGNAL(src, COMSIG_LIVING_HEALTH_UPDATE) & COMSIG_LIVING_HEALTH_UPDATE_GOD_MODE) health = getMaxHealth() set_stat(CONSCIOUS) else diff --git a/code/modules/mob/living/silicon/pai/life.dm b/code/modules/mob/living/silicon/pai/life.dm index c396eb8ea6..b2893fe172 100644 --- a/code/modules/mob/living/silicon/pai/life.dm +++ b/code/modules/mob/living/silicon/pai/life.dm @@ -44,7 +44,7 @@ adjustFireLoss(-0.5) /mob/living/silicon/pai/updatehealth() - if(SEND_SIGNAL(src, COMSIG_UPDATE_HEALTH) & COMSIG_UPDATE_HEALTH_GOD_MODE) + if(SEND_SIGNAL(src, COMSIG_LIVING_HEALTH_UPDATE) & COMSIG_LIVING_HEALTH_UPDATE_GOD_MODE) health = getMaxHealth() set_stat(CONSCIOUS) else diff --git a/code/modules/mob/living/silicon/robot/dogborg/dog_modules.dm b/code/modules/mob/living/silicon/robot/dogborg/dog_modules.dm index 9746578925..d28b004e2e 100644 --- a/code/modules/mob/living/silicon/robot/dogborg/dog_modules.dm +++ b/code/modules/mob/living/silicon/robot/dogborg/dog_modules.dm @@ -402,7 +402,7 @@ /obj/item/reagent_containers/glass/beaker/large/borg/Initialize(mapload) . = ..() R = loc.loc - RegisterSignal(src, COMSIG_OBSERVER_MOVED, PROC_REF(check_loc)) + RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(check_loc)) /obj/item/reagent_containers/glass/beaker/large/borg/proc/check_loc(atom/movable/mover, atom/old_loc, atom/new_loc) SIGNAL_HANDLER @@ -418,7 +418,7 @@ hud_layerise() /obj/item/reagent_containers/glass/beaker/large/borg/Destroy() - UnregisterSignal(src, COMSIG_OBSERVER_MOVED) + UnregisterSignal(src, COMSIG_MOVABLE_MOVED) R = null last_robot_loc = null . = ..() diff --git a/code/modules/mob/living/silicon/robot/robot_damage.dm b/code/modules/mob/living/silicon/robot/robot_damage.dm index dd229f478e..688db29b99 100644 --- a/code/modules/mob/living/silicon/robot/robot_damage.dm +++ b/code/modules/mob/living/silicon/robot/robot_damage.dm @@ -1,5 +1,5 @@ /mob/living/silicon/robot/updatehealth() - if(SEND_SIGNAL(src, COMSIG_UPDATE_HEALTH) & COMSIG_UPDATE_HEALTH_GOD_MODE) + if(SEND_SIGNAL(src, COMSIG_LIVING_HEALTH_UPDATE) & COMSIG_LIVING_HEALTH_UPDATE_GOD_MODE) health = getMaxHealth() set_stat(CONSCIOUS) return diff --git a/code/modules/mob/living/silicon/robot/robot_simple_items.dm b/code/modules/mob/living/silicon/robot/robot_simple_items.dm index aacd21bf42..e2255113f4 100644 --- a/code/modules/mob/living/silicon/robot/robot_simple_items.dm +++ b/code/modules/mob/living/silicon/robot/robot_simple_items.dm @@ -1123,7 +1123,7 @@ /obj/item/reagent_containers/glass/bucket/cyborg/Initialize(mapload) . = ..() R = loc.loc - RegisterSignal(src, COMSIG_OBSERVER_MOVED, PROC_REF(check_loc)) + RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(check_loc)) /obj/item/reagent_containers/glass/bucket/cyborg/proc/check_loc(atom/movable/mover, atom/old_loc, atom/new_loc) if(old_loc == R || old_loc == R.module) @@ -1138,7 +1138,7 @@ hud_layerise() /obj/item/reagent_containers/glass/bucket/cyborg/Destroy() - UnregisterSignal(src, COMSIG_OBSERVER_MOVED) + UnregisterSignal(src, COMSIG_MOVABLE_MOVED) R = null last_robot_loc = null ..() diff --git a/code/modules/mob/living/simple_mob/life.dm b/code/modules/mob/living/simple_mob/life.dm index cd5a070de0..a2542243d2 100644 --- a/code/modules/mob/living/simple_mob/life.dm +++ b/code/modules/mob/living/simple_mob/life.dm @@ -22,7 +22,7 @@ //Should we be dead? /mob/living/simple_mob/updatehealth() - if(SEND_SIGNAL(src, COMSIG_UPDATE_HEALTH) & COMSIG_UPDATE_HEALTH_GOD_MODE) + if(SEND_SIGNAL(src, COMSIG_LIVING_HEALTH_UPDATE) & COMSIG_LIVING_HEALTH_UPDATE_GOD_MODE) health = getMaxHealth() set_stat(CONSCIOUS) return diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 497307c418..734de108ca 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -21,9 +21,23 @@ var/datum/mind/mind - var/stat = 0 //Whether a mob is alive or dead. TODO: Move this to living - Nodrak + var/stat = CONSCIOUS //Whether a mob is alive or dead. var/next_move = null // world.time when mob is next allowed to self-move. + /** + * Whether and how a mob is incapacitated + * + * Normally being restrained, agressively grabbed, or in stasis counts as incapacitated + * unless there is a flag being used to check if it's ignored + * + * * bitflags: (see code/__DEFINES/status_effects.dm) + * * INCAPABLE_RESTRAINTS - if our mob is in a restraint (handcuffs) + * * INCAPABLE_STASIS - if our mob is in stasis (stasis bed, etc.) + * * INCAPABLE_GRAB - if our mob is being agressively grabbed + * + **/ + VAR_FINAL/incapacitated = NONE + //Not in use yet var/obj/effect/organstructure/organStructure = null diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 572b6586a7..dca2880b2e 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -714,14 +714,14 @@ var/list/global/organ_rel_size = list( SHOULD_CALL_PARENT(TRUE) if(!client) return FALSE - if(SEND_SIGNAL(src,COMSIG_LIVING_HANDLE_HUD) & COMSIG_COMPONENT_HANDLED_HUD) + if(SEND_SIGNAL(src,COMSIG_MOB_HANDLE_HUD) & COMSIG_COMPONENT_HANDLED_HUD) return FALSE return TRUE /// Handle eye things like the Byond SEE_TURFS, SEE_OBJS, etc. /mob/proc/handle_vision() SHOULD_CALL_PARENT(TRUE) - SEND_SIGNAL(src,COMSIG_LIVING_HANDLE_VISION) + SEND_SIGNAL(src,COMSIG_MOB_HANDLE_VISION) //Icon is used to occlude things like huds from the faulty byond context menu. // http://www.byond.com/forum/?post=2336679 diff --git a/code/modules/nifsoft/software/13_soulcatcher.dm b/code/modules/nifsoft/software/13_soulcatcher.dm index 28030d3334..4308e704d3 100644 --- a/code/modules/nifsoft/software/13_soulcatcher.dm +++ b/code/modules/nifsoft/software/13_soulcatcher.dm @@ -445,7 +445,7 @@ forceMove(get_turf(parent_human)) parent_human.AddComponent(/datum/component/recursive_move) - RegisterSignal(parent_human, COMSIG_OBSERVER_MOVED, /mob/observer/eye/ar_soul/proc/human_moved) + RegisterSignal(parent_human, COMSIG_MOVABLE_MOVED, /mob/observer/eye/ar_soul/proc/human_moved) //Time to play dressup if(brainmob.client.prefs) @@ -459,7 +459,7 @@ /mob/observer/eye/ar_soul/Destroy() if(parent_human) //It's POSSIBLE they've been deleted before the NIF somehow - UnregisterSignal(parent_human, COMSIG_OBSERVER_MOVED) + UnregisterSignal(parent_human, COMSIG_MOVABLE_MOVED) parent_human = null return ..() diff --git a/code/modules/paperwork/paper_sticky.dm b/code/modules/paperwork/paper_sticky.dm index 3e4c835060..f51c01d118 100644 --- a/code/modules/paperwork/paper_sticky.dm +++ b/code/modules/paperwork/paper_sticky.dm @@ -98,7 +98,7 @@ /obj/item/paper/sticky/Initialize(mapload) . = ..() AddComponent(/datum/component/recursive_move) - RegisterSignal(src, COMSIG_OBSERVER_MOVED, /obj/item/paper/sticky/proc/reset_persistence_tracking) + RegisterSignal(src, COMSIG_MOVABLE_MOVED, /obj/item/paper/sticky/proc/reset_persistence_tracking) /obj/item/paper/sticky/proc/reset_persistence_tracking() SIGNAL_HANDLER @@ -108,7 +108,7 @@ /obj/item/paper/sticky/Destroy() reset_persistence_tracking() - UnregisterSignal(src, COMSIG_OBSERVER_MOVED) + UnregisterSignal(src, COMSIG_MOVABLE_MOVED) . = ..() /obj/item/paper/sticky/update_icon() diff --git a/code/modules/point/point.dm b/code/modules/point/point.dm index 02c9295a9f..759499ec41 100644 --- a/code/modules/point/point.dm +++ b/code/modules/point/point.dm @@ -85,6 +85,6 @@ point_at(pointing_at) - SEND_SIGNAL(src, COMSIG_MOB_POINTED, pointing_at) + SEND_SIGNAL(src, COMSIG_MOVABLE_POINTED, pointing_at) face_atom(pointing_at) return TRUE diff --git a/code/modules/reagents/reagent_containers/_reagent_containers.dm b/code/modules/reagents/reagent_containers/_reagent_containers.dm index 59d83c94eb..df217d4d59 100644 --- a/code/modules/reagents/reagent_containers/_reagent_containers.dm +++ b/code/modules/reagents/reagent_containers/_reagent_containers.dm @@ -118,7 +118,7 @@ return FALSE user.setClickCooldown(user.get_attack_speed(src)) //puts a limit on how fast people can eat/drink things - SEND_SIGNAL(src, COMSIG_CONTAINER_DRANK, target, user) + SEND_SIGNAL(src, COMSIG_GLASS_DRANK, target, user) if(user == target) self_feed_message(user) reagents.trans_to_mob(user, issmall(user) ? CEILING(amount_per_transfer_from_this/2, 1) : amount_per_transfer_from_this, CHEM_INGEST) diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index ae47b875c2..ce37c256f3 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -231,10 +231,10 @@ . = ..() AddComponent(/datum/component/recursive_move) AddComponent(/datum/component/hose_connector/input) - RegisterSignal(src, COMSIG_OBSERVER_MOVED, /obj/item/reagent_containers/spray/chemsprayer/hosed/proc/update_hose) + RegisterSignal(src, COMSIG_MOVABLE_MOVED, /obj/item/reagent_containers/spray/chemsprayer/hosed/proc/update_hose) /obj/item/reagent_containers/spray/chemsprayer/hosed/Destroy() - UnregisterSignal(src, COMSIG_OBSERVER_MOVED) + UnregisterSignal(src, COMSIG_MOVABLE_MOVED) . = ..() /obj/item/reagent_containers/spray/chemsprayer/hosed/proc/update_hose(atom/source, atom/oldloc, direction, forced, list/old_locs, momentum_change) diff --git a/code/modules/reagents/reagents/_reagents.dm b/code/modules/reagents/reagents/_reagents.dm index fd8a6f6822..cc29f092b8 100644 --- a/code/modules/reagents/reagents/_reagents.dm +++ b/code/modules/reagents/reagents/_reagents.dm @@ -55,15 +55,15 @@ // This doesn't apply to skin contact - this is for, e.g. extinguishers and sprays. The difference is that reagent is not directly on the mob's skin - it might just be on their clothing. /datum/reagent/proc/touch_mob(var/mob/M, var/amount) - SEND_SIGNAL(M, COMSIG_REAGENTS_TOUCH, src, amount) + SEND_SIGNAL(M, COMSIG_REAGENT_EXPOSE_MOB, src, amount) return /datum/reagent/proc/touch_obj(var/obj/O, var/amount) // Acid melting, cleaner cleaning, etc - SEND_SIGNAL(O, COMSIG_REAGENTS_TOUCH, src, amount) + SEND_SIGNAL(O, COMSIG_REAGENT_EXPOSE_OBJ, src, amount) return /datum/reagent/proc/touch_turf(var/turf/T, var/amount) // Cleaner cleaning, lube lubbing, etc, all go here - SEND_SIGNAL(T, COMSIG_REAGENTS_TOUCH, src, amount) + SEND_SIGNAL(T, COMSIG_REAGENT_EXPOSE_TURF, src, amount) return /datum/reagent/proc/on_mob_life(var/mob/living/carbon/M, var/alien, var/datum/reagents/metabolism/location) // Currently, on_mob_life is called on carbons. Any interaction with non-carbon mobs (lube) will need to be done in touch_mob. diff --git a/code/modules/shieldgen/directional_shield.dm b/code/modules/shieldgen/directional_shield.dm index eb7c91bde2..eb29d1e830 100644 --- a/code/modules/shieldgen/directional_shield.dm +++ b/code/modules/shieldgen/directional_shield.dm @@ -101,7 +101,7 @@ /obj/item/shield_projector/Initialize(mapload) START_PROCESSING(SSobj, src) AddComponent(/datum/component/recursive_move) - RegisterSignal(src, COMSIG_OBSERVER_MOVED, PROC_REF(moved_event)) + RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(moved_event)) if(always_on) spawn(0) if(!QDELETED(src)) @@ -111,7 +111,7 @@ /obj/item/shield_projector/Destroy() destroy_shields() STOP_PROCESSING(SSobj, src) - UnregisterSignal(src, COMSIG_OBSERVER_MOVED) + UnregisterSignal(src, COMSIG_MOVABLE_MOVED) return ..() /obj/item/shield_projector/proc/moved_event() diff --git a/code/modules/tgui/modules/appearance_changer.dm b/code/modules/tgui/modules/appearance_changer.dm index 4b5ca83a3a..5345d32790 100644 --- a/code/modules/tgui/modules/appearance_changer.dm +++ b/code/modules/tgui/modules/appearance_changer.dm @@ -95,7 +95,7 @@ . = ..() if(owner == user || !customize_usr) close_ui() - UnregisterSignal(owner, COMSIG_OBSERVER_MOVED) + UnregisterSignal(owner, COMSIG_MOVABLE_MOVED) SEND_SIGNAL(owner, COMSIG_HUMAN_DNA_FINALIZED) // Update any components using our saved appearance owner = null last_camera_turf = null @@ -672,7 +672,7 @@ return if(!ui) owner.AddComponent(/datum/component/recursive_move) - RegisterSignal(owner, COMSIG_OBSERVER_MOVED, PROC_REF(update_active_camera_screen), TRUE) + RegisterSignal(owner, COMSIG_MOVABLE_MOVED, PROC_REF(update_active_camera_screen), TRUE) // Register map objects user.client.register_map_obj(cam_screen) for(var/plane in cam_plane_masters) @@ -1139,7 +1139,7 @@ /datum/tgui_module/appearance_changer/body_designer/proc/make_fake_owner() // checks for monkey to tell if on the menu if(owner) - UnregisterSignal(owner, COMSIG_OBSERVER_MOVED) + UnregisterSignal(owner, COMSIG_MOVABLE_MOVED) QDEL_NULL(owner) owner = new(src) owner.set_species(SPECIES_LLEILL) @@ -1147,11 +1147,11 @@ owner.invisibility = INVISIBILITY_ABSTRACT // Add listeners back owner.AddComponent(/datum/component/recursive_move) - RegisterSignal(owner, COMSIG_OBSERVER_MOVED, PROC_REF(update_active_camera_screen), TRUE) + RegisterSignal(owner, COMSIG_MOVABLE_MOVED, PROC_REF(update_active_camera_screen), TRUE) /datum/tgui_module/appearance_changer/body_designer/proc/load_record_to_body(var/datum/transhuman/body_record/current_project) if(owner) - UnregisterSignal(owner, COMSIG_OBSERVER_MOVED) + UnregisterSignal(owner, COMSIG_MOVABLE_MOVED) QDEL_NULL(owner) owner = current_project.produce_human_mob(src,FALSE,FALSE,"Designer [rand(999)]") // Update some specifics from the current record @@ -1165,7 +1165,7 @@ owner.custom_species = current_project.speciesname // Add listeners back owner.AddComponent(/datum/component/recursive_move) - RegisterSignal(owner, COMSIG_OBSERVER_MOVED, PROC_REF(update_active_camera_screen), TRUE) + RegisterSignal(owner, COMSIG_MOVABLE_MOVED, PROC_REF(update_active_camera_screen), TRUE) /datum/tgui_module/appearance_changer/self_deleting /datum/tgui_module/appearance_changer/self_deleting/tgui_close(mob/user) diff --git a/code/modules/tgui/modules/camera.dm b/code/modules/tgui/modules/camera.dm index f40fbc3eef..e1e6ed9572 100644 --- a/code/modules/tgui/modules/camera.dm +++ b/code/modules/tgui/modules/camera.dm @@ -95,7 +95,7 @@ /datum/tgui_module/camera/Destroy() if(active_camera) - UnregisterSignal(active_camera, COMSIG_OBSERVER_MOVED) + UnregisterSignal(active_camera, COMSIG_MOVABLE_MOVED) active_camera = null last_camera_turf = null QDEL_NULL(cam_screen_tg) @@ -164,11 +164,11 @@ var/list/cameras = get_available_cameras(ui.user) var/obj/machinery/camera/C = cameras["[ckey(c_tag)]"] if(active_camera) - UnregisterSignal(active_camera, COMSIG_OBSERVER_MOVED) + UnregisterSignal(active_camera, COMSIG_MOVABLE_MOVED) if(C) active_camera = C active_camera.AddComponent(/datum/component/recursive_move) - RegisterSignal(active_camera, COMSIG_OBSERVER_MOVED, PROC_REF(update_active_camera_screen)) + RegisterSignal(active_camera, COMSIG_MOVABLE_MOVED, PROC_REF(update_active_camera_screen)) playsound(tgui_host(), get_sfx("terminal_type"), 25, FALSE) update_active_camera_screen() return TRUE @@ -193,10 +193,10 @@ if(target) if(active_camera) - UnregisterSignal(active_camera, COMSIG_OBSERVER_MOVED) + UnregisterSignal(active_camera, COMSIG_MOVABLE_MOVED) active_camera = target active_camera.AddComponent(/datum/component/recursive_move) - RegisterSignal(active_camera, COMSIG_OBSERVER_MOVED, PROC_REF(update_active_camera_screen)) + RegisterSignal(active_camera, COMSIG_MOVABLE_MOVED, PROC_REF(update_active_camera_screen)) playsound(tgui_host(), get_sfx("terminal_type"), 25, FALSE) update_active_camera_screen() . = TRUE @@ -290,7 +290,7 @@ // Turn off the console if(length(concurrent_users) == 0 && is_living) if(active_camera) - UnregisterSignal(active_camera, COMSIG_OBSERVER_MOVED) + UnregisterSignal(active_camera, COMSIG_MOVABLE_MOVED) active_camera = null last_camera_turf = null playsound(tgui_host(), 'sound/machines/terminal_off.ogg', 25, FALSE) diff --git a/code/modules/xenoarcheaology/effect_master.dm b/code/modules/xenoarcheaology/effect_master.dm index abcff8f4d0..7b8a381350 100644 --- a/code/modules/xenoarcheaology/effect_master.dm +++ b/code/modules/xenoarcheaology/effect_master.dm @@ -96,7 +96,7 @@ var/list/toxic_reagents = list(TOXIN_PATH) /datum/component/artifact_master/proc/DoRegistry() //Melee Hit - RegisterSignal(holder, COMSIG_PARENT_ATTACKBY, /datum/component/artifact_master/proc/on_attackby, override = FALSE) + RegisterSignal(holder, COMSIG_ATOM_ATTACKBY, /datum/component/artifact_master/proc/on_attackby, override = FALSE) //Explosions RegisterSignal(holder, COMSIG_ATOM_EX_ACT, /datum/component/artifact_master/proc/on_exact, override = FALSE) //Bullets @@ -113,21 +113,21 @@ var/list/toxic_reagents = list(TOXIN_PATH) RegisterSignal(holder, COMSIG_MOVABLE_MOVED, /datum/component/artifact_master/proc/on_moved, override = FALSE) //Splashed with a reagent. - RegisterSignal(holder, COMSIG_REAGENTS_TOUCH, /datum/component/artifact_master/proc/on_reagent, override = FALSE) + RegisterSignal(holder, COMSIG_REAGENT_EXPOSE_OBJ, /datum/component/artifact_master/proc/on_reagent, override = FALSE) /* * */ /datum/component/artifact_master/proc/do_unregister() - UnregisterSignal(holder, COMSIG_PARENT_ATTACKBY) + UnregisterSignal(holder, COMSIG_ATOM_ATTACKBY) UnregisterSignal(holder, COMSIG_ATOM_EX_ACT) UnregisterSignal(holder, COMSIG_ATOM_BULLET_ACT) UnregisterSignal(holder, COMSIG_ATOM_ATTACK_HAND) UnregisterSignal(holder, COMSIG_MOVABLE_BUMP) UnregisterSignal(holder, COMSIG_ATOM_BUMPED) UnregisterSignal(holder, COMSIG_MOVABLE_MOVED) - UnregisterSignal(holder, COMSIG_REAGENTS_TOUCH) + UnregisterSignal(holder, COMSIG_REAGENT_EXPOSE_OBJ) /datum/component/artifact_master/proc/get_active_effects() var/list/active_effects = list() diff --git a/vorestation.dme b/vorestation.dme index 0e7b211845..95ddad7ce9 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -216,21 +216,127 @@ #include "code\__defines\ZAS.dm" #include "code\__defines\dcs\declarations.dm" #include "code\__defines\dcs\helpers.dm" -#include "code\__defines\dcs\signals.dm" +#include "code\__defines\dcs\signals\mapping.dm" +#include "code\__defines\dcs\signals\signals_action.dm" +#include "code\__defines\dcs\signals\signals_admin.dm" +#include "code\__defines\dcs\signals\signals_adventure.dm" +#include "code\__defines\dcs\signals\signals_ai_controller.dm" +#include "code\__defines\dcs\signals\signals_arcade.dm" +#include "code\__defines\dcs\signals\signals_area.dm" +#include "code\__defines\dcs\signals\signals_assembly.dm" +#include "code\__defines\dcs\signals\signals_backpack.dm" +#include "code\__defines\dcs\signals\signals_beam.dm" +#include "code\__defines\dcs\signals\signals_bitrunning.dm" +#include "code\__defines\dcs\signals\signals_blob.dm" +#include "code\__defines\dcs\signals\signals_bot.dm" +#include "code\__defines\dcs\signals\signals_camera.dm" +#include "code\__defines\dcs\signals\signals_changeling.dm" +#include "code\__defines\dcs\signals\signals_circuit.dm" #include "code\__defines\dcs\signals\signals_client.dm" +#include "code\__defines\dcs\signals\signals_cliff.dm" +#include "code\__defines\dcs\signals\signals_cloner.dm" +#include "code\__defines\dcs\signals\signals_closet.dm" +#include "code\__defines\dcs\signals\signals_clothing.dm" +#include "code\__defines\dcs\signals\signals_component.dm" +#include "code\__defines\dcs\signals\signals_container.dm" +#include "code\__defines\dcs\signals\signals_customizable.dm" +#include "code\__defines\dcs\signals\signals_cytology.dm" #include "code\__defines\dcs\signals\signals_datum.dm" +#include "code\__defines\dcs\signals\signals_disposals.dm" +#include "code\__defines\dcs\signals\signals_door.dm" +#include "code\__defines\dcs\signals\signals_event.dm" +#include "code\__defines\dcs\signals\signals_exports.dm" +#include "code\__defines\dcs\signals\signals_fish.dm" +#include "code\__defines\dcs\signals\signals_food.dm" +#include "code\__defines\dcs\signals\signals_gargoyle.dm" +#include "code\__defines\dcs\signals\signals_gib.dm" +#include "code\__defines\dcs\signals\signals_global.dm" +#include "code\__defines\dcs\signals\signals_global_object.dm" +#include "code\__defines\dcs\signals\signals_greyscale.dm" +#include "code\__defines\dcs\signals\signals_heretic.dm" +#include "code\__defines\dcs\signals\signals_hose.dm" +#include "code\__defines\dcs\signals\signals_hud.dm" +#include "code\__defines\dcs\signals\signals_hydroponic.dm" +#include "code\__defines\dcs\signals\signals_instrument.dm" +#include "code\__defines\dcs\signals\signals_janitor.dm" +#include "code\__defines\dcs\signals\signals_key.dm" +#include "code\__defines\dcs\signals\signals_ladder.dm" +#include "code\__defines\dcs\signals\signals_lattice.dm" +#include "code\__defines\dcs\signals\signals_lazy_templates.dm" +#include "code\__defines\dcs\signals\signals_leash.dm" +#include "code\__defines\dcs\signals\signals_lift.dm" +#include "code\__defines\dcs\signals\signals_light_eater.dm" +#include "code\__defines\dcs\signals\signals_lootpiles.dm" +#include "code\__defines\dcs\signals\signals_market.dm" #include "code\__defines\dcs\signals\signals_material_container.dm" +#include "code\__defines\dcs\signals\signals_medical.dm" +#include "code\__defines\dcs\signals\signals_mind.dm" +#include "code\__defines\dcs\signals\signals_mining.dm" +#include "code\__defines\dcs\signals\signals_mod.dm" +#include "code\__defines\dcs\signals\signals_modular_computer.dm" +#include "code\__defines\dcs\signals\signals_motiontracker.dm" +#include "code\__defines\dcs\signals\signals_moveloop.dm" +#include "code\__defines\dcs\signals\signals_movetype.dm" #include "code\__defines\dcs\signals\signals_music.dm" #include "code\__defines\dcs\signals\signals_object.dm" +#include "code\__defines\dcs\signals\signals_operating_computer.dm" +#include "code\__defines\dcs\signals\signals_operatives.dm" +#include "code\__defines\dcs\signals\signals_painting.dm" +#include "code\__defines\dcs\signals\signals_plane_master_group.dm" +#include "code\__defines\dcs\signals\signals_powernet.dm" +#include "code\__defines\dcs\signals\signals_proxmonitor.dm" +#include "code\__defines\dcs\signals\signals_radiation.dm" +#include "code\__defines\dcs\signals\signals_reagent.dm" +#include "code\__defines\dcs\signals\signals_remote_view.dm" +#include "code\__defines\dcs\signals\signals_restaurant.dm" +#include "code\__defines\dcs\signals\signals_scangate.dm" +#include "code\__defines\dcs\signals\signals_screentips.dm" +#include "code\__defines\dcs\signals\signals_shuttle.dm" +#include "code\__defines\dcs\signals\signals_spatial_grid.dm" +#include "code\__defines\dcs\signals\signals_species.dm" +#include "code\__defines\dcs\signals\signals_spell.dm" +#include "code\__defines\dcs\signals\signals_stairs.dm" +#include "code\__defines\dcs\signals\signals_status_effect.dm" +#include "code\__defines\dcs\signals\signals_storage.dm" #include "code\__defines\dcs\signals\signals_subsystem.dm" +#include "code\__defines\dcs\signals\signals_surgery.dm" +#include "code\__defines\dcs\signals\signals_swab.dm" #include "code\__defines\dcs\signals\signals_techweb.dm" #include "code\__defines\dcs\signals\signals_tgui.dm" +#include "code\__defines\dcs\signals\signals_tools.dm" +#include "code\__defines\dcs\signals\signals_traitor.dm" +#include "code\__defines\dcs\signals\signals_transform.dm" +#include "code\__defines\dcs\signals\signals_transport.dm" #include "code\__defines\dcs\signals\signals_trasheating.dm" #include "code\__defines\dcs\signals\signals_turf.dm" +#include "code\__defines\dcs\signals\signals_twohand.dm" +#include "code\__defines\dcs\signals\signals_unittest.dm" +#include "code\__defines\dcs\signals\signals_vehicle.dm" +#include "code\__defines\dcs\signals\signals_vore.dm" +#include "code\__defines\dcs\signals\signals_wash.dm" +#include "code\__defines\dcs\signals\signals_wizard.dm" +#include "code\__defines\dcs\signals\uplink.dm" +#include "code\__defines\dcs\signals\signals_atom\signals_atom_attack.dm" +#include "code\__defines\dcs\signals\signals_atom\signals_atom_explosion.dm" +#include "code\__defines\dcs\signals\signals_atom\signals_atom_lighting.dm" #include "code\__defines\dcs\signals\signals_atom\signals_atom_main.dm" #include "code\__defines\dcs\signals\signals_atom\signals_atom_mouse.dm" #include "code\__defines\dcs\signals\signals_atom\signals_atom_movable.dm" +#include "code\__defines\dcs\signals\signals_atom\signals_atom_movement.dm" +#include "code\__defines\dcs\signals\signals_atom\signals_atom_x_act.dm" +#include "code\__defines\dcs\signals\signals_mob\signals_mob_ai.dm" +#include "code\__defines\dcs\signals\signals_mob\signals_mob_arcade.dm" +#include "code\__defines\dcs\signals\signals_mob\signals_mob_basic.dm" +#include "code\__defines\dcs\signals\signals_mob\signals_mob_carbon.dm" +#include "code\__defines\dcs\signals\signals_mob\signals_mob_guardian.dm" +#include "code\__defines\dcs\signals\signals_mob\signals_mob_living.dm" #include "code\__defines\dcs\signals\signals_mob\signals_mob_main.dm" +#include "code\__defines\dcs\signals\signals_mob\signals_mob_megafauna.dm" +#include "code\__defines\dcs\signals\signals_mob\signals_mob_shadekin.dm" +#include "code\__defines\dcs\signals\signals_mob\signals_mob_silicon.dm" +#include "code\__defines\dcs\signals\signals_mob\signals_mob_simple.dm" +#include "code\__defines\dcs\signals\signals_mob\signals_mob_spawner.dm" +#include "code\__defines\dcs\signals\signals_mob\signals_mob_xenochimera.dm" #include "code\__defines\research\research_categories.dm" #include "code\__defines\research\techweb_nodes.dm" #include "code\__defines\traits\_traits.dm"