diff options
author | nokoe <nokoe@mailbox.org> | 2024-10-03 16:43:37 +0200 |
---|---|---|
committer | nokoe <nokoe@mailbox.org> | 2024-10-03 16:43:37 +0200 |
commit | 43390237a6dacaeff59826c1f6951afa13ab2d7f (patch) | |
tree | ab3dd6022596edbee3f5706b657311e22b6f3fd2 /client/game.gd | |
parent | 0c789a627e1f0357c2e14523782a253c80c50560 (diff) | |
download | hurrycurry-43390237a6dacaeff59826c1f6951afa13ab2d7f.tar hurrycurry-43390237a6dacaeff59826c1f6951afa13ab2d7f.tar.bz2 hurrycurry-43390237a6dacaeff59826c1f6951afa13ab2d7f.tar.zst |
chat messages show user color; align vertically; fixes #207
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: |