From 0f69858355d90b7a0490a96303a8abab57ddd844 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Fri, 30 Dec 2022 19:32:06 -0500 Subject: [PATCH] v2.0.0: added a final T1 talent for the Duelist --- .../main/assets/interfaces/talent_icons.png | Bin 5804 -> 5850 bytes .../assets/messages/actors/actors.properties | 4 ++-- .../actors/hero/Hero.java | 3 +++ .../actors/hero/Talent.java | 15 +++++++++++++-- .../shatteredpixeldungeon/ui/Toolbar.java | 5 ++++- 5 files changed, 22 insertions(+), 5 deletions(-) diff --git a/core/src/main/assets/interfaces/talent_icons.png b/core/src/main/assets/interfaces/talent_icons.png index 31d18714ad68273d77830e37fd7dcc8d93f4e84a..b7ed0ffcc5f15b1591ac12cf8a50066167de4415 100644 GIT binary patch delta 5299 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 delta 5252 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 diff --git a/core/src/main/assets/messages/actors/actors.properties b/core/src/main/assets/messages/actors/actors.properties index e89a4d5b2..010abd9dd 100644 --- a/core/src/main/assets/messages/actors/actors.properties +++ b/core/src/main/assets/messages/actors/actors.properties @@ -808,8 +808,8 @@ actors.hero.talent.strengthening_meal.title=strengthening meal actors.hero.talent.strengthening_meal.desc=_+1:_ Eating food grants the Duelist 2 bonus damage on her next _2 physical attacks_.\n\n_+2:_ Eating food grants the Duelist 2 bonus damage on her next _3 physical attacks_. actors.hero.talent.adventurers_intuition.title=adventurer's intuition actors.hero.talent.adventurers_intuition.desc=_+1:_ The Duelist identifies weapons _2.5x faster_ and armor _1.75x faster_.\n\n_+2:_ The Duelist identifies weapons _when she equips them_ and armor _2.5x faster_. -actors.hero.talent.aaa.title=aaa -actors.hero.talent.aaa.desc= +actors.hero.talent.patient_strike.title=patient strike +actors.hero.talent.patient_strike.desc=If the Duelist waits before performing a melee attack, she will deal _1-2 bonus damage_.\n\nIf the Duelist waits before performing a melee attack, she will deal _2 bonus damage_. actors.hero.talent.aggressive_barrier.title=aggressive barrier actors.hero.talent.aggressive_barrier.desc=_+1:_ The Duelist gain 2 shielding when she uses a weapon ability and is below _33% health_.\n\n_+2:_ The Duelist gain 2 shielding when she uses a weapon ability and is below _50% health_. actors.hero.talent.aggressive_barrier.meta_desc=_If this talent is gained by a different hero_ it will instead grant shielding when making a melee attack at low health, with a 50 turn cooldown. diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java index d534708d3..b0f71d5c9 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java @@ -1221,6 +1221,9 @@ public class Hero extends Char { if (hasTalent(Talent.HOLD_FAST)){ Buff.affect(this, HoldFast.class).pos = pos; } + if (hasTalent(Talent.PATIENT_STRIKE)){ + Buff.prolong(this, Talent.PatientStrikeTracker.class, cooldown()); + } if (!fullRest) { if (sprite != null) { sprite.showStatus(CharSprite.DEFAULT, Messages.get(this, "wait")); 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 393ccbf3f..7ed0d015f 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 @@ -148,7 +148,7 @@ public enum Talent { EAGLE_EYE(119, 4), GO_FOR_THE_EYES(120, 4), SWIFT_SPIRIT(121, 4), //Duelist T1 - STRENGTHENING_MEAL(128), ADVENTURERS_INTUITION(129), DUELIST_T1_3(130), AGGRESSIVE_BARRIER(131), + STRENGTHENING_MEAL(128), ADVENTURERS_INTUITION(129), PATIENT_STRIKE(130), AGGRESSIVE_BARRIER(131), //Duelist T2 FOCUSED_MEAL(132), RESTORED_AGILITY(133), WEAPON_RECHARGING(134), LETHAL_HASTE(135), SWIFT_EQUIP(136), //Duelist T3 @@ -228,6 +228,7 @@ public enum Talent { public float iconFadePercent() { return Math.max(0, visualcooldown() / 20); } }; public static class SpiritBladesTracker extends FlavourBuff{}; + public static class PatientStrikeTracker extends FlavourBuff{}; public static class AggressiveBarrierCooldown extends FlavourBuff{ public int icon() { return BuffIndicator.TIME; } public void tintIcon(Image icon) { icon.hardlight(0.35f, 0f, 0.7f); } @@ -613,6 +614,16 @@ public enum Talent { hero.buff(Talent.SpiritBladesTracker.class).detach(); } + if (hero.hasTalent(PATIENT_STRIKE)){ + if (hero.buff(PatientStrikeTracker.class) != null){ + hero.buff(PatientStrikeTracker.class).detach(); + dmg += Random.IntRange(hero.pointsInTalent(Talent.PATIENT_STRIKE), 2); + if (!(enemy instanceof Mob) || !((Mob) enemy).surprisedBy(hero)){ + Sample.INSTANCE.play(Assets.Sounds.HIT_STRONG, 0.75f, 1.2f); + } + } + } + if (hero.hasTalent(DEADLY_FOLLOWUP)) { if (hero.belongings.weapon() instanceof MissileWeapon) { Buff.prolong(enemy, DeadlyFollowupTracker.class, 5f); @@ -662,7 +673,7 @@ public enum Talent { Collections.addAll(tierTalents, NATURES_BOUNTY, SURVIVALISTS_INTUITION, FOLLOWUP_STRIKE, NATURES_AID); break; case DUELIST: - Collections.addAll(tierTalents, STRENGTHENING_MEAL, ADVENTURERS_INTUITION, DUELIST_T1_3, AGGRESSIVE_BARRIER); + Collections.addAll(tierTalents, STRENGTHENING_MEAL, ADVENTURERS_INTUITION, PATIENT_STRIKE, AGGRESSIVE_BARRIER); break; } for (Talent talent : tierTalents){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Toolbar.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Toolbar.java index a499fb012..b4b479394 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Toolbar.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Toolbar.java @@ -254,10 +254,13 @@ public class Toolbar extends Component { Dungeon.hero.waitOrPickup = true; if ((Dungeon.level.heaps.get(Dungeon.hero.pos) != null || Dungeon.hero.canSelfTrample()) && Dungeon.hero.handle(Dungeon.hero.pos)){ - //trigger hold fast here, even if the hero didn't specifically wait + //trigger hold fast and patient strike here, even if the hero didn't specifically wait if (Dungeon.hero.hasTalent(Talent.HOLD_FAST)){ Buff.affect(Dungeon.hero, HoldFast.class).pos = Dungeon.hero.pos; } + if (Dungeon.hero.hasTalent(Talent.PATIENT_STRIKE)){ + Buff.prolong(Dungeon.hero, Talent.PatientStrikeTracker.class, Dungeon.hero.cooldown()); + } Dungeon.hero.next(); } else { examining = false;