Skip to content

Commit

Permalink
Minnor message renames. Updated message diagram.
Browse files Browse the repository at this point in the history
  • Loading branch information
lemunozm committed Dec 11, 2020
1 parent 794e548 commit fd22a9c
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 19 deletions.
10 changes: 5 additions & 5 deletions docs/design/diagrams/messages.puml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Client <-- Server : Version

== Server information subscription ==
Client -> Server : SubscribeServerInfo
Client <-- Server : ServerInfo
Client <-- Server : StaticServerInfo
group Any change in the server: e.g: a player login/logout
Client <<- Server : DynamicServerInfo
end
Expand All @@ -38,23 +38,23 @@ Client -> Server : Logout
== Game/Arena system ==
Client <- Server : StartGame
loop there is not a game winner
Client <- Server : PrepareArena
Client <- Server : WaitingArena
...
Client <- Server : StartArena
note over Client, Server
Arena round
end note
Client <- Server : EndArena
end
Client <- Server : FinishGame

== Arena round ==
loop each frame until there is an arena winner
group any of the following player actions:
Client ->> Server : MovePlayer
Client ->> Server : CastSkill
end
Client <[#purple]- Server : Step
Client <<[#purple]- Server : ArenaChange
Client <[#purple]- Server : GameStep
Client <<[#purple]- Server : GameEvent
end

@enduml
14 changes: 7 additions & 7 deletions src/client/server_proxy.rs
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ pub enum ApiCall {
pub enum ServerEvent {
ConnectionResult(ConnectionStatus),
CheckedVersion(String, Compatibility),
ServerInfo(ServerInfo),
PlayerListUpdated(Vec<char>),
StaticServerInfo(ServerInfo),
DynamicServerInfo(Vec<char>),
LoginStatus(LoginStatus),
UdpReachable(bool),
StartGame(GameInfo),
Expand Down Expand Up @@ -252,11 +252,11 @@ where C: Fn(ServerEvent) {
ServerMessage::Version(server_version, server_side_compatibility) => {
self.process_version(server_version, server_side_compatibility);
},
ServerMessage::ServerInfo(info) => {
self.process_server_info(info);
ServerMessage::StaticServerInfo(info) => {
self.process_static_server_info(info);
},
ServerMessage::DynamicServerInfo(players) => {
(self.event_callback)(ServerEvent::PlayerListUpdated(players));
(self.event_callback)(ServerEvent::DynamicServerInfo(players));
},
ServerMessage::LoginStatus(character, status) => {
self.process_login_status(character, status);
Expand Down Expand Up @@ -320,9 +320,9 @@ where C: Fn(ServerEvent) {
(self.event_callback)(ServerEvent::CheckedVersion(server_version, compatibility));
}

fn process_server_info(&mut self, info: ServerInfo) {
fn process_static_server_info(&mut self, info: ServerInfo) {
self.connection.udp_port = Some(info.udp_port);
(self.event_callback)(ServerEvent::ServerInfo(info));
(self.event_callback)(ServerEvent::StaticServerInfo(info));
}

fn process_login_status(&mut self, character: char, status: LoginStatus) {
Expand Down
6 changes: 3 additions & 3 deletions src/client/store.rs
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ impl Store {
}
},

ServerEvent::ServerInfo(info) => {
ServerEvent::StaticServerInfo(info) => {
let game_info = StaticGameInfo {
players_number: info.players_number as usize,
map_size: info.map_size as usize,
Expand All @@ -141,8 +141,8 @@ impl Store {
}
},

ServerEvent::PlayerListUpdated(player_names) => {
self.state.server.logged_players = player_names;
ServerEvent::DynamicServerInfo(logged_players) => {
self.state.server.logged_players = logged_players;
},

ServerEvent::LoginStatus(status) => {
Expand Down
8 changes: 5 additions & 3 deletions src/message.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,10 @@ use std::time::{Duration};
/// Messages that Client sends to Server
#[derive(Serialize, Deserialize, Debug)]
pub enum ClientMessage {
// Messages out of login
// Version
Version(String),

// Server info
SubscribeServerInfo,

// Login messages
Expand All @@ -37,11 +39,11 @@ pub enum ClientMessage {
/// Messages that Server sends to Client
#[derive(Serialize, Deserialize, Debug)]
pub enum ServerMessage {
// Messages out of login
// Version
Version(String, Compatibility),

// Server info
ServerInfo(ServerInfo),
StaticServerInfo(ServerInfo),
DynamicServerInfo(Vec<char>), //player list

// Login messages
Expand Down
2 changes: 1 addition & 1 deletion src/server/server_manager.rs
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ impl<'a> ServerManager<'a> {

log::trace!("Client {} has subscribed to server info", endpoint.addr());
self.subscriptions.insert(endpoint);
self.network.send(endpoint, ServerMessage::ServerInfo(info));
self.network.send(endpoint, ServerMessage::StaticServerInfo(info));
}

fn process_login(&mut self, endpoint: Endpoint, player_symbol: char) {
Expand Down

0 comments on commit fd22a9c

Please sign in to comment.