From 75532abf00cff69b877ef3cc53306f8ae6427641 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Mon, 24 Jun 2024 15:21:38 -0400 Subject: [PATCH] v2.5.0: various UI/UX improvements to the journal and guidebook --- core/src/main/assets/interfaces/icons.png | Bin 15296 -> 15615 bytes .../main/assets/interfaces/menu_button.png | Bin 404 -> 406 bytes .../assets/messages/items/items.properties | 4 +- .../messages/windows/windows.properties | 2 +- .../actors/buffs/Hunger.java | 2 - .../actors/hero/Hero.java | 1 - .../actors/mobs/Snake.java | 1 - .../items/EquipableItem.java | 1 - .../items/journal/DocumentPage.java | 9 +++-- .../shatteredpixeldungeon/items/keys/Key.java | 2 +- .../items/trinkets/TrinketCatalyst.java | 1 - .../scenes/GameScene.java | 12 +++++- .../shatteredpixeldungeon/ui/Icons.java | 8 ++++ .../shatteredpixeldungeon/ui/MenuPane.java | 10 ++++- .../windows/WndJournal.java | 36 +++++++++--------- 15 files changed, 55 insertions(+), 34 deletions(-) diff --git a/core/src/main/assets/interfaces/icons.png b/core/src/main/assets/interfaces/icons.png index fd10f873ee27e04f9a0191feb68b26c2dfe6722f..46efa6a32467e3523b0c63c58c36adfaaf935f80 100644 GIT binary patch literal 15615 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 literal 15296 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 Q;s5{u07*qoM6N<$g57(182|tP diff --git a/core/src/main/assets/messages/items/items.properties b/core/src/main/assets/messages/items/items.properties index 9ed817def..ea66c7e1c 100644 --- a/core/src/main/assets/messages/items/items.properties +++ b/core/src/main/assets/messages/items/items.properties @@ -620,7 +620,9 @@ items.journal.alchemypage.name=torn alchemy book page items.journal.alchemypage.desc=A torn page from a guidebook on alchemy.\n\nMost of the text is too small to read at a distance, but you can make out the title of the page:\n\n_"%s"_ items.journal.guidebook.name=tome of dungeon mastery -items.journal.guidebook.hint=Your guidebook has advice for you! +items.journal.guidebook.hint_mobile=Your guidebook has advice for you! Tap the blinking journal button to read it. +items.journal.guidebook.hint_desktop=Your guidebook has advice for you! Select the blinking journal button (%s) to read it. +items.journal.guidebook.hint_status=Guidebook items.journal.guidebook.desc=An adventurer's guidebook, left here by someone who decided adventuring wasn't for them! This particular book is magical, and can prompt adventurers to read a page at the right moment.\n\nDespite that functionality, the book is most popular because of the big words "Don't Panic!" written in large friendly letters on the cover. items.journal.guidepage.name=torn guidebook page diff --git a/core/src/main/assets/messages/windows/windows.properties b/core/src/main/assets/messages/windows/windows.properties index e1ea17b30..6389ceffd 100644 --- a/core/src/main/assets/messages/windows/windows.properties +++ b/core/src/main/assets/messages/windows/windows.properties @@ -112,7 +112,7 @@ windows.wndinfotalent.upgrade=Upgrade Talent windows.wndinfotrap.inactive=This trap is inactive, and can no longer be triggered. -windows.wndjournal$guidetab.title=Tome of Dungeon Mastery +windows.wndjournal$guidetab.title=Dungeon Guide windows.wndjournal$alchemytab.title=Alchemy Guide windows.wndjournal$guidetab.missing=page missing windows.wndjournal$notestab.title=Adventuring Notes diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Hunger.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Hunger.java index e2214723f..fe7750186 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Hunger.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Hunger.java @@ -25,7 +25,6 @@ import com.shatteredpixel.shatteredpixeldungeon.Badges; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.SPDSettings; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; -import com.shatteredpixel.shatteredpixeldungeon.items.journal.Guidebook; import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ScrollOfChallenge; import com.shatteredpixel.shatteredpixeldungeon.journal.Document; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; @@ -100,7 +99,6 @@ public class Hunger extends Buff implements Hero.Doom { GLog.w( Messages.get(this, "onhungry") ); if (!Document.ADVENTURERS_GUIDE.isPageRead(Document.GUIDE_FOOD)){ - GLog.p(Messages.get(Guidebook.class, "hint")); GameScene.flashForDocument(Document.ADVENTURERS_GUIDE, Document.GUIDE_FOOD); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java index f9cccea91..8d73d4104 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java @@ -1534,7 +1534,6 @@ public class Hero extends Char { } if (m instanceof Snake && Dungeon.level.distance(m.pos, pos) <= 4 && !Document.ADVENTURERS_GUIDE.isPageRead(Document.GUIDE_EXAMINING)){ - GLog.p(Messages.get(Guidebook.class, "hint")); GameScene.flashForDocument(Document.ADVENTURERS_GUIDE, Document.GUIDE_EXAMINING); //we set to read here to prevent this message popping up a bunch Document.ADVENTURERS_GUIDE.readPage(Document.GUIDE_EXAMINING); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Snake.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Snake.java index b36876e7a..675b0186e 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Snake.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Snake.java @@ -63,7 +63,6 @@ public class Snake extends Mob { dodges++; if ((dodges >= 2 && !Document.ADVENTURERS_GUIDE.isPageRead(Document.GUIDE_SURPRISE_ATKS)) || (dodges >= 4 && !Badges.isUnlocked(Badges.Badge.BOSS_SLAIN_1))){ - GLog.p(Messages.get(Guidebook.class, "hint")); GameScene.flashForDocument(Document.ADVENTURERS_GUIDE, Document.GUIDE_SURPRISE_ATKS); dodges = 0; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/EquipableItem.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/EquipableItem.java index 44f0b4108..1c29190b5 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/EquipableItem.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/EquipableItem.java @@ -56,7 +56,6 @@ public abstract class EquipableItem extends Item { public boolean doPickUp(Hero hero, int pos) { if (super.doPickUp(hero, pos)){ if (!isIdentified() && !Document.ADVENTURERS_GUIDE.isPageRead(Document.GUIDE_IDING)){ - GLog.p(Messages.get(Guidebook.class, "hint")); GameScene.flashForDocument(Document.ADVENTURERS_GUIDE, Document.GUIDE_IDING); } return true; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/journal/DocumentPage.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/journal/DocumentPage.java index 598cec122..2826e5fbb 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/journal/DocumentPage.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/journal/DocumentPage.java @@ -53,11 +53,14 @@ public abstract class DocumentPage extends Item { public final boolean doPickUp(Hero hero, int pos) { GameScene.pickUpJournal(this, pos); GameScene.flashForDocument(document(), page()); - if (document() == Document.ALCHEMY_GUIDE){ + if (document() == Document.ADVENTURERS_GUIDE){ WndJournal.last_index = 1; + } else if (document() == Document.ALCHEMY_GUIDE) { + WndJournal.last_index = 2; WndJournal.AlchemyTab.currentPageIdx = document().pageIdx(page()); - } else { - WndJournal.last_index = 0; + } else if (document().isLoreDoc()){ + WndJournal.last_index = 3; + WndJournal.CatalogTab.currentItemIdx = 3; } document().findPage(page); Sample.INSTANCE.play( Assets.Sounds.ITEM ); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/keys/Key.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/keys/Key.java index 4965a7640..d10d59155 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/keys/Key.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/keys/Key.java @@ -52,7 +52,7 @@ public abstract class Key extends Item { public boolean doPickUp(Hero hero, int pos) { Catalog.setSeen(getClass()); GameScene.pickUpJournal(this, pos); - WndJournal.last_index = 2; + WndJournal.last_index = 0; Notes.add(this); Sample.INSTANCE.play( Assets.Sounds.ITEM ); hero.spendAndNext( TIME_TO_PICK_UP ); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/trinkets/TrinketCatalyst.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/trinkets/TrinketCatalyst.java index 7a198f8c5..e8a6fd04d 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/trinkets/TrinketCatalyst.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/trinkets/TrinketCatalyst.java @@ -70,7 +70,6 @@ public class TrinketCatalyst extends Item { public boolean doPickUp(Hero hero, int pos) { if (super.doPickUp(hero, pos)){ if (!Document.ADVENTURERS_GUIDE.isPageRead(Document.GUIDE_ALCHEMY)){ - GLog.p(Messages.get(Guidebook.class, "hint")); GameScene.flashForDocument(Document.ADVENTURERS_GUIDE, Document.GUIDE_ALCHEMY); } return true; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/GameScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/GameScene.java index d8b04f909..20735a832 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/GameScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/GameScene.java @@ -596,7 +596,6 @@ public class GameScene extends PixelScene { if (!SPDSettings.intro() && Rankings.INSTANCE.totalNumber > 0 && !Document.ADVENTURERS_GUIDE.isPageRead(Document.GUIDE_DIEING)){ - GLog.p(Messages.get(Guidebook.class, "hint")); GameScene.flashForDocument(Document.ADVENTURERS_GUIDE, Document.GUIDE_DIEING); } @@ -1102,6 +1101,16 @@ public class GameScene extends PixelScene { public static void flashForDocument( Document doc, String page ){ if (scene != null) { + if (doc == Document.ADVENTURERS_GUIDE){ + if (!page.equals(Document.GUIDE_INTRO)) { + if (SPDSettings.interfaceSize() == 0) { + GLog.p(Messages.get(Guidebook.class, "hint_mobile")); + } else { + GLog.p(Messages.get(Guidebook.class, "hint_desktop", KeyBindings.getKeyName(KeyBindings.getFirstKeyForAction(SPDAction.JOURNAL, ControllerHandler.isControllerConnected())))); + } + } + Dungeon.hero.sprite.showStatus(CharSprite.POSITIVE, Messages.get(Guidebook.class, "hint_status")); + } scene.menu.flashForPage( doc, page ); } } @@ -1539,7 +1548,6 @@ public class GameScene extends PixelScene { } else if ( o instanceof Mob && ((Mob) o).isActive() ){ GameScene.show(new WndInfoMob((Mob) o)); if (o instanceof Snake && !Document.ADVENTURERS_GUIDE.isPageRead(Document.GUIDE_SURPRISE_ATKS)){ - GLog.p(Messages.get(Guidebook.class, "hint")); GameScene.flashForDocument(Document.ADVENTURERS_GUIDE, Document.GUIDE_SURPRISE_ATKS); } } else if ( o instanceof Heap && !((Heap) o).isEmpty() ){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Icons.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Icons.java index 0615c08d4..d746ebe45 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Icons.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Icons.java @@ -39,6 +39,7 @@ public enum Icons { CHANGES, PREFS, SHPX, + JOURNAL, //rankings and hero select icons, spacing for 16x16 STAIRS, @@ -86,6 +87,7 @@ public enum Icons { COPY, PASTE, CATALOG, + ALCHEMY, COIN_SML, ENERGY_SML, BACKPACK, @@ -154,6 +156,9 @@ public enum Icons { case SHPX: icon.frame( icon.texture.uvRectBySize( 119, 0, 16, 16 ) ); break; + case JOURNAL: + icon.frame( icon.texture.uvRectBySize( 136, 0, 17, 16 ) ); + break; case STAIRS: icon.frame( icon.texture.uvRectBySize( 0, 16, 13, 16 ) ); @@ -283,6 +288,9 @@ public enum Icons { case CATALOG: icon.frame( icon.texture.uvRectBySize( 240, 64, 13, 16 ) ); break; + case ALCHEMY: + icon.frame( icon.texture.uvRectBySize( 224, 64, 16, 16 ) ); + break; case COIN_SML: icon.frame( icon.texture.uvRectBySize( 192, 80, 7, 7 ) ); break; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/MenuPane.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/MenuPane.java index 2605f15fd..5558cb86a 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/MenuPane.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/MenuPane.java @@ -234,7 +234,7 @@ public class MenuPane extends Component { bg = new Image( Assets.Interfaces.MENU_BTN, 2, 2, 13, 11 ); add( bg ); - journalIcon = new Image( Assets.Interfaces.MENU_BTN, 31, 0, 11, 7); + journalIcon = new Image( Assets.Interfaces.MENU_BTN, 31, 0, 11, 6); add( journalIcon ); keyIcon = new KeyDisplay(); @@ -308,9 +308,15 @@ public class MenuPane extends Component { keyIcon.am = journalIcon.am = 1; if (flashingPage != null){ if (flashingDoc == Document.ALCHEMY_GUIDE){ - WndJournal.last_index = 1; + WndJournal.last_index = 2; GameScene.show( new WndJournal() ); } else if (flashingDoc.pageNames().contains(flashingPage)){ + if (flashingDoc == Document.ADVENTURERS_GUIDE){ + WndJournal.last_index = 1; + } else if (flashingDoc.isLoreDoc()){ + WndJournal.last_index = 3; + WndJournal.CatalogTab.currentItemIdx = 3; + } GameScene.show( new WndStory( flashingDoc.pageSprite(flashingPage), flashingDoc.pageTitle(flashingPage), flashingDoc.pageBody(flashingPage) ){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndJournal.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndJournal.java index 9c7edc3c1..75713d25f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndJournal.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndJournal.java @@ -113,11 +113,23 @@ public class WndJournal extends WndTabbed { catalogTab.updateList(); Tab[] tabs = { + new IconTab( Icons.JOURNAL.get() ) { + protected void select( boolean value ) { + super.select( value ); + notesTab.active = notesTab.visible = value; + if (value) last_index = 0; + } + + @Override + protected String hoverText() { + return Messages.get(notesTab, "title"); + } + }, new IconTab( new ItemSprite(ItemSpriteSheet.MASTERY, null) ) { protected void select( boolean value ) { super.select( value ); guideTab.active = guideTab.visible = value; - if (value) last_index = 0; + if (value) last_index = 1; } @Override @@ -125,28 +137,16 @@ public class WndJournal extends WndTabbed { return Messages.get(guideTab, "title"); } }, - new IconTab( new ItemSprite(ItemSpriteSheet.ALCH_PAGE, null) ) { + new IconTab( Icons.ALCHEMY.get() ) { protected void select( boolean value ) { super.select( value ); alchemyTab.active = alchemyTab.visible = value; - if (value) last_index = 1; - } - - @Override - protected String hoverText() { - return Messages.get(alchemyTab, "title"); - } - }, - new IconTab( Icons.get(Icons.STAIRS) ) { - protected void select( boolean value ) { - super.select( value ); - notesTab.active = notesTab.visible = value; if (value) last_index = 2; } @Override protected String hoverText() { - return Messages.get(notesTab, "title"); + return Messages.get(alchemyTab, "title"); } }, new IconTab( Icons.CATALOG.get() ) { @@ -478,12 +478,12 @@ public class WndJournal extends WndTabbed { } - private static class CatalogTab extends Component{ + public static class CatalogTab extends Component{ private RedButton[] itemButtons; private static final int NUM_BUTTONS = 4; - - private static int currentItemIdx = 0; + + public static int currentItemIdx = 0; private static float[] scrollPositions = new float[NUM_BUTTONS]; //sprite locations