v2.4.0: removed catalysts from alchemy recipes (lotsa followup needed)

This commit is contained in:
Evan Debenham
2024-02-18 21:02:45 -05:00
committed by Evan Debenham
parent 55ba5757da
commit 1c54043354
18 changed files with 98 additions and 73 deletions

View File

@@ -174,7 +174,21 @@ public abstract class Recipe {
new ExoticPotion.PotionToExotic(),
new ExoticScroll.ScrollToExotic(),
new ArcaneResin.Recipe(),
new Alchemize.Recipe(),
new BlizzardBrew.Recipe(),
new InfernalBrew.Recipe(),
new ShockingBrew.Recipe(),
new ElixirOfDragonsBlood.Recipe(),
new ElixirOfIcyTouch.Recipe(),
new ElixirOfToxicEssence.Recipe(),
new ElixirOfMight.Recipe(),
new MagicalInfusion.Recipe(),
new AquaBlast.Recipe(),
new BeaconOfReturning.Recipe(),
new FeatherFall.Recipe(),
new PhaseShift.Recipe(),
new Recycle.Recipe(),
new TelekineticGrab.Recipe(),
new SummonElemental.Recipe(),
new StewedMeat.oneMeat()
};
@@ -183,28 +197,14 @@ public abstract class Recipe {
new Bomb.EnhanceBomb(),
new AlchemicalCatalyst.Recipe(),
new ArcaneCatalyst.Recipe(),
new CausticBrew.Recipe(),
new ElixirOfArcaneArmor.Recipe(),
new ElixirOfAquaticRejuvenation.Recipe(),
new ElixirOfDragonsBlood.Recipe(),
new ElixirOfIcyTouch.Recipe(),
new ElixirOfMight.Recipe(),
new ElixirOfHoneyedHealing.Recipe(),
new ElixirOfToxicEssence.Recipe(),
new BlizzardBrew.Recipe(),
new InfernalBrew.Recipe(),
new ShockingBrew.Recipe(),
new CausticBrew.Recipe(),
new AquaBlast.Recipe(),
new BeaconOfReturning.Recipe(),
new Alchemize.Recipe(),
new CurseInfusion.Recipe(),
new FeatherFall.Recipe(),
new MagicalInfusion.Recipe(),
new PhaseShift.Recipe(),
new ReclaimTrap.Recipe(),
new Recycle.Recipe(),
new WildEnergy.Recipe(),
new TelekineticGrab.Recipe(),
new SummonElemental.Recipe(),
new StewedMeat.twoMeat()
};

View File

