public double GetValue(VaryingExtension ex) { int index = 0; int grade = 0; if (ex is LevelVaryingExtension) { LevelVaryingExtension lvEx = (LevelVaryingExtension)ex; index = lvEx.Lv - 1; grade = lvEx.Grade - 1; } if (index < 0) { return(firstItem); } double result = firstItem + tolerance * (index); result += extendArray[YKMath.Clamp(index, 0, extendArray.Length - 1)]; result += gradeArray[YKMath.Clamp(grade, 0, gradeArray.Length - 1)]; return(_invert ? -result : result); }
//注意:所有子类必须支持Ex不是自身对应的情况 public abstract double GetValue(VaryingExtension ex);
public double GetValue(VaryingExtension ex) { return(Value); }