/// <summary> /// Method used to apply bonuses /// </summary> /// <param name="owner"></param> /// <param name="BonusCat"></param> /// <param name="Property"></param> /// <param name="Value"></param> /// <param name="IsSubstracted"></param> protected void ApplyBonus(GameLiving owner, eBuffBonusCategory BonusCat, eProperty Property, int Value, bool IsSubstracted) { if (Property != eProperty.Undefined) { var tblBonusCat = GetBonusCategory(owner, BonusCat); if (IsSubstracted) { tblBonusCat[(int)Property] -= Value; } else { tblBonusCat[(int)Property] += Value; } } }
protected IPropertyIndexer GetBonusCategory(GameLiving target, eBuffBonusCategory categoryid) { IPropertyIndexer bonuscat = null; switch (categoryid) { case eBuffBonusCategory.BaseBuff: bonuscat = target.BaseBuffBonusCategory; break; case eBuffBonusCategory.SpecBuff: bonuscat = target.SpecBuffBonusCategory; break; case eBuffBonusCategory.Debuff: bonuscat = target.DebuffCategory; break; case eBuffBonusCategory.Other: bonuscat = target.BuffBonusCategory4; break; case eBuffBonusCategory.SpecDebuff: bonuscat = target.SpecDebuffCategory; break; case eBuffBonusCategory.AbilityBuff: bonuscat = target.AbilityBonus; break; default: if (log.IsErrorEnabled) { log.Error($"BonusCategory not found {categoryid}!"); } break; } return(bonuscat); }
/// <summary> /// Method used to apply bonuses /// </summary> /// <param name="owner"></param> /// <param name="BonusCat"></param> /// <param name="Property"></param> /// <param name="Value"></param> /// <param name="IsSubstracted"></param> protected void ApplyBonus(GameLiving owner, eBuffBonusCategory BonusCat, eProperty Property, int Value, bool IsSubstracted) { IPropertyIndexer tblBonusCat; if (Property != eProperty.Undefined) { tblBonusCat = GetBonusCategory(owner, BonusCat); if (IsSubstracted) tblBonusCat[(int)Property] -= Value; else tblBonusCat[(int)Property] += Value; } }
protected IPropertyIndexer GetBonusCategory(GameLiving target, eBuffBonusCategory categoryid) { IPropertyIndexer bonuscat = null; switch (categoryid) { case eBuffBonusCategory.BaseBuff: bonuscat = target.BaseBuffBonusCategory; break; case eBuffBonusCategory.SpecBuff: bonuscat = target.SpecBuffBonusCategory; break; case eBuffBonusCategory.Debuff: bonuscat = target.DebuffCategory; break; case eBuffBonusCategory.Other: bonuscat = target.BuffBonusCategory4; break; case eBuffBonusCategory.SpecDebuff: bonuscat = target.SpecDebuffCategory; break; case eBuffBonusCategory.AbilityBuff: bonuscat = target.AbilityBonus; break; default: if (log.IsErrorEnabled) log.Error("BonusCategory not found " + categoryid + "!"); break; } return bonuscat; }