@@ -67,10 +67,10 @@ public class BlizzardBrew extends Brew {
public static class Recipe extends com.shatteredpixel.shatteredpixeldungeon.items.Recipe.SimpleRecipe {
{
inputs = new Class[]{PotionOfFrost.class, AlchemicalCatalyst.class};
inQuantity = new int[]{1, 1};
inputs = new Class[]{PotionOfFrost.class};
inQuantity = new int[]{1};
cost = 3;
cost = 11;
output = BlizzardBrew.class;
outQuantity = 1;

View File

@@ -68,10 +68,10 @@ public class InfernalBrew extends Brew {
public static class Recipe extends com.shatteredpixel.shatteredpixeldungeon.items.Recipe.SimpleRecipe {
{
inputs = new Class[]{PotionOfLiquidFlame.class, AlchemicalCatalyst.class};
inQuantity = new int[]{1, 1};
inputs = new Class[]{PotionOfLiquidFlame.class};
inQuantity = new int[]{1};
cost = 4;
cost = 12;
output = InfernalBrew.class;
outQuantity = 1;

View File

@@ -63,10 +63,10 @@ public class ShockingBrew extends Brew {
public static class Recipe extends com.shatteredpixel.shatteredpixeldungeon.items.Recipe.SimpleRecipe {
{
inputs = new Class[]{PotionOfParalyticGas.class, AlchemicalCatalyst.class};
inQuantity = new int[]{1, 1};
inputs = new Class[]{PotionOfParalyticGas.class};
inQuantity = new int[]{1};
cost = 6;
cost = 14;
output = ShockingBrew.class;
outQuantity = 1;

View File

@@ -58,10 +58,10 @@ public class ElixirOfDragonsBlood extends Elixir {
public static class Recipe extends com.shatteredpixel.shatteredpixeldungeon.items.Recipe.SimpleRecipe {
{
inputs = new Class[]{PotionOfDragonsBreath.class, AlchemicalCatalyst.class};
inQuantity = new int[]{1, 1};
inputs = new Class[]{PotionOfDragonsBreath.class};
inQuantity = new int[]{1};
cost = 6;
cost = 14;
output = ElixirOfDragonsBlood.class;
outQuantity = 1;

View File

@@ -55,10 +55,10 @@ public class ElixirOfIcyTouch extends Elixir {
public static class Recipe extends com.shatteredpixel.shatteredpixeldungeon.items.Recipe.SimpleRecipe {
{
inputs = new Class[]{PotionOfSnapFreeze.class, AlchemicalCatalyst.class};
inQuantity = new int[]{1, 1};
inputs = new Class[]{PotionOfSnapFreeze.class};
inQuantity = new int[]{1};
cost = 6;
cost = 14;
output = ElixirOfIcyTouch.class;
outQuantity = 1;

View File

@@ -75,10 +75,10 @@ public class ElixirOfMight extends Elixir {
public static class Recipe extends com.shatteredpixel.shatteredpixeldungeon.items.Recipe.SimpleRecipe {
{
inputs = new Class[]{PotionOfStrength.class, AlchemicalCatalyst.class};
inQuantity = new int[]{1, 1};
inputs = new Class[]{PotionOfStrength.class};
inQuantity = new int[]{1};
cost = 6;
cost = 14;
output = ElixirOfMight.class;
outQuantity = 1;

View File

@@ -55,10 +55,10 @@ public class ElixirOfToxicEssence extends Elixir {
public static class Recipe extends com.shatteredpixel.shatteredpixeldungeon.items.Recipe.SimpleRecipe {
{
inputs = new Class[]{PotionOfToxicGas.class, AlchemicalCatalyst.class};
inQuantity = new int[]{1, 1};
inputs = new Class[]{PotionOfToxicGas.class};
inQuantity = new int[]{1};
cost = 6;
cost = 14;
output = ElixirOfToxicEssence.class;
outQuantity = 1;

View File

@@ -26,7 +26,9 @@ import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Shopkeeper;
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.items.stones.Runestone;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.plants.Plant;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
@@ -37,6 +39,8 @@ import com.shatteredpixel.shatteredpixeldungeon.windows.WndInfoItem;
import com.shatteredpixel.shatteredpixeldungeon.windows.WndTradeItem;
import com.watabou.noosa.audio.Sample;
import java.util.ArrayList;
public class Alchemize extends Spell {
{
@@ -56,19 +60,40 @@ public class Alchemize extends Spell {
return (int)(40 * (quantity/8f));
}
//TODO also allow alchemical catalyst? Or save that for an elixir/brew?
public static class Recipe extends com.shatteredpixel.shatteredpixeldungeon.items.Recipe.SimpleRecipe {
//TODO this can't be simple anymore =S
public static class Recipe extends com.shatteredpixel.shatteredpixeldungeon.items.Recipe {
{
inputs = new Class[]{ArcaneCatalyst.class};
inQuantity = new int[]{1};
@Override
public boolean testIngredients(ArrayList<Item> ingredients) {
if (ingredients.size() != 2) return false;
cost = 2;
output = Alchemize.class;
outQuantity = 8;
if (ingredients.get(0) instanceof Plant.Seed && ingredients.get(1) instanceof Runestone){
return true;
}
if (ingredients.get(0) instanceof Runestone && ingredients.get(1) instanceof Plant.Seed){
return true;
}
return false;
}
@Override
public int cost(ArrayList<Item> ingredients) {
return 6;
}
@Override
public Item brew(ArrayList<Item> ingredients) {
ingredients.get(0).quantity(ingredients.get(0).quantity()-1);
ingredients.get(1).quantity(ingredients.get(1).quantity()-1);
return sampleOutput(null);
}
@Override
public Item sampleOutput(ArrayList<Item> ingredients) {
return new Alchemize().quantity(8);
}
}
private static WndBag.ItemSelector itemSelector = new WndBag.ItemSelector() {

View File

@@ -56,10 +56,10 @@ public class AquaBlast extends TargetedSpell {
public static class Recipe extends com.shatteredpixel.shatteredpixeldungeon.items.Recipe.SimpleRecipe {
{
inputs = new Class[]{PotionOfStormClouds.class, ArcaneCatalyst.class};
inQuantity = new int[]{1, 1};
inputs = new Class[]{PotionOfStormClouds.class};
inQuantity = new int[]{1};
cost = 2;
cost = 11;
output = AquaBlast.class;
outQuantity = 8;

View File

@@ -219,10 +219,10 @@ public class BeaconOfReturning extends Spell {
public static class Recipe extends com.shatteredpixel.shatteredpixeldungeon.items.Recipe.SimpleRecipe {
{
inputs = new Class[]{ScrollOfPassage.class, ArcaneCatalyst.class};
inQuantity = new int[]{1, 1};
inputs = new Class[]{ScrollOfPassage.class};
inQuantity = new int[]{1};
cost = 6;
cost = 15;
output = BeaconOfReturning.class;
outQuantity = 5;

View File

@@ -89,10 +89,10 @@ public class FeatherFall extends Spell {
public static class Recipe extends com.shatteredpixel.shatteredpixeldungeon.items.Recipe.SimpleRecipe {
{
inputs = new Class[]{PotionOfLevitation.class, ArcaneCatalyst.class};
inQuantity = new int[]{1, 1};
inputs = new Class[]{PotionOfLevitation.class};
inQuantity = new int[]{1};
cost = 8;
cost = 17;
output = FeatherFall.class;
outQuantity = 2;

View File

@@ -80,10 +80,10 @@ public class MagicalInfusion extends InventorySpell {
public static class Recipe extends com.shatteredpixel.shatteredpixeldungeon.items.Recipe.SimpleRecipe {
{
inputs = new Class[]{ScrollOfUpgrade.class, ArcaneCatalyst.class};
inQuantity = new int[]{1, 1};
inputs = new Class[]{ScrollOfUpgrade.class};
inQuantity = new int[]{1};
cost = 4;
cost = 13;
output = MagicalInfusion.class;
outQuantity = 1;

View File

@@ -72,10 +72,10 @@ public class PhaseShift extends TargetedSpell {
public static class Recipe extends com.shatteredpixel.shatteredpixeldungeon.items.Recipe.SimpleRecipe {
{
inputs = new Class[]{ScrollOfTeleportation.class, ArcaneCatalyst.class};
inQuantity = new int[]{1, 1};
inputs = new Class[]{ScrollOfTeleportation.class};
inQuantity = new int[]{1};
cost = 4;
cost = 13;
output = PhaseShift.class;
outQuantity = 8;

View File

@@ -99,10 +99,10 @@ public class Recycle extends InventorySpell {
public static class Recipe extends com.shatteredpixel.shatteredpixeldungeon.items.Recipe.SimpleRecipe {
{
inputs = new Class[]{ScrollOfTransmutation.class, ArcaneCatalyst.class};
inputs = new Class[]{ScrollOfTransmutation.class};
inQuantity = new int[]{1, 1};
cost = 8;
cost = 17;
output = Recycle.class;
outQuantity = 12;

View File

@@ -226,10 +226,10 @@ public class SummonElemental extends Spell {
public static class Recipe extends com.shatteredpixel.shatteredpixeldungeon.items.Recipe.SimpleRecipe {
{
inputs = new Class[]{Embers.class, ArcaneCatalyst.class};
inQuantity = new int[]{1, 1};
inputs = new Class[]{Embers.class};
inQuantity = new int[]{1};
cost = 6;
cost = 15;
output = SummonElemental.class;
outQuantity = 5;

View File

@@ -123,10 +123,10 @@ public class TelekineticGrab extends TargetedSpell {
public static class Recipe extends com.shatteredpixel.shatteredpixeldungeon.items.Recipe.SimpleRecipe {
{
inputs = new Class[]{LiquidMetal.class, ArcaneCatalyst.class};
inQuantity = new int[]{10, 1};
inputs = new Class[]{LiquidMetal.class};
inQuantity = new int[]{10};
cost = 2;
cost = 11;
output = TelekineticGrab.class;
outQuantity = 6;

View File

@@ -386,7 +386,7 @@ public class QuickRecipe extends Component {
result.add(new QuickRecipe(new ReclaimTrap.Recipe()));
result.add(new QuickRecipe(new FeatherFall.Recipe()));
result.add(null);
result.add(new QuickRecipe(new Alchemize.Recipe()));
result.add(new QuickRecipe(new Alchemize.Recipe(), new ArrayList<>(Arrays.asList(new Plant.Seed.PlaceHolder(), new Runestone.PlaceHolder())), new Alchemize().quantity(8)));
result.add(new QuickRecipe(new MagicalInfusion.Recipe()));
result.add(new QuickRecipe(new CurseInfusion.Recipe()));
result.add(new QuickRecipe(new Recycle.Recipe()));