public ElectionRules GetRules(string type, string mode) { var rules = new ElectionRules { Num = 0, Extra = 0, // CanVote = "", // CanReceive = "", // IsSingleNameElection = false }; switch (type) { case "LSA": // rules.CanVote = CanVoteOrReceive.All; // rules.CanVoteLocked = true; rules.Extra = 0; rules.ExtraLocked = true; switch (mode) { case ElectionMode.Normal: rules.Num = 9; rules.NumLocked = true; // rules.CanReceive = CanVoteOrReceive.All; break; case ElectionMode.TieBreak: rules.Num = 1; rules.NumLocked = false; // rules.CanReceive = CanVoteOrReceive.NamedPeople; break; case ElectionMode.ByElection: rules.Num = 1; rules.NumLocked = false; // rules.CanReceive = CanVoteOrReceive.All; break; } // rules.CanReceiveLocked = true; break; case "NSA": // rules.CanVote = CanVoteOrReceive.NamedPeople; // delegates // rules.CanVoteLocked = true; rules.Extra = 0; rules.ExtraLocked = true; switch (mode) { case ElectionMode.Normal: rules.Num = 9; rules.NumLocked = true; // rules.CanReceive = CanVoteOrReceive.All; break; case ElectionMode.TieBreak: rules.Num = 1; rules.NumLocked = false; // rules.CanReceive = CanVoteOrReceive.NamedPeople; break; case ElectionMode.ByElection: rules.Num = 1; rules.NumLocked = false; // rules.CanReceive = CanVoteOrReceive.All; break; } // rules.CanReceiveLocked = true; break; case "Con": // rules.CanVote = CanVoteOrReceive.All; // rules.CanVoteLocked = true; switch (mode) { case ElectionMode.Normal: rules.Num = 5; rules.NumLocked = false; rules.Extra = 3; rules.ExtraLocked = false; // rules.CanReceive = CanVoteOrReceive.All; break; case ElectionMode.TieBreak: rules.Num = 1; rules.NumLocked = false; rules.Extra = 0; rules.ExtraLocked = true; // rules.CanReceive = CanVoteOrReceive.NamedPeople; break; case ElectionMode.ByElection: throw new ApplicationException("Unit Conventions cannot have by-elections"); } // rules.CanReceiveLocked = true; break; case "Reg": // rules.CanVote = CanVoteOrReceive.NamedPeople; // LSA members // rules.CanVoteLocked = false; switch (mode) { case ElectionMode.Normal: rules.Num = 9; rules.NumLocked = false; rules.Extra = 7; rules.ExtraLocked = false; // rules.CanReceive = CanVoteOrReceive.All; break; case ElectionMode.TieBreak: rules.Num = 1; rules.NumLocked = false; rules.Extra = 0; rules.ExtraLocked = true; // rules.CanReceive = CanVoteOrReceive.NamedPeople; break; case ElectionMode.ByElection: // Regional Councils often do not have by-elections, but some countries may allow it? rules.Num = 1; rules.NumLocked = false; rules.Extra = 0; rules.ExtraLocked = true; // rules.CanReceive = CanVoteOrReceive.All; break; } // rules.CanReceiveLocked = true; break; case "Oth": // rules.CanVote = CanVoteOrReceive.All; // rules.CanVoteLocked = false; // rules.CanReceiveLocked = false; rules.NumLocked = false; rules.ExtraLocked = false; switch (mode) { case ElectionMode.Normal: rules.Num = 9; rules.Extra = 0; // rules.CanReceive = CanVoteOrReceive.All; break; case ElectionMode.TieBreak: rules.Num = 1; rules.Extra = 0; // rules.CanReceive = CanVoteOrReceive.NamedPeople; break; case ElectionMode.ByElection: rules.Num = 1; rules.Extra = 0; // rules.CanReceive = CanVoteOrReceive.All; break; } break; } return(rules); }
public ElectionRules GetRules(string type, string mode) { var rules = new ElectionRules { Num = 0, Extra = 0, CanVote = "", CanReceive = "", IsSingleNameElection = false }; switch (type) { case "LSA": rules.CanVote = CanVoteOrReceive.All; rules.CanVoteLocked = true; rules.Extra = 0; rules.ExtraLocked = true; switch (mode) { case ElectionMode.Normal: rules.Num = 9; rules.NumLocked = true; rules.CanReceive = CanVoteOrReceive.All; break; case ElectionMode.TieBreak: rules.Num = 1; rules.NumLocked = false; rules.CanReceive = CanVoteOrReceive.NamedPeople; break; case ElectionMode.ByElection: rules.Num = 1; rules.NumLocked = false; rules.CanReceive = CanVoteOrReceive.All; break; } rules.CanReceiveLocked = true; break; case "NSA": rules.CanVote = CanVoteOrReceive.NamedPeople; // delegates rules.CanVoteLocked = true; rules.Extra = 0; rules.ExtraLocked = true; switch (mode) { case ElectionMode.Normal: rules.Num = 9; rules.NumLocked = true; rules.CanReceive = CanVoteOrReceive.All; break; case ElectionMode.TieBreak: rules.Num = 1; rules.NumLocked = false; rules.CanReceive = CanVoteOrReceive.NamedPeople; break; case ElectionMode.ByElection: rules.Num = 1; rules.NumLocked = false; rules.CanReceive = CanVoteOrReceive.All; break; } rules.CanReceiveLocked = true; break; case "Con": rules.CanVote = CanVoteOrReceive.All; rules.CanVoteLocked = true; switch (mode) { case ElectionMode.Normal: rules.Num = 5; rules.NumLocked = false; rules.Extra = 3; rules.ExtraLocked = false; rules.CanReceive = CanVoteOrReceive.All; break; case ElectionMode.TieBreak: rules.Num = 1; rules.NumLocked = false; rules.Extra = 0; rules.ExtraLocked = true; rules.CanReceive = CanVoteOrReceive.NamedPeople; break; case ElectionMode.ByElection: throw new ApplicationException("Unit Conventions cannot have by-elections"); } rules.CanReceiveLocked = true; break; case "Reg": rules.CanVote = CanVoteOrReceive.NamedPeople; // LSA members rules.CanVoteLocked = false; switch (mode) { case ElectionMode.Normal: rules.Num = 9; rules.NumLocked = false; rules.Extra = 3; rules.ExtraLocked = false; rules.CanReceive = CanVoteOrReceive.All; break; case ElectionMode.TieBreak: rules.Num = 1; rules.NumLocked = false; rules.Extra = 0; rules.ExtraLocked = true; rules.CanReceive = CanVoteOrReceive.NamedPeople; break; case ElectionMode.ByElection: // Regional Councils often do not have by-elections, but some countries may allow it? rules.Num = 1; rules.NumLocked = false; rules.Extra = 0; rules.ExtraLocked = true; rules.CanReceive = CanVoteOrReceive.All; break; } rules.CanReceiveLocked = true; break; case "Oth": rules.CanVote = CanVoteOrReceive.All; rules.CanVoteLocked = false; rules.CanReceiveLocked = false; rules.NumLocked = false; rules.ExtraLocked = false; switch (mode) { case ElectionMode.Normal: rules.Num = 9; rules.Extra = 0; rules.CanReceive = CanVoteOrReceive.All; break; case ElectionMode.TieBreak: rules.Num = 1; rules.Extra = 0; rules.CanReceive = CanVoteOrReceive.NamedPeople; break; case ElectionMode.ByElection: rules.Num = 1; rules.Extra = 0; rules.CanReceive = CanVoteOrReceive.All; break; } break; } return rules; }