v0.9.4: balance changes to rogue abilities/T4 talents:

- Smoke bomb max range down to 6 tiles from 8.
 - decoy armor per level down to 1-3 from 1-5
 - hasty retreat turns of haste/invis reduced by 1
 - shadow step charge cost reduction down to 60% from 67%
- double mark max charge cost reduction down to 75% from 80%
- Shadow Clone now follows the hero at 2x speed
 - shadow blade bonus damage up to 7.5% from 6.25%
 - cloned armor bonus DR up to 15% from 12.5%
 - fixed perfect copy giving a little more HP than intended
This commit is contained in:
Evan Debenham 2021-07-25 21:33:56 -04:00
parent 12fa719716
commit aa7b17dee0
4 changed files with 29 additions and 17 deletions

View File

@ -383,7 +383,7 @@ actors.hero.abilities.rogue.smokebomb.prompt=Choose a location to jump to
actors.hero.abilities.rogue.smokebomb$ninjalog.name=wooden decoy
actors.hero.abilities.rogue.smokebomb$ninjalog.desc=Somehow, enemies are easily convinced that this wooden decoy is the real Rogue!
actors.hero.abilities.rogue.smokebomb.short_desc=The Rogue throws down a _Smoke Bomb_ while blinking away. He becomes temporarily invisible and blinds enemies near his old location.
actors.hero.abilities.rogue.smokebomb.desc=The Rogue throws down a smoke bomb and blinks up to 8 tiles away. He can blink through hazards and enemies, but not through solid terrain like walls.\n\nEnemies that are adjacent to the Rogue's old position will be blinded for 5 turns.
actors.hero.abilities.rogue.smokebomb.desc=The Rogue throws down a smoke bomb and blinks up to 6 tiles away. He can blink through hazards and enemies, but not through solid terrain like walls.\n\nEnemies that are adjacent to the Rogue's old position will be blinded for 5 turns.
actors.hero.abilities.rogue.deathmark.name=death mark
actors.hero.abilities.rogue.deathmark.ally_target=You can only mark enemies
actors.hero.abilities.rogue.deathmark.short_desc=The Rogue places a _Death Mark_ on a chosen enemy. Marked enemies take bonus damage, but cannot die until the mark ends.
@ -655,23 +655,23 @@ 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.hasty_retreat.title=hasty retreat
actors.hero.talent.hasty_retreat.desc=_+1:_ After blinking the Rogue gains _2 turns_ of haste and invisibility.\n\n_+2:_ After blinking the Rogue gains _3 turns_ of haste and invisibility.\n\n_+3:_ After blinking the Rogue gains _4 turns_ of haste and invisibility.\n\n_+4:_ After blinking the Rogue gains _5 turns_ of haste and invisibility.
actors.hero.talent.hasty_retreat.desc=_+1:_ After blinking the Rogue gains _1 turn_ of haste and invisibility.\n\n_+2:_ After blinking the Rogue gains _2 turns_ of haste and invisibility.\n\n_+3:_ After blinking the Rogue gains _3 turns_ of haste and invisibility.\n\n_+4:_ After blinking the Rogue gains _4 turns_ of haste and invisibility.
actors.hero.talent.body_replacement.title=body replacement
actors.hero.talent.body_replacement.desc=_+1:_ After blinking, the Rogue leaves a wooden decoy behind that has _20 health and 1-5 armor_.\n\n_+2:_ After blinking, the Rogue leaves a wooden decoy behind that has _40 health and 2-10 armor_.\n\n_+3:_ After blinking, the Rogue leaves a wooden decoy behind that has _60 health and 3-15 armor_.\n\n_+4:_ After blinking, the Rogue leaves a wooden decoy behind that has _80 health and 4-20 armor_.\n\nOnly one decoy can be active at a time.
actors.hero.talent.body_replacement.desc=_+1:_ After blinking, the Rogue leaves a wooden decoy behind that has _20 health and 1-3 armor_.\n\n_+2:_ After blinking, the Rogue leaves a wooden decoy behind that has _40 health and 2-6 armor_.\n\n_+3:_ After blinking, the Rogue leaves a wooden decoy behind that has _60 health and 3-19 armor_.\n\n_+4:_ After blinking, the Rogue leaves a wooden decoy behind that has _80 health and 4-12 armor_.\n\nOnly one decoy can be active at a time.
actors.hero.talent.shadow_step.title=shadow step
actors.hero.talent.shadow_step.desc=_+1:_ If the rogue uses smoke bomb while invisible, it occurs instantly and has a _24% reduced_ charge cost, but it also doesn't blind enemies or trigger other talents.\n\n_+2:_ If the rogue uses smoke bomb while invisible, it occurs instantly and has a _42% reduced_ charge cost, but it also doesn't blind enemies or trigger other talents.\n\n_+3:_ If the rogue uses smoke bomb while invisible, it occurs instantly and has a _56% reduced_ charge cost, but it also doesn't blind enemies or trigger other talents.\n\n_+4:_ If the rogue uses smoke bomb while invisible, it occurs instantly and has a _67% reduced_ charge cost, but it also doesn't blind enemies or trigger other talents.
actors.hero.talent.shadow_step.desc=_+1:_ If the rogue uses smoke bomb while invisible, it occurs instantly and has a _20% reduced_ charge cost, but it also doesn't blind enemies or trigger other talents.\n\n_+2:_ If the rogue uses smoke bomb while invisible, it occurs instantly and has a _36% reduced_ charge cost, but it also doesn't blind enemies or trigger other talents.\n\n_+3:_ If the rogue uses smoke bomb while invisible, it occurs instantly and has a _50% reduced_ charge cost, but it also doesn't blind enemies or trigger other talents.\n\n_+4:_ If the rogue uses smoke bomb while invisible, it occurs instantly and has a _60% reduced_ charge cost, but it also doesn't blind enemies or trigger other talents.
actors.hero.talent.fear_the_reaper.title=fear the reaper
actors.hero.talent.fear_the_reaper.desc=_+1:_ When a death marked enemy reaches 0 hp, they become _crippled_.\n\n_+2:_ When a death marked enemy reaches 0 hp, they become _feared and crippled_.\n\n_+3:_ When a death marked enemy reaches 0 hp, they become _feared and crippled_ and enemies within 3 tiles become _crippled_.\n\n_+4:_ When a death marked enemy reaches 0 hp, they become _feared and crippled_ and enemies within 3 tiles become _feared and crippled_.
actors.hero.talent.deathly_durability.title=deathly durability
actors.hero.talent.deathly_durability.desc=_+1:_ Enemies killed by death mark give the rogue shielding equal to _13%_ of their hp when they were marked.\n\n_+2:_ Enemies killed by death mark give the rogue shielding equal to _25%_ of their hp when they were marked.\n\n_+3:_ Enemies killed by death mark give the rogue shielding equal to _38%_ of their hp when they were marked.\n\n_+4:_ Enemies killed by death mark give the rogue shielding equal to _50%_ of their hp when they were marked.
actors.hero.talent.double_mark.title=double mark
actors.hero.talent.double_mark.desc=_+1:_ Marking a second target at the same time as the first one has a _33% reduced_ charge cost.\n\n_+2:_ Marking a second target at the same time as the first one has a _55% reduced_ charge cost.\n\n_+3:_ Marking a second target at the same time as the first one has a _70% reduced_ charge cost.\n\n_+4:_ Marking a second target at the same time as the first one has a _80% reduced_ charge cost.
actors.hero.talent.double_mark.desc=_+1:_ Marking a second target at the same time as the first one has a _30% reduced_ charge cost.\n\n_+2:_ Marking a second target at the same time as the first one has a _50% reduced_ charge cost.\n\n_+3:_ Marking a second target at the same time as the first one has a _65% reduced_ charge cost.\n\n_+4:_ Marking a second target at the same time as the first one has a _75% reduced_ charge cost.
actors.hero.talent.shadow_blade.title=shadow blade
actors.hero.talent.shadow_blade.desc=_+1:_ The shadow clone gains _6%_ of the hero's damage per turn, and has a _25% chance_ to use the enchantment on the hero's weapon.\n\n_+2:_ The shadow clone gains _13%_ of the hero's damage per turn, and has a _50% chance_ to use the enchantment on the hero's weapon.\n\n_+3:_ The shadow clone gains _18%_ of the hero's damage per turn, and has a _75% chance_ to use the enchantment on the hero's weapon.\n\n_+4:_ The shadow clone gains _25%_ of the hero's damage per turn, and has a _100% chance_ to use the enchantment on the hero's weapon
actors.hero.talent.shadow_blade.desc=_+1:_ The shadow clone gains _8%_ of the hero's damage per turn, and has a _25% chance_ to use the enchantment on the hero's weapon.\n\n_+2:_ The shadow clone gains _15%_ of the hero's damage per turn, and has a _50% chance_ to use the enchantment on the hero's weapon.\n\n_+3:_ The shadow clone gains _23%_ of the hero's damage per turn, and has a _75% chance_ to use the enchantment on the hero's weapon.\n\n_+4:_ The shadow clone gains _30%_ of the hero's damage per turn, and has a _100% chance_ to use the enchantment on the hero's weapon
actors.hero.talent.cloned_armor.title=cloned armor
actors.hero.talent.cloned_armor.desc=_+1:_ The shadow clone gains _13%_ of the hero's armor value, and has a _25% chance_ to use the glyph on the hero's armor.\n\n_+2:_ The shadow clone gains _25%_ of the hero's armor value, and has a _50% chance_ to use the glyph on the hero's armor.\n\n_+3:_ The shadow clone gains _38%_ of the hero's armor value, and has a _75% chance_ to use the glyph on the hero's armor.\n\n_+4:_ The shadow clone gains _50%_ of the hero's armor value, and has a _100% chance_ to use the glyph on the hero's armor.
actors.hero.talent.cloned_armor.desc=_+1:_ The shadow clone gains _15%_ of the hero's armor value, and has a _25% chance_ to use the glyph on the hero's armor.\n\n_+2:_ The shadow clone gains _30%_ of the hero's armor value, and has a _50% chance_ to use the glyph on the hero's armor.\n\n_+3:_ The shadow clone gains _45%_ of the hero's armor value, and has a _75% chance_ to use the glyph on the hero's armor.\n\n_+4:_ The shadow clone gains _60%_ of the hero's armor value, and has a _100% chance_ to use the glyph on the hero's armor.
actors.hero.talent.perfect_copy.title=perfect copy
actors.hero.talent.perfect_copy.desc=_+1:_ The shadow clone gains _10%_ of the hero's max HP, and can instantly swap places with the hero up to _1 tile_ away.\n\n_+2:_ The shadow clone gains _20%_ of the hero's max HP, and can instantly swap places with the hero up to _2 tiles_ away.\n\n_+3:_ The shadow clone gains _30%_ of the hero's max HP, and can instantly swap places with the hero up to _3 tiles_ away.\n\n_+4:_ The shadow clone gains _40%_ of the hero's max HP, and can instantly swap places with the hero up to _4 tiles_ away.

