From adfaa59cc8d8951d8095ee5c6665318ea26a8b43 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Mon, 14 Mar 2022 18:00:04 -0400 Subject: [PATCH] v1.2.0: fixed inconsistencies with inventory pane and lost inventory --- .../shatteredpixeldungeon/ui/InventoryPane.java | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/InventoryPane.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/InventoryPane.java index 134aaf63d..da7e206a4 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/InventoryPane.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/InventoryPane.java @@ -26,6 +26,7 @@ import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.SPDAction; import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LostInventory; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Belongings; import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.bags.Bag; @@ -275,7 +276,7 @@ public class InventoryPane extends Component { Belongings stuff = Dungeon.hero.belongings; - if (lastBag == null || !stuff.contains(lastBag)){ + if (lastBag == null || !stuff.getBags().contains(lastBag)){ lastBag = stuff.backpack; } @@ -332,15 +333,18 @@ public class InventoryPane extends Component { } } + boolean lostInvent = Dungeon.hero.buff(LostInventory.class) != null; for (InventorySlot b : equipped){ b.enable(lastEnabled && !(b.item() instanceof WndBag.Placeholder) - && (selector == null || selector.itemSelectable(b.item()))); + && (selector == null || selector.itemSelectable(b.item())) + && (!lostInvent || b.item().keptThoughLostInvent)); } for (InventorySlot b : bagItems){ b.enable(lastEnabled && b.item() != null - && (selector == null || selector.itemSelectable(b.item()))); + && (selector == null || selector.itemSelectable(b.item())) + && (!lostInvent || b.item().keptThoughLostInvent)); } for (BagButton b : bags){ b.enable(lastEnabled); @@ -408,15 +412,18 @@ public class InventoryPane extends Component { if (lastEnabled != (Dungeon.hero.ready || !Dungeon.hero.isAlive())) { lastEnabled = (Dungeon.hero.ready || !Dungeon.hero.isAlive()); + boolean lostInvent = Dungeon.hero.buff(LostInventory.class) != null; for (InventorySlot b : equipped){ b.enable(lastEnabled && !(b.item() instanceof WndBag.Placeholder) - && (selector == null || selector.itemSelectable(b.item()))); + && (selector == null || selector.itemSelectable(b.item())) + && (!lostInvent || b.item().keptThoughLostInvent)); } for (InventorySlot b : bagItems){ b.enable(lastEnabled && b.item() != null - && (selector == null || selector.itemSelectable(b.item()))); + && (selector == null || selector.itemSelectable(b.item())) + && (!lostInvent || b.item().keptThoughLostInvent)); } for (BagButton b : bags){ b.enable(lastEnabled);