Ejemplo n.º 1
0
 public void Accepted()
 {
     ACCEPTED = true;
     //SP.Stop();
     //DSrest.Accept(seplayer.Name, MMID);
     _mmrep.Accept(seplayer.Name, MMID.ToString());
 }
Ejemplo n.º 2
0
 public void Declined()
 {
     DECLINED = true;
     //SP.Stop();
     //DSrest.Decline(seplayer.Name, MMID);
     _mmrep.Decline(seplayer.Name, MMID.ToString());
     Reset();
 }
Ejemplo n.º 3
0
        public void Accept(int id)
        {
            MMgame game = new MMgame();

            while (ALL_ACCEPTED == false && ALL_DECLINED == false)
            {
                Thread.Sleep(500);
                Info = "Waiting for all players to accept ...";
                //game = DSrest.Status(id);
                game    = _mmrep.Status(id.ToString()).Result;
                preGame = game;
                if (game == null)
                {
                    //Console.WriteLine("game = null {0} => ({1})", seplayer.Name, id);
                    if (DECLINED == false && ACCEPTED == true)
                    {
                        ALL_DECLINED = true;
                        Info         = "# Game not found :( - Searching again ..";
                        Thread.Sleep(2500);
                        GAMEFOUND = false;
                        Task.Run(() => { Searching(); });
                        return;
                    }
                }
                else if (game.Declined == true)
                {
                    //Console.WriteLine("game = declined {0} => {1} ({2})", seplayer.Name, game.ID, id);
                    List <BasePlayer> ilist = new List <BasePlayer>();
                    ilist.AddRange(game.Team1);
                    ilist.AddRange(game.Team2);
                    Lobby.Clear();
                    foreach (var pl in ilist)
                    {
                        Lobby.TryAdd(pl.Name, pl.Accepted);
                    }
                    Thread.Sleep(1500);
                    if (DECLINED == false && ACCEPTED == true)
                    {
                        ALL_DECLINED = true;

                        Info = "# Someone declined :( - Searching again ..";
                        Thread.Sleep(2500);
                        GAMEFOUND = false;
                        Task.Run(() => { Searching(); });
                        return;
                    }
                }
                else
                {
                    //Console.WriteLine("Some accepted = true {0} => {1} ({2})", seplayer.Name, game.ID, id);
                    List <BasePlayer> ilist = new List <BasePlayer>();
                    ilist.AddRange(game.Team1);
                    ilist.AddRange(game.Team2);
                    Lobby.Clear();
                    foreach (var pl in ilist)
                    {
                        Lobby.TryAdd(pl.Name, pl.Accepted);
                    }

                    if (game.Accepted == true)
                    {
                        GAMEFOUND = false;
                        Lobby.Clear();
                        Info         = "Game ready!";
                        ALL_ACCEPTED = true;
                        GameReady(game);
                        return;
                    }
                }

                if (Done > 100)
                {
                    Reset();
                }
                else if (Done > 85)
                {
                    if (ACCEPTED == false)
                    {
                        Declined();
                    }
                }

                if (DECLINED == true)
                {
                    Info      = "We declined/timed out :(";
                    GAMEFOUND = false;
                    //DSrest.Decline(seplayer.Name, MMID);
                    _mmrep.Decline(seplayer.Name, MMID.ToString());
                    ALL_DECLINED = true;
                }

                Thread.Sleep(500);
                _time = _time.Add(TimeSpan.FromSeconds(0.5));
                Done += 1.428571429;
                Done += 1.428571429;
            }
        }