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); }
public void SubtractDisneyStoreItemCost(int itemId, int count) { Dictionary <int, DisneyStoreFranchiseDefinition> dictionary = Service.Get <GameData>().Get <Dictionary <int, DisneyStoreFranchiseDefinition> >(); foreach (DisneyStoreFranchiseDefinition value2 in dictionary.Values) { if (value2.Items == null) { continue; } foreach (DisneyStoreItemDefinition item in value2.Items) { if (item.Id == itemId) { ClubPenguin.Net.Offline.PlayerAssets value = offlineDatabase.Read <ClubPenguin.Net.Offline.PlayerAssets>(); value.Assets.coins -= item.Cost * count; if (value.Assets.coins < 0) { value.Assets.coins = 0; } offlineDatabase.Write(value); } } } }
protected override void SetOfflineData(OfflineDatabase offlineDatabase, IOfflineDefinitionLoader offlineDefinitions) { AddDecoration(ResponseBody.decorationId, Count, offlineDatabase); ClubPenguin.Net.Offline.PlayerAssets value = offlineDatabase.Read <ClubPenguin.Net.Offline.PlayerAssets>(); value.Assets = ResponseBody.assets; offlineDatabase.Write(value); }
protected override void SetOfflineData(OfflineDatabase offlineDatabase, IOfflineDefinitionLoader offlineDefinitions) { createEquipment(CustomEquipmentResponse.equipmentId, offlineDatabase, offlineDefinitions); ClubPenguin.Net.Offline.PlayerAssets value = offlineDatabase.Read <ClubPenguin.Net.Offline.PlayerAssets>(); value.Assets = CustomEquipmentResponse.assets; offlineDatabase.Write(value); }
protected override void PerformOfflineAction(OfflineDatabase offlineDatabase, IOfflineDefinitionLoader offlineDefinitions) { ClubPenguin.Net.Offline.PlayerAssets playerAssets = offlineDatabase.Read <ClubPenguin.Net.Offline.PlayerAssets>(); ResponseBody = new RewardCalculatedResponse { coins = offlineDefinitions.GetCoinsForExchange(playerAssets.Assets.collectibleCurrencies) }; }
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.PlayerAssets value = offlineDatabase.Read <ClubPenguin.Net.Offline.PlayerAssets>(); int coinsForExchange = offlineDefinitions.GetCoinsForExchange(value.Assets.collectibleCurrencies); value.Assets.coins += coinsForExchange; value.Assets.collectibleCurrencies.Clear(); offlineDatabase.Write(value); ResponseBody = new RewardGrantedResponse { assets = value.Assets }; }
public void SubtractEquipmentCost(int templateDefinitionId) { Dictionary <int, TemplateDefinition> dictionary = Service.Get <GameData>().Get <Dictionary <int, TemplateDefinition> >(); if (dictionary.TryGetValue(templateDefinitionId, out var value)) { ClubPenguin.Net.Offline.PlayerAssets value2 = offlineDatabase.Read <ClubPenguin.Net.Offline.PlayerAssets>(); value2.Assets.coins -= value.Cost; if (value2.Assets.coins < 0) { value2.Assets.coins = 0; } offlineDatabase.Write(value2); } }
public void SubtractConsumableCost(string consumableId, int count) { Dictionary <int, PropDefinition> dictionary = Service.Get <GameData>().Get <Dictionary <int, PropDefinition> >(); foreach (PropDefinition value2 in dictionary.Values) { if (consumableId == value2.NameOnServer) { ClubPenguin.Net.Offline.PlayerAssets value = offlineDatabase.Read <ClubPenguin.Net.Offline.PlayerAssets>(); value.Assets.coins -= value2.Cost * count; if (value.Assets.coins < 0) { value.Assets.coins = 0; } offlineDatabase.Write(value); } } }
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 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); }
public List <QuestState> AvailableQuests(QuestStateCollection quests) { HashSet <string> hashSet = new HashSet <string>(); foreach (QuestState quest in quests) { hashSet.Add(quest.questId); } ClubPenguin.Net.Offline.PlayerAssets playerAssets = offlineDatabase.Read <ClubPenguin.Net.Offline.PlayerAssets>(); List <QuestState> list = new List <QuestState>(); Dictionary <string, QuestDefinition> knownQuests = Service.Get <QuestService>().knownQuests; foreach (KeyValuePair <string, QuestDefinition> item in knownQuests) { if (hashSet.Contains(item.Key)) { continue; } DateTime?dateTime = questAvailableDate(item.Value, playerAssets.Assets.mascotXP); if (dateTime.HasValue) { QuestState questState = new QuestState(); questState.questId = item.Key; questState.completedObjectives = new QuestObjectives(); if (dateTime <= DateTime.UtcNow) { questState.status = QuestStatus.AVAILABLE; } else { questState.status = QuestStatus.LOCKED; questState.unlockTime = dateTime.Value.GetTimeInMilliseconds(); } list.Add(questState); } } return(list); }
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); }