/// <summary> /// 実数値から努力値を逆算する /// </summary> /// <param name="level"></param> /// <param name="value"></param> /// <returns></returns> public ParameterData <int> CalcEv(int level, ParameterData <int> value) { var result = new ParameterData <int>(); result.Hp = StatusCalculator.CalcHitPointEv(Bv.Hp, Iv.Hp, value.Hp, level); // HP以外の計算式は同じなのでループで計算する foreach (var i in Enumerable.Range(1, 5)) { var bv = Bv.GetByIndex(i); // 種族値 var iv = Iv.GetByIndex(i); // 個体値 var p = value.GetByIndex(i); var person = Personality.GetByIndex(i); // 性格補正 var param = StatusCalculator.CalcEv(bv, iv, p, person, level); result.SetByIndex(i, param); } return(result); }
/// <summary> /// 個体値を設定する /// </summary> /// <param name="data"></param> public void SetIv(ParameterData <int> data) { Iv.CopyFrom(ref data); }