Cow_Life_Sim_RPG/NPCs/Beach/Seal/Seal.gd

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()