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_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
@@ -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;
}
}
}
@@ -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){