private static Supervisor SupervisorProducer(ConfigurationSvc.PlayerData player)
 {
     if (player == null)
     {
         throw new ArgumentException("Player data should not be null");
     }
     return(new Supervisor(player));
 }
 private Supervisor(ConfigurationSvc.PlayerData player)
 {
     this.playerData = player;
     IsAlive         = true;
     IsSuspended     = true;
     thread          = new Thread(this.CheckRules);
     thread.Start();
 }
 private Supervisor CreateSupervisor(ConfigurationSvc.PlayerData player)
 {
     return(SpervisorFactory(player));
 }
 public Supervisor GetSupervisorFor(ConfigurationSvc.PlayerData player)
 {
     return(supervisors.GetObjectFor <ConfigurationSvc.PlayerData>(player));
 }