示例#1
0
        public override string ToJson()
        {
            Serializer startedSerializer = base.GetStartedSerializer();

            startedSerializer.AddString("cmsVersion", this.replayData.CmsVersion);
            startedSerializer.AddString("battleVersion", this.replayData.BattleVersion);
            startedSerializer.AddString("battleId", this.battle.RecordID);
            startedSerializer.AddString("battleUid", this.battle.BattleUid);
            startedSerializer.AddDictionary <int>("seededTroopsDeployed", this.seededTroopsDeployed);
            startedSerializer.AddDictionary <int>("defendingUnitsKilled", this.defendingUnitsKilled);
            startedSerializer.AddDictionary <int>("attackingUnitsKilled", this.attackingUnitsKilled);
            startedSerializer.AddDictionary <int>("defenderGuildTroopsSpent", this.defenderGuildUnitsSpent);
            startedSerializer.AddDictionary <int>("attackerGuildTroopsSpent", this.attackerGuildUnitsSpent);
            startedSerializer.AddDictionary <int>("loot", this.lootEarned);
            startedSerializer.AddDictionary <int>("damagedBuildings", this.buildingHealthMap);
            if (this.buildingUids != null)
            {
                startedSerializer.AddDictionary <string>("buildingUids", this.buildingUids);
            }
            startedSerializer.AddArrayOfPrimitives <string>("unarmedTraps", this.unarmedTraps);
            startedSerializer.AddObject <BattleRecord>("replayData", this.replayData);
            startedSerializer.Add <int>("baseDamagePercent", this.battle.DamagePercent);
            startedSerializer.AddDictionary <int>("numVisitors", this.battle.NumVisitors);
            startedSerializer.Add <int>("stars", this.battle.EarnedStars);
            startedSerializer.AddBool("isUserEnded", this.battle.Canceled);
            startedSerializer.AddString("planetId", this.planetId);
            return(startedSerializer.End().ToString());
        }
示例#2
0
        public string ToJson()
        {
            Serializer serializer = Serializer.Start();

            serializer.Add <int>("capacity", this.totalStorageCapacity);
            Serializer serializer2 = Serializer.Start();

            foreach (KeyValuePair <string, InventoryEntry> current in this.internalStorage)
            {
                serializer2.AddObject <InventoryEntry>(current.Key, current.Value);
            }
            serializer2.End();
            serializer.Add <string>("storage", serializer2.ToString());
            if (this.subStorage.Count > 0)
            {
                Serializer serializer3 = Serializer.Start();
                foreach (KeyValuePair <string, InventoryStorage> current2 in this.subStorage)
                {
                    serializer3.AddObject <InventoryStorage>(current2.Key, current2.Value);
                }
                serializer3.End();
                serializer.Add <string>("subStorage", serializer3.ToString());
            }
            return(serializer.End().ToString());
        }
示例#3
0
        public void LogInAppCurrencyAction(int currencyAmount, string itemType, string itemId, int itemCount, string type, string subType, string context)
        {
            CurrentPlayer currentPlayer = Service.CurrentPlayer;
            StringBuilder stringBuilder = new StringBuilder();

            if (itemType.Length == 0)
            {
                stringBuilder.AppendFormat("{{\"item_id\":\"{0}\",\"item_count\":\"{1}\"}}", itemId, itemCount);
            }
            else
            {
                stringBuilder.AppendFormat("{{\"item_id\":\"{0}|{1}\",\"item_count\":\"{2}\"}}", itemType, itemId, itemCount);
            }
            string     val        = stringBuilder.ToString();
            int        itemAmount = currentPlayer.Inventory.GetItemAmount("crystals");
            Serializer serializer = Serializer.Start();

            serializer.AddString("player_id", currentPlayer.PlayerId);
            serializer.Add <int>("amount", currencyAmount);
            serializer.AddString("currency", "crystals");
            serializer.Add <int>("balance", itemAmount);
            serializer.Add <string>("item", val);
            serializer.AddString("type", type);
            serializer.AddString("subtype", subType);
            if (context.Length > 0)
            {
                serializer.AddString("context", context);
            }
            serializer.Add <int>("level", this.GetHQLevel());
            string parameters = serializer.End().ToString();

            this.analytics.LogEventWithContext("in_app_currency_action", parameters);
        }
        public override string ToJson()
        {
            Serializer serializer = Serializer.Start();

            serializer.AddString("playerId", base.PlayerId);
            if (this.Credits >= 0)
            {
                serializer.Add <int>("credits", this.Credits);
            }
            if (this.Materials >= 0)
            {
                serializer.Add <int>("materials", this.Materials);
            }
            if (this.Contraband >= 0)
            {
                serializer.Add <int>("contraband", this.Contraband);
            }
            if (this.Crystals >= 0)
            {
                serializer.Add <int>("crystals", this.Crystals);
            }
            if (this.Reputation >= 0)
            {
                serializer.Add <int>("reputation", this.Reputation);
            }
            return(serializer.End().ToString());
        }
