public void SetConstantStat(gamedataStatType stat, float value, GameSavedStatsData statsData) { var foundStat = false; foreach (Handle <GameStatModifierData> modifier in statsData.StatModifiers) { if (modifier.Value.GetType() == typeof(GameConstantStatModifierData)) { if (((GameConstantStatModifierData)modifier.Value).StatType == stat) { ((GameConstantStatModifierData)modifier.Value).Value = value; foundStat = true; } } } if (!foundStat) { var newModifierData = new GameConstantStatModifierData(); newModifierData.ModifierType = gameStatModifierType.Additive; newModifierData.StatType = stat; newModifierData.Value = value; this.AddStat(typeof(GameConstantStatModifierData), statsData, newModifierData); } }
public void SetConstantStat(gamedataStatType stat, float value, GameSavedStatsData statsData, gameStatModifierType mod = gameStatModifierType.Additive) { var foundStat = false; foreach (Handle <GameStatModifierData> modifier in statsData.StatModifiers) { if (modifier.Value is GameConstantStatModifierData constantModifier) { if (constantModifier.StatType == stat && constantModifier.ModifierType == mod) { constantModifier.Value = value; foundStat = true; } } } if (!foundStat) { var newModifierData = new GameConstantStatModifierData { ModifierType = mod, StatType = stat, Value = value }; this.AddStat(typeof(GameConstantStatModifierData), statsData, newModifierData); } }
private void pasteLegendaryIdButton_Click(object sender, EventArgs e) { if (activeSaveFile.GetItemStatData(activeItem) == null) { if (MessageBox.Show("Item has no stat data. Fallback to old method?", "Notice", MessageBoxButtons.YesNo) == DialogResult.Yes) { modsBaseIdBox.Text = ((ulong)88400986533).ToString(); } } else { var foundQualityStat = false; foreach (Handle <GameStatModifierData> modifier in activeSaveFile.GetItemStatData(activeItem).StatModifiers) { if (modifier.Value.GetType().Name == "GameConstantStatModifierData") { if (((GameConstantStatModifierData)modifier.Value).StatType == gamedataStatType.Quality) { ((GameConstantStatModifierData)modifier.Value).Value = 4; foundQualityStat = true; } } } if (!foundQualityStat) { var newModifierData = new GameConstantStatModifierData(); newModifierData.ModifierType = gameStatModifierType.Additive; newModifierData.StatType = gamedataStatType.Quality; newModifierData.Value = 4; var newModifier = activeSaveFile.GetStatsContainer().CreateHandle <GameStatModifierData>(newModifierData); activeSaveFile.GetItemStatData(activeItem).StatModifiers = activeSaveFile.GetItemStatData(activeItem).StatModifiers.Append(newModifier).ToArray(); } ReloadData(); MessageBox.Show("Legendary quality stat applied."); } }