/** * Signals for /atom and subtypes that have too few related signals to put in separate files. * Doc format: `/// when the signal is called: (signal arguments)`. * All signals send the source datum of the signal as the first argument */ // /atom ///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 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/examine(): (examining_user, examine_list) #define COMSIG_PARENT_EXAMINE "atom_examine" ///from base of atom/examine_more(): (examining_user, examine_list) #define COMSIG_PARENT_EXAMINE_MORE "atom_examine_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 ///Sent after [atom/update_icon_state] is called by [/atom/update_icon]: () #define COMSIG_ATOM_UPDATE_ICON_STATE "atom_update_icon_state" ///Sent after [atom/update_overlays] is called by [/atom/update_icon]: (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" ///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/ex_act(): (severity, target) #define COMSIG_ATOM_EX_ACT "atom_ex_act" ///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/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/singularity_pull(): (S, current_size) #define COMSIG_ATOM_SING_PULL "atom_sing_pull" ///from base of atom/set_light(): (l_range, l_power, l_color) #define COMSIG_ATOM_SET_LIGHT "atom_set_light" ///from base of atom/setDir(): (old_dir, new_dir) #define COMSIG_ATOM_DIR_CHANGE "atom_dir_change" ///from base of atom/has_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) ///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" /// called on an atom who has stopped orbiting another atom (atom/orbiter, atom/formerly_orbited) #define COMSIG_ATOM_ORBITER_STOP "atom_orbiter_stop" ///from base of atom/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) #define COMSIG_ATOM_HITBY "atom_hitby" /// Called when an atom is sharpened or dulled. #define COMSIG_ATOM_UPDATE_SHARPNESS "atom_update_sharpness" ///from base of atom/atom_prehit(obj/item/projectile/P): #define COMSIG_ATOM_PREHIT "atom_prehit" #define ATOM_PREHIT_SUCCESS (1<<0) #define ATOM_PREHIT_FAILURE (1<<1) // Attack signals. These should share the returned flags, to standardize the attack chain. // The chain currently works like: // tool_act -> pre_attack -> target.attackby (item.attack) -> afterattack // You can use these signal responses to cancel the attack chain at a certain point from most attack signal types. /// This response cancels the attack chain entirely. If sent early, it might cause some later effects to be skipped. #define COMPONENT_CANCEL_ATTACK_CHAIN (1<<0) /// Called from atom/Initialize() of target: (atom/target) #define COMSIG_ATOM_INITIALIZED_ON "atom_initialized_on" ///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) #define COMSIG_ATOM_ATTACK_PAW "atom_attack_paw" #define COMPONENT_NO_ATTACK_HAND (1<<0) //works on all 3. //This signal return value bitflags can be found in __DEFINES/misc.dm ///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) ///from base of atom/expose_reagents(): (/list, /datum/reagents, chemholder, volume_modifier) #define COMSIG_ATOM_EXPOSE_REAGENTS "atom_expose_reagents" ///from base of atom/Click(): (location, control, params, mob/user) #define COMSIG_CLICK "atom_click" ///from base of atom/ShiftClick(): (/mob) #define COMSIG_CLICK_SHIFT "shift_click" #define COMPONENT_ALLOW_EXAMINATE (1<<0) //Allows the user to examinate regardless of client.eye. ///from base of atom/CtrlClickOn(): (/mob) #define COMSIG_CLICK_CTRL "ctrl_click" ///from base of atom/AltClick(): (/mob) #define COMSIG_CLICK_ALT "alt_click" /// Cancel the alt-click, since this isn't properly part of the attack chain #define COMPONENT_CANCEL_ALTCLICK (1<<0) ///from base of atom/CtrlShiftClick(/mob) #define COMSIG_CLICK_CTRL_SHIFT "ctrl_shift_click" ///from base of atom/MouseDrop(): (/atom/over, /mob/user) #define COMSIG_MOUSEDROP_ONTO "mousedrop_onto" #define COMPONENT_NO_MOUSEDROP (1<<0) ///from base of atom/MouseDrop_T: (/atom/from, /mob/user) #define COMSIG_MOUSEDROPPED_ONTO "mousedropped_onto"