v0.9.2: implemented the enhanced combo talent
This commit is contained in:
parent
c1dd816a36
commit
35e894ab54
|
@ -346,6 +346,8 @@ actors.hero.talent.cleave.title=cleave
|
|||
actors.hero.talent.cleave.desc=_+1:_ When the Gladiator kills an enemy, the combo cooldown for his next hit is increased to _10 turns_.\n\n_+2:_ When the Gladiator kills an enemy, the combo cooldown for his next hit is increased to _20 turns_.\n\n_+3:_ When the Gladiator kills an enemy, the combo cooldown for his next hit is increased to _30 turns_.
|
||||
actors.hero.talent.lethal_defense.title=lethal defense
|
||||
actors.hero.talent.lethal_defense.desc=_+1:_ When the Gladiator kills an enemy with a combo move, he _regains 33%_ of the broken seal's shielding.\n\n_+1:_ When the Gladiator kills an enemy with a combo move, he _regains 67%_ of the broken seal's shielding.\n\n_+1:_ When the Gladiator kills an enemy with a combo move, he _regains 100%_ of the broken seal's shielding.
|
||||
actors.hero.talent.enhanced_combo.title=enhanced combo
|
||||
actors.hero.talent.enhanced_combo.desc=_+1:_ When the Gladiator's combo is 7 or higher, Clobber's knockback range increases to 3, it inflicts vertigo, and it can knock enemies into pits.\n\n_+2:_ In addition to the benefits of +1, when the Gladiator's combo is 9 or higher parry works on multiple attacks.\n\n_+3:_ In addition to the benefits of +1 and +2, the Gladiator can leap up to combo/3 tiles when using Slam, Crush, or Fury.
|
||||
|
||||
actors.hero.talent.empowering_meal.title=empowering meal
|
||||
actors.hero.talent.empowering_meal.desc=_+1:_ Eating food grants the Mage _2 bonus damage_ on his next 3 wand zaps.\n\n_+2:_ Eating food grants the Mage _3 bonus damage_ on his next 3 wand zaps.
|
||||
|
|
|
@ -203,6 +203,10 @@ public class Combo extends Buff implements ActionIndicator.Action {
|
|||
return best;
|
||||
}
|
||||
|
||||
public int getComboCount(){
|
||||
return count;
|
||||
}
|
||||
|
||||
public boolean canUseMove(ComboMove move){
|
||||
if (move == ComboMove.CLOBBER && clobberUsed) return false;
|
||||
if (move == ComboMove.PARRY && parryUsed) return false;
|
||||
|
@ -309,9 +313,14 @@ public class Combo extends Buff implements ActionIndicator.Action {
|
|||
trajectory = new Ballistica(trajectory.collisionPos, trajectory.path.get(trajectory.path.size() - 1), Ballistica.PROJECTILE);
|
||||
//knock them back along that ballistica, ensuring they don't fall into a pit
|
||||
int dist = 2;
|
||||
if (count >= 7 && hero.pointsInTalent(Talent.ENHANCED_COMBO) >= 1){
|
||||
dist ++;
|
||||
Buff.prolong(enemy, Vertigo.class, 3);
|
||||
} else {
|
||||
while (dist > 0 && Dungeon.level.pit[trajectory.path.get(dist)]) {
|
||||
dist--;
|
||||
}
|
||||
}
|
||||
WandOfBlastWave.throwChar(enemy, trajectory, dist, true, false);
|
||||
}
|
||||
break;
|
||||
|
@ -414,9 +423,36 @@ public class Combo extends Buff implements ActionIndicator.Action {
|
|||
final Char enemy = Actor.findChar( cell );
|
||||
if (enemy == null
|
||||
|| !Dungeon.level.heroFOV[cell]
|
||||
|| !((Hero)target).canAttack(enemy)
|
||||
|| target.isCharmedBy( enemy )) {
|
||||
GLog.w(Messages.get(Combo.class, "bad_target"));
|
||||
|
||||
} else if (!((Hero)target).canAttack(enemy)){
|
||||
if (((Hero) target).pointsInTalent(Talent.ENHANCED_COMBO) < 3
|
||||
|| Dungeon.level.distance(target.pos, enemy.pos) > 1 + target.buff(Combo.class).count/3){
|
||||
GLog.w(Messages.get(Combo.class, "bad_target"));
|
||||
} else {
|
||||
Ballistica c = new Ballistica(target.pos, enemy.pos, Ballistica.PROJECTILE);
|
||||
if (c.collisionPos == enemy.pos){
|
||||
target.sprite.jump(target.pos, c.path.get(c.dist-1), new Callback() {
|
||||
@Override
|
||||
public void call() {
|
||||
target.move(c.path.get(c.dist-1));
|
||||
Dungeon.level.occupyCell(target);
|
||||
Dungeon.observe();
|
||||
GameScene.updateFog();
|
||||
target.sprite.attack(cell, new Callback() {
|
||||
@Override
|
||||
public void call() {
|
||||
doAttack(enemy);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
} else {
|
||||
GLog.w(Messages.get(Combo.class, "bad_target"));
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
target.sprite.attack(cell, new Callback() {
|
||||
@Override
|
||||
|
|
|
@ -440,7 +440,9 @@ public class Hero extends Char {
|
|||
return super.defenseVerb();
|
||||
} else {
|
||||
parry.parried = true;
|
||||
if (buff(Combo.class).getComboCount() < 9 || pointsInTalent(Talent.ENHANCED_COMBO) < 2){
|
||||
parry.detach();
|
||||
}
|
||||
return Messages.get(Monk.class, "parried");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -75,7 +75,7 @@ public enum Talent {
|
|||
//Berserker T3
|
||||
ENDLESS_RAGE(11, 3), BERSERKING_STAMINA(12, 3), ENRAGED_CATALYST(13, 3),
|
||||
//Gladiator T3
|
||||
CLEAVE(14, 3), LETHAL_DEFENSE(15, 3), GLADIATOR_T3_3(16, 3),
|
||||
CLEAVE(14, 3), LETHAL_DEFENSE(15, 3), ENHANCED_COMBO(16, 3),
|
||||
|
||||
//Mage T1
|
||||
EMPOWERING_MEAL(32), SCHOLARS_INTUITION(33), TESTED_HYPOTHESIS(34), BACKUP_BARRIER(35),
|
||||
|
@ -468,7 +468,7 @@ public enum Talent {
|
|||
Collections.addAll(tierTalents, ENDLESS_RAGE, BERSERKING_STAMINA, ENRAGED_CATALYST);
|
||||
break;
|
||||
case GLADIATOR:
|
||||
Collections.addAll(tierTalents, CLEAVE, LETHAL_DEFENSE, GLADIATOR_T3_3);
|
||||
Collections.addAll(tierTalents, CLEAVE, LETHAL_DEFENSE, ENHANCED_COMBO);
|
||||
break;
|
||||
case BATTLEMAGE:
|
||||
Collections.addAll(tierTalents, EMPOWERED_STRIKE, MYSTICAL_CHARGE, BATTLEMAGE_T3_3);
|
||||
|
|
Loading…
Reference in New Issue
Block a user