equal
deleted
inserted
replaced
22 } |
22 } |
23 |
23 |
24 #[derive(Clone, Serialize, Deserialize)] |
24 #[derive(Clone, Serialize, Deserialize)] |
25 struct Scheme { |
25 struct Scheme { |
26 name: String, |
26 name: String, |
27 settings: Option<Vec<String>> |
27 settings: Vec<String> |
28 } |
28 } |
29 |
29 |
30 #[derive(Clone, Serialize, Deserialize)] |
30 #[derive(Clone, Serialize, Deserialize)] |
31 struct RoomConfig { |
31 struct RoomConfig { |
32 feature_size: u32, |
32 feature_size: u32, |
52 maze_size: 0, |
52 maze_size: 0, |
53 seed: "seed".to_string(), |
53 seed: "seed".to_string(), |
54 template: 0, |
54 template: 0, |
55 |
55 |
56 ammo: Ammo {name: "Default".to_string(), settings: None }, |
56 ammo: Ammo {name: "Default".to_string(), settings: None }, |
57 scheme: Scheme {name: "Default".to_string(), settings: None }, |
57 scheme: Scheme {name: "Default".to_string(), settings: Vec::new() }, |
58 script: "Normal".to_string(), |
58 script: "Normal".to_string(), |
59 theme: "\u{1f994}".to_string(), |
59 theme: "\u{1f994}".to_string(), |
60 drawn_map: None |
60 drawn_map: None |
61 } |
61 } |
62 } |
62 } |
178 |
178 |
179 pub fn addable_hedgehogs(&self) -> u8 { |
179 pub fn addable_hedgehogs(&self) -> u8 { |
180 MAX_HEDGEHOGS_IN_ROOM - self.hedgehogs_number() |
180 MAX_HEDGEHOGS_IN_ROOM - self.hedgehogs_number() |
181 } |
181 } |
182 |
182 |
183 pub fn add_team(&mut self, owner_id: ClientId, mut team: TeamInfo) -> &TeamInfo { |
183 pub fn add_team(&mut self, owner_id: ClientId, mut team: TeamInfo, preserve_color: bool) -> &TeamInfo { |
184 team.color = iter::repeat(()).enumerate() |
184 if !preserve_color { |
185 .map(|(i, _)| i as u8).take(u8::max_value() as usize + 1) |
185 team.color = iter::repeat(()).enumerate() |
186 .find(|i| self.teams.iter().all(|(_, t)| t.color != *i )) |
186 .map(|(i, _)| i as u8).take(u8::max_value() as usize + 1) |
187 .unwrap_or(0u8); |
187 .find(|i| self.teams.iter().all(|(_, t)| t.color != *i)) |
|
188 .unwrap_or(0u8) |
|
189 }; |
188 team.hedgehogs_number = if self.teams.is_empty() { |
190 team.hedgehogs_number = if self.teams.is_empty() { |
189 self.default_hedgehog_number |
191 self.default_hedgehog_number |
190 } else { |
192 } else { |
191 self.teams[0].1.hedgehogs_number.min(self.addable_hedgehogs()) |
193 self.teams[0].1.hedgehogs_number.min(self.addable_hedgehogs()) |
192 }; |
194 }; |