From fea3cc4473113a6c22b0e7ee8cfae4586a836788 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Fri, 26 Nov 2021 17:35:34 -0500 Subject: [PATCH] v1.1.0: improved the alchemy guidebook --- .../messages/journal/journal.properties | 16 ++++----- .../journal/Document.java | 6 ++-- .../shatteredpixeldungeon/ui/QuickRecipe.java | 36 +++++++++---------- .../windows/WndJournal.java | 2 +- 4 files changed, 29 insertions(+), 31 deletions(-) diff --git a/core/src/main/assets/messages/journal/journal.properties b/core/src/main/assets/messages/journal/journal.properties index c6109da5e..975b0aa73 100644 --- a/core/src/main/assets/messages/journal/journal.properties +++ b/core/src/main/assets/messages/journal/journal.properties @@ -27,22 +27,22 @@ journal.document.adventurers_guide.magic.title=Magical Attacks journal.document.adventurers_guide.magic.body=Magical attacks cut right through armor and are extremely difficult to dodge. This means that your wands will be very reliable, but also makes magical enemies extremely dangerous!\n\nMagical attacks always have a drawback though. In the case of wands it's their limited charges, but magic that enemies use will always have some form of weakness as well.\n\nWhen facing enemies that use magic it is extremely important to figure out how to evade their magic, rather than just eating the damage from it. journal.document.alchemy_guide.title=Alchemy Guide -journal.document.alchemy_guide.potions.title=Creating Potions -journal.document.alchemy_guide.potions.body=Welcome to Practical Applications of Alchemy!\n\nThis book serves as a recipe reference for hobbyist alchemists and adventurers looking to get their hands dirty.\n\nWe will start with the most iconic alchemy recipe: Place any three seeds into an alchemy pot to brew a random potion!\n\nEvery seed has a potion counterpart, and the potion you create may relate to one of the seeds used. Using multiple of the same seed will increase the chance for this to occur. +journal.document.alchemy_guide.potions.title=Intro and Potions +journal.document.alchemy_guide.potions.body=Welcome to Practical Applications of Alchemy!\n\nAlchemy recipes can be used to craft a wide variety of items at an alchemy pot. You can experiment to find recipes, or continue reading this book for a full recipe reference!\n\nWe will start with the most iconic alchemy recipe: Place any three seeds into an alchemy pot to brew a random potion!\n\nEvery seed has a potion counterpart, and the potion you create may relate to one of the seeds used. Using multiple of the same seed will increase the chance for this to occur. journal.document.alchemy_guide.stones.title=Creating Runestones journal.document.alchemy_guide.stones.body=Mixing a scroll into an alchemy pot will imbue its magic into two rocks within the pot. This creates runestones! journal.document.alchemy_guide.energy_food.title=Energy and Food -journal.document.alchemy_guide.energy_food.body=Some recipes require energy from the alchemy pot itself. Energy is used in recipes that produce more than the sum of their ingredients.\n\nNot all energy recipes are especially mystical however. These recipes more resemble traditional cooking than alchemy. +journal.document.alchemy_guide.energy_food.body=Many recipes require crystalized alchemical energy, which is produced by deconstructing most consumable items in an alchemy pot. As a few examples: seeds generate 2 energy, stones generate 3, scrolls and potions each generate 6.\n\nSome of these recipes are quite magical, but these ones more resemble traditional cooking. +journal.document.alchemy_guide.exotic_potions.title=Exotic Potions +journal.document.alchemy_guide.exotic_potions.body=Potions can be mixed with energy to create exotic potions. They have more powerful effects, but are often useful in different ways. +journal.document.alchemy_guide.exotic_scrolls.title=Exotic Scrolls +journal.document.alchemy_guide.exotic_scrolls.body=Exotic scrolls can be made with some energy and a scroll. They're a bit stronger and more expensive than exotic potions. journal.document.alchemy_guide.bombs.title=Enhanced Bombs journal.document.alchemy_guide.bombs.body=A standard black powder bomb can be mixed with a specific item to create an enhanced bomb. journal.document.alchemy_guide.weapons.title=Enhancing Weapons journal.document.alchemy_guide.weapons.body=Some of the lighter or more magical weapons can be used in alchemy!\n\nEach thrown weapon produces enough liquid metal to fully repair another weapon of the same level and tier.\n\nOne wand will produce enough arcane resin to upgrade two wands of the same level, but no higher than +3. -journal.document.alchemy_guide.exotic_potions.title=Exotic Potions -journal.document.alchemy_guide.exotic_potions.body=Potions can be augmented with two seeds to create exotic potions. They have more powerful effects, but are often useful in different ways. -journal.document.alchemy_guide.exotic_scrolls.title=Exotic Scrolls -journal.document.alchemy_guide.exotic_scrolls.body=Exotic scrolls can be made with two runestones and a scroll. They're a bit stronger than exotic potions, but stones are also harder to come by. journal.document.alchemy_guide.catalysts.title=Catalysts -journal.document.alchemy_guide.catalysts.body=Catalysts are made by combining a scroll or potion with a single seed or runestone. If the pair of items match, the alchemical energy cost is reduced.\n\nCatalysts are most useful as components in recipes covered in the next two pages, but also can be used in a pinch for a random effect. +journal.document.alchemy_guide.catalysts.body=Catalysts are made by combining a scroll or potion with a single seed or runestone. If the pair of items match, the alchemical energy cost is removed.\n\nCatalysts are most useful as components in recipes covered in the next two pages, but also can be used in a pinch for a random effect. journal.document.alchemy_guide.brews_elixirs.title=Brews and Elixirs journal.document.alchemy_guide.brews_elixirs.body=Brews and elixirs are advanced potions which provide a variety of effects with a single use. journal.document.alchemy_guide.spells.title=Spells diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/journal/Document.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/journal/Document.java index 32ad750a5..205842fbd 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/journal/Document.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/journal/Document.java @@ -156,11 +156,11 @@ public enum Document { ALCHEMY_GUIDE.pagesStates.put("Potions", debug ? READ : NOT_FOUND); ALCHEMY_GUIDE.pagesStates.put("Stones", debug ? READ : NOT_FOUND); ALCHEMY_GUIDE.pagesStates.put("Energy_Food", debug ? READ : NOT_FOUND); + ALCHEMY_GUIDE.pagesStates.put("Exotic_Potions", debug ? READ : NOT_FOUND); + ALCHEMY_GUIDE.pagesStates.put("Exotic_Scrolls", debug ? READ : NOT_FOUND); + //given in prison ALCHEMY_GUIDE.pagesStates.put("Bombs", debug ? READ : NOT_FOUND); ALCHEMY_GUIDE.pagesStates.put("Weapons", debug ? READ : NOT_FOUND); - //given in prison - ALCHEMY_GUIDE.pagesStates.put("Exotic_Potions", debug? READ : NOT_FOUND); - ALCHEMY_GUIDE.pagesStates.put("Exotic_Scrolls", debug ? READ : NOT_FOUND); ALCHEMY_GUIDE.pagesStates.put("Catalysts", debug ? READ : NOT_FOUND); ALCHEMY_GUIDE.pagesStates.put("Brews_Elixirs", debug ? READ : NOT_FOUND); ALCHEMY_GUIDE.pagesStates.put("Spells", debug ? READ : NOT_FOUND); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/QuickRecipe.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/QuickRecipe.java index 4abbcfc80..1b252ff60 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/QuickRecipe.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/QuickRecipe.java @@ -284,12 +284,10 @@ public class QuickRecipe extends Component { result.add(new QuickRecipe( new StewedMeat.twoMeat() )); result.add(new QuickRecipe( new StewedMeat.threeMeat() )); result.add(null); - result.add(null); result.add(new QuickRecipe( new MeatPie.Recipe(), new ArrayList(Arrays.asList(new Pasty(), new Food(), new MysteryMeat.PlaceHolder())), new MeatPie())); result.add(null); - result.add(null); result.add(new QuickRecipe( new Blandfruit.CookFruit(), new ArrayList<>(Arrays.asList(new Blandfruit(), new Plant.Seed.PlaceHolder())), new Blandfruit(){ @@ -305,6 +303,22 @@ public class QuickRecipe extends Component { })); return result; case 3: + r = new ExoticPotion.PotionToExotic(); + for (Class cls : Generator.Category.POTION.classes){ + Potion pot = (Potion) Reflection.newInstance(cls); + ArrayList in = new ArrayList<>(Arrays.asList(pot)); + result.add(new QuickRecipe( r, in, r.sampleOutput(in))); + } + return result; + case 4: + r = new ExoticScroll.ScrollToExotic(); + for (Class cls : Generator.Category.SCROLL.classes){ + Scroll scroll = (Scroll) Reflection.newInstance(cls); + ArrayList in = new ArrayList<>(Arrays.asList(scroll)); + result.add(new QuickRecipe( r, in, r.sampleOutput(in))); + } + return result; + case 5: r = new Bomb.EnhanceBomb(); int i = 0; for (Class cls : Bomb.EnhanceBomb.validIngredients.keySet()){ @@ -318,7 +332,7 @@ public class QuickRecipe extends Component { i++; } return result; - case 4: + case 6: result.add(new QuickRecipe( new LiquidMetal.Recipe(), new ArrayList(Arrays.asList(new MissileWeapon.PlaceHolder())), new LiquidMetal())); @@ -334,22 +348,6 @@ public class QuickRecipe extends Component { new ArrayList(Arrays.asList(new Wand.PlaceHolder())), new ArcaneResin())); return result; - case 5: - r = new ExoticPotion.PotionToExotic(); - for (Class cls : Generator.Category.POTION.classes){ - Potion pot = (Potion) Reflection.newInstance(cls); - ArrayList in = new ArrayList<>(Arrays.asList(pot)); - result.add(new QuickRecipe( r, in, r.sampleOutput(in))); - } - return result; - case 6: - r = new ExoticScroll.ScrollToExotic(); - for (Class cls : Generator.Category.SCROLL.classes){ - Scroll scroll = (Scroll) Reflection.newInstance(cls); - ArrayList in = new ArrayList<>(Arrays.asList(scroll)); - result.add(new QuickRecipe( r, in, r.sampleOutput(in))); - } - return result; case 7: result.add(new QuickRecipe(new AlchemicalCatalyst.Recipe(), new ArrayList<>(Arrays.asList(new Potion.PlaceHolder(), new Plant.Seed.PlaceHolder())), new AlchemicalCatalyst())); result.add(new QuickRecipe(new AlchemicalCatalyst.Recipe(), new ArrayList<>(Arrays.asList(new Potion.PlaceHolder(), new Runestone.PlaceHolder())), new AlchemicalCatalyst())); 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 f741a218e..10a4b25bf 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndJournal.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndJournal.java @@ -335,7 +335,7 @@ public class WndJournal extends WndTabbed { private RedButton[] pageButtons; private static final int NUM_BUTTONS = 10; - private static final int[] spriteIndexes = {10, 12, 7, 8, 3, 9, 11, 13, 14, 15}; + private static final int[] spriteIndexes = {10, 12, 7, 9, 11, 8, 3, 13, 14, 15}; public static int currentPageIdx = -1;