class GemOfHolograms(Consumable):
    true_name = "Gem of Holograms"
    true_desc = "This gem may be used to summon an illusory monster to aid you in combat."
    itemtype = GEM
    mass_per_q = 3
    cost_per_q = 600
    tech = invocations.Invocation(
        "Create Illusion",
        effects.CallMonster({(context.HAB_EVERY, context.SET_EVERY): True},
                            5,
                            anim=animobs.BlueSparkle),
        com_tar=targetarea.SingleTarget(reach=5),
        ai_tar=invocations.TargetEmptySpot(),
        exp_tar=None)
Пример #2
0
                            element=stats.RESIST_FIRE,
                            anim=animobs.DragonFire), )),
    rank=5,
    gems={FIRE: 3},
    com_tar=targetarea.Cone(),
    ai_tar=invocations.TargetEnemy())

# CIRCLE 6

CALL_FIRE_ELEMENTAL = Spell(
    "Call Fire Elemental",
    "This spell will call forth a living vortex of fire to serve you for the duration of combat.",
    effects.CallMonster(
        {
            context.DES_FIRE: True,
            context.SUMMON_ELEMENTAL: True
        },
        12,
        anim=animobs.RedSparkle),
    rank=6,
    gems={FIRE: 3},
    com_tar=targetarea.SingleTarget(reach=5),
    ai_tar=invocations.TargetEmptySpot(),
    mpfudge=12)

# CIRCLE SEVEN

DISINTEGRATION = Spell(
    "Disintegration",
    "The primal flames of the universe are called forth to reduce a single target to dust. This spell does 10d10 atomic damage on a successful hit.",
    effects.OpposedRoll(
Пример #3
0
                (3, 12, 0),
                stat_bonus=stats.INTELLIGENCE,
                element=stats.RESIST_SOLAR,
                anim=animobs.YellowExplosion), )), ),
        on_false=(effects.NoEffect(anim=animobs.Caption), )),
    rank=6,
    gems={AIR: 2},
    com_tar=targetarea.SingleTarget(),
    shot_anim=animobs.MysticBolt)

CALL_AIR_ELEMENTAL = Spell(
    "Call Air Elemental",
    "This spell will summon a living embodiment of the skies to fight on your behalf.",
    effects.CallMonster({
        context.DES_AIR: True,
        context.SUMMON_ELEMENTAL: True
    },
                        12,
                        anim=animobs.BlueSparkle),
    rank=6,
    gems={AIR: 3},
    com_tar=targetarea.SingleTarget(reach=5),
    ai_tar=invocations.TargetEmptySpot(),
    mpfudge=12)

# CIRCLE SEVEN

# CIRCLE EIGHT

THUNDER_STORM = Spell(
    "Thunder Storm",
    "Calls down the wrath of the heavens. All targets within a 5 tile radius will be struck for 10d8 lightning damage.",
    "Earthbind",
    "Conjures plants which grab at travelers, making passage through the area very difficult.",
    effects.PlaceField(enchantments.Entanglement, anim=animobs.OrangeSparkle),
    rank=1,
    gems={EARTH: 1},
    com_tar=targetarea.Blast(radius=4),
    mpfudge=1,
    ai_tar=invocations.TargetEnemyWithoutField(enchantments.Entanglement, 5))

CALL_CRITTER = Spell(
    "Call Critter",
    "This spell will summon a small woodland creature to fight on your behaf.",
    effects.CallMonster(
        {
            context.MTY_CREATURE: True,
            context.DES_EARTH: context.MAYBE,
            context.GEN_NATURE: context.MAYBE
        },
        2,
        anim=animobs.OrangeSparkle),
    rank=1,
    gems={EARTH: 1},
    com_tar=targetarea.SingleTarget(reach=2),
    ai_tar=invocations.TargetEmptySpot(),
    mpfudge=3)

# CIRCLE 2

