v3.1.0: Warrior balance changes:

- adjusted permissiveness on seal transfer, now requires uncursed again
- shield cooldown increased to 150 from 100
This commit is contained in:
Evan Debenham
2025-05-30 11:14:39 -04:00
parent a77652c58e
commit b788d4a3a2
3 changed files with 9 additions and 21 deletions

View File

@@ -2267,15 +2267,15 @@ items.brokenseal.name=broken seal
items.brokenseal.ac_affix=AFFIX
items.brokenseal.prompt=Select an armor
items.brokenseal.unknown_armor=You must identify whether that armor is cursed or not first.
items.brokenseal.cursed_armor=The seal won't apply to cursed armor.
items.brokenseal.affix=You affix the seal to your armor!
items.brokenseal.desc=A wax seal, affixed to armor as a symbol of valor. It has a faded rune of protection engraved in the center, and is broken in half across the middle.\n\nA memento from his home, the seal helps the warrior persevere. While wearing the seal the warrior will instantly gain shielding when he is about to be damaged to half health or lower.\n\nThe seal can be _affixed to armor,_ and moved between armors. It can carry a single upgrade with it, so long as that upgrade was applied to the armor while the seal was attached to it.
items.brokenseal.inscribed=The seal is inscribed with a _%s._
items.brokenseal.choose_title=Choose a Glyph
items.brokenseal.choose_desc=Both this armor and the broken seal are carrying a glyph. Pick which glyph should be kept.\n\nArmor Glyph: %1$s\nBroken Seal Glyph: %2$s\n\nNote that if you pick the glyph that is currently on the armor, the seal will not be able to transfer it later.
items.brokenseal.choose_curse_warn=_Your armor is cursed but your seal is not, so you cannot choose the seal's glyph!_
items.brokenseal.discover_hint=One of the heroes starts with this item.
items.brokenseal$warriorshield.name=Warrior Shield
items.brokenseal$warriorshield.desc_active=The Warrior's broken seal is currently helping him persevere, granting him shielding on top of his health. There is a 100 turn cooldown after the shielding initially triggers before it can be used again.\n\nThis shield does not decay over time, but will end if no enemies are nearby for a few turns. When it ends, any unused shielding will reduce the cooldown, up to a max of 50%%.\n\nShield remaining: %1$d.\n\nCurrent Cooldown: %2$d.
items.brokenseal$warriorshield.desc_active=The Warrior's broken seal is currently helping him persevere, granting him shielding on top of his health. There is a cooldown after the shielding initially triggers before it can be used again.\n\nThis shield does not decay over time, but will end if no enemies are nearby for a few turns. When it ends, any unused shielding will reduce the cooldown, up to a max of 50%%.\n\nShield remaining: %1$d.\n\nCurrent Cooldown: %2$d.
items.brokenseal$warriorshield.desc_cooldown=The Warrior has recently gained shielding from his broken seal, and must wait until he can benefit from its shielding effect again.\n\nTurns Remaining: %d.
items.dewdrop.name=dewdrop

View File

@@ -126,20 +126,16 @@ public class BrokenSeal extends Item {
if (!armor.cursedKnown){
GLog.w(Messages.get(BrokenSeal.class, "unknown_armor"));
} else if (armor.glyph != null && getGlyph() != null
} else if (armor.cursed && (getGlyph() == null || !getGlyph().curse())){
GLog.w(Messages.get(BrokenSeal.class, "cursed_armor"));
}else if (armor.glyph != null && getGlyph() != null
&& canTransferGlyph()
&& armor.glyph.getClass() != getGlyph().getClass()) {
//cannot apply the seal's non-curse glyph to a curse glyph armor
final boolean sealGlyphApplicable = !armor.glyph.curse() || getGlyph().curse();
String bodyText = Messages.get(BrokenSeal.class, "choose_desc", armor.glyph.name(), getGlyph().name());
if (!sealGlyphApplicable){
bodyText += "\n\n" + Messages.get(BrokenSeal.class, "choose_curse_warn");
}
GameScene.show(new WndOptions(new ItemSprite(ItemSpriteSheet.SEAL),
Messages.get(BrokenSeal.class, "choose_title"),
bodyText,
Messages.get(BrokenSeal.class, "choose_desc", armor.glyph.name(), getGlyph().name()),
armor.glyph.name(),
getGlyph().name()){
@Override
@@ -161,14 +157,6 @@ public class BrokenSeal extends Item {
armor.affixSeal(BrokenSeal.this);
}
@Override
protected boolean enabled(int index) {
if (index == 1 && !sealGlyphApplicable){
return false;
}
return super.enabled(index);
}
@Override
public void hide() {
super.hide();
@@ -267,7 +255,7 @@ public class BrokenSeal extends Item {
private int cooldown = 0;
private int turnsSinceEnemies = 0;
private static int COOLDOWN_START = 100;
private static int COOLDOWN_START = 150;
@Override
public int icon() {

View File

@@ -258,7 +258,7 @@ public class Armor extends EquipableItem {
if (Dungeon.hero.heroClass == HeroClass.WARRIOR && checkSeal() == null){
BrokenSeal seal = oldArmor != null ? oldArmor.checkSeal() : null;
if (seal != null){
if (seal != null && (!cursed || (seal.getGlyph() != null && seal.getGlyph().curse()))){
GameScene.show(new WndOptions(new ItemSprite(ItemSpriteSheet.SEAL),
Messages.titleCase(seal.title()),