示例#1
0
 /// <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;
         }
     }
 }
示例#2
0
        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;
		}