extends Node2D var catState; var stopCatTime = 0; onready var dialogNode; onready var anglyCatSound = load("res://resources/audio/sfx/cat_tail_angry.ogg"); onready var meowCatSound = load("res://resources/audio/sfx/cat_meows.ogg"); var meows = [[0.0, 1.53], [2.47, 3.72], [4.75, 6.39], [8.07, 9.75], [11.82, 13.12], [14.31, 16.13], [18.87, 20.3], [21.99, 23.45], [25.09, 26.7], [27.15, 29.27], [30.6, 31.93]]; func Init(zIndex:int, state:int): z_index = zIndex; catState = state; match state: 1: $catTexture.texture = load("res://resources/graphics/backgrounds/cat/1_1.webp"); $pawTexture.texture = load("res://resources/graphics/backgrounds/cat/1_2.webp"); $pawTexture.visible = true; $Tail.rect_position = Vector2(220, 40); $Tail.rect_size = Vector2(80, 80); 2: $catTexture.texture = load("res://resources/graphics/backgrounds/cat/2.webp"); $Tail.rect_position = Vector2(80, 40); $Tail.rect_size = Vector2(100, 80); 3: $catTexture.texture = load("res://resources/graphics/backgrounds/cat/3.webp"); $Tail.rect_position = Vector2(100, 200); $Tail.rect_size = Vector2(140, 150); 4: $catTexture.texture = load("res://resources/graphics/backgrounds/cat/4.webp"); $Tail.rect_position = Vector2(280, 20); $Tail.rect_size = Vector2(120, 180); 10: catState = 4; $catTexture.texture = load("res://resources/graphics/backgrounds/cat/10.webp"); $Tail.rect_position = Vector2(280, 20); $Tail.rect_size = Vector2(120, 180); 5: $catTexture.texture = load("res://resources/graphics/backgrounds/cat/5.webp"); $Tail.rect_position = Vector2(100, 200); $Tail.rect_size = Vector2(150, 140); 6: $catTexture.texture = load("res://resources/graphics/backgrounds/cat/6.webp"); $Tail.rect_position = Vector2(220, 140); $Tail.rect_size = Vector2(150, 140); 7: $catTexture.texture = load("res://resources/graphics/backgrounds/cat/7.webp"); $Tail.rect_position = Vector2(0, 60); $Tail.rect_size = Vector2(150, 50); 8: $catTexture.texture = load("res://resources/graphics/backgrounds/cat/8.webp"); $Tail.rect_position = Vector2(10, 60); $Tail.rect_size = Vector2(100, 60); 9: $catTexture.texture = load("res://resources/graphics/backgrounds/cat/9.webp"); $Tail.rect_position = Vector2(10, 300); $Tail.rect_size = Vector2(200, 160); dialogNode = get_tree().root.get_node("Root/Game").get_child(0).get_node("DialogNode"); func _on_catTexture_resized(): $Body.rect_size = $catTexture.rect_size; func Scale(scaleValue:float): yield (get_tree().create_timer(0.1), "timeout"); scale = Vector2(scaleValue, scaleValue); func _on_Cat_mouse_entered(): if get_tree().root.get_node("Root/Game").get_child_count() != 0: dialogNode.catOnHover = true; func _on_Cat_mouse_exited(): if get_tree().root.get_node("Root/Game").get_child_count() != 0: dialogNode.catOnHover = false; func _on_Body_pressed(): CatPressed(); $CatStreamPlayer.stream = meowCatSound; var meowTime = meows[rand_range(0, meows.size() - 1)]; stopCatTime = meowTime[1]; $CatStreamPlayer.play(meowTime[0]); func _on_Tail_pressed(): CatPressed(); $CatStreamPlayer.stream = anglyCatSound; stopCatTime = 1.28; $CatStreamPlayer.play(); func CatPressed(): var number = ProgressAchievementsSingleton.AddCat(catState); # if number != - 1: # if number == 9: # Steam.set_achievement("Cat_Progress") # else : # var _res = Steam.user_stats.indicate_achievement_progress("Cat_Progress", number, 9) var _res = false; func _process(_delta): if ($CatStreamPlayer.playing and $CatStreamPlayer.get_playback_position() >= stopCatTime): $CatStreamPlayer.stop()