ACID_BOLT = Spell(
    "Acid Bolt",
    "This attack does 2d5 acid damage to a single target, and may corrode the target's armor.",
    effects.OpposedRoll(
# of those colors.

# CIRCLE ONE

ICE_BOLT = Spell( "Icy Bolt",
    "This attack does 1d8 cold damage to a single target.",
    effects.OpposedRoll( att_modifier=15, on_success = (
        effects.HealthDamage( (1,8,0), stat_bonus=stats.INTELLIGENCE, element=stats.RESIST_COLD, anim=animobs.BlueExplosion )
    ,), on_failure = (
        effects.HealthDamage( (1,3,0), stat_bonus=None, element=stats.RESIST_COLD, anim=animobs.BlueExplosion )
    ,) ), rank=1, gems={LUNAR:1,WATER:1}, com_tar=targetarea.SingleTarget(), shot_anim=animobs.BlueBolt, mpfudge=-1,
    ai_tar=invocations.TargetEnemy() )

RAISE_SKELETON = Spell( "Raise Skeleton",
    "You conjure dark forces to animate a skeleton which will fight on your behaf.",
    effects.CallMonster( {context.MTY_UNDEAD: True, context.DES_LUNAR: context.MAYBE, context.GEN_UNDEAD: context.MAYBE}, 2, anim=animobs.PurpleSparkle ),
    rank=1, gems={EARTH:1,LUNAR:1}, com_tar=targetarea.SingleTarget(reach=2), ai_tar=invocations.TargetEmptySpot() )

# CIRCLE 2

RAISE_CORPSE = Spell( "Raise Corpse",
    "You conjure dark forces to animate a lesser undead creature which will fight on your behaf.",
    effects.CallMonster( {context.MTY_UNDEAD: True, context.DES_LUNAR: context.MAYBE, context.GEN_UNDEAD: context.MAYBE}, 4, anim=animobs.PurpleSparkle ),
    rank=2, gems={EARTH:1,LUNAR:1}, com_tar=targetarea.SingleTarget(reach=2), ai_tar=invocations.TargetEmptySpot(), mpfudge=4 )

TOUCH_OF_DEATH = Spell( "Touch of Death",
    "You touch one opponent, delivering the chill of the grave. The target suffers 2d5 cold damage and may be paralyzed.",
    effects.OpposedRoll( att_modifier=10, on_success = (
        effects.HealthDamage( (2,5,0), stat_bonus=stats.INTELLIGENCE, element=stats.RESIST_COLD, anim=animobs.BlueExplosion ),
        effects.Paralyze( max_duration = 3 )
    ,), on_failure = (
Пример #6
0
# CIRCLE ONE

ACID_SPRAY = Spell( "Acid Spray",
    "A stream of acid sprays forth, burning enemies for 1d6 damage. This spell has a short range but can affect several targets.",
    effects.OpposedRoll( on_success = (
        effects.HealthDamage( (1,6,0), stat_bonus=stats.INTELLIGENCE, element=stats.RESIST_ACID, anim=animobs.GreenExplosion )
    ,), on_failure = (
        effects.HealthDamage( (1,2,0), stat_bonus=None, element=stats.RESIST_ACID, anim=animobs.GreenExplosion )
    ,) ), rank=1, gems={FIRE:1,EARTH:1}, com_tar=targetarea.Cone(reach=3), ai_tar=invocations.TargetEnemy() )


# CIRCLE TWO

CALL_ANIMAL = Spell( "Call Animal",
    "This spell will summon a 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}, 4, anim=animobs.OrangeSparkle ),
    rank=2, gems={EARTH:1,SOLAR:1}, com_tar=targetarea.SingleTarget(reach=2), ai_tar=invocations.TargetEmptySpot(), mpfudge = 4 )

# 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) )
                                          anim=animobs.Pearl), )), )),
    rank=6,
    gems={
        AIR: 1,
        SOLAR: 2
    },
    com_tar=targetarea.SelfCentered(),
    mpfudge=3)

