123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- extends Node
-
- signal game_over
-
- onready var foreground := $foreground
- onready var spawner := $spawner
- onready var player := $player
- onready var scoreUI := $scoreUI
- onready var start_timer_UI := $startTimerUI
- onready var instructionsUI := $instructionsUI
- onready var timer := $Timer
-
- var next_timeline_lose := ""
- var next_timeline_win := ""
-
- var game_mode = ""
- var game_goal = 10
- var current_goal = 0
- var game_difficulty = "easy"
- var game_version = 0
-
- var MUSIC = "res://music/mini_jeu.ogg"
-
-
- func _ready():
- pass
-
-
- func setup(mode: String, goal: int, difficulty: String, next_lose: String, next_win: String, version: int):
- game_goal = goal
- if(difficulty == "hard"):
- game_difficulty = "hard"
- else:
- game_difficulty = "easy"
- game_version = version
- print("setup minigame: " + mode + " " + next_lose + " " + next_win)
- set_mode(mode)
- scoreUI.init(mode, goal)
- next_timeline_lose = next_lose
- next_timeline_win = next_win
-
-
- func set_mode(mode: String):
- match mode:
- "score":
- game_mode = "score"
- "time":
- game_mode = "time"
- _:
- print("unkonwn mini-game mode")
-
-
- func start():
- print("starting minigame")
- BackgroundMusic.crossfade_to(MUSIC, -10, 1)
- start_timer_UI.init()
- var t = Timer.new()
- t.set_wait_time(0.5)
- add_child(t)
- t.start()
- for n in range(3,0,-1):
- start_timer_UI.update_timer(n)
- yield(t, "timeout")
- start_timer_UI.update_timer(0)
- instructionsUI._init()
- foreground.start()
- player.start()
- yield(t, "timeout")
- yield(t, "timeout")
- start_timer_UI.hide()
- spawner.start(game_difficulty, game_version)
- if game_mode == "score":
- scoreUI.start(0)
- else:
- scoreUI.start(game_goal)
- t.queue_free()
- if game_mode == "time":
- timer.start()
-
-
- func stop():
- foreground.stop()
- player.stop()
- spawner.stop()
- timer.stop()
-
-
- func on_win():
- stop()
- emit_signal("game_over", next_timeline_win)
-
-
- func on_game_over():
- stop()
- emit_signal("game_over", next_timeline_lose)
-
-
- func _on_player_die() -> void:
- on_game_over()
-
-
- func _on_player_hit() -> void:
- pass
-
- func update_score():
- current_goal += 1
- scoreUI.update_score(current_goal)
- if current_goal >= game_goal:
- on_win()
-
-
- func _on_player_score() -> void:
- update_score()
-
-
- func _on_Timer_timeout() -> void:
- update_score()
|