From b0f09942d42ccb3193e2abacfe754f32e2b7759b Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Wed, 15 Feb 2023 17:26:32 -0500 Subject: [PATCH] v2.0.0: buffs to most duelist talents based on early feedback and data --- .../assets/messages/actors/actors.properties | 26 +++++++++---------- .../shatteredpixeldungeon/actors/Char.java | 2 +- .../actors/hero/Hero.java | 8 +++--- .../actors/hero/Talent.java | 6 ++--- .../hero/abilities/duelist/Challenge.java | 3 ++- .../abilities/duelist/ElementalStrike.java | 13 ++++------ .../actors/mobs/Mob.java | 2 +- .../items/KindOfWeapon.java | 2 +- .../items/weapon/melee/MeleeWeapon.java | 14 +++++----- 9 files changed, 37 insertions(+), 39 deletions(-) diff --git a/core/src/main/assets/messages/actors/actors.properties b/core/src/main/assets/messages/actors/actors.properties index 46608d400..8b5295fd1 100644 --- a/core/src/main/assets/messages/actors/actors.properties +++ b/core/src/main/assets/messages/actors/actors.properties @@ -835,51 +835,51 @@ actors.hero.talent.adventurers_intuition.desc=_+1:_ The Duelist identifies weapo actors.hero.talent.patient_strike.title=patient strike actors.hero.talent.patient_strike.desc=_+1:_ If the Duelist waits before performing a melee attack, she will deal _1-2 bonus damage_.\n\n_+2:_ If 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 gains 3 shielding when she uses a weapon ability and is below _33% health_.\n\n_+2:_ The Duelist gains 3 shielding when she uses a weapon ability and is below _50% health_. +actors.hero.talent.aggressive_barrier.desc=_+1:_ The Duelist gains 3 shielding when she uses a weapon ability and is below _40% health_.\n\n_+2:_ The Duelist gains 3 shielding when she uses a weapon ability and is below _60% 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. actors.hero.talent.focused_meal.title=focused meal actors.hero.talent.focused_meal.desc=_+1:_ Eating food takes the Duelist 1 turn and grants her _1 weapon charge_.\n\n_+2:_ Eating food takes the Duelist 1 turn and grants her _1.5 weapon charge_. actors.hero.talent.focused_meal.meta_desc=_If this talent is gained by a different hero_ it will instead grant bonus damage to their next attack equal to their level/3 at +1, or level/2 at +2. actors.hero.talent.restored_agility.title=restored agility -actors.hero.talent.restored_agility.desc=_+1:_ The Duelist has _3x evasion_ while drinking potions of healing.\n\n_+2:_ The Duelist has _10x evasion_ while drinking potions of healing.\n\nThis talent also triggers when drinking potions or elixirs based on potions of healing. +actors.hero.talent.restored_agility.desc=_+1:_ The Duelist has _4x evasion_ while drinking potions of healing.\n\n_+2:_ The Duelist has _infinite evasion_ while drinking potions of healing.\n\nThis talent also triggers when drinking potions or elixirs based on potions of healing. actors.hero.talent.weapon_recharging.title=weapon recharging -actors.hero.talent.weapon_recharging.desc=_+1:_ The Duelist gains one primary weapon charge every _15 turns_ when under the effect of wand or artifact recharging buffs.\n\n_+2:_ The Duelist gains one primary weapon charge every _10 turns_ when under the effect of wand or artifact recharging buffs. +actors.hero.talent.weapon_recharging.desc=_+1:_ The Duelist gains one primary weapon charge every _10 turns_ when under the effect of wand or artifact recharging buffs.\n\n_+2:_ The Duelist gains one primary weapon charge every _6 turns_ when under the effect of wand or artifact recharging buffs. actors.hero.talent.weapon_recharging.meta_desc=_If this talent is gained by a different hero_ it will instead cause them to deal +5% melee damage while recharging at +1, or +7.5% melee damage while recharging at +2. actors.hero.talent.lethal_haste.title=lethal haste -actors.hero.talent.lethal_haste.desc=_+1:_ When the Duelist lands a killing blow with a weapon ability, she gains _1 turn_ of haste.\n\n_+2:_ When the Duelist lands a killing blow with a weapon ability, she gains _2 turns_ of haste. +actors.hero.talent.lethal_haste.desc=_+1:_ When the Duelist lands a killing blow with a weapon ability, she gains _2 turns_ of haste.\n\n_+2:_ When the Duelist lands a killing blow with a weapon ability, she gains _3 turns_ of haste. actors.hero.talent.lethal_haste.meta_desc=_If this talent is gained by a different hero_ it will instead trigger with regular weapon attacks, with a 100 turn cooldown. actors.hero.talent.swift_equip.title=swift equip -actors.hero.talent.swift_equip.desc=_+1:_ The Duelist can switch her equipped weapon instantly _one time_, with a 50 turn cooldown.\n\n_+2:_ The Duelist can switch her equipped weapon instantly _twice within 5 turns_, with a 50 turn cooldown.\n\nIf the Duelist has this talent and it is not on cooldown, quick-using an unequipped weapon will equip it. +actors.hero.talent.swift_equip.desc=_+1:_ The Duelist can switch her equipped weapon instantly _one time_, with a 30 turn cooldown.\n\n_+2:_ The Duelist can switch her equipped weapon instantly _twice within 5 turns_, with a 30 turn cooldown.\n\nIf the Duelist has this talent and it is not on cooldown, quick-using an unequipped weapon will equip it. actors.hero.talent.lightweight_charge.title=lightweight charge -actors.hero.talent.lightweight_charge.desc=_+1:_ When the Duelist uses the ability of a tier 1/2/3 melee weapon, it consumes _7/5/3% less charge_.\n\n_+2:_ When the Duelist uses the ability of a tier 1/2/3 melee weapon, it consumes _13/10/7% less charge_.\n\n_+3:_ When the Duelist uses the ability of a tier 1/2/3 melee weapon, it consumes _20/15/10% less charge_. -actors.hero.talent.lightweight_charge.meta_desc=_If this talent is gained by a different hero_ it will instead increase the damage of tier 2/3 melee weapons by 7/3% at +1, 14/7% at +2, or 20/10% at +3. Tier 1 weapons are unaffected. +actors.hero.talent.lightweight_charge.desc=_+1:_ When the Duelist uses the ability of a tier 1/2/3 melee weapon, it consumes _8/7/5% less charge_.\n\n_+2:_ When the Duelist uses the ability of a tier 1/2/3 melee weapon, it consumes _17/13/10% less charge_.\n\n_+3:_ When the Duelist uses the ability of a tier 1/2/3 melee weapon, it consumes _25/20/15% less charge_. +actors.hero.talent.lightweight_charge.meta_desc=_If this talent is gained by a different hero_ it will instead increase the damage of tier 2/3 melee weapons by 7/5% at +1, 14/10% at +2, or 20/15% at +3. Tier 1 weapons are unaffected. 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 _7% more melee damage_ to them for 5 turns.\n\n_+2:_ When the Duelist hits an enemy with a thrown weapon, she will deal _13% more melee damage_ to them for 5 turns.\n\n_+3:_ When the Duelist hits an enemy with a thrown weapon, she will deal _20% 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 _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.secondary_charge.title=secondary charge actors.hero.talent.secondary_charge.desc=_+1:_ The Champion's secondary weapon charge speed and charge cap are increased to _58%_ of her primary, from 50%.\n\n_+2:_ The Champion's secondary weapon charge speed and charge cap are increased to _67%_ of her primary, from 50%.\n\n_+3:_ The Champion's secondary weapon charge speed and charge cap are increased to _75%_ of her primary, from 50%. actors.hero.talent.twin_upgrades.title=twin upgrades actors.hero.talent.twin_upgrades.desc=_+1:_ If one of the Champion's two equipped weapons has a lower level and is _2 or more tiers lower_ than the other weapon, it will be boosted to the other weapon's level.\n\n_+2:_ If one of the Champion's two equipped weapons has a lower level and is _1 or more tiers lower_ than the other weapon, it will be boosted to the other weapon's level\n\n_+3:_ If one of the Champion's two equipped weapons has a lower level and is _the same tier or lower_ than the other weapon, it will be boosted to the other weapon's level actors.hero.talent.combined_lethality.title=combined lethality -actors.hero.talent.combined_lethality.desc=_+1:_ If the Champion uses two different weapon abilities successively, the second ability will execute any non-boss enemy left at _below 8% HP_.\n\n_+2:_ If the Champion uses two different weapon abilities successively, the second ability will execute any non-boss enemy left at _below 17% HP_.\n\n_+3:_ If the Champion uses two different weapon abilities successively, the second ability will execute any non-boss enemy left at _below 25% HP_.\n\nIf the second ability does not contain an attack, this talent will instead trigger on the Champion's next attack within 5 turns. +actors.hero.talent.combined_lethality.desc=_+1:_ If the Champion uses two different weapon abilities successively, the second ability will execute any non-boss enemy left at _below 10% HP_.\n\n_+2:_ If the Champion uses two different weapon abilities successively, the second ability will execute any non-boss enemy left at _below 20% HP_.\n\n_+3:_ If the Champion uses two different weapon abilities successively, the second ability will execute any non-boss enemy left at _below 30% HP_.\n\nIf the second ability does not contain an attack, this talent will instead trigger on the Champion's next attack within 5 turns. #second subclass actors.hero.talent.close_the_gap.title=close the gap actors.hero.talent.close_the_gap.desc=_+1:_ The Duelist blinks _up to two tiles_ toward her target when starting a duel.\n\n_+2:_ The Duelist blinks _up to three tiles_ toward her target when starting a duel.\n\n_+3:_ The Duelist blinks _up to four tiles_ toward her target when starting a duel.\n\n_+4:_ The Duelist blinks _up to five tiles_ toward her target when starting a duel.\n\nThis blink can go through enemies and hazards, and is taken into account when determining if an enemy is in range to be challenged. actors.hero.talent.invigorating_victory.title=invigorating victory -actors.hero.talent.invigorating_victory.desc=_+1:_ If the Duelist defeats her target before the duel ends, she heals for _30% of the damage_ she took during the duel.\n\n_+2:_ If the Duelist defeats her target before the duel ends, she heals for _50% of the damage_ she took during the duel.\n\n_+3:_ If the Duelist defeats her target before the duel ends, she heals for _65% of the damage_ she took during the duel.\n\n_+4:_ If the Duelist defeats her target before the duel ends, she heals for _75% of the damage_ she took during the duel. +actors.hero.talent.invigorating_victory.desc=_+1:_ If the Duelist defeats her target before the duel ends, she heals for _3 HP plus 30% of the damage_ she took during the duel.\n\n_+2:_ If the Duelist defeats her target before the duel ends, she heals for _6 HP plus 50% of the damage_ she took during the duel.\n\n_+3:_ If the Duelist defeats her target before the duel ends, she heals for _9 HP plus 65% of the damage_ she took during the duel.\n\n_+4:_ If the Duelist defeats her target before the duel ends, she heals for _12 HP plus 75% of the damage_ she took during the duel. actors.hero.talent.elimination_match.title=elimination match actors.hero.talent.elimination_match.desc=_+1:_ If the Duelist challenges again within 3 turns of a duel ending, that challenge has a _20% reduced_ charge cost.\n\n_+2:_ If the Duelist challenges again within 3 turns of a duel ending, that challenge has a _36% reduced_ charge cost.\n\n_+3:_ If the Duelist challenges again within 3 turns of a duel ending, that challenge has a _50% reduced_ charge cost.\n\n_+4:_ If the Duelist challenges again within 3 turns of a duel ending, that challenge has a _60% reduced_ charge cost. actors.hero.talent.elemental_reach.title=elemental reach -actors.hero.talent.elemental_reach.desc=_+1:_ Elemental strike's range is increased to _4 tiles_ from 3, and its width is increased to _70 degrees_ from 65.\n\n_+2:_ Elemental strike's range is increased to _5 tiles_ from 3, and its width is increased to _75 degrees_ from 65.\n\n_+3:_ Elemental strike's range is increased to _6 tiles_ from 3, and its width is increased to _80 degrees_ from 65.\n\n_+4:_ Elemental strike's range is increased to _7 tiles_ from 3, and its width is increased to _85 degrees_ from 65. +actors.hero.talent.elemental_reach.desc=_+1:_ Elemental strike's range is increased to _4 tiles_ from 3, and its width is increased to _75 degrees_ from 65.\n\n_+2:_ Elemental strike's range is increased to _5 tiles_ from 3, and its width is increased to _85 degrees_ from 65.\n\n_+3:_ Elemental strike's range is increased to _6 tiles_ from 3, and its width is increased to _95 degrees_ from 65.\n\n_+4:_ Elemental strike's range is increased to _7 tiles_ from 3, and its width is increased to _105 degrees_ from 65. actors.hero.talent.striking_force.title=striking force -actors.hero.talent.striking_force.desc=_+1:_ The power of elemental strike's effect is increased by _25%_.\n\n_+2:_ The power of elemental strike's effect is increased by _50%_.\n\n_+3:_ The power of elemental strike's effect is increased by _75%_.\n\n_+4:_ The power of elemental strike's effect is increased by _100%_. +actors.hero.talent.striking_force.desc=_+1:_ The power of elemental strike's effect is increased by _30%_.\n\n_+2:_ The power of elemental strike's effect is increased by _60%_.\n\n_+3:_ The power of elemental strike's effect is increased by _90%_.\n\n_+4:_ The power of elemental strike's effect is increased by _120%_. actors.hero.talent.directed_power.title=directed power -actors.hero.talent.directed_power.desc=_+1:_ The direct attack from elemental strike gains _+25% enchantment power_ for each enemy in range of elemental strike's effect, including the attack target.\n\n_+2:_ The direct attack from elemental strike gains _+50% enchantment power_ for each enemy in range of elemental strike's effect, including the attack target.\n\n_+3:_ The direct attack from elemental strike gains _+75% enchantment power_ for each enemy in range of elemental strike's effect, including the attack target.\n\n_+4:_ The direct attack from elemental strike gains _+100% enchantment power_ for each enemy in range of elemental strike's effect, including the attack target. +actors.hero.talent.directed_power.desc=_+1:_ The direct attack from elemental strike gains _+30% enchantment power_ for each enemy in range of elemental strike's effect, including the attack target.\n\n_+2:_ The direct attack from elemental strike gains _+60% enchantment power_ for each enemy in range of elemental strike's effect, including the attack target.\n\n_+3:_ The direct attack from elemental strike gains _+90% enchantment power_ for each enemy in range of elemental strike's effect, including the attack target.\n\n_+4:_ The direct attack from elemental strike gains _+120% enchantment power_ for each enemy in range of elemental strike's effect, including the attack target. #third armor ability diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java index 9b1bcf251..5fb4f2657 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java @@ -433,7 +433,7 @@ public abstract class Char extends Actor { if (combinedLethality != null){ if ( enemy.isAlive() && enemy.alignment != alignment && !Char.hasProp(enemy, Property.BOSS) && !Char.hasProp(enemy, Property.MINIBOSS) && this instanceof Hero && - (enemy.HP/(float)enemy.HT) <= 0.0834f*((Hero)this).pointsInTalent(Talent.COMBINED_LETHALITY)) { + (enemy.HP/(float)enemy.HT) <= 0.10f*((Hero)this).pointsInTalent(Talent.COMBINED_LETHALITY)) { enemy.HP = 0; if (!enemy.isAlive()) { enemy.die(this); 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 12691ad42..0bc4a4a07 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 @@ -503,9 +503,9 @@ public class Hero extends Char { if (buff(Talent.RestoredAgilityTracker.class) != null){ if (pointsInTalent(Talent.RESTORED_AGILITY) == 1){ - evasion *= 3f; + evasion *= 4f; } else if (pointsInTalent(Talent.RESTORED_AGILITY) == 2){ - evasion *= 10f; + return INFINITE_EVASION; } } @@ -584,7 +584,7 @@ public class Hero extends Char { if (((MeleeWeapon) wep).tier == 2) { dmg = Math.round(dmg * (1f + 0.067f*pointsInTalent(Talent.LIGHTWEIGHT_CHARGE))); } else if (((MeleeWeapon) wep).tier == 3) { - dmg = Math.round(dmg * (1f + 0.033f*pointsInTalent(Talent.LIGHTWEIGHT_CHARGE))); + dmg = Math.round(dmg * (1f + 0.05f*pointsInTalent(Talent.LIGHTWEIGHT_CHARGE))); } } @@ -1207,7 +1207,7 @@ public class Hero extends Char { if (heroClass != HeroClass.DUELIST && hasTalent(Talent.AGGRESSIVE_BARRIER) && buff(Talent.AggressiveBarrierCooldown.class) == null - && (HP / (float)HT) < 0.167f*(1+pointsInTalent(Talent.AGGRESSIVE_BARRIER))){ + && (HP / (float)HT) < 0.20f*(1+pointsInTalent(Talent.AGGRESSIVE_BARRIER))){ Buff.affect(this, Barrier.class).setShield(3); Buff.affect(this, Talent.AggressiveBarrierCooldown.class, 50f); } 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 bfd164f25..a2dfb8be8 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 @@ -244,7 +244,7 @@ public enum Talent { public static class SwiftEquipCooldown extends FlavourBuff{ public boolean secondUse; public boolean hasSecondUse(){ - return secondUse && cooldown() > 44f; + return secondUse && cooldown() > 24f; } public int icon() { return BuffIndicator.TIME; } @@ -252,7 +252,7 @@ public enum Talent { if (hasSecondUse()) icon.hardlight(0.85f, 0f, 1.0f); else icon.hardlight(0.35f, 0f, 0.7f); } - public float iconFadePercent() { return GameMath.gate(0, visualcooldown() / 50f, 1); } + public float iconFadePercent() { return GameMath.gate(0, visualcooldown() / 30f, 1); } private static final String SECOND_USE = "second_use"; @Override @@ -641,7 +641,7 @@ public enum Talent { if (hero.belongings.weapon() instanceof MissileWeapon) { Buff.prolong(enemy, DeadlyFollowupTracker.class, 5f); } else if (enemy.buff(DeadlyFollowupTracker.class) != null){ - dmg = Math.round(dmg * (1.0f + .067f*hero.pointsInTalent(DEADLY_FOLLOWUP))); + dmg = Math.round(dmg * (1.0f + .08f*hero.pointsInTalent(DEADLY_FOLLOWUP))); if (!(enemy instanceof Mob) || !((Mob) enemy).surprisedBy(hero)){ Sample.INSTANCE.play(Assets.Sounds.HIT_STRONG, 0.75f, 1.2f); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/duelist/Challenge.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/duelist/Challenge.java index aba53b690..3ad18c5e1 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/duelist/Challenge.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/duelist/Challenge.java @@ -255,8 +255,9 @@ public class Challenge extends ArmorAbility { hpToHeal = heroBuff.takenDmg; } - //heals for 30%/50%/65%/75% of taken damage, based on talent points + //heals for 30%/50%/65%/75% of taken damage plus 3/6/9/12 bonus, based on talent points hpToHeal = (int)Math.round(hpToHeal * (1f - Math.pow(0.707f, Dungeon.hero.pointsInTalent(Talent.INVIGORATING_VICTORY)))); + hpToHeal += 3*Dungeon.hero.pointsInTalent(Talent.INVIGORATING_VICTORY); hpToHeal = Math.min(hpToHeal, Dungeon.hero.HT - Dungeon.hero.HP); if (hpToHeal > 0){ Dungeon.hero.HP += hpToHeal; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/duelist/ElementalStrike.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/duelist/ElementalStrike.java index dc409c1ce..b8daa9044 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/duelist/ElementalStrike.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/duelist/ElementalStrike.java @@ -143,9 +143,6 @@ public class ElementalStrike extends ArmorAbility { return dst; } - //3 tiles in a 65 degree cone - // boostable to 4/5/6/7 tiles in a 70/75/80/85 degree cone - @Override protected void activate(ClassArmor armor, Hero hero, Integer target) { if (target == null){ @@ -162,7 +159,7 @@ public class ElementalStrike extends ArmorAbility { ConeAOE cone = new ConeAOE(aim, dist, - 65 + 5*hero.pointsInTalent(Talent.ELEMENTAL_REACH), + 65 + 10*hero.pointsInTalent(Talent.ELEMENTAL_REACH), Ballistica.STOP_SOLID | Ballistica.STOP_TARGET); KindOfWeapon w = hero.belongings.weapon(); @@ -236,11 +233,11 @@ public class ElementalStrike extends ArmorAbility { } if (hero.hasTalent(Talent.DIRECTED_POWER)){ - float enchBoost = 0.25f * targetsHit * hero.pointsInTalent(Talent.DIRECTED_POWER); + float enchBoost = 0.30f * targetsHit * hero.pointsInTalent(Talent.DIRECTED_POWER); Buff.affect(hero, DirectedPowerTracker.class, 0f).enchBoost = enchBoost; } - float powerMulti = 1f + 0.25f*Dungeon.hero.pointsInTalent(Talent.STRIKING_FORCE); + float powerMulti = 1f + 0.30f*Dungeon.hero.pointsInTalent(Talent.STRIKING_FORCE); //*** Kinetic *** if (ench instanceof Kinetic){ @@ -284,7 +281,7 @@ public class ElementalStrike extends ArmorAbility { //effects that affect the cells of the environment themselves private void perCellEffect(ConeAOE cone, Weapon.Enchantment ench){ - float powerMulti = 1f + 0.25f*Dungeon.hero.pointsInTalent(Talent.STRIKING_FORCE); + float powerMulti = 1f + 0.30f*Dungeon.hero.pointsInTalent(Talent.STRIKING_FORCE); //*** Blazing *** if (ench instanceof Blazing){ @@ -330,7 +327,7 @@ public class ElementalStrike extends ArmorAbility { //effects that affect the characters within the cone AOE private void perCharEffect(ConeAOE cone, Hero hero, Char primaryTarget, Weapon.Enchantment ench) { - float powerMulti = 1f + 0.25f * Dungeon.hero.pointsInTalent(Talent.STRIKING_FORCE); + float powerMulti = 1f + 0.30f * Dungeon.hero.pointsInTalent(Talent.STRIKING_FORCE); ArrayList affected = new ArrayList<>(); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java index cd7256d3c..cb3a53f76 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java @@ -758,7 +758,7 @@ public abstract class Mob extends Char { && Dungeon.hero.hasTalent(Talent.LETHAL_HASTE) && Dungeon.hero.buff(Talent.LethalHasteCooldown.class) == null){ Buff.affect(Dungeon.hero, Talent.LethalHasteCooldown.class, 100f); - Buff.affect(Dungeon.hero, Haste.class, 0.67f + Dungeon.hero.pointsInTalent(Talent.LETHAL_HASTE)); + Buff.affect(Dungeon.hero, Haste.class, 1.67f + Dungeon.hero.pointsInTalent(Talent.LETHAL_HASTE)); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/KindOfWeapon.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/KindOfWeapon.java index d26369094..6fc553b20 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/KindOfWeapon.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/KindOfWeapon.java @@ -116,7 +116,7 @@ abstract public class KindOfWeapon extends EquipableItem { if (hero.hasTalent(Talent.SWIFT_EQUIP)) { if (hero.buff(Talent.SwiftEquipCooldown.class) == null){ hero.spendAndNext(-hero.cooldown()); - Buff.affect(hero, Talent.SwiftEquipCooldown.class, 49f) + Buff.affect(hero, Talent.SwiftEquipCooldown.class, 29f) .secondUse = hero.pointsInTalent(Talent.SWIFT_EQUIP) == 2; GLog.i(Messages.get(this, "swift_equip")); } else if (hero.buff(Talent.SwiftEquipCooldown.class).hasSecondUse()) { 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 9f2000a86..1c60b8054 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 @@ -183,7 +183,7 @@ public class MeleeWeapon extends Weapon { if (hero.heroClass == HeroClass.DUELIST && hero.hasTalent(Talent.AGGRESSIVE_BARRIER) - && (hero.HP / (float)hero.HT) < 0.167f*(1+hero.pointsInTalent(Talent.AGGRESSIVE_BARRIER))){ + && (hero.HP / (float)hero.HT) < 0.20f*(1+hero.pointsInTalent(Talent.AGGRESSIVE_BARRIER))){ Buff.affect(hero, Barrier.class).setShield(3); } @@ -213,16 +213,16 @@ public class MeleeWeapon extends Weapon { public void onAbilityKill( Hero hero ){ if (hero.hasTalent(Talent.LETHAL_HASTE)){ - //effectively 1/2 turns of haste - Buff.prolong(hero, Haste.class, 0.67f+hero.pointsInTalent(Talent.LETHAL_HASTE)); + //effectively 2/3 turns of haste + Buff.prolong(hero, Haste.class, 1.67f+hero.pointsInTalent(Talent.LETHAL_HASTE)); } } public float abilityChargeUse( Hero hero ){ float chargeUse = 1f; if (hero.hasTalent(Talent.LIGHTWEIGHT_CHARGE) && tier <= 3){ - // T1/2/3 get 20/15/10% charge use reduction at +3 - float chargeUseReduction = (0.25f-.05f*tier) * (hero.pointsInTalent(Talent.LIGHTWEIGHT_CHARGE)/3f); + // T1/2/3 get 25/20/15% charge use reduction at +3 + float chargeUseReduction = (0.30f-.05f*tier) * (hero.pointsInTalent(Talent.LIGHTWEIGHT_CHARGE)/3f); chargeUse *= 1f - chargeUseReduction; } return chargeUse; @@ -403,8 +403,8 @@ public class MeleeWeapon extends Weapon { int points = ((Hero)target).pointsInTalent(Talent.WEAPON_RECHARGING); if (points > 0 && target.buff(Recharging.class) != null || target.buff(ArtifactRecharge.class) != null){ - //1 every 15 turns at +1, 10 turns at +2 - partialCharge += 1/(20f - 5f*points); + //1 every 10 turns at +1, 6 turns at +2 + partialCharge += 1/(14f - 4f*points); } if (partialCharge >= 1){