Esempio n. 1
0
        public void SubtractDecorationCost(DecorationId decoration, int count)
        {
            int num = 0;

            switch (decoration.type)
            {
            case DecorationType.Decoration:
            {
                Dictionary <int, DecorationDefinition> dictionary2 = Service.Get <IGameData>().Get <Dictionary <int, DecorationDefinition> >();
                if (dictionary2.ContainsKey(decoration.definitionId))
                {
                    num = dictionary2[decoration.definitionId].Cost;
                }
                break;
            }

            case DecorationType.Structure:
            {
                Dictionary <int, StructureDefinition> dictionary = Service.Get <IGameData>().Get <Dictionary <int, StructureDefinition> >();
                if (dictionary.ContainsKey(decoration.definitionId))
                {
                    num = dictionary[decoration.definitionId].Cost;
                }
                break;
            }
            }
            ClubPenguin.Net.Offline.PlayerAssets value = offlineDatabase.Read <ClubPenguin.Net.Offline.PlayerAssets>();
            value.Assets.coins -= num * count;
            if (value.Assets.coins < 0)
            {
                value.Assets.coins = 0;
            }
            offlineDatabase.Write(value);
        }
Esempio n. 2
0
    public static PurchaseDisneyStoreItemResponse Purchase(int itemId, int count, OfflineDatabase offlineDatabase, IOfflineDefinitionLoader offlineDefinitions)
    {
        PurchaseDisneyStoreItemResponse purchaseDisneyStoreItemResponse = new PurchaseDisneyStoreItemResponse();
        Reward disneyStoreItemReward = offlineDefinitions.GetDisneyStoreItemReward(itemId, count);

        offlineDefinitions.AddReward(disneyStoreItemReward, purchaseDisneyStoreItemResponse);
        offlineDefinitions.SubtractDisneyStoreItemCost(itemId, count);
        purchaseDisneyStoreItemResponse.assets    = offlineDatabase.Read <ClubPenguin.Net.Offline.PlayerAssets>().Assets;
        purchaseDisneyStoreItemResponse.inventory = new SignedResponse <ClubPenguin.Net.Domain.ConsumableInventory>
        {
            Data = new ClubPenguin.Net.Domain.ConsumableInventory
            {
                inventoryMap = offlineDatabase.Read <ClubPenguin.Net.Offline.ConsumableInventory>().Inventory
            }
        };
        DecorationInventory decorationInventory = new DecorationInventory();

        decorationInventory.items = new List <DecorationInventoryItem>();
        foreach (KeyValuePair <string, int> item in offlineDatabase.Read <DecorationInventoryEntity>().inventory)
        {
            decorationInventory.items.Add(new DecorationInventoryItem
            {
                count        = item.Value,
                decorationId = DecorationId.FromString(item.Key)
            });
        }
        purchaseDisneyStoreItemResponse.decorationInventory = new SignedResponse <DecorationInventory>
        {
            Data = decorationInventory
        };
        return(purchaseDisneyStoreItemResponse);
    }
Esempio n. 3
0
        public void DeleteDecoration(DecorationId decorationId)
        {
            APICall <DeleteDecorationOperation> aPICall = clubPenguinClient.IglooApi.DeleteDecoration(decorationId);

            aPICall.OnResponse += onDecorationDeleted;
            aPICall.OnError    += handleCPResponseError;
            aPICall.Execute();
        }
Esempio n. 4
0
    public APICall <PurchaseDecorationOperation> PurchaseDecoration(DecorationId decorationId, int?count)
    {
        if (!count.HasValue)
        {
            count = 1;
        }
        PurchaseDecorationOperation operation = new PurchaseDecorationOperation(decorationId.ToString(), count.Value);

        return(new APICall <PurchaseDecorationOperation>(clubPenguinClient, operation));
    }
Esempio n. 5
0
        public void PurchaseDecoration(DecorationId decorationId, int?count, IIglooCatalogPurchaseErrorHandler errorHandler)
        {
            APICall <PurchaseDecorationOperation> aPICall = clubPenguinClient.IglooApi.PurchaseDecoration(decorationId, count);

            aPICall.OnResponse += onDecorationUpdated;
            aPICall.OnError    += delegate
            {
                errorHandler.OnPurchaseDecorationError();
            };
            aPICall.Execute();
        }
Esempio n. 6
0
    protected override void PerformOfflineAction(OfflineDatabase offlineDatabase, IOfflineDefinitionLoader offlineDefinitions)
    {
        DecorationId decorationId = new DecorationId(DefinitionId, (DecorationType)Type);

        AddDecoration(decorationId, Count, offlineDatabase);
        ResponseBody = new CreateDecorationResponse
        {
            assets       = offlineDatabase.Read <ClubPenguin.Net.Offline.PlayerAssets>().Assets,
            decorationId = decorationId
        };
    }
 public int this[DecorationId id]
 {
     get
     {
         return(inventory[id.ToString()]);
     }
     set
     {
         inventory[id.ToString()] = value;
     }
 }
    protected override void PerformOfflineAction(OfflineDatabase offlineDatabase, IOfflineDefinitionLoader offlineDefinitions)
    {
        DecorationId decorationId = ClubPenguin.Net.Domain.Decoration.DecorationId.FromString(DecorationId);

        QACreateDecorationOperation.AddDecoration(decorationId, Count, offlineDatabase);
        offlineDefinitions.SubtractDecorationCost(decorationId, Count);
        ResponseBody = new UpdateDecorationResponse
        {
            assets       = offlineDatabase.Read <ClubPenguin.Net.Offline.PlayerAssets>().Assets,
            decorationId = decorationId
        };
    }
