Cow_Life_Sim_RPG/NPCs/JuiceMoose/JuiceMoose.gd

63 lines
1.4 KiB
GDScript

extends NPC
var timeUntilNextJuiceDrink = 0
var rng = RandomNumberGenerator.new()
var sugarItem = preload("res://Items/Foods/Snack/Sugar.gd")
var sugaringMenu
func _ready():
characterName = "Yuri"
pronouns = "she/her"
dialogueResource = preload("res://NPCs/DefaultDialogue.dialogue")
set_next_juice_drink_time()
sugaringMenu = preload("res://UI/Sugaring/SugaringMenu.tscn").instantiate()
add_child(sugaringMenu)
sugaringMenu.hide()
func _process(delta):
if $Sprite.animation != "DrinkingJuice":
timeUntilNextJuiceDrink -= delta
if timeUntilNextJuiceDrink <= 0:
drink_juice()
func sugar_check():
if InventoryManager.check_if_in_inventory(sugarItem.new()):
return true
else:
return false
func open_sugaring_menu():
sugaringMenu.popup_centered()
sugaringMenu.opened()
func take_sugar():
InventoryManager.spend_item(sugarItem.new())
func complete_quest():
QuestManager.complete_quest("Sugar for Yuri")
func set_next_juice_drink_time():
timeUntilNextJuiceDrink = rng.randf_range(4, 9)
func get_dialogue():
return load("res://NPCs/JuiceMoose/JuiceMoose.dialogue")
func drink_juice():
$JuiceSprite.visible = true
$JuiceSprite.frame = 0
$JuiceSprite.play("default")
$Sprite.play("DrinkingJuice")
func juice_drank():
$JuiceSprite.visible = false
$Sprite.play("default")
set_next_juice_drink_time()
func _on_juice_sprite_animation_finished():
juice_drank()