示例#5
0
        public string ToJson()
        {
            Serializer serializer = Serializer.Start();

            serializer.Add <int>("x", this.X);
            serializer.Add <int>("z", this.Z);
            return(serializer.End().ToString());
        }
示例#6
0
        public override string ToJson()
        {
            Serializer serializer = Serializer.Start();

            serializer.AddString("playerId", base.PlayerId);
            serializer.Add <int>("rewardHour", this.RewardHour);
            serializer.Add <int>("rewardMinute", this.RewardMinute);
            return(serializer.End().ToString());
        }
示例#7
0
        public override string ToJson()
        {
            Serializer startedSerializer = base.GetStartedSerializer();

            startedSerializer.Add <int>("credits", this.credits);
            startedSerializer.Add <int>("materials", this.materials);
            startedSerializer.Add <int>("contraband", this.contraband);
            startedSerializer.AddString("subtype", this.subtype);
            return(startedSerializer.End().ToString());
        }
示例#8
0
        public string ToJson()
        {
            Serializer serializer = Serializer.Start();

            serializer.AddString("uid", this.uid);
            serializer.Add <uint>("time", this.time);
            serializer.Add <int>("x", this.boardX);
            serializer.Add <int>("z", this.boardZ);
            serializer.AddString("action", this.action);
            return(serializer.End().ToString());
        }
示例#9
0
        protected Serializer GetStartedSerializer()
        {
            Serializer serializer = Serializer.Start();

            serializer.AddString("playerId", base.PlayerId);
            serializer.Add <long>("cs", this.CS);
            serializer.Add <int>("_credits", this.credits);
            serializer.Add <int>("_materials", this.materials);
            serializer.Add <int>("_contraband", this.contraband);
            serializer.Add <int>("_crystals", this.crystals);
            return(serializer);
        }
示例#10
0
        public override string ToJson()
        {
            Serializer serializer = Serializer.Start();

            serializer.AddString("playerId", base.PlayerId);
            if (this.LocalePreference != null)
            {
                serializer.AddString("locale", this.LocalePreference);
            }
            if (this.DeviceToken != null)
            {
                serializer.AddString("deviceToken", this.DeviceToken);
            }
            serializer.AddString("deviceType", "f");
            serializer.Add <double>("timeZoneOffset", this.TimeZoneOffset);
            EnvironmentController environmentController = Service.Get <EnvironmentController>();

            serializer.AddString("clientVersion", "4.7.0.2");
            serializer.AddString("model", environmentController.GetModel());
            serializer.AddString("os", environmentController.GetOS());
            serializer.AddString("osVersion", environmentController.GetOSVersion());
            serializer.AddString("platform", environmentController.GetPlatform());
            serializer.AddString("sessionId", Service.Get <ServerAPI>().SessionId);
            serializer.AddString("deviceId", environmentController.GetDeviceIDForEvent2());
            serializer.AddString("deviceIdType", environmentController.GetDeviceIdType());
            return(serializer.End().ToString());
        }
