Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
# CIRCLE FIVE
SMITE = Spell( "Smite",
"A bolt of lightning will unerringly strike all targets in a 2 tile radius for 3d10 damage.",
effects.HealthDamage( (3,10,0), stat_bonus=stats.INTELLIGENCE, element=stats.RESIST_LIGHTNING, anim=animobs.BlueZap ),
rank=5, gems={AIR:3,SOLAR:1}, com_tar=targetarea.Blast(radius=2), shot_anim=animobs.Lightning,
ai_tar=invocations.TargetEnemy(min_distance=3) )
SPELL_SHIELD = Spell( "Spell Shield",
"All allies within 6 tiles get +25% aura until the end of combat.",
effects.TargetIsAlly( on_true = (
effects.Enchant( enchantments.SpellShieldEn, anim=animobs.YellowSparkle ),
)),
rank=5, gems={SOLAR:1,WATER:1}, com_tar=targetarea.SelfCentered(),
ai_tar=invocations.TargetAllyWithoutEnchantment(enchantments.SpellShieldEn) )
# CIRCLE SIX
JUSTICE = Spell( "Justice",
"Calls down divine judgment on all targets within 6 tiles. The good will be healed and blessed, the evil will be punished.",
effects.TargetIsAlly( on_true = (
effects.Enchant( enchantments.BlessingEn, anim=animobs.YellowSparkle ),
effects.TargetIsDamaged( on_true= (
effects.HealthRestore( dice=(3,12,0) ),
))
), on_false=(
effects.TargetIsEnemy( on_true = (
effects.HealthDamage( (3,12,0), stat_bonus=stats.INTELLIGENCE, element=stats.RESIST_SOLAR, anim=animobs.Pearl ),
)),
) ), rank=6, gems={AIR:1,SOLAR:2}, com_tar=targetarea.SelfCentered(), mpfudge=3 )
"This spell will call forth the living spirit of the mountains to fight alongside you.",
effects.CallMonster( {context.DES_EARTH: True, context.SUMMON_ELEMENTAL: True }, 12, anim=animobs.OrangeSparkle ),
rank=6, gems={EARTH:3}, com_tar=targetarea.SingleTarget(reach=5), ai_tar=invocations.TargetEmptySpot(), mpfudge = 12 )
# CIRCLE 7
# Wall of Iron
# CIRCLE 8
IRON_SKIN = Spell( "Iron Skin",
"Transforms a single ally, providing +10% to defense and aura plus 75% resistance to slashing, crushing, and piercing damage.",
effects.Enchant( enchantments.IronSkinEn, anim=animobs.OrangeSparkle ),
rank=8, gems={EARTH:4}, com_tar=targetarea.SingleTarget(),
ai_tar=invocations.TargetAllyWithoutEnchantment(enchantments.IronSkinEn), mpfudge=-2 )
# CIRCLE 9
EARTHQUAKE = Spell( "Earthquake",
"The land itself will attack your foes. Tremors do 12d6 crushing damage to all enemies within 8 tiles.",
effects.TargetIsEnemy( anim=animobs.EarthBoom, on_true = (
effects.OpposedRoll( def_stat=stats.REFLEXES, on_success = (
effects.HealthDamage( (12,6,0), stat_bonus=stats.INTELLIGENCE, element=stats.RESIST_CRUSHING, anim=animobs.RedBoom )
,), on_failure = (
effects.HealthDamage( (3,12,0), stat_bonus=None, element=stats.RESIST_CRUSHING, anim=animobs.RedBoom )
,) )
,) ), rank=9, gems={EARTH:5}, com_tar=targetarea.SelfCentered(radius=8,delay_from=-1,exclude_middle=True),
ai_tar=invocations.TargetEnemy() )
rank=3, gems={LUNAR:1,WATER:1}, com_tar=targetarea.SelfCentered(),
ai_tar=invocations.TargetAllyWithoutEnchantment(enchantments.ProtectFromGoodEn) )
# CIRCLE FOUR
RAISE_UNDEAD = Spell( "Raise Undead",
"You conjure dark forces to animate an undead creature which will fight on your behaf.",
effects.CallMonster( {context.MTY_UNDEAD: True, context.DES_LUNAR: context.MAYBE, context.GEN_UNDEAD: context.MAYBE}, 8, anim=animobs.PurpleSparkle ),
rank=4, gems={EARTH:1,LUNAR:2}, com_tar=targetarea.SingleTarget(reach=2), ai_tar=invocations.TargetEmptySpot(), mpfudge=6 )
ICE_WEAPON = Spell( "Icy Weapon",
"One ally's weapon will glow with magical cold, causing an extra 1-10 points of damge per hit and potentially freezing enemies solid. This effect lasts until the end of combat.",
effects.Enchant( enchantments.FrostWepEn, anim=animobs.PurpleSparkle ),
rank=4, gems={LUNAR:1,WATER:1}, com_tar=targetarea.SinglePartyMember(),
ai_tar=invocations.TargetAllyWithoutEnchantment(enchantments.FrostWepEn) )
# Miasma (EW)
# CIRCLE FIVE
# Deadly Fog (EL)
# Control Undead (LW)
# CIRCLE SIX
RAISE_SPIRIT = Spell( "Raise Spirit",
"You conjure dark forces to animate and command a powerful undead creature which will fight on your behaf.",
effects.CallMonster( {context.MTY_UNDEAD: True, context.DES_LUNAR: context.MAYBE, context.GEN_UNDEAD: context.MAYBE}, 12, anim=animobs.PurpleSparkle ),
rank=6, gems={EARTH:2,LUNAR:2}, com_tar=targetarea.SingleTarget(reach=2), ai_tar=invocations.TargetEmptySpot(), mpfudge=8 )
# Tame Animal (FS)
# Wolf Form (EF)
# CIRCLE THREE
CALL_CREATURE = Spell( "Call Creature",
"This spell will summon a large natural creature to fight on your behaf.",
effects.CallMonster( {context.MTY_CREATURE: True, context.DES_EARTH: context.MAYBE, context.GEN_NATURE: context.MAYBE, context.DES_SOLAR: context.MAYBE}, 6, anim=animobs.OrangeSparkle ),
rank=3, gems={EARTH:2,SOLAR:1}, com_tar=targetarea.SingleTarget(reach=2), ai_tar=invocations.TargetEmptySpot(), mpfudge = 6 )
SLIMY_WEAPON = Spell( "Slimy Weapon",
"One ally's weapon will be coated in caustic slime which causes an extra 1d10 acid damage and may corrode an opponent's armor.",
effects.Enchant( enchantments.AcidWepEn, anim=animobs.OrangeSparkle ),
rank=3, gems={EARTH:1}, com_tar=targetarea.SingleTarget(),
ai_tar=invocations.TargetAllyWithoutEnchantment(enchantments.AcidWepEn) )
# Firebird (FS)
# CIRCLE FOUR
CALL_BEAST = Spell( "Call Beast",
"This spell will summon a powerful creature to fight on your behaf.",
effects.CallMonster( {context.MTY_CREATURE: True, context.DES_EARTH: context.MAYBE, context.GEN_NATURE: context.MAYBE, context.DES_SOLAR: context.MAYBE}, 8, anim=animobs.OrangeSparkle ),
rank=4, gems={EARTH:2,SOLAR:1}, com_tar=targetarea.SingleTarget(reach=2), ai_tar=invocations.TargetEmptySpot(), mpfudge = 9 )
# Tame Plants (FS)
# Web (EF)
# CIRCLE FIVE
CALL_MONSTER = Spell( "Call Monster",
"This attack does 2d5 acid damage to a single target, and may corrode the target's armor.",
effects.OpposedRoll( on_success = (
effects.HealthDamage( (2,5,0), stat_bonus=stats.INTELLIGENCE, element=stats.RESIST_ACID, anim=animobs.GreenExplosion ),
effects.OpposedRoll( def_stat=stats.TOUGHNESS, on_success = (
effects.Enchant( enchantments.ArmorDamage, anim=animobs.OrangeSparkle )
,))
), on_failure = (
effects.HealthDamage( (1,5,0), stat_bonus=None, element=stats.RESIST_ACID, anim=animobs.GreenExplosion )
,) ), rank=2, gems={EARTH:1}, com_tar=targetarea.SingleTarget(), shot_anim=animobs.GreenSpray,
ai_tar=invocations.TargetEnemy() )
BEASTLY_MIGHT = Spell( "Beastly Might",
"Imbues a single ally with supernatural strength, giving +4 strength, +4 toughness, and +5% to attack.",
effects.Enchant( enchantments.BeastlyMightEn, anim=animobs.OrangeSparkle ),
rank=2, gems={EARTH:1}, com_tar=targetarea.SingleTarget(),
ai_tar=invocations.TargetAllyWithoutEnchantment(enchantments.BeastlyMightEn) )
# CIRCLE 3
SHAPE_FLESH = Spell( "Shape Flesh",
"By touching a living creature, you may reshape its flesh so as to either cause or cure 3-18 damage.",
effects.TargetIs( effects.ALIVE, on_true= (
effects.TargetIsAlly( on_true=(
effects.HealthRestore( dice=(3,6,0) ), ),),
effects.TargetIsEnemy( on_true=(
effects.HealthDamage( (3,6,0), stat_bonus=None, element=stats.RESIST_ATOMIC, anim=animobs.RedBoom )
,))
), on_false = (
effects.NoEffect( anim=animobs.SmallBoom ),
)),
rank=3, gems={EARTH:2}, com_tar=targetarea.SingleTarget(reach=1),
# CIRCLE ONE
FIRE_BOLT = Spell( "Fire Bolt",
"This attack does 1d8 fire damage to a single target.",
effects.OpposedRoll( att_modifier=10, on_success = (
effects.HealthDamage( (1,8,0), stat_bonus=stats.INTELLIGENCE, element=stats.RESIST_FIRE, anim=animobs.OrangeExplosion )
,), on_failure = (
effects.HealthDamage( (1,8,0), stat_bonus=None, element=stats.RESIST_FIRE, anim=animobs.OrangeExplosion )
,) ), rank=1, gems={FIRE:1}, com_tar=targetarea.SingleTarget(),
shot_anim=animobs.FireBolt, ai_tar=invocations.TargetEnemy() )
BURNING_WEAPON = Spell( "Burning Weapon",
"Magical flames burst from an ally's weapon, causing an extra 1-6 points of damge per hit. This effect lasts until the end of combat.",
effects.Enchant( enchantments.FireWepEn, anim=animobs.RedSparkle ),
rank=1, gems={FIRE:1}, com_tar=targetarea.SinglePartyMember(),
ai_tar=invocations.TargetAllyWithoutEnchantment(enchantments.FireWepEn) )
# CIRCLE 2
BLINDING_FLASH = Spell( "Blinding Flash",
"A sudden flash of light will daze, and possibly stun, all enemies within 4 tiles.",
effects.TargetIsEnemy( on_true = (
effects.Enchant( enchantments.BlindedEn, anim=animobs.RedSparkle ),
effects.OpposedRoll( att_modifier=-20, on_success = (
effects.Paralyze( max_duration = 2 )
,) )
) ), rank=2, gems={FIRE:2}, com_tar=targetarea.SelfCentered(radius=4), ai_tar=invocations.TargetEnemy() )
IGNITE = Spell( "Ignite",
"You touch one opponent, causing them to burst into flame. The target suffers 2d5 fire damage and may continue burning.",
effects.OpposedRoll( on_success = (
effects.HealthDamage( (2,5,0), stat_bonus=stats.INTELLIGENCE, element=stats.RESIST_FIRE, anim=animobs.Ignite ),
"Infuses a single ally will life energy, allowing them to regenerate 1d6 health per turn.",
effects.Enchant( enchantments.RegeneratEn, anim=animobs.GreenSparkle, children=(
effects.HealthRestore( dice=(1,6,0) )
,) ),
rank=3, gems={WATER:2}, com_tar=targetarea.SingleTarget(), exp_tar=targetarea.SinglePartyMember(),
ai_tar=invocations.TargetWoundedAlly() )
# CIRCLE FOUR
RESIST_ELEMENTS = Spell( "Resist Elements",
"All allies within 6 tiles get 50% resistance to wind, water, and poison damage for the duration of combat.",
effects.TargetIsAlly( on_true = (
effects.Enchant( enchantments.ResistElementsEn, anim=animobs.GreenSparkle ),
)),
rank=4, gems={WATER:2}, com_tar=targetarea.SelfCentered(),
ai_tar=invocations.TargetAllyWithoutEnchantment(enchantments.ResistElementsEn) )
# CIRCLE FIVE
HEALING_MISTS = Spell( "Healing Mists",
"The party is bathed in beneficial vapors, allowing all allies to regenerate their wounds.",
effects.TargetIsAlly( on_true = (
effects.Enchant( enchantments.RegeneratEn, anim=animobs.GreenSparkle ),
)),
rank=5, gems={WATER:3}, com_tar=targetarea.SelfCentered(), exp_tar=targetarea.AllPartyMembers(),
ai_tar=invocations.TargetWoundedAlly() )
# CIRCLE SIX
TSUNAMI = Spell( "Tsunami",
"Conjures a tidal wave which strikes foes for 5d10 water damage.",
POISON_WEAPON = Spell( "Poison Weapon",
"Enhances one ally's weapon with poison, causing an extra 2d6 damage at first and potentially more damage later.",
effects.Enchant( enchantments.PoisonWepEn, anim=animobs.OrangeSparkle ),
rank=5, gems={EARTH:2}, com_tar=targetarea.SingleTarget(),
ai_tar=invocations.TargetAllyWithoutEnchantment(enchantments.PoisonWepEn), mpfudge=-2 )
# Wall of Stone
# CIRCLE 6
STONE_SKIN = Spell( "Stone Skin",
"Transforms a single ally, providing +10% to defense and aura plus 50% resistance to slashing, crushing, and piercing damage.",
effects.Enchant( enchantments.StoneSkinEn, anim=animobs.OrangeSparkle ),
rank=6, gems={EARTH:3}, com_tar=targetarea.SingleTarget(),
ai_tar=invocations.TargetAllyWithoutEnchantment(enchantments.StoneSkinEn), mpfudge=-2 )
CALL_EARTH_ELEMENTAL = Spell( "Call Earth Elemental",
"This spell will call forth the living spirit of the mountains to fight alongside you.",
effects.CallMonster( {context.DES_EARTH: True, context.SUMMON_ELEMENTAL: True }, 12, anim=animobs.OrangeSparkle ),
rank=6, gems={EARTH:3}, com_tar=targetarea.SingleTarget(reach=5), ai_tar=invocations.TargetEmptySpot(), mpfudge = 12 )
# CIRCLE 7
# Wall of Iron
# CIRCLE 8
IRON_SKIN = Spell( "Iron Skin",
"Transforms a single ally, providing +10% to defense and aura plus 75% resistance to slashing, crushing, and piercing damage.",
effects.Enchant( enchantments.IronSkinEn, anim=animobs.OrangeSparkle ),
ACID_CLOUD = Spell( "Acid Cloud",
"Calls forth billowing clouds of acid which do 2d6 damage to all targets within 3 tiles.",
effects.OpposedRoll( on_success = (
effects.HealthDamage( (2,6,0), stat_bonus=stats.INTELLIGENCE, element=stats.RESIST_ACID, anim=animobs.GreenCloud )
,), on_failure = (
effects.HealthDamage( (1,6,0), stat_bonus=None, element=stats.RESIST_ACID, anim=animobs.GreenCloud )
,) ), rank=3, gems={EARTH:1,LUNAR:1}, com_tar=targetarea.Blast(radius=3), shot_anim=animobs.GreenComet,
ai_tar=invocations.TargetEnemy(min_distance=4) )
PROTECT_FROM_GOOD = Spell( "Protection from Good",
"All allies within 6 tiles get +10% defense, +10% aura, and 50% resistance to holy damage for the duration of combat.",
effects.TargetIsAlly( on_true = (
effects.Enchant( enchantments.ProtectFromGoodEn, anim=animobs.PurpleSparkle ),
)),
rank=3, gems={LUNAR:1,WATER:1}, com_tar=targetarea.SelfCentered(),
ai_tar=invocations.TargetAllyWithoutEnchantment(enchantments.ProtectFromGoodEn) )
# CIRCLE FOUR
RAISE_UNDEAD = Spell( "Raise Undead",
"You conjure dark forces to animate an undead creature which will fight on your behaf.",
effects.CallMonster( {context.MTY_UNDEAD: True, context.DES_LUNAR: context.MAYBE, context.GEN_UNDEAD: context.MAYBE}, 8, anim=animobs.PurpleSparkle ),
rank=4, gems={EARTH:1,LUNAR:2}, com_tar=targetarea.SingleTarget(reach=2), ai_tar=invocations.TargetEmptySpot(), mpfudge=6 )
ICE_WEAPON = Spell( "Icy Weapon",
"One ally's weapon will glow with magical cold, causing an extra 1-10 points of damge per hit and potentially freezing enemies solid. This effect lasts until the end of combat.",
effects.Enchant( enchantments.FrostWepEn, anim=animobs.PurpleSparkle ),
rank=4, gems={LUNAR:1,WATER:1}, com_tar=targetarea.SinglePartyMember(),
ai_tar=invocations.TargetAllyWithoutEnchantment(enchantments.FrostWepEn) )
# Miasma (EW)