v0.9.2: implemented the speedy stealth talent
This commit is contained in:
parent
b28e7a99e2
commit
831e9fee20
|
@ -403,7 +403,9 @@ 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 +10% damage_ with thrown weapons.\n\n_+1:_ While freerunning, the Freerunner gains _+40% accuracy and +20% damage_ with thrown weapons.\n\n_+1:_ While freerunning, the Freerunner gains _+60% accuracy and +30% damage_ with thrown weapons.
|
actors.hero.talent.projectile_momentum.desc=_+1:_ While freerunning, the Freerunner gains _+20% accuracy and +10% damage_ with thrown weapons.\n\n_+2:_ While freerunning, the Freerunner gains _+40% accuracy and +20% damage_ with thrown weapons.\n\n_+3:_ While freerunning, the Freerunner gains _+60% accuracy and +30% damage_ with thrown weapons.
|
||||||
|
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.natures_bounty.title=nature's bounty
|
actors.hero.talent.natures_bounty.title=nature's bounty
|
||||||
actors.hero.talent.natures_bounty.desc=_+1:_ The Huntress can find _4 berries_ hidden in tall grass as she explores the earlier stages of the dungeon.\n\n_+2:_ The Huntress can find _6 berries_ hidden in tall grass as she explores the earlier stages of the dungeon.
|
actors.hero.talent.natures_bounty.desc=_+1:_ The Huntress can find _4 berries_ hidden in tall grass as she explores the earlier stages of the dungeon.\n\n_+2:_ The Huntress can find _6 berries_ hidden in tall grass as she explores the earlier stages of the dungeon.
|
||||||
|
|
|
@ -52,8 +52,16 @@ public class Momentum extends Buff implements ActionIndicator.Action {
|
||||||
if (freerunCooldown > 0){
|
if (freerunCooldown > 0){
|
||||||
freerunCooldown--;
|
freerunCooldown--;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (freerunCooldown == 0 && target.invisible > 0 && Dungeon.hero.pointsInTalent(Talent.SPEEDY_STEALTH) >= 1){
|
||||||
|
momentumStacks = Math.min(momentumStacks + 2, 10);
|
||||||
|
movedLastTurn = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (freerunTurns > 0){
|
if (freerunTurns > 0){
|
||||||
freerunTurns--;
|
if (target.invisible == 0 || Dungeon.hero.pointsInTalent(Talent.SPEEDY_STEALTH) < 2) {
|
||||||
|
freerunTurns--;
|
||||||
|
}
|
||||||
} else if (!movedLastTurn){
|
} else if (!movedLastTurn){
|
||||||
momentumStacks = Math.min(momentumStacks -1, Math.round(momentumStacks * 0.667f));
|
momentumStacks = Math.min(momentumStacks -1, Math.round(momentumStacks * 0.667f));
|
||||||
if (momentumStacks <= 0) {
|
if (momentumStacks <= 0) {
|
||||||
|
@ -81,7 +89,13 @@ public class Momentum extends Buff implements ActionIndicator.Action {
|
||||||
}
|
}
|
||||||
|
|
||||||
public float speedMultiplier(){
|
public float speedMultiplier(){
|
||||||
return (freerunTurns > 0) ? 2 : 1;
|
if (freerunning()){
|
||||||
|
return 2;
|
||||||
|
} else if (target.invisible > 0 && Dungeon.hero.pointsInTalent(Talent.SPEEDY_STEALTH) == 3){
|
||||||
|
return 2;
|
||||||
|
} else {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int evasionBonus( int heroLvl, int excessArmorStr ){
|
public int evasionBonus( int heroLvl, int excessArmorStr ){
|
||||||
|
|
|
@ -483,8 +483,8 @@ public class Hero extends Char {
|
||||||
}
|
}
|
||||||
|
|
||||||
Momentum momentum = buff(Momentum.class);
|
Momentum momentum = buff(Momentum.class);
|
||||||
if (momentum != null && momentum.freerunning()){
|
if (momentum != null){
|
||||||
((HeroSprite)sprite).sprint( 1.5f );
|
((HeroSprite)sprite).sprint( momentum.freerunning() ? 1.5f : 1f );
|
||||||
speed *= momentum.speedMultiplier();
|
speed *= momentum.speedMultiplier();
|
||||||
} else {
|
} else {
|
||||||
((HeroSprite)sprite).sprint( 1f );
|
((HeroSprite)sprite).sprint( 1f );
|
||||||
|
@ -1295,6 +1295,10 @@ public class Hero extends Char {
|
||||||
|
|
||||||
if (step != -1) {
|
if (step != -1) {
|
||||||
|
|
||||||
|
if (subClass == HeroSubClass.FREERUNNER){
|
||||||
|
Buff.affect(this, Momentum.class).gainStack();
|
||||||
|
}
|
||||||
|
|
||||||
float speed = speed();
|
float speed = speed();
|
||||||
|
|
||||||
sprite.move(pos, step);
|
sprite.move(pos, step);
|
||||||
|
@ -1305,10 +1309,6 @@ public class Hero extends Char {
|
||||||
|
|
||||||
search(false);
|
search(false);
|
||||||
|
|
||||||
if (subClass == HeroSubClass.FREERUNNER){
|
|
||||||
Buff.affect(this, Momentum.class).gainStack();
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -97,7 +97,7 @@ public enum Talent {
|
||||||
//Assassin T3
|
//Assassin T3
|
||||||
ENHANCED_LETHALITY(75, 3), ASSASSINS_REACH(76, 3), BOUNTY_HUNTER(77, 3),
|
ENHANCED_LETHALITY(75, 3), ASSASSINS_REACH(76, 3), BOUNTY_HUNTER(77, 3),
|
||||||
//Freerunner T3
|
//Freerunner T3
|
||||||
EVASIVE_ARMOR(78, 3), PROJECTILE_MOMENTUM(79, 3), FREERUNNER_T3_3(80, 3),
|
EVASIVE_ARMOR(78, 3), PROJECTILE_MOMENTUM(79, 3), SPEEDY_STEALTH(80, 3),
|
||||||
|
|
||||||
//Huntress T1
|
//Huntress T1
|
||||||
NATURES_BOUNTY(96), SURVIVALISTS_INTUITION(97), FOLLOWUP_STRIKE(98), NATURES_AID(99),
|
NATURES_BOUNTY(96), SURVIVALISTS_INTUITION(97), FOLLOWUP_STRIKE(98), NATURES_AID(99),
|
||||||
|
@ -473,7 +473,7 @@ public enum Talent {
|
||||||
Collections.addAll(tierTalents, ENHANCED_LETHALITY, ASSASSINS_REACH, BOUNTY_HUNTER);
|
Collections.addAll(tierTalents, ENHANCED_LETHALITY, ASSASSINS_REACH, BOUNTY_HUNTER);
|
||||||
break;
|
break;
|
||||||
case FREERUNNER:
|
case FREERUNNER:
|
||||||
Collections.addAll(tierTalents, EVASIVE_ARMOR, PROJECTILE_MOMENTUM, FREERUNNER_T3_3);
|
Collections.addAll(tierTalents, EVASIVE_ARMOR, PROJECTILE_MOMENTUM, SPEEDY_STEALTH);
|
||||||
break;
|
break;
|
||||||
case SNIPER:
|
case SNIPER:
|
||||||
Collections.addAll(tierTalents, FARSIGHT, SHARED_ENCHANTMENT, SHARED_UPGRADES);
|
Collections.addAll(tierTalents, FARSIGHT, SHARED_ENCHANTMENT, SHARED_UPGRADES);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user