示例#11
0
        private static void SaveRecent()
        {
            try {
                var r       = new Serializer("Recent", "All");
                var MinDate = DateTime.Now.Date.AddDays(-1 * Cache.MAXCACHEDAYS);

                // PERIODS
                foreach (Period period in PeriodList.All)
                {
                    List <RecentItem> entries = Cache.GetRecentCache(period);
                    if (entries.Count > 0)
                    {
                        var p = r.Add("Period", period.ToString());

                        // ITEMS
                        foreach (RecentItem recent in entries)
                        {
                            if (recent.Date > MinDate)
                            {
                                p.Add("Item", recent.Date.ToStorageStringDate()).Write("Text", recent.Text);
                            }
                        }
                    }
                }

                string Xml = r.GetXML();

                // Store in LocalDB
                LocalDB.WriteAsync("Recent", "Recent", "All", Xml);
            } catch (Exception ex) {
                LittleWatson.ReportException(ex);
            }
        }
示例#12
0
        private static void SaveItems()
        {
            try {
                var d = new Serializer("Items", "All");

                foreach (FoodItem item in Cache.AllValidItems())
                {
                    d.Add("Item", item.Text)
                                        #if DEBUG
                    .Write("ServingSizeCount", item.ServingSizesDB == null ? "0" : item.ServingSizesDB.Split("|".ToCharArray()).Count().ToString())
                                        #endif
                    .Write("LastAmount", item.LastAmountDB)
                    .Write("LastChanged", item.LastChanged.ToStorageStringFull())
                    .Write("Nutrition", item.NutritionDB)
                    .Write("ServingSizes", item.ServingSizesDB)
                    .Write("SourceID", item.SourceID);
                }

                string Xml = d.GetXML();

                // Store in LocalDB
                LocalDB.WriteAsync("Items", "Items", "All", Xml);
            } catch (Exception ex) {
                LittleWatson.ReportException(ex);
            }
        }
示例#13
0
        public override string ToJson()
        {
            Serializer startedSerializer = base.GetStartedSerializer();

            startedSerializer.Add <int>("identityIndex", this.IdentityIndex);
            return(startedSerializer.End().ToString());
        }
示例#14
0
        public override string ToJson()
        {
            Serializer serializer = Serializer.Start();

            serializer.AddString("playerId", base.PlayerId);
            serializer.Add <int>("donationCount", this.TroopsDonated);
            return(serializer.End().ToString());
        }
示例#15
0
        public override string ToJson()
        {
            Serializer startedSerializer = base.GetStartedSerializer();

            startedSerializer.AddString("uid", this.uid);
            startedSerializer.Add <int>("count", this.amount);
            return(startedSerializer.End().ToString());
        }
示例#16
0
        public override string ToJson()
        {
            Serializer serializer = Serializer.Start();

            serializer.AddString("playerId", base.PlayerId);
            serializer.Add <int>("turns", this.turns);
            return(serializer.End().ToString());
        }
示例#17
0
        public override string ToJson()
        {
            Serializer startedSerializer = base.GetStartedSerializer();

            startedSerializer.AddString("poolSlotId", this.poolId);
            startedSerializer.Add <int>("count", this.quantity);
            return(startedSerializer.End().ToString());
        }
示例#18
0
        public override string ToJson()
        {
            Serializer startedSerializer = base.GetStartedSerializer();

            startedSerializer.AddString("equipmentId", base.EquipmentID);
            startedSerializer.Add <int>("shardsToInvest", this.ShardsToInvest);
            return(startedSerializer.End().ToString());
        }
示例#19
0
        public override string ToJson()
        {
            Serializer serializer = Serializer.Start();

            serializer.AddString("playerId", base.PlayerId);
            serializer.Add <long>("endTimeSecs", this.endTimeSecs);
            return(serializer.End().ToString());
        }
示例#20
0
        public override string ToJson()
        {
            Serializer serializer = Serializer.Start();

            serializer.AddString("playerId", base.PlayerId);
            serializer.Add <int>(this.argument.Key, this.argument.Value);
            return(serializer.End().ToString());
        }
        public override string ToJson()
        {
            Serializer startedSerializer = base.GetStartedSerializer();

            startedSerializer.AddString("constructor", this.ConstructorBuildingId);
            startedSerializer.AddString("unitTypeId", this.UnitTypeUid);
            startedSerializer.Add <int>("quantity", this.Quantity);
            return(startedSerializer.End().ToString());
        }
