summaryrefslogtreecommitdiff
path: root/client/game.gd
diff options
context:
space:
mode:
authornokoe <nokoe@mailbox.org>2024-10-03 16:43:37 +0200
committernokoe <nokoe@mailbox.org>2024-10-03 16:43:37 +0200
commit43390237a6dacaeff59826c1f6951afa13ab2d7f (patch)
treeab3dd6022596edbee3f5706b657311e22b6f3fd2 /client/game.gd
parent0c789a627e1f0357c2e14523782a253c80c50560 (diff)
downloadhurrycurry-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.gd27
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: