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)
Beispiel #2
0
# 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(
        att_modifier=10,
        def_stat=stats.REFLEXES,
        on_success=(effects.HealthDamage((10, 10, 0),
                                         stat_bonus=stats.INTELLIGENCE,
                                         element=stats.RESIST_ATOMIC,
                                         anim=animobs.Nuclear), ),
        on_failure=(effects.NoEffect(anim=animobs.SmallBoom), )),
# 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 = (
        effects.HealthDamage( (2,5,0), stat_bonus=stats.INTELLIGENCE, element=stats.RESIST_COLD, anim=animobs.BlueExplosion )
Beispiel #4
0
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) )

Beispiel #5
0
    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.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


# CIRCLE EIGHT