/// <summary> /// 刷新buff影响属性 /// </summary> /// <param name="type"></param> public void RefreshAffectValue(eBuffEffectType type) { float tempValue = 0; foreach (var buff in mBuffers.Values) { if (buff.LogicType == eBuffLogicType.Fixed) { tempValue += buff.GetEffectValue(type); } } switch (type) { case eBuffEffectType.影响生命百分比: mOwner.SetAttrBasePer(eValueType.Buff, eSkillAttrIndex.HPRate, tempValue); break; case eBuffEffectType.影响生命上限百分比: mOwner.SetAttrBasePer(eValueType.Buff, eSkillAttrIndex.MaxHPRate, tempValue); break; case eBuffEffectType.影响移动速度百分比: mOwner.SetAttrBasePer(eValueType.Buff, eSkillAttrIndex.SpeedRate, tempValue); break; case eBuffEffectType.影响攻击力百分比: mOwner.SetAttrBasePer(eValueType.Buff, eSkillAttrIndex.AtkRate, tempValue); break; case eBuffEffectType.影响闪避百分比: mOwner.SetAttrBasePer(eValueType.Buff, eSkillAttrIndex.DodgeRate, tempValue); break; case eBuffEffectType.影响命中百分比: mOwner.SetAttrBasePer(eValueType.Buff, eSkillAttrIndex.HitRate, tempValue); break; case eBuffEffectType.影响防御百分比: mOwner.SetAttrBasePer(eValueType.Buff, eSkillAttrIndex.Def_All, tempValue); break; } mOwner.UpdateAttr(); }