From f864f95c9fdcb70261a3034a8ab7e14ad3a951ac Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Sun, 7 Feb 2021 17:20:11 -0500 Subject: [PATCH] v0.9.2: various berserk balance changes and berserking stamina talent --- .../main/assets/messages/actors/actors.properties | 2 ++ .../shatteredpixeldungeon/actors/buffs/Berserk.java | 12 +++++++----- .../shatteredpixeldungeon/actors/hero/Talent.java | 4 ++-- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/core/src/main/assets/messages/actors/actors.properties b/core/src/main/assets/messages/actors/actors.properties index 882e105d8..4a61e362a 100644 --- a/core/src/main/assets/messages/actors/actors.properties +++ b/core/src/main/assets/messages/actors/actors.properties @@ -338,6 +338,8 @@ actors.hero.talent.strongman.title=strongman actors.hero.talent.strongman.desc=_+1:_ The Warrior needs _1 less strength_ to use armor.\n\n_+2:_ The Warrior needs _1 less strength_ to use armor and _1 less strength_ to use weapons.\n\n_+3:_ The Warrior needs _2 less strength_ to use armor and _1 less strength_ to use weapons. actors.hero.talent.endless_rage.title=endless rage actors.hero.talent.endless_rage.desc=_+1:_ The Berserker can reach a max of _115% rage_.\n\n_+2:_ The Berserker can reach a max of _130% rage_.\n\n_+3:_ The Berserker can reach a max of _145% rage_.\n\nNote that rage above 100% will not grant more than +50% damage. +actors.hero.talent.berserking_stamina.title=berserking stamina +actors.hero.talent.berserking_stamina.desc=_+1:_ The Berserker gains _17% more shield_ when berserking, and the berserking cooldown is reduced to _2.5 levels_ from 3.\n\n_+2:_ The Berserker gains _33% more shield_ when berserking, and the berserking cooldown is reduced to _2 levels_ from 3.\n\n_+3:_ The Berserker gains _50% more shield_ when berserking, and the berserking cooldown is reduced to _1.5 levels_ from 3. actors.hero.talent.cleave.title=cleave actors.hero.talent.cleave.desc=_+1:_ When the Gladiator kills an enemy, the combo cooldown for his next hit is increased to _10 turns_.\n\n_+2:_ When the Gladiator kills an enemy, the combo cooldown for his next hit is increased to _20 turns_.\n\n_+3:_ When the Gladiator kills an enemy, the combo cooldown for his next hit is increased to _30 turns_. actors.hero.talent.lethal_defense.title=lethal defense 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 06a088b36..a511078ba 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 @@ -42,7 +42,7 @@ public class Berserk extends Buff { } private State state = State.NORMAL; - private static final float LEVEL_RECOVER_START = 2f; + private static final float LEVEL_RECOVER_START = 3f; private float levelRecovery; private float power = 0; @@ -73,7 +73,7 @@ public class Berserk extends Buff { if (berserking()){ ShieldBuff buff = target.buff(WarriorShield.class); if (target.HP <= 0) { - int dmg = 1 + (int)Math.ceil(target.shielding() * 0.1f); + int dmg = 1 + (int)Math.ceil(target.shielding() * 0.05f); if (buff != null && buff.shielding() > 0) { buff.absorbDamage(dmg); } else { @@ -89,7 +89,7 @@ public class Berserk extends Buff { } } else { state = State.RECOVERING; - levelRecovery = LEVEL_RECOVER_START; + levelRecovery = LEVEL_RECOVER_START - 0.5f*Dungeon.hero.pointsInTalent(Talent.BERSERKING_STAMINA); if (buff != null) buff.absorbDamage(buff.shielding()); power = 0f; } @@ -115,7 +115,9 @@ public class Berserk extends Buff { WarriorShield shield = target.buff(WarriorShield.class); if (shield != null){ state = State.BERSERK; - shield.supercharge(shield.maxShield() * 10); + int shieldAmount = shield.maxShield() * 8; + shieldAmount = Math.round(shieldAmount * (1f + Dungeon.hero.pointsInTalent(Talent.BERSERKING_STAMINA)/6f)); + shield.supercharge(shieldAmount); SpellSprite.show(target, SpellSprite.BERSERK); Sample.INSTANCE.play( Assets.Sounds.CHALLENGE ); @@ -173,7 +175,7 @@ public class Berserk extends Buff { case BERSERK: return 0f; case RECOVERING: - return 1f - levelRecovery/2f; + return 1f - levelRecovery/LEVEL_RECOVER_START; } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Talent.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Talent.java index 5af491ed5..9a23ae584 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Talent.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Talent.java @@ -73,7 +73,7 @@ public enum Talent { //Warrior T3 STRONGMAN(9, 3), WARRIOR_T3_2(10, 3), //Berserker T3 - ENDLESS_RAGE(11, 3), BERSERKER_T3_2(12, 3), BERSERKER_T3_3(13, 3), + ENDLESS_RAGE(11, 3), BERSERKING_STAMINA(12, 3), BERSERKER_T3_3(13, 3), //Gladiator T3 CLEAVE(14, 3), LETHAL_DEFENSE(15, 3), GLADIATOR_T3_3(16, 3), @@ -458,7 +458,7 @@ public enum Talent { //tier 3 switch (cls){ case BERSERKER: default: - Collections.addAll(tierTalents, ENDLESS_RAGE, BERSERKER_T3_2, BERSERKER_T3_3); + Collections.addAll(tierTalents, ENDLESS_RAGE, BERSERKING_STAMINA, BERSERKER_T3_3); break; case GLADIATOR: Collections.addAll(tierTalents, CLEAVE, LETHAL_DEFENSE, GLADIATOR_T3_3);