From a0334915f80cd841b24fad0225da188a7e395224 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Wed, 10 May 2023 13:21:31 -0400 Subject: [PATCH] v2.1.0: implemented simple buffs to many weapon abilities --- .../assets/messages/items/items.properties | 36 +++++++++---------- .../actors/hero/Hero.java | 4 +-- .../items/weapon/Weapon.java | 2 +- .../items/weapon/melee/AssassinsBlade.java | 2 +- .../items/weapon/melee/Dagger.java | 2 +- .../items/weapon/melee/Dirk.java | 2 +- .../items/weapon/melee/Flail.java | 11 ++---- .../items/weapon/melee/Gauntlet.java | 2 +- .../items/weapon/melee/Gloves.java | 2 +- .../items/weapon/melee/Greataxe.java | 2 +- .../items/weapon/melee/Greatshield.java | 2 +- .../items/weapon/melee/Quarterstaff.java | 4 +-- .../items/weapon/melee/RoundShield.java | 4 +-- .../items/weapon/melee/Sai.java | 2 +- .../items/weapon/melee/Scimitar.java | 4 +-- .../items/weapon/melee/Spear.java | 2 +- .../items/weapon/melee/Whip.java | 7 +++- 17 files changed, 45 insertions(+), 45 deletions(-) diff --git a/core/src/main/assets/messages/items/items.properties b/core/src/main/assets/messages/items/items.properties index 88769e045..e688e6388 100644 --- a/core/src/main/assets/messages/items/items.properties +++ b/core/src/main/assets/messages/items/items.properties @@ -1509,7 +1509,7 @@ items.weapon.enchantments.vampiric.elestrike_desc=An elemental strike with a vam items.weapon.melee.assassinsblade.name=assassin's blade items.weapon.melee.assassinsblade.stats_desc=This weapon is stronger against unaware enemies. items.weapon.melee.assassinsblade.ability_name=sneak -items.weapon.melee.assassinsblade.ability_desc=The Duelist can _sneak_ while wielding an assassin's blade. This ability grants the Duelist 4 turns of invisibility, but costs 2 charges. +items.weapon.melee.assassinsblade.ability_desc=The Duelist can _sneak_ while wielding an assassin's blade. This ability grants the Duelist 6 turns of invisibility, but costs 2 charges. items.weapon.melee.assassinsblade.desc=A small wavy blade made of obsidian, difficult to use despite being lightweight, but deadly if it finds the right mark. items.weapon.melee.battleaxe.name=battle axe @@ -1529,28 +1529,28 @@ items.weapon.melee.crossbow$chargedshot.desc=The Duelist is focusing power into items.weapon.melee.dagger.name=dagger items.weapon.melee.dagger.stats_desc=This weapon is stronger against unaware enemies. items.weapon.melee.dagger.ability_name=sneak -items.weapon.melee.dagger.ability_desc=The Duelist can _sneak_ while wielding a dagger. This ability grants the Duelist 8 turns of invisibility, but costs 2 charges. +items.weapon.melee.dagger.ability_desc=The Duelist can _sneak_ while wielding a dagger. This ability grants the Duelist 10 turns of invisibility, but costs 2 charges. items.weapon.melee.dagger.desc=A simple iron dagger with a worn wooden handle. items.weapon.melee.dirk.name=dirk items.weapon.melee.dirk.stats_desc=This weapon is stronger against unaware enemies. items.weapon.melee.dirk.ability_name=sneak -items.weapon.melee.dirk.ability_desc=The Duelist can _sneak_ while wielding a dirk. This ability grants the Duelist 6 turns of invisibility, but costs 2 charges. +items.weapon.melee.dirk.ability_desc=The Duelist can _sneak_ while wielding a dirk. This ability grants the Duelist 8 turns of invisibility, but costs 2 charges. items.weapon.melee.dirk.desc=A longer thrusting dagger, gives a bit more steel to plunge into foes. items.weapon.melee.flail.name=flail items.weapon.melee.flail.stats_desc=This is a rather inaccurate weapon.\nThis weapon cannot surprise attack. items.weapon.melee.flail.ability_name=spin items.weapon.melee.flail.spin_warn=You can't spin the flail any more. -items.weapon.melee.flail.ability_desc=The Duelist can _spin_ a flail to build up power for a short time. Each turn the flail is spun it will deal +33% damage, to a max of 3 times. At 3 spins the flail is also guaranteed to hit. Starting to spin the flail costs 2 charges. +items.weapon.melee.flail.ability_desc=The Duelist can _spin_ a flail to build up power for a short time. Each turn the flail is spun it will deal +33% damage, to a max of 3 times. A spinning flail is also guaranteed to hit. Starting to spin the flail costs 2 charges. items.weapon.melee.flail.desc=A spiked ball attached to a handle by a length of chain. Very unwieldy, but devastating if it lands a solid hit. items.weapon.melee.flail$spinabilitytracker.name=spinning -items.weapon.melee.flail$spinabilitytracker.desc=The Duelist is spinning her flail, building damage for her next attack with it. Each spin takes one turn but increases damage by 33%%. At 100%% bonus damage, the flail is also guaranteed to hit.\n\nCurrent bonus damage: %1$d%%.\nTurns remaining: %2$s. +items.weapon.melee.flail$spinabilitytracker.desc=The Duelist is spinning her flail, building damage for her next attack with it. Each spin takes one turn but increases damage by 33%%. The flail is also guaranteed to hit while spinning.\n\nCurrent bonus damage: %1$d%%.\nTurns remaining: %2$s. items.weapon.melee.gauntlet.name=stone gauntlet items.weapon.melee.gauntlet.stats_desc=This is a very fast weapon. items.weapon.melee.gauntlet.ability_name=combo strike -items.weapon.melee.gauntlet.ability_desc=The Duelist can perform a _combo strike_ with a stone gauntlet. This attack is guaranteed to hit and deals +30% damage for each time the Duelist has already successfully attacked with melee or thrown weapons in the last 5 turns. +items.weapon.melee.gauntlet.ability_desc=The Duelist can perform a _combo strike_ with a stone gauntlet. This attack is guaranteed to hit and deals +35% damage for each time the Duelist has already successfully attacked with melee or thrown weapons in the last 5 turns. items.weapon.melee.gauntlet.desc=This massive gauntlet is made of crimson fabric with heavy magical stone layered on top. The fabric tightens around you, making the thick stone plates almost like a second skin. Swinging such a heavy weapon requires strength, but adds tremendous force to your blows. items.weapon.melee.glaive.name=glaive @@ -1562,20 +1562,20 @@ items.weapon.melee.glaive.desc=A massive polearm consisting of a sword blade on items.weapon.melee.gloves.name=studded gloves items.weapon.melee.gloves.stats_desc=This is a very fast weapon. items.weapon.melee.gloves.ability_name=combo strike -items.weapon.melee.gloves.ability_desc=The Duelist can perform a _combo strike_ with studded gloves. This attack is guaranteed to hit and deals +40% damage for each time the Duelist has already successfully attacked with melee or thrown weapons in the last 5 turns. +items.weapon.melee.gloves.ability_desc=The Duelist can perform a _combo strike_ with studded gloves. This attack is guaranteed to hit and deals +45% damage for each time the Duelist has already successfully attacked with melee or thrown weapons in the last 5 turns. items.weapon.melee.gloves.desc=These studded gloves don't provide any real protection, but they act as a serviceable weapon while keeping the hands free. items.weapon.melee.greataxe.name=greataxe items.weapon.melee.greataxe.stats_desc=This weapon is incredibly heavy. items.weapon.melee.greataxe.ability_name=retribution -items.weapon.melee.greataxe.ability_desc=The Duelist can perform a _retribution_ attack with a greataxe if she is below 50% health. This devastating attack is guaranteed to hit and deals +35% damage. +items.weapon.melee.greataxe.ability_desc=The Duelist can perform a _retribution_ attack with a greataxe if she is below 50% health. This devastating attack is guaranteed to hit and deals +50% damage. items.weapon.melee.greataxe.desc=Meant to be wielded over the shoulder, this titanic axe is as powerful as it is heavy. items.weapon.melee.greatshield.name=greatshield items.weapon.melee.greatshield.typical_stats_desc=Typically this weapon blocks 0-%d damage. This blocking scales with upgrades. items.weapon.melee.greatshield.stats_desc=This weapon blocks 0-%d damage. This blocking scales with upgrades. items.weapon.melee.greatshield.ability_name=guard -items.weapon.melee.greatshield.ability_desc=The Duelist can _guard_ herself with a greatshield, completely negating the next physical or magical attack made against her within 4 turns. +items.weapon.melee.greatshield.ability_desc=The Duelist can _guard_ herself with a greatshield, completely negating the next physical or magical attack made against her within 6 turns. items.weapon.melee.greatshield.desc=More like a mobile wall than a shield, this gigantic mass of metal aids defense, but doesn't leave much room for attacking. items.weapon.melee.greatsword.name=greatsword @@ -1648,10 +1648,10 @@ items.weapon.melee.shortsword.desc=A quite short sword, only a few inches longer items.weapon.melee.quarterstaff.name=quarterstaff items.weapon.melee.quarterstaff.stats_desc=This weapon blocks 0-2 damage. items.weapon.melee.quarterstaff.ability_name=defensive stance -items.weapon.melee.quarterstaff.ability_desc=The Duelist can assume a _defensive stance_ with a quarterstaff. This stance doubles her evasion for 6 turns and takes no time to activate, but costs 2 charges. +items.weapon.melee.quarterstaff.ability_desc=The Duelist can assume a _defensive stance_ with a quarterstaff. This stance triples her evasion for 5 turns and takes no time to activate, but costs 2 charges. items.weapon.melee.quarterstaff.desc=A staff of hardwood, its ends are shod with iron. items.weapon.melee.quarterstaff$defensivestance.name=defensive stance -items.weapon.melee.quarterstaff$defensivestance.desc=The Duelist is using her quarterstaff to deflect incoming blows and projectiles. As long as she is in this stance, her evasion against all attacks is doubled.\n\nTurns remaining: %s. +items.weapon.melee.quarterstaff$defensivestance.desc=The Duelist is using her quarterstaff to deflect incoming blows and projectiles. As long as she is in this stance, her evasion against all attacks is tripled.\n\nTurns remaining: %s. items.weapon.melee.rapier.name=rapier items.weapon.melee.rapier.stats_desc=This weapon blocks 0-1 damage. @@ -1663,7 +1663,7 @@ items.weapon.melee.roundshield.name=round shield items.weapon.melee.roundshield.typical_stats_desc=Typically this weapon blocks 0-%d damage. This blocking scales with upgrades. items.weapon.melee.roundshield.stats_desc=This weapon blocks 0-%d damage. This blocking scales with upgrades. items.weapon.melee.roundshield.ability_name=guard -items.weapon.melee.roundshield.ability_desc=The Duelist can _guard_ herself with a round shield, completely negating the next physical or magical attack made against her within 5 turns. +items.weapon.melee.roundshield.ability_desc=The Duelist can _guard_ herself with a round shield, completely negating the next physical or magical attack made against her within 8 turns. items.weapon.melee.roundshield.desc=This large shield effectively blocks attacks and makes a decent weapon in a pinch. items.weapon.melee.roundshield$guardtracker.name=guarding items.weapon.melee.roundshield$guardtracker.guarded=guarded @@ -1672,13 +1672,13 @@ items.weapon.melee.roundshield$guardtracker.desc=The Duelist has readied her shi items.weapon.melee.runicblade.name=runic blade items.weapon.melee.runicblade.stats_desc=This weapon benefits more from upgrades. items.weapon.melee.runicblade.ability_name=runic slash -items.weapon.melee.runicblade.ability_desc=The Duelist can perform a _runic slash_ with a runic blade. This attack is guaranteed to hit and has +250% enchantment power. +items.weapon.melee.runicblade.ability_desc=The Duelist can perform a _runic slash_ with a runic blade. This attack is guaranteed to hit and has +300% enchantment power. items.weapon.melee.runicblade.desc=A mysterious weapon from a distant land, with a bright blue blade. items.weapon.melee.sai.name=sai items.weapon.melee.sai.stats_desc=This is a very fast weapon. items.weapon.melee.sai.ability_name=combo strike -items.weapon.melee.sai.ability_desc=The Duelist can perform a _combo strike_ with sai. This attack is guaranteed to hit and deals +35% damage for each time the Duelist has already successfully attacked with melee or thrown weapons in the last 5 turns. +items.weapon.melee.sai.ability_desc=The Duelist can perform a _combo strike_ with sai. This attack is guaranteed to hit and deals +40% damage for each time the Duelist has already successfully attacked with melee or thrown weapons in the last 5 turns. items.weapon.melee.sai.desc=Two thin blades meant to be wielded in one hand each. Excellent for tearing down enemies with a flurry of cuts. items.weapon.melee.sai$combostriketracker.name=combo strike items.weapon.melee.sai$combostriketracker.desc=The duelist is building combo that can be used to increase the damage of the combo strike ability. Each strike made with a melee or thrown weapon in the last 5 turns will count.\n\nRecent hits: %d. @@ -1686,10 +1686,10 @@ items.weapon.melee.sai$combostriketracker.desc=The duelist is building combo tha items.weapon.melee.scimitar.name=scimitar items.weapon.melee.scimitar.stats_desc=This is a rather fast weapon. items.weapon.melee.scimitar.ability_name=sword dance -items.weapon.melee.scimitar.ability_desc=The Duelist can perform a _sword dance_ with a scimitar. This stance grants the Duelist +60% attack speed and -20% accuracy for 6 turns, takes no time to activate, and costs 2 charges. +items.weapon.melee.scimitar.ability_desc=The Duelist can perform a _sword dance_ with a scimitar. This stance grants the Duelist +60% attack speed and +25% accuracy for 5 turns, takes no time to activate, and costs 2 charges. items.weapon.melee.scimitar.desc=A thick curved blade. Its shape allows for faster, yet less powerful attacks. items.weapon.melee.scimitar$sworddance.name=sword dance -items.weapon.melee.scimitar$sworddance.desc=The Duelist is making quick momentum based strikes in a sort of dance. While this stance is active, she attacks 60%% faster (enough to attack exactly twice a turn with a scimitar), but suffers -20%% accuracy.\n\nTurns remaining: %s. +items.weapon.melee.scimitar$sworddance.desc=The Duelist is making quick momentum based strikes in a sort of dance. While this stance is active, she attacks 60%% faster (enough to attack exactly twice a turn with a scimitar) and has +25%% accuracy.\n\nTurns remaining: %s. items.weapon.melee.sickle.name=sickle items.weapon.melee.sickle.stats_desc=This is a rather inaccurate weapon. @@ -1700,7 +1700,7 @@ items.weapon.melee.sickle.desc=A handheld farming tool that can double as a stro items.weapon.melee.spear.name=spear items.weapon.melee.spear.stats_desc=This is a rather slow weapon.\nThis weapon has extra reach. items.weapon.melee.spear.ability_name=spike -items.weapon.melee.spear.ability_desc=The Duelist can use the tip of a spear to _spike_ an enemy that is in range but not adjacent. This deals +40% damage, knocks the enemy back, and is guaranteed to hit. +items.weapon.melee.spear.ability_desc=The Duelist can use the tip of a spear to _spike_ an enemy that is in range but not adjacent. This deals +45% damage, knocks the enemy back, and is guaranteed to hit. items.weapon.melee.spear.desc=A slender wooden rod tipped with sharpened iron. items.weapon.melee.sword.name=sword @@ -1725,7 +1725,7 @@ items.weapon.melee.warscythe.desc=This large and unwieldy tool has been reinforc items.weapon.melee.whip.name=whip items.weapon.melee.whip.stats_desc=This weapon has tremendous reach. items.weapon.melee.whip.ability_name=lash -items.weapon.melee.whip.ability_desc=The Duelist can _lash_ all enemies around her with a whip. This ability performs a normal attack against all enemies currently within attack range. +items.weapon.melee.whip.ability_desc=The Duelist can _lash_ all enemies around her with a whip. This ability performs a normal attack against all enemies within attack range and is guaranteed to hit the closest target. items.weapon.melee.whip.desc=While the barbed length of rope at the end of this weapon deals poor damage, its reach cannot be matched. items.weapon.melee.wornshortsword.name=worn shortsword 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 cd906fb6c..7a6ccd3a4 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 @@ -480,7 +480,7 @@ public class Hero extends Char { } if (buff(Scimitar.SwordDance.class) != null){ - accuracy *= 0.8f; + accuracy *= 1.25f; } if (!RingOfForce.fightingUnarmed(this)) { @@ -517,7 +517,7 @@ public class Hero extends Char { } if (buff(Quarterstaff.DefensiveStance.class) != null){ - evasion *= 2; + evasion *= 3; } if (paralysed > 0) { 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 1d48cc0e8..0b6a0dca1 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 @@ -395,7 +395,7 @@ abstract public class Weapon extends KindOfWeapon { } if (attacker.buff(RunicBlade.RunicSlashTracker.class) != null){ - multi += 2.5f; + multi += 3f; attacker.buff(RunicBlade.RunicSlashTracker.class).detach(); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/AssassinsBlade.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/AssassinsBlade.java index bfdb23cd6..2ec23a6bc 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/AssassinsBlade.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/AssassinsBlade.java @@ -73,7 +73,7 @@ public class AssassinsBlade extends MeleeWeapon { @Override protected void duelistAbility(Hero hero, Integer target) { - Dagger.sneakAbility(hero, 4, this); + Dagger.sneakAbility(hero, 6, this); } } \ No newline at end of file diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Dagger.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Dagger.java index 34cb37d65..60ada187d 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Dagger.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Dagger.java @@ -86,7 +86,7 @@ public class Dagger extends MeleeWeapon { @Override protected void duelistAbility(Hero hero, Integer target) { - sneakAbility(hero, 8, this); + sneakAbility(hero, 10, this); } public static void sneakAbility(Hero hero, int invisTurns, MeleeWeapon wep){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Dirk.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Dirk.java index eed42dffa..c3cfbea95 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Dirk.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Dirk.java @@ -73,7 +73,7 @@ public class Dirk extends MeleeWeapon { @Override protected void duelistAbility(Hero hero, Integer target) { - Dagger.sneakAbility(hero, 6, this); + Dagger.sneakAbility(hero, 8, this); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Flail.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Flail.java index 28b31e599..c4101a35f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Flail.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Flail.java @@ -59,7 +59,7 @@ public class Flail extends MeleeWeapon { @Override public int damageRoll(Char owner) { int dmg = Math.round(super.damageRoll(owner) * spinBonus); - if (spinBonus == 2f) Sample.INSTANCE.play(Assets.Sounds.HIT_STRONG); + if (spinBonus > 1f) Sample.INSTANCE.play(Assets.Sounds.HIT_STRONG); spinBonus = 1f; return dmg; } @@ -68,7 +68,6 @@ public class Flail extends MeleeWeapon { public float accuracyFactor(Char owner, Char target) { SpinAbilityTracker spin = owner.buff(SpinAbilityTracker.class); if (spin != null) { - //have to handle this in an actor tied to the regular attack =S Actor.add(new Actor() { { actPriority = VFX_PRIO; } @Override @@ -80,14 +79,10 @@ public class Flail extends MeleeWeapon { return true; } }); - //we detach and calculate bonus here in case the attack misses + //we detach and calculate bonus here in case the attack misses (e.g. vs. monks) spin.detach(); spinBonus = 1f + (spin.spins/3f); - if (spinBonus == 2f){ - return Float.POSITIVE_INFINITY; - } else { - return super.accuracyFactor(owner, target); - } + return Float.POSITIVE_INFINITY; } else { spinBonus = 1f; return super.accuracyFactor(owner, target); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Gauntlet.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Gauntlet.java index 2f6997615..c3fc7c43c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Gauntlet.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Gauntlet.java @@ -50,7 +50,7 @@ public class Gauntlet extends MeleeWeapon { @Override protected void duelistAbility(Hero hero, Integer target) { - Sai.comboStrikeAbility(hero, target, 0.30f, this); + Sai.comboStrikeAbility(hero, target, 0.35f, this); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Gloves.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Gloves.java index 3262b1e30..7e6f1857a 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Gloves.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Gloves.java @@ -52,7 +52,7 @@ public class Gloves extends MeleeWeapon { @Override protected void duelistAbility(Hero hero, Integer target) { - Sai.comboStrikeAbility(hero, target, 0.40f, this); + Sai.comboStrikeAbility(hero, target, 0.45f, this); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Greataxe.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Greataxe.java index 77bf7ee2d..869a0359d 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Greataxe.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Greataxe.java @@ -90,7 +90,7 @@ public class Greataxe extends MeleeWeapon { public void call() { beforeAbilityUsed(hero); AttackIndicator.target(enemy); - if (hero.attack(enemy, 1.35f, 0, Char.INFINITE_ACCURACY)){ + if (hero.attack(enemy, 1.50f, 0, Char.INFINITE_ACCURACY)){ Sample.INSTANCE.play(Assets.Sounds.HIT_STRONG); if (!enemy.isAlive()){ onAbilityKill(hero, enemy); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Greatshield.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Greatshield.java index b54b57d1b..201b6a32f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Greatshield.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Greatshield.java @@ -55,6 +55,6 @@ public class Greatshield extends MeleeWeapon { @Override protected void duelistAbility(Hero hero, Integer target) { - RoundShield.guardAbility(hero, 4, this); + RoundShield.guardAbility(hero, 6, this); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Quarterstaff.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Quarterstaff.java index e00f73323..da83834b0 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Quarterstaff.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Quarterstaff.java @@ -58,7 +58,7 @@ public class Quarterstaff extends MeleeWeapon { @Override protected void duelistAbility(Hero hero, Integer target) { beforeAbilityUsed(hero); - Buff.prolong(hero, DefensiveStance.class, 5f); //4 turns as using the ability is instant + Buff.prolong(hero, DefensiveStance.class, 4f); //4 turns as using the ability is instant hero.sprite.operate(hero.pos); hero.next(); afterAbilityUsed(hero); @@ -78,7 +78,7 @@ public class Quarterstaff extends MeleeWeapon { @Override public float iconFadePercent() { - return Math.max(0, (6 - visualcooldown()) / 6); + return Math.max(0, (5 - visualcooldown()) / 5); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/RoundShield.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/RoundShield.java index 765c57e83..4b1818806 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/RoundShield.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/RoundShield.java @@ -62,7 +62,7 @@ public class RoundShield extends MeleeWeapon { @Override protected void duelistAbility(Hero hero, Integer target) { - RoundShield.guardAbility(hero, 5, this); + RoundShield.guardAbility(hero, 8, this); } public static void guardAbility(Hero hero, int duration, MeleeWeapon wep){ @@ -87,7 +87,7 @@ public class RoundShield extends MeleeWeapon { @Override public float iconFadePercent() { - return Math.max(0, (5 - visualcooldown()) / 5); + return Math.max(0, (7 - visualcooldown()) / 7); } } } \ No newline at end of file diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Sai.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Sai.java index 13a443714..32a6c7330 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Sai.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Sai.java @@ -64,7 +64,7 @@ public class Sai extends MeleeWeapon { @Override protected void duelistAbility(Hero hero, Integer target) { - Sai.comboStrikeAbility(hero, target, 0.35f, this); + Sai.comboStrikeAbility(hero, target, 0.40f, this); } public static void comboStrikeAbility(Hero hero, Integer target, float boostPerHit, MeleeWeapon wep){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Scimitar.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Scimitar.java index 8e95190db..b8e4600eb 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Scimitar.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Scimitar.java @@ -53,7 +53,7 @@ public class Scimitar extends MeleeWeapon { @Override protected void duelistAbility(Hero hero, Integer target) { beforeAbilityUsed(hero); - Buff.prolong(hero, SwordDance.class, 5f); //5 turns as using the ability is instant + Buff.prolong(hero, SwordDance.class, 4f); //4 turns as using the ability is instant hero.sprite.operate(hero.pos); hero.next(); afterAbilityUsed(hero); @@ -73,7 +73,7 @@ public class Scimitar extends MeleeWeapon { @Override public float iconFadePercent() { - return Math.max(0, (6 - visualcooldown()) / 6); + return Math.max(0, (5 - visualcooldown()) / 5); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Spear.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Spear.java index f5da31c54..7c5b85eb4 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Spear.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Spear.java @@ -61,7 +61,7 @@ public class Spear extends MeleeWeapon { @Override protected void duelistAbility(Hero hero, Integer target) { - Spear.spikeAbility(hero, target, 1.40f, this); + Spear.spikeAbility(hero, target, 1.45f, this); } public static void spikeAbility(Hero hero, Integer target, float dmgMulti, MeleeWeapon wep){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Whip.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Whip.java index 3337cc970..2dc09da47 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Whip.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Whip.java @@ -56,6 +56,7 @@ public class Whip extends MeleeWeapon { protected void duelistAbility(Hero hero, Integer target) { ArrayList targets = new ArrayList<>(); + Char closest = null; hero.belongings.abilityWeapon = this; for (Char ch : Actor.chars()){ @@ -64,6 +65,9 @@ public class Whip extends MeleeWeapon { && Dungeon.level.heroFOV[ch.pos] && hero.canAttack(ch)){ targets.add(ch); + if (closest == null || Dungeon.level.trueDistance(hero.pos, closest.pos) > Dungeon.level.trueDistance(hero.pos, ch.pos)){ + closest = ch; + } } } hero.belongings.abilityWeapon = null; @@ -74,12 +78,13 @@ public class Whip extends MeleeWeapon { } throwSound(); + Char finalClosest = closest; hero.sprite.attack(hero.pos, new Callback() { @Override public void call() { beforeAbilityUsed(hero); for (Char ch : targets) { - hero.attack(ch); + hero.attack(ch, 0, 1, ch == finalClosest ? Char.INFINITE_ACCURACY : 1); if (!ch.isAlive()){ onAbilityKill(hero, ch); }