mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
* rework progress * Update thrall_tumor.dm * tweaks * more words and number tweaks * Update thrall_tumor.dm
316 lines
19 KiB
Plaintext
316 lines
19 KiB
Plaintext
|
|
//These are all the different status effects. Use the paths for each effect in the defines.
|
|
|
|
#define STATUS_EFFECT_MULTIPLE 0 //if it allows multiple instances of the effect
|
|
|
|
#define STATUS_EFFECT_UNIQUE 1 //if it allows only one, preventing new instances
|
|
|
|
#define STATUS_EFFECT_REPLACE 2 //if it allows only one, but new instances replace
|
|
|
|
#define STATUS_EFFECT_REFRESH 3 // if it only allows one, and new instances just instead refresh the timer
|
|
|
|
///Processing flags - used to define the speed at which the status will work
|
|
///This is fast - 0.2s between ticks (I believe!)
|
|
#define STATUS_EFFECT_FAST_PROCESS 0
|
|
///This is slower and better for more intensive status effects - 1s between ticks
|
|
#define STATUS_EFFECT_NORMAL_PROCESS 1
|
|
|
|
// Grouped effect sources, see also code/__DEFINES/traits.dm
|
|
|
|
#define STASIS_MACHINE_EFFECT "stasis_machine"
|
|
|
|
#define STASIS_CHEMICAL_EFFECT "stasis_chemical"
|
|
|
|
#define STASIS_SHAPECHANGE_EFFECT "stasis_shapechange"
|
|
|
|
///////////
|
|
// BUFFS //
|
|
///////////
|
|
|
|
#define STATUS_EFFECT_SHADOW_MEND /datum/status_effect/shadow_mend //Quick, powerful heal that deals damage afterwards. Heals 15 brute/burn every second for 3 seconds.
|
|
#define STATUS_EFFECT_VOID_PRICE /datum/status_effect/void_price //The price of healing yourself with void energy. Deals 3 brute damage every 3 seconds for 30 seconds.
|
|
|
|
#define STATUS_EFFECT_VANGUARD /datum/status_effect/vanguard_shield //Grants temporary stun absorption, but will stun the user based on how many stuns they absorbed.
|
|
#define STATUS_EFFECT_INATHNEQS_ENDOWMENT /datum/status_effect/inathneqs_endowment //A 15-second invulnerability and stun absorption, granted by Inath-neq.
|
|
#define STATUS_EFFECT_WRAITHSPECS /datum/status_effect/wraith_spectacles
|
|
|
|
#define STATUS_EFFECT_POWERREGEN /datum/status_effect/cyborg_power_regen //Regenerates power on a given cyborg over time
|
|
|
|
#define STATUS_EFFECT_HISGRACE /datum/status_effect/his_grace //His Grace.
|
|
|
|
#define STATUS_EFFECT_WISH_GRANTERS_GIFT /datum/status_effect/wish_granters_gift //If you're currently resurrecting with the Wish Granter
|
|
|
|
#define STATUS_EFFECT_BLOODDRUNK /datum/status_effect/blooddrunk //Stun immunity and greatly reduced damage taken
|
|
|
|
#define STATUS_EFFECT_FLESHMEND /datum/status_effect/fleshmend //Very fast healing; suppressed by fire, and heals less fire damage
|
|
|
|
#define STATUS_EFFECT_EXERCISED /datum/status_effect/exercised //Prevents heart disease
|
|
|
|
#define STATUS_EFFECT_HIPPOCRATIC_OATH /datum/status_effect/hippocratic_oath //Gives you an aura of healing as well as regrowing the Rod of Asclepius if lost
|
|
|
|
#define STATUS_EFFECT_GOOD_MUSIC /datum/status_effect/good_music
|
|
|
|
#define STATUS_EFFECT_REGENERATIVE_CORE /datum/status_effect/regenerative_core
|
|
|
|
#define STATUS_EFFECT_ANTIMAGIC /datum/status_effect/antimagic //grants antimagic (and reapplies if lost) for the duration
|
|
|
|
#define STATUS_EFFECT_TIME_DILATION /datum/status_effect/time_dilation //Provides immunity to slowdown and halves click-delay/action times //Yogs
|
|
|
|
#define STATUS_EFFECT_DETERMINED /datum/status_effect/determined //currently in a combat high from being seriously wounded
|
|
|
|
#define STATUS_EFFECT_ADRENALINE /datum/status_effect/adrenaline //currently in fight or flight from being suddenly injured
|
|
|
|
#define STATUS_EFFECT_FRENZY /datum/status_effect/frenzy //Makes you fast and stronger
|
|
|
|
#define STATUS_EFFECT_DOUBLEDOWN /datum/status_effect/doubledown //Greatly reduced damage taken
|
|
|
|
#define STATUS_EFFECT_DIAMONDSKIN /datum/status_effect/diamondskin //Increases heat and pressure resistance
|
|
|
|
#define STATUS_EFFECT_HOLYLIGHT_ANTIMAGIC /datum/status_effect/holylight_antimagic //long-term temporary antimagic that makes you blue
|
|
|
|
#define STATUS_EFFECT_HOLYLIGHT_HEALBOOST /datum/status_effect/holylight_healboost //short-term heal boost that grants the chaplain favor
|
|
|
|
#define STATUS_EFFECT_SPEEDBOOST /datum/status_effect/speedboost //applies a speed boost
|
|
|
|
/////////////
|
|
// DEBUFFS //
|
|
/////////////
|
|
|
|
#define STATUS_EFFECT_STUN /datum/status_effect/incapacitating/stun //the affected is unable to move or use items
|
|
|
|
#define STATUS_EFFECT_KNOCKDOWN /datum/status_effect/incapacitating/knockdown //the affected is unable to stand up
|
|
|
|
#define STATUS_EFFECT_IMMOBILIZED /datum/status_effect/incapacitating/immobilized //the affected is unable to move
|
|
|
|
#define STATUS_EFFECT_PARALYZED /datum/status_effect/incapacitating/paralyzed //the affected is unable to move, use items, or stand up.
|
|
|
|
#define STATUS_EFFECT_DAZED /datum/status_effect/incapacitating/dazed //the affected is unable use items but can otherwise do everything else
|
|
|
|
#define STATUS_EFFECT_UNCONSCIOUS /datum/status_effect/incapacitating/unconscious //the affected is unconscious
|
|
|
|
#define STATUS_EFFECT_SLEEPING /datum/status_effect/incapacitating/sleeping //the affected is asleep
|
|
|
|
#define STATUS_EFFECT_PACIFY /datum/status_effect/pacify //the affected is pacified, preventing direct hostile actions
|
|
|
|
#define STATUS_EFFECT_BELLIGERENT /datum/status_effect/belligerent //forces the affected to walk, doing damage if they try to run
|
|
|
|
#define STATUS_EFFECT_GEISTRACKER /datum/status_effect/geis_tracker //if you're using geis, this tracks that and keeps you from using scripture
|
|
|
|
#define STATUS_EFFECT_MANIAMOTOR /datum/status_effect/maniamotor //disrupts, damages, and confuses the affected as long as they're in range of the motor
|
|
#define MAX_MANIA_SEVERITY 100 //how high the mania severity can go
|
|
#define MANIA_DAMAGE_TO_CONVERT 90 //how much damage is required before it'll convert affected targets
|
|
|
|
#define STATUS_EFFECT_CHOKINGSTRAND /datum/status_effect/strandling //Choking Strand
|
|
|
|
#define STATUS_EFFECT_HISWRATH /datum/status_effect/his_wrath //His Wrath.
|
|
|
|
#define STATUS_EFFECT_SUMMONEDGHOST /datum/status_effect/cultghost //is a cult ghost and can't use manifest runes
|
|
|
|
#define STATUS_EFFECT_SHADOWAFFLICTED /datum/status_effect/the_shadow //Heavy hallucinations + ear damage with a shadowman overlay
|
|
|
|
#define STATUS_EFFECT_CRUSHERMARK /datum/status_effect/crusher_mark //if struck with a proto-kinetic crusher, takes a ton of damage
|
|
|
|
#define STATUS_EFFECT_KNUCKLED /datum/status_effect/knuckled //if struck with bloody knuckles or their ability, gets rooted
|
|
|
|
#define STATUS_EFFECT_SAWBLEED /datum/status_effect/saw_bleed //if the bleed builds up enough, takes a ton of damage
|
|
|
|
#define STATUS_EFFECT_BLOODLETTING /datum/status_effect/saw_bleed/bloodletting //same but smaller
|
|
|
|
#define STATUS_EFFECT_EXPOSED /datum/status_effect/exposed //increases incoming damage
|
|
|
|
#define STATUS_EFFECT_EXPOSED_HARPOONED /datum/status_effect/exposed/harpooned //increases incoming damage when hit by a gasharpoon
|
|
|
|
#define STATUS_EFFECT_TAMING /datum/status_effect/taming //tames the target after enough tame stacks
|
|
|
|
#define STATUS_EFFECT_NECROPOLIS_CURSE /datum/status_effect/necropolis_curse
|
|
#define CURSE_BLINDING 1 //makes the edges of the target's screen obscured
|
|
#define CURSE_SPAWNING 2 //spawns creatures that attack the target only
|
|
#define CURSE_WASTING 4 //causes gradual damage
|
|
#define CURSE_GRASPING 8 //hands reach out from the sides of the screen, doing damage and stunning if they hit the target
|
|
|
|
#define STATUS_EFFECT_KINDLE /datum/status_effect/kindle //A knockdown reduced by 1 second for every 3 points of damage the target takes.
|
|
|
|
#define STATUS_EFFECT_ICHORIAL_STAIN /datum/status_effect/ichorial_stain //Prevents a servant from being revived by vitality matrices for one minute.
|
|
|
|
#define STATUS_EFFECT_GONBOLAPACIFY /datum/status_effect/gonbolaPacify //Gives the user gondola traits while the gonbola is attached to them.
|
|
|
|
#define STATUS_EFFECT_SPASMS /datum/status_effect/spasms //causes random muscle spasms
|
|
|
|
#define STATUS_EFFECT_DNA_MELT /datum/status_effect/dna_melt //usually does something horrible to you when you hit 100 genetic instability
|
|
|
|
#define STATUS_EFFECT_GO_AWAY /datum/status_effect/go_away //makes you launch through walls in a single direction for a while
|
|
|
|
#define STATUS_EFFECT_STASIS /datum/status_effect/incapacitating/stasis //Halts biological functions like bleeding, chemical processing, blood regeneration, walking, etc
|
|
|
|
#define STATUS_EFFECT_BROKEN_WILL /datum/status_effect/broken_will //A 30-second sleep effect, ends instantly upon taking enough damage in a single hit. //Yogs
|
|
|
|
#define STATUS_EFFECT_AMOK /datum/status_effect/amok //Makes the target automatically strike out at adjecent non-heretics.
|
|
|
|
#define STATUS_EFFECT_CLOUDSTRUCK /datum/status_effect/cloudstruck //blinds and applies an overlay.
|
|
|
|
#define STATUS_EFFECT_LIMP /datum/status_effect/limp //For when you have a busted leg (or two!) and want additional slowdown when walking on that leg
|
|
|
|
#define STATUS_EFFECT_BRAZIL_PENANCE /datum/status_effect/brazil_penance //controls heretic sacrifice
|
|
|
|
#define STATUS_EFFECT_EXHUMED /datum/status_effect/exhumed //controls the rate of aides reviving
|
|
|
|
#define STATUS_EFFECT_CATCHUP /datum/status_effect/catchup //momentarily slows the victim
|
|
|
|
#define STATUS_EFFECT_VOID_CHILL /datum/status_effect/void_chill
|
|
|
|
#define STATUS_EFFECT_TAUNT /datum/status_effect/taunt //forced movement towards the person applying
|
|
|
|
#define STATUS_EFFECT_HOLY_FIRE /datum/status_effect/holy_fire //not actually fire, more of a short duration damage over time
|
|
|
|
/////////////
|
|
// NEUTRAL //
|
|
/////////////
|
|
|
|
#define STATUS_EFFECT_SIGILMARK /datum/status_effect/sigil_mark
|
|
|
|
#define STATUS_EFFECT_CRUSHERDAMAGETRACKING /datum/status_effect/crusher_damage //tracks total kinetic crusher damage on a target
|
|
|
|
#define STATUS_EFFECT_SYPHONMARK /datum/status_effect/syphon_mark //tracks kills for the KA death syphon module
|
|
|
|
#define STATUS_EFFECT_INLOVE /datum/status_effect/in_love //Displays you as being in love with someone else, and makes hearts appear around them.
|
|
|
|
#define STATUS_EFFECT_BUGGED /datum/status_effect/bugged //Lets other mobs listen in on what it hears
|
|
|
|
#define STATUS_EFFECT_HIVE_TRACKER /datum/status_effect/hive_track
|
|
|
|
#define STATUS_EFFECT_HIVE_RADAR /datum/status_effect/agent_pinpointer/hivemind
|
|
|
|
#define STATUS_EFFECT_BOUNTY /datum/status_effect/bounty //rewards the person who added this to the target with refreshed spells and a fair heal
|
|
|
|
#define STATUS_EFFECT_HELDUP /datum/status_effect/heldup // someone is currently pointing a gun at you
|
|
|
|
#define STATUS_EFFECT_HOLDUP /datum/status_effect/holdup // you are currently pointing a gun at someone
|
|
|
|
#define STATUS_EFFECT_NOTSCARED /datum/status_effect/notscared // you have had a gun pointed at you and are not startled about this fact for a minute
|
|
|
|
#define STATUS_EFFECT_TAGALONG /datum/status_effect/tagalong //allows darkspawn to accompany people's shadows //Yogs
|
|
|
|
#define STATUS_EFFECT_PROGENITORCURSE /datum/status_effect/progenitor_curse
|
|
|
|
#define STATUS_EFFECT_MASQUERADE /datum/status_effect/masquerade
|
|
|
|
#define STATUS_EFFECT_EXPLOSION_PRIME /datum/status_effect/explosion_prime
|
|
|
|
/////////////
|
|
// SLIME //
|
|
/////////////
|
|
|
|
#define STATUS_EFFECT_RAINBOWPROTECTION /datum/status_effect/rainbow_protection //Invulnerable and pacifistic
|
|
#define STATUS_EFFECT_SLIMESKIN /datum/status_effect/slimeskin //Increased armor
|
|
|
|
// Stasis helpers
|
|
|
|
#define IS_IN_STASIS(mob) (mob.life_tickrate == 0)
|
|
#define SHOULD_LIFETICK(living, tick) (living.life_tickrate && MODULUS(tick, living.life_tickrate) < 1)
|
|
|
|
// Status effect application helpers.
|
|
// These are macros for easier use of adjust_timed_status_effect and set_timed_status_effect.
|
|
//
|
|
// adjust_x:
|
|
// - Adds duration to a status effect
|
|
// - Removes duration if a negative duration is passed.
|
|
// - Ex: adjust_stutter(10 SECONDS) adds ten seconds of stuttering.
|
|
// - Ex: adjust_jitter(-5 SECONDS) removes five seconds of jittering, or just removes jittering if less than five seconds exist.
|
|
//
|
|
// adjust_x_up_to:
|
|
// - Will only add (or remove) duration of a status effect up to the second parameter
|
|
// - If the duration will result in going beyond the second parameter, it will stop exactly at that parameter
|
|
// - The second parameter cannot be negative.
|
|
// - Ex: adjust_stutter_up_to(20 SECONDS, 10 SECONDS) adds ten seconds of stuttering.
|
|
//
|
|
// set_x:
|
|
// - Set the duration of a status effect to the exact number.
|
|
// - Setting duration to zero seconds is effectively the same as just using remove_status_effect, or qdelling the effect.
|
|
// - Ex: set_stutter(10 SECONDS) sets the stuttering to ten seconds, regardless of whether they had more or less existing stutter.
|
|
//
|
|
// set_x_if_lower:
|
|
// - Will only set the duration of that effect IF any existing duration is lower than what was passed.
|
|
// - Ex: set_stutter_if_lower(10 SECONDS) will set stuttering to ten seconds if no stuttering or less than ten seconds of stuttering exists
|
|
// - Ex: set_jitter_if_lower(20 SECONDS) will do nothing if more than twenty seconds of jittering already exists
|
|
|
|
#define adjust_stutter(duration) adjust_timed_status_effect(duration, /datum/status_effect/speech/stutter)
|
|
#define adjust_stutter_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/speech/stutter, up_to)
|
|
#define set_stutter(duration) set_timed_status_effect(duration, /datum/status_effect/speech/stutter)
|
|
#define set_stutter_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/speech/stutter, TRUE)
|
|
|
|
#define adjust_derpspeech(duration) adjust_timed_status_effect(duration, /datum/status_effect/speech/stutter/derpspeech)
|
|
#define adjust_derpspeech_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/speech/stutter/derpspeech, up_to)
|
|
#define set_derpspeech(duration) set_timed_status_effect(duration, /datum/status_effect/speech/stutter/derpspeech)
|
|
#define set_derpspeech_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/speech/stutter/derpspeech, TRUE)
|
|
|
|
#define adjust_slurring(duration) adjust_timed_status_effect(duration, /datum/status_effect/speech/slurring/generic)
|
|
#define adjust_slurring_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/speech/slurring/generic, up_to)
|
|
#define set_slurring(duration) set_timed_status_effect(duration, /datum/status_effect/speech/slurring/generic)
|
|
#define set_slurring_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/speech/slurring/generic, TRUE)
|
|
|
|
#define adjust_dizzy(duration) adjust_timed_status_effect(duration, /datum/status_effect/dizziness)
|
|
#define adjust_dizzy_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/dizziness, up_to)
|
|
#define set_dizzy(duration) set_timed_status_effect(duration, /datum/status_effect/dizziness)
|
|
#define set_dizzy_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/dizziness, TRUE)
|
|
|
|
#define adjust_jitter(duration) adjust_timed_status_effect(duration, /datum/status_effect/jitter)
|
|
#define adjust_jitter_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/jitter, up_to)
|
|
#define set_jitter(duration) set_timed_status_effect(duration, /datum/status_effect/jitter)
|
|
#define set_jitter_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/jitter, TRUE)
|
|
|
|
#define adjust_confusion(duration) adjust_timed_status_effect(duration, /datum/status_effect/confusion)
|
|
#define adjust_confusion_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/confusion, up_to)
|
|
#define set_confusion(duration) set_timed_status_effect(duration, /datum/status_effect/confusion)
|
|
#define set_confusion_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/confusion, TRUE)
|
|
|
|
#define adjust_red_eye(duration) adjust_timed_status_effect(duration, /datum/status_effect/red_eye)
|
|
#define adjust_red_eye_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/red_eye, up_to)
|
|
#define set_red_eye(duration) set_timed_status_effect(duration, /datum/status_effect/red_eye)
|
|
#define set_red_eye_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/red_eye, TRUE)
|
|
|
|
#define adjust_drugginess(duration) adjust_timed_status_effect(duration, /datum/status_effect/drugginess)
|
|
#define adjust_drugginess_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/drugginess, up_to)
|
|
#define set_drugginess(duration) set_timed_status_effect(duration, /datum/status_effect/drugginess)
|
|
#define set_drugginess_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/drugginess, TRUE)
|
|
|
|
#define adjust_blue_eye(duration) adjust_timed_status_effect(duration, /datum/status_effect/blue_eye)
|
|
#define adjust_blue_eye_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/blue_eye, up_to)
|
|
#define set_blue_eye(duration) set_timed_status_effect(duration, /datum/status_effect/blue_eye)
|
|
#define set_blue_eye_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/blue_eye, TRUE)
|
|
|
|
#define adjust_silence(duration) adjust_timed_status_effect(duration, /datum/status_effect/silenced)
|
|
#define adjust_silence_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/silenced, up_to)
|
|
#define set_silence(duration) set_timed_status_effect(duration, /datum/status_effect/silenced)
|
|
#define set_silence_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/silenced, TRUE)
|
|
|
|
#define adjust_hallucinations(duration) adjust_timed_status_effect(duration, /datum/status_effect/hallucination)
|
|
#define adjust_hallucinations_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/hallucination, up_to)
|
|
#define set_hallucinations(duration) set_timed_status_effect(duration, /datum/status_effect/hallucination)
|
|
#define set_hallucinations_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/hallucination, TRUE)
|
|
|
|
#define adjust_drowsiness(duration) adjust_timed_status_effect(duration, /datum/status_effect/drowsiness)
|
|
#define adjust_drowsiness_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/drowsiness, up_to)
|
|
#define set_drowsiness(duration) set_timed_status_effect(duration, /datum/status_effect/drowsiness)
|
|
#define set_drowsiness_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/drowsiness, TRUE)
|
|
|
|
#define adjust_pacifism(duration) adjust_timed_status_effect(/datum/status_effect/pacify, duration)
|
|
#define set_pacifism(duration) set_timed_status_effect(/datum/status_effect/pacify, duration)
|
|
|
|
#define adjust_eye_blur(duration) adjust_timed_status_effect(duration, /datum/status_effect/eye_blur)
|
|
#define adjust_eye_blur_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/eye_blur, up_to)
|
|
#define set_eye_blur(duration) set_timed_status_effect(duration, /datum/status_effect/eye_blur)
|
|
#define set_eye_blur_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/eye_blur, TRUE)
|
|
|
|
#define adjust_temp_blindness(duration) adjust_timed_status_effect(duration, /datum/status_effect/temporary_blindness)
|
|
#define adjust_temp_blindness_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/temporary_blindness, up_to)
|
|
#define set_temp_blindness(duration) set_timed_status_effect(duration, /datum/status_effect/temporary_blindness)
|
|
#define set_temp_blindness_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/temporary_blindness, TRUE)
|
|
|
|
//Incapacitated status effect flags
|
|
/// If the incapacitated status effect will ignore a mob in restraints (handcuffs)
|
|
#define IGNORE_RESTRAINTS (1<<0)
|
|
/// If the incapacitated status effect will ignore a mob in stasis (stasis beds)
|
|
#define IGNORE_STASIS (1<<1)
|
|
/// If the incapacitated status effect will ignore a mob being agressively grabbed
|
|
#define IGNORE_GRAB (1<<2)
|