diff --git a/core/src/main/assets/messages/journal/journal.properties b/core/src/main/assets/messages/journal/journal.properties index 2cc92ccd0..152bd59a6 100644 --- a/core/src/main/assets/messages/journal/journal.properties +++ b/core/src/main/assets/messages/journal/journal.properties @@ -52,7 +52,7 @@ journal.document.intros.title=Region Introductions journal.document.intros.dungeon.title=Dungeon journal.document.intros.dungeon.body=Many heroes have ventured into the dungeon before you from the city above, most have never been heard from again.\n\nIt is said that an ancient evil lurks in the depths, guarding the almighty Amulet of Yendor. Even now dark energy radiates from below, making its way up into the city.\n\nWill you conquer the dungeon and claim the amulet? It's time to start your own adventure! journal.document.intros.sewers.title=Sewers -journal.document.intros.sewers.body=The upper floors of the dungeon actually constitute the City's sewer system.\n\nAs dark energy has crept up from below the usually harmless sewer creatures have become more and more dangerous. The city sends guard patrols down here to try and maintain safety for those above, but they are slowly failing.\n\nThis place is dangerous, but at least the evil magic at work here is weak. +journal.document.intros.sewers.body=The upper floors of the dungeon actually constitute the city's sewer system.\n\nAs dark energy has crept up from below the usually harmless sewer creatures have become more and more ferocious. The city has had to send guard patrols down here to try and maintain safety for those above.\n\nThis place is dangerous, but at least the evil magic at work here is weak. journal.document.intros.prison.title=Prison journal.document.intros.prison.body=Many years ago a prison was built here to house dangerous criminals. Tightly regulated and secure, convicts from all over the land were brought here to serve time.\n\nBut soon dark miasma started to creep from below, twisting the minds of guard and prisoner alike.\n\nIn response to the mounting chaos, the city sealed off the entire prison. Nobody knows what became of those who were left for dead within these walls... journal.document.intros.caves.title=Caves diff --git a/core/src/main/assets/messages/scenes/scenes.properties b/core/src/main/assets/messages/scenes/scenes.properties index a620f600d..0fbcda433 100644 --- a/core/src/main/assets/messages/scenes/scenes.properties +++ b/core/src/main/assets/messages/scenes/scenes.properties @@ -120,7 +120,6 @@ scenes.titlescene$changesbutton.changes=Current Changes Screen scenes.titlescene.patreon_body=Shattered Pixel Dungeon is a completely free game, which means that I depend on support from generous players in order to keep making it.\n\nIf you're interested in supporting me, the best way to do so is through Patreon. Patreon gives me a consistent income source, and allows me to give something back to those who support me!\n\nPatrons get exclusive blog posts every week which let them know about what I'm working on before anyone else!\n\nYou can take a look at my Patreon page for the most up to date information about benefits, Thank you for your consideration!\n\n(Patreon rewards are only available in English) scenes.titlescene.patreon_button=Patreon Page -scenes.welcomescene.welcome_msg=Welcome to Shattered Pixel Dungeon!\n\nEach run through the dungeon is a new challenging experience, and be careful, death is permanent! Getting started is simple, but strategy is required if you want to win!\n\nHappy Dungeoneering! scenes.welcomescene.update_intro=Shattered Pixel Dungeon has been updated! scenes.welcomescene.update_msg=v1.3.0 includes a variety of additions and improvements, including a new scoring system, custom seeds and daily runs, and a harder alternate ending!\n\nThere are also some new and changed badges, various UI and control improvements, and a bunch of balance tweaks.\n\nBe sure to check the changes screen for full details. scenes.welcomescene.patch_intro=Shattered Pixel Dungeon has been patched! @@ -133,4 +132,7 @@ scenes.welcomescene.lang_warning_title=Incomplete Translation scenes.welcomescene.lang_warning_msg=Some of the new content from this update has not yet been translated.\n\nSome phrases may be written in English.\n\nThe translation teams are working to resolve this and a full translation should be patched in soon.\n\nThank you for your patience. scenes.welcomescene.continue=Continue scenes.welcomescene.changelist=Changelist -scenes.welcomescene.save_warning=Shattered Pixel Dungeon was interrupted while trying to save your game data recently. Shattered has built-in protections against this, so your game data should be fine.\n\nThis usually happens when your device suddenly loses power, or if it terminates Shattered without letting it close properly. Battery saver features can often cause this on mobile devices. Restarting your device may also help if you are seeing this error frequently. \ No newline at end of file +scenes.welcomescene.save_warning=Shattered Pixel Dungeon was interrupted while trying to save your game data recently. Shattered has built-in protections against this, so your game data should be fine.\n\nThis usually happens when your device suddenly loses power, or if it terminates Shattered without letting it close properly. Battery saver features can often cause this on mobile devices. Restarting your device may also help if you are seeing this error frequently. +scenes.welcomescene.controller_title=Controller Input +scenes.welcomescene.controller_body=Playing on a controller? Use the right stick to control an on-screen cursor.\n\nPress RT/R2 or the right stick to select with the cursor. +scenes.welcomescene.controller_okay=Okay \ No newline at end of file diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/HeroSelectScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/HeroSelectScene.java index 2ad621083..3e3a4e8f7 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/HeroSelectScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/HeroSelectScene.java @@ -130,11 +130,7 @@ public class HeroSelectScene extends PixelScene { ActionIndicator.action = null; InterlevelScene.mode = InterlevelScene.Mode.DESCEND; - if (!Document.INTROS.isPageRead(0)) { - Game.switchScene( IntroScene.class ); - } else { - Game.switchScene( InterlevelScene.class ); - } + Game.switchScene( InterlevelScene.class ); } }; startBtn.icon(Icons.get(Icons.ENTER)); @@ -275,7 +271,7 @@ public class HeroSelectScene extends PixelScene { infoButton.visible = true; infoButton.setPos(startBtn.right(), startBtn.top()); - btnOptions.visible = true; + btnOptions.visible = !SPDSettings.intro(); btnOptions.setPos(startBtn.left()-btnOptions.width(), startBtn.top()); optionsPane.setPos(optionsPane.left(), startBtn.top() - optionsPane.height() - 2); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/IntroScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/IntroScene.java deleted file mode 100644 index b4630b09e..000000000 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/IntroScene.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Pixel Dungeon - * Copyright (C) 2012-2015 Oleg Dolya - * - * Shattered Pixel Dungeon - * Copyright (C) 2014-2022 Evan Debenham - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see - */ - -package com.shatteredpixel.shatteredpixeldungeon.scenes; - -import com.shatteredpixel.shatteredpixeldungeon.journal.Document; -import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; -import com.shatteredpixel.shatteredpixeldungeon.ui.Archs; -import com.shatteredpixel.shatteredpixeldungeon.windows.WndStory; -import com.watabou.noosa.Camera; -import com.watabou.noosa.ColorBlock; -import com.watabou.noosa.Game; - -import javax.print.Doc; - -public class IntroScene extends PixelScene { - - { - inGameScene = true; - } - - @Override - public void create() { - super.create(); - - int w = Camera.main.width; - int h = Camera.main.height; - - Archs archs = new Archs(); - archs.setSize( w, h ); - add( archs ); - - //darkens the arches - add(new ColorBlock(w, h, 0x88000000)); - - add( new WndStory( Document.INTROS.pageBody(0) ) { - @Override - public void hide() { - super.hide(); - Document.INTROS.readPage(0); - Game.switchScene( InterlevelScene.class ); - } - }.setDelays(0f, 2f) ); - - fadeIn(); - } -} diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/WelcomeScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/WelcomeScene.java index 715b0b8bf..f350286c7 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/WelcomeScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/WelcomeScene.java @@ -42,6 +42,7 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.StyledButton; import com.shatteredpixel.shatteredpixeldungeon.windows.WndError; import com.shatteredpixel.shatteredpixeldungeon.windows.WndHardNotification; import com.watabou.glwrap.Blending; +import com.watabou.input.ControllerHandler; import com.watabou.noosa.Camera; import com.watabou.noosa.ColorBlock; import com.watabou.noosa.Game; @@ -179,7 +180,8 @@ public class WelcomeScene extends PixelScene { RenderedTextBlock text = PixelScene.renderTextBlock(6); String message; if (previousVersion == 0 || SPDSettings.intro()) { - message = Messages.get(this, "welcome_msg"); + message = Document.INTROS.pageBody(0); + Document.INTROS.readPage(0); } else if (previousVersion <= ShatteredPixelDungeon.versionCode) { if (previousVersion < LATEST_UPDATE){ message = Messages.get(this, "update_intro"); @@ -201,6 +203,18 @@ public class WelcomeScene extends PixelScene { text.setPos((w - text.width()) / 2f, (topRegion + 2) + (textSpace - text.height())/2); add(text); + if (previousVersion == 0 && ControllerHandler.isControllerConnected()){ + addToFront(new WndHardNotification(Icons.CONTROLLER.get(), + Messages.get(WelcomeScene.class, "controller_title"), + Messages.get(WelcomeScene.class, "controller_body"), + Messages.get(WelcomeScene.class, "controller_okay"), + 0){ + @Override + public void onBackPressed() { + //do nothing, must press the okay button + } + }); + } } private void placeTorch( float x, float y ) { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndStartGame.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndStartGame.java index 726984905..29ea36273 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndStartGame.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndStartGame.java @@ -33,7 +33,6 @@ import com.shatteredpixel.shatteredpixeldungeon.journal.Document; import com.shatteredpixel.shatteredpixeldungeon.journal.Journal; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.InterlevelScene; -import com.shatteredpixel.shatteredpixeldungeon.scenes.IntroScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; @@ -99,11 +98,7 @@ public class WndStartGame extends Window { ActionIndicator.action = null; InterlevelScene.mode = InterlevelScene.Mode.DESCEND; - if (Document.INTROS.isPageRead(0)) { - Game.switchScene( IntroScene.class ); - } else { - Game.switchScene( InterlevelScene.class ); - } + Game.switchScene( InterlevelScene.class ); } @Override