v2.4.0: replaced the two T1 on-id talents with damage boost talents
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 6.4 KiB |
@@ -591,6 +591,10 @@ actors.hero.herosubclass.monk_short_desc=The _Monk_ builds energy while fighting
|
||||
actors.hero.herosubclass.monk_desc=The Monk is a master of physical technique. As she defeats enemies, she gains energy which can be used on a variety of defensive and utility-focused abilities. This energy does not fade over time, but has a cap based on the Monk's level.
|
||||
|
||||
##talents
|
||||
actors.hero.talent$provokedangertracker.name=provoked anger
|
||||
actors.hero.talent$provokedangertracker.desc=The Warrior has recently lost his shielding, his next physical attack will deal bonus damage.\n\nTurns remaining: %s.
|
||||
actors.hero.talent$lingeringmagictracker.name=lingering magic
|
||||
actors.hero.talent$lingeringmagictracker.desc=The Mage has recently used a staff or wand, his next physical attack will deal bonus damage.\n\nTurns remaining: %s.
|
||||
actors.hero.talent$followupstriketracker.name=followup strike
|
||||
actors.hero.talent$followupstriketracker.desc=The Huntress has recently attacked an enemy with a thrown weapon, her next melee attack against the same target will have boosted damage.\n\nTurns remaining: %s.
|
||||
actors.hero.talent$patientstriketracker.name=patient strike
|
||||
@@ -620,8 +624,8 @@ actors.hero.talent.hearty_meal.title=hearty meal
|
||||
actors.hero.talent.hearty_meal.desc=_+1:_ Eating food heals the Warrior for _3 HP_ when he is at or below 30% health.\n\n_+2:_ Eating food heals the Warrior for _5 HP_ when is at or below 30% health.
|
||||
actors.hero.talent.veterans_intuition.title=veteran's intuition
|
||||
actors.hero.talent.veterans_intuition.desc=_+1:_ The Warrior identifies weapons _1.75x faster_ and armor _2.5x faster_.\n\n_+2:_ The Warrior identifies weapons _2.5x faster_ and armor _when he equips it_.
|
||||
actors.hero.talent.test_subject.title=test subject
|
||||
actors.hero.talent.test_subject.desc=_+1:_ Whenever the Warrior identifies an item, he heals for _2 HP_.\n\n_+2:_ Whenever the Warrior identifies an item, he heals for _3 HP_.
|
||||
actors.hero.talent.provoked_anger.title=provoked anger
|
||||
actors.hero.talent.provoked_anger.desc=_+1:_ When the Warrior's shielding breaks, his next physical attack will deal _1-2 bonus damage_.\n\n_+2:_ When the Warrior's shielding breaks, his next physical attack will deal _2 bonus damage_.
|
||||
actors.hero.talent.iron_will.title=iron will
|
||||
actors.hero.talent.iron_will.desc=_+1:_ The max shield provided by the Warrior's seal is _increased by 1_.\n\n_+2:_ The max shield provided by the Warrior's seal is _increased by 2_.
|
||||
actors.hero.talent.iron_will.meta_desc=_If this talent is gained by a different hero_ it will grant its shielding benefit without the broken seal.
|
||||
@@ -684,8 +688,8 @@ 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.
|
||||
actors.hero.talent.scholars_intuition.title=scholar's intuition
|
||||
actors.hero.talent.scholars_intuition.desc=_+1:_ The Mage identifies wands _3x faster_.\n\n_+2:_ The Mage identifies wands _when he uses them_.
|
||||
actors.hero.talent.tested_hypothesis.title=tested hypothesis
|
||||
actors.hero.talent.tested_hypothesis.desc=_+1:_ Whenever the Mage identifies an item, he gains _2 turns of wand recharging_.\n\n_+2:_ Whenever the Mage identifies an item, he gains _3 turns of wand recharging_.
|
||||
actors.hero.talent.lingering_magic.title=lingering magic
|
||||
actors.hero.talent.lingering_magic.desc=_+1:_ When the Mage zaps with a wand or staff, his next physical attack deals _1-2 bonus damage_.\n\n_+2:_ When the Mage zaps with a wand or staff, his next physical attack deals _2 bonus damage_.
|
||||
actors.hero.talent.backup_barrier.title=backup barrier
|
||||
actors.hero.talent.backup_barrier.desc=_+1:_ The Mage gains _3 shielding_ whenever he spends the last charge in his staff.\n\n_+2:_ The Mage gains _5 shielding_ whenever he spends the last charge in his staff.
|
||||
actors.hero.talent.backup_barrier.meta_desc=_If this talent is gained by a different hero_ it will instead trigger from the hero's highest level wand.
|
||||
|
||||
@@ -773,6 +773,12 @@ public abstract class Char extends Actor {
|
||||
shielded -= dmg;
|
||||
HP -= dmg;
|
||||
|
||||
if (HP > 0 && shielded > 0 && shielding() == 0){
|
||||
if (this instanceof Hero && ((Hero) this).hasTalent(Talent.PROVOKED_ANGER)){
|
||||
Buff.affect(this, Talent.ProvokedAngerTracker.class, 5f);
|
||||
}
|
||||
}
|
||||
|
||||
if (HP > 0 && buff(Grim.GrimTracker.class) != null){
|
||||
|
||||
float finalChance = buff(Grim.GrimTracker.class).maxChance;
|
||||
|
||||
@@ -85,7 +85,7 @@ import java.util.LinkedHashMap;
|
||||
public enum Talent {
|
||||
|
||||
//Warrior T1
|
||||
HEARTY_MEAL(0), VETERANS_INTUITION(1), TEST_SUBJECT(2), IRON_WILL(3),
|
||||
HEARTY_MEAL(0), VETERANS_INTUITION(1), PROVOKED_ANGER(2), IRON_WILL(3),
|
||||
//Warrior T2
|
||||
IRON_STOMACH(4), LIQUID_WILLPOWER(5), RUNIC_TRANSFERENCE(6), LETHAL_MOMENTUM(7), IMPROVISED_PROJECTILES(8),
|
||||
//Warrior T3
|
||||
@@ -102,7 +102,7 @@ public enum Talent {
|
||||
SUSTAINED_RETRIBUTION(23, 4), SHRUG_IT_OFF(24, 4), EVEN_THE_ODDS(25, 4),
|
||||
|
||||
//Mage T1
|
||||
EMPOWERING_MEAL(32), SCHOLARS_INTUITION(33), TESTED_HYPOTHESIS(34), BACKUP_BARRIER(35),
|
||||
EMPOWERING_MEAL(32), SCHOLARS_INTUITION(33), LINGERING_MAGIC(34), BACKUP_BARRIER(35),
|
||||
//Mage T2
|
||||
ENERGIZING_MEAL(36), INSCRIBED_POWER(37), WAND_PRESERVATION(38), ARCANE_VISION(39), SHIELD_BATTERY(40),
|
||||
//Mage T3
|
||||
@@ -658,21 +658,23 @@ public enum Talent {
|
||||
|
||||
//note that IDing can happen in alchemy scene, so be careful with VFX here
|
||||
public static void onItemIdentified( Hero hero, Item item ){
|
||||
if (hero.hasTalent(TEST_SUBJECT)){
|
||||
//heal for 2/3 HP
|
||||
hero.HP = Math.min(hero.HP + 1 + hero.pointsInTalent(TEST_SUBJECT), hero.HT);
|
||||
if (hero.sprite != null) {
|
||||
hero.sprite.showStatusWithIcon(CharSprite.POSITIVE, Integer.toString(1 + hero.pointsInTalent(TEST_SUBJECT)), FloatingText.HEALING);
|
||||
}
|
||||
}
|
||||
if (hero.hasTalent(TESTED_HYPOTHESIS)){
|
||||
//2/3 turns of wand recharging
|
||||
Buff.affect(hero, Recharging.class, 1f + hero.pointsInTalent(TESTED_HYPOTHESIS));
|
||||
ScrollOfRecharging.charge(hero);
|
||||
}
|
||||
//currently no talents that trigger here, it wasn't a very popular trigger =(
|
||||
}
|
||||
|
||||
public static int onAttackProc( Hero hero, Char enemy, int dmg ){
|
||||
|
||||
if (hero.hasTalent(Talent.PROVOKED_ANGER)
|
||||
&& hero.buff(ProvokedAngerTracker.class) != null){
|
||||
dmg += Random.IntRange(hero.pointsInTalent(Talent.PROVOKED_ANGER) , 2);
|
||||
hero.buff(ProvokedAngerTracker.class).detach();
|
||||
}
|
||||
|
||||
if (hero.hasTalent(Talent.LINGERING_MAGIC)
|
||||
&& hero.buff(LingeringMagicTracker.class) != null){
|
||||
dmg += Random.IntRange(hero.pointsInTalent(Talent.LINGERING_MAGIC) , 2);
|
||||
hero.buff(LingeringMagicTracker.class).detach();
|
||||
}
|
||||
|
||||
if (hero.hasTalent(Talent.SUCKER_PUNCH)
|
||||
&& enemy instanceof Mob && ((Mob) enemy).surprisedBy(hero)
|
||||
&& enemy.buff(SuckerPunchTracker.class) == null){
|
||||
@@ -719,6 +721,18 @@ public enum Talent {
|
||||
return dmg;
|
||||
}
|
||||
|
||||
public static class ProvokedAngerTracker extends FlavourBuff{
|
||||
{ type = Buff.buffType.POSITIVE; }
|
||||
public int icon() { return BuffIndicator.WEAPON; }
|
||||
public void tintIcon(Image icon) { icon.hardlight(1.43f, 1.43f, 1.43f); }
|
||||
public float iconFadePercent() { return Math.max(0, 1f - (visualcooldown() / 5)); }
|
||||
}
|
||||
public static class LingeringMagicTracker extends FlavourBuff{
|
||||
{ type = Buff.buffType.POSITIVE; }
|
||||
public int icon() { return BuffIndicator.WEAPON; }
|
||||
public void tintIcon(Image icon) { icon.hardlight(1.43f, 1.43f, 0f); }
|
||||
public float iconFadePercent() { return Math.max(0, 1f - (visualcooldown() / 5)); }
|
||||
}
|
||||
public static class SuckerPunchTracker extends Buff{};
|
||||
public static class FollowupStrikeTracker extends FlavourBuff{
|
||||
public int object;
|
||||
@@ -759,10 +773,10 @@ public enum Talent {
|
||||
//tier 1
|
||||
switch (cls){
|
||||
case WARRIOR: default:
|
||||
Collections.addAll(tierTalents, HEARTY_MEAL, VETERANS_INTUITION, TEST_SUBJECT, IRON_WILL);
|
||||
Collections.addAll(tierTalents, HEARTY_MEAL, VETERANS_INTUITION, PROVOKED_ANGER, IRON_WILL);
|
||||
break;
|
||||
case MAGE:
|
||||
Collections.addAll(tierTalents, EMPOWERING_MEAL, SCHOLARS_INTUITION, TESTED_HYPOTHESIS, BACKUP_BARRIER);
|
||||
Collections.addAll(tierTalents, EMPOWERING_MEAL, SCHOLARS_INTUITION, LINGERING_MAGIC, BACKUP_BARRIER);
|
||||
break;
|
||||
case ROGUE:
|
||||
Collections.addAll(tierTalents, CACHED_RATIONS, THIEFS_INTUITION, SUCKER_PUNCH, PROTECTIVE_SHADOWS);
|
||||
@@ -934,6 +948,9 @@ public enum Talent {
|
||||
|
||||
private static final HashSet<String> removedTalents = new HashSet<>();
|
||||
static{
|
||||
//v2.4.0
|
||||
removedTalents.add("TEST_SUBJECT");
|
||||
removedTalents.add("TESTED_HYPOTHESIS");
|
||||
//v2.2.0
|
||||
removedTalents.add("EMPOWERING_SCROLLS");
|
||||
}
|
||||
|
||||
@@ -445,8 +445,14 @@ public abstract class Wand extends Item {
|
||||
&& !Dungeon.hero.belongings.contains(this)){
|
||||
|
||||
Buff.prolong(Dungeon.hero, Talent.EmpoweredStrikeTracker.class, 10f);
|
||||
|
||||
}
|
||||
|
||||
if (Dungeon.hero.hasTalent(Talent.LINGERING_MAGIC)
|
||||
&& charger != null && charger.target == Dungeon.hero){
|
||||
|
||||
Buff.affect(Dungeon.hero, Talent.LingeringMagicTracker.class, 5f);
|
||||
}
|
||||
|
||||
Invisibility.dispel();
|
||||
updateQuickslot();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user