예제 #1
0
        public OperationResponse OnOperationRequest(PeerBase peer, OperationRequest operationRequest, SendParameters sendParameters)
        {
            switch ((OperationCode)operationRequest.OperationCode)
            {
            case OperationCode.EnterWorld:
                return(DefaultResponses.CreateNegativeResponse(operationRequest, ReturnCode.OperationNotAllowed));

            case OperationCode.Move:
                return(OperationMove(peer, operationRequest));

            case OperationCode.CharacterAction:
                return(OperationCharacterAction(peer, operationRequest));

            case OperationCode.StartAiLoop:
                AILooper.Instance.Start();
                return(null);

            case OperationCode.ToggleAiLoop:
                AILooper.Instance.ToggleLoop();
                return(null);

            default:
                return(DefaultResponses.CreateNegativeResponse(operationRequest, ReturnCode.OperationNotSupported));
            }
        }
예제 #2
0
        public OperationResponse OnOperationRequest(PeerBase peer, OperationRequest operationRequest, SendParameters sendParameters)
        {
            switch ((OperationCode)operationRequest.OperationCode)
            {
            case OperationCode.EnterWorld:
                return(OperationEnterWorld(peer, operationRequest, sendParameters));

            default:
                return(DefaultResponses.CreateNegativeResponse(operationRequest, ReturnCode.OperationNotSupported));
            }
        }
예제 #3
0
        private OperationResponse OperationCharacterAction(PeerBase peer, OperationRequest request)
        {
            log.DebugFormat("Received character action from {0}", m_Peer.Name);
            var actionObject = m_ActionObjectFactory.CreateActionObject(m_Peer.Name, peer.Protocol, request);

            if (actionObject == null)
            {
                return(DefaultResponses.CreateNegativeResponse(request, m_ActionObjectFactory.LastCreationFailReason));
            }

            if (!actionObject.CheckPrerequesite())
            {
                log.InfoFormat("Prerequisite check failed.");
                return(DefaultResponses.CreateActionRequestResponse(request, ReturnCode.Declined));
            }

            actionObject.StartAction();

            return(DefaultResponses.CreateActionRequestResponse(request, ReturnCode.OK));
        }