From 13548eb423214939fa1284d8f86f1bebf069d598 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Fri, 4 Mar 2022 14:06:23 -0500 Subject: [PATCH] v1.2.0: balance changes to T3 talents, plus bugfix for shared upgrades --- .../src/main/assets/messages/actors/actors.properties | 8 ++++---- .../shatteredpixeldungeon/actors/buffs/Berserk.java | 2 +- .../actors/buffs/ScrollEmpower.java | 11 +++-------- .../actors/buffs/SnipersMark.java | 2 +- .../items/artifacts/CloakOfShadows.java | 2 +- .../shatteredpixeldungeon/items/wands/Wand.java | 2 +- .../shatteredpixeldungeon/items/weapon/Weapon.java | 2 +- 7 files changed, 12 insertions(+), 17 deletions(-) diff --git a/core/src/main/assets/messages/actors/actors.properties b/core/src/main/assets/messages/actors/actors.properties index 03f71de30..d20b0b6d1 100644 --- a/core/src/main/assets/messages/actors/actors.properties +++ b/core/src/main/assets/messages/actors/actors.properties @@ -529,11 +529,11 @@ 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. 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.endless_rage.desc=_+1:_ The Berserker can reach a max of _110% rage_.\n\n_+2:_ The Berserker can reach a max of _120% rage_.\n\n_+3:_ The Berserker can reach a max of _130% 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 _25% more shield_ when berserking, and the berserking cooldown is reduced to _1.67 levels_ from 2.\n\n_+2:_ The Berserker gains _50% more shield_ when berserking, and the berserking cooldown is reduced to _1.33 levels_ from 2.\n\n_+3:_ The Berserker gains _75% more shield_ when berserking, and the berserking cooldown is reduced to _1 level_ from 2. actors.hero.talent.enraged_catalyst.title=enraged catalyst -actors.hero.talent.enraged_catalyst.desc=_+1:_ Enchantments and curses on the Berserker's weapon trigger more often the more rage he has, to a maximum of _17% more often_ at 100% rage.\n\n_+2:_ Enchantments and curses on the Berserker's weapon trigger more often the more rage he has, to a maximum of _33% more often_ at 100% rage.\n\n_+3:_ Enchantments and curses on the Berserker's weapon trigger more often the more rage he has, to a maximum of _50% more often_ at 100% rage. +actors.hero.talent.enraged_catalyst.desc=_+1:_ Enchantments and curses on the Berserker's weapon trigger more often the more rage he has, to a maximum of _15% more often_ at 100% rage.\n\n_+2:_ Enchantments and curses on the Berserker's weapon trigger more often the more rage he has, to a maximum of _30% more often_ at 100% rage.\n\n_+3:_ Enchantments and curses on the Berserker's weapon trigger more often the more rage he has, to a maximum of _45% more often_ at 100% rage. 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 _15 turns_.\n\n_+2:_ When the Gladiator kills an enemy, the combo cooldown for his next hit is increased to _30 turns_.\n\n_+3:_ When the Gladiator kills an enemy, the combo cooldown for his next hit is increased to _45 turns_. @@ -585,7 +585,7 @@ actors.hero.talent.shield_battery.title=shield battery actors.hero.talent.shield_battery.desc=_+1:_ The Mage can self-target with a wand to convert all of its charges into shielding at a rate of _4% max HP per charge_.\n\n_+2:_ The Mage can self-target with a wand to convert all of its charges into shielding at a rate of _6% max HP per charge_. actors.hero.talent.empowering_scrolls.title=empowering scrolls -actors.hero.talent.empowering_scrolls.desc=_+1:_ When the Mage reads a scroll, his next two wand zaps will get _+1 level_.\n\n_+2:_ When the Mage reads a scroll, his next two wand zaps will get _+2 levels_.\n\n_+3:_ When the Mage reads a scroll, his next two wand zaps will get _+3 levels_. +actors.hero.talent.empowering_scrolls.desc=_+1:_ When the Mage reads a scroll, his next _one wand zap_ will get +3 levels.\n\n_+2:_ When the Mage reads a scroll, his next _two wand zaps_ will get +3 levels.\n\n_+3:_ When the Mage reads a scroll, his next _three wand zaps_ will get +3 levels. actors.hero.talent.ally_warp.title=ally warp actors.hero.talent.ally_warp.desc=_+1:_ The Mage can tap an ally to instantly swap places with them, with a _2 tile range_.\n\n_+2:_ The Mage can tap an ally to instantly swap places with them, with a _4 tile range_.\n\n_+3:_ The Mage can tap an ally to instantly swap places with them, with a _6 tile range_.\n\nThe Mage cannot swap places with immobile allies. @@ -646,7 +646,7 @@ actors.hero.talent.rogues_foresight.title=rogue's foresight actors.hero.talent.rogues_foresight.desc=_+1:_ When the Rogue is on a level with a secret room, he has a _50% chance to notice_ that the level contains a secret.\n\n_+2:_ When the Rogue is on a level with a secret room, he has a _75% chance to notice_ that the level contains a secret. actors.hero.talent.light_cloak.title=light cloak -actors.hero.talent.light_cloak.desc=_+1:_ The Rogue can use his cloak of shadows when it is not equipped, but it recharges at _17% speed_.\n\n_+2:_ The Rogue can use his cloak of shadows when it is not equipped, but it recharges at _33% speed_.\n\n_+3:_ The Rogue can use his cloak of shadows when it is not equipped, but it recharges at _50% speed_. +actors.hero.talent.light_cloak.desc=_+1:_ The Rogue can use his cloak of shadows when it is not equipped, but it recharges at _25% speed_.\n\n_+2:_ The Rogue can use his cloak of shadows when it is not equipped, but it recharges at _50% speed_.\n\n_+3:_ The Rogue can use his cloak of shadows when it is not equipped, but it recharges at _75% speed_. actors.hero.talent.enhanced_rings.title=enhanced rings actors.hero.talent.enhanced_rings.desc=_+1:_ When the Rogue uses an artifact, his rings gain +1 upgrade for _3 turns_.\n\n_+2:_ When the Rogue uses an artifact, his rings gain +1 upgrade for _6 turns_.\n\n_+3:_When the Rogue uses an artifact, his rings gain +1 upgrade for _9 turns_. 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 798340323..9d45bc7e2 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 @@ -145,7 +145,7 @@ public class Berserk extends Buff { public void damage(int damage){ if (state == State.RECOVERING) return; - float maxPower = 1f + 0.15f*((Hero)target).pointsInTalent(Talent.ENDLESS_RAGE); + float maxPower = 1f + 0.1f*((Hero)target).pointsInTalent(Talent.ENDLESS_RAGE); power = Math.min(maxPower, power + (damage/(float)target.HT)/3f ); BuffIndicator.refreshHero(); //show new power immediately powerLossBuffer = 3; //2 turns until rage starts dropping diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ScrollEmpower.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ScrollEmpower.java index 6f98224f4..119ff9af7 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ScrollEmpower.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ScrollEmpower.java @@ -38,7 +38,7 @@ public class ScrollEmpower extends Buff { private int left; public void reset(){ - left = 2; + left = Dungeon.hero.pointsInTalent(Talent.EMPOWERING_SCROLLS); Item.updateQuickslot(); } @@ -67,7 +67,7 @@ public class ScrollEmpower extends Buff { @Override public float iconFadePercent() { - return Math.max(0, (2f - left) / 2f); + return Math.max(0, (3f - left) / 3f); } @Override @@ -96,11 +96,6 @@ public class ScrollEmpower extends Buff { @Override public void restoreFromBundle(Bundle bundle) { super.restoreFromBundle(bundle); - //pre-1.1.0 saves - if (bundle.contains(LEFT)){ - left = bundle.getInt(LEFT); - } else { - left = 2; - } + left = bundle.getInt(LEFT); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/SnipersMark.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/SnipersMark.java index 20ccda113..dda8dd6ee 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/SnipersMark.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/SnipersMark.java @@ -141,7 +141,7 @@ public class SnipersMark extends FlavourBuff implements ActionIndicator.Action { if (cell == -1) return; bow.sniperSpecial = true; - bow.sniperSpecialBonusDamage = level*Dungeon.hero.pointsInTalent(Talent.SHARED_UPGRADES)/15f; + bow.sniperSpecialBonusDamage = level*Dungeon.hero.pointsInTalent(Talent.SHARED_UPGRADES)/10f; arrow.cast(hero, cell); detach(); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/CloakOfShadows.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/CloakOfShadows.java index 3df23a4f6..bd0e73078 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/CloakOfShadows.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/CloakOfShadows.java @@ -227,7 +227,7 @@ public class CloakOfShadows extends Artifact { turnsToCharge /= RingOfEnergy.artifactChargeMultiplier(target); float chargeToGain = (1f / turnsToCharge); if (!isEquipped(Dungeon.hero)){ - chargeToGain *= 0.5f*Dungeon.hero.pointsInTalent(Talent.LIGHT_CLOAK)/3f; + chargeToGain *= 0.75f*Dungeon.hero.pointsInTalent(Talent.LIGHT_CLOAK)/3f; } partialCharge += chargeToGain; } 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 818887473..a59408427 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 @@ -332,7 +332,7 @@ public abstract class Wand extends Item { } if (charger.target.buff(ScrollEmpower.class) != null){ - lvl += Dungeon.hero.pointsInTalent(Talent.EMPOWERING_SCROLLS); + lvl += 3; } WandOfMagicMissile.MagicCharge buff = charger.target.buff(WandOfMagicMissile.MagicCharge.class); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/Weapon.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/Weapon.java index b8e848d5a..3a14530c2 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/Weapon.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/Weapon.java @@ -362,7 +362,7 @@ abstract public class Weapon extends KindOfWeapon { if (attacker instanceof Hero && ((Hero) attacker).hasTalent(Talent.ENRAGED_CATALYST)){ Berserk rage = attacker.buff(Berserk.class); if (rage != null) { - multi += (rage.rageAmount() / 6f) * ((Hero) attacker).pointsInTalent(Talent.ENRAGED_CATALYST); + multi += (rage.rageAmount() * 0.15f) * ((Hero) attacker).pointsInTalent(Talent.ENRAGED_CATALYST); } } if (attacker.buff(Talent.SpiritBladesTracker.class) != null