58 lines
1.7 KiB
GDScript
58 lines
1.7 KiB
GDScript
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()
|