DIVINE_AID = Spell(
    "Divine Aid",
    "A celestial being will answer your call to aid you in this combat.",
    effects.CallMonster(
        {
            context.MTY_CELESTIAL: True,
            context.DES_SOLAR: context.MAYBE,
            context.DES_WATER: context.MAYBE
        },
        12,
        anim=animobs.YellowSparkle),
    rank=6,
    gems={
        WATER: 2,
        SOLAR: 2
    },
    com_tar=targetarea.SingleTarget(reach=2),
    ai_tar=invocations.TargetEmptySpot(),
    mpfudge=12)

# CIRCLE SEVEN

# CIRCLE EIGHT
Пример #8
0
    "Burns all enemies within 6 tiles with a flaming sigil, doing 2d4 damage and preventing them from hiding.",
    effects.TargetIsEnemy( on_true = (
        effects.OpposedRoll( on_success = (
            effects.HealthDamage( (2,4,0), stat_bonus=stats.INTELLIGENCE, element=stats.RESIST_FIRE, anim=animobs.RedCloud )
        ,), on_failure = (
            effects.HealthDamage( (1,4,1), stat_bonus=None, element=stats.RESIST_FIRE, anim=animobs.RedCloud )
        ,)),
        effects.Enchant( enchantments.FireSignEn, anim=None )
    ) ), rank=3, gems={AIR:1,FIRE:1}, com_tar=targetarea.SelfCentered(), ai_tar=invocations.TargetEnemy() )


# CIRCLE FOUR

ANIMATION = Spell( "Animation",
    "This spell will temporarily imbue inanimate objects with life.",
    effects.CallMonster( {context.MTY_CONSTRUCT: True, context.DES_AIR: context.MAYBE, context.DES_FIRE: context.MAYBE}, 8, anim=animobs.RedSparkle ),
    rank=4, gems={AIR:1,FIRE:1}, com_tar=targetarea.SingleTarget(reach=2), ai_tar=invocations.TargetEmptySpot(), mpfudge = 10 )

INCINERATE = Spell( "Incinerate",
    "Eldritch flames envelop a single foe, doing 6d6 fire damage and possibly setting the target alight.",
    effects.OpposedRoll( on_success = (
        effects.HealthDamage( (6,6,0), stat_bonus=stats.INTELLIGENCE, element=stats.RESIST_FIRE, anim=animobs.RedCloud ),
        effects.Enchant( enchantments.BurnLowEn )
    ), on_failure = (
        effects.HealthDamage( (2,8,1), stat_bonus=None, element=stats.RESIST_FIRE, anim=animobs.RedCloud ),
    ) ), rank=4, gems={FIRE:1,LUNAR:1}, com_tar=targetarea.SingleTarget(), shot_anim=animobs.FireBolt, ai_tar=invocations.TargetEnemy() )


# CIRCLE FIVE

# CIRCLE SIX
        effects.HealthDamage((1,8,0), stat_bonus=stats.INTELLIGENCE, element=stats.RESIST_SOLAR, anim=animobs.YellowExplosion ),
        effects.ManaDamage((1,8,0), stat_bonus=stats.INTELLIGENCE, anim=animobs.PurpleExplosion ),
    ), on_failure = (
        effects.HealthDamage((1,4,0), stat_bonus=None, element=stats.RESIST_SOLAR, anim=animobs.YellowExplosion ),
        effects.ManaDamage((1,4,0), stat_bonus=None, anim=animobs.PurpleExplosion ),
    )),
    rank=2, gems={LUNAR:1,SOLAR:1}, com_tar=targetarea.SingleTarget(), shot_anim=animobs.WizardMissile,
    ai_tar=invocations.TargetEnemy(), mpfudge=-3 )



# CIRCLE THREE

CHAOTIC_AID = Spell( "Chaotic Aid",
    "This spell calls forth a servant of chaos to aid you in battle.",
    effects.CallMonster( {context.GEN_CHAOS: True, context.MTY_FIGHTER: True}, 5, anim=animobs.OrangeSparkle ),
    rank=3, gems={EARTH:1,AIR:1}, com_tar=targetarea.SingleTarget(reach=2), ai_tar=invocations.TargetEmptySpot(), mpfudge = 3 )


# CIRCLE FOUR



# CIRCLE FIVE

# CIRCLE SIX


# CIRCLE SEVEN