Ejemplo n.º 1
0
 protected override void PerformOfflineAction(OfflineDatabase offlineDatabase, IOfflineDefinitionLoader offlineDefinitions)
 {
     ClubPenguin.Net.Offline.ConsumableInventory value = offlineDatabase.Read <ClubPenguin.Net.Offline.ConsumableInventory>();
     if (value.Inventory.ContainsKey(Type))
     {
         value.Inventory[Type].itemCount += Count;
     }
     else
     {
         value.Inventory[Type] = new InventoryItemStock
         {
             itemCount = Count
         };
     }
     value.Inventory[Type].lastPurchaseTimestamp = DateTime.UtcNow.GetTimeInMilliseconds();
     offlineDatabase.Write(value);
     offlineDefinitions.SubtractConsumableCost(Type, Count);
     Response = new PurchaseConsumableResponse
     {
         assets    = offlineDatabase.Read <ClubPenguin.Net.Offline.PlayerAssets>().Assets,
         inventory = new SignedResponse <ClubPenguin.Net.Domain.ConsumableInventory>
         {
             Data = new ClubPenguin.Net.Domain.ConsumableInventory
             {
                 inventoryMap = value.Inventory
             }
         }
     };
 }
Ejemplo n.º 2
0
 protected override void SetOfflineData(OfflineDatabase offlineDatabase, IOfflineDefinitionLoader offlineDefinitions)
 {
     ClubPenguin.Net.Offline.ConsumableInventory value = offlineDatabase.Read <ClubPenguin.Net.Offline.ConsumableInventory>();
     value.Inventory = Response.inventory.Data.inventoryMap;
     offlineDatabase.Write(value);
     ClubPenguin.Net.Offline.PlayerAssets value2 = offlineDatabase.Read <ClubPenguin.Net.Offline.PlayerAssets>();
     value2.Assets = Response.assets;
     offlineDatabase.Write(value2);
 }
 protected override void PerformOfflineAction(OfflineDatabase offlineDatabase, IOfflineDefinitionLoader offlineDefinitions)
 {
     ClubPenguin.Net.Offline.ConsumableInventory value = offlineDatabase.Read <ClubPenguin.Net.Offline.ConsumableInventory>();
     if (!value.Inventory.ContainsKey(Partial.Data.type))
     {
         value.Inventory[Partial.Data.type] = new InventoryItemStock();
     }
     value.Inventory[Partial.Data.type].partialCount = Partial.Data.partialCount;
     offlineDatabase.Write(value);
     SignedConsumableInventory = new SignedResponse <ClubPenguin.Net.Domain.ConsumableInventory>
     {
         Data = new ClubPenguin.Net.Domain.ConsumableInventory
         {
             inventoryMap = value.Inventory
         }
     };
 }
