63 lines
1.4 KiB
GDScript
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()
|