예제 #1
0
        public void Cancel()
        {
            var p    = new Player();
            var mm   = MatchMaker.Create();
            var decl = new MatchDecl(array_up(p), new List <Player>());

            Assert.AreEqual(MatchMaker.State.NotQueued, mm.Cancel().new_state);

            mm.Queue(ArenaServices.MatchMode.Skirmish, ArenaServices.Arena.Agar, ArenaServices.TeamSize.One);
            Assert.AreEqual(MatchMaker.State.NotQueued, mm.Cancel().new_state);

            mm.Queue(ArenaServices.MatchMode.Skirmish, ArenaServices.Arena.Agar, ArenaServices.TeamSize.One);
            mm.AwaitingAccept(decl);
            Assert.AreEqual(MatchMaker.State.NotQueued, mm.Cancel().new_state);

            mm.Queue(ArenaServices.MatchMode.Skirmish, ArenaServices.Arena.Agar, ArenaServices.TeamSize.One);
            mm.AwaitingAccept(decl);
            mm.AnswerPending(p, true);
            Assert.AreEqual(MatchMaker.State.NotQueued, mm.Cancel().new_state);

            mm.Queue(ArenaServices.MatchMode.Skirmish, ArenaServices.Arena.Agar, ArenaServices.TeamSize.One);
            mm.AwaitingAccept(decl);
            mm.AnswerPending(p, true);
            mm.InArena(new DummyArena());
            Assert.AreEqual(MatchMaker.State.InArena, mm.Cancel().new_state);
        }
예제 #2
0
        public void FullLineFirstRefused()
        {
            var p1 = new Player();
            var p2 = new Player();
            var mm = MatchMaker.Create();

            Assert.AreEqual(MatchMaker.State.Queued, mm.Queue(ArenaServices.MatchMode.Skirmish, ArenaServices.Arena.Agar, ArenaServices.TeamSize.One));
            var match_decl = new MatchDecl(array_up(p1), array_up(p2));

            Assert.AreEqual(MatchMaker.State.AwaitingAccept, mm.AwaitingAccept(match_decl));
            Assert.AreEqual(new MatchMaker.AnswerPendingResult
            {
                all_is_ready = false,
                match_decl   = match_decl,
                player_state = MatchMaker.State.NotQueued
            }, mm.AnswerPending(p1, false));

            var mm2 = MatchMaker.Create();

            Assert.AreEqual(MatchMaker.State.Queued, mm2.Queue(ArenaServices.MatchMode.Skirmish, ArenaServices.Arena.Agar, ArenaServices.TeamSize.One));
            Assert.AreEqual(MatchMaker.State.AwaitingAccept, mm2.AwaitingAccept(match_decl));
            Assert.AreEqual(new MatchMaker.AnswerPendingResult
            {
                all_is_ready = false,
                match_decl   = match_decl,
                player_state = MatchMaker.State.AwaitingOtherPlayers
            }, mm2.AnswerPending(p2, true));
        }
예제 #3
0
 internal void AddMatchDecl(MatchDecl decl)
 {
     match_decls_in_flux.Enqueue(new MatchDeclWork
     {
         match_decl = decl,
         added      = DateTime.Now
     });
 }