extends Window var basketInventoryName func _ready(): basketInventoryName = get_parent().basketInvName %InventoryDisplayer.fiveButtons = true %InventoryDisplayer.allButtons = true %InventoryDisplayer.buttonPressed.connect(store_item_request) %InventoryDisplayer.fiveButtonPressed.connect(store_item_request.bind(5)) %InventoryDisplayer.allButtonPressed.connect(store_item_request.bind(999999)) %InventoryDisplayer.set_title("Inventory") %BasketInventoryDisplayer.fiveButtons = true %BasketInventoryDisplayer.allButtons = true %BasketInventoryDisplayer.buttonPressed.connect(withdraw_item_request) %BasketInventoryDisplayer.fiveButtonPressed.connect(withdraw_item_request.bind(5)) %BasketInventoryDisplayer.allButtonPressed.connect(withdraw_item_request.bind(999999)) %BasketInventoryDisplayer.set_title("Basket Inventory") update_displays() func opened(): get_tree().paused = true update_displays() func update_displays(): update_inventory_displays() update_space_display() func update_space_display(): var basketSpace = get_parent().get_current_basket_space() var basketSpaceUsed = get_parent().get_used_space() %SpaceLabel.text = "Space: " + str(basketSpaceUsed) + "/" + str(basketSpace) func update_inventory_displays(): %InventoryDisplayer.inventory = InventoryManager.get_inventory() %InventoryDisplayer.update_display() %BasketInventoryDisplayer.inventory = InventoryManager.get_inventory(basketInventoryName) %BasketInventoryDisplayer.update_display() func store_item_request(item, amount = 1): var itemsInInv = InventoryManager.get_item_count(item) if itemsInInv < amount: amount = itemsInInv if not (SaveManager.get_save_value("ambiQuestComplete", false) and get_parent().infinite_check(item)): var basketSpaceLeft = get_parent().get_basket_space_left() if amount > basketSpaceLeft: amount = basketSpaceLeft if amount > 0: store_item(item, amount) else: no_room_message() func no_room_message(): pass func store_item(item, amount): InventoryManager.remove_item_from_inventory(item, amount) var basketItem:Item = get_parent().get_current_basket() if Item.modifications.Wet in basketItem.itemModifications: var newItem:Item = ItemSoaking.wet_item(item) if amount >= 100 and !newItem.equals(item): AchievementManager.complete_achievement("Leaky Basket") InventoryManager.add_item_to_inventory(item, amount, basketInventoryName) update_displays() func withdraw_item_request(item, amount = 1): var itemsInStorage = InventoryManager.get_item_count(item, basketInventoryName) if itemsInStorage < amount: amount = itemsInStorage if amount > 0: withdraw_item(item, amount) func withdraw_item(item, amount): InventoryManager.remove_item_from_inventory(item, amount, basketInventoryName) InventoryManager.add_item_to_inventory(item, amount) update_displays() func achievement_checks(): var achievementSets = [["1 Fancy Skeleton", ["Crystal Bone", "Dirt Bone", "Haunted Bone", "Licorice Bone", "Parallelogram Bone", "Pretzel Bone", "Redby Bone", "Rex Bone", "Rock Bone", "Square Bone", "Zucchini Bone"], false], ["Portable Biodome", ["Amethyst Deceiver", "Blue Pinkgill", "Hairy Curtain Crust", "Lions Mane", "Mycena Chlorophos", "Veiled Lady", "Wolfs Milk Slime Mould"], false] ] for achievementSet in achievementSets: var achievementName = achievementSet[0] var modified = achievementSet[2] var itemNames = achievementSet[1] var allAccountedFor = true for itemName in itemNames: var itemsInInv = InventoryManager.get_item_count_by_name(itemName, basketInventoryName, modified) if itemsInInv <= 0: allAccountedFor = false break if allAccountedFor: AchievementManager.complete_achievement(achievementName) #Wustard Lover Achievement var basketItem = get_parent().get_current_basket() if basketItem != null and basketItem.get_name(false) == "Wustard Basket": var wustardItems = 0 var basketInv = InventoryManager.get_inventory(basketInventoryName) for item:Item in basketInv.items: if item.get_name().contains("Wustard") and !item.get_name().contains("Empty"): wustardItems += 1 if wustardItems >= 5: AchievementManager.complete_achievement("Wustard Lover") break func _on_leave_button_pressed(): achievement_checks() get_tree().paused = false hide()