117 lines
3.6 KiB
GDScript
117 lines
3.6 KiB
GDScript
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()
|