v0.7.3: removed tipped darts from the alchemy guide, and adjust page droprates
This commit is contained in:
parent
cdc89ac211
commit
ee7b5d6a6d
|
@ -116,13 +116,13 @@ public enum Document {
|
||||||
//sewers
|
//sewers
|
||||||
ALCHEMY_GUIDE.pages.put("Potions", DeviceCompat.isDebug());
|
ALCHEMY_GUIDE.pages.put("Potions", DeviceCompat.isDebug());
|
||||||
ALCHEMY_GUIDE.pages.put("Stones", 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
|
//prison
|
||||||
ALCHEMY_GUIDE.pages.put("Exotic_Potions", DeviceCompat.isDebug());
|
ALCHEMY_GUIDE.pages.put("Exotic_Potions", DeviceCompat.isDebug());
|
||||||
ALCHEMY_GUIDE.pages.put("Exotic_Scrolls", 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
|
//caves
|
||||||
ALCHEMY_GUIDE.pages.put("Catalysts", DeviceCompat.isDebug());
|
ALCHEMY_GUIDE.pages.put("Catalysts", DeviceCompat.isDebug());
|
||||||
|
|
|
@ -84,8 +84,15 @@ public class LaboratoryRoom extends SpecialRoom {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//3 pages in sewers, 7 in prison, 10 in caves+
|
//4 pages in sewers, 6 in prison, 9 in caves+
|
||||||
int chapterTarget = 4 - (int)Math.ceil(missingPages.size()/3.5f);
|
int chapterTarget;
|
||||||
|
if (missingPages.size() <= 3){
|
||||||
|
chapterTarget = 3;
|
||||||
|
} else if (missingPages.size() <= 5){
|
||||||
|
chapterTarget = 2;
|
||||||
|
} else {
|
||||||
|
chapterTarget = 1;
|
||||||
|
}
|
||||||
|
|
||||||
if(!missingPages.isEmpty() && chapter >= chapterTarget){
|
if(!missingPages.isEmpty() && chapter >= chapterTarget){
|
||||||
|
|
||||||
|
|
|
@ -267,42 +267,6 @@ public class QuickRecipe extends Component {
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
case 2:
|
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.oneMeat() ));
|
||||||
result.add(new QuickRecipe( new StewedMeat.twoMeat() ));
|
result.add(new QuickRecipe( new StewedMeat.twoMeat() ));
|
||||||
result.add(new QuickRecipe( new StewedMeat.threeMeat() ));
|
result.add(new QuickRecipe( new StewedMeat.threeMeat() ));
|
||||||
|
@ -326,7 +290,7 @@ public class QuickRecipe extends Component {
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
return result;
|
return result;
|
||||||
case 6:
|
case 3:
|
||||||
r = new Bomb.EnhanceBomb();
|
r = new Bomb.EnhanceBomb();
|
||||||
int i = 0;
|
int i = 0;
|
||||||
for (Class<?> cls : Bomb.EnhanceBomb.validIngredients.keySet()){
|
for (Class<?> cls : Bomb.EnhanceBomb.validIngredients.keySet()){
|
||||||
|
@ -344,7 +308,31 @@ public class QuickRecipe extends Component {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return result;
|
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 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(new QuickRecipe(new AlchemicalCatalyst.Recipe(), new ArrayList<>(Arrays.asList(new Potion.PlaceHolder(), new Runestone.PlaceHolder())), new AlchemicalCatalyst()));
|
||||||
result.add(null);
|
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 Runestone.PlaceHolder())), new ArcaneCatalyst()));
|
||||||
result.add(new QuickRecipe(new ArcaneCatalyst.Recipe(), new ArrayList<>(Arrays.asList(new Scroll.PlaceHolder(), new Plant.Seed.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;
|
return result;
|
||||||
case 8:
|
case 7:
|
||||||
result.add(new QuickRecipe(new CausticBrew.Recipe()));
|
result.add(new QuickRecipe(new CausticBrew.Recipe()));
|
||||||
result.add(new QuickRecipe(new InfernalBrew.Recipe()));
|
result.add(new QuickRecipe(new InfernalBrew.Recipe()));
|
||||||
result.add(new QuickRecipe(new BlizzardBrew.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 ElixirOfToxicEssence.Recipe()));
|
||||||
result.add(new QuickRecipe(new ElixirOfArcaneArmor.Recipe()));
|
result.add(new QuickRecipe(new ElixirOfArcaneArmor.Recipe()));
|
||||||
return result;
|
return result;
|
||||||
case 9:
|
case 8:
|
||||||
result.add(new QuickRecipe(new MagicalPorter.Recipe()));
|
result.add(new QuickRecipe(new MagicalPorter.Recipe()));
|
||||||
result.add(new QuickRecipe(new PhaseShift.Recipe()));
|
result.add(new QuickRecipe(new PhaseShift.Recipe()));
|
||||||
result.add(new QuickRecipe(new WildEnergy.Recipe()));
|
result.add(new QuickRecipe(new WildEnergy.Recipe()));
|
||||||
|
|
|
@ -295,9 +295,9 @@ public class WndJournal extends WndTabbed {
|
||||||
public static class AlchemyTab extends Component {
|
public static class AlchemyTab extends Component {
|
||||||
|
|
||||||
private RedButton[] pageButtons;
|
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;
|
private static int currentPageIdx = -1;
|
||||||
|
|
||||||
|
@ -342,13 +342,27 @@ public class WndJournal extends WndTabbed {
|
||||||
protected void layout() {
|
protected void layout() {
|
||||||
super.layout();
|
super.layout();
|
||||||
|
|
||||||
int perRow = NUM_BUTTONS / (SPDSettings.landscape() ? 1 : 2);
|
if (SPDSettings.landscape()){
|
||||||
float buttonWidth = width()/perRow;
|
float buttonWidth = width()/pageButtons.length;
|
||||||
|
for (int i = 0; i < NUM_BUTTONS; i++) {
|
||||||
for (int i = 0; i < NUM_BUTTONS; i++) {
|
pageButtons[i].setRect(i*buttonWidth, 0, buttonWidth, ITEM_HEIGHT);
|
||||||
pageButtons[i].setRect((i%perRow) * (buttonWidth), (i/perRow) * (ITEM_HEIGHT),
|
PixelScene.align(pageButtons[i]);
|
||||||
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,
|
list.setRect(0, pageButtons[NUM_BUTTONS-1].bottom() + 1, width,
|
||||||
|
|
|
@ -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.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.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.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.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=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.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.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.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 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
|
journal.document.alchemy_guide.brews_elixirs.title=Brews and Elixirs
|
||||||
|
|
Loading…
Reference in New Issue
Block a user