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.not_cursed=This wand is free of malevolent magic.
|
||||||
items.wands.wand.curse_discover=This %s is cursed!
|
items.wands.wand.curse_discover=This %s is cursed!
|
||||||
items.wands.wand.prompt=Choose a location to zap
|
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.name=wand of blast wave
|
||||||
items.wands.wandofblastwave.staff_name=staff 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.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.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.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.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.
|
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.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.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.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_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.title=Exotic Scrolls
|
||||||
|
|
|
@ -508,6 +508,27 @@ public abstract class Wand extends Item {
|
||||||
public int collisionProperties(int target){
|
public int collisionProperties(int target){
|
||||||
return collisionProperties;
|
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() {
|
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.enchantments.Projecting;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.darts.Dart;
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.darts.Dart;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||||
import com.watabou.utils.Bundle;
|
import com.watabou.utils.Bundle;
|
||||||
import com.watabou.utils.Random;
|
import com.watabou.utils.Random;
|
||||||
|
@ -445,4 +446,21 @@ abstract public class MissileWeapon extends Weapon {
|
||||||
bundleRestoring = false;
|
bundleRestoring = false;
|
||||||
durability = bundle.getInt(DURABILITY);
|
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("Stones", DeviceCompat.isDebug());
|
||||||
ALCHEMY_GUIDE.pages.put("Energy_Food", DeviceCompat.isDebug());
|
ALCHEMY_GUIDE.pages.put("Energy_Food", DeviceCompat.isDebug());
|
||||||
ALCHEMY_GUIDE.pages.put("Bombs", DeviceCompat.isDebug());
|
ALCHEMY_GUIDE.pages.put("Bombs", DeviceCompat.isDebug());
|
||||||
//ALCHEMY_GUIDE.pages.put("Darts", DeviceCompat.isDebug());
|
ALCHEMY_GUIDE.pages.put("Weapons", 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());
|
||||||
|
|
||||||
//caves
|
|
||||||
ALCHEMY_GUIDE.pages.put("Catalysts", DeviceCompat.isDebug());
|
ALCHEMY_GUIDE.pages.put("Catalysts", DeviceCompat.isDebug());
|
||||||
ALCHEMY_GUIDE.pages.put("Brews_Elixirs", DeviceCompat.isDebug());
|
ALCHEMY_GUIDE.pages.put("Brews_Elixirs", DeviceCompat.isDebug());
|
||||||
ALCHEMY_GUIDE.pages.put("Spells", 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;
|
int chapterTarget;
|
||||||
if (missingPages.size() <= 3){
|
if (missingPages.size() <= 5){
|
||||||
chapterTarget = 3;
|
|
||||||
} else if (missingPages.size() <= 5){
|
|
||||||
chapterTarget = 2;
|
chapterTarget = 2;
|
||||||
} else {
|
} else {
|
||||||
chapterTarget = 1;
|
chapterTarget = 1;
|
||||||
|
|
|
@ -23,8 +23,10 @@ package com.shatteredpixel.shatteredpixeldungeon.ui;
|
||||||
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon;
|
import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.ArcaneResin;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.LiquidMetal;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Recipe;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Recipe;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.bombs.Bomb;
|
import com.shatteredpixel.shatteredpixeldungeon.items.bombs.Bomb;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.food.Blandfruit;
|
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.Recycle;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.spells.WildEnergy;
|
import com.shatteredpixel.shatteredpixeldungeon.items.spells.WildEnergy;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.stones.Runestone;
|
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.messages.Messages;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.plants.Plant;
|
import com.shatteredpixel.shatteredpixeldungeon.plants.Plant;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.AlchemyScene;
|
import com.shatteredpixel.shatteredpixeldungeon.scenes.AlchemyScene;
|
||||||
|
@ -309,6 +313,22 @@ public class QuickRecipe extends Component {
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
case 4:
|
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();
|
r = new ExoticPotion.PotionToExotic();
|
||||||
for (Class<?> cls : Generator.Category.POTION.classes){
|
for (Class<?> cls : Generator.Category.POTION.classes){
|
||||||
Potion pot = (Potion) Reflection.newInstance(cls);
|
Potion pot = (Potion) Reflection.newInstance(cls);
|
||||||
|
@ -316,7 +336,7 @@ public class QuickRecipe extends Component {
|
||||||
result.add(new QuickRecipe( r, in, r.sampleOutput(in)));
|
result.add(new QuickRecipe( r, in, r.sampleOutput(in)));
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
case 5:
|
case 6:
|
||||||
r = new ExoticScroll.ScrollToExotic();
|
r = new ExoticScroll.ScrollToExotic();
|
||||||
for (Class<?> cls : Generator.Category.SCROLL.classes){
|
for (Class<?> cls : Generator.Category.SCROLL.classes){
|
||||||
Scroll scroll = (Scroll) Reflection.newInstance(cls);
|
Scroll scroll = (Scroll) Reflection.newInstance(cls);
|
||||||
|
@ -324,7 +344,7 @@ public class QuickRecipe extends Component {
|
||||||
result.add(new QuickRecipe( r, in, r.sampleOutput(in)));
|
result.add(new QuickRecipe( r, in, r.sampleOutput(in)));
|
||||||
}
|
}
|
||||||
return result;
|
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 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);
|
||||||
|
@ -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 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 7:
|
case 8:
|
||||||
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()));
|
||||||
|
@ -347,7 +367,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 8:
|
case 9:
|
||||||
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()));
|
||||||
|
|
|
@ -325,9 +325,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 = 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;
|
private static int currentPageIdx = -1;
|
||||||
|
|
||||||
|
@ -380,14 +380,14 @@ public class WndJournal extends WndTabbed {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
//for first row
|
//for first row
|
||||||
float buttonWidth = width()/4;
|
float buttonWidth = width()/5;
|
||||||
float y = 0;
|
float y = 0;
|
||||||
float x = 0;
|
float x = 0;
|
||||||
for (int i = 0; i < NUM_BUTTONS; i++) {
|
for (int i = 0; i < NUM_BUTTONS; i++) {
|
||||||
pageButtons[i].setRect(x, y, buttonWidth, ITEM_HEIGHT);
|
pageButtons[i].setRect(x, y, buttonWidth, ITEM_HEIGHT);
|
||||||
PixelScene.align(pageButtons[i]);
|
PixelScene.align(pageButtons[i]);
|
||||||
x += buttonWidth;
|
x += buttonWidth;
|
||||||
if (i == 3){
|
if (i == 4){
|
||||||
y += ITEM_HEIGHT;
|
y += ITEM_HEIGHT;
|
||||||
x = 0;
|
x = 0;
|
||||||
buttonWidth = width()/5;
|
buttonWidth = width()/5;
|
||||||
|
@ -440,7 +440,7 @@ public class WndJournal extends WndTabbed {
|
||||||
ArrayList<QuickRecipe> toAdd = QuickRecipe.getRecipes(currentPageIdx);
|
ArrayList<QuickRecipe> toAdd = QuickRecipe.getRecipes(currentPageIdx);
|
||||||
|
|
||||||
float left;
|
float left;
|
||||||
float top = body.bottom()+1;
|
float top = body.bottom()+2;
|
||||||
int w;
|
int w;
|
||||||
ArrayList<QuickRecipe> toAddThisRow = new ArrayList<>();
|
ArrayList<QuickRecipe> toAddThisRow = new ArrayList<>();
|
||||||
while (!toAdd.isEmpty()){
|
while (!toAdd.isEmpty()){
|
||||||
|
@ -486,7 +486,7 @@ public class WndJournal extends WndTabbed {
|
||||||
top += 17;
|
top += 17;
|
||||||
toAddThisRow.clear();
|
toAddThisRow.clear();
|
||||||
}
|
}
|
||||||
top -=1;
|
top -= 1;
|
||||||
content.setSize(width(), top);
|
content.setSize(width(), top);
|
||||||
list.setSize(list.width(), list.height());
|
list.setSize(list.width(), list.height());
|
||||||
list.scrollTo(0, 0);
|
list.scrollTo(0, 0);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user