mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-19 20:15:47 +01:00
Convert all traits given by status effects to use TRAIT_STATUS_EFFECT(id) (#89291)
## About The Pull Request This makes (almost?) all traits given by status effects use `TRAIT_STATUS_EFFECT(id)` as their source, rather than the previous mix of `id`, `type`, `REF(src)`, or some bespoke thing. ## Why It's Good For The Game Consistency is good. ## Changelog No user-facing changes
This commit is contained in:
@@ -40,8 +40,6 @@
|
||||
///A trait given by a held item
|
||||
#define HELD_ITEM_TRAIT "held-item-trait"
|
||||
#define ABSTRACT_ITEM_TRAIT "abstract-item"
|
||||
/// A trait given by any status effect
|
||||
#define STATUS_EFFECT_TRAIT "status-effect"
|
||||
|
||||
/// Trait from light debugging
|
||||
#define LIGHT_DEBUG_TRAIT "light-debug"
|
||||
@@ -124,7 +122,6 @@
|
||||
#define MEGAFAUNA_TRAIT "megafauna"
|
||||
#define CLOWN_NUKE_TRAIT "clown-nuke"
|
||||
#define STICKY_MOUSTACHE_TRAIT "sticky-moustache"
|
||||
#define CHAINSAW_FRENZY_TRAIT "chainsaw-frenzy"
|
||||
#define CHRONO_GUN_TRAIT "chrono-gun"
|
||||
#define REVERSE_BEAR_TRAP_TRAIT "reverse-bear-trap"
|
||||
#define CURSED_MASK_TRAIT "cursed-mask"
|
||||
@@ -211,8 +208,6 @@
|
||||
#define BEAUTY_ELEMENT_TRAIT "beauty_element"
|
||||
#define MOOD_DATUM_TRAIT "mood_datum"
|
||||
#define DRONE_SHY_TRAIT "drone_shy"
|
||||
/// Trait given by stabilized light pink extracts
|
||||
#define STABILIZED_LIGHT_PINK_EXTRACT_TRAIT "stabilized_light_pink"
|
||||
/// Trait given by adamantine extracts
|
||||
#define ADAMANTINE_EXTRACT_TRAIT "adamantine_extract"
|
||||
/// Given by the multiple_lives component to the previous body of the mob upon death.
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
bonus_active = TRUE
|
||||
// Add traits
|
||||
if(length(bonus_traits))
|
||||
owner.add_traits(bonus_traits, REF(src))
|
||||
owner.add_traits(bonus_traits, TRAIT_STATUS_EFFECT(id))
|
||||
|
||||
// Add biotype
|
||||
if(owner.mob_biotypes & bonus_biotype)
|
||||
@@ -113,7 +113,7 @@
|
||||
|
||||
// Remove traits
|
||||
if(length(bonus_traits))
|
||||
owner.remove_traits(bonus_traits, REF(src))
|
||||
owner.remove_traits(bonus_traits, TRAIT_STATUS_EFFECT(id))
|
||||
// Remove biotype (if added)
|
||||
if(biotype_added)
|
||||
owner.mob_biotypes &= ~bonus_biotype
|
||||
|
||||
@@ -428,7 +428,7 @@
|
||||
|
||||
if(iscarbon(owner))
|
||||
chainsaw = new(get_turf(owner))
|
||||
ADD_TRAIT(chainsaw, TRAIT_NODROP, CHAINSAW_FRENZY_TRAIT)
|
||||
ADD_TRAIT(chainsaw, TRAIT_NODROP, TRAIT_STATUS_EFFECT(id))
|
||||
owner.put_in_hands(chainsaw, forced = TRUE)
|
||||
chainsaw.attack_self(owner)
|
||||
owner.reagents.add_reagent(/datum/reagent/medicine/adminordrazine, 25)
|
||||
@@ -559,7 +559,7 @@
|
||||
owner.AddElement(/datum/element/simple_flying)
|
||||
owner.add_stun_absorption(source = id, priority = 4)
|
||||
owner.add_movespeed_mod_immunities(id, /datum/movespeed_modifier/damage_slowdown)
|
||||
ADD_TRAIT(owner, TRAIT_FREE_HYPERSPACE_MOVEMENT, id)
|
||||
ADD_TRAIT(owner, TRAIT_FREE_HYPERSPACE_MOVEMENT, TRAIT_STATUS_EFFECT(id))
|
||||
owner.playsound_local(get_turf(owner), 'sound/effects/chemistry/ahaha.ogg', vol = 100, vary = TRUE, use_reverb = TRUE)
|
||||
return TRUE
|
||||
|
||||
@@ -577,7 +577,7 @@
|
||||
owner.RemoveElement(/datum/element/simple_flying)
|
||||
owner.remove_stun_absorption(id)
|
||||
owner.remove_movespeed_mod_immunities(id, /datum/movespeed_modifier/damage_slowdown)
|
||||
REMOVE_TRAIT(owner, TRAIT_FREE_HYPERSPACE_MOVEMENT, id)
|
||||
REMOVE_TRAIT(owner, TRAIT_FREE_HYPERSPACE_MOVEMENT, TRAIT_STATUS_EFFECT(id))
|
||||
|
||||
/// Gives you a brief period of anti-gravity
|
||||
/datum/status_effect/jump_jet
|
||||
@@ -600,11 +600,11 @@
|
||||
alert_type = null
|
||||
|
||||
/datum/status_effect/radiation_immunity/on_apply()
|
||||
ADD_TRAIT(owner, TRAIT_RADIMMUNE, type)
|
||||
ADD_TRAIT(owner, TRAIT_RADIMMUNE, TRAIT_STATUS_EFFECT(id))
|
||||
return TRUE
|
||||
|
||||
/datum/status_effect/radiation_immunity/on_remove()
|
||||
REMOVE_TRAIT(owner, TRAIT_RADIMMUNE, type)
|
||||
REMOVE_TRAIT(owner, TRAIT_RADIMMUNE, TRAIT_STATUS_EFFECT(id))
|
||||
|
||||
/datum/status_effect/radiation_immunity/radnebula
|
||||
alert_type = /atom/movable/screen/alert/status_effect/radiation_immunity
|
||||
|
||||
@@ -3,16 +3,16 @@
|
||||
var/trait = TRAIT_DUMB // You need to override this
|
||||
|
||||
/datum/status_effect/food/trait/on_apply()
|
||||
if(!HAS_TRAIT_FROM(owner, trait, type)) // Check if trait was already applied
|
||||
ADD_TRAIT(owner, trait, type)
|
||||
if(!HAS_TRAIT_FROM(owner, trait, TRAIT_STATUS_EFFECT(id))) // Check if trait was already applied
|
||||
ADD_TRAIT(owner, trait, TRAIT_STATUS_EFFECT(id))
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/food/trait/be_replaced()
|
||||
REMOVE_TRAIT(owner, trait, type)
|
||||
REMOVE_TRAIT(owner, trait, TRAIT_STATUS_EFFECT(id))
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/food/trait/on_remove()
|
||||
REMOVE_TRAIT(owner, trait, type)
|
||||
REMOVE_TRAIT(owner, trait, TRAIT_STATUS_EFFECT(id))
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/food/trait/shockimmune
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
RegisterSignal(owner, COMSIG_MOVABLE_MOVED, PROC_REF(stop_rolling))
|
||||
RegisterSignal(owner, COMSIG_LIVING_SET_BODY_POSITION, PROC_REF(body_position_changed))
|
||||
ADD_TRAIT(owner, TRAIT_HANDS_BLOCKED, id) // they're kinda busy!
|
||||
ADD_TRAIT(owner, TRAIT_HANDS_BLOCKED, TRAIT_STATUS_EFFECT(id)) // they're kinda busy!
|
||||
|
||||
owner.visible_message(
|
||||
span_danger("[owner] rolls on the floor, trying to put [owner.p_them()]self out!"),
|
||||
@@ -31,7 +31,7 @@
|
||||
|
||||
/datum/status_effect/stop_drop_roll/on_remove()
|
||||
UnregisterSignal(owner, list(COMSIG_MOVABLE_MOVED, COMSIG_LIVING_SET_BODY_POSITION))
|
||||
REMOVE_TRAIT(owner, TRAIT_HANDS_BLOCKED, id)
|
||||
REMOVE_TRAIT(owner, TRAIT_HANDS_BLOCKED, TRAIT_STATUS_EFFECT(id))
|
||||
|
||||
/datum/status_effect/stop_drop_roll/tick(seconds_between_ticks)
|
||||
if(HAS_TRAIT(owner, TRAIT_IMMOBILIZED) || HAS_TRAIT(owner, TRAIT_INCAPACITATED))
|
||||
|
||||
@@ -550,13 +550,13 @@
|
||||
|
||||
/datum/status_effect/gonbola_pacify/on_apply()
|
||||
. = ..()
|
||||
owner.add_traits(list(TRAIT_PACIFISM, TRAIT_MUTE), CLOTHING_TRAIT)
|
||||
owner.add_mood_event(type, /datum/mood_event/gondola)
|
||||
owner.add_traits(list(TRAIT_PACIFISM, TRAIT_MUTE), REF(src))
|
||||
owner.add_mood_event(REF(src), /datum/mood_event/gondola)
|
||||
to_chat(owner, span_notice("You suddenly feel at peace and feel no need to make any sudden or rash actions..."))
|
||||
|
||||
/datum/status_effect/gonbola_pacify/on_remove()
|
||||
owner.remove_traits(list(TRAIT_PACIFISM, TRAIT_MUTE), CLOTHING_TRAIT)
|
||||
owner.clear_mood_event(type)
|
||||
owner.remove_traits(list(TRAIT_PACIFISM, TRAIT_MUTE), REF(src))
|
||||
owner.clear_mood_event(REF(src))
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/trance
|
||||
@@ -581,7 +581,7 @@
|
||||
if(!iscarbon(owner))
|
||||
return FALSE
|
||||
RegisterSignal(owner, COMSIG_MOVABLE_HEAR, PROC_REF(hypnotize))
|
||||
ADD_TRAIT(owner, TRAIT_MUTE, STATUS_EFFECT_TRAIT)
|
||||
ADD_TRAIT(owner, TRAIT_MUTE, TRAIT_STATUS_EFFECT(id))
|
||||
owner.add_client_colour(/datum/client_colour/monochrome/trance)
|
||||
owner.visible_message("[stun ? span_warning("[owner] stands still as [owner.p_their()] eyes seem to focus on a distant point.") : ""]", \
|
||||
span_warning(pick("You feel your thoughts slow down...", "You suddenly feel extremely dizzy...", "You feel like you're in the middle of a dream...","You feel incredibly relaxed...")))
|
||||
@@ -594,7 +594,7 @@
|
||||
|
||||
/datum/status_effect/trance/on_remove()
|
||||
UnregisterSignal(owner, COMSIG_MOVABLE_HEAR)
|
||||
REMOVE_TRAIT(owner, TRAIT_MUTE, STATUS_EFFECT_TRAIT)
|
||||
REMOVE_TRAIT(owner, TRAIT_MUTE, TRAIT_STATUS_EFFECT(id))
|
||||
owner.remove_status_effect(/datum/status_effect/dizziness)
|
||||
owner.remove_client_colour(/datum/client_colour/monochrome/trance)
|
||||
to_chat(owner, span_warning("You snap out of your trance!"))
|
||||
@@ -978,11 +978,11 @@
|
||||
icon_state = "convulsing"
|
||||
|
||||
/datum/status_effect/discoordinated/on_apply()
|
||||
ADD_TRAIT(owner, TRAIT_DISCOORDINATED_TOOL_USER, "[type]")
|
||||
ADD_TRAIT(owner, TRAIT_DISCOORDINATED_TOOL_USER, TRAIT_STATUS_EFFECT(id))
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/discoordinated/on_remove()
|
||||
REMOVE_TRAIT(owner, TRAIT_DISCOORDINATED_TOOL_USER, "[type]")
|
||||
REMOVE_TRAIT(owner, TRAIT_DISCOORDINATED_TOOL_USER, TRAIT_STATUS_EFFECT(id))
|
||||
return ..()
|
||||
|
||||
///Maddly teleports the victim around all of space for 10 seconds
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/pacify/on_apply()
|
||||
ADD_TRAIT(owner, TRAIT_PACIFISM, id)
|
||||
ADD_TRAIT(owner, TRAIT_PACIFISM, TRAIT_STATUS_EFFECT(id))
|
||||
return TRUE
|
||||
|
||||
/datum/status_effect/pacify/on_remove()
|
||||
REMOVE_TRAIT(owner, TRAIT_PACIFISM, id)
|
||||
REMOVE_TRAIT(owner, TRAIT_PACIFISM, TRAIT_STATUS_EFFECT(id))
|
||||
|
||||
@@ -9,12 +9,12 @@
|
||||
|
||||
/datum/status_effect/silenced/on_apply()
|
||||
RegisterSignal(owner, COMSIG_LIVING_DEATH, PROC_REF(clear_silence))
|
||||
ADD_TRAIT(owner, TRAIT_MUTE, id)
|
||||
ADD_TRAIT(owner, TRAIT_MUTE, TRAIT_STATUS_EFFECT(id))
|
||||
return TRUE
|
||||
|
||||
/datum/status_effect/silenced/on_remove()
|
||||
UnregisterSignal(owner, COMSIG_LIVING_DEATH)
|
||||
REMOVE_TRAIT(owner, TRAIT_MUTE, id)
|
||||
REMOVE_TRAIT(owner, TRAIT_MUTE, TRAIT_STATUS_EFFECT(id))
|
||||
|
||||
/// Signal proc that clears any silence we have (self-deletes).
|
||||
/datum/status_effect/silenced/proc/clear_silence(mob/living/source)
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
COMSIG_LIVING_STATUS_STUN,
|
||||
COMSIG_LIVING_STATUS_IMMOBILIZE), PROC_REF(clear_stun_vulnverability)
|
||||
)
|
||||
ADD_TRAIT(owner, TRAIT_STUN_ON_NEXT_SHOVE, STATUS_EFFECT_TRAIT)
|
||||
ADD_TRAIT(owner, TRAIT_STUN_ON_NEXT_SHOVE, TRAIT_STATUS_EFFECT(id))
|
||||
vulnverability_overlay = mutable_appearance(icon = 'icons/effects/effects.dmi', icon_state = "dazed")
|
||||
owner.add_overlay(vulnverability_overlay)
|
||||
return TRUE
|
||||
@@ -83,7 +83,7 @@
|
||||
COMSIG_LIVING_STATUS_IMMOBILIZE,
|
||||
COMSIG_LIVING_DEATH,
|
||||
))
|
||||
REMOVE_TRAIT(owner, TRAIT_STUN_ON_NEXT_SHOVE, STATUS_EFFECT_TRAIT)
|
||||
REMOVE_TRAIT(owner, TRAIT_STUN_ON_NEXT_SHOVE, TRAIT_STATUS_EFFECT(id))
|
||||
if(vulnverability_overlay)
|
||||
clear_stun_vulnverability_overlay()
|
||||
|
||||
@@ -123,12 +123,12 @@
|
||||
if(owner.stat == DEAD)
|
||||
return FALSE
|
||||
RegisterSignal(owner, COMSIG_LIVING_DEATH, PROC_REF(clear_on_death))
|
||||
ADD_TRAIT(owner, TRAIT_NO_SIDE_KICK, STATUS_EFFECT_TRAIT)
|
||||
ADD_TRAIT(owner, TRAIT_NO_SIDE_KICK, TRAIT_STATUS_EFFECT(id))
|
||||
return TRUE
|
||||
|
||||
/datum/status_effect/no_side_kick/on_remove()
|
||||
UnregisterSignal(owner, list(COMSIG_LIVING_DEATH))
|
||||
REMOVE_TRAIT(owner, TRAIT_NO_SIDE_KICK, STATUS_EFFECT_TRAIT)
|
||||
REMOVE_TRAIT(owner, TRAIT_NO_SIDE_KICK, TRAIT_STATUS_EFFECT(id))
|
||||
|
||||
/datum/status_effect/no_side_kick/proc/clear_on_death(mob/living/source)
|
||||
SIGNAL_HANDLER
|
||||
|
||||
@@ -2,10 +2,12 @@
|
||||
id = "tower_of_babel"
|
||||
status_type = STATUS_EFFECT_UNIQUE
|
||||
alert_type = /atom/movable/screen/alert/status_effect/tower_of_babel
|
||||
var/trait_source = STATUS_EFFECT_TRAIT
|
||||
var/trait_source
|
||||
|
||||
/datum/status_effect/tower_of_babel/on_creation(mob/living/new_owner, duration = 15 SECONDS)
|
||||
src.duration = duration
|
||||
if(isnull(trait_source))
|
||||
trait_source = TRAIT_STATUS_EFFECT(id)
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/tower_of_babel/on_apply()
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
var/mob/living/carbon/human/human_owner = owner
|
||||
human_owner.add_movespeed_modifier(/datum/movespeed_modifier/reagent/cannabis) //slows you down
|
||||
human_owner.add_eye_color(BLOODCULT_EYE, EYE_COLOR_WEED_PRIORITY) //makes cult eyes less obvious
|
||||
human_owner.add_traits(list(TRAIT_CLUMSY, TRAIT_BLOODSHOT_EYES), type) // impairs motor coordination and dilates blood vessels in eyes
|
||||
human_owner.add_traits(list(TRAIT_CLUMSY, TRAIT_BLOODSHOT_EYES), TRAIT_STATUS_EFFECT(id)) // impairs motor coordination and dilates blood vessels in eyes
|
||||
human_owner.add_mood_event("stoned", /datum/mood_event/stoned) //improves mood
|
||||
human_owner.sound_environment_override = SOUND_ENVIRONMENT_DRUGGED //not realistic but very immersive
|
||||
return TRUE
|
||||
@@ -83,7 +83,7 @@
|
||||
var/mob/living/carbon/human/human_owner = owner
|
||||
human_owner.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/cannabis)
|
||||
human_owner.remove_eye_color(EYE_COLOR_WEED_PRIORITY)
|
||||
human_owner.remove_traits(list(TRAIT_CLUMSY, TRAIT_BLOODSHOT_EYES), type)
|
||||
human_owner.remove_traits(list(TRAIT_CLUMSY, TRAIT_BLOODSHOT_EYES), TRAIT_STATUS_EFFECT(id))
|
||||
human_owner.clear_mood_event("stoned")
|
||||
human_owner.sound_environment_override = SOUND_ENVIRONMENT_NONE
|
||||
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
CRASH("[type] status effect added to non-human owner: [owner ? owner.type : "null owner"]")
|
||||
var/mob/living/carbon/human/human_owner = owner
|
||||
human_owner.add_movespeed_modifier(/datum/movespeed_modifier/reagent/hypernoblium) //small slowdown as a tradeoff
|
||||
ADD_TRAIT(human_owner, TRAIT_NOFIRE, type)
|
||||
ADD_TRAIT(human_owner, TRAIT_NOFIRE, TRAIT_STATUS_EFFECT(id))
|
||||
return TRUE
|
||||
|
||||
/datum/status_effect/hypernob_protection/on_remove()
|
||||
@@ -84,4 +84,4 @@
|
||||
stack_trace("[type] status effect being removed from non-human owner: [owner ? owner.type : "null owner"]")
|
||||
var/mob/living/carbon/human/human_owner = owner
|
||||
human_owner.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/hypernoblium)
|
||||
REMOVE_TRAIT(human_owner, TRAIT_NOFIRE, type)
|
||||
REMOVE_TRAIT(human_owner, TRAIT_NOFIRE, TRAIT_STATUS_EFFECT(id))
|
||||
|
||||
@@ -101,11 +101,11 @@
|
||||
|
||||
/datum/status_effect/throat_soothed/on_apply()
|
||||
. = ..()
|
||||
ADD_TRAIT(owner, TRAIT_SOOTHED_THROAT, "[STATUS_EFFECT_TRAIT]_[id]")
|
||||
ADD_TRAIT(owner, TRAIT_SOOTHED_THROAT, TRAIT_STATUS_EFFECT(id))
|
||||
|
||||
/datum/status_effect/throat_soothed/on_remove()
|
||||
. = ..()
|
||||
REMOVE_TRAIT(owner, TRAIT_SOOTHED_THROAT, "[STATUS_EFFECT_TRAIT]_[id]")
|
||||
REMOVE_TRAIT(owner, TRAIT_SOOTHED_THROAT, TRAIT_STATUS_EFFECT(id))
|
||||
|
||||
/datum/status_effect/bounty
|
||||
id = "bounty"
|
||||
|
||||
@@ -24,12 +24,12 @@
|
||||
aura_desc = "dull"
|
||||
|
||||
/datum/status_effect/song/antimagic/on_apply()
|
||||
ADD_TRAIT(owner, TRAIT_ANTIMAGIC, MAGIC_TRAIT)
|
||||
ADD_TRAIT(owner, TRAIT_ANTIMAGIC, TRAIT_STATUS_EFFECT(id))
|
||||
playsound(owner, 'sound/items/weapons/fwoosh.ogg', 75, FALSE)
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/song/antimagic/on_remove()
|
||||
REMOVE_TRAIT(owner, TRAIT_ANTIMAGIC, MAGIC_TRAIT)
|
||||
REMOVE_TRAIT(owner, TRAIT_ANTIMAGIC, TRAIT_STATUS_EFFECT(id))
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/song/antimagic/get_examine_text()
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
if(!HAS_TRAIT(owner, TRAIT_IS_WET))
|
||||
apply_debuff()
|
||||
else
|
||||
ADD_TRAIT(owner, TRAIT_GRABRESISTANCE, REF(src))
|
||||
ADD_TRAIT(owner, TRAIT_GRABRESISTANCE, TRAIT_STATUS_EFFECT(id))
|
||||
owner.add_mood_event("fish_organs_bonus", /datum/mood_event/fish_water)
|
||||
if(HAS_TRAIT(owner, TRAIT_IS_WET) && istype(owner.get_organ_slot(ORGAN_SLOT_EXTERNAL_TAIL), /obj/item/organ/tail/fish))
|
||||
add_speed_buff()
|
||||
@@ -62,7 +62,7 @@
|
||||
if(!HAS_TRAIT(owner, TRAIT_IS_WET))
|
||||
remove_debuff()
|
||||
else
|
||||
REMOVE_TRAIT(owner, TRAIT_GRABRESISTANCE, REF(src))
|
||||
REMOVE_TRAIT(owner, TRAIT_GRABRESISTANCE, TRAIT_STATUS_EFFECT(id))
|
||||
owner.clear_mood_event("fish_organs_bonus")
|
||||
if(ishuman(owner))
|
||||
var/mob/living/carbon/human/human = owner
|
||||
@@ -117,7 +117,7 @@
|
||||
human.physiology.damage_resistance -= 16 //from +8% to -8%
|
||||
|
||||
/datum/status_effect/organ_set_bonus/fish/proc/remove_debuff()
|
||||
ADD_TRAIT(owner, TRAIT_GRABRESISTANCE, REF(src)) //harder to grab when wet.
|
||||
ADD_TRAIT(owner, TRAIT_GRABRESISTANCE, TRAIT_STATUS_EFFECT(id)) //harder to grab when wet.
|
||||
owner.remove_movespeed_modifier(/datum/movespeed_modifier/fish_waterless)
|
||||
owner.add_mood_event("fish_organs_bonus", /datum/mood_event/fish_water)
|
||||
if(!ishuman(owner))
|
||||
|
||||
@@ -21,11 +21,11 @@
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/unholy_determination/on_apply()
|
||||
owner.add_traits(list(TRAIT_COAGULATING, TRAIT_NOCRITDAMAGE, TRAIT_NOSOFTCRIT), type)
|
||||
owner.add_traits(list(TRAIT_COAGULATING, TRAIT_NOCRITDAMAGE, TRAIT_NOSOFTCRIT), TRAIT_STATUS_EFFECT(id))
|
||||
return TRUE
|
||||
|
||||
/datum/status_effect/unholy_determination/on_remove()
|
||||
owner.remove_traits(list(TRAIT_COAGULATING, TRAIT_NOCRITDAMAGE, TRAIT_NOSOFTCRIT), type)
|
||||
owner.remove_traits(list(TRAIT_COAGULATING, TRAIT_NOCRITDAMAGE, TRAIT_NOSOFTCRIT), TRAIT_STATUS_EFFECT(id))
|
||||
|
||||
/datum/status_effect/unholy_determination/tick(seconds_between_ticks)
|
||||
// The amount we heal of each damage type per tick. If we're missing legs we heal better because we can't dodge.
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
return span_notice("[owner.p_Theyre()] glowing a soft white.")
|
||||
|
||||
/datum/status_effect/realignment/on_apply()
|
||||
owner.add_traits(realignment_traits, id)
|
||||
owner.add_traits(realignment_traits, TRAIT_STATUS_EFFECT(id))
|
||||
owner.add_filter(id, 2, list("type" = "outline", "color" = "#d6e3e7", "size" = 2))
|
||||
var/filter = owner.get_filter(id)
|
||||
animate(filter, alpha = 127, time = 1 SECONDS, loop = -1)
|
||||
@@ -69,7 +69,7 @@
|
||||
return TRUE
|
||||
|
||||
/datum/status_effect/realignment/on_remove()
|
||||
owner.remove_traits(realignment_traits, id)
|
||||
owner.remove_traits(realignment_traits, TRAIT_STATUS_EFFECT(id))
|
||||
owner.remove_filter(id)
|
||||
|
||||
/datum/status_effect/realignment/tick(seconds_between_ticks)
|
||||
|
||||
@@ -141,7 +141,7 @@
|
||||
animate(cloak_image, alpha = 255, 0.2 SECONDS)
|
||||
owner.add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/everyone, id, cloak_image)
|
||||
// Add the relevant traits and modifiers
|
||||
owner.add_traits(list(TRAIT_UNKNOWN, TRAIT_SILENT_FOOTSTEPS), id)
|
||||
owner.add_traits(list(TRAIT_UNKNOWN, TRAIT_SILENT_FOOTSTEPS), TRAIT_STATUS_EFFECT(id))
|
||||
owner.add_movespeed_modifier(/datum/movespeed_modifier/shadow_cloak)
|
||||
owner.add_actionspeed_modifier(/datum/actionspeed_modifier/shadow_cloak)
|
||||
// Register signals to cause effects
|
||||
@@ -157,7 +157,7 @@
|
||||
owner.remove_alt_appearance(id)
|
||||
QDEL_NULL(cloak_image)
|
||||
// Remove traits and modifiers
|
||||
owner.remove_traits(list(TRAIT_UNKNOWN, TRAIT_SILENT_FOOTSTEPS), id)
|
||||
owner.remove_traits(list(TRAIT_UNKNOWN, TRAIT_SILENT_FOOTSTEPS), TRAIT_STATUS_EFFECT(id))
|
||||
owner.remove_movespeed_modifier(/datum/movespeed_modifier/shadow_cloak)
|
||||
owner.remove_actionspeed_modifier(/datum/actionspeed_modifier/shadow_cloak)
|
||||
// Clear signals
|
||||
|
||||
@@ -122,8 +122,8 @@
|
||||
alert_type = null
|
||||
|
||||
/datum/status_effect/void_conduit/on_apply()
|
||||
ADD_TRAIT(owner, TRAIT_RESISTLOWPRESSURE, type)
|
||||
ADD_TRAIT(owner, TRAIT_RESISTLOWPRESSURE, TRAIT_STATUS_EFFECT(id))
|
||||
return TRUE
|
||||
|
||||
/datum/status_effect/void_conduit/on_remove()
|
||||
REMOVE_TRAIT(owner, TRAIT_RESISTLOWPRESSURE, type)
|
||||
REMOVE_TRAIT(owner, TRAIT_RESISTLOWPRESSURE, TRAIT_STATUS_EFFECT(id))
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
owner.apply_status_effect(/datum/status_effect/void_chill, 3)
|
||||
if(stasis_overlay)
|
||||
//Free our prisoner
|
||||
owner.remove_traits(list(TRAIT_GODMODE, TRAIT_NO_TRANSFORM, TRAIT_SOFTSPOKEN), REF(src))
|
||||
owner.remove_traits(list(TRAIT_GODMODE, TRAIT_NO_TRANSFORM, TRAIT_SOFTSPOKEN), TRAIT_STATUS_EFFECT(id))
|
||||
owner.forceMove(get_turf(stasis_overlay))
|
||||
stasis_overlay.forceMove(owner)
|
||||
owner.vis_contents += stasis_overlay
|
||||
@@ -71,7 +71,7 @@
|
||||
/datum/status_effect/void_prison/proc/enter_prison(mob/living/prisoner)
|
||||
stasis_overlay.forceMove(prisoner.loc)
|
||||
prisoner.forceMove(stasis_overlay)
|
||||
prisoner.add_traits(list(TRAIT_GODMODE, TRAIT_NO_TRANSFORM, TRAIT_SOFTSPOKEN), REF(src))
|
||||
prisoner.add_traits(list(TRAIT_GODMODE, TRAIT_NO_TRANSFORM, TRAIT_SOFTSPOKEN), TRAIT_STATUS_EFFECT(id))
|
||||
|
||||
///Makes sure to clear the ref in case the voidball ever suddenly disappears
|
||||
/datum/status_effect/void_prison/proc/clear_overlay()
|
||||
|
||||
@@ -52,12 +52,12 @@
|
||||
alert_type =/atom/movable/screen/alert/status_effect/duskndawn
|
||||
|
||||
/datum/status_effect/duskndawn/on_apply()
|
||||
ADD_TRAIT(owner, TRAIT_XRAY_VISION, STATUS_EFFECT_TRAIT)
|
||||
ADD_TRAIT(owner, TRAIT_XRAY_VISION, TRAIT_STATUS_EFFECT(id))
|
||||
owner.update_sight()
|
||||
return TRUE
|
||||
|
||||
/datum/status_effect/duskndawn/on_remove()
|
||||
REMOVE_TRAIT(owner, TRAIT_XRAY_VISION, STATUS_EFFECT_TRAIT)
|
||||
REMOVE_TRAIT(owner, TRAIT_XRAY_VISION, TRAIT_STATUS_EFFECT(id))
|
||||
owner.update_sight()
|
||||
|
||||
// WOUNDED SOLDIER
|
||||
@@ -215,7 +215,7 @@
|
||||
if(HAS_TRAIT(source, TRAIT_BEING_BLADE_SHIELDED))
|
||||
return
|
||||
|
||||
ADD_TRAIT(source, TRAIT_BEING_BLADE_SHIELDED, type)
|
||||
ADD_TRAIT(source, TRAIT_BEING_BLADE_SHIELDED, TRAIT_STATUS_EFFECT(id))
|
||||
|
||||
var/obj/effect/floating_blade/to_remove = blades[1]
|
||||
|
||||
@@ -228,7 +228,7 @@
|
||||
|
||||
qdel(to_remove)
|
||||
|
||||
addtimer(TRAIT_CALLBACK_REMOVE(source, TRAIT_BEING_BLADE_SHIELDED, type), 0.1 SECONDS)
|
||||
addtimer(TRAIT_CALLBACK_REMOVE(source, TRAIT_BEING_BLADE_SHIELDED, TRAIT_STATUS_EFFECT(id)), 0.1 SECONDS)
|
||||
|
||||
return SUCCESSFUL_BLOCK
|
||||
|
||||
@@ -338,11 +338,11 @@
|
||||
alert_type = /atom/movable/screen/alert/status_effect/moon_grasp_hide
|
||||
|
||||
/datum/status_effect/moon_grasp_hide/on_apply()
|
||||
owner.add_traits(list(TRAIT_UNKNOWN, TRAIT_SILENT_FOOTSTEPS), id)
|
||||
owner.add_traits(list(TRAIT_UNKNOWN, TRAIT_SILENT_FOOTSTEPS), TRAIT_STATUS_EFFECT(id))
|
||||
return TRUE
|
||||
|
||||
/datum/status_effect/moon_grasp_hide/on_remove()
|
||||
owner.remove_traits(list(TRAIT_UNKNOWN, TRAIT_SILENT_FOOTSTEPS), id)
|
||||
owner.remove_traits(list(TRAIT_UNKNOWN, TRAIT_SILENT_FOOTSTEPS), TRAIT_STATUS_EFFECT(id))
|
||||
|
||||
/atom/movable/screen/alert/status_effect/moon_grasp_hide
|
||||
name = "Blessing of The Moon"
|
||||
|
||||
@@ -216,7 +216,7 @@
|
||||
to_chat(owner, span_hypnophrase(("THE MOON SHOWS YOU THE TRUTH AND THE LIARS WISH TO COVER IT, SLAY THEM ALL!!!</span>")))
|
||||
owner.balloon_alert(owner, "they lie..THEY ALL LIE!!!")
|
||||
owner.AdjustUnconscious(7 SECONDS, ignore_canstun = FALSE)
|
||||
ADD_TRAIT(owner, TRAIT_MUTE, REF(src))
|
||||
ADD_TRAIT(owner, TRAIT_MUTE, TRAIT_STATUS_EFFECT(id))
|
||||
RegisterSignal(owner, COMSIG_ATOM_UPDATE_OVERLAYS, PROC_REF(update_owner_overlay))
|
||||
owner.update_appearance(UPDATE_OVERLAYS)
|
||||
owner.cause_hallucination(/datum/hallucination/delusion/preset/moon, "[id] status effect", duration = duration, affects_us = FALSE, affects_others = TRUE)
|
||||
@@ -243,7 +243,7 @@
|
||||
/datum/status_effect/moon_converted/on_remove()
|
||||
// Span warning and unconscious so they realize they aren't evil anymore
|
||||
to_chat(owner, span_warning("Your mind is cleared from the effect of the mansus, your alligiences are as they were before"))
|
||||
REMOVE_TRAIT(owner, TRAIT_MUTE, REF(src))
|
||||
REMOVE_TRAIT(owner, TRAIT_MUTE, TRAIT_STATUS_EFFECT(id))
|
||||
owner.AdjustUnconscious(5 SECONDS, ignore_canstun = FALSE)
|
||||
owner.log_message("[owner] is no longer insane.", LOG_GAME)
|
||||
UnregisterSignal(owner, COMSIG_ATOM_UPDATE_OVERLAYS)
|
||||
|
||||
@@ -60,8 +60,8 @@
|
||||
human_target.health = new_max_health
|
||||
|
||||
on_made_callback?.Invoke(human_target)
|
||||
ADD_TRAIT(human_target, TRAIT_FAKEDEATH, REF(src))
|
||||
human_target.become_husk(MAGIC_TRAIT)
|
||||
ADD_TRAIT(human_target, TRAIT_FAKEDEATH, TRAIT_STATUS_EFFECT(id))
|
||||
human_target.become_husk(TRAIT_STATUS_EFFECT(id))
|
||||
human_target.faction |= FACTION_HERETIC
|
||||
|
||||
if(human_target.mind)
|
||||
@@ -89,8 +89,8 @@
|
||||
human_target.setMaxHealth(initial(human_target.maxHealth))
|
||||
|
||||
on_lost_callback?.Invoke(human_target)
|
||||
REMOVE_TRAIT(human_target, TRAIT_FAKEDEATH, REF(src))
|
||||
human_target.cure_husk(MAGIC_TRAIT)
|
||||
REMOVE_TRAIT(human_target, TRAIT_FAKEDEATH, TRAIT_STATUS_EFFECT(id))
|
||||
human_target.cure_husk(TRAIT_STATUS_EFFECT(id))
|
||||
human_target.faction -= FACTION_HERETIC
|
||||
human_target.mind?.remove_antag_datum(/datum/antagonist/heretic_monster)
|
||||
|
||||
|
||||
@@ -256,7 +256,7 @@
|
||||
. = ..()
|
||||
if(owner.can_block_magic(MAGIC_RESISTANCE_MIND))
|
||||
return FALSE
|
||||
ADD_TRAIT(owner, TRAIT_PACIFISM, id)
|
||||
ADD_TRAIT(owner, TRAIT_PACIFISM, TRAIT_STATUS_EFFECT(id))
|
||||
owner.emote(pick("giggle", "laugh"))
|
||||
owner.balloon_alert(owner, "you feel unable to hurt a soul!")
|
||||
RegisterSignal (owner, COMSIG_MOB_APPLY_DAMAGE, PROC_REF(on_damaged))
|
||||
@@ -276,7 +276,7 @@
|
||||
return
|
||||
|
||||
// Removes the trait in here since we don't wanna destroy the mark before its detonated or allow detonation triggers with other weapons
|
||||
REMOVE_TRAIT(owner, TRAIT_PACIFISM, id)
|
||||
REMOVE_TRAIT(owner, TRAIT_PACIFISM, TRAIT_STATUS_EFFECT(id))
|
||||
owner.balloon_alert(owner, "you feel able to once again strike!")
|
||||
|
||||
/datum/status_effect/eldritch/moon/on_effect()
|
||||
@@ -291,4 +291,4 @@
|
||||
UnregisterSignal (owner, COMSIG_MOB_APPLY_DAMAGE)
|
||||
|
||||
// In case the trait was not removed earlier
|
||||
REMOVE_TRAIT(owner, TRAIT_PACIFISM, id)
|
||||
REMOVE_TRAIT(owner, TRAIT_PACIFISM, TRAIT_STATUS_EFFECT(id))
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
owner.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, COLOR_BLUE_LIGHT)
|
||||
owner.remove_movespeed_modifier(/datum/movespeed_modifier/void_chill)
|
||||
owner.remove_alt_appearance("heretic_status")
|
||||
REMOVE_TRAIT(owner, TRAIT_HYPOTHERMIC, REF(src))
|
||||
REMOVE_TRAIT(owner, TRAIT_HYPOTHERMIC, TRAIT_STATUS_EFFECT(id))
|
||||
UnregisterSignal(owner, COMSIG_ATOM_UPDATE_OVERLAYS)
|
||||
|
||||
/datum/status_effect/void_chill/tick(seconds_between_ticks)
|
||||
@@ -74,7 +74,7 @@
|
||||
stacks = max(0, min(stack_limit, stacks + new_stacks))
|
||||
update_movespeed(stacks)
|
||||
if(stacks >= 5)
|
||||
ADD_TRAIT(owner, TRAIT_HYPOTHERMIC, REF(src))
|
||||
ADD_TRAIT(owner, TRAIT_HYPOTHERMIC, TRAIT_STATUS_EFFECT(id))
|
||||
|
||||
///Updates the movespeed of owner based on the amount of stacks of the debuff
|
||||
/datum/status_effect/void_chill/proc/update_movespeed(stacks)
|
||||
|
||||
@@ -39,8 +39,8 @@
|
||||
|
||||
/datum/status_effect/void_eatered/on_apply()
|
||||
. = ..()
|
||||
ADD_TRAIT(owner, TRAIT_NODEATH, type)
|
||||
ADD_TRAIT(owner, TRAIT_NODEATH, TRAIT_STATUS_EFFECT(id))
|
||||
|
||||
/datum/status_effect/void_eatered/on_remove()
|
||||
. = ..()
|
||||
REMOVE_TRAIT(owner, TRAIT_NODEATH, type)
|
||||
REMOVE_TRAIT(owner, TRAIT_NODEATH, TRAIT_STATUS_EFFECT(id))
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
. = ..()
|
||||
if (!.)
|
||||
return FALSE
|
||||
owner.add_traits(list(TRAIT_OVERWATCHED, TRAIT_OVERWATCH_IMMUNE), TRAIT_STATUS_EFFECT(id))
|
||||
owner.add_traits(list(TRAIT_OVERWATCHED, TRAIT_OVERWATCH_IMMUNE), REF(src))
|
||||
owner.do_alert_animation()
|
||||
owner.Immobilize(0.25 SECONDS) // Just long enough that they don't trigger it by mistake
|
||||
owner.playsound_local(owner, 'sound/machines/chime.ogg', 50, TRUE)
|
||||
@@ -109,7 +109,7 @@
|
||||
/datum/status_effect/overwatch/on_remove()
|
||||
UnregisterSignal(owner, forbidden_actions + list(COMSIG_QDELETING, COMSIG_LIVING_DEATH))
|
||||
QDEL_NULL(link)
|
||||
owner.remove_traits(list(TRAIT_OVERWATCHED, TRAIT_OVERWATCH_IMMUNE), TRAIT_STATUS_EFFECT(id))
|
||||
owner.remove_traits(list(TRAIT_OVERWATCHED, TRAIT_OVERWATCH_IMMUNE), REF(src))
|
||||
if (!QDELETED(owner))
|
||||
owner.apply_status_effect(/datum/status_effect/overwatch_immune)
|
||||
return ..()
|
||||
|
||||
@@ -247,12 +247,12 @@
|
||||
duration = 100
|
||||
|
||||
/datum/status_effect/firecookie/on_apply()
|
||||
ADD_TRAIT(owner, TRAIT_RESISTCOLD,"firecookie")
|
||||
ADD_TRAIT(owner, TRAIT_RESISTCOLD, TRAIT_STATUS_EFFECT(id))
|
||||
owner.adjust_bodytemperature(110)
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/firecookie/on_remove()
|
||||
REMOVE_TRAIT(owner, TRAIT_RESISTCOLD,"firecookie")
|
||||
REMOVE_TRAIT(owner, TRAIT_RESISTCOLD, TRAIT_STATUS_EFFECT(id))
|
||||
|
||||
/datum/status_effect/watercookie
|
||||
id = "watercookie"
|
||||
@@ -261,7 +261,7 @@
|
||||
duration = 100
|
||||
|
||||
/datum/status_effect/watercookie/on_apply()
|
||||
ADD_TRAIT(owner, TRAIT_NO_SLIP_WATER,"watercookie")
|
||||
ADD_TRAIT(owner, TRAIT_NO_SLIP_WATER, TRAIT_STATUS_EFFECT(id))
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/watercookie/tick(seconds_between_ticks)
|
||||
@@ -269,7 +269,7 @@
|
||||
T.MakeSlippery(TURF_WET_WATER, min_wet_time = 10, wet_time_to_add = 5)
|
||||
|
||||
/datum/status_effect/watercookie/on_remove()
|
||||
REMOVE_TRAIT(owner, TRAIT_NO_SLIP_WATER,"watercookie")
|
||||
REMOVE_TRAIT(owner, TRAIT_NO_SLIP_WATER, TRAIT_STATUS_EFFECT(id))
|
||||
|
||||
/datum/status_effect/metalcookie
|
||||
id = "metalcookie"
|
||||
@@ -314,11 +314,11 @@
|
||||
duration = 600
|
||||
|
||||
/datum/status_effect/toxincookie/on_apply()
|
||||
ADD_TRAIT(owner, TRAIT_TOXINLOVER,"toxincookie")
|
||||
ADD_TRAIT(owner, TRAIT_TOXINLOVER, TRAIT_STATUS_EFFECT(id))
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/toxincookie/on_remove()
|
||||
REMOVE_TRAIT(owner, TRAIT_TOXINLOVER,"toxincookie")
|
||||
REMOVE_TRAIT(owner, TRAIT_TOXINLOVER, TRAIT_STATUS_EFFECT(id))
|
||||
|
||||
/datum/status_effect/timecookie
|
||||
id = "timecookie"
|
||||
@@ -411,11 +411,11 @@
|
||||
duration = 30
|
||||
|
||||
/datum/status_effect/plur/on_apply()
|
||||
ADD_TRAIT(owner, TRAIT_PACIFISM, "peacecookie")
|
||||
ADD_TRAIT(owner, TRAIT_PACIFISM, TRAIT_STATUS_EFFECT(id))
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/plur/on_remove()
|
||||
REMOVE_TRAIT(owner, TRAIT_PACIFISM, "peacecookie")
|
||||
REMOVE_TRAIT(owner, TRAIT_PACIFISM, TRAIT_STATUS_EFFECT(id))
|
||||
|
||||
/datum/status_effect/adamantinecookie
|
||||
id = "adamantinecookie"
|
||||
@@ -543,11 +543,11 @@
|
||||
colour = SLIME_TYPE_BLUE
|
||||
|
||||
/datum/status_effect/stabilized/blue/on_apply()
|
||||
ADD_TRAIT(owner, TRAIT_NO_SLIP_WATER, "slimestatus")
|
||||
ADD_TRAIT(owner, TRAIT_NO_SLIP_WATER, TRAIT_STATUS_EFFECT(id))
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/stabilized/blue/on_remove()
|
||||
REMOVE_TRAIT(owner, TRAIT_NO_SLIP_WATER, "slimestatus")
|
||||
REMOVE_TRAIT(owner, TRAIT_NO_SLIP_WATER, TRAIT_STATUS_EFFECT(id))
|
||||
|
||||
/datum/status_effect/stabilized/metal
|
||||
id = "stabilizedmetal"
|
||||
@@ -608,7 +608,7 @@
|
||||
var/obj/item/hothands/fire
|
||||
|
||||
/datum/status_effect/stabilized/darkpurple/on_apply()
|
||||
ADD_TRAIT(owner, TRAIT_RESISTHEATHANDS, "slimestatus")
|
||||
ADD_TRAIT(owner, TRAIT_RESISTHEATHANDS, TRAIT_STATUS_EFFECT(id))
|
||||
fire = new(owner)
|
||||
return ..()
|
||||
|
||||
@@ -622,7 +622,7 @@
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/stabilized/darkpurple/on_remove()
|
||||
REMOVE_TRAIT(owner, TRAIT_RESISTHEATHANDS, "slimestatus")
|
||||
REMOVE_TRAIT(owner, TRAIT_RESISTHEATHANDS, TRAIT_STATUS_EFFECT(id))
|
||||
qdel(fire)
|
||||
|
||||
/datum/status_effect/stabilized/darkpurple/get_examine_text()
|
||||
@@ -1007,7 +1007,7 @@
|
||||
|
||||
/datum/status_effect/stabilized/lightpink/on_apply()
|
||||
owner.add_movespeed_modifier(/datum/movespeed_modifier/status_effect/lightpink)
|
||||
ADD_TRAIT(owner, TRAIT_PACIFISM, STABILIZED_LIGHT_PINK_EXTRACT_TRAIT)
|
||||
ADD_TRAIT(owner, TRAIT_PACIFISM, TRAIT_STATUS_EFFECT(id))
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/stabilized/lightpink/tick(seconds_between_ticks)
|
||||
@@ -1019,7 +1019,7 @@
|
||||
|
||||
/datum/status_effect/stabilized/lightpink/on_remove()
|
||||
owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/lightpink)
|
||||
REMOVE_TRAIT(owner, TRAIT_PACIFISM, STABILIZED_LIGHT_PINK_EXTRACT_TRAIT)
|
||||
REMOVE_TRAIT(owner, TRAIT_PACIFISM, TRAIT_STATUS_EFFECT(id))
|
||||
|
||||
/datum/status_effect/stabilized/adamantine
|
||||
id = "stabilizedadamantine"
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
/datum/status_effect/shapechange_mob/on_apply()
|
||||
caster_mob.mind?.transfer_to(owner)
|
||||
caster_mob.forceMove(owner)
|
||||
ADD_TRAIT(caster_mob, TRAIT_NO_TRANSFORM, REF(src))
|
||||
ADD_TRAIT(caster_mob, TRAIT_NO_TRANSFORM, TRAIT_STATUS_EFFECT(id))
|
||||
caster_mob.apply_status_effect(/datum/status_effect/grouped/stasis, STASIS_SHAPECHANGE_EFFECT)
|
||||
|
||||
RegisterSignal(owner, COMSIG_LIVING_PRE_WABBAJACKED, PROC_REF(on_pre_wabbajack))
|
||||
@@ -86,7 +86,7 @@
|
||||
UnregisterSignal(owner, list(COMSIG_LIVING_PRE_WABBAJACKED, COMSIG_LIVING_DEATH))
|
||||
UnregisterSignal(caster_mob, list(COMSIG_QDELETING, COMSIG_LIVING_DEATH))
|
||||
|
||||
REMOVE_TRAIT(caster_mob, TRAIT_NO_TRANSFORM, REF(src))
|
||||
REMOVE_TRAIT(caster_mob, TRAIT_NO_TRANSFORM, TRAIT_STATUS_EFFECT(id))
|
||||
caster_mob.remove_status_effect(/datum/status_effect/grouped/stasis, STASIS_SHAPECHANGE_EFFECT)
|
||||
|
||||
var/atom/former_loc = owner.loc
|
||||
|
||||
Reference in New Issue
Block a user