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