Ejemplo n.º 4
0
    protected override void SetOfflineData(OfflineDatabase offlineDatabase, IOfflineDefinitionLoader offlineDefinitions)
    {
        ClubPenguin.Net.Offline.PlayerAssets value = offlineDatabase.Read <ClubPenguin.Net.Offline.PlayerAssets>();
        value.Assets = Response.assets;
        offlineDatabase.Write(value);
        DecorationInventoryEntity value2     = offlineDatabase.Read <DecorationInventoryEntity>();
        Dictionary <string, int>  dictionary = new Dictionary <string, int>();

        foreach (DecorationInventoryItem item in Response.decorationInventory.Data.items)
        {
            dictionary.Add(item.decorationId.ToString(), item.count);
        }
        value2.inventory = dictionary;
        offlineDatabase.Write(value2);
        ClubPenguin.Net.Offline.ConsumableInventory value3 = offlineDatabase.Read <ClubPenguin.Net.Offline.ConsumableInventory>();
        value3.Inventory = Response.inventory.Data.inventoryMap;
        offlineDatabase.Write(value3);
    }
 protected override void PerformOfflineAction(OfflineDatabase offlineDatabase, IOfflineDefinitionLoader offlineDefinitions)
 {
     ClubPenguin.Net.Offline.ConsumableInventory value = offlineDatabase.Read <ClubPenguin.Net.Offline.ConsumableInventory>();
     if (!value.Inventory.ContainsKey(Type))
     {
         value.Inventory[Type] = new InventoryItemStock();
     }
     value.Inventory[Type].itemCount             = int.Parse(Count);
     value.Inventory[Type].lastPurchaseTimestamp = DateTime.UtcNow.GetTimeInMilliseconds();
     offlineDatabase.Write(value);
     SignedConsumableInventory = new SignedResponse <ClubPenguin.Net.Domain.ConsumableInventory>
     {
         Data = new ClubPenguin.Net.Domain.ConsumableInventory
         {
             inventoryMap = value.Inventory
         }
     };
 }
        protected override void SetOfflineData(OfflineDatabase offlineDatabase, IOfflineDefinitionLoader offlineDefinitions)
        {
            TubeData value = offlineDatabase.Read <TubeData>();

            value.EquippedTubeId = SignedJoinRoomData.Data.selectedTubeId;
            offlineDatabase.Write(value);
            ClubPenguin.Net.Offline.ConsumableInventory value2 = offlineDatabase.Read <ClubPenguin.Net.Offline.ConsumableInventory>();
            value2.Inventory = SignedJoinRoomData.Data.playerRoomData.consumableInventory.inventoryMap;
            offlineDatabase.Write(value2);
            ClubPenguin.Net.Offline.PlayerAssets value3 = offlineDatabase.Read <ClubPenguin.Net.Offline.PlayerAssets>();
            value3.Assets = SignedJoinRoomData.Data.playerRoomData.assets;
            offlineDatabase.Write(value3);
            ClubPenguin.Net.Offline.PlayerOutfitDetails value4 = offlineDatabase.Read <ClubPenguin.Net.Offline.PlayerOutfitDetails>();
            value4.Parts = new List <CustomEquipment>(SignedJoinRoomData.Data.playerRoomData.outfit.parts);
            offlineDatabase.Write(value4);
            ClubPenguin.Net.Offline.Profile value5 = offlineDatabase.Read <ClubPenguin.Net.Offline.Profile>();
            value5.Colour      = SignedJoinRoomData.Data.playerRoomData.profile.colour;
            value5.DateCreated = DateTime.UtcNow.AddDays(-1 * SignedJoinRoomData.Data.playerRoomData.profile.daysOld).GetTimeInMilliseconds();
            offlineDatabase.Write(value5);
            SetProgressOperation.SetOfflineQuestStateCollection(offlineDatabase, SignedJoinRoomData.Data.playerRoomData.quests);
        }
        private int updateInventory(OfflineDatabase offlineDatabase)
        {
            ClubPenguin.Net.Offline.ConsumableInventory value = offlineDatabase.Read <ClubPenguin.Net.Offline.ConsumableInventory>();
            if (!value.Inventory.ContainsKey(Type))
            {
                value.Inventory[Type] = new InventoryItemStock();
            }
            int partialCount = value.Inventory[Type].partialCount;

            if (partialCount > 0)
            {
                value.Inventory[Type].partialCount = 0;
            }
            else
            {
                value.Inventory[Type].itemCount--;
                if (value.Inventory[Type].itemCount <= 0)
                {
                    value.Inventory.Remove(Type);
                }
            }
            offlineDatabase.Write(value);
            return(partialCount);
        }
 protected override void SetOfflineData(OfflineDatabase offlineDatabase, IOfflineDefinitionLoader offlineDefinitions)
 {
     ClubPenguin.Net.Offline.ConsumableInventory value = offlineDatabase.Read <ClubPenguin.Net.Offline.ConsumableInventory>();
     value.Inventory = SignedConsumableInventory.Data.inventoryMap;
     offlineDatabase.Write(value);
 }
