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)  |