minigame mode and restart option added
This commit is contained in:
parent
e14eb9eb1d
commit
2434d7371c
10 changed files with 118 additions and 22 deletions
|
@ -1 +1 @@
|
|||
{"events":[{"change_timeline":"timeline-1616656510.json"}],"metadata":{"dialogic-version":"1.1","file":"timeline-1616659306.json","name":"_start"}}
|
||||
{"events":[{"change_timeline":"timeline-1617871263.json"}],"metadata":{"dialogic-version":"1.1","file":"timeline-1616659306.json","name":"_start"}}
|
||||
|
|
|
@ -1 +1 @@
|
|||
{"events":[{"background":"res://backgrounds/bureauGroupe-2.jpg"},{"action":"join","character":"character-1616658373.json","portrait":"","position":{"0":false,"1":true,"2":false,"3":false,"4":false}},{"character":"character-1616658373.json","portrait":"","text":"Hello"},{"emit_signal":"setup_minigame mode _test_minigame_end"},{"background":""},{"character":"character-1616658373.json","portrait":"","text":"I explain stuff"},{"emit_signal":"start_minigame"}],"metadata":{"dialogic-version":"1.1","file":"timeline-1617871263.json","name":"_test_minigame_start"}}
|
||||
{"events":[{"background":"res://backgrounds/bureauGroupe-2.jpg"},{"action":"join","character":"character-1616658373.json","portrait":"","position":{"0":false,"1":true,"2":false,"3":false,"4":false}},{"character":"character-1616658373.json","portrait":"","text":"Hello"},{"emit_signal":"setup_minigame score _test_minigame_end _test_minigame_end2"},{"background":""},{"character":"character-1616658373.json","portrait":"","text":"I explain stuff"},{"emit_signal":"start_minigame"}],"metadata":{"dialogic-version":"1.1","file":"timeline-1617871263.json","name":"_test_minigame_start"}}
|
||||
|
|
|
@ -1 +1 @@
|
|||
{"events":[{"action":"join","character":"character-1616658373.json","portrait":"","position":{"0":false,"1":false,"2":false,"3":true,"4":false}},{"character":"character-1616658373.json","portrait":"","text":"you lost"},{"change_timeline":"timeline-1616661658.json"}],"metadata":{"dialogic-version":"1.1","file":"timeline-1617874348.json","name":"_test_minigame_end"}}
|
||||
{"events":[{"action":"join","character":"character-1616658373.json","portrait":"","position":{"0":false,"1":false,"2":false,"3":true,"4":false}},{"character":"character-1616658373.json","portrait":"","text":"you lost"},{"options":[],"question":"Tu veux réessayer?"},{"choice":"Oui !"},{"emit_signal":"setup_minigame score _test_minigame_end _test_minigame_end2"},{"background":""},{"emit_signal":"start_minigame"},{"choice":"Non"},{"change_timeline":"timeline-1616661658.json"},{"endbranch":""}],"metadata":{"dialogic-version":"1.1","file":"timeline-1617874348.json","name":"_test_minigame_end"}}
|
||||
|
|
|
@ -7,31 +7,56 @@ onready var foreground := $foreground
|
|||
onready var spawner := $spawner
|
||||
onready var player := $player2
|
||||
onready var scoreUI := $scoreUI
|
||||
onready var start_timer_UI := $start_timer_UI
|
||||
onready var instructionsUI := $instructionsUI
|
||||
|
||||
var next_timeline_lose := ""
|
||||
var next_timeline_win := ""
|
||||
|
||||
var game_mode = ""
|
||||
|
||||
var next_timeline := ""
|
||||
|
||||
func _ready():
|
||||
Signals.connect("die", self, "on_game_over")
|
||||
Signals.connect("win", self, "on_win")
|
||||
|
||||
|
||||
func setup(mode: String, next: String):
|
||||
print("minigame: " + mode + " " + next)
|
||||
func setup(mode: String, next_lose: String, next_win: String):
|
||||
print("minigame: " + mode + " " + next_lose + " " + next_win)
|
||||
set_mode(mode)
|
||||
scoreUI.init()
|
||||
next_timeline = next
|
||||
scoreUI.init(mode)
|
||||
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")
|
||||
start_timer_UI.init()
|
||||
var t = Timer.new()
|
||||
t.set_wait_time(1)
|
||||
add_child(t)
|
||||
t.start()
|
||||
for n in range(3,0,-1):
|
||||
start_timer_UI.update_timer(String(n))
|
||||
yield(t, "timeout")
|
||||
start_timer_UI.update_timer("GO !")
|
||||
foreground.start()
|
||||
player.start()
|
||||
player.start(game_mode)
|
||||
spawner.start()
|
||||
instructionsUI._init()
|
||||
scoreUI.start(game_mode)
|
||||
yield(t, "timeout")
|
||||
start_timer_UI.hide()
|
||||
|
||||
|
||||
func stop():
|
||||
|
@ -40,7 +65,10 @@ func stop():
|
|||
spawner.stop()
|
||||
|
||||
|
||||
func on_win():
|
||||
stop()
|
||||
emit_signal("game_over", next_timeline_win)
|
||||
|
||||
func on_game_over():
|
||||
stop()
|
||||
emit_signal("game_over", next_timeline)
|
||||
emit_signal("game_over", next_timeline_lose)
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
[gd_scene load_steps=7 format=2]
|
||||
[gd_scene load_steps=9 format=2]
|
||||
|
||||
[ext_resource path="res://mini-game/scenes/decor/background.tscn" type="PackedScene" id=1]
|
||||
[ext_resource path="res://mini-game/scenes/decor/foreground.tscn" type="PackedScene" id=2]
|
||||
[ext_resource path="res://mini-game/scenes/players/player2.tscn" type="PackedScene" id=3]
|
||||
[ext_resource path="res://mini-game/MiniGame.gd" type="Script" id=4]
|
||||
[ext_resource path="res://mini-game/scenes/decor/start_timer_UI.tscn" type="PackedScene" id=5]
|
||||
[ext_resource path="res://mini-game/scenes/spawner/spawner.tscn" type="PackedScene" id=6]
|
||||
[ext_resource path="res://mini-game/scenes/decor/scoreUI.tscn" type="PackedScene" id=7]
|
||||
[ext_resource path="res://mini-game/scenes/decor/instructionsUI.tscn" type="PackedScene" id=8]
|
||||
|
||||
[node name="MiniGame" type="Node"]
|
||||
script = ExtResource( 4 )
|
||||
|
@ -21,3 +23,7 @@ position = Vector2( 2015.43, 970.395 )
|
|||
position = Vector2( 183.674, 888.367 )
|
||||
|
||||
[node name="scoreUI" parent="." instance=ExtResource( 7 )]
|
||||
|
||||
[node name="start_timer_UI" parent="." instance=ExtResource( 5 )]
|
||||
|
||||
[node name="instructionsUI" parent="." instance=ExtResource( 8 )]
|
||||
|
|
|
@ -2,13 +2,40 @@ extends Control
|
|||
|
||||
onready var label : Label = $MarginContainer/Label
|
||||
|
||||
var game_mode
|
||||
var max_time = 3
|
||||
|
||||
func _ready():
|
||||
Signals.connect("update_score",self,"update_score")
|
||||
|
||||
|
||||
func update_score(score: int):
|
||||
label.text = String(score)
|
||||
|
||||
|
||||
func init():
|
||||
update_score(0)
|
||||
func start(mode: String):
|
||||
|
||||
match mode:
|
||||
"score":
|
||||
update_score(0)
|
||||
show()
|
||||
"time":
|
||||
update_score(max_time)
|
||||
show()
|
||||
var t = Timer.new()
|
||||
t.set_wait_time(1)
|
||||
add_child(t)
|
||||
t.start()
|
||||
for n in range(max_time,0,-1):
|
||||
update_score(n)
|
||||
yield(t,"timeout")
|
||||
update_score(0)
|
||||
Signals.emit_signal("win")
|
||||
_:
|
||||
print("game_mode not recognized by scoreUI")
|
||||
|
||||
|
||||
|
||||
func init(mode):
|
||||
game_mode = mode
|
||||
hide()
|
||||
|
||||
|
|
|
@ -3,3 +3,7 @@ extends Node2D
|
|||
signal die
|
||||
signal gain
|
||||
signal update_score
|
||||
signal update_timer
|
||||
signal win
|
||||
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@ extends KinematicBody2D
|
|||
var vitesse = Vector2.ZERO
|
||||
|
||||
var score = 0
|
||||
var score_goal = 10
|
||||
|
||||
export var jump_vitesse = 600.0
|
||||
export var gravite = 20.0
|
||||
|
@ -13,7 +14,13 @@ enum {
|
|||
IDLE
|
||||
}
|
||||
|
||||
var player_enabled = false;
|
||||
enum {
|
||||
SCORE,
|
||||
TIME
|
||||
}
|
||||
|
||||
var player_enabled = false
|
||||
var game_mode = "score"
|
||||
|
||||
var state = RUN
|
||||
var au_sol = true
|
||||
|
@ -62,16 +69,37 @@ func _on_Area2D_body_exited(body):
|
|||
|
||||
|
||||
func increase_score(scoretoadd):
|
||||
score+=scoretoadd
|
||||
Signals.emit_signal("update_score",score)
|
||||
match game_mode:
|
||||
"score":
|
||||
score+=scoretoadd
|
||||
Signals.emit_signal("update_score",score)
|
||||
if score >= score_goal:
|
||||
Signals.emit_signal("win")
|
||||
"time":
|
||||
pass
|
||||
_:
|
||||
print("game_mode not recognized by player2 start func")
|
||||
|
||||
|
||||
|
||||
|
||||
func player_win():
|
||||
stop()
|
||||
|
||||
func player_die():
|
||||
stop()
|
||||
|
||||
|
||||
func start():
|
||||
func start(mode: String):
|
||||
show()
|
||||
match mode:
|
||||
"score":
|
||||
game_mode = "score"
|
||||
"time":
|
||||
game_mode = "time"
|
||||
_:
|
||||
print("game_mode not recognized by player2 start func")
|
||||
score = 0
|
||||
player_enabled = true
|
||||
|
||||
|
||||
|
|
|
@ -12,6 +12,7 @@ var spawner_enabled = false
|
|||
|
||||
func _ready():
|
||||
Signals.connect("die",self,"game_over")
|
||||
Signals.connect("win",self,"game_over")
|
||||
|
||||
|
||||
func _on_Timer_timeout():
|
||||
|
@ -32,6 +33,7 @@ func game_over():
|
|||
|
||||
func start():
|
||||
spawner_enabled = true
|
||||
self.get_node("Timer").set_paused(false)
|
||||
|
||||
|
||||
func stop():
|
||||
|
|
|
@ -8,7 +8,8 @@ func _ready():
|
|||
dialogic_node = Dialogic.add_as_child_of($Control)
|
||||
$Control.move_child(dialogic_node, 0)
|
||||
dialogic_node.connect('dialogic_signal', self, "_on_Dialogic_signal_received")
|
||||
dialogic_node.start_from_save("_start")
|
||||
#dialogic_node.start_from_save("_start")
|
||||
dialogic_node.start("_start")
|
||||
|
||||
|
||||
func _on_Dialogic_signal_received(value: String):
|
||||
|
@ -21,15 +22,15 @@ func _on_Dialogic_signal_received(value: String):
|
|||
start_minigame()
|
||||
"setup_minigame":
|
||||
if (args.size() >= 3):
|
||||
setup_minigame(args[1], args[2])
|
||||
setup_minigame(args[1], args[2], args[3])
|
||||
else:
|
||||
print("not enough arguments for start_minigame")
|
||||
_:
|
||||
print("wrong type")
|
||||
|
||||
|
||||
func setup_minigame(mode: String, next_timeline: String):
|
||||
mini_game.setup(mode, next_timeline)
|
||||
func setup_minigame(mode: String, next_timeline_lose: String, next_timeline_win):
|
||||
mini_game.setup(mode, next_timeline_lose, next_timeline_win)
|
||||
|
||||
|
||||
func start_minigame():
|
||||
|
|
Loading…
Reference in a new issue