extends NPC var returnPhrases = ["Mine's better!", "You can have this one.", "This one's yours."] var returnPhraseIndex = 0 func _ready(): dialogueResource = load("res://NPCs/Beach/Seal/Seal.dialogue") state_check() func note_check(): if InventoryManager.get_item_count_by_name("Basket Plan 2", "keyItems") > 0: return true else: return false func give_note(): var noteItem = preload("res://Items/Paper/BasketPlan2.gd").new() InventoryManager.add_item_to_inventory(noteItem, 1, "keyItems") MessageManager.item_popup(noteItem.duplicate()) state_check() func state_check(): if SaveManager.get_save_value("sealBallRetrieved", false): $SealBall.visible = true else: $SealBall.visible = false if SaveManager.get_save_value("ambiQuestStarted", false): if InventoryManager.get_item_count_by_name("Basket Plan 2", "keyItems") > 0: $Sprite.frame = 0 else: $Sprite.frame = 1 else: $Sprite.frame = 0 func ball_caught(): if !SaveManager.get_save_value("sealBallRetrieved", false): SaveManager.set_save_value("sealBallRetrieved", true) MessageManager.addMessage("Finally!", self, "Bradrek", Color.YELLOW) get_tree().get_root().get_node("MainGame/PuzzleCompleteAudio").play() else: MessageManager.addMessage(returnPhrases[returnPhraseIndex], self, "Bradrek", Color.YELLOW) returnPhraseIndex += 1 if returnPhraseIndex >= returnPhrases.size(): returnPhraseIndex = 0 var ballItem = preload("res://Items/Toys/Beach/Ball.gd").new() InventoryManager.add_item_to_inventory(ballItem) MessageManager.item_popup(ballItem.duplicate()) state_check() func _on_ball_catch_area_body_entered(body): if body is Ball: body.queue_free() ball_caught()