コード例 #1
0
        public static void StepNext()
        {
            NextRequest nextRequest = new NextRequest();

            nextRequest.arguments.threadId = threadId;
            Assert.True(VSCodeDebugger.Request(nextRequest).Success);
        }
コード例 #2
0
        public void ExecuteCommand(IConnection connection, AsyncBinaryCommandInfo request)
        {
            try
            {
                if (request.Buffer == null || request.Buffer.Length == 0)
                {
                    // do some logging here
                    connection.BeginDisconnect();
                    return;
                }

                NextRequest  nr       = request.Buffer.Deserialize <NextRequest>();
                NextResponse response = new NextResponse();
                for (var i = 0; i < nr.Count; i++)
                {
                    response.Sequence.Add(Generation.Next());
                }

                // get from protocol buffers
                request.Reply(connection, response.Serialize());
            }
            catch (Exception exp)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Error.WriteLine(exp.Message);
                Console.Error.WriteLine(exp.StackTrace);
                Console.ForegroundColor = ConsoleColor.Gray;
            }
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: puremourning/netcoredbg
        public void StepOver(string caller_trace)
        {
            NextRequest nextRequest = new NextRequest();

            nextRequest.arguments.threadId = threadId;
            Assert.True(VSCodeDebugger.Request(nextRequest).Success, @"__FILE__:__LINE__" + "\n" + caller_trace);
        }
コード例 #4
0
 protected override bool canUse(Game game, Request nowRequest, FreeUse useInfo, out NextRequest nextRequest)
 {
     nextRequest = new NextRequest()
     {
         RequestInfo = "无法主动打出"
     };
     return(false);
 }
コード例 #5
0
ファイル: Client.cs プロジェクト: james-andrewsmith/snowflake
        public Task <long> NextAsync()
        {
            var request = new NextRequest();

            return(_socket.Send("next", request.Serialize(), data => data.Buffer.Deserialize <NextResponse>())
                   .ContinueWith(t =>
            {
                return t.Result.Sequence.FirstOrDefault();
            }));
        }
コード例 #6
0
ファイル: Client.cs プロジェクト: james-andrewsmith/snowflake
        public Task <List <long> > NextAsync(int count)
        {
            var request = new NextRequest(count);

            return(_socket.Send("next", request.Serialize(), data => data.Buffer.Deserialize <NextResponse>())
                   .ContinueWith(t =>
            {
                return t.Result.Sequence;
            }));
        }
コード例 #7
0
 protected override bool canUse(Game game, Request nowRequest, FreeUse useInfo, out NextRequest nextRequest)
 {
     if (nowRequest is FreeUseRequest)
     {
         nextRequest = new NextRequest()
         {
             RequestInfo = "无法主动打出"
         };
         return(false);
     }
     return(base.canUse(game, nowRequest, useInfo, out nextRequest));
 }
コード例 #8
0
ファイル: GameRepository.cs プロジェクト: f-miyu/Jinrou
        public async Task NextAsync(string gameId, string token)
        {
            try
            {
                var request = new NextRequest
                {
                    GameId = gameId,
                };

                await _client.NextAsync(request, CreateHeader(token));
            }
            catch (RpcException ex)
            {
                throw JinrouExceptionMapper.Transform(ex);
            }
            catch
            {
                throw;
            }
        }
コード例 #9
0
ファイル: ActionCard.cs プロジェクト: Shedarshian/TouhouTrek
        public bool CanUse(Game game, Request nowRequest, FreeUse useInfo, out NextRequest nextRequest)
        {
            NextRequest      request;
            bool             result   = canUse(game, nowRequest, useInfo, out request);
            EventData <bool> boolData = new EventData <bool>()
            {
                data = result
            };
            EventData <NextRequest> nextRequestData = new EventData <NextRequest>()
            {
                data = request
            };
            Task task = game.EventSystem.Call(EventEnum.onCheckCanUse, game.ActivePlayerSeat(), this, boolData, nextRequestData);

            if (!task.GetAwaiter().IsCompleted)
            {
                Log.Error($"EventEnum.onCheckCanUse必须同步运行");
                nextRequest = request;
                return(result);
            }
            task.GetAwaiter().GetResult();
            nextRequest = nextRequestData.data;
            return(boolData.data);
        }
コード例 #10
0
ファイル: CR_CP001.cs プロジェクト: Shedarshian/TouhouTrek
 protected override bool canUse(Game game, Request nowRequest, FreeUse useInfo, out NextRequest nextRequest)
 {
     nextRequest = null;
     if (!turnLimit.CanUse())
     {
         return(false);
     }
     if (useInfo.Source.Count != 1)
     {
         nextRequest = new CardChooseRequest()
         {
         };
         return(false);
     }
     else
     {
         return(true);
     }
 }
コード例 #11
0
        protected override bool canUse(Game game, Request nowRequest, FreeUse useInfo, out NextRequest nextRequest)
        {
            nextRequest = null;
            switch (nowRequest)
            {
            case UseLimitCard useLimitCard:
                return(Effects.UseWayResponse.CheckLimit(game, useLimitCard, useInfo, ref nextRequest, this));

            case FreeUseRequest freeUse:
                if (useInfo.PlayersId.Count < 1)
                {
                    nextRequest = new HeroChooseRequest()
                    {
                    };
                    return(false);
                }
                else
                {
                    return(true);
                }
            }
            return(false);
        }
