Cow_Life_Sim_RPG/NPCs/WitchCow/WitchCow.gd

78 lines
1.9 KiB
GDScript

extends NPC
var animDelayTimer = 0
var rng = RandomNumberGenerator.new()
var juiceLakeDrinkingCutscene = preload("res://Cutscenes/DrinkingJuiceLake/JuiceLakeCutscene.tscn")
var strawItemClass = preload("res://Items/Dishes/Straw.gd")
var strawItem
var yelledPhrases = ["Adventurer :)", "Come here :)", "Get over here :)"]
var yelledPhrasesIndex = 0
var yellDelay = 0.1
func _ready():
dialogueResource = load("res://NPCs/WitchCow/WitchCow.dialogue")
$Sprite.play("Idle")
strawItem = strawItemClass.new()
func straw_check():
return InventoryManager.check_if_in_inventory(strawItem, 1, "keyItems")
func drink_lake():
GameVariables.player.global_position = Vector2(1400, -500)
GameVariables.player.movementTarget = GameVariables.player.global_position
var aroPigeon = get_parent().get_node("Pigeons").get_node("AroPigeon")
aroPigeon.position.x = 1300
aroPigeon.position.y = -300
var cutscene = juiceLakeDrinkingCutscene.instantiate()
add_child(cutscene)
func _process(delta):
if animDelayTimer > 0:
animDelayTimer -= delta
else:
choose_new_anim()
if DialogueBoxManager.currentSpeaker != self:
yellDelay -= delta
if yellDelay < 0:
yellDelay = 2
if SaveManager.get_save_value("juiceLakeRefilled", false) and !SaveManager.get_save_value("refillQuestComplete", false):
MessageManager.addMessage(yelledPhrases[yelledPhrasesIndex], self, "Witch Cow", Color.YELLOW, true, true, 2.5, -10)
yelledPhrasesIndex += 1
if yelledPhrasesIndex >= yelledPhrases.size():
yelledPhrasesIndex = 0
func choose_new_anim():
var result
if $Sprite.animation != "Idle":
result = rng.randi_range(1, 100)
else:
result = rng.randi_range(1, 70)
if result <= 40:
shine()
elif result <= 70:
bubble()
else:
idle()
func idle():
animDelayTimer = rng.randf_range(2, 6)
$Sprite.play("Idle")
func bubble():
animDelayTimer = 4
$Sprite.play("Bubble")
func shine():
animDelayTimer = 1.4
$Sprite.play("Shine")