using System; using System.Collections.Generic; using System.Text; namespace Wolf { internal class Player { public string Name = ""; public int? id; public Role role; public bool isAlive = true; public List tags = new List(); public Role PlayerRole { get { return role; } set { role = value; } } public enum Role { werewolf, //wants to kill all villagers villager, // wants to kill all werewolves seer, //can check one player per night if they are a werewolf or not witch, //has one potion to save a player from death and one potion to kill a player amor, // shoots two players with arrows at the beginning of the game, those players become lovers and win together if one of them dies //thief, // can swap their role with another player at the beginning of the game hunter, // if the hunter dies, they can choose to kill another player with them littleGirl // can peek during the night, but if they are caught by the werewolves, they die immediately } public enum Tag { lover, } public Player(string name, int id) { Name = name; this.id = id; } public static List GetRoleAssignmentForPlayerCount(int playerCount) { List roles = new List(); switch (playerCount) { case 6: roles.Add(Role.werewolf); roles.Add(Role.werewolf); roles.Add(Role.seer); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); break; case 7: roles.Add(Role.werewolf); roles.Add(Role.werewolf); roles.Add(Role.seer); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); break; case 8: roles.Add(Role.werewolf); roles.Add(Role.werewolf); roles.Add(Role.seer); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); break; case 9: roles.Add(Role.werewolf); roles.Add(Role.werewolf); roles.Add(Role.seer); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.hunter); roles.Add(Role.amor); break; case 10: roles.Add(Role.werewolf); roles.Add(Role.werewolf); roles.Add(Role.seer); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.littleGirl); roles.Add(Role.hunter); roles.Add(Role.amor); break; case 11: roles.Add(Role.werewolf); roles.Add(Role.werewolf); roles.Add(Role.seer); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.witch); roles.Add(Role.hunter); roles.Add(Role.amor); break; case 12: roles.Add(Role.werewolf); roles.Add(Role.werewolf); roles.Add(Role.werewolf); roles.Add(Role.seer); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.littleGirl); roles.Add(Role.hunter); roles.Add(Role.amor); roles.Add(Role.villager); break; case 13: roles.Add(Role.werewolf); roles.Add(Role.werewolf); roles.Add(Role.werewolf); roles.Add(Role.seer); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.witch); roles.Add(Role.hunter); roles.Add(Role.amor); roles.Add(Role.villager); break; case 14: roles.Add(Role.werewolf); roles.Add(Role.werewolf); roles.Add(Role.werewolf); roles.Add(Role.seer); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.littleGirl); roles.Add(Role.hunter); roles.Add(Role.amor); roles.Add(Role.villager); break; case 15: roles.Add(Role.werewolf); roles.Add(Role.werewolf); roles.Add(Role.werewolf); roles.Add(Role.seer); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.witch); roles.Add(Role.hunter); roles.Add(Role.amor); roles.Add(Role.villager); break; case 16: roles.Add(Role.werewolf); roles.Add(Role.werewolf); roles.Add(Role.werewolf); roles.Add(Role.seer); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.witch); roles.Add(Role.littleGirl); roles.Add(Role.hunter); roles.Add(Role.amor); roles.Add(Role.villager); break; case 17: roles.Add(Role.werewolf); roles.Add(Role.werewolf); roles.Add(Role.werewolf); roles.Add(Role.werewolf); roles.Add(Role.seer); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.witch); roles.Add(Role.littleGirl); roles.Add(Role.hunter); roles.Add(Role.amor); roles.Add(Role.villager); break; case 18: roles.Add(Role.werewolf); roles.Add(Role.werewolf); roles.Add(Role.werewolf); roles.Add(Role.werewolf); roles.Add(Role.seer); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.villager); roles.Add(Role.witch); roles.Add(Role.littleGirl); roles.Add(Role.hunter); roles.Add(Role.amor); roles.Add(Role.villager); break; default: throw new ArgumentException($"Spieleranzahl {playerCount} wird nicht unterstützt. Mindestens 6 Spieler erforderlich."); } return roles; } } }