diff options
-rw-r--r-- | server/protocol/src/lib.rs | 1 | ||||
-rw-r--r-- | server/src/entity/tutorial.rs | 3 | ||||
-rw-r--r-- | test-client/main.ts | 1 | ||||
-rw-r--r-- | test-client/protocol.ts | 2 |
4 files changed, 6 insertions, 1 deletions
diff --git a/server/protocol/src/lib.rs b/server/protocol/src/lib.rs index 9d2879f7..bf7fc3d1 100644 --- a/server/protocol/src/lib.rs +++ b/server/protocol/src/lib.rs @@ -227,6 +227,7 @@ pub enum PacketC { #[bincode(with_serde)] position: Option<IVec2>, message: Option<Message>, + player: PlayerID, }, Score(Score), SetIngame { diff --git a/server/src/entity/tutorial.rs b/server/src/entity/tutorial.rs index 68503471..39f761bc 100644 --- a/server/src/entity/tutorial.rs +++ b/server/src/entity/tutorial.rs @@ -38,6 +38,7 @@ impl Entity for Tutorial { if let Some((position, _)) = self.current_hint { c.packet_out.push_back(PacketC::ServerHint { position, + player: self.player, message: None, }); } @@ -81,11 +82,13 @@ impl Entity for Tutorial { if let Some((position, _)) = self.current_hint.take() { c.packet_out.push_back(PacketC::ServerHint { position, + player: self.player, message: None, }); } if let Some((position, message)) = hint.clone() { c.packet_out.push_back(PacketC::ServerHint { + player: self.player, position, message: Some(message), }); diff --git a/test-client/main.ts b/test-client/main.ts index c4340fe8..4f4bcbfd 100644 --- a/test-client/main.ts +++ b/test-client/main.ts @@ -261,6 +261,7 @@ function packet(p: PacketC) { break; } case "server_hint": + if (p.player != my_id) return; if (p.message) server_hints.set(p.position + "", { inner: p.message, anim_size: 0., diff --git a/test-client/protocol.ts b/test-client/protocol.ts index 6076d275..c8c59ed2 100644 --- a/test-client/protocol.ts +++ b/test-client/protocol.ts @@ -60,7 +60,7 @@ export type PacketC = | { type: "communicate", player: PlayerID, message?: Message, timeout?: MessageTimeout } // A player wants to communicate something, message is null when cleared | { type: "effect", player: PlayerID, name: string } // Player sent an effect | { type: "server_message", message: Message, error: boolean } // Text message from the server - | { type: "server_hint", message?: Message, position?: Vec2 } // Hint message from server with optional position. Message is unset to clear previous message + | { type: "server_hint", message?: Message, position?: Vec2, player: PlayerID } // Hint message from server with optional position. Message is unset to clear previous message | { type: "score" } & Score // Supplies information for score OSD | { type: "menu" } & Menu // Open a menu on the client-side | { type: "environment", effects: string[] } |