public void SetConstantStat(gamedataStatType stat, float value, gameSavedStatsData statsData, gameStatModifierType mod = gameStatModifierType.Additive) { var foundStat = false; foreach (gameStatModifierData_Deprecated modifier in statsData.StatModifiers) { if (modifier is gameConstantStatModifierData_Deprecated constantModifier) { if (constantModifier.StatType == stat && constantModifier.ModifierType == mod) { constantModifier.Value = value; foundStat = true; } } } if (!foundStat) { var newModifierData = new gameConstantStatModifierData_Deprecated { ModifierType = mod, StatType = stat, Value = value }; this.AddStat(typeof(gameConstantStatModifierData_Deprecated), statsData, newModifierData); } }
public CHandle <gameStatModifierData_Deprecated> AddStat(Type statType, gameSavedStatsData statsData, gameStatModifierData_Deprecated modifierData = null) { var newModifierData = System.Activator.CreateInstance(statType); if (statType == typeof(gameCurveStatModifierData_Deprecated)) { ((gameCurveStatModifierData_Deprecated)newModifierData).ColumnName = "<null>"; ((gameCurveStatModifierData_Deprecated)newModifierData).CurveName = "<null>"; } if (modifierData != null) { newModifierData = modifierData; } var final = new CHandle <gameStatModifierData_Deprecated>((gameStatModifierData_Deprecated)newModifierData); statsData.StatModifiers.Add(final); return(final); }
public void RemoveStat(CHandle <gameStatModifierData_Deprecated> statsHandle, gameSavedStatsData statsData) { statsData.StatModifiers.Remove(statsHandle); }