v0.3.0: added a particle effect for cursed wands

This commit is contained in:
Evan Debenham 2015-05-24 21:10:25 -04:00
parent a4facdf950
commit 04a6ff8433
2 changed files with 11 additions and 3 deletions

View File

@ -17,6 +17,7 @@
*/ */
package com.shatteredpixel.shatteredpixeldungeon.effects; package com.shatteredpixel.shatteredpixeldungeon.effects;
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.RainbowParticle;
import com.watabou.noosa.Game; import com.watabou.noosa.Game;
import com.watabou.noosa.Group; import com.watabou.noosa.Group;
import com.watabou.noosa.particles.Emitter; import com.watabou.noosa.particles.Emitter;
@ -56,7 +57,7 @@ public class MagicMissile extends Emitter {
width = 0; width = 0;
height = 0; height = 0;
PointF d = PointF.diff( pt, pf ); PointF d = PointF.diff( pt, pf );
PointF speed = new PointF( d ).normalize().scale( SPEED ); PointF speed = new PointF( d ).normalize().scale( SPEED );
sx = speed.x; sx = speed.x;
sy = speed.y; sy = speed.y;
@ -150,6 +151,13 @@ public class MagicMissile extends Emitter {
missile.size( 4 ); missile.size( 4 );
missile.pour( ShadowParticle.MISSILE, 0.01f ); missile.pour( ShadowParticle.MISSILE, 0.01f );
} }
public static void rainbow( Group group, int from, int to, Callback callback ) {
MagicMissile missile = ((MagicMissile)group.recycle( MagicMissile.class ));
missile.reset( from, to, callback );
missile.size( 4 );
missile.pour( RainbowParticle.BURST, 0.01f );
}
@Override @Override
public void update() { public void update() {
@ -160,7 +168,7 @@ public class MagicMissile extends Emitter {
y += sy * d; y += sy * d;
if ((time -= d) <= 0) { if ((time -= d) <= 0) {
on = false; on = false;
callback.call(); if (callback != null ) callback.call();
} }
} }
} }

View File

@ -411,7 +411,7 @@ public class CursedWand {
} }
private static void cursedFX(final Hero user, final Ballistica bolt, final Callback callback){ private static void cursedFX(final Hero user, final Ballistica bolt, final Callback callback){
MagicMissile.shadow(user.sprite.parent, bolt.sourcePos, bolt.collisionPos, callback); MagicMissile.rainbow(user.sprite.parent, bolt.sourcePos, bolt.collisionPos, callback);
Sample.INSTANCE.play( Assets.SND_ZAP ); Sample.INSTANCE.play( Assets.SND_ZAP );
} }