예제 #1
0
 public void TakeDamage(Guid TankId, float Amount)
 {
     try
     {
         TakeDamageRequest tdr = new TakeDamageRequest();
         tdr.Amount            = Amount;
         tdr.TankGameSessionId = _CurrentGameSessionId;
         tdr.TankId            = TankId;
         m_client.Invoke("Que", tdr.CreateRequest(RequestProcessorEnum.TakeDamage, _UserId).Serialize());
     }
     catch (Exception E)
     {
         UnityEngine.Debug.Log(E.Message);
     }
 }
예제 #2
0
        public async Task <IResponse> Process(IRequest request)
        {
            try
            {
                TakeDamageRequest  rq       = request as TakeDamageRequest;
                TakeDamageResponse response = new TakeDamageResponse();
                response.Status            = HttpStatusCode.OK;
                response.TankGameSessionId = rq.TankGameSessionId;
                response.TankId            = rq.TankId;

                //Do processing and notify clients
                ActorId SessionActorId = new ActorId(rq.TankGameSessionId);
                await SessionActorId.Proxy <ITankGameSession>().TakeDamage(new ActorId(rq.TankId), rq.Amount);

                //Send back response (dummy response here since we only support que in this call)
                return(await Task.FromResult(response));
            }
            catch (Exception E)
            {
                E.Log();
                ErrorResponse errorresponse = new ErrorResponse(E.Message);
                return(errorresponse);
            }
        }