From 1064fbe8f51f07bad9a0eb856109203ae88a1d34 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Thu, 18 Jul 2024 14:15:15 -0400 Subject: [PATCH] v2.5.0: T3 class talent buffs: - deadly followup dmg per level up to +10% from +8% - precise assault acc bonus up to 2x/5x/inf., from 2x/4x/8x - hold fast armor per level up to 1-2 from 0-2 --- .../src/main/assets/messages/actors/actors.properties | 6 +++--- .../shatteredpixeldungeon/actors/buffs/HoldFast.java | 4 ++-- .../shatteredpixeldungeon/actors/hero/Talent.java | 2 +- .../items/weapon/melee/MeleeWeapon.java | 11 +++++++++-- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/core/src/main/assets/messages/actors/actors.properties b/core/src/main/assets/messages/actors/actors.properties index fbd309409..b2a08bec1 100644 --- a/core/src/main/assets/messages/actors/actors.properties +++ b/core/src/main/assets/messages/actors/actors.properties @@ -234,7 +234,7 @@ actors.buffs.hex.heromsg=You have been hexed! actors.buffs.hex.desc=Dark magic which saps focus, making the target slightly disoriented.\n\nHexing reduces accuracy and evasion by 20%%, making the target less effective in combat.\n\nTurns of hex remaining: %s. actors.buffs.holdfast.name=hold fast -actors.buffs.holdfast.desc=The Warrior is holding his position, increasing his armor by 0-%d. This will last until he moves. +actors.buffs.holdfast.desc=The Warrior is holding his position, increasing his armor by %1$d-%2$d. This will last until he moves. actors.buffs.hunger.hungry=hungry actors.buffs.hunger.starving=starving @@ -661,7 +661,7 @@ actors.hero.talent.improvised_projectiles.title=improvised projectiles actors.hero.talent.improvised_projectiles.desc=_+1:_ The Warrior can blind an enemy for _2 turns_ by throwing any item that isn’t a thrown weapon at them. This has a 50 turn cooldown.\n\n_+2:_ The Warrior can blind an enemy for _3 turns_ by throwing any item that isn’t a thrown weapon at them. This has a 50 turn cooldown. actors.hero.talent.hold_fast.title=hold fast -actors.hero.talent.hold_fast.desc=_+1:_ When the Warrior waits he gains _0-2 armor_ until he moves.\n\n_+2:_ When the Warrior waits he gains _0-4 armor_ until he moves.\n\n_+3:_ When the Warrior waits he gains _0-6 armor_ until he moves. +actors.hero.talent.hold_fast.desc=_+1:_ When the Warrior waits he gains _1-2 armor_ until he moves.\n\n_+2:_ When the Warrior waits he gains _2-4 armor_ until he moves.\n\n_+3:_ When the Warrior waits he gains _3-6 armor_ until he moves. actors.hero.talent.strongman.title=strongman actors.hero.talent.strongman.desc=_+1:_ The Warrior's strength is _increased by 8%_, rounded down.\n\n_+2:_ The Warrior's strength is _increased by 13%_, rounded down.\n\n_+3:_ The Warrior's strength is _increased by 18%_, rounded down. @@ -917,7 +917,7 @@ actors.hero.talent.precise_assault.title=precise assault actors.hero.talent.precise_assault.desc=_+1:_ When the Duelist uses a weapon ability, she gains _2x accuracy_ on her next melee attack within 5 turns.\n\n_+2:_ When the Duelist uses a weapon ability, she gains _4x accuracy_ on her next melee attack within 5 turns.\n\n_+3:_ When the Duelist uses a weapon ability, she gains _8x accuracy_ on her next melee attack within 5 turns. actors.hero.talent.precise_assault.meta_desc=_If this talent is gained by a different hero_ it will instead increase overall accuracy by 10% at +1, 20% at +2, or 30% at +3. actors.hero.talent.deadly_followup.title=deadly followup -actors.hero.talent.deadly_followup.desc=_+1:_ When the Duelist hits an enemy with a thrown weapon, she will deal _8% more melee damage_ to them for 5 turns.\n\n_+2:_ When the Duelist hits an enemy with a thrown weapon, she will deal _16% more melee damage_ to them for 5 turns.\n\n_+3:_ When the Duelist hits an enemy with a thrown weapon, she will deal _24% more melee damage_ to them for 5 turns. +actors.hero.talent.deadly_followup.desc=_+1:_ When the Duelist hits an enemy with a thrown weapon, she will deal _10% more melee damage_ to them for 5 turns.\n\n_+2:_ When the Duelist hits an enemy with a thrown weapon, she will deal _20% more melee damage_ to them for 5 turns.\n\n_+3:_ When the Duelist hits an enemy with a thrown weapon, she will deal _30% more melee damage_ to them for 5 turns. actors.hero.talent.varied_charge.title=varied charge actors.hero.talent.varied_charge.desc=_+1:_ The Champion instantly regains _0.17 weapon charges_ when she uses two different weapon abilities, with no time limit.\n\n_+2:_ The Champion instantly regains _0.33 weapon charges_ when she uses two different weapon abilities, with no time limit.\n\n_+3:_ The Champion instantly regains _0.5 weapon charges_ when she uses two different weapon abilities, with no time limit. diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/HoldFast.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/HoldFast.java index 0d4867d0e..cad5a931f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/HoldFast.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/HoldFast.java @@ -50,7 +50,7 @@ public class HoldFast extends Buff { public int armorBonus(){ if (pos == target.pos && target instanceof Hero){ - return Random.NormalIntRange(0, 2* ((Hero) target).pointsInTalent(Talent.HOLD_FAST)); + return Random.NormalIntRange(((Hero) target).pointsInTalent(Talent.HOLD_FAST), 2*((Hero) target).pointsInTalent(Talent.HOLD_FAST)); } else { detach(); return 0; @@ -69,7 +69,7 @@ public class HoldFast extends Buff { @Override public String desc() { - return Messages.get(this, "desc", 2*Dungeon.hero.pointsInTalent(Talent.HOLD_FAST)); + return Messages.get(this, "desc", Dungeon.hero.pointsInTalent(Talent.HOLD_FAST), 2*Dungeon.hero.pointsInTalent(Talent.HOLD_FAST)); } private static final String POS = "pos"; 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 08bd5337c..379ef47ea 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 @@ -756,7 +756,7 @@ public enum Talent { } } else if (hero.buff(DeadlyFollowupTracker.class) != null && hero.buff(DeadlyFollowupTracker.class).object == enemy.id()){ - dmg = Math.round(dmg * (1.0f + .08f*hero.pointsInTalent(DEADLY_FOLLOWUP))); + dmg = Math.round(dmg * (1.0f + .1f*hero.pointsInTalent(DEADLY_FOLLOWUP))); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MeleeWeapon.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MeleeWeapon.java index d4efa69ef..9ad881236 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MeleeWeapon.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MeleeWeapon.java @@ -308,8 +308,15 @@ public class MeleeWeapon extends Weapon { } else if (this instanceof Flail && owner.buff(Flail.SpinAbilityTracker.class) != null){ //do nothing, this is not a regular attack so don't consume talent fx } else if (owner.buff(Talent.PreciseAssaultTracker.class) != null) { - // 2x/4x/8x ACC for duelist if she just used a weapon ability - ACC *= Math.pow(2, ((Hero) owner).pointsInTalent(Talent.PRECISE_ASSAULT)); + // 2x/5x/inf. ACC for duelist if she just used a weapon ability + switch (((Hero) owner).pointsInTalent(Talent.PRECISE_ASSAULT)){ + default: case 1: + ACC *= 2; break; + case 2: + ACC *= 5; break; + case 3: + ACC *= Float.POSITIVE_INFINITY; break; + } owner.buff(Talent.PreciseAssaultTracker.class).detach(); } else if (owner.buff(Talent.LiquidAgilACCTracker.class) != null){ //3x/inf. ACC, depending on talent level