示例#22
0
        public void LogPaymentAction(string currency, double amountPaid, string productId, int amount, string type)
        {
            CurrentPlayer currentPlayer = Service.CurrentPlayer;
            Serializer    serializer    = Serializer.Start();

            serializer.AddString("player_id", currentPlayer.PlayerId);
            serializer.AddString("currency", currency);
            serializer.AddString("locale", Service.EnvironmentController.GetLocale());
            serializer.Add <double>("amount_paid", -amountPaid);
            serializer.AddString("type", type);
            serializer.Add <int>("level", this.GetHQLevel());
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.AppendFormat("{{\"item_id\":\"{0}\",\"item_count\":\"{1}\"}}", productId, amount);
            serializer.Add <string>("item", stringBuilder.ToString());
            serializer.End();
            this.analytics.LogEventWithContext("payment_action", serializer.ToString());
        }
        public override string ToJson()
        {
            Serializer serializer = Serializer.Start();

            serializer.AddString("playerId", base.PlayerId);
            serializer.Add <uint>("since", this.Since);
            serializer.AddString("battleVersion", this.BattleVersion);
            return(serializer.End().ToString());
        }
示例#24
0
        public override string ToJson()
        {
            Serializer serializer = Serializer.Start();

            serializer.AddString("playerId", base.PlayerId);
            serializer.AddBool("openEnrollment", this.OpenSquad);
            serializer.Add <int>("minScoreAtEnrollment", this.MinTrophy);
            serializer.AddString("icon", this.Icon);
            serializer.AddString("description", this.Desc);
            return(serializer.End().ToString());
        }
示例#25
0
        public override string ToJson()
        {
            Serializer serializer = Serializer.Start();

            serializer.AddString("playerId", base.PlayerId);
            serializer.Add <int>("amount", this.amount);
            if (this.campaignUid != null)
            {
                serializer.AddString("campaignUid", this.campaignUid);
            }
            return(serializer.End().ToString());
        }
示例#26
0
        private static string GenerateRequestToken(string playerId, string secret)
        {
            Serializer serializer = new Serializer();

            serializer.AddString("userId", playerId);
            serializer.Add <long>("expires", GameUtils.GetNowJavaEpochTime());
            string text = serializer.End().ToString();

            byte[] value = CryptographyUtils.ComputeHmacHash("HmacSHA256", secret, text);
            string str   = BitConverter.ToString(value).Replace("-", string.Empty);

            return(Convert.ToBase64String(Encoding.UTF8.GetBytes(str + "." + text)));
        }
示例#27
0
        public override string ToJson()
        {
            Serializer startedSerializer = base.GetStartedSerializer();

            startedSerializer.AddString("uid", this.uid);
            startedSerializer.AddString("currency", this.currency);
            startedSerializer.AddString("type", this.type);
            startedSerializer.Add <int>("count", this.count);
            if (this.purchaseContext != null && !this.purchaseContext.Equals(string.Empty))
            {
                startedSerializer.AddString("purchaseContext", this.purchaseContext);
            }
            return(startedSerializer.End().ToString());
        }
        public void LogAge(int age)
        {
            CurrentPlayer currentPlayer = Service.Get <CurrentPlayer>();
            Serializer    serializer    = Serializer.Start();

            serializer.AddString("player_id", currentPlayer.PlayerId);
            serializer.AddString("action", "age_gate");
            serializer.AddString("context", "age_gate");
            serializer.AddString("type", age.ToString());
            serializer.Add <int>("level", this.GetHQLevel());
            string parameters = serializer.End().ToString();

            this.LogGameAction(parameters);
        }
