v3.3.0: improved entrance area to quest tester floor

This commit is contained in:
Evan Debenham
2025-10-30 16:45:03 -04:00
parent 08a581be4a
commit ee9aaac89b
4 changed files with 42 additions and 22 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -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

View File

@@ -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 {

View File

@@ -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;
}
}
}