v3.3.0: added a warning to trinket energizing

This commit is contained in:
Evan Debenham
2025-10-30 13:52:49 -04:00
parent 447aba7b1e
commit 08a581be4a
3 changed files with 54 additions and 5 deletions

View File

@@ -62,6 +62,9 @@ windows.wndenergizeitem.prompt=Energize an Item
windows.wndenergizeitem.energize=Turn into %d energy
windows.wndenergizeitem.energize_1=Turn 1 into %d energy
windows.wndenergizeitem.energize_all=Turn all into %d energy
windows.wndenergizeitem.trinket_warn=Are you sure you want to energize your trinket? You'll get 5 energy back but _the trinket will be permanently lost!_
windows.wndenergizeitem.trinket_yes=Yes, energize it
windows.wndenergizeitem.trinket_no=No, nevermind
windows.wnderror.title=ERROR

View File

@@ -28,6 +28,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Shopkeeper;
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.items.stones.Runestone;
import com.shatteredpixel.shatteredpixeldungeon.items.trinkets.Trinket;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.MissileWeapon;
import com.shatteredpixel.shatteredpixeldungeon.journal.Catalog;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
@@ -42,6 +43,7 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextBlock;
import com.shatteredpixel.shatteredpixeldungeon.windows.WndBag;
import com.shatteredpixel.shatteredpixeldungeon.windows.WndEnergizeItem;
import com.shatteredpixel.shatteredpixeldungeon.windows.WndInfoItem;
import com.shatteredpixel.shatteredpixeldungeon.windows.WndOptions;
import com.shatteredpixel.shatteredpixeldungeon.windows.WndTradeItem;
import com.shatteredpixel.shatteredpixeldungeon.windows.WndUpgrade;
import com.watabou.noosa.audio.Sample;
@@ -213,9 +215,30 @@ public class Alchemize extends Spell {
RedButton btnEnergize = new RedButton(Messages.get(this, "energize", item.energyVal())) {
@Override
protected void onClick() {
WndEnergizeItem.energizeAll(item);
hide();
consumeAlchemize();
if (item instanceof Trinket){
GameScene.show(new WndOptions(new ItemSprite(item), Messages.titleCase(item.name()),
Messages.get(WndEnergizeItem.class, "trinket_warn"),
Messages.get(WndEnergizeItem.class, "trinket_yes"),
Messages.get(WndEnergizeItem.class, "trinket_no")){
@Override
protected void onSelect(int index) {
if (index == 0) {
WndEnergizeItem.energizeAll(item);
}
}
@Override
public void hide() {
super.hide();
WndAlchemizeItem.this.hide();
}
});
} else {
WndEnergizeItem.energizeAll(item);
hide();
consumeAlchemize();
}
}
};
btnEnergize.setRect(0, pos + GAP, width, BTN_HEIGHT);

View File

@@ -27,6 +27,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.items.EnergyCrystal;
import com.shatteredpixel.shatteredpixeldungeon.items.EquipableItem;
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.items.trinkets.Trinket;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.scenes.AlchemyScene;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
@@ -34,6 +35,7 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.watabou.noosa.Game;
public class WndEnergizeItem extends WndInfoItem {
@@ -54,8 +56,29 @@ public class WndEnergizeItem extends WndInfoItem {
RedButton btnEnergize = new RedButton( Messages.get(this, "energize", item.energyVal()) ) {
@Override
protected void onClick() {
energizeAll( item );
hide();
if (item instanceof Trinket){
Game.scene().addToFront(new WndOptions(new ItemSprite(item), Messages.titleCase(item.name()),
Messages.get(WndEnergizeItem.class, "trinket_warn"),
Messages.get(WndEnergizeItem.class, "trinket_yes"),
Messages.get(WndEnergizeItem.class, "trinket_no")){
@Override
protected void onSelect(int index) {
if (index == 0) {
energizeAll(item);
}
}
@Override
public void hide() {
super.hide();
WndEnergizeItem.this.hide();
}
});
} else {
energizeAll(item);
hide();
}
}
};
btnEnergize.setRect( 0, pos + GAP, width, BTN_HEIGHT );