From bfee2fb98d177b58e3a02ed30527efa1ae001f83 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Thu, 28 Mar 2024 14:10:20 -0400 Subject: [PATCH] v2.4.0: replaced the two T1 on-id talents with damage boost talents --- .../main/assets/interfaces/talent_icons.png | Bin 6490 -> 6544 bytes .../assets/messages/actors/actors.properties | 12 +++-- .../shatteredpixeldungeon/actors/Char.java | 6 +++ .../actors/hero/Talent.java | 49 ++++++++++++------ .../items/wands/Wand.java | 8 ++- 5 files changed, 54 insertions(+), 21 deletions(-) diff --git a/core/src/main/assets/interfaces/talent_icons.png b/core/src/main/assets/interfaces/talent_icons.png index ac6335ca40a8692108a0f50e39fec9129cf1add0..fefb3cc88f67643bba86546bc54cdf982eee1b91 100644 GIT binary patch delta 6202 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 0 && shielded > 0 && shielding() == 0){ + if (this instanceof Hero && ((Hero) this).hasTalent(Talent.PROVOKED_ANGER)){ + Buff.affect(this, Talent.ProvokedAngerTracker.class, 5f); + } + } + if (HP > 0 && buff(Grim.GrimTracker.class) != null){ float finalChance = buff(Grim.GrimTracker.class).maxChance; 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 14c6fca1d..af5b5ab02 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 @@ -85,7 +85,7 @@ import java.util.LinkedHashMap; public enum Talent { //Warrior T1 - HEARTY_MEAL(0), VETERANS_INTUITION(1), TEST_SUBJECT(2), IRON_WILL(3), + HEARTY_MEAL(0), VETERANS_INTUITION(1), PROVOKED_ANGER(2), IRON_WILL(3), //Warrior T2 IRON_STOMACH(4), LIQUID_WILLPOWER(5), RUNIC_TRANSFERENCE(6), LETHAL_MOMENTUM(7), IMPROVISED_PROJECTILES(8), //Warrior T3 @@ -102,7 +102,7 @@ public enum Talent { SUSTAINED_RETRIBUTION(23, 4), SHRUG_IT_OFF(24, 4), EVEN_THE_ODDS(25, 4), //Mage T1 - EMPOWERING_MEAL(32), SCHOLARS_INTUITION(33), TESTED_HYPOTHESIS(34), BACKUP_BARRIER(35), + EMPOWERING_MEAL(32), SCHOLARS_INTUITION(33), LINGERING_MAGIC(34), BACKUP_BARRIER(35), //Mage T2 ENERGIZING_MEAL(36), INSCRIBED_POWER(37), WAND_PRESERVATION(38), ARCANE_VISION(39), SHIELD_BATTERY(40), //Mage T3 @@ -658,21 +658,23 @@ public enum Talent { //note that IDing can happen in alchemy scene, so be careful with VFX here public static void onItemIdentified( Hero hero, Item item ){ - if (hero.hasTalent(TEST_SUBJECT)){ - //heal for 2/3 HP - hero.HP = Math.min(hero.HP + 1 + hero.pointsInTalent(TEST_SUBJECT), hero.HT); - if (hero.sprite != null) { - hero.sprite.showStatusWithIcon(CharSprite.POSITIVE, Integer.toString(1 + hero.pointsInTalent(TEST_SUBJECT)), FloatingText.HEALING); - } - } - if (hero.hasTalent(TESTED_HYPOTHESIS)){ - //2/3 turns of wand recharging - Buff.affect(hero, Recharging.class, 1f + hero.pointsInTalent(TESTED_HYPOTHESIS)); - ScrollOfRecharging.charge(hero); - } + //currently no talents that trigger here, it wasn't a very popular trigger =( } public static int onAttackProc( Hero hero, Char enemy, int dmg ){ + + if (hero.hasTalent(Talent.PROVOKED_ANGER) + && hero.buff(ProvokedAngerTracker.class) != null){ + dmg += Random.IntRange(hero.pointsInTalent(Talent.PROVOKED_ANGER) , 2); + hero.buff(ProvokedAngerTracker.class).detach(); + } + + if (hero.hasTalent(Talent.LINGERING_MAGIC) + && hero.buff(LingeringMagicTracker.class) != null){ + dmg += Random.IntRange(hero.pointsInTalent(Talent.LINGERING_MAGIC) , 2); + hero.buff(LingeringMagicTracker.class).detach(); + } + if (hero.hasTalent(Talent.SUCKER_PUNCH) && enemy instanceof Mob && ((Mob) enemy).surprisedBy(hero) && enemy.buff(SuckerPunchTracker.class) == null){ @@ -719,6 +721,18 @@ public enum Talent { return dmg; } + public static class ProvokedAngerTracker extends FlavourBuff{ + { type = Buff.buffType.POSITIVE; } + public int icon() { return BuffIndicator.WEAPON; } + public void tintIcon(Image icon) { icon.hardlight(1.43f, 1.43f, 1.43f); } + public float iconFadePercent() { return Math.max(0, 1f - (visualcooldown() / 5)); } + } + public static class LingeringMagicTracker extends FlavourBuff{ + { type = Buff.buffType.POSITIVE; } + public int icon() { return BuffIndicator.WEAPON; } + public void tintIcon(Image icon) { icon.hardlight(1.43f, 1.43f, 0f); } + public float iconFadePercent() { return Math.max(0, 1f - (visualcooldown() / 5)); } + } public static class SuckerPunchTracker extends Buff{}; public static class FollowupStrikeTracker extends FlavourBuff{ public int object; @@ -759,10 +773,10 @@ public enum Talent { //tier 1 switch (cls){ case WARRIOR: default: - Collections.addAll(tierTalents, HEARTY_MEAL, VETERANS_INTUITION, TEST_SUBJECT, IRON_WILL); + Collections.addAll(tierTalents, HEARTY_MEAL, VETERANS_INTUITION, PROVOKED_ANGER, IRON_WILL); break; case MAGE: - Collections.addAll(tierTalents, EMPOWERING_MEAL, SCHOLARS_INTUITION, TESTED_HYPOTHESIS, BACKUP_BARRIER); + Collections.addAll(tierTalents, EMPOWERING_MEAL, SCHOLARS_INTUITION, LINGERING_MAGIC, BACKUP_BARRIER); break; case ROGUE: Collections.addAll(tierTalents, CACHED_RATIONS, THIEFS_INTUITION, SUCKER_PUNCH, PROTECTIVE_SHADOWS); @@ -934,6 +948,9 @@ public enum Talent { private static final HashSet removedTalents = new HashSet<>(); static{ + //v2.4.0 + removedTalents.add("TEST_SUBJECT"); + removedTalents.add("TESTED_HYPOTHESIS"); //v2.2.0 removedTalents.add("EMPOWERING_SCROLLS"); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/Wand.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/Wand.java index 8f8cb2b14..21a4b5dce 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/Wand.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/Wand.java @@ -445,8 +445,14 @@ public abstract class Wand extends Item { && !Dungeon.hero.belongings.contains(this)){ Buff.prolong(Dungeon.hero, Talent.EmpoweredStrikeTracker.class, 10f); - } + + if (Dungeon.hero.hasTalent(Talent.LINGERING_MAGIC) + && charger != null && charger.target == Dungeon.hero){ + + Buff.affect(Dungeon.hero, Talent.LingeringMagicTracker.class, 5f); + } + Invisibility.dispel(); updateQuickslot();