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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
|
extends Node2D
class_name Fishin
enum FishType {
GAR,
SALMON,
BASS,
HUMUHUMUNUKUNUKUAPUA_A,
CATFSIH,
DOGFISH,
ANGLERFISH,
MOBY_DICK,
LEAPING_SMACKEREL,
}
signal win(fish_type: FishType)
signal fish_chosen(fish_sprite: Sprite2D, fish_name: String)
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 fish_choice
var gar
var salmon
var bass
var humuhumunukunukuapua_a
var catfsih
var dogfish
var pupperfish
var anglerfish
var moby_dick
var leaping_smackerel
var in_minigame = false
var num_clicks = 0
var fishes = [FishType.GAR, FishType.SALMON, FishType.BASS, FishType.HUMUHUMUNUKUNUKUAPUA_A, FishType.CATFSIH, FishType.DOGFISH, FishType.ANGLERFISH, FishType.MOBY_DICK, FishType.LEAPING_SMACKEREL]
# 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 🙂"
gar = $Happy/Gar
salmon = $Happy/SockeyeSalmon
bass = $Happy/LargemouthBass
humuhumunukunukuapua_a = $"Happy/Humuhumunukunukuapua'a"
catfsih = $Happy/Catfsih
dogfish = $Happy/Dogfish
pupperfish = $Happy/Pupperfish
anglerfish = $Happy/Anglerfish
moby_dick = $"Happy/Moby-Dick"
leaping_smackerel = $Happy/LeapingSmackerel
# 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
# show fish
fish_choice = randi_range(0,len(fishes))
match fish_choice:
FishType.GAR:
gar.visible = true
fish_chosen.emit(gar.get_node("GarSprite"), "Gar :)")
$"Yippee!".play()
FishType.SALMON:
salmon.visible = true
fish_chosen.emit(salmon.get_node("SalmonSprite"), "Sockeye Salmon")
$"Yippee!".play()
FishType.BASS:
bass.visible = true
fish_chosen.emit(bass.get_node("LargemouthBassSprite"), "Largemouth Bass")
$"Yippee!".play()
FishType.HUMUHUMUNUKUNUKUAPUA_A:
humuhumunukunukuapua_a.visible = true
fish_chosen.emit(humuhumunukunukuapua_a.get_node("Sprite2D"), "Humuhumunukunukuapua'a")
$"Yippee!".play()
FishType.CATFSIH:
catfsih.visible = true
fish_chosen.emit(catfsih.get_node("CatfishSprite"), "Catfish :3")
$Meow.play()
FishType.DOGFISH:
dogfish.visible = true
fish_chosen.emit(dogfish.get_node("DogfishSprite"), "Dogfish 🐶")
$Bark.play()
FishType.ANGLERFISH:
anglerfish.visible = true
fish_chosen.emit(anglerfish.get_node("AnglerfishSprirtre"), "Anglerfish")
$"Yippee!".play()
FishType.MOBY_DICK:
moby_dick.visible = true
fish_chosen.emit(moby_dick.get_node("Moby-DickSprite"), "Moby Dick")
$"Moby Dick".play()
success_timer.wait_time *= 2
FishType.LEAPING_SMACKEREL:
leaping_smackerel.visible = true
fish_chosen.emit(leaping_smackerel.get_node("LeapingSmackerelSprite"), "LEAPING SMACKEREL! WAHOO!")
$"THE LEAPING SMACKEREL!".play()
success_timer.wait_time *= 2
in_game_timer.stop()
in_game_timer.wait_time = IN_GAME_WAIT_TIME
success_timer.start()
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:
gar.visible = false
salmon.visible = false
bass.visible = false
humuhumunukunukuapua_a.visible = false
catfsih.visible = false
dogfish.visible = false
pupperfish.visible = false
anglerfish.visible = false
moby_dick.visible = false
leaping_smackerel.visible = false
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(fish_choice)
|