diff --git a/core/src/main/assets/environment/custom_tiles/city_quest.png b/core/src/main/assets/environment/custom_tiles/city_quest.png index c0742932e..6727c817b 100644 Binary files a/core/src/main/assets/environment/custom_tiles/city_quest.png and b/core/src/main/assets/environment/custom_tiles/city_quest.png differ diff --git a/core/src/main/assets/messages/levels/levels.properties b/core/src/main/assets/messages/levels/levels.properties index df444b4f6..94b803352 100644 --- a/core/src/main/assets/messages/levels/levels.properties +++ b/core/src/main/assets/messages/levels/levels.properties @@ -21,6 +21,9 @@ levels.rooms.special.toxicgasroom$toxicvent.desc=A careless adventurer must have levels.rooms.special.weakfloorroom$hiddenwell.name=Distant well levels.rooms.special.weakfloorroom$hiddenwell.desc=You can just make out a well in the depths below, perhaps there is something down there? +levels.rooms.quest.ambitiousimproom$questentrance.name=Vault Entrance +levels.rooms.quest.ambitiousimproom$questentrance.desc=This ominous pit seems to be the entrance to some ancient dwarven vault. A magical barrier prevents entry, you can walk over top of it as if there was floor here. + levels.rooms.quest.blacksmithroom$questentrance.name=Mine entrance levels.rooms.quest.blacksmithroom$questentrance.desc=This ladder leads to an old mine just below the blacksmith's workshop. @@ -191,6 +194,11 @@ levels.citylevel.bookshelf_desc=The rows of books on different disciplines fill levels.citylevel.region_deco_name=Flaming pedestal levels.citylevel.region_deco_desc=A raised pedestal with a bright green magical flame atop. The flame is so dense it might as well be solid. +levels.citylevel.upcoming_quest_intro_title=Developer Message +levels.citylevel.upcoming_quest_intro_body=The next major update to Shattered Pixel Dungeon will feature an overhaul to the quest given by the Ambitious Imp! This quest will task you with raiding an ancient dwarven vault, that you're current standing on top of the entrance for.\n\nCurrently the new quest area is pretty empty, but you're welcome to go down and look around, both to test the new area and give early feedback!\n\nOne of the quest's mechanics is that none of your items will come with you, so when descending you'll temporarily lose your items and _will be given an escape crystal that lets you return._ Hunger and regeneration effects will also be paused.\n\n- Evan +levels.citylevel.upcoming_quest_intro_yes=Descend into the vault +levels.citylevel.upcoming_quest_intro_no=Stay here + levels.hallslevel.water_name=Cold lava levels.hallslevel.grass_name=Embermoss levels.hallslevel.high_grass_name=Emberfungi diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CityLevel.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CityLevel.java index 08e44a1c0..64d6e222b 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CityLevel.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CityLevel.java @@ -50,8 +50,8 @@ import com.shatteredpixel.shatteredpixeldungeon.levels.traps.WarpingTrap; import com.shatteredpixel.shatteredpixeldungeon.levels.traps.WeakeningTrap; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; -import com.shatteredpixel.shatteredpixeldungeon.sprites.ImpSprite; import com.shatteredpixel.shatteredpixeldungeon.tiles.DungeonTilemap; +import com.shatteredpixel.shatteredpixeldungeon.ui.Icons; import com.shatteredpixel.shatteredpixeldungeon.windows.WndOptions; import com.watabou.noosa.Game; import com.watabou.noosa.Group; @@ -137,25 +137,23 @@ public class CityLevel extends RegularLevel { public boolean activateTransition(Hero hero, LevelTransition transition) { if (transition.type == LevelTransition.Type.BRANCH_EXIT) { - if (Imp.Quest.given()){ - Game.runOnRenderThread(new Callback() { - @Override - public void call() { - GameScene.show( new WndOptions( new ImpSprite(), - Messages.titleCase(Messages.get(Imp.class, "name")), - "Want to go down?", - "yes", - "no"){ - @Override - protected void onSelect(int index) { - if (index == 0){ - CityLevel.super.activateTransition(hero, transition); - } + Game.runOnRenderThread(new Callback() { + @Override + public void call() { + GameScene.show( new WndOptions( Icons.SHPX.get(), + Messages.titleCase(Messages.get(CityLevel.class, "upcoming_quest_intro_title")), + Messages.get(CityLevel.class, "upcoming_quest_intro_body"), + Messages.get(CityLevel.class, "upcoming_quest_intro_yes"), + Messages.get(CityLevel.class, "upcoming_quest_intro_no")){ + @Override + protected void onSelect(int index) { + if (index == 0){ + CityLevel.super.activateTransition(hero, transition); } - } ); - } - }); - } + } + } ); + } + }); return false; } else { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/quest/AmbitiousImpRoom.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/quest/AmbitiousImpRoom.java index e99a19394..d3d52eff2 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/quest/AmbitiousImpRoom.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/quest/AmbitiousImpRoom.java @@ -32,6 +32,7 @@ import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.special.SpecialRoom import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.tiles.CustomTilemap; import com.watabou.noosa.Game; +import com.watabou.noosa.Image; import com.watabou.noosa.NoosaScript; import com.watabou.noosa.TextureFilm; import com.watabou.noosa.Tilemap; @@ -49,7 +50,7 @@ public class AmbitiousImpRoom extends SpecialRoom { @Override public void paint(Level level) { - Painter.fill( level, this, Terrain.WALL ); + Painter.fill( level, this, Terrain.WALL_DECO ); Painter.fill( level, this, 1, Terrain.EMPTY ); Point c = center(); @@ -119,12 +120,12 @@ public class AmbitiousImpRoom extends SpecialRoom { @Override public boolean canPlaceGrass(Point p) { - return false; + return Point.distance(p, center()) >= 3; } @Override public boolean canPlaceWater(Point p) { - return false; + return Point.distance(p, center()) >= 3; } public static class QuestEntrance extends CustomTilemap { @@ -154,6 +155,15 @@ public class AmbitiousImpRoom extends SpecialRoom { return Messages.get(this, "desc"); } + @Override + public Image image(int tileX, int tileY) { + //only center 3x3 gives custom image/message + if (tileX >= 1 && tileX < 4 && tileY >= 1 && tileY < 4){ + return super.image(tileX, tileY); + } else { + return null; + } + } } public static class EntranceBarrier extends CustomTilemap { @@ -188,5 +198,9 @@ public class AmbitiousImpRoom extends SpecialRoom { return vis; } + @Override + public Image image(int tileX, int tileY) { + return null; + } } }