diff options
Diffstat (limited to 'client/game.gd')
-rw-r--r-- | client/game.gd | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/client/game.gd b/client/game.gd index 875e5fa7..c86906b6 100644 --- a/client/game.gd +++ b/client/game.gd @@ -187,14 +187,22 @@ func handle_packet(p): if "item" in p.message: var player: Player = players[p.player] var item_name: String = item_names[p.message.item] + var parsed_item := Global.ParsedItem.new(item_name) + var ingredients := [parsed_item.name] + ingredients.append_array(parsed_item.contents) player.item_message(item_name, timeout_initial, timeout_remaining) - if player.is_customer and not Global.get_profile("tutorials_played").has(item_name) and not Global.get_setting("gameplay.tutorial_disabled"): - if tutorial_running: - tutorial_queue.push_back(item_name) - else: - tutorial_running = true - update_tutorial_running.emit(tutorial_running) - mp.send_chat(player_id, "/start-tutorial %s" % item_name) + + if player.is_customer and not Global.get_setting("gameplay.tutorial_disabled"): + var completed_ingredients: Array = Global.get_profile("tutorial_ingredients_played") + var completed := Global.array_has_all(completed_ingredients, ingredients) + + if not completed: + if tutorial_running: + tutorial_queue.push_back(item_name) + else: + tutorial_running = true + update_tutorial_running.emit(tutorial_running) + 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 @@ -240,9 +248,11 @@ func handle_packet(p): update_tutorial_running.emit(tutorial_running) if p.success: - var played: Array = Global.get_profile("tutorials_played") - played.append(item_names[p.item]) - Global.set_profile("tutorials_played", played) + var completed_item := Global.ParsedItem.new(item_names[p.item]) + var played: Array = Global.get_profile("tutorial_ingredients_played") + played.append(completed_item.name) + played.append_array(completed_item.contents) + Global.set_profile("tutorial_ingredients_played", played) Global.save_profile() while item_names[p.item] in tutorial_queue: |