From ee7b5d6a6d5b1e94a34fc1c701c5f30c8053218e Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Sat, 11 May 2019 16:07:35 -0400 Subject: [PATCH] v0.7.3: removed tipped darts from the alchemy guide, and adjust page droprates --- .../journal/Document.java | 6 +- .../levels/rooms/special/LaboratoryRoom.java | 11 ++- .../shatteredpixeldungeon/ui/QuickRecipe.java | 68 ++++++++----------- .../windows/WndJournal.java | 32 ++++++--- .../messages/journal/journal.properties | 10 ++- 5 files changed, 67 insertions(+), 60 deletions(-) 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 cc77b3d85..749601d3f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/journal/Document.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/journal/Document.java @@ -116,13 +116,13 @@ public enum Document { //sewers ALCHEMY_GUIDE.pages.put("Potions", DeviceCompat.isDebug()); ALCHEMY_GUIDE.pages.put("Stones", DeviceCompat.isDebug()); - ALCHEMY_GUIDE.pages.put("Darts", DeviceCompat.isDebug()); + ALCHEMY_GUIDE.pages.put("Energy_Food", DeviceCompat.isDebug()); + ALCHEMY_GUIDE.pages.put("Bombs", DeviceCompat.isDebug()); + //ALCHEMY_GUIDE.pages.put("Darts", DeviceCompat.isDebug()); //prison ALCHEMY_GUIDE.pages.put("Exotic_Potions", DeviceCompat.isDebug()); ALCHEMY_GUIDE.pages.put("Exotic_Scrolls", DeviceCompat.isDebug()); - ALCHEMY_GUIDE.pages.put("Energy_Food", DeviceCompat.isDebug()); - ALCHEMY_GUIDE.pages.put("Bombs", DeviceCompat.isDebug()); //caves ALCHEMY_GUIDE.pages.put("Catalysts", DeviceCompat.isDebug()); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/special/LaboratoryRoom.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/special/LaboratoryRoom.java index 792122e6c..2221a9e0b 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/special/LaboratoryRoom.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/special/LaboratoryRoom.java @@ -84,8 +84,15 @@ public class LaboratoryRoom extends SpecialRoom { } } - //3 pages in sewers, 7 in prison, 10 in caves+ - int chapterTarget = 4 - (int)Math.ceil(missingPages.size()/3.5f); + //4 pages in sewers, 6 in prison, 9 in caves+ + int chapterTarget; + if (missingPages.size() <= 3){ + chapterTarget = 3; + } else if (missingPages.size() <= 5){ + chapterTarget = 2; + } else { + chapterTarget = 1; + } if(!missingPages.isEmpty() && chapter >= chapterTarget){ 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 41eceb5bc..0c21bae57 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/QuickRecipe.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/QuickRecipe.java @@ -267,42 +267,6 @@ public class QuickRecipe extends Component { } return result; case 2: - r = new TippedDart.TipDart(); - for (Class cls : Generator.Category.SEED.classes){ - try{ - Plant.Seed seed = (Plant.Seed) cls.newInstance(); - ArrayList in = new ArrayList<>(Arrays.asList(seed, new Dart())); - result.add(new QuickRecipe( r, in, r.sampleOutput(in))); - } catch (Exception e){ - ShatteredPixelDungeon.reportException(e); - } - } - return result; - case 3: - r = new ExoticPotion.PotionToExotic(); - for (Class cls : Generator.Category.POTION.classes){ - try{ - Potion pot = (Potion) cls.newInstance(); - ArrayList in = new ArrayList<>(Arrays.asList(pot, new Plant.Seed.PlaceHolder().quantity(2))); - result.add(new QuickRecipe( r, in, r.sampleOutput(in))); - } catch (Exception e){ - ShatteredPixelDungeon.reportException(e); - } - } - return result; - case 4: - r = new ExoticScroll.ScrollToExotic(); - for (Class cls : Generator.Category.SCROLL.classes){ - try{ - Scroll scroll = (Scroll) cls.newInstance(); - ArrayList in = new ArrayList<>(Arrays.asList(scroll, new Runestone.PlaceHolder().quantity(2))); - result.add(new QuickRecipe( r, in, r.sampleOutput(in))); - } catch (Exception e){ - ShatteredPixelDungeon.reportException(e); - } - } - return result; - case 5: result.add(new QuickRecipe( new StewedMeat.oneMeat() )); result.add(new QuickRecipe( new StewedMeat.twoMeat() )); result.add(new QuickRecipe( new StewedMeat.threeMeat() )); @@ -326,7 +290,7 @@ public class QuickRecipe extends Component { } })); return result; - case 6: + case 3: r = new Bomb.EnhanceBomb(); int i = 0; for (Class cls : Bomb.EnhanceBomb.validIngredients.keySet()){ @@ -344,7 +308,31 @@ public class QuickRecipe extends Component { } } return result; - case 7: + case 4: + r = new ExoticPotion.PotionToExotic(); + for (Class cls : Generator.Category.POTION.classes){ + try{ + Potion pot = (Potion) cls.newInstance(); + ArrayList in = new ArrayList<>(Arrays.asList(pot, new Plant.Seed.PlaceHolder().quantity(2))); + result.add(new QuickRecipe( r, in, r.sampleOutput(in))); + } catch (Exception e){ + ShatteredPixelDungeon.reportException(e); + } + } + return result; + case 5: + r = new ExoticScroll.ScrollToExotic(); + for (Class cls : Generator.Category.SCROLL.classes){ + try{ + Scroll scroll = (Scroll) cls.newInstance(); + ArrayList in = new ArrayList<>(Arrays.asList(scroll, new Runestone.PlaceHolder().quantity(2))); + result.add(new QuickRecipe( r, in, r.sampleOutput(in))); + } catch (Exception e){ + ShatteredPixelDungeon.reportException(e); + } + } + return result; + case 6: 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())); result.add(null); @@ -352,7 +340,7 @@ public class QuickRecipe extends Component { result.add(new QuickRecipe(new ArcaneCatalyst.Recipe(), new ArrayList<>(Arrays.asList(new Scroll.PlaceHolder(), new Runestone.PlaceHolder())), new ArcaneCatalyst())); result.add(new QuickRecipe(new ArcaneCatalyst.Recipe(), new ArrayList<>(Arrays.asList(new Scroll.PlaceHolder(), new Plant.Seed.PlaceHolder())), new ArcaneCatalyst())); return result; - case 8: + case 7: result.add(new QuickRecipe(new CausticBrew.Recipe())); result.add(new QuickRecipe(new InfernalBrew.Recipe())); result.add(new QuickRecipe(new BlizzardBrew.Recipe())); @@ -367,7 +355,7 @@ public class QuickRecipe extends Component { result.add(new QuickRecipe(new ElixirOfToxicEssence.Recipe())); result.add(new QuickRecipe(new ElixirOfArcaneArmor.Recipe())); return result; - case 9: + case 8: result.add(new QuickRecipe(new MagicalPorter.Recipe())); result.add(new QuickRecipe(new PhaseShift.Recipe())); result.add(new QuickRecipe(new WildEnergy.Recipe())); 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 d73573036..90886ca67 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndJournal.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndJournal.java @@ -295,9 +295,9 @@ public class WndJournal extends WndTabbed { public static class AlchemyTab extends Component { private RedButton[] pageButtons; - private static final int NUM_BUTTONS = 10; + private static final int NUM_BUTTONS = 9; - private static final int spriteIndexes[] = {10, 12, 3, 9, 11, 7, 8, 13, 14, 15}; + private static final int[] spriteIndexes = {10, 12, 7, 8, 9, 11, 13, 14, 15}; private static int currentPageIdx = -1; @@ -342,13 +342,27 @@ public class WndJournal extends WndTabbed { protected void layout() { super.layout(); - int perRow = NUM_BUTTONS / (SPDSettings.landscape() ? 1 : 2); - float buttonWidth = width()/perRow; - - for (int i = 0; i < NUM_BUTTONS; i++) { - pageButtons[i].setRect((i%perRow) * (buttonWidth), (i/perRow) * (ITEM_HEIGHT), - buttonWidth, ITEM_HEIGHT); - PixelScene.align(pageButtons[i]); + if (SPDSettings.landscape()){ + float buttonWidth = width()/pageButtons.length; + for (int i = 0; i < NUM_BUTTONS; i++) { + pageButtons[i].setRect(i*buttonWidth, 0, buttonWidth, ITEM_HEIGHT); + PixelScene.align(pageButtons[i]); + } + } else { + //for first row + float buttonWidth = width()/4; + float y = 0; + float x = 0; + for (int i = 0; i < NUM_BUTTONS; i++) { + pageButtons[i].setRect(x, y, buttonWidth, ITEM_HEIGHT); + PixelScene.align(pageButtons[i]); + x += buttonWidth; + if (i == 3){ + y += ITEM_HEIGHT; + x = 0; + buttonWidth = width()/5; + } + } } list.setRect(0, pageButtons[NUM_BUTTONS-1].bottom() + 1, width, diff --git a/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/journal/journal.properties b/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/journal/journal.properties index 3293572b2..13666929d 100644 --- a/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/journal/journal.properties +++ b/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/journal/journal.properties @@ -25,16 +25,14 @@ 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.stones.title=Creating Runestones journal.document.alchemy_guide.stones.body=Mixing a scroll into an alchemy pot will imbue its magic into two or three rocks within the pot. This creates runestones! -journal.document.alchemy_guide.darts.title=Tipping Darts -journal.document.alchemy_guide.darts.body=A seed can be combined with one or two darts to tip them. Each type of seed produces its own type of tipped dart, with a unique single-use effect. -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.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.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.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.brews_elixirs.title=Brews and Elixirs