v0.7.2: balance adjustments to meat pie and elixir of might

This commit is contained in:
Evan Debenham 2019-02-01 00:54:26 -05:00
parent 335f573681
commit b1a3b92ea4
6 changed files with 93 additions and 12 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -40,7 +40,7 @@ public class WellFed extends Buff {
if (left < 0){ if (left < 0){
detach(); detach();
return true; return true;
} else if (left % 10 == 0){ } else if (left % 18 == 0){
target.HP = Math.min(target.HT, target.HP + 1); target.HP = Math.min(target.HT, target.HP + 1);
} }
@ -49,7 +49,8 @@ public class WellFed extends Buff {
} }
public void reset(){ public void reset(){
//heals one HP every 10 turns for 450 turns //heals one HP every 18 turns for 450 turns
//25 HP healed in total
left = (int)Hunger.STARVING; left = (int)Hunger.STARVING;
} }

View File

@ -81,6 +81,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.keys.SkeletonKey;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.Potion; import com.shatteredpixel.shatteredpixeldungeon.items.potions.Potion;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfExperience; import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfExperience;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfStrength; import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfStrength;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.ElixirOfMight;
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfAccuracy; import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfAccuracy;
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfEvasion; import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfEvasion;
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfForce; import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfForce;
@ -193,6 +194,10 @@ public class Hero extends Char {
float multiplier = RingOfMight.HTMultiplier(this); float multiplier = RingOfMight.HTMultiplier(this);
HT = Math.round(multiplier * HT); HT = Math.round(multiplier * HT);
if (buff(ElixirOfMight.HTBoost.class) != null){
HT += buff(ElixirOfMight.HTBoost.class).boost();
}
if (boostHP){ if (boostHP){
HP += Math.max(HT - curHT, 0); HP += Math.max(HT - curHT, 0);
} }
@ -1240,7 +1245,11 @@ public class Hero extends Char {
if (lvl < MAX_LEVEL) { if (lvl < MAX_LEVEL) {
lvl++; lvl++;
levelUp = true; levelUp = true;
if (buff(ElixirOfMight.HTBoost.class) != null){
buff(ElixirOfMight.HTBoost.class).onLevelUp();
}
updateHT( true ); updateHT( true );
attackSkill++; attackSkill++;
defenseSkill++; defenseSkill++;

View File

@ -76,7 +76,7 @@ public class MeatPie extends Food {
@Override @Override
public int cost(ArrayList<Item> ingredients) { public int cost(ArrayList<Item> ingredients) {
return (int)Hunger.STARVING/50; return 6;
} }
@Override @Override

View File

@ -22,13 +22,17 @@
package com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs; package com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs;
import com.shatteredpixel.shatteredpixeldungeon.Badges; import com.shatteredpixel.shatteredpixeldungeon.Badges;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfHealing; import com.shatteredpixel.shatteredpixeldungeon.items.potions.AlchemicalCatalyst;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfStrength; import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfStrength;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.watabou.utils.Bundle;
public class ElixirOfMight extends Elixir { public class ElixirOfMight extends Elixir {
@ -41,31 +45,96 @@ public class ElixirOfMight extends Elixir {
setKnown(); setKnown();
hero.STR++; hero.STR++;
hero.HTBoost += 5;
Buff.affect(hero, HTBoost.class).reset();
HTBoost boost = Buff.affect(hero, HTBoost.class);
boost.reset();
hero.updateHT( true ); hero.updateHT( true );
hero.sprite.showStatus( CharSprite.POSITIVE, Messages.get(this, "msg_1") ); hero.sprite.showStatus( CharSprite.POSITIVE, Messages.get(this, "msg_1", boost.boost() ));
GLog.p( Messages.get(this, "msg_2") ); GLog.p( Messages.get(this, "msg_2") );
Badges.validateStrengthAttained(); Badges.validateStrengthAttained();
} }
public String desc() {
return Messages.get(this, "desc", HTBoost.boost(Dungeon.hero.HT));
}
@Override @Override
public int price() { public int price() {
//prices of ingredients //prices of ingredients
return quantity * (50 + 30); return quantity * (50 + 40);
} }
public static class Recipe extends com.shatteredpixel.shatteredpixeldungeon.items.Recipe.SimpleRecipe { public static class Recipe extends com.shatteredpixel.shatteredpixeldungeon.items.Recipe.SimpleRecipe {
{ {
inputs = new Class[]{PotionOfStrength.class, PotionOfHealing.class}; inputs = new Class[]{PotionOfStrength.class, AlchemicalCatalyst.class};
inQuantity = new int[]{1, 1}; inQuantity = new int[]{1, 1};
cost = 10; cost = 5;
output = ElixirOfMight.class; output = ElixirOfMight.class;
outQuantity = 1; outQuantity = 1;
} }
} }
public static class HTBoost extends Buff {
{
type = buffType.POSITIVE;
}
private int left;
public void reset(){
left = 5;
}
public int boost(){
return Math.round(left*boost(target.HT)/5f);
}
public static int boost(int HT){
return Math.round(4 + HT/20f);
}
public void onLevelUp(){
left --;
if (left <= 0){
detach();
}
}
@Override
public int icon() {
return BuffIndicator.HEALING;
}
@Override
public String toString() {
return Messages.get(this, "name");
}
@Override
public String desc() {
return Messages.get(this, "desc", boost(), left);
}
private static String LEFT = "left";
@Override
public void storeInBundle(Bundle bundle) {
super.storeInBundle(bundle);
bundle.put( LEFT, left );
}
@Override
public void restoreFromBundle(Bundle bundle) {
super.restoreFromBundle(bundle);
left = bundle.getInt(LEFT);
}
}
} }

View File

@ -609,9 +609,11 @@ items.potions.elixirs.elixiroficytouch.name=elixir of icy touch
items.potions.elixirs.elixiroficytouch.desc=When consumed, this elixir will allow the drinker to sap the heat from enemies they attack. This effect will make the drinker immune to the cold, and allow them to chill enemies with physical attacks. items.potions.elixirs.elixiroficytouch.desc=When consumed, this elixir will allow the drinker to sap the heat from enemies they attack. This effect will make the drinker immune to the cold, and allow them to chill enemies with physical attacks.
items.potions.elixirs.elixirofmight.name=elixir of might items.potions.elixirs.elixirofmight.name=elixir of might
items.potions.elixirs.elixirofmight.msg_1=+1 str, +5 hp items.potions.elixirs.elixirofmight.msg_1=+1 str, +%d hp
items.potions.elixirs.elixirofmight.msg_2=Newfound strength surges through your body. items.potions.elixirs.elixirofmight.msg_2=Newfound strength surges through your body.
items.potions.elixirs.elixirofmight.desc=This powerful liquid will course through your muscles, permanently increasing your strength by one point and health by five points. items.potions.elixirs.elixirofmight.desc=This powerful liquid will course through your muscles, permanently increasing your strength by one point and temporarily increasing maximum health by %d points. The heath boost scales with your maximum health, but will slowly wear off as you gain levels.
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.elixirofrestoration.name=elixir of restoration items.potions.elixirs.elixirofrestoration.name=elixir of restoration
items.potions.elixirs.elixirofrestoration.desc=This elixir combines the properties of a healing and cleansing potion. When consumed, the drinker will start to rapidly heal, and will be cleansed of all negative effects. items.potions.elixirs.elixirofrestoration.desc=This elixir combines the properties of a healing and cleansing potion. When consumed, the drinker will start to rapidly heal, and will be cleansed of all negative effects.