diff --git a/android/src/main/assets/custom_tiles/sewer_boss.png b/android/src/main/assets/custom_tiles/sewer_boss.png index 477e933a6..4d7edc74c 100644 Binary files a/android/src/main/assets/custom_tiles/sewer_boss.png and b/android/src/main/assets/custom_tiles/sewer_boss.png differ diff --git a/android/src/main/assets/tiles_sewers.png b/android/src/main/assets/tiles_sewers.png index 812304c83..b639c6a63 100644 Binary files a/android/src/main/assets/tiles_sewers.png and b/android/src/main/assets/tiles_sewers.png differ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/SewerBossLevel.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/SewerBossLevel.java index 9a567b4dc..45a058982 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/SewerBossLevel.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/SewerBossLevel.java @@ -36,6 +36,7 @@ import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.sewerboss.SewerBoss import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.sewerboss.SewerBossExitRoom; import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.standard.StandardRoom; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; +import com.watabou.noosa.Group; import com.watabou.utils.Bundle; import com.watabou.utils.Random; @@ -157,6 +158,14 @@ public class SewerBossLevel extends SewerLevel { } } + @Override + public Group addVisuals() { + super.addVisuals(); + if (map[exit-1] != Terrain.WALL_DECO) visuals.add(new PrisonLevel.Torch(exit-1)); + if (map[exit+1] != Terrain.WALL_DECO) visuals.add(new PrisonLevel.Torch(exit+1)); + return visuals; + } + private static final String STAIRS = "stairs"; @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/sewerboss/DiamondGooRoom.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/sewerboss/DiamondGooRoom.java index 5be1181c3..5d7da1ffe 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/sewerboss/DiamondGooRoom.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/sewerboss/DiamondGooRoom.java @@ -58,7 +58,7 @@ public class DiamondGooRoom extends GooBossRoom { Painter.set(level, curr, Terrain.EMPTY_SP); curr.x += dir.x; curr.y += dir.y; - } while (level.map[level.pointToCell(curr)] != Terrain.EMPTY); + } while (level.map[level.pointToCell(curr)] == Terrain.WALL); } Painter.fill( level, left + width()/2 - 1, top + height()/2 - 2, 2 + width()%2, 4 + height()%2, Terrain.WATER); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/sewerboss/SewerBossEntranceRoom.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/sewerboss/SewerBossEntranceRoom.java index 63b3e6b79..827b8491c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/sewerboss/SewerBossEntranceRoom.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/sewerboss/SewerBossEntranceRoom.java @@ -35,6 +35,11 @@ public class SewerBossEntranceRoom extends EntranceRoom { return 6; } + @Override + public int minWidth() { + return 8; + } + public void paint(Level level ) { Painter.fill( level, this, Terrain.WALL ); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/sewerboss/SewerBossExitRoom.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/sewerboss/SewerBossExitRoom.java index 4caad71dd..be9368f19 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/sewerboss/SewerBossExitRoom.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/sewerboss/SewerBossExitRoom.java @@ -21,23 +21,27 @@ package com.shatteredpixel.shatteredpixeldungeon.levels.rooms.sewerboss; +import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.levels.Level; import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain; import com.shatteredpixel.shatteredpixeldungeon.levels.painters.Painter; import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.Room; import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.standard.ExitRoom; +import com.shatteredpixel.shatteredpixeldungeon.tiles.CustomTilemap; +import com.watabou.noosa.Image; +import com.watabou.noosa.Tilemap; import com.watabou.utils.Point; public class SewerBossExitRoom extends ExitRoom { @Override public int minWidth() { - return Math.max(super.minWidth(), 7); + return Math.max(super.minWidth(), 8); } @Override public int minHeight() { - return Math.max(super.minHeight(), 7); + return Math.max(super.minHeight(), 8); } public void paint(Level level) { @@ -51,13 +55,77 @@ public class SewerBossExitRoom extends ExitRoom { Point c = center(); - Painter.fill( level, c.x-1, c.y-1, 3, 1, Terrain.WALL ); - Painter.fill( level, c.x-1, c.y , 3, 1, Terrain.WALL_DECO ); - Painter.fill( level, c.x-1, c.y+1, 3, 1, Terrain.WATER ); + Painter.fill( level, c.x-1, c.y-1, 3, 2, Terrain.WALL ); + Painter.fill( level, c.x-1, c.y+1, 3, 1, Terrain.EMPTY_SP ); level.exit = level.pointToCell(c); Painter.set( level, level.exit, Terrain.LOCKED_EXIT ); + CustomTilemap vis = new SewerExit(); + vis.pos(c.x-1, c.y); + level.customTiles.add(vis); + + vis = new SewerExitOverhang(); + vis.pos(c.x-1, c.y-2); + level.customWalls.add(vis); + } + public static class SewerExit extends CustomTilemap { + + { + texture = Assets.SEWER_BOSS; + + tileW = 3; + tileH = 3; + } + + private static final int[] layout = new int[]{ + 21, -1, 22, + 23, 23, 23, + 24, 24, 24 + }; + + @Override + public Tilemap create() { + Tilemap v = super.create(); + v.map(layout, 3); + return v; + } + + @Override + public Image image(int tileX, int tileY) { + if ((tileX == 1 && tileY == 0) || tileY == 2){ + return null; + } + return super.image(tileX, tileY); + } + } + + public static class SewerExitOverhang extends CustomTilemap { + + { + texture = Assets.SEWER_BOSS; + + tileW = 3; + tileH = 2; + } + + private static final int[] layout = new int[]{ + 16, 17, 18, + 19, -1, 20 + }; + + @Override + public Tilemap create() { + Tilemap v = super.create(); + v.map(layout, 3); + return v; + } + + @Override + public Image image(int tileX, int tileY) { + return null; + } + } }