v2.4.0: adjusted recipes and balance for brews and elixirs

This commit is contained in:
Evan Debenham
2024-03-10 18:08:29 -04:00
parent ae020c1f71
commit a83be1d286
14 changed files with 37 additions and 23 deletions

View File

@@ -378,7 +378,7 @@ actors.buffs.terror.name=terrified
actors.buffs.terror.desc=Terror is manipulative magic which forces its target into an uncontrollable panic.\n\nTerrified characters are forced to run away from their opponent, trying to put as many doors and walls between them as possible. The shock of pain will lessen the duration of terror, however.\n\nTurns of terror remaining: %s.
actors.buffs.toxicimbue.name=imbued with toxicity
actors.buffs.toxicimbue.desc=You are imbued with poisonous energy!\n\nAs you move around toxic gas will constantly billow forth from you, damaging your enemies. You are immune to toxic gas and poison for the duration of the effect.\n\nTurns of toxic imbue remaining: %s.
actors.buffs.toxicimbue.desc=You are imbued with poisonous energy!\n\nAs you move around toxic gas will constantly billow forth from you, damaging your enemies. You are immune to toxic gas and poison for the duration of the effect, as well as for a few turns afterward.\n\nTurns of toxic imbue remaining: %s.
actors.buffs.corrosion.name=corrosion
actors.buffs.corrosion.heromsg=You are melting!

View File

@@ -775,7 +775,7 @@ items.potions.elixirs.elixirofmight$htboost.name=max health boost
items.potions.elixirs.elixirofmight$htboost.desc=Your body feels unnaturally strong and healthy.\n\nYour maximum health is boosted for an extended period of time. As you gain levels, the boost will steadily fade.\n\nCurrent boost amount: %d.\nLevels remaining: %d.
items.potions.elixirs.elixiroftoxicessence.name=elixir of toxic essence
items.potions.elixirs.elixiroftoxicessence.desc=When consumed, this elixir will imbue the drinker with toxic energy. The drinker will be immune to toxic gas and poison, and will continuously spread toxic gas as they move.
items.potions.elixirs.elixiroftoxicessence.desc=When consumed, this elixir will imbue the drinker with toxic energy. The drinker will continuously spread toxic gas as they move, and will be immune to toxic gas and poison for slightly longer than the duration of the effect.

View File

