diff options
author | tpart <tpart120@proton.me> | 2024-09-19 22:00:47 +0200 |
---|---|---|
committer | tpart <tpart120@proton.me> | 2024-09-19 22:00:48 +0200 |
commit | f241e4283c20dfedf27e4f9c5090a4533bd674d2 (patch) | |
tree | b36aea59ddb31c046ab6cbb885ad9cc8a657e1ac /client/game.gd | |
parent | e91afb1dce9344128ca96f0c418cdd59749e1d1e (diff) | |
download | hurrycurry-f241e4283c20dfedf27e4f9c5090a4533bd674d2.tar hurrycurry-f241e4283c20dfedf27e4f9c5090a4533bd674d2.tar.bz2 hurrycurry-f241e4283c20dfedf27e4f9c5090a4533bd674d2.tar.zst |
Add tutorial queue logic
Diffstat (limited to 'client/game.gd')
-rw-r--r-- | client/game.gd | 23 |
1 files changed, 18 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": |