diff options
Diffstat (limited to 'client')
-rw-r--r-- | client/game.gd | 23 | ||||
-rw-r--r-- | client/player/player.gd | 3 |
2 files changed, 21 insertions, 5 deletions
diff --git a/client/game.gd b/client/game.gd index 64bdb78f..c36bc643 100644 --- a/client/game.gd +++ b/client/game.gd @@ -45,7 +45,8 @@ var in_lobby := false var is_replay := false var is_joined := false var join_sent := false -var tutorial_running = false +var tutorial_running := false +var tutorial_queue := [] var last_position := Vector2(0, 0) var players := {} @@ -186,9 +187,12 @@ func handle_packet(p): var player: Player = players[p.player] var item_name: String = item_names[p.message.item] player.item_message(item_name, timeout_initial, timeout_remaining) - if player.is_customer and not tutorial_running and not Global.get_profile("tutorials_played").has(item_name): - tutorial_running = true - mp.send_chat(player_id, "/start-tutorial %s" % item_name) + if player.is_customer and not Global.get_profile("tutorials_played").has(item_name): + if tutorial_running: + tutorial_queue.push_back(item_name) + else: + tutorial_running = true + mp.send_chat(player_id, "/start-tutorial %s" % item_name) elif "text" in p.message: players[p.player].text_message(p.message.text, timeout_initial, timeout_remaining) var username: String = players[p.player].username @@ -197,7 +201,10 @@ func handle_packet(p): else: push_error("neither text, item nor effect provided") else: - players[p.player].clear_message() + var player: Player = players[p.player] + if player.is_customer and player.current_item_message != null: + tutorial_queue.erase(player.current_item_message) + player.clear_message() "effect": players[p.player].effect_message(p.name) "set_ingame": @@ -229,6 +236,12 @@ func handle_packet(p): played.append(p.item) Global.set_profile("tutorials_played", played) Global.save_profile() + + tutorial_queue.erase(p.item) + + if not tutorial_queue.is_empty(): + tutorial_running = true + mp.send_chat(player_id, "/start-tutorial %s" % tutorial_queue.pop_front()) "menu": match p.menu: "book": diff --git a/client/player/player.gd b/client/player/player.gd index 6962744c..31a7a337 100644 --- a/client/player/player.gd +++ b/client/player/player.gd @@ -45,6 +45,7 @@ var hand: Item = null var hand_base: Node3D = Node3D.new() var character_idx: int var is_customer: bool +var current_item_message = null var _anim_angle: float = 0.0 @@ -148,10 +149,12 @@ func clear_message(): item_bubble.remove_item() chat_bubble.remove_text() effect.clear_effect() + current_item_message = null func item_message(item_name: String, timeout_initial: float, timeout_remaining: float): item_bubble.set_item(item_name, timeout_initial, timeout_remaining) clear_timer.start(timeout_remaining) + current_item_message = item_name func text_message(m: String, _timeout_initial: float, timeout_remaining: float): chat_bubble.set_text(m) |