author | alfadur |
Wed, 07 Nov 2018 03:35:56 +0300 | |
changeset 14156 | 3c8a33ba06ba |
parent 13806 | 5fb40c8e5542 |
permissions | -rw-r--r-- |
13483 | 1 |
pub type ClientId = usize; |
2 |
pub type RoomId = usize; |
|
3 |
||
13800
e335daaa77a9
Add hogs per team named constant that absolutely no one asked for
alfadur
parents:
13483
diff
changeset
|
4 |
pub const MAX_HEDGEHOGS_PER_TEAM: u8 = 8; |
e335daaa77a9
Add hogs per team named constant that absolutely no one asked for
alfadur
parents:
13483
diff
changeset
|
5 |
|
13124
1e39b8749072
separated the server logic from all the async io mess.
alfadur
parents:
12136
diff
changeset
|
6 |
#[derive(PartialEq, Eq, Clone, Debug)] |
12135 | 7 |
pub enum ServerVar { |
8 |
MOTDNew(String), |
|
9 |
MOTDOld(String), |
|
10 |
LatestProto(u32), |
|
11 |
} |
|
12 |
||
13124
1e39b8749072
separated the server logic from all the async io mess.
alfadur
parents:
12136
diff
changeset
|
13 |
#[derive(PartialEq, Eq, Clone, Debug)] |
12135 | 14 |
pub enum GameCfg { |
13427 | 15 |
FeatureSize(u32), |
16 |
MapType(String), |
|
17 |
MapGenerator(u32), |
|
18 |
MazeSize(u32), |
|
19 |
Seed(String), |
|
20 |
Template(u32), |
|
12135 | 21 |
|
13427 | 22 |
Ammo(String, Option<String>), |
13806 | 23 |
Scheme(String, Vec<String>), |
13427 | 24 |
Script(String), |
25 |
Theme(String), |
|
26 |
DrawnMap(String) |
|
12135 | 27 |
} |
28 |
||
13124
1e39b8749072
separated the server logic from all the async io mess.
alfadur
parents:
12136
diff
changeset
|
29 |
#[derive(PartialEq, Eq, Clone, Debug)] |
12135 | 30 |
pub struct TeamInfo { |
13424 | 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, |
|
13800
e335daaa77a9
Add hogs per team named constant that absolutely no one asked for
alfadur
parents:
13483
diff
changeset
|
39 |
pub hedgehogs: [HedgehogInfo; MAX_HEDGEHOGS_PER_TEAM as usize], |
12135 | 40 |
} |
41 |
||
13124
1e39b8749072
separated the server logic from all the async io mess.
alfadur
parents:
12136
diff
changeset
|
42 |
#[derive(PartialEq, Eq, Clone, Debug)] |
12135 | 43 |
pub struct HedgehogInfo { |
13424 | 44 |
pub name: String, |
45 |
pub hat: String, |
|
12135 | 46 |
} |
13483 | 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 |
} |