v0.3.1: added in new trap sprites (no shading yet), added descriptions to existing traps

This commit is contained in:
Evan Debenham 2015-06-22 19:35:18 -04:00
parent f4898d903b
commit 9f02a93500
12 changed files with 93 additions and 21 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 9.0 KiB

View File

@ -20,10 +20,10 @@
*/ */
package com.shatteredpixel.shatteredpixeldungeon.levels.traps; package com.shatteredpixel.shatteredpixeldungeon.levels.traps;
import com.shatteredpixel.shatteredpixeldungeon.sprites.TrapSprite;
import com.watabou.noosa.audio.Sample; import com.watabou.noosa.audio.Sample;
import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter; import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter;
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck; import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
@ -31,10 +31,10 @@ import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
public class AlarmTrap extends Trap { public class AlarmTrap extends Trap {
// 0xDD3333
{ {
name = "Alarm trap"; name = "Alarm trap";
image = 4; color = TrapSprite.RED;
shape = TrapSprite.DOTS;
} }
@Override @Override
@ -51,4 +51,10 @@ public class AlarmTrap extends Trap {
Sample.INSTANCE.play( Assets.SND_ALERT ); Sample.INSTANCE.play( Assets.SND_ALERT );
} }
@Override
public String desc() {
return "This trap seems to be tied to a loud alarm mechanism. " +
"Triggering it will likely alert everything on the level.";
}
} }

View File

@ -20,19 +20,19 @@
*/ */
package com.shatteredpixel.shatteredpixeldungeon.levels.traps; package com.shatteredpixel.shatteredpixeldungeon.levels.traps;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob; import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Fire; import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Fire;
import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter; import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter;
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.FlameParticle; import com.shatteredpixel.shatteredpixeldungeon.effects.particles.FlameParticle;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.sprites.TrapSprite;
public class FireTrap extends Trap { public class FireTrap extends Trap {
// 0xFF7708
{ {
name = "Fire trap"; name = "Fire trap";
image = 1; color = TrapSprite.ORANGE;
shape = TrapSprite.DOTS;
} }
@Override @Override
@ -42,4 +42,9 @@ public class FireTrap extends Trap {
CellEmitter.get( pos ).burst( FlameParticle.FACTORY, 5 ); CellEmitter.get( pos ).burst( FlameParticle.FACTORY, 5 );
} }
@Override
public String desc() {
return "stepping on this trap will ignite a chemical mixture, setting the immediate area aflame.";
}
} }

View File

@ -27,13 +27,15 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Bleeding;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Cripple; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Cripple;
import com.shatteredpixel.shatteredpixeldungeon.effects.Wound; import com.shatteredpixel.shatteredpixeldungeon.effects.Wound;
import com.shatteredpixel.shatteredpixeldungeon.sprites.TrapSprite;
import com.watabou.utils.Random; import com.watabou.utils.Random;
public class GrippingTrap extends Trap { public class GrippingTrap extends Trap {
{ {
name = "Gripping trap"; name = "Gripping trap";
image = 6; color = TrapSprite.GREY;
shape = TrapSprite.CROSSHAIR;
} }
@Override @Override
@ -51,4 +53,10 @@ public class GrippingTrap extends Trap {
} }
} }
@Override
public String desc() {
return "triggering this trap will send barbed claws along the ground, " +
"damaging the victims feet and rooting them in place.";
}
} }

View File

@ -21,6 +21,7 @@
package com.shatteredpixel.shatteredpixeldungeon.levels.traps; package com.shatteredpixel.shatteredpixeldungeon.levels.traps;
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
import com.shatteredpixel.shatteredpixeldungeon.sprites.TrapSprite;
import com.watabou.noosa.Camera; import com.watabou.noosa.Camera;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.ResultDescriptions; import com.shatteredpixel.shatteredpixeldungeon.ResultDescriptions;
@ -39,7 +40,8 @@ public class LightningTrap extends Trap {
{ {
name = "Lightning trap"; name = "Lightning trap";
image = 5; color = TrapSprite.TEAL;
shape = TrapSprite.CROSSHAIR;
} }
@Override @Override
@ -73,4 +75,10 @@ public class LightningTrap extends Trap {
public static final Electricity LIGHTNING = new Electricity(); public static final Electricity LIGHTNING = new Electricity();
public static class Electricity { public static class Electricity {
} }
@Override
public String desc() {
return "A mechanism with a large amount of energy stored into it. " +
"Triggering the trap will discharge that energy into whever is nearby.";
}
} }

View File

@ -21,17 +21,17 @@
package com.shatteredpixel.shatteredpixeldungeon.levels.traps; package com.shatteredpixel.shatteredpixeldungeon.levels.traps;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob; import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.ParalyticGas; import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.ParalyticGas;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.sprites.TrapSprite;
public class ParalyticTrap extends Trap{ public class ParalyticTrap extends Trap{
// 0xCCCC55
{ {
name = "Paralytic gas trap"; name = "Paralytic gas trap";
image = 2; color = TrapSprite.YELLOW;
shape = TrapSprite.GRILL;
} }
@Override @Override
@ -40,4 +40,9 @@ public class ParalyticTrap extends Trap{
GameScene.add( Blob.seed( pos, 80 + 5 * Dungeon.depth, ParalyticGas.class ) ); GameScene.add( Blob.seed( pos, 80 + 5 * Dungeon.depth, ParalyticGas.class ) );
} }
@Override
public String desc() {
return "Triggering this trap will set a cloud of paralytic gas loose within the surrounding area.";
}
} }

