WerWolfInteraktion/Player.cs
2026-06-16 13:46:12 +02:00

254 lines
9.3 KiB
C#

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<Tag> tags = new List<Tag>();
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<Role> GetRoleAssignmentForPlayerCount(int playerCount)
{
List<Role> roles = new List<Role>();
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;
}
}
}