Files
aaeb5fdf28 Skin Masquerade: Epidermal Applicator, Lifelike Quirk, and the Skinmonger Implant (#31185)
* adds the epidermal applicator, lifelike quirk, and skinmonger traitor implant

* lint

* lint

* attack chain fix

* more linty fixes

* more lint

* fix some buggy bugs, synthetic skinned body parts recolor to their host

* make emp on skinmonger work, fix a skinmonger bug

* make bruising / denting examine text not betray the masquerade

* burn away synthetic skin with acid

* comment / code structure / description tweaks

* i sell pharmaceuticals and pharmaceutical accessories

* code review comments

* oops

* god damn it

* god damn it (x2)

* Update code/modules/surgery/organs/augments_internal.dm

Co-authored-by: 1080pCat <96908085+1080pCat@users.noreply.github.com>
Signed-off-by: Pooble <90473506+poobsie@users.noreply.github.com>

* lower syndi level for implant

* Update code/modules/research/designs/medical_designs.dm

Co-authored-by: JimKil3 <47290811+JimKil3@users.noreply.github.com>
Signed-off-by: Pooble <90473506+poobsie@users.noreply.github.com>

* Update code/game/objects/items/tools/epidermal_applicator.dm

Co-authored-by: JimKil3 <47290811+JimKil3@users.noreply.github.com>
Signed-off-by: Pooble <90473506+poobsie@users.noreply.github.com>

* Update code/modules/surgery/organs/organ_external.dm

Co-authored-by: JimKil3 <47290811+JimKil3@users.noreply.github.com>
Signed-off-by: Pooble <90473506+poobsie@users.noreply.github.com>

* Update code/modules/surgery/organs/organ_external.dm

Co-authored-by: JimKil3 <47290811+JimKil3@users.noreply.github.com>
Signed-off-by: Pooble <90473506+poobsie@users.noreply.github.com>

* tweaks for review

* Update code/__DEFINES/dcs/datum_signals.dm

Co-authored-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>
Signed-off-by: Pooble <90473506+poobsie@users.noreply.github.com>

---------

Signed-off-by: Pooble <90473506+poobsie@users.noreply.github.com>
Co-authored-by: 1080pCat <96908085+1080pCat@users.noreply.github.com>
Co-authored-by: JimKil3 <47290811+JimKil3@users.noreply.github.com>
Co-authored-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>
2026-03-22 22:08:25 +00:00

149 lines
6.1 KiB
Plaintext

/**
* Signals for /datums.
* Doc format: `/// when the signal is called: (signal arguments)`.
* All signals send the source datum of the signal as the first argument
*/
// /datum/component
/// when a component is added to a datum: (/datum/component)
#define COMSIG_COMPONENT_ADDED "component_added"
/// before a component is removed from a datum because of UnlinkComponent: (/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"
/// 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_PARENT_QDELETING "parent_qdeleting"
/// 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 attached to it (/datum/element)
#define COMSIG_ELEMENT_DETACH "element_detach"
// /datum/mind
///from base of /datum/mind/proc/transfer_to(mob/living/new_character)
#define COMSIG_MIND_TRANSER_TO "mind_transfer_to"
///called on the mob instead of the mind
#define COMSIG_BODY_TRANSFER_TO "body_transfer_to"
///called when the mind is initialized (called every time the mob logins)
#define COMSIG_MIND_INITIALIZE "mind_initialize"
/// called when character creation robotic limbs are applied
#define COMSIG_HUMAN_ROBOTIC_LIMBS_APPLIED "human_robotic_limbs_applied"
// Sent from a surgery step when blood is being splashed. (datum/surgery, mob/user, mob/target, zone, obj/item/tool)
#define COMSIG_SURGERY_BLOOD_SPLASH "surgery_blood_splash"
/// If returned from this signal, will prevent any surgery splashing.
#define COMPONENT_BLOOD_SPLASH_HANDLED (1<<0)
// /datum/species
///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"
///from /datum/species/proc/spec_hitby()
#define COMSIG_SPECIES_HITBY "species_hitby"
/// Fires after a carbon's species changes.
#define COMSIG_AFTER_SPECIES_CHANGE "after_species_change"
// /datum/song
///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"
// /datum/element/decal
///called on an object to clean it of cleanables.
#define COMSIG_COMPONENT_CLEAN_ACT "clean_act"
///Returned by cleanable components when they are cleaned.
#define COMPONENT_CLEANED (1<<0)
// /datum/component/two_handed
///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"
///from base of /datum/component/forces_doors_open/proc/force_open_door(obj/item): (datum/source, mob/user, atom/target)
#define COMSIG_TWOHANDED_WIELDED_TRY_WIELD_INTERACT "twohanded_wielded_try_wield_interact"
// /datum/action
///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/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"
// /datum/objective
///from datum/objective/proc/find_target(list/target_blacklist)
#define COMSIG_OBJECTIVE_TARGET_FOUND "objective_target_found"
///from datum/objective/is_invalid_target()
#define COMSIG_OBJECTIVE_CHECK_VALID_TARGET "objective_check_valid_target"
#define OBJECTIVE_VALID_TARGET (1<<0)
#define OBJECTIVE_INVALID_TARGET (1<<1)
/// /datum/component/defib
/// Called when a defibrillator is first applied to someone. (mob/living/user, mob/living/target, harmful)
#define COMSIG_DEFIB_PADDLES_APPLIED "defib_paddles_applied"
/// Defib is out of power.
#define COMPONENT_BLOCK_DEFIB_DEAD (1<<0)
/// Something else: we won't have a custom message for this and should let the defib handle it.
#define COMPONENT_BLOCK_DEFIB_MISC (1<<1)
/// Called when a defib has been successfully used, and a shock has been applied. (mob/living/user, mob/living/target, harmful, successful)
#define COMSIG_DEFIB_SHOCK_APPLIED "defib_zap"
/// Called when a defib's cooldown has run its course and it is once again ready. ()
#define COMSIG_DEFIB_READY "defib_ready"
/// /datum/alarm_manager
#define COMSIG_TRIGGERED_ALARM "alarmmanager_triggered"
#define COMSIG_CANCELLED_ALARM "alarmmanager_cancelled"
// other subtypes
///from base of /datum/local_powernet/proc/power_change()
#define COMSIG_POWERNET_POWER_CHANGE "powernet_power_change"
/// Sent when bodies transfer between shades/shards and constructs
/// from base of /datum/component/construct_held_body/proc/transfer_held_body()
#define COMSIG_SHADE_TO_CONSTRUCT_TRANSFER "shade_to_construct_transfer"
/// /datum/component/label
/// Called when a handlabeler is used on an item when off
#define COMSIG_LABEL_REMOVE "label_remove"
// /datum/ruleset
/// from base of /datum/ruleset/proc/can_apply()
#define COMSIG_RULESET_FAILED_SPECIES "failed_species"
#define COMSIGN_TICKET_COUNT_UPDATE "ticket_count_updated"
//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]"