v0.9.2: implemented the hold fast talent

This commit is contained in:
Evan Debenham 2021-02-13 17:26:49 -05:00
parent 7fc9c3954e
commit 448c170123
3 changed files with 28 additions and 4 deletions

View File

@ -334,6 +334,8 @@ actors.hero.talent.lethal_momentum.title=lethal momentum
actors.hero.talent.lethal_momentum.desc=_+1:_ When the Warrior lands a killing blow with a physical weapon, it has a _67% chance_ to take 0 turns.\n\n_+2:_ When the Warrior lands a killing blow with a physical weapon, it has a _100% chance_ to take 0 turns. actors.hero.talent.lethal_momentum.desc=_+1:_ When the Warrior lands a killing blow with a physical weapon, it has a _67% chance_ to take 0 turns.\n\n_+2:_ When the Warrior lands a killing blow with a physical weapon, it has a _100% chance_ to take 0 turns.
actors.hero.talent.improvised_projectiles.title=improvised projectiles actors.hero.talent.improvised_projectiles.title=improvised projectiles
actors.hero.talent.improvised_projectiles.desc=_+1:_ The Warrior can blind an enemy for _2 turns_ by throwing any item that isnt a thrown weapon at them. This has a 30 turn cooldown.\n\n_+2:_ The Warrior can blind an enemy for _3 turns_ by throwing any item that isnt a thrown weapon at them. This has a 30 turn cooldown. actors.hero.talent.improvised_projectiles.desc=_+1:_ The Warrior can blind an enemy for _2 turns_ by throwing any item that isnt a thrown weapon at them. This has a 30 turn cooldown.\n\n_+2:_ The Warrior can blind an enemy for _3 turns_ by throwing any item that isnt a thrown weapon at them. This has a 30 turn cooldown.
actors.hero.talent.hold_fast.title=hold fast
actors.hero.talent.hold_fast.desc=_+1:_ When the warrior waits he gains _+2 armor_ until he moves.\n\n_+2:_ When the warrior waits he gains _+4 armor_ until he moves.\n\n_+3:_ When the warrior waits he gains _+6 armor_ until he moves.
actors.hero.talent.strongman.title=strongman actors.hero.talent.strongman.title=strongman
actors.hero.talent.strongman.desc=_+1:_ The Warrior needs _1 less strength_ to use armor.\n\n_+2:_ The Warrior needs _1 less strength_ to use armor and _1 less strength_ to use weapons.\n\n_+3:_ The Warrior needs _2 less strength_ to use armor and _1 less strength_ to use weapons. actors.hero.talent.strongman.desc=_+1:_ The Warrior needs _1 less strength_ to use armor.\n\n_+2:_ The Warrior needs _1 less strength_ to use armor and _1 less strength_ to use weapons.\n\n_+3:_ The Warrior needs _2 less strength_ to use armor and _1 less strength_ to use weapons.
actors.hero.talent.endless_rage.title=endless rage actors.hero.talent.endless_rage.title=endless rage

View File

@ -470,6 +470,10 @@ public class Hero extends Char {
Blocking.BlockBuff block = buff(Blocking.BlockBuff.class); Blocking.BlockBuff block = buff(Blocking.BlockBuff.class);
if (block != null) dr += block.blockingRoll(); if (block != null) dr += block.blockingRoll();
if (buff(Talent.HoldFastTracker.class) != null){
dr += Random.NormalIntRange(0, 2*pointsInTalent(Talent.HOLD_FAST));
}
return dr; return dr;
} }
@ -1061,8 +1065,13 @@ public class Hero extends Char {
public void rest( boolean fullRest ) { public void rest( boolean fullRest ) {
spendAndNext( TIME_TO_REST ); spendAndNext( TIME_TO_REST );
if (!fullRest && sprite != null) { if (!fullRest) {
sprite.showStatus( CharSprite.DEFAULT, Messages.get(this, "wait") ); if (hasTalent(Talent.HOLD_FAST)){
Buff.affect(this, Talent.HoldFastTracker.class);
}
if (sprite != null) {
sprite.showStatus(CharSprite.DEFAULT, Messages.get(this, "wait"));
}
} }
resting = fullRest; resting = fullRest;
} }

View File

@ -71,7 +71,7 @@ public enum Talent {
//Warrior T2 //Warrior T2
IRON_STOMACH(4), RESTORED_WILLPOWER(5), RUNIC_TRANSFERENCE(6), LETHAL_MOMENTUM(7), IMPROVISED_PROJECTILES(8), IRON_STOMACH(4), RESTORED_WILLPOWER(5), RUNIC_TRANSFERENCE(6), LETHAL_MOMENTUM(7), IMPROVISED_PROJECTILES(8),
//Warrior T3 //Warrior T3
WARRIOR_T3_1(9, 3), STRONGMAN(10, 3), HOLD_FAST(9, 3), STRONGMAN(10, 3),
//Berserker T3 //Berserker T3
ENDLESS_RAGE(11, 3), BERSERKING_STAMINA(12, 3), ENRAGED_CATALYST(13, 3), ENDLESS_RAGE(11, 3), BERSERKING_STAMINA(12, 3), ENRAGED_CATALYST(13, 3),
//Gladiator T3 //Gladiator T3
@ -112,6 +112,19 @@ public enum Talent {
public static class ImprovisedProjectileCooldown extends FlavourBuff{}; public static class ImprovisedProjectileCooldown extends FlavourBuff{};
public static class LethalMomentumTracker extends FlavourBuff{}; public static class LethalMomentumTracker extends FlavourBuff{};
public static class HoldFastTracker extends Buff{
public int pos = -1;
@Override
public boolean act() {
if (pos == -1) pos = target.pos;
if (pos != target.pos) {
detach();
} else {
spend(TICK);
}
return true;
}
}
public static class WandPreservationCounter extends CounterBuff{}; public static class WandPreservationCounter extends CounterBuff{};
public static class EmpoweringScrollsTracker extends FlavourBuff{ public static class EmpoweringScrollsTracker extends FlavourBuff{
@Override @Override
@ -428,7 +441,7 @@ public enum Talent {
//tier 3 //tier 3
switch (cls){ switch (cls){
case WARRIOR: default: case WARRIOR: default:
Collections.addAll(tierTalents, WARRIOR_T3_1, STRONGMAN); Collections.addAll(tierTalents, HOLD_FAST, STRONGMAN);
break; break;
case MAGE: case MAGE:
Collections.addAll(tierTalents, EMPOWERING_SCROLLS, MAGE_T3_2); Collections.addAll(tierTalents, EMPOWERING_SCROLLS, MAGE_T3_2);