diff options
Diffstat (limited to 'client/game.gd')
-rw-r--r-- | client/game.gd | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/client/game.gd b/client/game.gd index d87a091c..da09ae9a 100644 --- a/client/game.gd +++ b/client/game.gd @@ -22,9 +22,17 @@ signal update_players(players: Dictionary) signal data_updated() signal in_lobby_updated(in_lobby: bool) signal join_state_updated(state: JoinState) -signal text_message(player, text: String, timeout_initial: float, timeout_remaining: float) +signal text_message(message: TextMessage) signal update_tutorial_running(running: bool) +class TextMessage: + var username: String + var color: Color + var text: String + var timeout_initial: float + var timeout_remaining + + enum SpectatingMode { CENTER, FREE, @@ -45,7 +53,7 @@ var tile_collide: Array = [] var tile_interact: Array = [] var maps: Array = [] var bot_algos: Array -var text_message_history: Array[Array] = [] +var text_message_history: Array[TextMessage] = [] var join_state: JoinState = JoinState.SPECTATING @@ -226,12 +234,19 @@ 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: + var data = TextMessage.new() + data.timeout_initial = timeout_initial + data.timeout_remaining = timeout_remaining 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) - text_message_history.append([username, p.message.text]) + var player: Player = players[p.player] + data.color = Character.COLORS[player.character.ParsedStyle.new(player.character_idx).color] + data.username = players[p.player].username + data.text = p.message.text + + player.text_message(data) + text_message.emit(data) + text_message_history.append(data) else: push_error("neither text, item nor effect provided") else: |