From 1e4c8bc17404ab9a22f94a22430c57dbffc354c0 Mon Sep 17 00:00:00 2001 From: Jacob Janzen Date: Sat, 16 Nov 2024 16:38:29 -0600 Subject: add complete fishing minigame --- scenes/microgames/fishin/fishin.gd | 112 +++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 scenes/microgames/fishin/fishin.gd (limited to 'scenes/microgames/fishin/fishin.gd') diff --git a/scenes/microgames/fishin/fishin.gd b/scenes/microgames/fishin/fishin.gd new file mode 100644 index 0000000..7e1ae3c --- /dev/null +++ b/scenes/microgames/fishin/fishin.gd @@ -0,0 +1,112 @@ +extends MicrogameWindow + +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,20) + + +# 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() -- cgit v1.2.3