From 3864d5c21e784499b298e0da445791980e95804e Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Fri, 24 May 2019 22:09:13 -0400 Subject: [PATCH] v0.7.3a: adjusted the behaviour of Tengu's thrown attacks --- .../actors/mobs/Tengu.java | 6 ++---- .../sprites/MissileSprite.java | 9 +++++++-- .../sprites/TenguSprite.java | 17 +++++++++-------- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Tengu.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Tengu.java index e600cdc15..0849e99d3 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Tengu.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Tengu.java @@ -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() { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/MissileSprite.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/MissileSprite.java index 0f8acda4e..11d3e7a02 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/MissileSprite.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/MissileSprite.java @@ -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 ); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/TenguSprite.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/TenguSprite.java index 06f6b33c8..451355e18 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/TenguSprite.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/TenguSprite.java @@ -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; + } + } }