From 56682a28ec8b0026a5fd39b6bc246517aec39aca Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Fri, 30 Jun 2023 13:13:58 -0400 Subject: [PATCH] v2.1.4: added a couple custom visuals to the blacksmith quest area --- .../environment/custom_tiles/caves_quest.png | Bin 0 -> 295 bytes .../{prison_quests.png => prison_quest.png} | Bin .../shatteredpixeldungeon/Assets.java | 3 +- .../levels/MiningLevel.java | 38 ++++++++++++++++++ .../levels/rooms/standard/BlacksmithRoom.java | 26 +++++++++++- .../tiles/CustomTilemap.java | 7 +++- 6 files changed, 71 insertions(+), 3 deletions(-) create mode 100644 core/src/main/assets/environment/custom_tiles/caves_quest.png rename core/src/main/assets/environment/custom_tiles/{prison_quests.png => prison_quest.png} (100%) diff --git a/core/src/main/assets/environment/custom_tiles/caves_quest.png b/core/src/main/assets/environment/custom_tiles/caves_quest.png new file mode 100644 index 0000000000000000000000000000000000000000..4b6d532af821f2f02d586365c74792104e77f1ae GIT binary patch literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^4nQox!3-oPT6RhUDW?FR5LbIE8$B%@FBcD>01&k1 zMo0TOWJY?en%V2(;1ud^?P_hPD6i;kZ(^*irJ*1XRAXb}98g{Jk?rW=kk21@ mcg)V-G5O8200n{KKTNAbC8y^sYTN~M8iS{+pUXO@geCwPH)nnT literal 0 HcmV?d00001 diff --git a/core/src/main/assets/environment/custom_tiles/prison_quests.png b/core/src/main/assets/environment/custom_tiles/prison_quest.png similarity index 100% rename from core/src/main/assets/environment/custom_tiles/prison_quests.png rename to core/src/main/assets/environment/custom_tiles/prison_quest.png diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Assets.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Assets.java index 85a6cd087..302958e0a 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Assets.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Assets.java @@ -50,8 +50,9 @@ public class Assets { public static final String WEAK_FLOOR = "environment/custom_tiles/weak_floor.png"; public static final String SEWER_BOSS = "environment/custom_tiles/sewer_boss.png"; - public static final String PRISON_QUEST = "environment/custom_tiles/prison_quests.png"; + public static final String PRISON_QUEST = "environment/custom_tiles/prison_quest.png"; public static final String PRISON_EXIT = "environment/custom_tiles/prison_exit.png"; + public static final String CAVES_QUEST = "environment/custom_tiles/caves_quest.png"; public static final String CAVES_BOSS = "environment/custom_tiles/caves_boss.png"; public static final String CITY_BOSS = "environment/custom_tiles/city_boss.png"; public static final String HALLS_SP = "environment/custom_tiles/halls_special.png"; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/MiningLevel.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/MiningLevel.java index 548c727eb..baf812088 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/MiningLevel.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/MiningLevel.java @@ -34,7 +34,10 @@ import com.shatteredpixel.shatteredpixeldungeon.levels.painters.CavesPainter; import com.shatteredpixel.shatteredpixeldungeon.levels.painters.Painter; import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.standard.CaveRoom; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.tiles.CustomTilemap; import com.watabou.noosa.Group; +import com.watabou.noosa.Image; +import com.watabou.noosa.Tilemap; public class MiningLevel extends Level { @@ -80,6 +83,10 @@ public class MiningLevel extends Level { painter.paint(this, null); + BorderDarken vis = new BorderDarken(); + vis.setRect(0, 0, width, height); + customWalls.add(vis); + return true; } @@ -156,4 +163,35 @@ public class MiningLevel extends Level { CavesLevel.addCavesVisuals(this, visuals); return visuals; } + + public static class BorderDarken extends CustomTilemap{ + + { + texture = Assets.Environment.CAVES_QUEST; + } + + @Override + public Tilemap create() { + Tilemap v = super.create(); + int[] data = new int[tileW*tileH]; + for (int i = 0; i < data.length; i++){ + if (i < tileW){ + data[i] = 2; + } else if (i % tileW == 0 || i % tileW == tileW-1){ + data[i] = 1; + } else if (i + 2*tileW > data.length) { + data[i] = 3; + } else { + data[i] = -1; + } + } + v.map( data, tileW ); + return v; + } + + @Override + public Image image(int tileX, int tileY) { + return null; + } + } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/BlacksmithRoom.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/BlacksmithRoom.java index 2a60e8b4e..4d509f9cc 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/BlacksmithRoom.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/BlacksmithRoom.java @@ -21,6 +21,7 @@ package com.shatteredpixel.shatteredpixeldungeon.levels.rooms.standard; +import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Blacksmith; import com.shatteredpixel.shatteredpixeldungeon.items.Generator; @@ -29,6 +30,8 @@ import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain; import com.shatteredpixel.shatteredpixeldungeon.levels.features.LevelTransition; import com.shatteredpixel.shatteredpixeldungeon.levels.painters.Painter; import com.shatteredpixel.shatteredpixeldungeon.levels.traps.BurningTrap; +import com.shatteredpixel.shatteredpixeldungeon.tiles.CustomTilemap; +import com.watabou.noosa.Tilemap; import com.watabou.utils.Point; import com.watabou.utils.Random; @@ -74,7 +77,6 @@ public class BlacksmithRoom extends StandardRoom { } while (level.heaps.get( npc.pos ) != null); level.mobs.add( npc ); - // TODO need to add some better visuals here (even just a simple custom asset) Random.pushGenerator(Dungeon.seedCurDepth()+1); int entrancePos; do { @@ -82,6 +84,10 @@ public class BlacksmithRoom extends StandardRoom { } while (level.heaps.get( npc.pos ) != null || entrancePos == npc.pos); Random.popGenerator(); + QuestEntrance vis = new QuestEntrance(); + vis.pos(entrancePos, level); + level.customTiles.add(vis); + level.transitions.add(new LevelTransition(level, entrancePos, LevelTransition.Type.BRANCH_EXIT, @@ -97,4 +103,22 @@ public class BlacksmithRoom extends StandardRoom { } } } + + public static class QuestEntrance extends CustomTilemap { + + { + texture = Assets.Environment.CAVES_QUEST; + + tileW = tileH = 1; + } + + @Override + public Tilemap create() { + Tilemap v = super.create(); + v.map( new int[]{0}, 1 ); + return v; + } + + //TODO add some text here in v2.2.0 + } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/tiles/CustomTilemap.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/tiles/CustomTilemap.java index 25362f151..4e7c27d87 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/tiles/CustomTilemap.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/tiles/CustomTilemap.java @@ -22,6 +22,7 @@ package com.shatteredpixel.shatteredpixeldungeon.tiles; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; +import com.shatteredpixel.shatteredpixeldungeon.levels.Level; import com.watabou.noosa.Image; import com.watabou.noosa.NoosaScript; import com.watabou.noosa.TextureFilm; @@ -40,7 +41,11 @@ public abstract class CustomTilemap implements Bundlable { protected Tilemap vis = null; public void pos(int pos) { - pos( pos%Dungeon.level.width(), pos/Dungeon.level.width() ); + pos( pos, Dungeon.level ); + } + + public void pos(int pos, Level level) { + pos( pos%level.width(), pos/level.width() ); } public void pos(int tileX, int tileY){