1 pub type ClientId = usize; |
|
2 pub type RoomId = usize; |
|
3 |
|
4 pub const MAX_HEDGEHOGS_PER_TEAM: u8 = 8; |
|
5 |
|
6 #[derive(PartialEq, Eq, Clone, Debug)] |
|
7 pub enum ServerVar { |
|
8 MOTDNew(String), |
|
9 MOTDOld(String), |
|
10 LatestProto(u32), |
|
11 } |
|
12 |
|
13 #[derive(PartialEq, Eq, Clone, Debug)] |
|
14 pub enum GameCfg { |
|
15 FeatureSize(u32), |
|
16 MapType(String), |
|
17 MapGenerator(u32), |
|
18 MazeSize(u32), |
|
19 Seed(String), |
|
20 Template(u32), |
|
21 |
|
22 Ammo(String, Option<String>), |
|
23 Scheme(String, Vec<String>), |
|
24 Script(String), |
|
25 Theme(String), |
|
26 DrawnMap(String) |
|
27 } |
|
28 |
|
29 #[derive(PartialEq, Eq, Clone, Debug)] |
|
30 pub struct TeamInfo { |
|
31 pub name: String, |
|
32 pub color: u8, |
|
33 pub grave: String, |
|
34 pub fort: String, |
|
35 pub voice_pack: String, |
|
36 pub flag: String, |
|
37 pub difficulty: u8, |
|
38 pub hedgehogs_number: u8, |
|
39 pub hedgehogs: [HedgehogInfo; MAX_HEDGEHOGS_PER_TEAM as usize], |
|
40 } |
|
41 |
|
42 #[derive(PartialEq, Eq, Clone, Debug)] |
|
43 pub struct HedgehogInfo { |
|
44 pub name: String, |
|
45 pub hat: String, |
|
46 } |
|
47 |
|
48 #[derive(PartialEq, Eq, Clone, Debug)] |
|
49 pub enum VoteType { |
|
50 Kick(String), |
|
51 Map(Option<String>), |
|
52 Pause, |
|
53 NewSeed, |
|
54 HedgehogsPerTeam(u8) |
|
55 } |
|
56 |
|
57 #[derive(Clone, Debug)] |
|
58 pub struct Voting { |
|
59 pub ttl: u32, |
|
60 pub voters: Vec<ClientId>, |
|
61 pub votes: Vec<(ClientId, bool)>, |
|
62 pub kind: VoteType |
|
63 } |
|
64 |
|
65 impl Voting { |
|
66 pub fn new(kind: VoteType, voters: Vec<ClientId>) -> Voting { |
|
67 Voting { |
|
68 kind, voters, ttl: 2, |
|
69 votes: Vec::new() |
|
70 } |
|
71 } |
|
72 } |
|