示例#1
0
        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)
                {
                }
            }