Example #1
0
        /// <summary>
        /// Generate effects queue data.
        /// </summary>
        private List <EffectData> GenerateEffectData(int userId, CataloguePackage cataloguePackage, List <EffectData> existingEffects)
        {
            List <EffectData> effects = new List <EffectData>();
            int itemsToGenerate       = cataloguePackage.Data.Amount;

            for (int i = 0; i < itemsToGenerate; i++)
            {
                EffectData itemData = existingEffects.Where(x => x.EffectId == cataloguePackage.Definition.Data.SpriteId).FirstOrDefault();

                if (itemData != null)
                {
                    itemData.Quantity++;
                }
                else
                {
                    itemData          = new EffectData();
                    itemData.UserId   = userId;
                    itemData.EffectId = cataloguePackage.Definition.Data.SpriteId;
                }

                effects.Add(itemData);
            }

            return(effects);
        }
Example #2
0
        /// <summary>
        /// Generate item data for purchasing item
        /// </summary>
        private List <ItemData> GenerateItemData(int userId, CataloguePackage cataloguePackage, string userInputMessage, long datePurchase)
        {
            ItemDefinition definition = cataloguePackage.Definition;

            if (definition == null)
            {
                return(null);
            }

            List <ItemData> items = new List <ItemData>();

            int    itemsToGenerate = cataloguePackage.Data.Amount;
            object serializeable   = null;

            switch (definition.InteractorType)
            {
            case InteractorType.TROPHY:
            {
                serializeable = new TrophyExtraData
                {
                    UserId  = userId,
                    Message = userInputMessage,
                    Date    = datePurchase
                };
            }
            break;

            case InteractorType.MANNEQUIN:
            {
                //  { "Gender":"M","Figure":"lg-275-64.cc-260-62.ca-1806-73.ch-3030-62.hd-180-1.hr-100-61","OutfitName":"Default Mannequin"}

                serializeable = new MannequinExtraData();

                /*
                 * {
                 *  //"ch-3030-66.lg-275-64.ca-1806-73.cc-260-1408",
                 *  //"ch-875-1331-1331.lg-280-91.sh-295-1331.wa-3211-110-110.cc-3007-1331-1331"
                 *  //"hd-180-1.hr-100-61.ch-210-66.lg-270-82.sh-290-80"
                 *  Figure = "lg-275-64.cc-260-62.ca-1806-73.ch-3030-62.hd-180-1.hr-100-61",
                 *  Gender = "M",
                 *  OutfitName = "Default Mannequin"
                 * };
                 */
            }
            break;
            }

            var extraData = string.Empty;

            if (serializeable != null)
            {
                extraData = JsonConvert.SerializeObject(serializeable);
            }

            if (!string.IsNullOrEmpty(cataloguePackage.Data.SpecialSpriteId))
            {
                extraData = cataloguePackage.Data.SpecialSpriteId;
            }

            if (definition.InteractorType == InteractorType.TELEPORTER)
            {
                ItemData firstTeleporter = new ItemData();
                firstTeleporter.OwnerId      = userId;
                firstTeleporter.DefinitionId = cataloguePackage.Definition.Data.Id;

                ItemData secondTeleporter = new ItemData();
                secondTeleporter.OwnerId      = userId;
                secondTeleporter.DefinitionId = cataloguePackage.Definition.Data.Id;

                firstTeleporter.ExtraData = JsonConvert.SerializeObject(new TeleporterExtraData
                {
                    LinkedItem = secondTeleporter.Id.ToString()
                });

                secondTeleporter.ExtraData = JsonConvert.SerializeObject(new TeleporterExtraData
                {
                    LinkedItem = firstTeleporter.Id.ToString()
                });

                items.Add(firstTeleporter);
                items.Add(secondTeleporter);
            }
            else
            {
                for (int i = 0; i < itemsToGenerate; i++)
                {
                    ItemData itemData = new ItemData();
                    itemData.OwnerId      = userId;
                    itemData.DefinitionId = cataloguePackage.Definition.Data.Id;
                    itemData.ExtraData    = extraData;
                    items.Add(itemData);
                }
            }

            return(items);
        }