From 7493f9d77df877825f57efaf38c62c7eabbae4ca Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Sat, 27 Jul 2019 13:52:34 -0400 Subject: [PATCH] v0.7.4a: subclass balance changes: - increased berserker rage loss rate by 33% - reduced freerunner bonus evasion by 20% - increased warlock soul mark heal to 40% from 33% - warlock soul mark is now 2/5 effective when damage isn't being dealt by the warlock --- .../shatteredpixeldungeon/actors/buffs/Berserk.java | 2 +- .../shatteredpixeldungeon/actors/buffs/Momentum.java | 4 ++-- .../shatteredpixeldungeon/actors/mobs/Mob.java | 8 +++++++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Berserk.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Berserk.java index 0fd3415d1..49efbc562 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Berserk.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Berserk.java @@ -98,7 +98,7 @@ public class Berserk extends Buff { power = 0f; } } else if (state == State.NORMAL) { - power -= GameMath.gate(0.1f, power, 1f) * 0.05f * Math.pow((target.HP/(float)target.HT), 2); + power -= GameMath.gate(0.1f, power, 1f) * 0.067f * Math.pow((target.HP/(float)target.HT), 2); if (power <= 0){ detach(); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Momentum.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Momentum.java index 1bd993613..ac22ba05a 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Momentum.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Momentum.java @@ -63,8 +63,8 @@ public class Momentum extends Buff { } public int evasionBonus( int excessArmorStr ){ - //10 evasion, +2.5 evasion per excess str, at max stacks - return Math.round((1f + 0.25f*excessArmorStr) * stacks); + //8 evasion, +2 evasion per excess str, at max stacks + return Math.round((0.8f + 0.2f*excessArmorStr) * stacks); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java index 7715f5105..7172da5e0 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java @@ -537,8 +537,14 @@ public abstract class Mob extends Char { if (buff(SoulMark.class) != null) { int restoration = Math.min(damage, HP); + + //physical damage that doesn't come from the hero is less effective + if (enemy != Dungeon.hero){ + restoration = Math.round(restoration * 0.4f); + } + Buff.affect(Dungeon.hero, Hunger.class).satisfy(restoration); - Dungeon.hero.HP = (int)Math.ceil(Math.min(Dungeon.hero.HT, Dungeon.hero.HP+(restoration*0.33f))); + Dungeon.hero.HP = (int)Math.ceil(Math.min(Dungeon.hero.HT, Dungeon.hero.HP+(restoration*0.4f))); Dungeon.hero.sprite.emitter().burst( Speck.factory(Speck.HEALING), 1 ); }