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.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.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.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.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.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.
|
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.name=sickle
|
||||||
items.weapon.melee.sickle.stats_desc=This is a rather inaccurate weapon.
|
items.weapon.melee.sickle.stats_desc=This is a rather inaccurate weapon.
|
||||||
items.weapon.melee.sickle.ability_name=harvest
|
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.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,_ 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._ 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.sickle.desc=A handheld farming tool that can double as a strong but unwieldy weapon.
|
||||||
|
|
||||||
items.weapon.melee.spear.name=spear
|
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.name=war scythe
|
||||||
items.weapon.melee.warscythe.stats_desc=This is a rather inaccurate weapon.
|
items.weapon.melee.warscythe.stats_desc=This is a rather inaccurate weapon.
|
||||||
items.weapon.melee.warscythe.ability_name=harvest
|
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.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,_ 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._ 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.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
|
items.weapon.melee.whip.name=whip
|
||||||
|
|||||||
@@ -736,22 +736,19 @@ public abstract class Char extends Actor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (buff(Sickle.HarvestBleedTracker.class) != null){
|
if (buff(Sickle.HarvestBleedTracker.class) != null){
|
||||||
if (isImmune(Bleeding.class)){
|
buff(Sickle.HarvestBleedTracker.class).detach();
|
||||||
sprite.showStatus(CharSprite.POSITIVE, Messages.titleCase(Messages.get(this, "immune")));
|
|
||||||
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;
|
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)){
|
for (ChampionEnemy buff : buffs(ChampionEnemy.class)){
|
||||||
|
|||||||
@@ -684,7 +684,7 @@ public enum Talent {
|
|||||||
|
|
||||||
if (hero.hasTalent(Talent.PROVOKED_ANGER)
|
if (hero.hasTalent(Talent.PROVOKED_ANGER)
|
||||||
&& hero.buff(ProvokedAngerTracker.class) != null){
|
&& 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();
|
hero.buff(ProvokedAngerTracker.class).detach();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+4
-4
@@ -81,9 +81,9 @@ public class Flail extends MeleeWeapon {
|
|||||||
});
|
});
|
||||||
//we detach and calculate bonus here in case the attack misses (e.g. vs. monks)
|
//we detach and calculate bonus here in case the attack misses (e.g. vs. monks)
|
||||||
spin.detach();
|
spin.detach();
|
||||||
//+(6+2*lvl) damage per spin, roughly +30% base damage, +45% scaling
|
//+(8+2*lvl) damage per spin, roughly +40% base damage, +45% scaling
|
||||||
// so +90% base dmg, +135% scaling at 3 spins
|
// so +120% base dmg, +135% scaling at 3 spins
|
||||||
spinBoost = spin.spins * augment.damageFactor(6 + 2*buffedLvl());
|
spinBoost = spin.spins * augment.damageFactor(8 + 2*buffedLvl());
|
||||||
return Float.POSITIVE_INFINITY;
|
return Float.POSITIVE_INFINITY;
|
||||||
} else {
|
} else {
|
||||||
spinBoost = 0;
|
spinBoost = 0;
|
||||||
@@ -126,7 +126,7 @@ public class Flail extends MeleeWeapon {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String abilityInfo() {
|
public String abilityInfo() {
|
||||||
int dmgBoost = levelKnown ? 6 + 2*buffedLvl() : 6;
|
int dmgBoost = levelKnown ? 8 + 2*buffedLvl() : 8;
|
||||||
if (levelKnown){
|
if (levelKnown){
|
||||||
return Messages.get(this, "ability_desc", augment.damageFactor(dmgBoost));
|
return Messages.get(this, "ability_desc", augment.damageFactor(dmgBoost));
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
+3
-2
@@ -512,10 +512,11 @@ public class MeleeWeapon extends Weapon {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public int chargeCap(){
|
public int chargeCap(){
|
||||||
|
//caps at level 19 with 8 or 10 charges
|
||||||
if (Dungeon.hero.subClass == HeroSubClass.CHAMPION){
|
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 {
|
} else {
|
||||||
return Math.min(8, 2 + (Dungeon.hero.lvl - 1) / 4);
|
return Math.min(8, 2 + (Dungeon.hero.lvl - 1) / 3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -74,7 +74,7 @@ public class RunicBlade extends MeleeWeapon {
|
|||||||
|
|
||||||
//we apply here because of projecting
|
//we apply here because of projecting
|
||||||
RunicSlashTracker tracker = Buff.affect(hero, RunicSlashTracker.class);
|
RunicSlashTracker tracker = Buff.affect(hero, RunicSlashTracker.class);
|
||||||
tracker.boost = 2f + 0.50f*buffedLvl();
|
tracker.boost = 3f + 0.50f*buffedLvl();
|
||||||
hero.belongings.abilityWeapon = this;
|
hero.belongings.abilityWeapon = this;
|
||||||
if (!hero.canAttack(enemy)){
|
if (!hero.canAttack(enemy)){
|
||||||
GLog.w(Messages.get(this, "ability_target_range"));
|
GLog.w(Messages.get(this, "ability_target_range"));
|
||||||
@@ -106,9 +106,9 @@ public class RunicBlade extends MeleeWeapon {
|
|||||||
@Override
|
@Override
|
||||||
public String abilityInfo() {
|
public String abilityInfo() {
|
||||||
if (levelKnown){
|
if (levelKnown){
|
||||||
return Messages.get(this, "ability_desc", 200+50*buffedLvl());
|
return Messages.get(this, "ability_desc", 300+50*buffedLvl());
|
||||||
} else {
|
} else {
|
||||||
return Messages.get(this, "typical_ability_desc", 200);
|
return Messages.get(this, "typical_ability_desc", 300);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -60,14 +60,14 @@ public class Sickle extends MeleeWeapon {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void duelistAbility(Hero hero, Integer target) {
|
protected void duelistAbility(Hero hero, Integer target) {
|
||||||
//replaces damage with 12+2*lvl bleed, roughly 110% avg dmg at base, 100% avg scaling
|
//replaces damage with 15+2.5*lvl bleed, roughly 138% avg base dmg, 125% avg scaling
|
||||||
int bleedAmt = augment.damageFactor(12 + 2*buffedLvl());
|
int bleedAmt = augment.damageFactor(Math.round(15f + 2.5f*buffedLvl()));
|
||||||
Sickle.harvestAbility(hero, target, 0f, bleedAmt, this);
|
Sickle.harvestAbility(hero, target, 0f, bleedAmt, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String abilityInfo() {
|
public String abilityInfo() {
|
||||||
int bleedAmt = levelKnown ? 12 + 2*buffedLvl() : 12;
|
int bleedAmt = levelKnown ? Math.round(15f + 2.5f*buffedLvl()) : 15;
|
||||||
if (levelKnown){
|
if (levelKnown){
|
||||||
return Messages.get(this, "ability_desc", augment.damageFactor(bleedAmt));
|
return Messages.get(this, "ability_desc", augment.damageFactor(bleedAmt));
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
+3
-3
@@ -50,14 +50,14 @@ public class WarScythe extends MeleeWeapon {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void duelistAbility(Hero hero, Integer target) {
|
protected void duelistAbility(Hero hero, Integer target) {
|
||||||
//replaces damage with 22.5+3.5*lvl bleed, exactly 100% avg damage.
|
//replaces damage with 30+4.5*lvl bleed, roughly 133% avg base dmg, 129% avg scaling
|
||||||
int bleedAmt = augment.damageFactor(Math.round(22.5f + 3.5f*buffedLvl()));
|
int bleedAmt = augment.damageFactor(Math.round(30f + 4.5f*buffedLvl()));
|
||||||
Sickle.harvestAbility(hero, target, 0f, bleedAmt, this);
|
Sickle.harvestAbility(hero, target, 0f, bleedAmt, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String abilityInfo() {
|
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){
|
if (levelKnown){
|
||||||
return Messages.get(this, "ability_desc", augment.damageFactor(bleedAmt));
|
return Messages.get(this, "ability_desc", augment.damageFactor(bleedAmt));
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user