v0.7.3a: adjusted the behaviour of Tengu's thrown attacks
This commit is contained in:
parent
37611029a4
commit
3864d5c21e
|
@ -158,12 +158,10 @@ public class Tengu extends Mob {
|
|||
//tengu's attack is always visible
|
||||
@Override
|
||||
protected boolean doAttack(Char enemy) {
|
||||
if (enemy == Dungeon.hero)
|
||||
Dungeon.hero.resting = false;
|
||||
sprite.attack( enemy.pos );
|
||||
spend( attackDelay() );
|
||||
return !Dungeon.level.adjacent(pos, enemy.pos);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private void jump() {
|
||||
|
||||
|
|
|
@ -99,6 +99,8 @@ public class MissileSprite extends ItemSprite implements Tweener.Listener {
|
|||
ANGULAR_SPEEDS.put(Bolas.class, 1440);
|
||||
|
||||
ANGULAR_SPEEDS.put(Shuriken.class, 2160);
|
||||
|
||||
ANGULAR_SPEEDS.put(TenguSprite.TenguShuriken.class, 2160);
|
||||
}
|
||||
|
||||
//TODO it might be nice to have a source and destination angle, to improve thrown weapon visuals
|
||||
|
@ -137,10 +139,13 @@ public class MissileSprite extends ItemSprite implements Tweener.Listener {
|
|||
float speed = SPEED;
|
||||
if (item instanceof Dart && Dungeon.hero.belongings.weapon instanceof Crossbow){
|
||||
speed *= 3f;
|
||||
}
|
||||
if (item instanceof SpiritBow.SpiritArrow || item instanceof ScorpioSprite.ScorpioShot){
|
||||
|
||||
} else if (item instanceof SpiritBow.SpiritArrow
|
||||
|| item instanceof ScorpioSprite.ScorpioShot
|
||||
|| item instanceof TenguSprite.TenguShuriken){
|
||||
speed *= 1.5f;
|
||||
}
|
||||
|
||||
PosTweener tweener = new PosTweener( this, to, d.length() / speed );
|
||||
tweener.listener = this;
|
||||
parent.add( tweener );
|
||||
|
|
|
@ -23,9 +23,7 @@ package com.shatteredpixel.shatteredpixeldungeon.sprites;
|
|||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.Shuriken;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
||||
import com.watabou.noosa.TextureFilm;
|
||||
import com.watabou.utils.Callback;
|
||||
|
@ -84,14 +82,11 @@ public class TenguSprite extends MobSprite {
|
|||
public void attack( int cell ) {
|
||||
if (!Dungeon.level.adjacent( cell, ch.pos )) {
|
||||
|
||||
final Char enemy = Actor.findChar(cell);
|
||||
|
||||
((MissileSprite)parent.recycle( MissileSprite.class )).
|
||||
reset( ch.pos, cell, new Shuriken(), new Callback() {
|
||||
reset( ch.pos, cell, new TenguShuriken(), new Callback() {
|
||||
@Override
|
||||
public void call() {
|
||||
ch.next();
|
||||
if (enemy != null) ch.attack(enemy);
|
||||
ch.onAttackComplete();
|
||||
}
|
||||
} );
|
||||
|
||||
|
@ -118,4 +113,10 @@ public class TenguSprite extends MobSprite {
|
|||
super.onComplete( anim );
|
||||
}
|
||||
}
|
||||
|
||||
public static class TenguShuriken extends Item {
|
||||
{
|
||||
image = ItemSpriteSheet.SHURIKEN;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user