v3.2.0: balance changes to thrown weapon talents
This commit is contained in:
@@ -1062,7 +1062,7 @@ actors.hero.talent.bounty_hunter.desc=_+1:_ When the Assassin kills an enemy wit
|
|||||||
actors.hero.talent.evasive_armor.title=evasive armor
|
actors.hero.talent.evasive_armor.title=evasive armor
|
||||||
actors.hero.talent.evasive_armor.desc=_+1:_ While freerunning, the Freerunner gains an additional _+1 evasion_ per excess point of strength on his armor.\n\n_+2:_ While freerunning, the Freerunner gains an additional _+2 evasion_ per excess point of strength on his armor.\n\n_+3:_ While freerunning, the Freerunner gains an additional _+3 evasion_ per excess point of strength on his armor.
|
actors.hero.talent.evasive_armor.desc=_+1:_ While freerunning, the Freerunner gains an additional _+1 evasion_ per excess point of strength on his armor.\n\n_+2:_ While freerunning, the Freerunner gains an additional _+2 evasion_ per excess point of strength on his armor.\n\n_+3:_ While freerunning, the Freerunner gains an additional _+3 evasion_ per excess point of strength on his armor.
|
||||||
actors.hero.talent.projectile_momentum.title=projectile momentum
|
actors.hero.talent.projectile_momentum.title=projectile momentum
|
||||||
actors.hero.talent.projectile_momentum.desc=_+1:_ While freerunning, the Freerunner gains _+20% accuracy and +15% damage_ with thrown weapons.\n\n_+2:_ While freerunning, the Freerunner gains _+40% accuracy and +30% damage_ with thrown weapons.\n\n_+3:_ While freerunning, the Freerunner gains _+60% accuracy and +45% damage_ with thrown weapons.
|
actors.hero.talent.projectile_momentum.desc=_+1:_ While freerunning, the Freerunner gains _+33% accuracy and +10% damage_ with thrown weapons.\n\n_+2:_ While freerunning, the Freerunner gains _+67% accuracy and +20% damage_ with thrown weapons.\n\n_+3:_ While freerunning, the Freerunner gains _+100% accuracy and +30% damage_ with thrown weapons.
|
||||||
actors.hero.talent.speedy_stealth.title=speedy stealth
|
actors.hero.talent.speedy_stealth.title=speedy stealth
|
||||||
actors.hero.talent.speedy_stealth.desc=_+1:_ The Freerunner gains 2 stacks of momentum per turn while he is invisible.\n\n_+2:_ In addition to the benefits of +1, freerunning no longer counts down while the Freerunner is invisible.\n\n_+3:_ In addition to the benefits of +1 and +2, the Freerunner moves at 2x speed while invisible, regardless of whether he is freerunning or not.
|
actors.hero.talent.speedy_stealth.desc=_+1:_ The Freerunner gains 2 stacks of momentum per turn while he is invisible.\n\n_+2:_ In addition to the benefits of +1, freerunning no longer counts down while the Freerunner is invisible.\n\n_+3:_ In addition to the benefits of +1 and +2, the Freerunner moves at 2x speed while invisible, regardless of whether he is freerunning or not.
|
||||||
|
|
||||||
@@ -1106,7 +1106,7 @@ actors.hero.talent.rejuvenating_steps.desc=_+1:_ When the Huntress steps on shor
|
|||||||
actors.hero.talent.heightened_senses.title=heightened senses
|
actors.hero.talent.heightened_senses.title=heightened senses
|
||||||
actors.hero.talent.heightened_senses.desc=_+1:_ The Huntress gains mind vision on characters within _2 tiles of her position_.\n\n_+2:_ The Huntress gains mind vision on characters within _3 tiles of her position_.
|
actors.hero.talent.heightened_senses.desc=_+1:_ The Huntress gains mind vision on characters within _2 tiles of her position_.\n\n_+2:_ The Huntress gains mind vision on characters within _3 tiles of her position_.
|
||||||
actors.hero.talent.durable_projectiles.title=durable projectiles
|
actors.hero.talent.durable_projectiles.title=durable projectiles
|
||||||
actors.hero.talent.durable_projectiles.desc=_+1:_ Thrown weapons have _+50% durability_ when used by the Huntress.\n\n_+2:_ Thrown weapons have _+75% durability_ when used by the Huntress.
|
actors.hero.talent.durable_projectiles.desc=_+1:_ Thrown weapons have _+33% durability_ when used by the Huntress.\n\n_+2:_ Thrown weapons have _+50% durability_ when used by the Huntress.
|
||||||
|
|
||||||
actors.hero.talent.point_blank.title=point blank
|
actors.hero.talent.point_blank.title=point blank
|
||||||
actors.hero.talent.point_blank.desc=_+1:_ When the Huntress uses her bow or a thrown weapon at melee range it has _-30% accuracy,_ instead of -50%.\n\n_+2:_ When the Huntress uses her bow or a thrown weapon at melee range it has _-10% accuracy,_ instead of -50%.\n\n_+3:_ When the Huntress uses her bow or a thrown weapon at melee range it has _+10% accuracy,_ instead of -50%.\n\nNote that thrown weapons or the spirit bow always have +50% accuracy when used at a distance.
|
actors.hero.talent.point_blank.desc=_+1:_ When the Huntress uses her bow or a thrown weapon at melee range it has _-30% accuracy,_ instead of -50%.\n\n_+2:_ When the Huntress uses her bow or a thrown weapon at melee range it has _-10% accuracy,_ instead of -50%.\n\n_+3:_ When the Huntress uses her bow or a thrown weapon at melee range it has _+10% accuracy,_ instead of -50%.\n\nNote that thrown weapons or the spirit bow always have +50% accuracy when used at a distance.
|
||||||
@@ -1117,9 +1117,9 @@ actors.hero.talent.seer_shot.meta_desc=_If this talent is gained by a different
|
|||||||
actors.hero.talent.farsight.title=farsight
|
actors.hero.talent.farsight.title=farsight
|
||||||
actors.hero.talent.farsight.desc=_+1:_ The Sniper's vision range is _increased by 25%_.\n\n_+2:_ The Sniper's vision range is _increased by 50%_.\n\n_+3:_ The Sniper's vision range is _increased by 75%_.
|
actors.hero.talent.farsight.desc=_+1:_ The Sniper's vision range is _increased by 25%_.\n\n_+2:_ The Sniper's vision range is _increased by 50%_.\n\n_+3:_ The Sniper's vision range is _increased by 75%_.
|
||||||
actors.hero.talent.shared_enchantment.title=shared enchantment
|
actors.hero.talent.shared_enchantment.title=shared enchantment
|
||||||
actors.hero.talent.shared_enchantment.desc=_+1:_ Thrown weapons have a _33% chance_ to use the enchantment on the Sniper's bow.\n\n_+2:_ Thrown weapons have a _67% chance_ to use the enchantment on the Sniper's bow.\n\n_+3:_ Thrown weapons have a _100% chance_ to use the enchantment on the Sniper's bow.\n\nThis talent does not apply to darts shot from an enchanted crossbow, they already trigger the crossbow's enchantment.
|
actors.hero.talent.shared_enchantment.desc=_+1:_ Thrown weapons have a _33% chance_ to use the enchantment on the Sniper's bow.\n\n_+2:_ Thrown weapons have a _67% chance_ to use the enchantment on the Sniper's bow.\n\n_+3:_ Thrown weapons have a _100% chance_ to use the enchantment on the Sniper's bow.\n\nThe bow's enchantment can trigger in addition to whatever enchantment the thrown weapon already has.
|
||||||
actors.hero.talent.shared_upgrades.title=shared upgrades
|
actors.hero.talent.shared_upgrades.title=shared upgrades
|
||||||
actors.hero.talent.shared_upgrades.desc=_+1:_ When the Sniper attacks with an upgraded thrown weapon, each level increases the duration of sniper's mark by 1 turn and the damage of her special attack by _2.5%_ per tier of the thrown weapon.\n\n_+2:_ When the Sniper attacks with an upgraded thrown weapon, each level increases the duration of sniper's mark by 1 turn and the damage of her special attack by _5%_ per tier of the thrown weapon.\n\n_+3:_ When the Sniper attacks with an upgraded thrown weapon, each level increases the duration of sniper's mark by 1 turn and the damage of her special attack by _7.5%_ per tier of the thrown weapon.
|
actors.hero.talent.shared_upgrades.desc=_+1:_ When the Sniper attacks with an upgraded thrown weapon, each level increases the duration of sniper's mark by 1 turn and the damage of her special attack by 16%, to a max of _2 turns and +33% damage at +2_.\n\n_+2:_ When the Sniper attacks with an upgraded thrown weapon, each level increases the duration of sniper's mark by 1 turn and the damage of her special attack by 16%, to a max of _4 turns and +67% damage at +4_.\n\n_+3:_ When the Sniper attacks with an upgraded thrown weapon, each level increases the duration of sniper's mark by 1 turn and the damage of her special attack by 16%, to a max of _6 turns and +100% damage at +6_.
|
||||||
|
|
||||||
actors.hero.talent.durable_tips.title=durable tips
|
actors.hero.talent.durable_tips.title=durable tips
|
||||||
actors.hero.talent.durable_tips.desc=_+1:_ Tipped darts have _2x durability_ when the Warden uses them.\n\n_+2:_ Tipped darts have _3x durability_ when the Warden uses them.\n\n_+3:_ Tipped darts have _4x durability_ when the Warden uses them.
|
actors.hero.talent.durable_tips.desc=_+1:_ Tipped darts have _2x durability_ when the Warden uses them.\n\n_+2:_ Tipped darts have _3x durability_ when the Warden uses them.\n\n_+3:_ Tipped darts have _4x durability_ when the Warden uses them.
|
||||||
|
|||||||
@@ -1481,10 +1481,10 @@ public class Hero extends Char {
|
|||||||
protected boolean act() {
|
protected boolean act() {
|
||||||
if (enemy.isAlive()) {
|
if (enemy.isAlive()) {
|
||||||
if (hasTalent(Talent.SHARED_UPGRADES)){
|
if (hasTalent(Talent.SHARED_UPGRADES)){
|
||||||
int bonusTurns = wep.buffedLvl();
|
int levelBonus = Math.min( 2*pointsInTalent(Talent.SHARED_UPGRADES), wep.buffedLvl() );
|
||||||
// bonus dmg is 2.5% x talent lvl x weapon level x weapon tier
|
// bonus dmg is 16.67% x weapon level, max of 2/4/6
|
||||||
float bonusDmg = wep.buffedLvl() * ((MissileWeapon) wep).tier * pointsInTalent(Talent.SHARED_UPGRADES) * 0.025f;
|
float bonusDmg = levelBonus/6f;
|
||||||
Buff.prolong(Hero.this, SnipersMark.class, SnipersMark.DURATION + bonusTurns).set(enemy.id(), bonusDmg);
|
Buff.prolong(Hero.this, SnipersMark.class, SnipersMark.DURATION + levelBonus).set(enemy.id(), bonusDmg);
|
||||||
} else {
|
} else {
|
||||||
Buff.prolong(Hero.this, SnipersMark.class, SnipersMark.DURATION).set(enemy.id(), 0);
|
Buff.prolong(Hero.this, SnipersMark.class, SnipersMark.DURATION).set(enemy.id(), 0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -176,15 +176,12 @@ abstract public class MissileWeapon extends Weapon {
|
|||||||
@Override
|
@Override
|
||||||
public int throwPos(Hero user, int dst) {
|
public int throwPos(Hero user, int dst) {
|
||||||
|
|
||||||
|
//TODO do we want to let these stack?
|
||||||
boolean projecting = hasEnchant(Projecting.class, user);
|
boolean projecting = hasEnchant(Projecting.class, user);
|
||||||
if (!projecting && Random.Int(3) < user.pointsInTalent(Talent.SHARED_ENCHANTMENT)){
|
if (Random.Int(3) < user.pointsInTalent(Talent.SHARED_ENCHANTMENT)){
|
||||||
if (this instanceof Dart && ((Dart) this).crossbowHasEnchant(Dungeon.hero)){
|
SpiritBow bow = Dungeon.hero.belongings.getItem(SpiritBow.class);
|
||||||
//do nothing
|
if (bow != null && bow.hasEnchant(Projecting.class, user)) {
|
||||||
} else {
|
projecting = true;
|
||||||
SpiritBow bow = Dungeon.hero.belongings.getItem(SpiritBow.class);
|
|
||||||
if (bow != null && bow.hasEnchant(Projecting.class, user)) {
|
|
||||||
projecting = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -201,7 +198,7 @@ abstract public class MissileWeapon extends Weapon {
|
|||||||
public float accuracyFactor(Char owner, Char target) {
|
public float accuracyFactor(Char owner, Char target) {
|
||||||
float accFactor = super.accuracyFactor(owner, target);
|
float accFactor = super.accuracyFactor(owner, target);
|
||||||
if (owner instanceof Hero && owner.buff(Momentum.class) != null && owner.buff(Momentum.class).freerunning()){
|
if (owner instanceof Hero && owner.buff(Momentum.class) != null && owner.buff(Momentum.class).freerunning()){
|
||||||
accFactor *= 1f + 0.2f*((Hero) owner).pointsInTalent(Talent.PROJECTILE_MOMENTUM);
|
accFactor *= 1f + ((Hero) owner).pointsInTalent(Talent.PROJECTILE_MOMENTUM)/3f;
|
||||||
}
|
}
|
||||||
|
|
||||||
accFactor *= adjacentAccFactor(owner, target);
|
accFactor *= adjacentAccFactor(owner, target);
|
||||||
@@ -260,13 +257,9 @@ abstract public class MissileWeapon extends Weapon {
|
|||||||
@Override
|
@Override
|
||||||
public int proc(Char attacker, Char defender, int damage) {
|
public int proc(Char attacker, Char defender, int damage) {
|
||||||
if (attacker == Dungeon.hero && Random.Int(3) < Dungeon.hero.pointsInTalent(Talent.SHARED_ENCHANTMENT)){
|
if (attacker == Dungeon.hero && Random.Int(3) < Dungeon.hero.pointsInTalent(Talent.SHARED_ENCHANTMENT)){
|
||||||
if (this instanceof Dart && ((Dart) this).crossbowHasEnchant(Dungeon.hero)){
|
SpiritBow bow = Dungeon.hero.belongings.getItem(SpiritBow.class);
|
||||||
//do nothing
|
if (bow != null && bow.enchantment != null && Dungeon.hero.buff(MagicImmune.class) == null) {
|
||||||
} else {
|
damage = bow.enchantment.proc(this, attacker, defender, damage);
|
||||||
SpiritBow bow = Dungeon.hero.belongings.getItem(SpiritBow.class);
|
|
||||||
if (bow != null && bow.enchantment != null && Dungeon.hero.buff(MagicImmune.class) == null) {
|
|
||||||
damage = bow.enchantment.proc(this, attacker, defender, damage);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -402,9 +395,9 @@ abstract public class MissileWeapon extends Weapon {
|
|||||||
public float durabilityPerUse( int level ){
|
public float durabilityPerUse( int level ){
|
||||||
float usages = baseUses * (float)(Math.pow(1.5f, level));
|
float usages = baseUses * (float)(Math.pow(1.5f, level));
|
||||||
|
|
||||||
//+50%/75% durability
|
//+33%/50% durability
|
||||||
if (Dungeon.hero != null && Dungeon.hero.hasTalent(Talent.DURABLE_PROJECTILES)){
|
if (Dungeon.hero != null && Dungeon.hero.hasTalent(Talent.DURABLE_PROJECTILES)){
|
||||||
usages *= 1.25f + (0.25f*Dungeon.hero.pointsInTalent(Talent.DURABLE_PROJECTILES));
|
usages *= 1f + (1+Dungeon.hero.pointsInTalent(Talent.DURABLE_PROJECTILES))/6f;
|
||||||
}
|
}
|
||||||
if (holster) {
|
if (holster) {
|
||||||
usages *= MagicalHolster.HOLSTER_DURABILITY_FACTOR;
|
usages *= MagicalHolster.HOLSTER_DURABILITY_FACTOR;
|
||||||
@@ -463,7 +456,7 @@ abstract public class MissileWeapon extends Weapon {
|
|||||||
damage += Hero.heroDamageIntRange( 0, exStr );
|
damage += Hero.heroDamageIntRange( 0, exStr );
|
||||||
}
|
}
|
||||||
if (owner.buff(Momentum.class) != null && owner.buff(Momentum.class).freerunning()) {
|
if (owner.buff(Momentum.class) != null && owner.buff(Momentum.class).freerunning()) {
|
||||||
damage = Math.round(damage * (1f + 0.15f * ((Hero) owner).pointsInTalent(Talent.PROJECTILE_MOMENTUM)));
|
damage = Math.round(damage * (1f + 0.1f * ((Hero) owner).pointsInTalent(Talent.PROJECTILE_MOMENTUM)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user