public void Leave(Action _action, Track _track)
        {
            if (this.bTriggerMode && this.attackActor)
            {
                int count = this.TriggeredBuffContextList.get_Count();
                for (int i = 0; i < count; i++)
                {
                    HitTriggerDurationContext.STriggeredBuffContext sTriggeredBuffContext = this.TriggeredBuffContextList.get_Item(i);
                    if (sTriggeredBuffContext.actor)
                    {
                        this.attackActor.get_handle().SkillControl.RemoveBuff(sTriggeredBuffContext.actor, sTriggeredBuffContext.buffId);
                    }
                }
                this.TriggeredBuffContextList.Clear();
            }
            int count2 = this.RemoveSkillList.get_Count();

            for (int j = 0; j < this.RemoveSkillList.get_Count(); j++)
            {
                BuffSkill buffSkill = this.RemoveSkillList.get_Item(j);
                if (buffSkill != null && !buffSkill.isFinish)
                {
                    if (buffSkill.skillContext.TargetActor)
                    {
                        buffSkill.skillContext.TargetActor.get_handle().BuffHolderComp.RemoveBuff(buffSkill);
                    }
                }
            }
            this.RemoveSkillList.Clear();
        }
        private void HitTrigger(Action _action)
        {
            if (!this.attackActor)
            {
                return;
            }
            if (this.skillContext != null)
            {
                this.skillContext.EffectCountInSingleTrigger = 0;
            }
            this.GetCollidedActorList(_action, this.attackActor, this.triggerActor);
            if (this.collidedActors != null && this.collidedActors.get_Count() > 0)
            {
                if (this.bTriggerBounceBullet)
                {
                    SkillUseContext refParamObject = _action.refParams.GetRefParamObject <SkillUseContext>("SkillContext");
                    if (!refParamObject.TargetActor)
                    {
                        refParamObject.TargetActor = this.collidedActors.get_Item(0);
                    }
                }
                SkillChooseTargetEventParam skillChooseTargetEventParam = new SkillChooseTargetEventParam(this.attackActor, this.attackActor, this.collidedActors.get_Count());
                Singleton <GameEventSys> .get_instance().SendEvent <SkillChooseTargetEventParam>(GameEventDef.Event_HitTrigger, ref skillChooseTargetEventParam);

                if (this.TriggerActorCount > 0 && this.TriggerActorCount < this.collidedActors.get_Count())
                {
                    this.PriorityTrigger(_action);
                }
                else
                {
                    for (int i = 0; i < this.collidedActors.get_Count(); i++)
                    {
                        PoolObjHandle <ActorRoot> poolObjHandle = this.collidedActors.get_Item(i);
                        this.TriggerAction(_action, ref poolObjHandle);
                    }
                }
            }
            if (this.bTriggerMode)
            {
                int count = this.TriggeredBuffContextList.get_Count();
                if (count > 0 && this.attackActor)
                {
                    for (int j = count - 1; j >= 0; j--)
                    {
                        HitTriggerDurationContext.STriggeredBuffContext sTriggeredBuffContext = this.TriggeredBuffContextList.get_Item(j);
                        if (!this.collidedActors.Contains(sTriggeredBuffContext.actor))
                        {
                            this.attackActor.get_handle().SkillControl.RemoveBuff(sTriggeredBuffContext.actor, sTriggeredBuffContext.buffId);
                            this.TriggeredBuffContextList.RemoveAt(j);
                        }
                    }
                }
            }
        }
        private void TriggerAction(Action _action, ref PoolObjHandle <ActorRoot> target)
        {
            if (!this.attackActor)
            {
                return;
            }
            uint objID = target.get_handle().ObjID;
            int  num;

            if (this.collideCountMap.TryGetValue(objID, ref num))
            {
                num++;
                this.collideCountMap.set_Item(objID, num);
            }
            else
            {
                this.collideCountMap.Add(objID, 1);
            }
            int num2 = 0;

            if (this.collideTimeMap.TryGetValue(objID, ref num2))
            {
                this.collideTimeMap.set_Item(objID, this.localTime);
            }
            else
            {
                this.collideTimeMap.Add(objID, this.localTime);
            }
            if (this.skillContext == null)
            {
                return;
            }
            this.skillContext.EffectCount++;
            this.skillContext.EffectCountInSingleTrigger++;
            if (!this.bTriggerMode)
            {
                this.attackActor.get_handle().SkillControl.SpawnBuff(this.skillContext.Originator, this.skillContext, this.SelfSkillCombineID_1, false);
                this.attackActor.get_handle().SkillControl.SpawnBuff(this.skillContext.Originator, this.skillContext, this.SelfSkillCombineID_2, false);
                this.attackActor.get_handle().SkillControl.SpawnBuff(this.skillContext.Originator, this.skillContext, this.SelfSkillCombineID_3, false);
            }
            else
            {
                if (this.skillContext.Originator && this.SelfSkillCombineID_1 > 0)
                {
                    HitTriggerDurationContext.STriggeredBuffContext inPoint = default(HitTriggerDurationContext.STriggeredBuffContext);
                    inPoint.actor  = this.skillContext.Originator;
                    inPoint.buffId = this.SelfSkillCombineID_1;
                    if (BaseAlgorithm.AddUniqueItem <HitTriggerDurationContext.STriggeredBuffContext>(this.TriggeredBuffContextList, inPoint))
                    {
                        this.attackActor.get_handle().SkillControl.SpawnBuff(this.skillContext.Originator, this.skillContext, this.SelfSkillCombineID_1, false);
                    }
                }
                if (this.skillContext.Originator && this.SelfSkillCombineID_2 > 0)
                {
                    HitTriggerDurationContext.STriggeredBuffContext inPoint2 = default(HitTriggerDurationContext.STriggeredBuffContext);
                    inPoint2.actor  = this.skillContext.Originator;
                    inPoint2.buffId = this.SelfSkillCombineID_2;
                    if (BaseAlgorithm.AddUniqueItem <HitTriggerDurationContext.STriggeredBuffContext>(this.TriggeredBuffContextList, inPoint2))
                    {
                        this.attackActor.get_handle().SkillControl.SpawnBuff(this.skillContext.Originator, this.skillContext, this.SelfSkillCombineID_2, false);
                    }
                }
                if (this.skillContext.Originator && this.SelfSkillCombineID_3 > 0)
                {
                    HitTriggerDurationContext.STriggeredBuffContext inPoint3 = default(HitTriggerDurationContext.STriggeredBuffContext);
                    inPoint3.actor  = this.skillContext.Originator;
                    inPoint3.buffId = this.SelfSkillCombineID_3;
                    if (BaseAlgorithm.AddUniqueItem <HitTriggerDurationContext.STriggeredBuffContext>(this.TriggeredBuffContextList, inPoint3))
                    {
                        this.attackActor.get_handle().SkillControl.SpawnBuff(this.skillContext.Originator, this.skillContext, this.SelfSkillCombineID_3, false);
                    }
                }
            }
            if (target)
            {
                this.hit = true;
                if (target.get_handle().TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Hero && !this.bHitTargetHero)
                {
                    this.bHitTargetHero   = true;
                    this.HitTargetHeroPos = target.get_handle().location;
                }
                this.skillContext.EffectDir = this.attackActor.get_handle().forward;
                bool      flag       = false;
                BuffSkill buffSkill  = null;
                BuffSkill buffSkill2 = null;
                BuffSkill buffSkill3 = null;
                if (!this.bTriggerMode)
                {
                    this.attackActor.get_handle().SkillControl.SpawnBuff(target, this.skillContext, this.TargetSkillCombine_1, ref buffSkill, this.bExtraBuff);
                    this.attackActor.get_handle().SkillControl.SpawnBuff(target, this.skillContext, this.TargetSkillCombine_2, ref buffSkill2, this.bExtraBuff);
                    this.attackActor.get_handle().SkillControl.SpawnBuff(target, this.skillContext, this.TargetSkillCombine_3, ref buffSkill3, this.bExtraBuff);
                    if ((buffSkill != null && buffSkill.cfgData.bNotGetHate == 0) || (buffSkill2 != null && buffSkill2.cfgData.bNotGetHate == 0) || (buffSkill3 != null && buffSkill3.cfgData.bNotGetHate == 0))
                    {
                        flag = true;
                    }
                }
                else
                {
                    if (this.TargetSkillCombine_1 > 0)
                    {
                        HitTriggerDurationContext.STriggeredBuffContext inPoint4 = default(HitTriggerDurationContext.STriggeredBuffContext);
                        inPoint4.actor  = target;
                        inPoint4.buffId = this.TargetSkillCombine_1;
                        if (BaseAlgorithm.AddUniqueItem <HitTriggerDurationContext.STriggeredBuffContext>(this.TriggeredBuffContextList, inPoint4))
                        {
                            this.attackActor.get_handle().SkillControl.SpawnBuff(target, this.skillContext, this.TargetSkillCombine_1, ref buffSkill, false);
                        }
                        if (buffSkill != null && buffSkill.cfgData.bNotGetHate == 0)
                        {
                            flag = true;
                        }
                    }
                    if (this.TargetSkillCombine_2 > 0)
                    {
                        HitTriggerDurationContext.STriggeredBuffContext inPoint5 = default(HitTriggerDurationContext.STriggeredBuffContext);
                        inPoint5.actor  = target;
                        inPoint5.buffId = this.TargetSkillCombine_2;
                        if (BaseAlgorithm.AddUniqueItem <HitTriggerDurationContext.STriggeredBuffContext>(this.TriggeredBuffContextList, inPoint5))
                        {
                            this.attackActor.get_handle().SkillControl.SpawnBuff(target, this.skillContext, this.TargetSkillCombine_2, ref buffSkill2, false);
                        }
                        if (buffSkill2 != null && buffSkill2.cfgData.bNotGetHate == 0)
                        {
                            flag = true;
                        }
                    }
                    if (this.TargetSkillCombine_3 > 0)
                    {
                        HitTriggerDurationContext.STriggeredBuffContext inPoint6 = default(HitTriggerDurationContext.STriggeredBuffContext);
                        inPoint6.actor  = target;
                        inPoint6.buffId = this.TargetSkillCombine_3;
                        if (BaseAlgorithm.AddUniqueItem <HitTriggerDurationContext.STriggeredBuffContext>(this.TriggeredBuffContextList, inPoint6))
                        {
                            this.attackActor.get_handle().SkillControl.SpawnBuff(target, this.skillContext, this.TargetSkillCombine_3, ref buffSkill3, false);
                        }
                        if (buffSkill3 != null && buffSkill3.cfgData.bNotGetHate == 0)
                        {
                            flag = true;
                        }
                    }
                }
                if (this.TargetSkillLeaveRemove_1 && buffSkill != null)
                {
                    this.RemoveSkillList.Add(buffSkill);
                }
                if (this.TargetSkillLeaveRemove_2 && buffSkill2 != null)
                {
                    this.RemoveSkillList.Add(buffSkill2);
                }
                if (this.TargetSkillLeaveRemove_3 && buffSkill3 != null)
                {
                    this.RemoveSkillList.Add(buffSkill3);
                }
                if (flag)
                {
                    target.get_handle().ActorControl.BeAttackHit(this.attackActor, this.skillContext.bExposing);
                }
            }
            if (this.bTriggerBullet && this.BulletActionName != null && this.BulletActionName.get_Length() > 0)
            {
                this.skillContext.AppointType = 1;
                this.skillContext.TargetActor = target;
                this.attackActor.get_handle().SkillControl.SpawnBullet(this.skillContext, this.BulletActionName, false, this.bAgeImmeExcute, 0, 0);
            }
        }