View File

@ -57,8 +57,8 @@ public class DeathMark extends ArmorAbility {
public float chargeUse( Hero hero ) {
float chargeUse = super.chargeUse(hero);
if (hero.buff(DoubleMarkTracker.class) != null){
//reduced charge use by 33%/55%/70%/80%
chargeUse *= Math.pow(0.67, hero.pointsInTalent(Talent.DOUBLE_MARK));
//reduced charge use by 30%/50%/65%/75%
chargeUse *= Math.pow(0.707, hero.pointsInTalent(Talent.DOUBLE_MARK));
}
return chargeUse;
}

View File

@ -150,7 +150,7 @@ public class ShadowClone extends ArmorAbility {
public ShadowAlly( int heroLevel ){
super();
int hpBonus = 20 + 5*heroLevel;
int hpBonus = 15 + 5*heroLevel;
hpBonus = Math.round(0.1f * Dungeon.hero.pointsInTalent(Talent.PERFECT_COPY) * hpBonus);
if (hpBonus > 0){
HT += hpBonus;
@ -192,7 +192,7 @@ public class ShadowClone extends ArmorAbility {
int damage = Random.NormalIntRange(10, 20);
int heroDamage = Dungeon.hero.damageRoll();
heroDamage /= Dungeon.hero.attackDelay(); //normalize hero damage based on atk speed
heroDamage = Math.round(0.0625f * Dungeon.hero.pointsInTalent(Talent.SHADOW_BLADE) * heroDamage);
heroDamage = Math.round(0.075f * Dungeon.hero.pointsInTalent(Talent.SHADOW_BLADE) * heroDamage);
if (heroDamage > 0){
damage += heroDamage;
}
@ -214,7 +214,7 @@ public class ShadowClone extends ArmorAbility {
public int drRoll() {
int dr = super.drRoll();
int heroRoll = Dungeon.hero.drRoll();
heroRoll = Math.round(0.125f * Dungeon.hero.pointsInTalent(Talent.CLONED_ARMOR) * heroRoll);
heroRoll = Math.round(0.15f * Dungeon.hero.pointsInTalent(Talent.CLONED_ARMOR) * heroRoll);
if (heroRoll > 0){
dr += heroRoll;
}
@ -232,6 +232,18 @@ public class ShadowClone extends ArmorAbility {
}
}
@Override
public float speed() {
float speed = super.speed();
//moves 2 tiles at a time when returning to the hero
if (state == WANDERING && defendingPos == -1){
speed *= 2;
}
return speed;
}
@Override
public boolean canInteract(Char c) {
if (super.canInteract(c)){

View File

@ -61,8 +61,8 @@ public class SmokeBomb extends ArmorAbility {
if (!hero.hasTalent(Talent.SHADOW_STEP) || hero.invisible <= 0){
return super.chargeUse(hero);
} else {
//reduced charge use by 24%/42%/56%/67%
return (float)(super.chargeUse(hero) * Math.pow(0.76, hero.pointsInTalent(Talent.SHADOW_STEP)));
//reduced charge use by 20%/36%/50%/60%
return (float)(super.chargeUse(hero) * Math.pow(0.795, hero.pointsInTalent(Talent.SHADOW_STEP)));
}
}
@ -70,7 +70,7 @@ public class SmokeBomb extends ArmorAbility {
protected void activate(ClassArmor armor, Hero hero, Integer target) {
if (target != null) {
PathFinder.buildDistanceMap(hero.pos, BArray.not(Dungeon.level.solid,null), 8);
PathFinder.buildDistanceMap(hero.pos, BArray.not(Dungeon.level.solid,null), 6);
if ( PathFinder.distance[target] == Integer.MAX_VALUE ||
!Dungeon.level.heroFOV[target] ||
@ -107,7 +107,7 @@ public class SmokeBomb extends ArmorAbility {
}
if (hero.hasTalent(Talent.HASTY_RETREAT)){
int duration = 1+hero.pointsInTalent(Talent.HASTY_RETREAT);
int duration = hero.pointsInTalent(Talent.HASTY_RETREAT);
Buff.affect(hero, Haste.class, duration);
Buff.affect(hero, Invisibility.class, duration);
}
@ -149,7 +149,7 @@ public class SmokeBomb extends ArmorAbility {
@Override
public int drRoll() {
return Random.NormalIntRange(Dungeon.hero.pointsInTalent(Talent.BODY_REPLACEMENT),
5*Dungeon.hero.pointsInTalent(Talent.BODY_REPLACEMENT));
3*Dungeon.hero.pointsInTalent(Talent.BODY_REPLACEMENT));
}
}