v0.7.3: removed tipped darts from the alchemy guide, and adjust page droprates

This commit is contained in:
Evan Debenham 2019-05-11 16:07:35 -04:00
parent cdc89ac211
commit ee7b5d6a6d
5 changed files with 67 additions and 60 deletions

View File

@ -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());

View File

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

View File

@ -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<Item> 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<Item> 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<Item> 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<Item> 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<Item> 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()));

View File

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

View File

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