public override void OnProduceResult(IResult result, IResultControl control)
 {
     base.OnProduceResult(result, control);
     if (result.ClassID == (int)ENResult.AddBuff)
     {
         BuffInfo info = GameTable.BuffTableAsset.Lookup(BuffID);
         if (info == null)
         {
             Debug.LogWarning("buff is not exist, id is " + BuffID);
             return;
         }
         foreach (var item in info.BuffResultList)
         {
             if (item.ID == (int)ClassID)
             {
                 switch ((ENChangeBuffType)item.ParamList[0])
                 {
                 case ENChangeBuffType.enSelfLength:
                 {
                     ResultAddBuff abResult = result as ResultAddBuff;
                     for (int i = 0; i < abResult.BuffIDList.Length; ++i)
                     {
                         int      buffID   = (int)abResult.BuffIDList[i];
                         BuffInfo buffInfo = GameTable.BuffTableAsset.Lookup(buffID);
                         if (buffInfo == null)
                         {
                             continue;
                         }
                         if (buffInfo.BuffType != (int)item.ParamList[1])
                         {
                             continue;
                         }
                         abResult.BuffModifyTimeList[i] += item.ParamList[2];
                     }
                 }
                 break;
                 }
             }
         }
     }
 }
 public override void OnGetResult(IResult result, IResultControl control)
 {
     base.OnGetResult(result, control);
     if (result.ClassID == (int)ENResult.AddBuff)
     {
         ResultAddBuff r    = result as ResultAddBuff;
         BuffInfo      info = GameTable.BuffTableAsset.Lookup(BuffID);
         foreach (var item in info.BuffResultList)
         {
             if (item.ID == (int)ClassID)
             {
                 switch ((IgnoreDebuffType)item.ParamList[0])
                 {
                 case IgnoreDebuffType.enControl:
                 {
                     if (item.ParamList[2] < UnityEngine.Random.Range(0.0f, 1.0f))
                     {        //几率
                         continue;
                     }
                     for (int i = 0; i < r.BuffIDList.Length; ++i)
                     {
                         BuffInfo buffInfo = GameTable.BuffTableAsset.Lookup((int)r.BuffIDList[i]);
                         if (buffInfo != null)
                         {
                             if (buffInfo.BuffEffectType == item.ParamList[1])
                             {
                                 r.BuffIDIsRun[i] = true;
                             }
                         }
                     }
                 }
                 break;
                 }
             }
         }
     }
 }