mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-21 22:47:19 +00:00
This refactors the antimagic component to use and have bitflags, documentation, defines, code comments, named arguments, and renames variable names for clarity. - /obj/effect/proc_holder/spell/aoe_turf/conjure/creature/cult is not used anywhere and has been removed - /obj/effect/proc_holder/spell/targeted/turf_teleport/blink/cult is not used anywhere and has been removed - New sound effects are played when magic is blocked. Depending on the type of magic being used it will be either: - Equipping antimagic now properly updates the magic buttons - Any magic being blocked or restricting casting now displays a message - MAGIC_RESISTANCE_MIND now properly blocks telepathy effects - Removes blood splatter when fireball is blocked - Magic projectiles for staff of locker no longer spawn lockers when blocked by antimagic - Fire breath is no longer blocked by antimagic - Spellcards are now blocked by antimagic Any antimagic on a mob blocks that magic type from being casted. (certain spells such as mime abilities completely ignore antimagic) - Foilhats prevent someone from casting mind magic (telepathy, mindswap, etc.) - Bibles, ritual Totems, nullrods, holymelons, and TRAIT_HOLY prevent someone from casting unholy magic (cult spells, etc.) - Nullrods, ritual totem, and holymelons prevent someone from casting wizard magic (fireball, magic missile, etc.) - Immorality talismans, berserker suits, and TRAIT_ANTIMAGIC prevents all types of magic (except stuff like mime abilities) - Touch of Madness and Mindswap is now blocked with MAGIC_RESISTANCE and MAGIC_RESISTANCE_MIND - Voice of god is now blocked with MAGIC_RESISTANCE_HOLY and MAGIC_RESISTANCE_MIND
38 lines
1.9 KiB
Plaintext
38 lines
1.9 KiB
Plaintext
//schools of magic - unused for years and years on end, finally has a use with chaplains getting punished for using "evil" spells
|
|
|
|
//use this if your spell isn't actually a spell, it's set by default (and actually, i really suggest if that's the case you should use datum/actions instead - see spider.dm for an example)
|
|
#define SCHOOL_UNSET "unset"
|
|
|
|
//GOOD SCHOOLS (allowed by honorbound gods, some of these you can get on station)
|
|
#define SCHOOL_HOLY "holy"
|
|
#define SCHOOL_MIME "mime"
|
|
#define SCHOOL_RESTORATION "restoration" //heal shit
|
|
|
|
//NEUTRAL SPELLS (punished by honorbound gods if you get caught using it)
|
|
#define SCHOOL_EVOCATION "evocation" //kill or destroy shit, usually out of thin air
|
|
#define SCHOOL_TRANSMUTATION "transmutation" //transform shit
|
|
#define SCHOOL_TRANSLOCATION "translocation" //movement based
|
|
#define SCHOOL_CONJURATION "conjuration" //summoning
|
|
|
|
//EVIL SPELLS (instant smite + banishment)
|
|
#define SCHOOL_NECROMANCY "necromancy" //>>>necromancy
|
|
#define SCHOOL_FORBIDDEN "forbidden" //>heretic shit and other fucked up magic
|
|
|
|
//invocation types - what does the wizard need to do to invoke (cast) the spell?
|
|
|
|
///Allows being able to cast the spell without saying anything.
|
|
#define INVOCATION_NONE "none"
|
|
///Forces the wizard to shout (and be able to) to cast the spell.
|
|
#define INVOCATION_SHOUT "shout"
|
|
///Forces the wizard to emote (and be able to) to cast the spell.
|
|
#define INVOCATION_EMOTE "emote"
|
|
///Forces the wizard to whisper (and be able to) to cast the spell.
|
|
#define INVOCATION_WHISPER "whisper"
|
|
|
|
/// Default magic resistance that blocks normal magic (wizard, spells, magical staff projectiles)
|
|
#define MAGIC_RESISTANCE (1<<0)
|
|
/// Tinfoil hat magic resistance that blocks mental magic (telepathy, mind curses, abductors, jelly people)
|
|
#define MAGIC_RESISTANCE_MIND (1<<1)
|
|
/// Holy magic resistance that blocks unholy magic (revenant, cult, vampire, voice of god)
|
|
#define MAGIC_RESISTANCE_HOLY (1<<2)
|