113 lines
2.1 KiB
GDScript
113 lines
2.1 KiB
GDScript
extends Node2D
|
|
|
|
const IN_GAME_WAIT_TIME = 10
|
|
|
|
var pulling: Sprite2D
|
|
var mash: Label
|
|
var you: Sprite2D
|
|
var sad: Sprite2D
|
|
var happy: Sprite2D
|
|
var mouse: Sprite2D
|
|
var shake: ShakePivot
|
|
var shake2: ShakePivot
|
|
var shake3: ShakePivot
|
|
var start_game_timer: Timer
|
|
var in_game_timer: Timer
|
|
var succfail_timer: Timer
|
|
|
|
var in_minigame = false
|
|
var num_clicks = 0
|
|
|
|
# Called when the node enters the scene tree for the first time.
|
|
func _ready() -> void:
|
|
pulling = $ShakePivot/pulling
|
|
you = $"you!"
|
|
mash = $ShakePivot2/MASH
|
|
mouse = $ShakePivot3/Mouse
|
|
shake = $ShakePivot
|
|
shake2 = $ShakePivot2
|
|
shake3 = $ShakePivot3
|
|
sad = $SAD
|
|
happy = $Happy
|
|
start_game_timer = $StartGame
|
|
in_game_timer = $InGame
|
|
succfail_timer = $SuccessFail
|
|
|
|
|
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
|
func _process(delta: float) -> void:
|
|
pass
|
|
|
|
|
|
func _on_texture_button_button_up() -> void:
|
|
shake.shake()
|
|
shake2.shake()
|
|
shake3.shake()
|
|
|
|
if in_minigame:
|
|
num_clicks -= 1
|
|
|
|
# YOU WIN
|
|
if num_clicks == 0:
|
|
in_minigame = false
|
|
|
|
# hide non-happy cats
|
|
pulling.visible = false
|
|
mash.visible = false
|
|
mouse.visible = false
|
|
sad.visible = false
|
|
you.visible = false
|
|
|
|
# show happy cat
|
|
happy.visible = true
|
|
|
|
in_game_timer.stop()
|
|
in_game_timer.wait_time = IN_GAME_WAIT_TIME
|
|
succfail_timer.start()
|
|
|
|
|
|
func _on_start_game_timeout() -> void:
|
|
if randf() < 0.1:
|
|
start_game_timer.stop()
|
|
in_game_timer.start()
|
|
|
|
in_minigame = true
|
|
|
|
# hide passive cats
|
|
you.visible = false
|
|
sad.visible = false
|
|
happy.visible = false
|
|
|
|
# show active cat
|
|
pulling.visible = true
|
|
mash.visible = true
|
|
mouse.visible = true
|
|
|
|
num_clicks = randi_range(5,21)
|
|
#num_clicks = 21
|
|
|
|
|
|
# YOU LOSE
|
|
func _on_in_game_timeout() -> void:
|
|
in_minigame = false
|
|
|
|
# hide non-sad cats
|
|
you.visible = false
|
|
happy.visible = false
|
|
pulling.visible = false
|
|
mash.visible = false
|
|
mouse.visible = false
|
|
|
|
# show sad cat
|
|
sad.visible = true
|
|
|
|
in_game_timer.stop()
|
|
succfail_timer.start()
|
|
|
|
|
|
func _on_success_fail_timeout() -> void:
|
|
sad.visible = false
|
|
happy.visible = false
|
|
you.visible = true
|
|
succfail_timer.stop()
|
|
start_game_timer.start()
|