diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/SPDSettings.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/SPDSettings.java index 4e2c9c76b..bb0fe0d3c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/SPDSettings.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/SPDSettings.java @@ -135,6 +135,7 @@ public class SPDSettings extends GameSettings { public static final String KEY_FLIPTOOLBAR = "flipped_ui"; public static final String KEY_FLIPTAGS = "flip_tags"; public static final String KEY_BARMODE = "toolbar_mode"; + public static final String KEY_SLOTWATERSKIN= "quickslot_waterskin"; //0 = mobile, 1 = mixed (large without inventory in main UI), 2 = large public static void interfaceSize( int value ){ @@ -185,6 +186,14 @@ public class SPDSettings extends GameSettings { public static String toolbarMode() { return getString(KEY_BARMODE, PixelScene.landscape() ? "GROUP" : "SPLIT"); } + + public static void quickslotWaterskin( boolean value ){ + put( KEY_SLOTWATERSKIN, value); + } + + public static boolean quickslotWaterskin(){ + return getBoolean( KEY_SLOTWATERSKIN, true ); + } //Game State diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/HeroClass.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/HeroClass.java index 953b141ea..77613b64f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/HeroClass.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/HeroClass.java @@ -26,6 +26,7 @@ import com.shatteredpixel.shatteredpixeldungeon.Badges; import com.shatteredpixel.shatteredpixeldungeon.Challenges; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.QuickSlot; +import com.shatteredpixel.shatteredpixeldungeon.SPDSettings; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.ArmorAbility; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.huntress.NaturesPower; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.huntress.SpiritHawk; @@ -116,10 +117,12 @@ public enum HeroClass { break; } - for (int s = 0; s < QuickSlot.SIZE; s++){ - if (Dungeon.quickslot.getItem(s) == null){ - Dungeon.quickslot.setSlot(s, waterskin); - break; + if (SPDSettings.quickslotWaterskin()) { + for (int s = 0; s < QuickSlot.SIZE; s++) { + if (Dungeon.quickslot.getItem(s) == null) { + Dungeon.quickslot.setSlot(s, waterskin); + break; + } } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/QuickSlotButton.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/QuickSlotButton.java index 4299474ef..e4cc6b887 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/QuickSlotButton.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/QuickSlotButton.java @@ -24,10 +24,13 @@ package com.shatteredpixel.shatteredpixeldungeon.ui; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.QuickSlot; import com.shatteredpixel.shatteredpixeldungeon.SPDAction; +import com.shatteredpixel.shatteredpixeldungeon.SPDSettings; +import com.shatteredpixel.shatteredpixeldungeon.Statistics; import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LostInventory; import com.shatteredpixel.shatteredpixeldungeon.items.Item; +import com.shatteredpixel.shatteredpixeldungeon.items.Waterskin; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; @@ -268,6 +271,14 @@ public class QuickSlotButton extends Button { public static void set(int slotNum, Item item){ Dungeon.quickslot.setSlot( slotNum , item ); refresh(); + boolean containsWaterskin = false; + for (int i = 0; i < instance.length; i++) { + if (select(i) instanceof Waterskin) containsWaterskin = true; + } + //Remember if the hero adds/removes the waterskin as one of their first actions. + if (Statistics.duration + Actor.now() <= 10){ + SPDSettings.quickslotWaterskin(containsWaterskin); + } } private static Item select(int slotNum){