v0.9.4: adjusted alchemy guide for new recipes
This commit is contained in:
parent
f97abe0ff2
commit
98c25a8fcd
|
@ -1146,6 +1146,7 @@ items.wands.wand.cursed=This wand is cursed, making its magic chaotic and random
|
|||
items.wands.wand.not_cursed=This wand is free of malevolent magic.
|
||||
items.wands.wand.curse_discover=This %s is cursed!
|
||||
items.wands.wand.prompt=Choose a location to zap
|
||||
items.wands.wand$placeholder.name=wand
|
||||
|
||||
items.wands.wandofblastwave.name=wand of blast wave
|
||||
items.wands.wandofblastwave.staff_name=staff of blast wave
|
||||
|
@ -1574,6 +1575,7 @@ items.weapon.missiles.missileweapon.durability=Thrown weapons will wear out and
|
|||
items.weapon.missiles.missileweapon.uses_left=This stack of weapons has _%d/%d_ uses left before one breaks.
|
||||
items.weapon.missiles.missileweapon.unlimited_uses=_But these are of such high quality that they will effectively last forever._
|
||||
items.weapon.missiles.missileweapon.about_to_break=Your thrown weapon is about to break.
|
||||
items.weapon.missiles.missileweapon$placeholder.name=thrown weapon
|
||||
|
||||
items.weapon.missiles.shuriken.name=shuriken
|
||||
items.weapon.missiles.shuriken.desc=Star-shaped pieces of metal with razor-sharp blades. They are lightweight and easy to use on the move. A single shuriken can be thrown instantly after moving.
|
||||
|
|
|
@ -29,6 +29,8 @@ 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.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
|
||||
|
|
|
@ -508,6 +508,27 @@ public abstract class Wand extends Item {
|
|||
public int collisionProperties(int target){
|
||||
return collisionProperties;
|
||||
}
|
||||
|
||||
public static class PlaceHolder extends Wand {
|
||||
|
||||
{
|
||||
image = ItemSpriteSheet.WAND_HOLDER;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSimilar(Item item) {
|
||||
return item instanceof Wand;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onZap(Ballistica attack) {}
|
||||
public void onHit(MagesStaff staff, Char attacker, Char defender, int damage) {}
|
||||
|
||||
@Override
|
||||
public String info() {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
protected static CellSelector.Listener zapper = new CellSelector.Listener() {
|
||||
|
||||
|
|
|
@ -40,6 +40,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Projecting;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.darts.Dart;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||
import com.watabou.utils.Bundle;
|
||||
import com.watabou.utils.Random;
|
||||
|
@ -445,4 +446,21 @@ abstract public class MissileWeapon extends Weapon {
|
|||
bundleRestoring = false;
|
||||
durability = bundle.getInt(DURABILITY);
|
||||
}
|
||||
|
||||
public static class PlaceHolder extends MissileWeapon {
|
||||
|
||||
{
|
||||
image = ItemSpriteSheet.MISSILE_HOLDER;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSimilar(Item item) {
|
||||
return item instanceof MissileWeapon;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String info() {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -118,13 +118,11 @@ public enum Document {
|
|||
ALCHEMY_GUIDE.pages.put("Stones", DeviceCompat.isDebug());
|
||||
ALCHEMY_GUIDE.pages.put("Energy_Food", DeviceCompat.isDebug());
|
||||
ALCHEMY_GUIDE.pages.put("Bombs", DeviceCompat.isDebug());
|
||||
//ALCHEMY_GUIDE.pages.put("Darts", DeviceCompat.isDebug());
|
||||
ALCHEMY_GUIDE.pages.put("Weapons", DeviceCompat.isDebug());
|
||||
|
||||
//prison
|
||||
ALCHEMY_GUIDE.pages.put("Exotic_Potions", DeviceCompat.isDebug());
|
||||
ALCHEMY_GUIDE.pages.put("Exotic_Scrolls", DeviceCompat.isDebug());
|
||||
|
||||
//caves
|
||||
ALCHEMY_GUIDE.pages.put("Catalysts", DeviceCompat.isDebug());
|
||||
ALCHEMY_GUIDE.pages.put("Brews_Elixirs", DeviceCompat.isDebug());
|
||||
ALCHEMY_GUIDE.pages.put("Spells", DeviceCompat.isDebug());
|
||||
|
|
|
@ -84,11 +84,9 @@ public class LaboratoryRoom extends SpecialRoom {
|
|||
}
|
||||
}
|
||||
|
||||
//4 pages in sewers, 6 in prison, 9 in caves+
|
||||
//5 pages in sewers, 10 in prison+
|
||||
int chapterTarget;
|
||||
if (missingPages.size() <= 3){
|
||||
chapterTarget = 3;
|
||||
} else if (missingPages.size() <= 5){
|
||||
if (missingPages.size() <= 5){
|
||||
chapterTarget = 2;
|
||||
} else {
|
||||
chapterTarget = 1;
|
||||
|
|
|
@ -23,8 +23,10 @@ package com.shatteredpixel.shatteredpixeldungeon.ui;
|
|||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.ArcaneResin;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.LiquidMetal;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Recipe;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.bombs.Bomb;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.food.Blandfruit;
|
||||
|
@ -62,6 +64,8 @@ import com.shatteredpixel.shatteredpixeldungeon.items.spells.ReclaimTrap;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.items.spells.Recycle;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.spells.WildEnergy;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.stones.Runestone;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.Wand;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.MissileWeapon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.plants.Plant;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.AlchemyScene;
|
||||
|
@ -309,6 +313,22 @@ public class QuickRecipe extends Component {
|
|||
}
|
||||
return result;
|
||||
case 4:
|
||||
result.add(new QuickRecipe( new LiquidMetal.Recipe(),
|
||||
new ArrayList<Item>(Arrays.asList(new MissileWeapon.PlaceHolder())),
|
||||
new LiquidMetal()));
|
||||
result.add(new QuickRecipe( new LiquidMetal.Recipe(),
|
||||
new ArrayList<Item>(Arrays.asList(new MissileWeapon.PlaceHolder().quantity(2))),
|
||||
new LiquidMetal()));
|
||||
result.add(new QuickRecipe( new LiquidMetal.Recipe(),
|
||||
new ArrayList<Item>(Arrays.asList(new MissileWeapon.PlaceHolder().quantity(3))),
|
||||
new LiquidMetal()));
|
||||
result.add(null);
|
||||
result.add(null);
|
||||
result.add(new QuickRecipe( new ArcaneResin.Recipe(),
|
||||
new ArrayList<Item>(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);
|
||||
|
@ -316,7 +336,7 @@ public class QuickRecipe extends Component {
|
|||
result.add(new QuickRecipe( r, in, r.sampleOutput(in)));
|
||||
}
|
||||
return result;
|
||||
case 5:
|
||||
case 6:
|
||||
r = new ExoticScroll.ScrollToExotic();
|
||||
for (Class<?> cls : Generator.Category.SCROLL.classes){
|
||||
Scroll scroll = (Scroll) Reflection.newInstance(cls);
|
||||
|
@ -324,7 +344,7 @@ public class QuickRecipe extends Component {
|
|||
result.add(new QuickRecipe( r, in, r.sampleOutput(in)));
|
||||
}
|
||||
return result;
|
||||
case 6:
|
||||
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()));
|
||||
result.add(null);
|
||||
|
@ -332,7 +352,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 7:
|
||||
case 8:
|
||||
result.add(new QuickRecipe(new CausticBrew.Recipe()));
|
||||
result.add(new QuickRecipe(new InfernalBrew.Recipe()));
|
||||
result.add(new QuickRecipe(new BlizzardBrew.Recipe()));
|
||||
|
@ -347,7 +367,7 @@ public class QuickRecipe extends Component {
|
|||
result.add(new QuickRecipe(new ElixirOfToxicEssence.Recipe()));
|
||||
result.add(new QuickRecipe(new ElixirOfArcaneArmor.Recipe()));
|
||||
return result;
|
||||
case 8:
|
||||
case 9:
|
||||
result.add(new QuickRecipe(new MagicalPorter.Recipe()));
|
||||
result.add(new QuickRecipe(new PhaseShift.Recipe()));
|
||||
result.add(new QuickRecipe(new WildEnergy.Recipe()));
|
||||
|
|
|
@ -325,9 +325,9 @@ public class WndJournal extends WndTabbed {
|
|||
public static class AlchemyTab extends Component {
|
||||
|
||||
private RedButton[] pageButtons;
|
||||
private static final int NUM_BUTTONS = 9;
|
||||
private static final int NUM_BUTTONS = 10;
|
||||
|
||||
private static final int[] spriteIndexes = {10, 12, 7, 8, 9, 11, 13, 14, 15};
|
||||
private static final int[] spriteIndexes = {10, 12, 7, 8, 3, 9, 11, 13, 14, 15};
|
||||
|
||||
private static int currentPageIdx = -1;
|
||||
|
||||
|
@ -380,14 +380,14 @@ public class WndJournal extends WndTabbed {
|
|||
}
|
||||
} else {
|
||||
//for first row
|
||||
float buttonWidth = width()/4;
|
||||
float buttonWidth = width()/5;
|
||||
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){
|
||||
if (i == 4){
|
||||
y += ITEM_HEIGHT;
|
||||
x = 0;
|
||||
buttonWidth = width()/5;
|
||||
|
@ -440,7 +440,7 @@ public class WndJournal extends WndTabbed {
|
|||
ArrayList<QuickRecipe> toAdd = QuickRecipe.getRecipes(currentPageIdx);
|
||||
|
||||
float left;
|
||||
float top = body.bottom()+1;
|
||||
float top = body.bottom()+2;
|
||||
int w;
|
||||
ArrayList<QuickRecipe> toAddThisRow = new ArrayList<>();
|
||||
while (!toAdd.isEmpty()){
|
||||
|
@ -486,7 +486,7 @@ public class WndJournal extends WndTabbed {
|
|||
top += 17;
|
||||
toAddThisRow.clear();
|
||||
}
|
||||
top -=1;
|
||||
top -= 1;
|
||||
content.setSize(width(), top);
|
||||
list.setSize(list.width(), list.height());
|
||||
list.scrollTo(0, 0);
|
||||
|
|
Loading…
Reference in New Issue
Block a user