gameServer2/src/server/coretypes.rs
changeset 14415 06672690d71b
parent 14414 6843c4551cde
child 14416 96624a6cdb93
equal deleted inserted replaced
14414:6843c4551cde 14415:06672690d71b
     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 }