From bbbd16109997318b780f03fd46768222972b9b54 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Thu, 27 May 2021 20:26:53 -0400 Subject: [PATCH] v0.9.3: balance tweaks to warrior abilities: - impact wave scaling down, but now has a chance to inflict vulnerable - shrug it off now caps at 25% incominb dmg, from 33% - sustained retribution now deals 15% more total dmg per point, up from 10% --- core/src/main/assets/messages/actors/actors.properties | 6 +++--- .../actors/hero/abilities/warrior/Endure.java | 4 ++-- .../actors/hero/abilities/warrior/HeroicLeap.java | 8 +++++++- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/core/src/main/assets/messages/actors/actors.properties b/core/src/main/assets/messages/actors/actors.properties index d28174105..b5f61a26e 100644 --- a/core/src/main/assets/messages/actors/actors.properties +++ b/core/src/main/assets/messages/actors/actors.properties @@ -518,7 +518,7 @@ actors.hero.talent.enhanced_combo.desc=_+1:_ When the Gladiator's combo is 7 or actors.hero.talent.body_slam.title=body slam actors.hero.talent.body_slam.desc=_+1:_ When the Warrior lands after jumping, all adjacent enemies take _25%_ of his damage blocking power in damage.\n\n_+2:_ When the Warrior lands after jumping, all adjacent enemies take _50%_ of his damage blocking power in damage.\n\n_+3:_ When the Warrior lands after jumping, all adjacent enemies take _75%_ of his damage blocking power in damage.\n\n_+4:_ When the Warrior lands after jumping, all adjacent enemies take _100%_ of his damage blocking power in damage. actors.hero.talent.impact_wave.title=impact wave -actors.hero.talent.impact_wave.desc=_+1:_ When the Warrior lands after jumping, all adjacent enemies are knocked _2 tiles_ back.\n\n_+2:_ When the Warrior lands after jumping, all adjacent enemies are knocked _4 tiles_ back.\n\n_+3:_ When the Warrior lands after jumping, all adjacent enemies are knocked _6 tiles_ back.\n\n_+4:_ When the Warrior lands after jumping, all adjacent enemies are knocked _8 tiles_ back. +actors.hero.talent.impact_wave.desc=_+1:_ When the Warrior lands after jumping, all adjacent enemies are knocked _2 tiles_ back and have a _25% chance_ of becoming vulnerable for 3 turns.\n\n_+2:_ When the Warrior lands after jumping, all adjacent enemies are knocked _3 tiles_ back and have a _50% chance_ of becoming vulnerable for 3 turns.\n\n_+3:_ When the Warrior lands after jumping, all adjacent enemies are knocked _4 tiles_ back and have a _75% chance_ of becoming vulnerable for 3 turns.\n\n_+4:_ When the Warrior lands after jumping, all adjacent enemies are knocked _5 tiles_ back and have a _100% chance_ of becoming vulnerable for 3 turns. actors.hero.talent.double_jump.title=double jump actors.hero.talent.double_jump.desc=_+1:_ If the Warrior performs a second leap within 5 turns, that leap has a _24% reduced_ charge cost.\n\n_+2:_ If the Warrior performs a second leap within 5 turns, that leap has a _42% reduced_ charge cost.\n\n_+3:_ If the Warrior performs a second leap within 5 turns, that leap has a _56% reduced_ charge cost.\n\n_+4:_ If the Warrior performs a second leap within 5 turns, that leap has a _67% reduced_ charge cost. @@ -530,9 +530,9 @@ actors.hero.talent.shock_force.title=shock force actors.hero.talent.shock_force.desc=_+1:_ Shockwave deals _20% more damage_ and has a _25% chance_ to stun instead of cripple.\n\n_+2:_ Shockwave deals _50% more damage_ and has a _50% chance_ to stun instead of cripple.\n\n_+3:_ Shockwave deals _60% more damage_ and has a _75% chance_ to stun instead of cripple.\n\n_+4:_ Shockwave deals _80% more damage_ and has a _100% chance_ to stun instead of cripple. actors.hero.talent.sustained_retribution.title=sustained retribution -actors.hero.talent.sustained_retribution.desc=_+1:_ The Warrior deals _55% bonus damage_ over _2 hits_, instead of 100% over 1 hit.\n\n_+2:_ The Warrior deals _40% bonus damage_ over _3 hits_, instead of 100% over 1 hit.\n\n_+3:_ The Warrior deals _33% bonus damage_ over _4 hits_, instead of 100% over 1 hit.\n\n_+4:_ The Warrior deals _28% bonus damage_ over _5 hits_, instead of 100% over 1 hit. +actors.hero.talent.sustained_retribution.desc=_+1:_ The Warrior deals _115% bonus damage_ spread over _2 hits_, instead of 100% bonus damage in 1 hit.\n\n_+2:_ The Warrior deals _130% bonus damage_ spread over _3 hits_, instead of 100% bonus damage in 1 hit.\n\n_+3:_ The Warrior deals _145% bonus damage_ spread over _4 hits_, instead of 100% bonus damage in 1 hit.\n\n_+4:_ The Warrior deals _160% bonus damage_ spread over _5 hits_, instead of 100% bonus damage in 1 hit. actors.hero.talent.shrug_it_off.title=shrug it off -actors.hero.talent.shrug_it_off.desc=_+1:_ The Warrior cannot take more than _76% of his max HP_ in damage while enduring.\n\n_+2:_ The Warrior cannot take more than _58% of his max HP_ in damage while enduring.\n\n_+3:_ The Warrior cannot take more than _44% of his max HP_ in damage while enduring.\n\n_+4:_ The Warrior cannot take more than _33% of his max HP_ in damage while enduring. +actors.hero.talent.shrug_it_off.desc=_+1:_ The Warrior cannot take more than _71% of his max HP_ in damage while enduring.\n\n_+2:_ The Warrior cannot take more than _50% of his max HP_ in damage while enduring.\n\n_+3:_ The Warrior cannot take more than _35% of his max HP_ in damage while enduring.\n\n_+4:_ The Warrior cannot take more than _25% of his max HP_ in damage while enduring. actors.hero.talent.even_the_odds.title=even the odds actors.hero.talent.even_the_odds.desc=_+1:_ The Warrior deals an additional _5% bonus damage_ for every enemy within 2 tiles when enduring ends.\n\n_+2:_ The Warrior deals an additional _10% bonus damage_ for every enemy within 2 tiles when enduring ends.\n\n_+3:_ The Warrior deals an additional _15% bonus damage_ for every enemy within 2 tiles when enduring ends.\n\n_+4:_ The Warrior deals an additional _20% bonus damage_ for every enemy within 2 tiles when enduring ends. diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/warrior/Endure.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/warrior/Endure.java index 65feafe0d..4c556d8af 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/warrior/Endure.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/warrior/Endure.java @@ -93,7 +93,7 @@ public class Endure extends ArmorAbility { public void setup(Hero hero){ enduring = true; - maxDmgTaken = (int) (hero.HT * Math.pow(0.76f, hero.pointsInTalent(Talent.SHRUG_IT_OFF))); + maxDmgTaken = (int) (hero.HT * Math.pow(0.707f, hero.pointsInTalent(Talent.SHRUG_IT_OFF))); damageBonus = 0; hitsLeft = 0; } @@ -122,7 +122,7 @@ public class Endure extends ArmorAbility { } enduring = false; - damageBonus *= 1f + 0.1f*Dungeon.hero.pointsInTalent(Talent.SUSTAINED_RETRIBUTION); + damageBonus *= 1f + 0.15f*Dungeon.hero.pointsInTalent(Talent.SUSTAINED_RETRIBUTION); int nearby = 0; for (Char ch : Actor.chars()){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/warrior/HeroicLeap.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/warrior/HeroicLeap.java index fb8276a66..0878cfb23 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/warrior/HeroicLeap.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/warrior/HeroicLeap.java @@ -27,6 +27,8 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.FlavourBuff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Vulnerable; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Weakness; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.ArmorAbility; @@ -38,6 +40,7 @@ import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.watabou.noosa.Camera; import com.watabou.utils.Callback; import com.watabou.utils.PathFinder; +import com.watabou.utils.Random; public class HeroicLeap extends ArmorAbility { @@ -97,8 +100,11 @@ public class HeroicLeap extends ArmorAbility { } if (mob.pos == hero.pos + i && hero.hasTalent(Talent.IMPACT_WAVE)){ Ballistica trajectory = new Ballistica(mob.pos, mob.pos + i, Ballistica.MAGIC_BOLT); - int strength = 2*hero.pointsInTalent(Talent.IMPACT_WAVE); + int strength = 1+hero.pointsInTalent(Talent.IMPACT_WAVE); WandOfBlastWave.throwChar(mob, trajectory, strength, true); + if (Random.Int(4) < hero.pointsInTalent(Talent.IMPACT_WAVE)){ + Buff.prolong(mob, Vulnerable.class, 3f); + } } } }