示例#29
0
        private static void SaveDay(DateTime date)
        {
            try {
                var d = new Serializer("Date", date.ToStorageStringDate());

                List <Entry>[] PeriodEntries = Cache.GetEntryCache(date);

                foreach (Period period in PeriodList.All)
                {
                    if (Cache.ShouldSavePeriod(date, period))
                    {
                        var p = d.Add("Period", period.ToString());
                        p.Write("LastChanged", DateTime.Now.ToStorageStringFull());
                        p.Write("Note", Cache.GetPeriodNote(date, period));
                        p.Write("Time", Cache.GetPeriodTime(date, period));

                        foreach (Entry entry in PeriodEntries[(int)period])
                        {
                            FoodItem item = entry.Item;

#if DEBUG
                            if (item.ServingSizes.GetEquivalent(entry.AmountSelectedDB).ToStorageString() == "")
                            {
                                System.Diagnostics.Debugger.Break();
                            }
#endif

                            p.Add("Entry", entry.Text)
                            .Write("Amount", entry.AmountSelectedDB)
                            .Write("AmountScale", entry.AmountScaleDB.ToStorageString())
                            .Write("Grams", item.ServingSizes.GetEquivalent(entry.AmountSelectedDB).ToStorageString())
                            .Write("Properties", item.NutritionDB);
                        }
                    }
                }

                string Xml = d.GetXML();

                // Store in LocalDB
                string Container  = date.ToStorageStringMonth();
                string DocumentID = date.ToStorageStringDate();
                LocalDB.WriteAsync(Container, "Day", DocumentID, Xml);
            } catch (Exception ex) {
                LittleWatson.ReportException(ex);
            }
        }
        public void LogAdAction(string placement, string creative, string type, string desc, string message)
        {
            CurrentPlayer currentPlayer = Service.Get <CurrentPlayer>();
            Serializer    serializer    = Serializer.Start();

            serializer.AddString("player_id", currentPlayer.PlayerId);
            serializer.AddString("creative", creative);
            serializer.AddString("placement", placement);
            serializer.AddString("offer", desc);
            serializer.AddString("type", type);
            serializer.AddString("locale", Service.Get <EnvironmentController>().GetLocale());
            serializer.AddString("message", message);
            serializer.AddString("currency", "USD");
            serializer.Add <double>("gross_revenue", 0.0);
            serializer.End();
            Service.Get <StaRTSLogger>().Debug("LogAdAction: " + serializer.ToString());
            this.analytics.LogEventWithContext("ad_action", serializer.ToString());
        }
示例#31
0
        public override byte[] ToByteArray()
        {
            Serializer s = new Serializer();
            s.Add(targetIds.Count);
            for(int i=0;i<targetIds.Count;i++){
                s.Add(targetIds[i]);
            }
            s.Add(msg);

            return s.GetBytes();
        }
示例#32
0
        public override byte[] ToByteArray()
        {
            Serializer s = new Serializer();
            s.Add(playerID);
            s.Add(pitch);
            s.Add(roll);
            s.Add(yaw);
            s.Add(thrust);

            return s.GetBytes();
        }
示例#33
0
 public override byte[] ToByteArray()
 {
     Serializer s = new Serializer();
     IEnumerator boardEnum = ValueById.GetEnumerator();
     s.Add((byte)Stat);
     boardEnum.Reset();
     while (boardEnum.MoveNext()) {
         KeyValuePair<int, int> curKV = (KeyValuePair<int, int>)boardEnum.Current;
         s.Add(curKV.Key);
         s.Add(curKV.Value);
     }
     return s.GetBytes();
 }
示例#34
0
        public override byte[] ToByteArray()
        {
            Serializer s = new Serializer();
            for (int i = 0; i < states.Count; i++) {
                s.Add(states[i].id);
                s.Add(states[i].Position);
                s.Add(states[i].Velocity);
                s.Add(states[i].Orientation);
                s.Add(states[i].RotationalVelocity);
            }

            return s.GetBytes();
        }
示例#35
0
 public override Byte[] ToByteArray()
 {
     Serializer s = new Serializer();
     s.Add(PlayerId);
     s.Add(Position);
     s.Add(Orientation);
     s.Add((int)ShipType.Model);
     s.Add((int)ShipType.Class);
     s.Add(PlayerName);
     return s.GetBytes();
 }