示例#1
0
文件: WSStage.cs 项目: Joe4evr/WSBase
        internal async Task TakeDamage(int soul)
        {
            for (int i = 0; i < soul; i++)
            {
                var tmp = Library.Draw();
                ResolutionZone.Enqueue(tmp);
                await CheckInterrupts();

                if (tmp is IWSClimaxCard)
                {
                    while (ResolutionZone.Count > 0)
                    {
                        WaitingRoom.Put(ResolutionZone.Dequeue());
                    }
                    return;
                }
            }

            while (ResolutionZone.Count > 0)
            {
                Clock.Put(ResolutionZone.Dequeue());
                await CheckInterrupts();
            }

            await RefreshPoint();
        }
示例#2
0
文件: WSStage.cs 项目: Joe4evr/WSBase
        private async Task Level()
        {
            var promise = new TaskCompletionSource <WSLevelChoice>();

            Task.Factory.StartNew(() => promise.SetResult(ChooseLevelUp()));
            var result = await promise.Task;

            MustLevel = false;

            LevelZone.Put(Clock.TakeAt((int)result));
            foreach (var card in Clock.Clear())
            {
                WaitingRoom.Put(card);
            }

            //await CheckInterrupts();
        }