v3.1.0: adjusted lethal defence talent to instead affect shield CD

This commit is contained in:
Evan Debenham
2025-04-20 19:25:11 -04:00
parent 374df40408
commit 00a82e2e69
3 changed files with 13 additions and 19 deletions

View File

@@ -935,7 +935,7 @@ actors.hero.talent.enraged_catalyst.desc=_+1:_ Enchantments and curses on the Be
actors.hero.talent.cleave.title=cleave 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 _15 turns_.\n\n_+2:_ When the Gladiator kills an enemy, the combo cooldown for his next hit is increased to _30 turns_.\n\n_+3:_ When the Gladiator kills an enemy, the combo cooldown for his next hit is increased to _45 turns_. actors.hero.talent.cleave.desc=_+1:_ When the Gladiator kills an enemy, the combo cooldown for his next hit is increased to _15 turns_.\n\n_+2:_ When the Gladiator kills an enemy, the combo cooldown for his next hit is increased to _30 turns_.\n\n_+3:_ When the Gladiator kills an enemy, the combo cooldown for his next hit is increased to _45 turns_.
actors.hero.talent.lethal_defense.title=lethal defense 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 gains _7 shielding_.\n\n_+2:_ When the Gladiator kills an enemy with a combo move, he gains _13 shielding_.\n\n_+3:_ When the Gladiator kills an enemy with a combo move, he gains _20 shielding_. actors.hero.talent.lethal_defense.desc=_+1:_ When the Gladiator kills an enemy with a combo move, the cooldown on his broken seal shielding is _reduced by 33%_.\n\n_+2:_ When the Gladiator kills an enemy with a combo move, the cooldown on his broken seal shielding is _reduced by 67%_.\n\n_+3:_ When the Gladiator kills an enemy with a combo move, the cooldown on his broken seal shielding is _reduced by 100%_.\n\nThe shield cooldown can be reduced to at low as -100% this way, which means it will immediately be available again once it is activated.
actors.hero.talent.enhanced_combo.title=enhanced combo 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.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.

View File

@@ -29,7 +29,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.DwarfKing; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.DwarfKing;
import com.shatteredpixel.shatteredpixeldungeon.effects.FloatingText; import com.shatteredpixel.shatteredpixeldungeon.items.BrokenSeal;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfBlastWave; import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfBlastWave;
import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica; import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
@@ -410,10 +410,10 @@ public class Combo extends Buff implements ActionIndicator.Action {
ch.sprite.bloodBurstA(target.sprite.center(), aoeHit); ch.sprite.bloodBurstA(target.sprite.center(), aoeHit);
ch.sprite.flash(); ch.sprite.flash();
if (!ch.isAlive() && hero.hasTalent(Talent.LETHAL_DEFENSE)) { if (!ch.isAlive()
int shieldToGive = Math.round(6.67f*hero.pointsInTalent(Talent.LETHAL_DEFENSE)); && hero.hasTalent(Talent.LETHAL_DEFENSE)
hero.sprite.showStatusWithIcon(CharSprite.POSITIVE, Integer.toString(shieldToGive), FloatingText.SHIELDING); && hero.buff(BrokenSeal.WarriorShield.class) != null) {
Buff.affect(hero, Barrier.class).setShield(shieldToGive); hero.buff(BrokenSeal.WarriorShield.class).reduceCooldown(hero.pointsInTalent(Talent.LETHAL_DEFENSE)/3f);
} }
} }
} }
@@ -466,9 +466,7 @@ public class Combo extends Buff implements ActionIndicator.Action {
if (!enemy.isAlive() || (!wasAlly && enemy.alignment == target.alignment)) { if (!enemy.isAlive() || (!wasAlly && enemy.alignment == target.alignment)) {
if (hero.hasTalent(Talent.LETHAL_DEFENSE)){ if (hero.hasTalent(Talent.LETHAL_DEFENSE)){
int shieldToGive = Math.round(6.67f * hero.pointsInTalent(Talent.LETHAL_DEFENSE)); hero.buff(BrokenSeal.WarriorShield.class).reduceCooldown(hero.pointsInTalent(Talent.LETHAL_DEFENSE)/3f);
hero.sprite.showStatusWithIcon(CharSprite.POSITIVE, Integer.toString(shieldToGive), FloatingText.SHIELDING);
Buff.affect(hero, Barrier.class).setShield(shieldToGive);
} }
} }

View File

@@ -325,7 +325,6 @@ public class BrokenSeal extends Item {
if (shielding() > 0){ if (shielding() > 0){
if (Dungeon.hero.visibleEnemies() == 0){ if (Dungeon.hero.visibleEnemies() == 0){
turnsSinceEnemies++; turnsSinceEnemies++;
//TODO
if (turnsSinceEnemies >= 5){ if (turnsSinceEnemies >= 5){
float percentLeft = shielding() / (float)maxShield(); float percentLeft = shielding() / (float)maxShield();
cooldown -= COOLDOWN_START*(percentLeft/2f); //max of 50% cooldown refund cooldown -= COOLDOWN_START*(percentLeft/2f); //max of 50% cooldown refund
@@ -345,21 +344,18 @@ public class BrokenSeal extends Item {
} }
public synchronized void activate() { public synchronized void activate() {
setShield(maxShield()); incShield(maxShield());
cooldown = COOLDOWN_START; cooldown += COOLDOWN_START;
turnsSinceEnemies = 0; turnsSinceEnemies = 0;
} }
public boolean coolingDown(){ public boolean coolingDown(){
return cooldown > 0; return cooldown > 0;
} }
public synchronized void supercharge(int maxShield){ public void reduceCooldown(float percentage){
if (maxShield > shielding()){ cooldown -= Math.round(COOLDOWN_START*percentage);
setShield(maxShield); cooldown = Math.max(cooldown, -COOLDOWN_START);
}
cooldown = COOLDOWN_START;
turnsSinceEnemies = 0;
} }
public synchronized void setArmor(Armor arm){ public synchronized void setArmor(Armor arm){