summaryrefslogtreecommitdiff
path: root/client/game.gd
diff options
context:
space:
mode:
Diffstat (limited to 'client/game.gd')
-rw-r--r--client/game.gd16
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)