v2.0.0: game now remembers if the player immediately un-slots waterskin

This commit is contained in:
Evan Debenham
2022-11-03 14:49:05 -04:00
parent 5651102266
commit e00474ddcf
3 changed files with 27 additions and 4 deletions
@@ -135,6 +135,7 @@ public class SPDSettings extends GameSettings {
public static final String KEY_FLIPTOOLBAR = "flipped_ui"; public static final String KEY_FLIPTOOLBAR = "flipped_ui";
public static final String KEY_FLIPTAGS = "flip_tags"; public static final String KEY_FLIPTAGS = "flip_tags";
public static final String KEY_BARMODE = "toolbar_mode"; 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 //0 = mobile, 1 = mixed (large without inventory in main UI), 2 = large
public static void interfaceSize( int value ){ public static void interfaceSize( int value ){
@@ -185,6 +186,14 @@ public class SPDSettings extends GameSettings {
public static String toolbarMode() { public static String toolbarMode() {
return getString(KEY_BARMODE, PixelScene.landscape() ? "GROUP" : "SPLIT"); 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 //Game State
@@ -26,6 +26,7 @@ import com.shatteredpixel.shatteredpixeldungeon.Badges;
import com.shatteredpixel.shatteredpixeldungeon.Challenges; import com.shatteredpixel.shatteredpixeldungeon.Challenges;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.QuickSlot; 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.ArmorAbility;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.huntress.NaturesPower; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.huntress.NaturesPower;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.huntress.SpiritHawk; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.huntress.SpiritHawk;
@@ -116,10 +117,12 @@ public enum HeroClass {
break; break;
} }
for (int s = 0; s < QuickSlot.SIZE; s++){ if (SPDSettings.quickslotWaterskin()) {
if (Dungeon.quickslot.getItem(s) == null){ for (int s = 0; s < QuickSlot.SIZE; s++) {
Dungeon.quickslot.setSlot(s, waterskin); if (Dungeon.quickslot.getItem(s) == null) {
break; Dungeon.quickslot.setSlot(s, waterskin);
break;
}
} }
} }
@@ -24,10 +24,13 @@ package com.shatteredpixel.shatteredpixeldungeon.ui;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.QuickSlot; import com.shatteredpixel.shatteredpixeldungeon.QuickSlot;
import com.shatteredpixel.shatteredpixeldungeon.SPDAction; 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.Actor;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LostInventory; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LostInventory;
import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.items.Waterskin;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
@@ -268,6 +271,14 @@ public class QuickSlotButton extends Button {
public static void set(int slotNum, Item item){ public static void set(int slotNum, Item item){
Dungeon.quickslot.setSlot( slotNum , item ); Dungeon.quickslot.setSlot( slotNum , item );
refresh(); 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){ private static Item select(int slotNum){