@Override protected boolean act() { final Actor toRemove = this; ((MissileSprite) ShatteredPixelDungeon.scene().recycle(MissileSprite.class)). reset(pos, finalTarget.sprite, new Dart(), new Callback() { @Override public void call() { int dmg = Random.NormalIntRange(1, 4) - finalTarget.drRoll(); finalTarget.damage(dmg, trap); if (finalTarget == Dungeon.hero && !finalTarget.isAlive()){ Dungeon.fail( trap.getClass() ); } Sample.INSTANCE.play(Assets.SND_HIT, 1, 1, Random.Float(0.8f, 1.25f)); finalTarget.sprite.bloodBurstA(finalTarget.sprite.center(), dmg); finalTarget.sprite.flash(); Actor.remove(toRemove); next(); } }); return false; } });
@Override protected boolean act() { final Actor toRemove = this; ((MissileSprite) ShatteredPixelDungeon.scene().recycle(MissileSprite.class)). reset(pos, finalTarget.sprite, new PoisonDart(), new Callback() { @Override public void call() { int dmg = Random.NormalIntRange(1, 4) - finalTarget.drRoll(); finalTarget.damage(dmg, trap); if (finalTarget == Dungeon.hero && !finalTarget.isAlive()){ Dungeon.fail( trap.getClass() ); } Buff.affect( finalTarget, Poison.class ) .set( 4 + Dungeon.depth ); Sample.INSTANCE.play(Assets.SND_HIT, 1, 1, Random.Float(0.8f, 1.25f)); finalTarget.sprite.bloodBurstA(finalTarget.sprite.center(), dmg); finalTarget.sprite.flash(); Actor.remove(toRemove); next(); } }); return false; } });
@Override protected boolean act() { final Actor toRemove = this; ((MissileSprite) ShatteredPixelDungeon.scene().recycle(MissileSprite.class)). reset(pos, finalTarget.sprite, new Dart(), new Callback() { @Override public void call() { int dmg = Random.NormalIntRange(1, 4) - finalTarget.drRoll(); finalTarget.damage(dmg, trap); if (finalTarget == Dungeon.hero && !finalTarget.isAlive()){ Dungeon.fail( trap.getClass() ); } Sample.INSTANCE.play(Assets.SND_HIT, 1, 1, Random.Float(0.8f, 1.25f)); finalTarget.sprite.bloodBurstA(finalTarget.sprite.center(), dmg); finalTarget.sprite.flash(); Actor.remove(toRemove); next(); } }); return false; } });
@Override protected boolean act() { final Actor toRemove = this; ((MissileSprite) ShatteredPixelDungeon.scene().recycle(MissileSprite.class)). reset(pos, finalTarget.sprite, new PoisonDart(), new Callback() { @Override public void call() { int dmg = Random.NormalIntRange(1, 4) - finalTarget.drRoll(); finalTarget.damage(dmg, trap); if (finalTarget == Dungeon.hero && !finalTarget.isAlive()){ Dungeon.fail( trap.getClass() ); } Buff.affect( finalTarget, Poison.class ) .set( 4 + Dungeon.depth ); Sample.INSTANCE.play(Assets.SND_HIT, 1, 1, Random.Float(0.8f, 1.25f)); finalTarget.sprite.bloodBurstA(finalTarget.sprite.center(), dmg); finalTarget.sprite.flash(); Actor.remove(toRemove); next(); } }); return false; } });