public ObservableCollection <StringIntPair> GetGuardianRewards() { ObservableCollection <StringIntPair> pairs = new ObservableCollection <StringIntPair>(); foreach (string humanName in DataPathTranslations.GuardianRankRewards.Values) { bool bUpdatedRankData = false; foreach (GuardianRankRewardSaveGameData rankData in loadedProfile.GuardianRank.RankRewards) { string h = DataPathTranslations.GetHumanRewardString(rankData.RewardDataPath); if (h.Equals(humanName)) { Console.WriteLine("Rank Data ({0}): {1}", humanName, rankData.NumTokens); pairs.Add(new StringIntPair(humanName, rankData.NumTokens)); bUpdatedRankData = true; break; } } if (!bUpdatedRankData) { pairs.Add(new StringIntPair(humanName, 0)); } } return(pairs); }
private void UnlockRoomDecorations(object sender, System.Windows.RoutedEventArgs e) { List <string> roomDecos = DataPathTranslations.GetDecorationAssetPaths(); foreach (string assetPath in roomDecos) { bool bAlreadyOwned = false; foreach (CrewQuartersDecorationItemSaveGameData d in loadedProfile.UnlockedCrewQuartersDecorations) { if (d.DecorationItemAssetPath.Equals(assetPath)) { bAlreadyOwned = true; break; } } if (!bAlreadyOwned) { CrewQuartersDecorationItemSaveGameData d = new CrewQuartersDecorationItemSaveGameData() { DecorationItemAssetPath = assetPath, IsNew = true }; loadedProfile.UnlockedCrewQuartersDecorations.Add(d); Console.WriteLine("Doesnt own room deco: {0}", assetPath); } } }
private void ReadGUIData() { foreach (StringIntPair p in GuardianRankDataGrid.Items) { string assetPath = DataPathTranslations.GetRewardAssetPathString(p.str); bool bRankDataSaved = false; foreach (GuardianRankRewardSaveGameData rankData in loadedProfile.GuardianRank.RankRewards) { if (rankData.RewardDataPath.Equals(assetPath)) { rankData.NumTokens = (int)p.Value; bRankDataSaved = true; break; } } if (!bRankDataSaved) { loadedProfile.GuardianRank.RankRewards.Add(new GuardianRankRewardSaveGameData() { RewardDataPath = assetPath, NumTokens = (int)p.Value }); } if (p.Value == 0) { loadedProfile.GuardianRank.RankRewards.RemoveAll(x => x.RewardDataPath.Equals(assetPath)); } } loadedProfile.GuardianRank.GuardianExperience = (int)loadedProfile.GuardianRank.NewGuardianExperience; // If the save loaded previously never had any golden keys, the hashes won't be here... :/ if ( !loadedProfile.BankInventoryCategoryLists.Select(x => x.BaseCategoryDefinitionHash).Contains(DataPathTranslations.GoldenKeyHash) && GoldenKeys.Value != null) { loadedProfile.BankInventoryCategoryLists.Add(new InventoryCategorySaveData { BaseCategoryDefinitionHash = DataPathTranslations.GoldenKeyHash, Quantity = (int)GoldenKeys.Value }); } }
private void UnlockCustomizations(object sender, System.Windows.RoutedEventArgs e) { List <string> customizationAssetPaths = DataPathTranslations.GetCustomizationAssetPaths(); List <OakCustomizationSaveGameData> saveData = loadedProfile.UnlockedCustomizations; List <OakCustomizationSaveGameData> output = new List <OakCustomizationSaveGameData>(); foreach (string assetPath in customizationAssetPaths) { string lowerAsset = assetPath.ToLower(); if (lowerAsset.Contains("default") || (lowerAsset.Contains("emote") && (lowerAsset.Contains("wave") || lowerAsset.Contains("cheer") || lowerAsset.Contains("laugh") || lowerAsset.Contains("point")))) { continue; } //if (!lowerAsset.Contains("beastmaster")) continue; bool bAlreadyOwnsCustomization = false; foreach (OakCustomizationSaveGameData customizatonData in saveData) { if (customizatonData.CustomizationAssetPath.Equals(assetPath)) { bAlreadyOwnsCustomization = true; break; } } if (!bAlreadyOwnsCustomization) { OakCustomizationSaveGameData d = new OakCustomizationSaveGameData { CustomizationAssetPath = assetPath, IsNew = true }; output.Add(d); Console.WriteLine("Doesn't own customization: {0}", assetPath); } } saveData.AddRange(output); }
private void UnlockCustomizations(object sender, System.Windows.RoutedEventArgs e) { List <string> customizationAssetPaths = DataPathTranslations.GetCustomizationAssetPaths(); List <OakCustomizationSaveGameData> saveData = loadedProfile.UnlockedCustomizations; List <OakCustomizationSaveGameData> output = new List <OakCustomizationSaveGameData>(); foreach (string assetPath in customizationAssetPaths) { string lowerAsset = assetPath.ToLower(); if (lowerAsset.Contains("default") || (lowerAsset.Contains("emote") && (lowerAsset.Contains("wave") || lowerAsset.Contains("cheer") || lowerAsset.Contains("laugh") || lowerAsset.Contains("point")))) { continue; } bool bAlreadyOwnsCustomization = false; foreach (OakCustomizationSaveGameData customizatonData in saveData) { if (customizatonData.CustomizationAssetPath.Equals(assetPath)) { bAlreadyOwnsCustomization = true; break; } } if (!bAlreadyOwnsCustomization) { OakCustomizationSaveGameData d = new OakCustomizationSaveGameData { CustomizationAssetPath = assetPath, IsNew = true }; output.Add(d); Console.WriteLine("Doesn't own customization: {0}", assetPath); } } saveData.AddRange(output); // The weapon trinkets / skins use a different format so we'll want to add this List <OakInventoryCustomizationPartInfo> weaponOut = new List <OakInventoryCustomizationPartInfo>(); foreach (uint assetHash in DataPathTranslations.GetWeaponCustomizationPaths()) { bool bOwnsHash = false; foreach (OakInventoryCustomizationPartInfo partInfo in loadedProfile.UnlockedInventoryCustomizationParts) { if (partInfo.CustomizationPartHash.Equals(assetHash)) { bOwnsHash = true; break; } } if (!bOwnsHash) { OakInventoryCustomizationPartInfo customizationInfo = new OakInventoryCustomizationPartInfo { CustomizationPartHash = assetHash, IsNew = true }; weaponOut.Add(customizationInfo); } } loadedProfile.UnlockedInventoryCustomizationParts.AddRange(weaponOut); }