Exemplo n.º 1
0
 public void SendToPlayer(GameMessageBase message, int connectionId)
 {
     #if NETWORK_DEBUG
     DevLogger.Log("SendToPlayer: " + connectionId + " " + message.Type + "\n" + Newtonsoft.Json.JsonConvert.SerializeObject(message, Newtonsoft.Json.Formatting.Indented));
     #endif
     NetworkServer.SendToClient(connectionId, (short)message.Type, message);
 }
        private void OnAppMsgReceived(AppServerAnswerMessageBase answer)
        {
            var logString = "Client get app answer type {0} with error {1}";

            DevLogger.Log(string.Format(logString,
                                        answer.Type, answer.Error), DTanksLogChannel.Network);
        }
Exemplo n.º 3
0
 public void Send(AppMessageBase message)
 {
     NetworkServer.SendToClient(message.ConnectionId, (short)message.Type, message);
     #if NETWORK_DEBUG
     DevLogger.Log("SendAppMessage: " + message.Type + "\n" + Newtonsoft.Json.JsonConvert.SerializeObject(message, Newtonsoft.Json.Formatting.Indented));
     #endif
 }
Exemplo n.º 4
0
        public void SendToAll(GameMessageBase message)
        {
            #if NETWORK_DEBUG
            DevLogger.Log("SendToAll: " + message.Type + "\n" + Newtonsoft.Json.JsonConvert.SerializeObject(message, Newtonsoft.Json.Formatting.Indented));
            #endif

            NetworkServer.SendToAll((short)message.Type, message);
        }
Exemplo n.º 5
0
        private void CheckTransactionsStatuses()
        {
            if (_pendingTransactions.Count > 0)
            {
                for (int i = 0; i < _pendingTransactions.Count; i++)
                {
                    var    transaction             = _pendingTransactions[i];
                    int    transactionConnectionId = transaction.Sender.ConnectionId;
                    string playerMarketAccessToken = Model.GetPlayerMarketAccessToken(transactionConnectionId);

                    DMarketApi.CheckAsyncOperation(playerMarketAccessToken, transaction.OperationIds,
                                                   (response, request) =>
                    {
                        var answerMessage = new AppChangingItemsAnswerMessage(new ItemsChangingResponse());

                        foreach (var transactionItem in response.Items)
                        {
                            var status = _apiResponseAdapter.GetTransactionStatusType(transactionItem.status);
                            switch (status)
                            {
                            case DMarketTransactionStatusType.Fail:
                                {
                                    answerMessage.Response.MarketError = (ErrorCode)transactionItem.transferError.code;
                                    transaction.RemoveOperation(transactionItem.operationId);
                                    break;
                                }

                            case DMarketTransactionStatusType.Success:
                                {
                                    OnSuccessMarketOperation(transactionItem, transaction);
                                    transaction.RemoveOperation(transactionItem.operationId);
                                    break;
                                }
                            }
                        }

                        var transactionLog = string.Format("Transaction for connection: {0}, operation left: {1}", transaction.Sender.ConnectionId,
                                                           transaction.OperationsCount);
                        DevLogger.Log(transactionLog, DTanksLogChannel.GameServer);

                        if (transaction.OperationsCount == 0)
                        {
                            SendMessageToClient(answerMessage, transactionConnectionId);
                            _pendingTransactions.Remove(transaction);
                        }
                        Storage.Change(GetPlayer(transactionConnectionId));
                    },
                                                   error =>
                    {
                        foreach (var transactionInfo in _pendingTransactions)
                        {
                            OnItemOperationError(transactionInfo.Sender, error);
                        }
                        _pendingTransactions.Clear();
                    });
                }
            }
        }
Exemplo n.º 6
0
        public void Send(GameMessageBase message)
        {
            message.ClientId = _currentClient.connection.connectionId;
            _currentClient.Send((short)message.Type, message);

            #if NETWORK_DEBUG
            DevLogger.Log("Send GameMessageBase: " + message.Type + " body: \n" + Newtonsoft.Json.JsonConvert.SerializeObject(message, Newtonsoft.Json.Formatting.Indented));
            #endif
        }
Exemplo n.º 7
0
        protected void SendMessageToClient(AppServerAnswerMessageBase answerMessage, int connectionId)
        {
            answerMessage.ConnectionId = connectionId;
            var logString = "Server send to {0} app answer type {1} with error {2}";

            DevLogger.Log(string.Format(logString, answerMessage.ConnectionId,
                                        answerMessage.Type, answerMessage.Error), DTanksLogChannel.Network);
            Server.Send(answerMessage);
        }
Exemplo n.º 8
0
        protected void SendAnswer(AppServerAnswerMessageBase answer,
                                  AppMessageBase senderMessage)
        {
            answer.ConnectionId = senderMessage.ConnectionId;
            var logString = "Server send to {0} app answer type {1} with error {2}";

            DevLogger.Log(string.Format(logString, answer.ConnectionId,
                                        answer.Type, answer.Error), TankGameLogChannel.Network);
            Server.Send(answer);
        }
