Merging 1.7.5 Source: sprites and assets changes

This commit is contained in:
Evan Debenham
2015-02-04 15:20:10 -05:00
parent 8b1ffd9a72
commit 47ccaceac4
15 changed files with 255 additions and 96 deletions
@@ -18,13 +18,22 @@
package com.shatteredpixel.shatteredpixeldungeon.sprites;
import com.watabou.noosa.TextureFilm;
import com.watabou.noosa.particles.Emitter;
import com.watabou.noosa.particles.PixelParticle;
import com.watabou.noosa.particles.Emitter.Factory;
import com.watabou.utils.PointF;
import com.watabou.utils.Random;
import com.shatteredpixel.shatteredpixeldungeon.Assets;
public class GooSprite extends MobSprite {
private Animation pump;
private Animation pumpAttack;
private Animation jump;
private Emitter spray;
public GooSprite() {
super();
@@ -43,7 +52,10 @@ public class GooSprite extends MobSprite {
pumpAttack = new Animation ( 20, false );
pumpAttack.frames( frames, 4, 3, 2, 1, 0, 7);
jump = new Animation( 1, true );
jump.frames( frames, 6 );
attack = new Animation( 10, false );
attack.frames( frames, 8, 9, 10 );
@@ -58,13 +70,64 @@ public class GooSprite extends MobSprite {
}
public void pumpAttack() { play( pumpAttack ); }
@Override
public void play( Animation anim, boolean force ) {
super.play( anim, force );
if (anim == pump) {
spray = centerEmitter();
spray.pour( GooParticle.FACTORY, 0.04f );
} else if (spray != null) {
spray.on = false;
spray = null;
}
}
@Override
public int blood() {
return 0xFF000000;
}
@Override
public static class GooParticle extends PixelParticle.Shrinking {
public static final Emitter.Factory FACTORY = new Factory() {
@Override
public void emit( Emitter emitter, int index, float x, float y ) {
((GooParticle)emitter.recycle( GooParticle.class )).reset( x, y );
}
};
public GooParticle() {
super();
color( 0x000000 );
lifespan = 0.3f;
acc.set( 0, +50 );
}
public void reset( float x, float y ) {
revive();
this.x = x;
this.y = y;
left = lifespan;
size = 4;
speed.polar( -Random.Float( PointF.PI ), Random.Float( 32, 48 ) );
}
@Override
public void update() {
super.update();
float p = left / lifespan;
am = p > 0.5f ? (1 - p) * 2f : 1;
}
}
@Override
public void onComplete( Animation anim ) {
super.onComplete(anim);