@Override public int proc(Char attacker, Char defender, int damage) { if (wand != null && attacker instanceof Hero && ((Hero)attacker).subClass == HeroSubClass.BATTLEMAGE) { if (wand.curCharges < wand.maxCharges) wand.partialCharge += 0.33f; ScrollOfRecharging.charge((Hero)attacker); wand.onHit(this, attacker, defender, damage); } return super.proc(attacker, defender, damage); }
@Override public int proc(Char attacker, Char defender, int damage) { if (wand != null && attacker instanceof Hero && ((Hero)attacker).subClass == HeroSubClass.BATTLEMAGE) { if (wand.curCharges < wand.maxCharges) wand.partialCharge += 0.33f; ScrollOfRecharging.charge((Hero)attacker); wand.onHit(this, attacker, defender, damage); } return super.proc(attacker, defender, damage); }
public static void foodProc( Hero hero ){ switch (hero.heroClass) { case WARRIOR: if (hero.HP < hero.HT) { hero.HP = Math.min( hero.HP + 5, hero.HT ); hero.sprite.emitter().burst( Speck.factory( Speck.HEALING ), 1 ); } break; case MAGE: //1 charge Buff.affect( hero, Recharging.class, 4f ); ScrollOfRecharging.charge( hero ); break; case ROGUE: case HUNTRESS: break; } }
public static void foodProc( Hero hero ){ switch (hero.heroClass) { case WARRIOR: if (hero.HP < hero.HT) { hero.HP = Math.min( hero.HP + 5, hero.HT ); hero.sprite.emitter().burst( Speck.factory( Speck.HEALING ), 1 ); } break; case MAGE: //1 charge Buff.affect( hero, Recharging.class, 4f ); ScrollOfRecharging.charge( hero ); break; case ROGUE: case HUNTRESS: break; } }
@Override protected void satisfy(Hero hero) { super.satisfy(hero); switch(holiday){ case NONE: break; //do nothing extra case HWEEN: //heals for 10% max hp hero.HP = Math.min(hero.HP + hero.HT/10, hero.HT); hero.sprite.emitter().burst( Speck.factory( Speck.HEALING ), 1 ); break; case XMAS: Buff.affect( hero, Recharging.class, 2f ); //half of a charge ScrollOfRecharging.charge( hero ); break; } }
@Override protected void satisfy(Hero hero) { super.satisfy(hero); switch(holiday){ case NONE: break; //do nothing extra case HWEEN: //heals for 10% max hp hero.HP = Math.min(hero.HP + hero.HT/10, hero.HT); hero.sprite.emitter().burst( Speck.factory( Speck.HEALING ), 1 ); break; case XMAS: Buff.affect( hero, Recharging.class, 2f ); //half of a charge ScrollOfRecharging.charge( hero ); break; } }
@Override public void doRead() { //append buff Buff.affect(curUser, ArtifactRecharge.class).set( 30 ); Sample.INSTANCE.play( Assets.SND_READ ); Invisibility.dispel(); SpellSprite.show( curUser, SpellSprite.CHARGE ); setKnown(); ScrollOfRecharging.charge(curUser); readAnimation(); }
@Override public void doRead() { //append buff Buff.affect(curUser, ArtifactRecharge.class).set( 30 ); Sample.INSTANCE.play( Assets.SND_READ ); Invisibility.dispel(); SpellSprite.show( curUser, SpellSprite.CHARGE ); setKnown(); ScrollOfRecharging.charge(curUser); readAnimation(); }
@Override public void doRead() { Buff.affect(curUser, Recharging.class, BUFF_DURATION); charge(curUser); Sample.INSTANCE.play( Assets.SND_READ ); Invisibility.dispel(); GLog.i( Messages.get(this, "surge") ); SpellSprite.show( curUser, SpellSprite.CHARGE ); setKnown(); readAnimation(); }
@Override public void doRead() { Buff.affect(curUser, Recharging.class, BUFF_DURATION); charge(curUser); Sample.INSTANCE.play( Assets.SND_READ ); Invisibility.dispel(); GLog.i( Messages.get(this, "surge") ); SpellSprite.show( curUser, SpellSprite.CHARGE ); setKnown(); readAnimation(); }
@Override protected void affectTarget(Ballistica bolt, Hero hero) { Trap t = Dungeon.level.traps.get(bolt.collisionPos); if (t != null && t.active){ if (!t.visible) t.reveal(); t.disarm(); Sample.INSTANCE.play( Assets.SND_LIGHTNING ); hero.sprite.parent.addToFront( new Lightning(DungeonTilemap.tileCenterToWorld(t.pos), hero.sprite.center(), null) ); ScrollOfRecharging.charge(hero); Buff.prolong(hero, Recharging.class, 15f); Buff.affect(hero, ArtifactRecharge.class).set( 15 ); } else { GLog.w(Messages.get(this, "no_trap")); } }
@Override protected void affectTarget(Ballistica bolt, Hero hero) { Trap t = Dungeon.level.traps.get(bolt.collisionPos); if (t != null && t.active){ if (!t.visible) t.reveal(); t.disarm(); Sample.INSTANCE.play( Assets.SND_LIGHTNING ); hero.sprite.parent.addToFront( new Lightning(DungeonTilemap.tileCenterToWorld(t.pos), hero.sprite.center(), null) ); ScrollOfRecharging.charge(hero); Buff.prolong(hero, Recharging.class, 15f); Buff.affect(hero, ArtifactRecharge.class).set( 15 ); } else { GLog.w(Messages.get(this, "no_trap")); } }
new ShockingTrap().set( user.pos ).activate(); Buff.prolong(user, Recharging.class, 20f); ScrollOfRecharging.charge(user); SpellSprite.show(user, SpellSprite.CHARGE); wand.wandUsed();
new ShockingTrap().set( user.pos ).activate(); Buff.prolong(user, Recharging.class, 20f); ScrollOfRecharging.charge(user); SpellSprite.show(user, SpellSprite.CHARGE); wand.wandUsed();