From c0f3355da63f4012624bec1ae6a3637cd3d4a77c Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Sun, 25 Jul 2021 22:43:49 -0400 Subject: [PATCH] v0.9.4: balance changes to huntress abilities/T4 talents: - spirit hawk evasion, accuracy, and duration up 20% - go for the eyes now gives 2/4/6/8 blind, up from 2/3/4/5 - swift spirit now gives 2/3/4/5 dodges, up from 1/2/3/4 - spirit blades overall enchant proc chance increased by 20% --- .../src/main/assets/messages/actors/actors.properties | 2 +- .../shatteredpixeldungeon/actors/hero/Hero.java | 2 +- .../actors/hero/abilities/huntress/SpiritHawk.java | 11 ++++++----- .../shatteredpixeldungeon/items/weapon/Weapon.java | 4 ++++ 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/core/src/main/assets/messages/actors/actors.properties b/core/src/main/assets/messages/actors/actors.properties index bb2f10f59..f8004ae9f 100644 --- a/core/src/main/assets/messages/actors/actors.properties +++ b/core/src/main/assets/messages/actors/actors.properties @@ -720,7 +720,7 @@ actors.hero.talent.fan_of_blades.desc=_+1:_ Spectral blades can hit up to _1 add actors.hero.talent.projecting_blades.title=projecting blades actors.hero.talent.projecting_blades.desc=_+1:_ Spectral blades has _+25% accuracy_, and can penetrate up to _2 solid tiles_.\n\n_+2:_ Spectral blades has _+50% accuracy_, and can penetrate up to _4 solid tiles_.\n\n_+3:_ Spectral blades has _+75% accuracy_, and can penetrate up to _6 solid tiles_.\n\n_+4:_ Spectral blades has _+100% accuracy_, and can penetrate up to _8 solid tiles_. actors.hero.talent.spirit_blades.title=spirit blades -actors.hero.talent.spirit_blades.desc=_+1:_ Spectral blades has a _25% chance_ to also use the enchantment on the spirit bow.\n\n_+2:_ Spectral blades has a _50% chance_ to also use the enchantment on the spirit bow.\n\n_+3:_ Spectral blades has a _75% chance_ to also use the enchantment on the spirit bow.\n\n_+4:_ Spectral blades has a _100% chance_ to also use the enchantment on the spirit bow. +actors.hero.talent.spirit_blades.desc=_+1:_ Spectral blades has a _30% chance_ to also use the enchantment on the spirit bow.\n\n_+2:_ Spectral blades has a _60% chance_ to also use the enchantment on the spirit bow.\n\n_+3:_ Spectral blades has a _90% chance_ to also use the enchantment on the spirit bow.\n\n_+4:_ Spectral blades has a _100% chance_ to also use the enchantment on the spirit bow, and it triggers each enchantment _10% more often_. actors.hero.talent.growing_power.title=growing power actors.hero.talent.growing_power.desc=_+1:_ The attack and movespeed boosts from nature's power are increased to _38% and 125%_, from 33% and 100%.\n\n_+2:_ The attack and movespeed boosts from nature's power are increased to _42% and 150%_, from 33% and 100%.\n\n_+3:_ The attack and movespeed boosts from nature's power are increased to _46% and 175%_, from 33% and 100%.\n\n_+4:_ The attack and movespeed boosts from nature's power are increased to _50% and 200%_, from 33% and 100%. 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 48882996a..784f27ef4 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 @@ -1121,7 +1121,7 @@ public class Hero extends Char { if (wep != null) damage = wep.proc( this, enemy, damage ); if (buff(Talent.SpiritBladesTracker.class) != null - && Random.Int(4) < pointsInTalent(Talent.SPIRIT_BLADES)){ + && Random.Int(10) < 3*pointsInTalent(Talent.SPIRIT_BLADES)){ SpiritBow bow = belongings.getItem(SpiritBow.class); if (bow != null) damage = bow.proc( this, enemy, damage ); buff(Talent.SpiritBladesTracker.class).detach(); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/huntress/SpiritHawk.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/huntress/SpiritHawk.java index f0acf0705..9f26582c4 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/huntress/SpiritHawk.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/huntress/SpiritHawk.java @@ -142,7 +142,7 @@ public class SpiritHawk extends ArmorAbility { spriteClass = HawkSprite.class; HP = HT = 10; - defenseSkill = 50; + defenseSkill = 60; flying = true; viewDistance = (int)GameMath.gate(6, 6+Dungeon.hero.pointsInTalent(Talent.EAGLE_EYE), 8); @@ -154,15 +154,16 @@ public class SpiritHawk extends ArmorAbility { @Override public int attackSkill(Char target) { - return 50; + return 60; } private int dodgesUsed = 0; - private float timeRemaining = 50f; + private float timeRemaining = 60f; @Override public int defenseSkill(Char enemy) { - if (dodgesUsed < Dungeon.hero.pointsInTalent(Talent.SWIFT_SPIRIT)){ + if (Dungeon.hero.hasTalent(Talent.SWIFT_SPIRIT) && + dodgesUsed < 1 + Dungeon.hero.pointsInTalent(Talent.SWIFT_SPIRIT)) { dodgesUsed++; return Char.INFINITE_EVASION; } @@ -178,7 +179,7 @@ public class SpiritHawk extends ArmorAbility { public int attackProc(Char enemy, int damage) { damage = super.attackProc( enemy, damage ); if (Dungeon.hero.hasTalent(Talent.GO_FOR_THE_EYES)) { - Buff.prolong( enemy, Blindness.class, 1 + Dungeon.hero.pointsInTalent(Talent.GO_FOR_THE_EYES) ); + Buff.prolong( enemy, Blindness.class, 2*Dungeon.hero.pointsInTalent(Talent.GO_FOR_THE_EYES) ); } return damage; 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 e5d1c537f..75d6bcb0b 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 @@ -357,6 +357,10 @@ abstract public class Weapon extends KindOfWeapon { multi += (rage.rageAmount() / 6f) * ((Hero) attacker).pointsInTalent(Talent.ENRAGED_CATALYST); } } + if (attacker.buff(Talent.SpiritBladesTracker.class) != null + && ((Hero)attacker).pointsInTalent(Talent.SPIRIT_BLADES) == 4){ + multi += 0.1f; + } return multi; }