v2.0.0: buffs to most weapon abilities based on early feedback and data

This commit is contained in:
Evan Debenham
2023-02-15 17:05:41 -05:00
parent f7e2c50698
commit 254f00fd56
14 changed files with 43 additions and 47 deletions
@@ -1511,7 +1511,7 @@ items.weapon.melee.assassinsblade.desc=A small wavy blade made of obsidian, diff
items.weapon.melee.battleaxe.name=battle axe items.weapon.melee.battleaxe.name=battle axe
items.weapon.melee.battleaxe.stats_desc=This is a rather accurate weapon. items.weapon.melee.battleaxe.stats_desc=This is a rather accurate weapon.
items.weapon.melee.battleaxe.ability_name=heavy blow items.weapon.melee.battleaxe.ability_name=heavy blow
items.weapon.melee.battleaxe.ability_desc=The Duelist can perform a _heavy blow_ with a battle axe. This strong but predictable attack has -75% accuracy, but deals +35% damage and applies vulnerable for 5 turns if it hits. Heavy blow can surprise attack. items.weapon.melee.battleaxe.ability_desc=The Duelist can perform a _heavy blow_ with a battle axe. This strong but predictable attack has -75% accuracy, but deals +40% damage and applies vulnerable and weaken for 5 turns if it hits. Heavy blow can surprise attack.
items.weapon.melee.battleaxe.desc=The enormous steel head of this battle axe puts considerable heft behind each wide stroke. items.weapon.melee.battleaxe.desc=The enormous steel head of this battle axe puts considerable heft behind each wide stroke.
items.weapon.melee.crossbow.name=crossbow items.weapon.melee.crossbow.name=crossbow
@@ -1546,25 +1546,25 @@ items.weapon.melee.flail$spinabilitytracker.desc=The Duelist is spinning her fla
items.weapon.melee.gauntlet.name=stone gauntlet items.weapon.melee.gauntlet.name=stone gauntlet
items.weapon.melee.gauntlet.stats_desc=This is a very fast weapon. 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_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 is instantaneous if the Duelist has already successfully attacked with melee or thrown weapons twice in the last 4 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 +20% damage for each time the Duelist has already successfully attacked with melee or thrown weapons twice 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.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 items.weapon.melee.glaive.name=glaive
items.weapon.melee.glaive.stats_desc=This is a rather slow weapon.\nThis weapon has extra reach. items.weapon.melee.glaive.stats_desc=This is a rather slow weapon.\nThis weapon has extra reach.
items.weapon.melee.glaive.ability_name=spike items.weapon.melee.glaive.ability_name=spike
items.weapon.melee.glaive.ability_desc=The Duelist can use the tip of a glaive to _spike_ an enemy that is in range but not adjacent. This deals -33% damage, but knocks the enemy back and is guaranteed to hit. items.weapon.melee.glaive.ability_desc=The Duelist can use the tip of a glaive to _spike_ an enemy that is in range but not adjacent. This deals +10% damage, knocks the enemy back, and is guaranteed to hit.
items.weapon.melee.glaive.desc=A massive polearm consisting of a sword blade on the end of a pole. items.weapon.melee.glaive.desc=A massive polearm consisting of a sword blade on the end of a pole.
items.weapon.melee.gloves.name=studded gloves items.weapon.melee.gloves.name=studded gloves
items.weapon.melee.gloves.stats_desc=This is a very fast weapon. 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_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 is instantaneous if the Duelist has already successfully attacked with melee or thrown weapons twice in the last 6 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 +30% damage for each time the Duelist has already successfully attacked with melee or thrown weapons twice 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.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.name=greataxe
items.weapon.melee.greataxe.stats_desc=This weapon is incredibly heavy. items.weapon.melee.greataxe.stats_desc=This weapon is incredibly heavy.
items.weapon.melee.greataxe.ability_name=retribution 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 33% 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 +35% 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.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.name=greatshield
@@ -1582,7 +1582,7 @@ items.weapon.melee.greatsword.desc=This towering blade inflicts heavy damage by
items.weapon.melee.handaxe.name=hand axe items.weapon.melee.handaxe.name=hand axe
items.weapon.melee.handaxe.stats_desc=This is a rather accurate weapon. items.weapon.melee.handaxe.stats_desc=This is a rather accurate weapon.
items.weapon.melee.handaxe.ability_name=heavy blow items.weapon.melee.handaxe.ability_name=heavy blow
items.weapon.melee.handaxe.ability_desc=The Duelist can perform a _heavy blow_ with a hand axe. This strong but predictable attack has -75% accuracy, but deals +45% damage and applies vulnerable for 5 turns if it hits. Heavy blow can surprise attack. items.weapon.melee.handaxe.ability_desc=The Duelist can perform a _heavy blow_ with a hand axe. This strong but predictable attack has -75% accuracy, but deals +50% damage and applies vulnerable and weaken for 5 turns if it hits. Heavy blow can surprise attack.
items.weapon.melee.handaxe.desc=A light axe, most commonly used for felling trees. The wide blade works well against foes as well. items.weapon.melee.handaxe.desc=A light axe, most commonly used for felling trees. The wide blade works well against foes as well.
items.weapon.melee.knuckles.name=knuckleduster items.weapon.melee.knuckles.name=knuckleduster
@@ -1597,7 +1597,7 @@ items.weapon.melee.longsword.desc=This sword's long razor-sharp steel blade shin
items.weapon.melee.mace.name=mace items.weapon.melee.mace.name=mace
items.weapon.melee.mace.stats_desc=This is a rather accurate weapon. items.weapon.melee.mace.stats_desc=This is a rather accurate weapon.
items.weapon.melee.mace.ability_name=heavy blow items.weapon.melee.mace.ability_name=heavy blow
items.weapon.melee.mace.ability_desc=The Duelist can perform a _heavy blow_ with a mace. This strong but predictable attack has -75% accuracy, but deals +40% damage and applies vulnerable for 5 turns if it hits. Heavy blow can surprise attack. items.weapon.melee.mace.ability_desc=The Duelist can perform a _heavy blow_ with a mace. This strong but predictable attack has -75% accuracy, but deals +45% damage and applies vulnerable and weaken for 5 turns if it hits. Heavy blow can surprise attack.
items.weapon.melee.mace.desc=The large iron head of this weapon inflicts substantial damage. items.weapon.melee.mace.desc=The large iron head of this weapon inflicts substantial damage.
items.weapon.melee.magesstaff.name=mage's staff items.weapon.melee.magesstaff.name=mage's staff
@@ -1667,19 +1667,19 @@ items.weapon.melee.roundshield$guardtracker.desc=The Duelist has readied her shi
items.weapon.melee.runicblade.name=runic blade items.weapon.melee.runicblade.name=runic blade
items.weapon.melee.runicblade.stats_desc=This weapon benefits more from upgrades. 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_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 +200% 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 +250% enchantment power.
items.weapon.melee.runicblade.desc=A mysterious weapon from a distant land, with a bright blue blade. 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.name=sai
items.weapon.melee.sai.stats_desc=This is a very fast weapon. 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_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 is instantaneous if the Duelist has already successfully attacked with melee or thrown weapons twice 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 +25% damage for each time the Duelist has already successfully attacked with melee or thrown weapons twice 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.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.scimitar.name=scimitar items.weapon.melee.scimitar.name=scimitar
items.weapon.melee.scimitar.stats_desc=This is a rather fast weapon. 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_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 -33% accuracy for 6 turns, takes no time to activate, and costs two 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 -20% accuracy for 6 turns, takes no time to activate, and costs two charges.
items.weapon.melee.scimitar.desc=A thick curved blade. Its shape allows for faster, yet less powerful attacks. 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.name=sword dance
items.weapon.melee.scimitar$sworddance.desc=The Duelist is making quick momentum based strikes with her weapon, 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 -33%% accuracy.\n\nTurns remaining: %s. items.weapon.melee.scimitar$sworddance.desc=The Duelist is making quick momentum based strikes with her weapon, 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 -33%% accuracy.\n\nTurns remaining: %s.
@@ -1687,7 +1687,7 @@ items.weapon.melee.scimitar$sworddance.desc=The Duelist is making quick momentum
items.weapon.melee.spear.name=spear 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.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_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 -25% damage, but 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 +15% 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.spear.desc=A slender wooden rod tipped with sharpened iron.
items.weapon.melee.sword.name=sword items.weapon.melee.sword.name=sword
@@ -1700,7 +1700,7 @@ items.weapon.melee.sword$cleavetracker.desc=The Duelist is ready to follow up on
items.weapon.melee.warhammer.name=war hammer items.weapon.melee.warhammer.name=war hammer
items.weapon.melee.warhammer.stats_desc=This is a rather accurate weapon. items.weapon.melee.warhammer.stats_desc=This is a rather accurate weapon.
items.weapon.melee.warhammer.ability_name=heavy blow items.weapon.melee.warhammer.ability_name=heavy blow
items.weapon.melee.warhammer.ability_desc=The Duelist can perform a _heavy blow_ with a war hammer. This strong but predictable attack has -75% accuracy, but deals +30% damage and applies vulnerable for 5 turns if it hits. Heavy blow can surprise attack. items.weapon.melee.warhammer.ability_desc=The Duelist can perform a _heavy blow_ with a war hammer. This strong but predictable attack has -75% accuracy, but deals +35% damage and applies vulnerable and weaken for 5 turns if it hits. Heavy blow can surprise attack.
items.weapon.melee.warhammer.desc=Few creatures can withstand the crushing blow of this towering mass of lead and steel, but it takes great strength to use effectively. items.weapon.melee.warhammer.desc=Few creatures can withstand the crushing blow of this towering mass of lead and steel, but it takes great strength to use effectively.
items.weapon.melee.whip.name=whip items.weapon.melee.whip.name=whip
@@ -187,7 +187,7 @@ abstract public class Weapon extends KindOfWeapon {
} }
if (owner.buff(Scimitar.SwordDance.class) != null){ if (owner.buff(Scimitar.SwordDance.class) != null){
ACC *= 0.67f; ACC *= 0.8f;
} }
return encumbrance > 0 ? (float)(ACC / Math.pow( 1.5, encumbrance )) : ACC; return encumbrance > 0 ? (float)(ACC / Math.pow( 1.5, encumbrance )) : ACC;
@@ -392,7 +392,7 @@ abstract public class Weapon extends KindOfWeapon {
} }
if (attacker.buff(RunicBlade.RunicSlashTracker.class) != null){ if (attacker.buff(RunicBlade.RunicSlashTracker.class) != null){
multi += 2f; multi += 2.5f;
attacker.buff(RunicBlade.RunicSlashTracker.class).detach(); attacker.buff(RunicBlade.RunicSlashTracker.class).detach();
} }
@@ -50,7 +50,7 @@ public class BattleAxe extends MeleeWeapon {
@Override @Override
protected void duelistAbility(Hero hero, Integer target) { protected void duelistAbility(Hero hero, Integer target) {
Mace.heavyBlowAbility(hero, target, 1.35f, this); Mace.heavyBlowAbility(hero, target, 1.40f, this);
} }
} }
@@ -50,7 +50,7 @@ public class Gauntlet extends MeleeWeapon {
@Override @Override
protected void duelistAbility(Hero hero, Integer target) { protected void duelistAbility(Hero hero, Integer target) {
Sai.comboStrikeAbility(hero, target, 4, this); Sai.comboStrikeAbility(hero, target, 0.20f, this);
} }
} }
@@ -51,7 +51,7 @@ public class Glaive extends MeleeWeapon {
@Override @Override
protected void duelistAbility(Hero hero, Integer target) { protected void duelistAbility(Hero hero, Integer target) {
Spear.spikeAbility(hero, target, 0.67f, this); Spear.spikeAbility(hero, target, 1.10f, this);
} }
} }
@@ -52,7 +52,7 @@ public class Gloves extends MeleeWeapon {
@Override @Override
protected void duelistAbility(Hero hero, Integer target) { protected void duelistAbility(Hero hero, Integer target) {
Sai.comboStrikeAbility(hero, target, 6, this); Sai.comboStrikeAbility(hero, target, 0.30f, this);
} }
} }
@@ -62,7 +62,7 @@ public class Greataxe extends MeleeWeapon {
@Override @Override
protected void duelistAbility(Hero hero, Integer target) { protected void duelistAbility(Hero hero, Integer target) {
if (hero.HP / (float)hero.HT > 0.33f){ if (hero.HP / (float)hero.HT >= 0.5f){
GLog.w(Messages.get(this, "ability_cant_use")); GLog.w(Messages.get(this, "ability_cant_use"));
return; return;
} }
@@ -58,7 +58,7 @@ public class HandAxe extends MeleeWeapon {
@Override @Override
protected void duelistAbility(Hero hero, Integer target) { protected void duelistAbility(Hero hero, Integer target) {
Mace.heavyBlowAbility(hero, target, 1.45f, this); Mace.heavyBlowAbility(hero, target, 1.50f, this);
} }
} }
@@ -28,6 +28,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Vulnerable; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Vulnerable;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Weakness;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
@@ -60,7 +61,7 @@ public class Mace extends MeleeWeapon {
@Override @Override
protected void duelistAbility(Hero hero, Integer target) { protected void duelistAbility(Hero hero, Integer target) {
Mace.heavyBlowAbility(hero, target, 1.40f, this); Mace.heavyBlowAbility(hero, target, 1.45f, this);
} }
public static void heavyBlowAbility(Hero hero, Integer target, float dmgMulti, MeleeWeapon wep){ public static void heavyBlowAbility(Hero hero, Integer target, float dmgMulti, MeleeWeapon wep){
@@ -91,6 +92,7 @@ public class Mace extends MeleeWeapon {
Sample.INSTANCE.play(Assets.Sounds.HIT_STRONG); Sample.INSTANCE.play(Assets.Sounds.HIT_STRONG);
if (enemy.isAlive()){ if (enemy.isAlive()){
Buff.affect(enemy, Vulnerable.class, 5f); Buff.affect(enemy, Vulnerable.class, 5f);
Buff.affect(enemy, Weakness.class, 5f);
} else { } else {
wep.onAbilityKill(hero); wep.onAbilityKill(hero);
} }
@@ -398,7 +398,7 @@ public class MeleeWeapon extends Weapon {
LockedFloor lock = target.buff(LockedFloor.class); LockedFloor lock = target.buff(LockedFloor.class);
if (charges < chargeCap()){ if (charges < chargeCap()){
if (lock == null || lock.regenOn()){ if (lock == null || lock.regenOn()){
partialCharge += 1/(50f-(chargeCap()-charges)); // 50 to 40 turns per charge partialCharge += 1/(45f-1.5f*(chargeCap()-charges)); // 45 to 30 turns per charge
} }
int points = ((Hero)target).pointsInTalent(Talent.WEAPON_RECHARGING); int points = ((Hero)target).pointsInTalent(Talent.WEAPON_RECHARGING);
@@ -419,9 +419,9 @@ public class MeleeWeapon extends Weapon {
if (Dungeon.hero.subClass == HeroSubClass.CHAMPION if (Dungeon.hero.subClass == HeroSubClass.CHAMPION
&& secondCharges < secondChargeCap()) { && secondCharges < secondChargeCap()) {
if (lock == null || lock.regenOn()) { if (lock == null || lock.regenOn()) {
// 100 to 80 turns per charge without talent // 90 to 60 turns per charge without talent
// up to 75 to 67 turns per charge at max talent level // up to 60 to 40 turns per charge at max talent level
secondPartialCharge += secondChargeMultiplier() / (50f-(secondChargeCap()-secondCharges)); secondPartialCharge += secondChargeMultiplier() / (45f-2.5f*(secondChargeCap()-secondCharges));
} }
if (secondPartialCharge >= 1) { if (secondPartialCharge >= 1) {
@@ -62,10 +62,10 @@ public class Sai extends MeleeWeapon {
@Override @Override
protected void duelistAbility(Hero hero, Integer target) { protected void duelistAbility(Hero hero, Integer target) {
Sai.comboStrikeAbility(hero, target, 5, this); Sai.comboStrikeAbility(hero, target, 0.25f, this);
} }
public static void comboStrikeAbility(Hero hero, Integer target, int comboTime, MeleeWeapon wep){ public static void comboStrikeAbility(Hero hero, Integer target, float boostPerHit, MeleeWeapon wep){
if (target == null) { if (target == null) {
return; return;
} }
@@ -89,29 +89,23 @@ public class Sai extends MeleeWeapon {
public void call() { public void call() {
wep.beforeAbilityUsed(hero); wep.beforeAbilityUsed(hero);
AttackIndicator.target(enemy); AttackIndicator.target(enemy);
boolean hit = hero.attack(enemy, 1, 0, Char.INFINITE_ACCURACY);
HashSet<ComboStrikeTracker> buffs = hero.buffs(ComboStrikeTracker.class);
int recentHits = buffs.size();
for (Buff b : buffs){
b.detach();
}
boolean hit = hero.attack(enemy, 1f + boostPerHit*recentHits, 0, Char.INFINITE_ACCURACY);
if (hit && !enemy.isAlive()){ if (hit && !enemy.isAlive()){
wep.onAbilityKill(hero); wep.onAbilityKill(hero);
} }
HashSet<ComboStrikeTracker> buffs = hero.buffs(ComboStrikeTracker.class);
int recentHits = 0;
for (Buff b : buffs){
if (b.cooldown() >= (ComboStrikeTracker.DURATION - comboTime)){
recentHits++;
}
}
Invisibility.dispel(); Invisibility.dispel();
if (recentHits >= 2 && hit){ if (recentHits >= 2 && hit){
for (Buff b : buffs){
b.detach();
}
Sample.INSTANCE.play(Assets.Sounds.HIT_STRONG); Sample.INSTANCE.play(Assets.Sounds.HIT_STRONG);
hero.next();
} else {
hero.spendAndNext(hero.attackDelay());
} }
wep.afterAbilityUsed(hero); wep.afterAbilityUsed(hero);
} }
}); });
@@ -119,7 +113,7 @@ public class Sai extends MeleeWeapon {
public static class ComboStrikeTracker extends FlavourBuff{ public static class ComboStrikeTracker extends FlavourBuff{
public static float DURATION = 6f; public static float DURATION = 5f;
} }
@@ -61,7 +61,7 @@ public class Spear extends MeleeWeapon {
@Override @Override
protected void duelistAbility(Hero hero, Integer target) { protected void duelistAbility(Hero hero, Integer target) {
Spear.spikeAbility(hero, target, 0.75f, this); Spear.spikeAbility(hero, target, 1.15f, this);
} }
public static void spikeAbility(Hero hero, Integer target, float dmgMulti, MeleeWeapon wep){ public static void spikeAbility(Hero hero, Integer target, float dmgMulti, MeleeWeapon wep){
@@ -50,7 +50,7 @@ public class WarHammer extends MeleeWeapon {
@Override @Override
protected void duelistAbility(Hero hero, Integer target) { protected void duelistAbility(Hero hero, Integer target) {
Mace.heavyBlowAbility(hero, target, 1.30f, this); Mace.heavyBlowAbility(hero, target, 1.35f, this);
} }
} }
@@ -180,9 +180,9 @@ public abstract class TippedDart extends Dart {
} }
use *= (1f - lotusPreserve); use *= (1f - lotusPreserve);
//grants 1 extra use with charged shot //grants 2 extra uses with charged shot
if (Dungeon.hero.buff(Crossbow.ChargedShot.class) != null){ if (Dungeon.hero.buff(Crossbow.ChargedShot.class) != null){
use = 100f/((100f/use) + 1f) + 0.001f; use = 100f/((100f/use) + 2f) + 0.001f;
} }
return use; return use;