Esempio n. 9
0
 protected override void PerformOfflineAction(OfflineDatabase offlineDatabase, IOfflineDefinitionLoader offlineDefinitions)
 {
     DecorationInventory       = new DecorationInventory();
     DecorationInventory.items = new List <DecorationInventoryItem>();
     foreach (KeyValuePair <string, int> item in offlineDatabase.Read <DecorationInventoryEntity>().inventory)
     {
         DecorationInventory.items.Add(new DecorationInventoryItem
         {
             decorationId = DecorationId.FromString(item.Key),
             count        = item.Value
         });
     }
 }
        public static void AddDecoration(DecorationId decoration, int count, OfflineDatabase offlineDatabase)
        {
            DecorationInventoryEntity value = offlineDatabase.Read <DecorationInventoryEntity>();

            if (value.Inventory.ContainsKey(decoration))
            {
                value.Inventory[decoration] += count;
            }
            else
            {
                value.Inventory[decoration] = count;
            }
            offlineDatabase.Write(value);
        }
Esempio n. 11
0
    public static void AddDecoration(DecorationId decoration, int count, OfflineDatabase offlineDatabase)
    {
        DecorationInventoryEntity value = offlineDatabase.Read <DecorationInventoryEntity>();

        if (value.Inventory.ContainsKey(decoration))
        {
            DecorationInventoryEntity.InventoryWrapper inventory;
            DecorationId id;
            (inventory = value.Inventory)[id = decoration] = inventory[id] + count;
        }
        else
        {
            value.Inventory[decoration] = count;
        }
        offlineDatabase.Write(value);
    }
Esempio n. 12
0
        private bool onIglooServiceEventsDecorationsLoaded(IglooServiceEvents.DecorationsLoaded evt)
        {
            CPDataEntityCollection cPDataEntityCollection = Service.Get <CPDataEntityCollection>();
            int count = evt.DecorationInventory.items.Count;

            if (!cPDataEntityCollection.TryGetComponent <DecorationInventoryData>(cPDataEntityCollection.LocalPlayerHandle, out var component))
            {
                component = cPDataEntityCollection.AddComponent <DecorationInventoryData>(cPDataEntityCollection.LocalPlayerHandle);
            }
            Dictionary <int, int> dictionary = new Dictionary <int, int>(count);

            for (int i = 0; i < count; i++)
            {
                DecorationId decorationId = evt.DecorationInventory.items[i].decorationId;
                if (decorationId.type == DecorationType.Decoration && !decorationId.customId.HasValue)
                {
                    dictionary.Add(decorationId.definitionId, evt.DecorationInventory.items[i].count);
                }
            }
            component.Decorations = dictionary;
            if (!cPDataEntityCollection.TryGetComponent <StructureInventoryData>(cPDataEntityCollection.LocalPlayerHandle, out var component2))
            {
                component2 = cPDataEntityCollection.AddComponent <StructureInventoryData>(cPDataEntityCollection.LocalPlayerHandle);
            }
            Dictionary <int, int> dictionary2 = new Dictionary <int, int>(count);

            for (int i = 0; i < count; i++)
            {
                DecorationId decorationId = evt.DecorationInventory.items[i].decorationId;
                if (decorationId.type == DecorationType.Structure && !decorationId.customId.HasValue)
                {
                    dictionary2.Add(decorationId.definitionId, evt.DecorationInventory.items[i].count);
                }
            }
            component2.Structures = dictionary2;
            return(false);
        }
Esempio n. 13
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);
        }
Esempio n. 14
0
        private void onDecorationDeleted(DeleteDecorationOperation operation, HttpResponse httpResponse)
        {
            DecorationId decorationId = DecorationId.FromString(operation.DecorationId);

            Service.Get <EventDispatcher>().DispatchEvent(new IglooServiceEvents.DecorationDeleted(decorationId));
        }
Esempio n. 15
0
    public APICall <DeleteDecorationOperation> DeleteDecoration(DecorationId decorationId)
    {
        DeleteDecorationOperation operation = new DeleteDecorationOperation(decorationId.ToString());

        return(new APICall <DeleteDecorationOperation>(clubPenguinClient, operation));
    }
Esempio n. 16
0
 public DecorationDeleted(DecorationId decorationId)
 {
     DecorationId = decorationId;
 }
Esempio n. 17
0
 public DecorationUpdated(DecorationId decorationId, int count)
 {
     DecorationId = decorationId;
     Count        = count;
 }
Esempio n. 18
0
 public DecorationCreated(DecorationId decorationId)
 {
     DecorationId = decorationId;
 }
 public bool ContainsKey(DecorationId key)
 {
     return(inventory.ContainsKey(key.ToString()));
 }