v2.4.0: adjusted recipes and balance for spells, and 2 brews
This commit is contained in:
@@ -1156,7 +1156,7 @@ items.scrolls.exotic.scrollofpsionicblast.desc=This scroll contains incredible d
|
||||
###spells
|
||||
items.spells.alchemize.name=alchemize
|
||||
items.spells.alchemize.prompt=Alchemize an Item
|
||||
items.spells.alchemize.desc=This spell contains transmutative powers similar to those found in an alchemy pot. Each cast allows the user to turn an item (or stack of items) into gold or alchemical energy.\n\nAlchemize is sold from shops, and can also be made using alchemy. A scroll is mixed with a runestone or seed to create an arcane catalyst, that catalyst can then be used to create several uses of alchemize.
|
||||
items.spells.alchemize.desc=This spell contains transmutative powers similar to those found in an alchemy pot. Each cast allows the user to turn an item (or stack of items) into gold or alchemical energy.\n\nA few Alchemize uses are sold from shops, but many more can be made using alchemy by combining a seed, runestone, and a little alchemical energy.
|
||||
items.spells.alchemize$wndalchemizeitem.sell=Turn into %dg
|
||||
items.spells.alchemize$wndalchemizeitem.sell_1=Turn 1 into %dg
|
||||
items.spells.alchemize$wndalchemizeitem.sell_all=Turn all into %dg
|
||||
@@ -1207,14 +1207,13 @@ items.spells.recycle.desc=This spell contains a lesser form of transmutation mag
|
||||
|
||||
items.spells.summonelemental.name=summon elemental
|
||||
items.spells.summonelemental.ac_imbue=IMBUE
|
||||
items.spells.summonelemental.summon_limit=You can only have one elemental summoned at a time.
|
||||
items.spells.summonelemental.imbue_prompt=Imbue an item
|
||||
items.spells.summonelemental.desc=This spell channels the energy of the elemental embers used to make it, and will allow you to summon a friendly elemental to fight with you! Only one elemental can be summoned at a time, but the spell can be re-cast to return the elemental to you at no cost.
|
||||
items.spells.summonelemental.desc_newborn=The spell is currently unimbued, and will summon a _newborn elemental_ without a ranged attack. You can imbue an identified potion of liquid flame, potion of frost, scroll of recharging, or scroll of transmutation to power the spell up, causing its next summon to be a full power elemental!
|
||||
items.spells.summonelemental.desc_fire=The spell is currently hot to the touch, its next summon will be a _fire elemental_. You can imbue a different item, but the spell will lose its current imbue.
|
||||
items.spells.summonelemental.desc_frost=The spell is currently cold to the touch, its next summon will be a _frost elemental_. You can imbue a different item, but the spell will lose its current imbue.
|
||||
items.spells.summonelemental.desc_shock=The spell is currently radiating static energy, its next summon will be a _shock elemental_. You can imbue a different item, but the spell will lose its current imbue.
|
||||
items.spells.summonelemental.desc_chaos=The spell is currently radiating chaotic energy, its next summon will be a _chaos elemental_. You can imbue a different item, but the spell will lose its current imbue.
|
||||
items.spells.summonelemental.desc_newborn=The spell is currently unimbued, and will summon a _newborn elemental_ without a ranged attack. You can imbue an identified potion of liquid flame, potion of frost, scroll of recharging, or scroll of transmutation to power the spell up, causing future summons to be a full power elemental!
|
||||
items.spells.summonelemental.desc_fire=The spell is currently hot to the touch, it will summon a _fire elemental_. You can imbue a different item, but the spell will lose its current imbue.
|
||||
items.spells.summonelemental.desc_frost=The spell is currently cold to the touch, it will summon a _frost elemental_. You can imbue a different item, but the spell will lose its current imbue.
|
||||
items.spells.summonelemental.desc_shock=The spell is currently radiating static energy, it will summon a _shock elemental_. You can imbue a different item, but the spell will lose its current imbue.
|
||||
items.spells.summonelemental.desc_chaos=The spell is currently radiating chaotic energy, it will summon a _chaos elemental_. You can imbue a different item, but the spell will lose its current imbue.
|
||||
|
||||
items.spells.targetedspell.prompt=Choose a target
|
||||
items.spells.targetedspell.inv_title=Infuse an item
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
@@ -68,7 +68,7 @@ public class CausticBrew extends Brew {
|
||||
inputs = new Class[]{PotionOfToxicGas.class, GooBlob.class};
|
||||
inQuantity = new int[]{1, 1};
|
||||
|
||||
cost = 0;
|
||||
cost = 1;
|
||||
|
||||
output = CausticBrew.class;
|
||||
outQuantity = 1;
|
||||
|
||||
@@ -153,7 +153,7 @@ public class UnstableBrew extends Brew {
|
||||
|
||||
@Override
|
||||
public int cost(ArrayList<Item> ingredients) {
|
||||
return 2;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -84,7 +84,7 @@ public class Alchemize extends Spell {
|
||||
|
||||
@Override
|
||||
public int cost(ArrayList<Item> ingredients) {
|
||||
return 6;
|
||||
return 2;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -226,7 +226,7 @@ public class BeaconOfReturning extends Spell {
|
||||
inputs = new Class[]{ScrollOfPassage.class};
|
||||
inQuantity = new int[]{1};
|
||||
|
||||
cost = 15;
|
||||
cost = 12;
|
||||
|
||||
output = BeaconOfReturning.class;
|
||||
outQuantity = 5;
|
||||
|
||||
@@ -87,7 +87,7 @@ public class MagicalInfusion extends InventorySpell {
|
||||
inputs = new Class[]{ScrollOfUpgrade.class};
|
||||
inQuantity = new int[]{1};
|
||||
|
||||
cost = 13;
|
||||
cost = 12;
|
||||
|
||||
output = MagicalInfusion.class;
|
||||
outQuantity = 1;
|
||||
|
||||
@@ -65,12 +65,12 @@ public class PhaseShift extends TargetedSpell {
|
||||
|
||||
@Override
|
||||
public int value() {
|
||||
return (int)(60 * (quantity/8f));
|
||||
return (int)(60 * (quantity/6f));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int energyVal() {
|
||||
return (int)(12 * (quantity/8f));
|
||||
return (int)(12 * (quantity/6f));
|
||||
}
|
||||
|
||||
public static class Recipe extends com.shatteredpixel.shatteredpixeldungeon.items.Recipe.SimpleRecipe {
|
||||
@@ -79,10 +79,10 @@ public class PhaseShift extends TargetedSpell {
|
||||
inputs = new Class[]{ScrollOfTeleportation.class};
|
||||
inQuantity = new int[]{1};
|
||||
|
||||
cost = 13;
|
||||
cost = 10;
|
||||
|
||||
output = PhaseShift.class;
|
||||
outQuantity = 8;
|
||||
outQuantity = 6;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -115,12 +115,12 @@ public class ReclaimTrap extends TargetedSpell {
|
||||
|
||||
@Override
|
||||
public int value() {
|
||||
return (int)(60 * (quantity/4f));
|
||||
return (int)(60 * (quantity/5f));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int energyVal() {
|
||||
return (int)(12 * (quantity/4f));
|
||||
return (int)(12 * (quantity/5f));
|
||||
}
|
||||
|
||||
private static final String STORED_TRAP = "stored_trap";
|
||||
@@ -143,10 +143,10 @@ public class ReclaimTrap extends TargetedSpell {
|
||||
inputs = new Class[]{ScrollOfMagicMapping.class, MetalShard.class};
|
||||
inQuantity = new int[]{1, 1};
|
||||
|
||||
cost = 6;
|
||||
cost = 8;
|
||||
|
||||
output = ReclaimTrap.class;
|
||||
outQuantity = 4;
|
||||
outQuantity = 5;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -105,7 +105,7 @@ public class Recycle extends InventorySpell {
|
||||
inputs = new Class[]{ScrollOfTransmutation.class};
|
||||
inQuantity = new int[]{1, 1};
|
||||
|
||||
cost = 17;
|
||||
cost = 12;
|
||||
|
||||
output = Recycle.class;
|
||||
outQuantity = 12;
|
||||
|
||||
@@ -116,8 +116,6 @@ public class SummonElemental extends Spell {
|
||||
curUser.sprite.operate(curUser.pos);
|
||||
curUser.spendAndNext(Actor.TICK);
|
||||
|
||||
summonClass = Elemental.AllyNewBornElemental.class;
|
||||
|
||||
detach(Dungeon.hero.belongings.backpack);
|
||||
|
||||
} else {
|
||||
@@ -229,10 +227,10 @@ public class SummonElemental extends Spell {
|
||||
inputs = new Class[]{Embers.class};
|
||||
inQuantity = new int[]{1};
|
||||
|
||||
cost = 15;
|
||||
cost = 10;
|
||||
|
||||
output = SummonElemental.class;
|
||||
outQuantity = 5;
|
||||
outQuantity = 6;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -116,12 +116,12 @@ public class TelekineticGrab extends TargetedSpell {
|
||||
|
||||
@Override
|
||||
public int value() {
|
||||
return (int)(60 * (quantity/6f));
|
||||
return (int)(60 * (quantity/8f));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int energyVal() {
|
||||
return (int)(12 * (quantity/6f));
|
||||
return (int)(12 * (quantity/8f));
|
||||
}
|
||||
|
||||
public static class Recipe extends com.shatteredpixel.shatteredpixeldungeon.items.Recipe.SimpleRecipe {
|
||||
@@ -130,10 +130,10 @@ public class TelekineticGrab extends TargetedSpell {
|
||||
inputs = new Class[]{LiquidMetal.class};
|
||||
inQuantity = new int[]{10};
|
||||
|
||||
cost = 11;
|
||||
cost = 10;
|
||||
|
||||
output = TelekineticGrab.class;
|
||||
outQuantity = 6;
|
||||
outQuantity = 8;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -144,7 +144,7 @@ public class UnstableSpell extends Spell {
|
||||
|
||||
@Override
|
||||
public int cost(ArrayList<Item> ingredients) {
|
||||
return 2;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -29,7 +29,6 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.effects.SpellSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.quest.MetalShard;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfRecharging;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ScrollOfMysticalEnergy;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.CursedWand;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||
@@ -76,7 +75,7 @@ public class WildEnergy extends TargetedSpell {
|
||||
public static class Recipe extends com.shatteredpixel.shatteredpixeldungeon.items.Recipe.SimpleRecipe {
|
||||
|
||||
{
|
||||
inputs = new Class[]{ScrollOfMysticalEnergy.class, MetalShard.class};
|
||||
inputs = new Class[]{ScrollOfRecharging.class, MetalShard.class};
|
||||
inQuantity = new int[]{1, 1};
|
||||
|
||||
cost = 4;
|
||||
|
||||
@@ -611,35 +611,34 @@ public class ItemSpriteSheet {
|
||||
//16 free slots
|
||||
|
||||
private static final int SPELLS = xy(1, 27); //16 slots
|
||||
public static final int MAGIC_PORTER = SPELLS+0;
|
||||
public static final int WILD_ENERGY = SPELLS+0;
|
||||
public static final int PHASE_SHIFT = SPELLS+1;
|
||||
public static final int TELE_GRAB = SPELLS+2;
|
||||
public static final int WILD_ENERGY = SPELLS+3;
|
||||
public static final int RETURN_BEACON = SPELLS+4;
|
||||
public static final int SUMMON_ELE = SPELLS+5;
|
||||
public static final int UNSTABLE_SPELL = SPELLS+3;
|
||||
|
||||
public static final int CURSE_INFUSE = SPELLS+5;
|
||||
public static final int MAGIC_INFUSE = SPELLS+6;
|
||||
public static final int ALCHEMIZE = SPELLS+7;
|
||||
public static final int RECYCLE = SPELLS+8;
|
||||
|
||||
public static final int RECLAIM_TRAP = SPELLS+10;
|
||||
public static final int RETURN_BEACON = SPELLS+11;
|
||||
public static final int SUMMON_ELE = SPELLS+12;
|
||||
|
||||
public static final int UNSTABLE_SPELL = SPELLS+8;
|
||||
public static final int RECLAIM_TRAP = SPELLS+9;
|
||||
|
||||
public static final int CURSE_INFUSE = SPELLS+11;
|
||||
public static final int MAGIC_INFUSE = SPELLS+12;
|
||||
public static final int ALCHEMIZE = SPELLS+13;
|
||||
public static final int RECYCLE = SPELLS+14;
|
||||
static{
|
||||
assignItemRect(MAGIC_PORTER, 12, 11);
|
||||
assignItemRect(WILD_ENERGY, 12, 11);
|
||||
assignItemRect(PHASE_SHIFT, 12, 11);
|
||||
assignItemRect(TELE_GRAB, 12, 11);
|
||||
assignItemRect(WILD_ENERGY, 8, 16);
|
||||
assignItemRect(RETURN_BEACON, 8, 16);
|
||||
assignItemRect(SUMMON_ELE, 8, 16);
|
||||
|
||||
assignItemRect(UNSTABLE_SPELL, 12, 13);
|
||||
assignItemRect(RECLAIM_TRAP, 11, 11);
|
||||
|
||||
|
||||
assignItemRect(CURSE_INFUSE, 10, 15);
|
||||
assignItemRect(MAGIC_INFUSE, 10, 15);
|
||||
assignItemRect(ALCHEMIZE, 10, 15);
|
||||
assignItemRect(RECYCLE, 10, 15);
|
||||
|
||||
assignItemRect(RECLAIM_TRAP, 8, 16);
|
||||
assignItemRect(RETURN_BEACON, 8, 16);
|
||||
assignItemRect(SUMMON_ELE, 8, 16);
|
||||
}
|
||||
|
||||
private static final int FOOD = xy(1, 28); //16 slots
|
||||
|
||||
@@ -353,8 +353,8 @@ public class QuickRecipe extends Component {
|
||||
new ArcaneResin()));
|
||||
return result;
|
||||
case 7:
|
||||
result.add(new QuickRecipe(new CausticBrew.Recipe()));
|
||||
result.add(new QuickRecipe(new UnstableBrew.Recipe(), new ArrayList<>(Arrays.asList(new Potion.PlaceHolder(), new Plant.Seed.PlaceHolder())), new UnstableBrew()));
|
||||
result.add(new QuickRecipe(new CausticBrew.Recipe()));
|
||||
result.add(new QuickRecipe(new BlizzardBrew.Recipe()));
|
||||
result.add(new QuickRecipe(new ShockingBrew.Recipe()));
|
||||
result.add(new QuickRecipe(new InfernalBrew.Recipe()));
|
||||
@@ -371,19 +371,21 @@ public class QuickRecipe extends Component {
|
||||
result.add(new QuickRecipe(new ElixirOfFeatherFall.Recipe()));
|
||||
return result;
|
||||
case 8:
|
||||
result.add(new QuickRecipe(new UnstableSpell.Recipe(), new ArrayList<>(Arrays.asList(new Scroll.PlaceHolder(), new Runestone.PlaceHolder())), new UnstableSpell()));
|
||||
result.add(new QuickRecipe(new WildEnergy.Recipe()));
|
||||
result.add(new QuickRecipe(new TelekineticGrab.Recipe()));
|
||||
result.add(new QuickRecipe(new PhaseShift.Recipe()));
|
||||
result.add(new QuickRecipe(new WildEnergy.Recipe()));
|
||||
result.add(new QuickRecipe(new BeaconOfReturning.Recipe()));
|
||||
result.add(new QuickRecipe(new SummonElemental.Recipe()));
|
||||
result.add(null);
|
||||
result.add(new QuickRecipe(new UnstableSpell.Recipe(), new ArrayList<>(Arrays.asList(new Scroll.PlaceHolder(), new Runestone.PlaceHolder())), new UnstableSpell()));
|
||||
result.add(new QuickRecipe(new ReclaimTrap.Recipe()));
|
||||
if (!PixelScene.landscape()) result.add(null);
|
||||
result.add(null);
|
||||
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 MagicalInfusion.Recipe()));
|
||||
result.add(new QuickRecipe(new Recycle.Recipe()));
|
||||
if (!PixelScene.landscape()) result.add(null);
|
||||
result.add(null);
|
||||
result.add(new QuickRecipe(new ReclaimTrap.Recipe()));
|
||||
result.add(new QuickRecipe(new SummonElemental.Recipe()));
|
||||
result.add(new QuickRecipe(new BeaconOfReturning.Recipe()));
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user