Ejemplo n.º 9
0
        public void AddReward(Reward reward, CPResponse responseBody)
        {
            ClubPenguin.Net.Offline.PlayerAssets value = offlineDatabase.Read <ClubPenguin.Net.Offline.PlayerAssets>();
            ProgressionService progressionService      = Service.Get <ProgressionService>();

            if (reward.TryGetValue <CoinReward>(out var rewardable))
            {
                value.Assets.coins += rewardable.Coins;
            }
            if (reward.TryGetValue <MascotXPReward>(out var rewardable2))
            {
                foreach (KeyValuePair <string, int> item in rewardable2.XP)
                {
                    if (value.Assets.mascotXP.ContainsKey(item.Key))
                    {
                        value.Assets.mascotXP[item.Key] = progressionService.addXp(item.Key, item.Value, value.Assets.mascotXP[item.Key]);
                    }
                    else
                    {
                        value.Assets.mascotXP[item.Key] = progressionService.addXp(item.Key, item.Value, 0L);
                    }
                }
                int level = progressionService.Level;
                int num   = 0;
                foreach (long value5 in value.Assets.mascotXP.Values)
                {
                    num += ProgressionService.GetMascotLevelFromXP(value5);
                }
                if (num > level)
                {
                    if (responseBody.wsEvents == null)
                    {
                        responseBody.wsEvents = new List <SignedResponse <WebServiceEvent> >();
                    }
                    responseBody.wsEvents.Add(new SignedResponse <WebServiceEvent>
                    {
                        Data = new WebServiceEvent
                        {
                            details = num,
                            type    = 3
                        }
                    });
                }
            }
            if (reward.TryGetValue <CollectibleReward>(out var rewardable3))
            {
                foreach (KeyValuePair <string, int> collectible in rewardable3.Collectibles)
                {
                    if (value.Assets.collectibleCurrencies.ContainsKey(collectible.Key))
                    {
                        value.Assets.collectibleCurrencies[collectible.Key] += collectible.Value;
                    }
                    else
                    {
                        value.Assets.collectibleCurrencies[collectible.Key] = collectible.Value;
                    }
                }
            }
            if (reward.TryGetValue <DecalReward>(out var rewardable4))
            {
                value.Assets.decals.AddRange(rewardable4.Decals);
            }
            if (reward.TryGetValue <FabricReward>(out var rewardable5))
            {
                value.Assets.fabrics.AddRange(rewardable5.Fabrics);
            }
            if (reward.TryGetValue <EmoteReward>(out var rewardable6))
            {
                value.Assets.emotePacks.AddRange(rewardable6.Emotes);
            }
            if (reward.TryGetValue <EquipmentTemplateReward>(out var rewardable7))
            {
                value.Assets.equipmentTemplates.AddRange(rewardable7.EquipmentTemplates);
            }
            if (reward.TryGetValue <EquipmentInstanceReward>(out var rewardable8))
            {
                System.Random             random = new System.Random();
                byte[]                    array  = new byte[8];
                CustomEquipmentCollection value2 = offlineDatabase.Read <CustomEquipmentCollection>();
                foreach (CustomEquipment equipmentInstance in rewardable8.EquipmentInstances)
                {
                    random.NextBytes(array);
                    value2.Equipment.Add(new CustomEquipment
                    {
                        dateTimeCreated = DateTime.UtcNow.GetTimeInMilliseconds(),
                        definitionId    = equipmentInstance.definitionId,
                        equipmentId     = BitConverter.ToInt64(array, 0),
                        parts           = equipmentInstance.parts
                    });
                }
                offlineDatabase.Write(value2);
            }
            if (reward.TryGetValue <LotReward>(out var rewardable9))
            {
                value.Assets.lots.AddRange(rewardable9.Lots);
            }
            if (reward.TryGetValue <DecorationInstanceReward>(out var rewardable10))
            {
                DecorationInventoryEntity value3 = offlineDatabase.Read <DecorationInventoryEntity>();
                foreach (KeyValuePair <int, int> decoration in rewardable10.Decorations)
                {
                    DecorationId decorationId = new DecorationId(decoration.Key, DecorationType.Decoration);
                    if (value3.Inventory.ContainsKey(decorationId))
                    {
                        value3.Inventory[decorationId] += decoration.Value;
                    }
                    else
                    {
                        value3.Inventory[decorationId] = decoration.Value;
                    }
                }
                offlineDatabase.Write(value3);
            }
            if (reward.TryGetValue <StructureInstanceReward>(out var rewardable11))
            {
                DecorationInventoryEntity value3 = offlineDatabase.Read <DecorationInventoryEntity>();
                foreach (KeyValuePair <int, int> decoration2 in rewardable11.Decorations)
                {
                    DecorationId decorationId = new DecorationId(decoration2.Key, DecorationType.Structure);
                    if (value3.Inventory.ContainsKey(decorationId))
                    {
                        value3.Inventory[decorationId] += decoration2.Value;
                    }
                    else
                    {
                        value3.Inventory[decorationId] = decoration2.Value;
                    }
                }
                offlineDatabase.Write(value3);
            }
            if (reward.TryGetValue <DecorationReward>(out var rewardable12))
            {
                value.Assets.decorations.AddRange(rewardable12.Decorations);
            }
            if (reward.TryGetValue <StructureReward>(out var rewardable13))
            {
                value.Assets.structures.AddRange(rewardable13.Structures);
            }
            if (reward.TryGetValue <MusicTrackReward>(out var rewardable14))
            {
                value.Assets.musicTracks.AddRange(rewardable14.MusicTracks);
            }
            if (reward.TryGetValue <LightingReward>(out var rewardable15))
            {
                value.Assets.lighting.AddRange(rewardable15.Lighting);
            }
            if (reward.TryGetValue <DurableReward>(out var rewardable16))
            {
                value.Assets.durables.AddRange(rewardable16.Durables);
            }
            if (reward.TryGetValue <IglooSlotsReward>(out var rewardable17))
            {
                value.IglooSlots += rewardable17.IglooSlots;
            }
            if (reward.TryGetValue <ConsumableReward>(out var rewardable18))
            {
                value.Assets.partySupplies.AddRange(rewardable18.Consumable);
            }
            if (reward.TryGetValue <TubeReward>(out var rewardable19))
            {
                value.Assets.tubes.AddRange(rewardable19.Tubes);
            }
            if (reward.TryGetValue <ConsumableInstanceReward>(out var rewardable20))
            {
                ClubPenguin.Net.Offline.ConsumableInventory value4 = offlineDatabase.Read <ClubPenguin.Net.Offline.ConsumableInventory>();
                foreach (KeyValuePair <string, int> consumable in rewardable20.Consumables)
                {
                    if (value4.Inventory.ContainsKey(consumable.Key))
                    {
                        value4.Inventory[consumable.Key].itemCount += consumable.Value;
                    }
                    else
                    {
                        value4.Inventory[consumable.Key] = new InventoryItemStock
                        {
                            itemCount = consumable.Value
                        };
                    }
                    value4.Inventory[consumable.Key].lastPurchaseTimestamp = DateTime.UtcNow.GetTimeInMilliseconds();
                }
                offlineDatabase.Write(value4);
            }
            offlineDatabase.Write(value);
        }