コード例 #12
0
ファイル: AT_N003.cs プロジェクト: Shedarshian/TouhouTrek
 protected override bool canUse(Game game, Request nowRequest, FreeUse useInfo, out NextRequest nextRequest)
 {
     nextRequest = null;
     return(true);
 }
コード例 #13
0
ファイル: AT_N012.cs プロジェクト: 2514962398qqcom/TouhouTrek
 protected override bool canUse(Game game, Request nowRequest, FreeUse useInfo, out NextRequest nextRequest)
 {
     if (useInfo.PlayersId.Count < 1)
     {
         nextRequest = new HeroChooseRequest();
         return(false);
     }
     return(base.canUse(game, nowRequest, useInfo, out nextRequest));
 }
コード例 #14
0
 protected override bool canUse(Game game, Request nowRequest, FreeUse useInfo, out NextRequest nextRequest)
 {
     if (useInfo.PlayersId.Count < 1)
     {
         nextRequest = new HeroChooseRequest();
         return false;
     }
     else
     {
         nextRequest = null;
         return true;
     }
 }
コード例 #15
0
ファイル: AT_N014.cs プロジェクト: 2514962398qqcom/TouhouTrek
 protected override bool canUse(Game game, Request nowRequest, FreeUse useInfo, out NextRequest nextRequest)
 {
     if (game.UsedEventDeck.Count < 1)
     {
         nextRequest = null;
         return(false);
     }
     return(base.canUse(game, nowRequest, useInfo, out nextRequest));
 }
コード例 #16
0
ファイル: CR_IP001.cs プロジェクト: Shedarshian/TouhouTrek
 protected override bool canUse(Game game, Request nowRequest, FreeUse useInfo, out NextRequest nextRequest)
 {
     //throw new NotImplementedException();
     nextRequest = null;
     return(true);
 }
コード例 #17
0
        /// <summary>
        /// 能否使用卡牌,默认没有任何条件,但是会对要求使用特定类型卡片的情况进行检查,所以在重写该方法的时候除了特殊情况应该返回base.canUse
        /// </summary>
        /// <param name="game"></param>
        /// <param name="nowRequest"></param>
        /// <param name="useInfo"></param>
        /// <param name="nextRequest"></param>
        /// <returns></returns>
        protected virtual bool canUse(Game game, Request nowRequest, FreeUse useInfo, out NextRequest nextRequest)
        {
            nextRequest = null;
            switch (nowRequest)
            {
            case UseLimitCardRequest useLimitCard:
                return(Effects.UseWayResponse.CheckLimit(game, useLimitCard, useInfo, ref nextRequest, game.GetCard(useInfo.Source[0])));

            case FreeUseRequest _:
                return(true);
            }
            return(false);
        }
コード例 #18
0
 protected override bool canUse(Game game, Request nowRequest, FreeUse useInfo, out NextRequest nextRequest)
 {
     if (_changeTarget == null)
     {
         nextRequest = null;
         return(false);
     }
     else
     {
         return(_changeTarget.CanUse(game, nowRequest, useInfo, out nextRequest));
     }
 }
コード例 #19
0
        protected override bool canUse(Game game, Request nowRequest, FreeUse useInfo, out NextRequest nextRequest)
        {
            nextRequest = null;
            switch (nowRequest)
            {
            case UseLimitCard useLimitCard:
                return(Effects.UseWayResponse.CheckLimit(game, useLimitCard, useInfo, ref nextRequest, this));

            case FreeUseRequest _:
                return(true);
            }
            return(false);
        }
コード例 #20
0
ファイル: ActionCard.cs プロジェクト: Shedarshian/TouhouTrek
 protected abstract bool canUse(Game game, Request nowRequest, FreeUse useInfo, out NextRequest nextRequest);
コード例 #21
0
 /// <summary>
 /// 被要求使用指定卡时的使用返回
 /// </summary>
 /// <param name="game"></param>
 /// <param name="useLimt"></param>
 /// <param name="useInfo"></param>
 /// <param name="nextRequest"></param>
 /// <param name="card"></param>
 /// <returns></returns>
 public static bool CheckLimit(Game game, UseLimitCard useLimt, FreeUse useInfo, ref NextRequest nextRequest, Card card)
 {
     if (useLimt.CardType != CardHelper.getId(card))
     {
         return(false);
     }
     else
     {
         if (useInfo.Source.Count != 1)
         {
             nextRequest = new CardChooseRequest()
             {
                 RequestInfo = TipHelper.GetText("UseLimitTip", card.Name),
             };
             return(false);
         }
         else
         {
             return(true);
         }
     }
 }
コード例 #22
0
ファイル: AT_N008.cs プロジェクト: 2514962398qqcom/TouhouTrek
 protected override bool canUse(Game game, Request nowRequest, FreeUse useInfo, out NextRequest nextRequest)
 {
     if (nowRequest is FreeUseRequest && useInfo.PlayersId.Count < 1)
     {
         nextRequest = new HeroChooseRequest()
         {
             PlayerId = useInfo.PlayerId, Number = 1, RequestInfo = "选择目标玩家"
         };
         return(false);
     }
     return(base.canUse(game, nowRequest, useInfo, out nextRequest));
 }