@@ -36,8 +36,8 @@ public class FrostImbue extends FlavourBuff {
public static final float DURATION = 50f;
public void proc(Char enemy){
Buff.affect(enemy, Chill.class, 2f);
enemy.sprite.emitter().burst( SnowParticle.FACTORY, 2 );
Buff.affect(enemy, Chill.class, 3f);
enemy.sprite.emitter().burst( SnowParticle.FACTORY, 3 );
}
@Override

View File

@@ -21,6 +21,7 @@
package com.shatteredpixel.shatteredpixeldungeon.actors.buffs;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.ToxicGas;
@@ -29,6 +30,7 @@ import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
import com.watabou.noosa.Image;
import com.watabou.utils.Bundle;
import com.watabou.utils.PathFinder;
public class ToxicImbue extends Buff {
@@ -62,11 +64,22 @@ public class ToxicImbue extends Buff {
@Override
public boolean act() {
GameScene.add(Blob.seed(target.pos, 50, ToxicGas.class));
if (left > 0) {
//spreads 54 units of gas total
int centerVolume = 6;
for (int i : PathFinder.NEIGHBOURS8) {
if (!Dungeon.level.solid[target.pos + i]) {
GameScene.add(Blob.seed(target.pos + i, 6, ToxicGas.class));
} else {
centerVolume += 6;
}
}
GameScene.add(Blob.seed(target.pos, centerVolume, ToxicGas.class));
}
spend(TICK);
left -= TICK;
if (left <= 0){
if (left <= -5){
detach();
}
@@ -75,7 +88,7 @@ public class ToxicImbue extends Buff {
@Override
public int icon() {
return BuffIndicator.IMBUE;
return left > 0 ? BuffIndicator.IMBUE : BuffIndicator.NONE;
}
@Override

View File

@@ -62,7 +62,7 @@ public class AquaBrew extends Brew {
inputs = new Class[]{PotionOfStormClouds.class};
inQuantity = new int[]{1};
cost = 11;
cost = 8;
output = AquaBrew.class;
outQuantity = 8;

View File

@@ -63,7 +63,7 @@ public class BlizzardBrew extends Brew {
inputs = new Class[]{PotionOfFrost.class};
inQuantity = new int[]{1};
cost = 11;
cost = 8;
output = BlizzardBrew.class;
outQuantity = 1;

View File

@@ -68,7 +68,7 @@ public class CausticBrew extends Brew {
inputs = new Class[]{PotionOfToxicGas.class, GooBlob.class};
inQuantity = new int[]{1, 1};
cost = 2;
cost = 0;
output = CausticBrew.class;
outQuantity = 1;

View File

@@ -59,7 +59,7 @@ public class ShockingBrew extends Brew {
inputs = new Class[]{PotionOfParalyticGas.class};
inQuantity = new int[]{1};
cost = 14;
cost = 10;
output = ShockingBrew.class;
outQuantity = 1;

View File

@@ -54,7 +54,7 @@ public class ElixirOfDragonsBlood extends Elixir {
inputs = new Class[]{PotionOfDragonsBreath.class};
inQuantity = new int[]{1};
cost = 14;
cost = 10;
output = ElixirOfDragonsBlood.class;
outQuantity = 1;

View File

@@ -86,7 +86,7 @@ public class ElixirOfFeatherFall extends Elixir {
inputs = new Class[]{PotionOfLevitation.class};
inQuantity = new int[]{1};
cost = 17;
cost = 16;
output = ElixirOfFeatherFall.class;
outQuantity = 2;

View File

@@ -51,7 +51,7 @@ public class ElixirOfIcyTouch extends Elixir {
inputs = new Class[]{PotionOfSnapFreeze.class};
inQuantity = new int[]{1};
cost = 14;
cost = 6;
output = ElixirOfIcyTouch.class;
outQuantity = 1;

View File

@@ -71,7 +71,7 @@ public class ElixirOfMight extends Elixir {
inputs = new Class[]{PotionOfStrength.class};
inQuantity = new int[]{1};
cost = 14;
cost = 16;
output = ElixirOfMight.class;
outQuantity = 1;

View File

@@ -25,7 +25,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ToxicImbue;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.PoisonParticle;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfToxicGas;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.exotic.PotionOfCorrosiveGas;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
public class ElixirOfToxicEssence extends Elixir {
@@ -48,10 +48,10 @@ public class ElixirOfToxicEssence extends Elixir {
public static class Recipe extends com.shatteredpixel.shatteredpixeldungeon.items.Recipe.SimpleRecipe {
{
inputs = new Class[]{PotionOfToxicGas.class};
inputs = new Class[]{PotionOfCorrosiveGas.class};
inQuantity = new int[]{1};
cost = 14;
cost = 8;
output = ElixirOfToxicEssence.class;
outQuantity = 1;

View File

@@ -354,20 +354,21 @@ public class QuickRecipe extends Component {
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 BlizzardBrew.Recipe()));
result.add(new QuickRecipe(new ShockingBrew.Recipe()));
result.add(new QuickRecipe(new InfernalBrew.Recipe()));
result.add(new QuickRecipe(new AquaBrew.Recipe()));
result.add(new QuickRecipe(new ShockingBrew.Recipe()));
result.add(new QuickRecipe(new UnstableBrew.Recipe(), new ArrayList<>(Arrays.asList(new Potion.PlaceHolder(), new Plant.Seed.PlaceHolder())), new UnstableBrew()));
result.add(null);
result.add(null);
result.add(new QuickRecipe(new ElixirOfHoneyedHealing.Recipe()));
result.add(new QuickRecipe(new ElixirOfAquaticRejuvenation.Recipe()));
result.add(new QuickRecipe(new ElixirOfMight.Recipe()));
result.add(new QuickRecipe(new ElixirOfDragonsBlood.Recipe()));
result.add(new QuickRecipe(new ElixirOfArcaneArmor.Recipe()));
result.add(new QuickRecipe(new ElixirOfIcyTouch.Recipe()));
result.add(new QuickRecipe(new ElixirOfToxicEssence.Recipe()));
result.add(new QuickRecipe(new ElixirOfDragonsBlood.Recipe()));
result.add(new QuickRecipe(new ElixirOfMight.Recipe()));
result.add(new QuickRecipe(new ElixirOfFeatherFall.Recipe()));
result.add(new QuickRecipe(new ElixirOfArcaneArmor.Recipe()));
return result;
case 8:
result.add(new QuickRecipe(new TelekineticGrab.Recipe()));