View File

@ -27,13 +27,14 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Poison; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Poison;
import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter; import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter;
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.PoisonParticle; import com.shatteredpixel.shatteredpixeldungeon.effects.particles.PoisonParticle;
import com.shatteredpixel.shatteredpixeldungeon.sprites.TrapSprite;
public class PoisonTrap extends Trap{ public class PoisonTrap extends Trap{
// 0xBB66EE
{ {
name = "Poison trap"; name = "Poison trap";
image = 3; color = TrapSprite.VIOLET;
shape = TrapSprite.CROSSHAIR;
} }
@Override @Override
@ -48,4 +49,9 @@ public class PoisonTrap extends Trap{
CellEmitter.center( pos ).burst( PoisonParticle.SPLASH, 3 ); CellEmitter.center( pos ).burst( PoisonParticle.SPLASH, 3 );
} }
@Override
public String desc() {
return "A small dart-blower must be hidden nearby, activating this trap will cause it to shoot a pointed dart at you.";
}
} }

View File

@ -30,16 +30,17 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTeleportation; import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTeleportation;
import com.shatteredpixel.shatteredpixeldungeon.levels.Level; import com.shatteredpixel.shatteredpixeldungeon.levels.Level;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.sprites.TrapSprite;
import com.watabou.utils.Random; import com.watabou.utils.Random;
public class SummoningTrap extends Trap { public class SummoningTrap extends Trap {
private static final float DELAY = 2f; private static final float DELAY = 2f;
// 0x770088
{ {
name = "Summoning trap"; name = "Summoning trap";
image = 7; color = TrapSprite.TEAL;
shape = TrapSprite.WAVES;
} }
@Override @Override
@ -91,4 +92,9 @@ public class SummoningTrap extends Trap {
} }
} }
@Override
public String desc() {
return "Triggering this trap will summon a number of monsters from the surrounding floors to this location.";
}
} }

View File

@ -21,17 +21,17 @@
package com.shatteredpixel.shatteredpixeldungeon.levels.traps; package com.shatteredpixel.shatteredpixeldungeon.levels.traps;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob; import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.ToxicGas; import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.ToxicGas;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.sprites.TrapSprite;
public class ToxicTrap extends Trap{ public class ToxicTrap extends Trap{
// 0x40CC55
{ {
name = "Toxic gas trap"; name = "Toxic gas trap";
image = 0; color = TrapSprite.GREEN;
shape = TrapSprite.GRILL;
} }
@Override @Override
@ -40,4 +40,9 @@ public class ToxicTrap extends Trap{
GameScene.add( Blob.seed( pos, 300 + 20 * Dungeon.depth, ToxicGas.class ) ); GameScene.add( Blob.seed( pos, 300 + 20 * Dungeon.depth, ToxicGas.class ) );
} }
@Override
public String desc() {
return "Triggering this trap will set a cloud of toxic gas loose within the surrounding area.";
}
} }

View File

@ -35,7 +35,9 @@ public abstract class Trap implements Bundlable {
public String name; public String name;
public int image; public int color;
public int shape;
public int pos; public int pos;
public TrapSprite sprite; public TrapSprite sprite;

View File

@ -34,6 +34,27 @@ public class TrapSprite extends Image {
private int pos = -1; private int pos = -1;
//trap colors
public static final int RED = 0;
public static final int ORANGE = 1;
public static final int YELLOW = 2;
public static final int GREEN = 3;
public static final int TEAL = 4;
public static final int VIOLET = 5;
public static final int WHITE = 6;
public static final int GREY = 7;
public static final int BLACK = 8;
//trap shapes
public static final int DOTS = 0;
public static final int WAVES = 1;
public static final int GRILL = 2;
public static final int STARS = 3;
public static final int DIAMOND = 4;
public static final int CROSSHAIR = 5;
public static final int LARGE_DOT = 6;
public TrapSprite() { public TrapSprite() {
super( Assets.TRAPS ); super( Assets.TRAPS );
@ -53,7 +74,7 @@ public class TrapSprite extends Image {
revive(); revive();
reset( trap.image + (((Dungeon.depth-1) / 5) * 8) ); reset( trap.color + (trap.shape * 16) );
alpha( 1f ); alpha( 1f );
pos = trap.pos; pos = trap.pos;

View File

@ -28,7 +28,7 @@ public class WndInfoTrap extends WndTitledMessage {
public WndInfoTrap(Trap trap) { public WndInfoTrap(Trap trap) {
super(new TrapSprite( trap.image + (((Dungeon.depth-1) / 5) * 8) ), trap.name, trap.desc()); super(new TrapSprite( trap.color + (trap.shape * 16) ), trap.name, trap.desc());
} }