Exemplo n.º 9
0
        private void OnAppMessageReceive(NetworkMessage msg)
        {
            AppMessageBase appMessage = NetworkingUtil.ReadAppMessage(msg);

            #if NETWORK_DEBUG
            DevLogger.Log("OnAppMessageReceive received: " + appMessage.Type + "\n" + Newtonsoft.Json.JsonConvert.SerializeObject(appMessage, Newtonsoft.Json.Formatting.Indented));
            #endif

            AppMsgReceived.SafeRaise(appMessage);
        }
Exemplo n.º 10
0
 private void ApplyMarketStrategy()
 {
     if (SceneManager.GetActiveScene().name.Equals("TestMarket"))
     {
         DevLogger.Log("Apply mockup models");
         Strategy = new MarketMockupStrategy();
     }
     else
     {
         Strategy = new MarketOnlineStrategy();
     }
 }
Exemplo n.º 11
0
        protected override IEnumerator Start()
        {
            if (AutoFlowDefining.IsUseAutoFlow)
            {
                SceneController = GameObject.FindObjectOfType <T>();
                if (SceneController != null)
                {
                    yield return(new WaitForSeconds(DelayTime));

                    DevLogger.Log("start auto flow " + GetType(), TankGameLogChannel.DevInstruments);
                    ApplyFlowOperation();
                }
            }
            yield return(null);
        }
Exemplo n.º 12
0
        public void SendToAllExcept(GameMessageBase message, int exceptConnectionId)
        {
            #if NETWORK_DEBUG
            DevLogger.Log("SendToAllExcept " + exceptConnectionId + " " + message.Type + "\n" + Newtonsoft.Json.JsonConvert.SerializeObject(message, Newtonsoft.Json.Formatting.Indented));
            #endif

            foreach (var connection in NetworkServer.connections)
            {
                if (connection != null && connection.connectionId != exceptConnectionId)
                {
                    NetworkServer.SendToClient(
                        connection.connectionId,
                        (short)message.Type,
                        message);
                }
            }
        }
Exemplo n.º 13
0
        private void ClearOldVersion()
        {
            var oldData = new List <PlayerInfo>();

            foreach (var player in Players)
            {
                if (player.Version != _version)
                {
                    oldData.Add(player);
                }
            }
            foreach (var player in oldData)
            {
                DevLogger.Log(string.Format("Try delete player info for {0} with old version {1}", player.Autorziation.UserName, player.Version));
                DeletePlayer(player);
            }
            oldData.Clear();
        }
Exemplo n.º 14
0
        string IApiErrorHelper.GetErrorMessage(ErrorCode code)
        {
#if UNITY_EDITOR
            if (ErrorsInfo.Count == 0)
            {
                foreach (ErrorCode item in Enum.GetValues(typeof(ErrorCode)))
                {
                    var error = new ErrorInfo();
                    error.ErrorCode    = item;
                    error.ErrorMessage = GetDefaultErrorMessage(error.ErrorCode);
                    ErrorsInfo.Add(error);
                    DevLogger.Log("Add default error info to catalog " + error.ErrorMessage);
                }
                UnityEditor.EditorUtility.SetDirty(this);
            }
#endif
            var result = ErrorsInfo.Find(item => item.ErrorCode == code);
            return(result != null ? result.ErrorMessage : GetDefaultErrorMessage(code));
        }
Exemplo n.º 15
0
        public static IEnumerator GetRequest(string url, Action <string> callback, Action <string> errorCallback)
        {
            using (var www = UnityWebRequest.Get(url))
            {
                www.SetRequestHeader("Content-Type", "text/csv");
#if UNITY_2017_1
                yield return(www.Send());
#else
                yield return(www.SendWebRequest());
#endif
                if (www.responseCode == 200)
                {
                    callback(www.downloadHandler.text);
                }
                else
                {
                    DevLogger.Log(string.Format("ApiErrorHelper can't load spreadsheet from {0}\nError: {1}", url, www.error));
                    errorCallback(www.error);
                }
            }
        }
Exemplo n.º 16
0
        //TODO refactoring after complete log system
        private static void Log(string message)
        {
            var title = string.Format("<color={0}>{1}</color>", "cyan", MarketLogType.MarketApi);

            DevLogger.Log(message, title);
        }
Exemplo n.º 17
0
 void DeleteOKHandler(Firebase sender, DataSnapshot snapshot)
 {
     DevLogger.Log("Firebase.DeleteOKHandler");
 }
Exemplo n.º 18
0
 void PushOKHandler(Firebase sender, DataSnapshot snapshot)
 {
     DevLogger.Log("Firebase.PushOKHandler");
 }
Exemplo n.º 19
0
 private void OnConnect(NetworkMessage msg)
 {
     DevLogger.Log(string.Concat("Connected: ", msg.conn.address));
     Connected.SafeRaise();
 }