use of com.watabou.utils.Callback in project pixel-dungeon by watabou.
the class TenguSprite method attack.
@Override
public void attack(int cell) {
if (!Level.adjacent(cell, ch.pos)) {
((MissileSprite) parent.recycle(MissileSprite.class)).reset(ch.pos, cell, new Shuriken(), new Callback() {
@Override
public void call() {
ch.onAttackComplete();
}
});
play(cast);
turnTo(ch.pos, cell);
} else {
super.attack(cell);
}
}
use of com.watabou.utils.Callback in project pixel-dungeon by watabou.
the class ScorpioSprite method onComplete.
@Override
public void onComplete(Animation anim) {
if (anim == zap) {
idle();
((MissileSprite) parent.recycle(MissileSprite.class)).reset(ch.pos, cellToAttack, new Dart(), new Callback() {
@Override
public void call() {
ch.onAttackComplete();
}
});
} else {
super.onComplete(anim);
}
}
use of com.watabou.utils.Callback in project pixel-dungeon by watabou.
the class HeroSprite method read.
public void read() {
animCallback = new Callback() {
@Override
public void call() {
idle();
ch.onOperateComplete();
}
};
play(read);
}
use of com.watabou.utils.Callback in project pixel-dungeon by watabou.
the class WarlockSprite method zap.
public void zap(int cell) {
turnTo(ch.pos, cell);
play(zap);
MagicMissile.shadow(parent, ch.pos, cell, new Callback() {
@Override
public void call() {
((Warlock) ch).onZapComplete();
}
});
Sample.INSTANCE.play(Assets.SND_ZAP);
}
use of com.watabou.utils.Callback in project pixel-dungeon by watabou.
the class Item method cast.
public void cast(final Hero user, int dst) {
final int cell = Ballistica.cast(user.pos, dst, false, true);
user.sprite.zap(cell);
user.busy();
Sample.INSTANCE.play(Assets.SND_MISS, 0.6f, 0.6f, 1.5f);
Char enemy = Actor.findChar(cell);
QuickSlot.target(this, enemy);
// FIXME!!!
float delay = TIME_TO_THROW;
if (this instanceof MissileWeapon) {
delay *= ((MissileWeapon) this).speedFactor(user);
if (enemy != null) {
SnipersMark mark = user.buff(SnipersMark.class);
if (mark != null) {
if (mark.object == enemy.id()) {
delay *= 0.5f;
}
user.remove(mark);
}
}
}
final float finalDelay = delay;
((MissileSprite) user.sprite.parent.recycle(MissileSprite.class)).reset(user.pos, cell, this, new Callback() {
@Override
public void call() {
Item.this.detach(user.belongings.backpack).onThrow(cell);
user.spendAndNext(finalDelay);
}
});
}
Aggregations