V0.2.1 : WIP sprites for new quest bosses, plus a small Fetid Rat tweak.

This commit is contained in:
Evan Debenham 2014-10-09 01:15:37 -04:00
parent e3da42ab34
commit b048a3b242
6 changed files with 120 additions and 24 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

View File

@ -34,9 +34,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.food.MysteryMeat;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.CurareDart; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.CurareDart;
import com.shatteredpixel.shatteredpixeldungeon.levels.Level; import com.shatteredpixel.shatteredpixeldungeon.levels.Level;
import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica; import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica;
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.*;
import com.shatteredpixel.shatteredpixeldungeon.sprites.CrabSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.GnollSprite;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.watabou.noosa.audio.Sample; import com.watabou.noosa.audio.Sample;
import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Assets;
@ -61,8 +59,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.MissileWeapon; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.MissileWeapon;
import com.shatteredpixel.shatteredpixeldungeon.levels.SewerLevel; import com.shatteredpixel.shatteredpixeldungeon.levels.SewerLevel;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.sprites.FetidRatSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.GhostSprite;
import com.shatteredpixel.shatteredpixeldungeon.windows.WndQuest; import com.shatteredpixel.shatteredpixeldungeon.windows.WndQuest;
import com.shatteredpixel.shatteredpixeldungeon.windows.WndSadGhost; import com.shatteredpixel.shatteredpixeldungeon.windows.WndSadGhost;
import com.watabou.utils.Bundle; import com.watabou.utils.Bundle;
@ -407,7 +403,7 @@ public class Ghost extends Mob.NPC {
@Override @Override
public int defenseProc( Char enemy, int damage ) { public int defenseProc( Char enemy, int damage ) {
GameScene.add( Blob.seed( pos, 100, StenchGas.class ) ); GameScene.add( Blob.seed( pos, 20, StenchGas.class ) );
return super.defenseProc(enemy, damage); return super.defenseProc(enemy, damage);
} }
@ -422,18 +418,18 @@ public class Ghost extends Mob.NPC {
@Override @Override
public String description() { public String description() {
return return
"Something is clearly wrong with this rat. Its matted fur and rotting skin are very " + "Something is clearly wrong with this rat. Its greasy black fur and rotting skin are very " +
"different from the healthy rats you've seen previously. It's bright orange eyes " + "different from the healthy rats you've seen previously. It's blood red eyes " +
"and larger size make it especially menacing.\n\n" + "make it seem especially menacing.\n\n" +
"The rat carries a cloud of horrible stench with it, it's overpoweringly strong up close.\n\n" + "The rat carries a cloud of horrible stench with it, it's overpoweringly strong up close.\n\n" +
"Dark ooze drips from the rat's teeth, it eats through the floor but seems to dissolve in water."; "Dark ooze dribbles from the rat's mouth, it eats through the floor but seems to dissolve in water.";
} }
} }
public static class GnollTrickster extends Gnoll { public static class GnollTrickster extends Gnoll {
{ {
name = "gnoll trickster"; name = "gnoll trickster";
spriteClass = GnollSprite.class; spriteClass = GnollTricksterSprite.class;
HP = HT = 20; HP = HT = 20;
defenseSkill = 4; defenseSkill = 4;
@ -536,7 +532,7 @@ public class Ghost extends Mob.NPC {
public static class GreatCrab extends Crab { public static class GreatCrab extends Crab {
{ {
name = "great crab"; name = "great crab";
spriteClass = CrabSprite.class; spriteClass = GreatCrabSprite.class;
HP = HT = 30; HP = HT = 30;
defenseSkill = 0; //see damage() defenseSkill = 0; //see damage()

View File

@ -27,7 +27,7 @@ public class CrabSprite extends MobSprite {
texture( Assets.CRAB ); texture( Assets.CRAB );
TextureFilm frames = new TextureFilm( texture, 16 ); TextureFilm frames = new TextureFilm( texture, 16, 16 );
idle = new Animation( 5, true ); idle = new Animation( 5, true );
idle.frames( frames, 0, 1, 0, 2 ); idle.frames( frames, 0, 1, 0, 2 );

View File

@ -0,0 +1,62 @@
package com.shatteredpixel.shatteredpixeldungeon.sprites;
import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.IncendiaryDart;
import com.shatteredpixel.shatteredpixeldungeon.levels.Level;
import com.watabou.noosa.MovieClip;
import com.watabou.noosa.TextureFilm;
import com.watabou.utils.Callback;
/**
* Created by Evan on 09/10/2014.
*/
public class GnollTricksterSprite extends MobSprite {
private Animation cast;
public GnollTricksterSprite() {
super();
texture( Assets.GNOLL );
TextureFilm frames = new TextureFilm( texture, 12, 15 );
idle = new MovieClip.Animation( 2, true );
idle.frames( frames, 21, 21, 21, 22, 21, 21, 22, 22 );
run = new MovieClip.Animation( 12, true );
run.frames( frames, 25, 26, 27, 28 );
attack = new MovieClip.Animation( 12, false );
attack.frames( frames, 23, 24, 21 );
cast = attack.clone();
die = new MovieClip.Animation( 12, false );
die.frames( frames, 29, 30, 31 );
play( idle );
}
@Override
public void attack( int cell ) {
if (!Level.adjacent(cell, ch.pos)) {
((MissileSprite)parent.recycle( MissileSprite.class )).
reset( ch.pos, cell, new IncendiaryDart(), new Callback() {
@Override
public void call() {
ch.onAttackComplete();
}
} );
play( cast );
turnTo( ch.pos , cell );
} else {
super.attack( cell );
}
}
}

View File

@ -0,0 +1,38 @@
package com.shatteredpixel.shatteredpixeldungeon.sprites;
import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.watabou.noosa.MovieClip;
import com.watabou.noosa.TextureFilm;
/**
* Created by Evan on 09/10/2014.
*/
public class GreatCrabSprite extends MobSprite {
public GreatCrabSprite() {
super();
texture( Assets.CRAB );
TextureFilm frames = new TextureFilm( texture, 16, 16 );
idle = new MovieClip.Animation( 5, true );
idle.frames( frames, 16, 17, 16, 18 );
run = new MovieClip.Animation( 15, true );
run.frames( frames, 19, 20, 21, 22 );
attack = new MovieClip.Animation( 12, false );
attack.frames( frames, 23, 24, 25 );
die = new MovieClip.Animation( 12, false );
die.frames( frames, 26, 27, 28, 29 );
play( idle );
}
@Override
public int blood() {
return 0xFFFFEA80;
}
}