aboutsummaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
Diffstat (limited to 'client')
-rw-r--r--client/game.gd15
1 files changed, 14 insertions, 1 deletions
diff --git a/client/game.gd b/client/game.gd
index e769f01c..621a05af 100644
--- a/client/game.gd
+++ b/client/game.gd
@@ -277,7 +277,13 @@ func handle_packet(p):
menu.submenu("res://menu/rating/rating.tscn", [p.data.stars, p.data.score])
"server_message":
var message = p["message"]
- popup_message.display_server_msg(message)
+ var message_str := get_message_str(message)
+ if error:
+ # TODO: Custom popup message style for errors
+ popup_message.display_server_msg(message_str)
+ push_error("Server error: %s" % message_str)
+ else:
+ popup_message.display_server_msg(message_str)
"environment":
$Environment.update(p["effects"])
"replay_start":
@@ -299,6 +305,13 @@ func _process(delta):
if is_replay and mp != null:
mp.send_replay_tick(delta)
+func get_message_str(m: Dictionary) -> String:
+ if "text" in m: return m.text
+ if "translation" in m: return tr(m.translation.id) % m.translation.params.map(get_message_str)
+ if "tile" in m: return tile_names[m.tile]
+ if "item" in m: return item_names[m.item]
+ return "[unknown message type]"
+
func get_tile_collision(pos: Vector2i) -> bool:
var t = map.get_tile_name(pos)
if t == null: return true