public void SetPartnerValue(IGameValue _partner_value) { if (_partner_value.Equals(this)) { throw new StackOverflowException("Do not set Modifier itself as partner value!"); } partner_value.NoLongerReferredBy(this); partner_value = _partner_value; partner_value.BeReferredBy(this); NeedReCalculate();; }
/// <summary> /// 不要频繁调用,开销较大 /// </summary> /// <param name="_base_value"></param> public void SetBaseValue(IGameValue _base_value) { if (_base_value.Equals(this)) { throw new StackOverflowException("Do not set Modifier itself as base value!"); } base_value.NoLongerReferredBy(this); base_value = _base_value; base_value.BeReferredBy(this); NeedReCalculate(); }