public CastCondition(int conditionGroup, ConditionType type, double[] values, ConditionValueName[] valuenames) { this.ConditionGroup = conditionGroup; this.Type = type; this.Values = values; this.ValueNames = valuenames; }
public static void Fix() { try { foreach (var definition in A_Collection.SkillCastConditions.Custom.CustomDefinitions) { foreach (var condition in definition.CastConditions) { var _default = A_Collection.Presets.DefaultCastConditions._Default_CastConditions.FirstOrDefault( x => x.Type == condition.Type); if (condition.ValueNames != _default.ValueNames || condition.Values.Count() != _default.Values.Count()) { List <double> addBuffer = new List <double>(); for (int i = 0; i < _default.ValueNames.Count(); i++) { ConditionValueName name = _default.ValueNames[i]; if (!condition.ValueNames.Contains(name)) { switch (name) { case ConditionValueName.Bool: addBuffer.Add(1); break; case ConditionValueName.AttribID: case ConditionValueName.Distance: case ConditionValueName.PowerSNO: case ConditionValueName.Value: addBuffer.Add(0); break; } } else { var valueIndex = Array.FindIndex(condition.ValueNames, x => x == name); addBuffer.Add(condition.Values[valueIndex]); } } condition.Values = addBuffer.ToArray(); condition.ValueNames = _default.ValueNames; } } } } catch (Exception) { } }