v2.4.2: balance changes:
- buffed provoked anger to 2|3 damage from 1-2|2 dmg - accelerated Duelist max charge gain. caps at lvl 19 from 25 - spin ability dmg boost up to 8+lvl from 6+lvl - runic slash ability base enchant boost up to 300% from 200% - harvest ability bleed up by ~30%, now damages bleed-immune enemies
This commit is contained in:
@@ -636,7 +636,7 @@ actors.hero.talent.hearty_meal.desc=_+1:_ Eating food heals the Warrior for _3 H
|
||||
actors.hero.talent.veterans_intuition.title=veteran's intuition
|
||||
actors.hero.talent.veterans_intuition.desc=_+1:_ The Warrior identifies weapons _1.75x faster_ and armor _2.5x faster_.\n\n_+2:_ The Warrior identifies weapons _2.5x faster_ and armor _when he equips it_.
|
||||
actors.hero.talent.provoked_anger.title=provoked anger
|
||||
actors.hero.talent.provoked_anger.desc=_+1:_ When the Warrior's shielding breaks, his next physical attack will deal _1-2 bonus damage_.\n\n_+2:_ When the Warrior's shielding breaks, his next physical attack will deal _2 bonus damage_.
|
||||
actors.hero.talent.provoked_anger.desc=_+1:_ When the Warrior's shielding breaks, his next physical attack will deal _2 bonus damage_.\n\n_+2:_ When the Warrior's shielding breaks, his next physical attack will deal _3 bonus damage_.
|
||||
actors.hero.talent.iron_will.title=iron will
|
||||
actors.hero.talent.iron_will.desc=_+1:_ The max shield provided by the Warrior's seal is _increased by 1_.\n\n_+2:_ The max shield provided by the Warrior's seal is _increased by 2_.
|
||||
actors.hero.talent.iron_will.meta_desc=_If this talent is gained by a different hero_ it will grant its shielding benefit without the broken seal.
|
||||
|
||||
@@ -1809,8 +1809,8 @@ items.weapon.melee.scimitar$sworddance.desc=The Duelist is making quick momentum
|
||||
items.weapon.melee.sickle.name=sickle
|
||||
items.weapon.melee.sickle.stats_desc=This is a rather inaccurate weapon.
|
||||
items.weapon.melee.sickle.ability_name=harvest
|
||||
items.weapon.melee.sickle.typical_ability_desc=The Duelist can _harvest_ an enemy with a sickle. This devastating attack is guaranteed to hit and typically deals _%d damage,_ but applies the damage as bleeding instead.
|
||||
items.weapon.melee.sickle.ability_desc=The Duelist can _harvest_ an enemy with a sickle. This devastating attack is guaranteed to hit and deals _%d damage,_ but applies the damage as bleeding instead.
|
||||
items.weapon.melee.sickle.typical_ability_desc=The Duelist can _harvest_ an enemy with a sickle. This devastating attack is guaranteed to hit and typically deals _%d damage._ This damage is applied as bleeding if the target isn't immune.
|
||||
items.weapon.melee.sickle.ability_desc=The Duelist can _harvest_ an enemy with a sickle. This devastating attack is guaranteed to hit and deals _%d damage._ This damage is applied as bleeding if the target isn't immune.
|
||||
items.weapon.melee.sickle.desc=A handheld farming tool that can double as a strong but unwieldy weapon.
|
||||
|
||||
items.weapon.melee.spear.name=spear
|
||||
@@ -1838,8 +1838,8 @@ items.weapon.melee.warhammer.desc=Few creatures can withstand the crushing blow
|
||||
items.weapon.melee.warscythe.name=war scythe
|
||||
items.weapon.melee.warscythe.stats_desc=This is a rather inaccurate weapon.
|
||||
items.weapon.melee.warscythe.ability_name=harvest
|
||||
items.weapon.melee.warscythe.typical_ability_desc=The Duelist can _harvest_ an enemy with a war scythe. This devastating attack is guaranteed to hit and typically deals _%d damage,_ but applies the damage as bleeding instead.
|
||||
items.weapon.melee.warscythe.ability_desc=The Duelist can _harvest_ an enemy with a war scythe. This devastating attack is guaranteed to hit and deals _%d damage,_ but applies the damage as bleeding instead.
|
||||
items.weapon.melee.warscythe.typical_ability_desc=The Duelist can _harvest_ an enemy with a war scythe. This devastating attack is guaranteed to hit and typically deals _%d damage._ This damage is applied as bleeding if the target isn't immune.
|
||||
items.weapon.melee.warscythe.ability_desc=The Duelist can _harvest_ an enemy with a war scythe. This devastating attack is guaranteed to hit and deals _%d damage._ This damage is applied as bleeding if the target isn't immune.
|
||||
items.weapon.melee.warscythe.desc=This large and unwieldy tool has been reinforced to make it better at cutting foes than crops.
|
||||
|
||||
items.weapon.melee.whip.name=whip
|
||||
|
||||
@@ -736,22 +736,19 @@ public abstract class Char extends Actor {
|
||||
}
|
||||
|
||||
if (buff(Sickle.HarvestBleedTracker.class) != null){
|
||||
if (isImmune(Bleeding.class)){
|
||||
sprite.showStatus(CharSprite.POSITIVE, Messages.titleCase(Messages.get(this, "immune")));
|
||||
buff(Sickle.HarvestBleedTracker.class).detach();
|
||||
buff(Sickle.HarvestBleedTracker.class).detach();
|
||||
|
||||
if (!isImmune(Bleeding.class)){
|
||||
Bleeding b = buff(Bleeding.class);
|
||||
if (b == null){
|
||||
b = new Bleeding();
|
||||
}
|
||||
b.announced = false;
|
||||
b.set(dmg, Sickle.HarvestBleedTracker.class);
|
||||
b.attachTo(this);
|
||||
sprite.showStatus(CharSprite.WARNING, Messages.titleCase(b.name()) + " " + (int)b.level());
|
||||
return;
|
||||
}
|
||||
|
||||
Bleeding b = buff(Bleeding.class);
|
||||
if (b == null){
|
||||
b = new Bleeding();
|
||||
}
|
||||
b.announced = false;
|
||||
b.set(dmg, Sickle.HarvestBleedTracker.class);
|
||||
b.attachTo(this);
|
||||
sprite.showStatus(CharSprite.WARNING, Messages.titleCase(b.name()) + " " + (int)b.level());
|
||||
buff(Sickle.HarvestBleedTracker.class).detach();
|
||||
return;
|
||||
}
|
||||
|
||||
for (ChampionEnemy buff : buffs(ChampionEnemy.class)){
|
||||
|
||||
@@ -684,7 +684,7 @@ public enum Talent {
|
||||
|
||||
if (hero.hasTalent(Talent.PROVOKED_ANGER)
|
||||
&& hero.buff(ProvokedAngerTracker.class) != null){
|
||||
dmg += Random.IntRange(hero.pointsInTalent(Talent.PROVOKED_ANGER) , 2);
|
||||
dmg += 1 + hero.pointsInTalent(Talent.PROVOKED_ANGER);
|
||||
hero.buff(ProvokedAngerTracker.class).detach();
|
||||
}
|
||||
|
||||
|
||||
@@ -81,9 +81,9 @@ public class Flail extends MeleeWeapon {
|
||||
});
|
||||
//we detach and calculate bonus here in case the attack misses (e.g. vs. monks)
|
||||
spin.detach();
|
||||
//+(6+2*lvl) damage per spin, roughly +30% base damage, +45% scaling
|
||||
// so +90% base dmg, +135% scaling at 3 spins
|
||||
spinBoost = spin.spins * augment.damageFactor(6 + 2*buffedLvl());
|
||||
//+(8+2*lvl) damage per spin, roughly +40% base damage, +45% scaling
|
||||
// so +120% base dmg, +135% scaling at 3 spins
|
||||
spinBoost = spin.spins * augment.damageFactor(8 + 2*buffedLvl());
|
||||
return Float.POSITIVE_INFINITY;
|
||||
} else {
|
||||
spinBoost = 0;
|
||||
@@ -126,7 +126,7 @@ public class Flail extends MeleeWeapon {
|
||||
|
||||
@Override
|
||||
public String abilityInfo() {
|
||||
int dmgBoost = levelKnown ? 6 + 2*buffedLvl() : 6;
|
||||
int dmgBoost = levelKnown ? 8 + 2*buffedLvl() : 8;
|
||||
if (levelKnown){
|
||||
return Messages.get(this, "ability_desc", augment.damageFactor(dmgBoost));
|
||||
} else {
|
||||
|
||||
@@ -512,10 +512,11 @@ public class MeleeWeapon extends Weapon {
|
||||
}
|
||||
|
||||
public int chargeCap(){
|
||||
//caps at level 19 with 8 or 10 charges
|
||||
if (Dungeon.hero.subClass == HeroSubClass.CHAMPION){
|
||||
return Math.min(10, 4 + (Dungeon.hero.lvl - 1) / 4);
|
||||
return Math.min(10, 4 + (Dungeon.hero.lvl - 1) / 3);
|
||||
} else {
|
||||
return Math.min(8, 2 + (Dungeon.hero.lvl - 1) / 4);
|
||||
return Math.min(8, 2 + (Dungeon.hero.lvl - 1) / 3);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@ public class RunicBlade extends MeleeWeapon {
|
||||
|
||||
//we apply here because of projecting
|
||||
RunicSlashTracker tracker = Buff.affect(hero, RunicSlashTracker.class);
|
||||
tracker.boost = 2f + 0.50f*buffedLvl();
|
||||
tracker.boost = 3f + 0.50f*buffedLvl();
|
||||
hero.belongings.abilityWeapon = this;
|
||||
if (!hero.canAttack(enemy)){
|
||||
GLog.w(Messages.get(this, "ability_target_range"));
|
||||
@@ -106,9 +106,9 @@ public class RunicBlade extends MeleeWeapon {
|
||||
@Override
|
||||
public String abilityInfo() {
|
||||
if (levelKnown){
|
||||
return Messages.get(this, "ability_desc", 200+50*buffedLvl());
|
||||
return Messages.get(this, "ability_desc", 300+50*buffedLvl());
|
||||
} else {
|
||||
return Messages.get(this, "typical_ability_desc", 200);
|
||||
return Messages.get(this, "typical_ability_desc", 300);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -60,14 +60,14 @@ public class Sickle extends MeleeWeapon {
|
||||
|
||||
@Override
|
||||
protected void duelistAbility(Hero hero, Integer target) {
|
||||
//replaces damage with 12+2*lvl bleed, roughly 110% avg dmg at base, 100% avg scaling
|
||||
int bleedAmt = augment.damageFactor(12 + 2*buffedLvl());
|
||||
//replaces damage with 15+2.5*lvl bleed, roughly 138% avg base dmg, 125% avg scaling
|
||||
int bleedAmt = augment.damageFactor(Math.round(15f + 2.5f*buffedLvl()));
|
||||
Sickle.harvestAbility(hero, target, 0f, bleedAmt, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String abilityInfo() {
|
||||
int bleedAmt = levelKnown ? 12 + 2*buffedLvl() : 12;
|
||||
int bleedAmt = levelKnown ? Math.round(15f + 2.5f*buffedLvl()) : 15;
|
||||
if (levelKnown){
|
||||
return Messages.get(this, "ability_desc", augment.damageFactor(bleedAmt));
|
||||
} else {
|
||||
|
||||
@@ -50,14 +50,14 @@ public class WarScythe extends MeleeWeapon {
|
||||
|
||||
@Override
|
||||
protected void duelistAbility(Hero hero, Integer target) {
|
||||
//replaces damage with 22.5+3.5*lvl bleed, exactly 100% avg damage.
|
||||
int bleedAmt = augment.damageFactor(Math.round(22.5f + 3.5f*buffedLvl()));
|
||||
//replaces damage with 30+4.5*lvl bleed, roughly 133% avg base dmg, 129% avg scaling
|
||||
int bleedAmt = augment.damageFactor(Math.round(30f + 4.5f*buffedLvl()));
|
||||
Sickle.harvestAbility(hero, target, 0f, bleedAmt, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String abilityInfo() {
|
||||
int bleedAmt = levelKnown ? Math.round(22.5f + 3.5f*buffedLvl()) : 23;
|
||||
int bleedAmt = levelKnown ? Math.round(30f + 4.5f*buffedLvl()) : 30;
|
||||
if (levelKnown){
|
||||
return Messages.get(this, "ability_desc", augment.damageFactor(bleedAmt));
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user