diff --git a/android/src/main/assets/items.png b/android/src/main/assets/items.png index 1b517df9e..9e40d686f 100644 Binary files a/android/src/main/assets/items.png and b/android/src/main/assets/items.png differ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewTengu.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewTengu.java index 1133c35b9..b1d26a443 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewTengu.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewTengu.java @@ -56,7 +56,6 @@ import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; -import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.shatteredpixel.shatteredpixeldungeon.sprites.MissileSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.TenguSprite; @@ -65,6 +64,7 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.BossHealthBar; import com.shatteredpixel.shatteredpixeldungeon.utils.BArray; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.watabou.noosa.audio.Sample; +import com.watabou.noosa.particles.Emitter; import com.watabou.utils.Bundle; import com.watabou.utils.Callback; import com.watabou.utils.PathFinder; @@ -640,7 +640,7 @@ public class NewTengu extends Mob { public void use(BlobEmitter emitter) { super.use(emitter); - emitter.pour( SmokeParticle.FACTORY, 0.1f ); + emitter.pour( SmokeParticle.FACTORY, 0.25f ); } @Override @@ -676,8 +676,12 @@ public class NewTengu extends Mob { } @Override - public ItemSprite.Glowing glowing() { - return new ItemSprite.Glowing( 0xFF0000, 0.5f ); + public Emitter emitter() { + Emitter emitter = new Emitter(); + emitter.pos(7.5f, 3.5f); + emitter.fillTarget = false; + emitter.pour(SmokeParticle.SPEW, 0.05f); + return emitter; } } } @@ -1038,8 +1042,12 @@ public class NewTengu extends Mob { } @Override - public ItemSprite.Glowing glowing() { - return new ItemSprite.Glowing( 0xFFFFFF, 0.5f ); + public Emitter emitter() { + Emitter emitter = new Emitter(); + emitter.pos(5, 5); + emitter.fillTarget = false; + emitter.pour(SparkParticle.FACTORY, 0.1f); + return emitter; } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/effects/particles/SmokeParticle.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/effects/particles/SmokeParticle.java index 403a968f7..4f0645cff 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/effects/particles/SmokeParticle.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/effects/particles/SmokeParticle.java @@ -24,6 +24,7 @@ package com.shatteredpixel.shatteredpixeldungeon.effects.particles; import com.watabou.noosa.particles.Emitter; import com.watabou.noosa.particles.Emitter.Factory; import com.watabou.noosa.particles.PixelParticle; +import com.watabou.utils.PointF; import com.watabou.utils.Random; public class SmokeParticle extends PixelParticle { @@ -35,6 +36,13 @@ public class SmokeParticle extends PixelParticle { } }; + public static final Factory SPEW = new Factory() { + @Override + public void emit( Emitter emitter, int index, float x, float y ) { + ((SmokeParticle)emitter.recycle( SmokeParticle.class )).resetSpew( x, y ); + } + }; + public SmokeParticle() { super(); @@ -53,6 +61,18 @@ public class SmokeParticle extends PixelParticle { speed.set( Random.Float( -4, +4 ), Random.Float( -8, +8 ) ); } + public void resetSpew( float x, float y ) { + revive(); + + this.x = x; + this.y = y; + + acc.set( -40, 40 ); + + left = lifespan = Random.Float( 0.6f, 1f ); + speed.polar( Random.Float(PointF.PI*1.7f, PointF.PI*1.8f), Random.Float( 30, 60 )); + } + @Override public void update() { super.update();