diff options
Diffstat (limited to 'client/game.gd')
-rw-r--r-- | client/game.gd | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/client/game.gd b/client/game.gd index 4a4e3f1f..88535c36 100644 --- a/client/game.gd +++ b/client/game.gd @@ -60,6 +60,7 @@ var spectating_mode: SpectatingMode = SpectatingMode.CENTER @onready var lobby: Lobby = $"../Lobby" @onready var overlay: Overlay = $"../Overlay" @onready var popup_message: PopupMessage = $"../PopupMessage" +@onready var pinned_items: PinnedItemMessages = $"../PinnedItemMessages" @onready var menu: GameMenu = $".." @onready var follow_camera: FollowCamera = $FollowCamera @@ -179,17 +180,24 @@ func handle_packet(p): map.set_tile(p.tile, tile_names[p.kind], neighbors) else: map.clear_tile(p.tile) "communicate": - var timeout_initial: float = p["timeout"]["initial"] if p["timeout"] != null else 5. - var timeout_remaining: float = p["timeout"]["remaining"] if p["timeout"] != null else 5. + var timeout_initial: float = p.timeout.initial if p.timeout != null else 5. + var timeout_remaining: float = p.timeout.remaining if p.timeout != null else 5. + var pinned: bool = p.timeout.pinned if p.timeout != null and "pinned" in p.timeout else false if p.message != null: 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) + + if pinned: + pinned_items.pin_item(item_name, timeout_initial, timeout_remaining) + return + + var player: Player = players[p.player] player.item_message(item_name, timeout_initial, timeout_remaining) + # Maybe start tutorial 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) @@ -202,6 +210,8 @@ func handle_packet(p): update_tutorial_running.emit(tutorial_running) mp.send_chat(player_id, "/start-tutorial %s" % item_name) elif "text" in p.message: + if pinned: + push_error("Pinned text messages are currently not supported") players[p.player].text_message(p.message.text, timeout_initial, timeout_remaining) var username: String = players[p.player].username text_message.emit(username, p.message.text, timeout_initial, timeout_remaining) |