diff --git a/assets/traps.png b/assets/traps.png index 8bef3d129..2c3e3a781 100644 Binary files a/assets/traps.png and b/assets/traps.png differ diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/AlarmTrap.java b/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/AlarmTrap.java index f39645a8c..05d061798 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/AlarmTrap.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/AlarmTrap.java @@ -20,10 +20,10 @@ */ package com.shatteredpixel.shatteredpixeldungeon.levels.traps; +import com.shatteredpixel.shatteredpixeldungeon.sprites.TrapSprite; import com.watabou.noosa.audio.Sample; import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; -import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter; import com.shatteredpixel.shatteredpixeldungeon.effects.Speck; @@ -31,10 +31,10 @@ import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; public class AlarmTrap extends Trap { - // 0xDD3333 { name = "Alarm trap"; - image = 4; + color = TrapSprite.RED; + shape = TrapSprite.DOTS; } @Override @@ -51,4 +51,10 @@ public class AlarmTrap extends Trap { 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."; + } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/FireTrap.java b/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/FireTrap.java index 18588d0fd..c0afe12da 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/FireTrap.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/FireTrap.java @@ -20,19 +20,19 @@ */ 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.Fire; import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter; import com.shatteredpixel.shatteredpixeldungeon.effects.particles.FlameParticle; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; +import com.shatteredpixel.shatteredpixeldungeon.sprites.TrapSprite; public class FireTrap extends Trap { - // 0xFF7708 { name = "Fire trap"; - image = 1; + color = TrapSprite.ORANGE; + shape = TrapSprite.DOTS; } @Override @@ -42,4 +42,9 @@ public class FireTrap extends Trap { 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."; + } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/GrippingTrap.java b/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/GrippingTrap.java index 27d1cdb22..8bcb0fdb8 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/GrippingTrap.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/GrippingTrap.java @@ -27,13 +27,15 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Bleeding; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Cripple; import com.shatteredpixel.shatteredpixeldungeon.effects.Wound; +import com.shatteredpixel.shatteredpixeldungeon.sprites.TrapSprite; import com.watabou.utils.Random; public class GrippingTrap extends Trap { { name = "Gripping trap"; - image = 6; + color = TrapSprite.GREY; + shape = TrapSprite.CROSSHAIR; } @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."; + } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/LightningTrap.java b/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/LightningTrap.java index 5d53b88a2..d1329b1a8 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/LightningTrap.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/LightningTrap.java @@ -21,6 +21,7 @@ package com.shatteredpixel.shatteredpixeldungeon.levels.traps; import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; +import com.shatteredpixel.shatteredpixeldungeon.sprites.TrapSprite; import com.watabou.noosa.Camera; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.ResultDescriptions; @@ -39,7 +40,8 @@ public class LightningTrap extends Trap { { name = "Lightning trap"; - image = 5; + color = TrapSprite.TEAL; + shape = TrapSprite.CROSSHAIR; } @Override @@ -73,4 +75,10 @@ public class LightningTrap extends Trap { public static final Electricity LIGHTNING = new 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."; + } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/ParalyticTrap.java b/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/ParalyticTrap.java index dea5ae67b..966619463 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/ParalyticTrap.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/ParalyticTrap.java @@ -21,17 +21,17 @@ package com.shatteredpixel.shatteredpixeldungeon.levels.traps; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; -import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob; import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.ParalyticGas; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; +import com.shatteredpixel.shatteredpixeldungeon.sprites.TrapSprite; public class ParalyticTrap extends Trap{ - // 0xCCCC55 { name = "Paralytic gas trap"; - image = 2; + color = TrapSprite.YELLOW; + shape = TrapSprite.GRILL; } @Override @@ -40,4 +40,9 @@ public class ParalyticTrap extends Trap{ 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."; + } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/PoisonTrap.java b/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/PoisonTrap.java index 2e6f46a31..151d2c611 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/PoisonTrap.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/PoisonTrap.java @@ -27,13 +27,14 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Poison; import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter; import com.shatteredpixel.shatteredpixeldungeon.effects.particles.PoisonParticle; +import com.shatteredpixel.shatteredpixeldungeon.sprites.TrapSprite; public class PoisonTrap extends Trap{ - // 0xBB66EE { name = "Poison trap"; - image = 3; + color = TrapSprite.VIOLET; + shape = TrapSprite.CROSSHAIR; } @Override @@ -48,4 +49,9 @@ public class PoisonTrap extends Trap{ 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."; + } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/SummoningTrap.java b/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/SummoningTrap.java index 012a20aa1..39a42481d 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/SummoningTrap.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/SummoningTrap.java @@ -30,16 +30,17 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTeleportation; import com.shatteredpixel.shatteredpixeldungeon.levels.Level; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; +import com.shatteredpixel.shatteredpixeldungeon.sprites.TrapSprite; import com.watabou.utils.Random; public class SummoningTrap extends Trap { private static final float DELAY = 2f; - // 0x770088 { name = "Summoning trap"; - image = 7; + color = TrapSprite.TEAL; + shape = TrapSprite.WAVES; } @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."; + } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/ToxicTrap.java b/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/ToxicTrap.java index 008bc8193..fecba11ab 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/ToxicTrap.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/ToxicTrap.java @@ -21,17 +21,17 @@ package com.shatteredpixel.shatteredpixeldungeon.levels.traps; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; -import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob; import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.ToxicGas; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; +import com.shatteredpixel.shatteredpixeldungeon.sprites.TrapSprite; public class ToxicTrap extends Trap{ - // 0x40CC55 { name = "Toxic gas trap"; - image = 0; + color = TrapSprite.GREEN; + shape = TrapSprite.GRILL; } @Override @@ -40,4 +40,9 @@ public class ToxicTrap extends Trap{ 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."; + } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/Trap.java b/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/Trap.java index 53e80d0d8..5ba9ebe83 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/Trap.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/Trap.java @@ -35,7 +35,9 @@ public abstract class Trap implements Bundlable { public String name; - public int image; + public int color; + public int shape; + public int pos; public TrapSprite sprite; diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/sprites/TrapSprite.java b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/TrapSprite.java index 939c1a07f..cba0b2693 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/sprites/TrapSprite.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/TrapSprite.java @@ -34,6 +34,27 @@ public class TrapSprite extends Image { 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() { super( Assets.TRAPS ); @@ -53,7 +74,7 @@ public class TrapSprite extends Image { revive(); - reset( trap.image + (((Dungeon.depth-1) / 5) * 8) ); + reset( trap.color + (trap.shape * 16) ); alpha( 1f ); pos = trap.pos; diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoTrap.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoTrap.java index 34ce42bc5..7fa786837 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoTrap.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoTrap.java @@ -28,7 +28,7 @@ public class WndInfoTrap extends WndTitledMessage { 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()); }