summaryrefslogtreecommitdiff
path: root/scenes/microgames/fishin/fishin.gd
blob: 91be7258370cafb2ddf7823158f3118c096eb403 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
extends Node2D

signal win

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
# This used to mean "success/failure" but now means "you succ, failure"
var succfail_timer: Timer 
var success_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
	success_timer = $Success
	
	get_window().title = "Relaxing Fishing Game 🙂"

	

# 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
			success_timer.start()
			$"Yippee!".play()
			
			get_window().title = "Yippee!"
			


func _on_start_game_timeout() -> void:
	if randf() < 0.2:
		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,10)
		#num_clicks = 21
		
		get_window().title = "MASH MASH MASH MASH MASH"


# 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()
	$"Fart".play()
	
	get_window().title = "🙂👎"


func _on_success_fail_timeout() -> void:
	sad.visible = false
	happy.visible = false
	you.visible = true
	succfail_timer.stop()
	start_game_timer.start()
	
	get_window().title = "Relaxing Fishing Game 🙂"


func _on_success_timeout() -> void:
	win.emit()