private void OnDamageExtraEffect(PoolObjHandle <ActorRoot> _attack, SkillSlotType _slotType)
        {
            ResDT_SkillFunc skillFunc = null;

            if (!_attack)
            {
                return;
            }
            for (int i = 0; i < _attack.get_handle().BuffHolderComp.SpawnedBuffList.get_Count(); i++)
            {
                BuffSkill buffSkill = _attack.get_handle().BuffHolderComp.SpawnedBuffList.get_Item(i);
                if (buffSkill != null && buffSkill.FindSkillFunc(33, out skillFunc))
                {
                    bool flag            = false;
                    bool flag2           = true;
                    int  skillFuncParam  = buffSkill.GetSkillFuncParam(skillFunc, 0, false);
                    int  skillFuncParam2 = buffSkill.GetSkillFuncParam(skillFunc, 1, false);
                    int  skillFuncParam3 = buffSkill.GetSkillFuncParam(skillFunc, 2, false);
                    int  skillFuncParam4 = buffSkill.GetSkillFuncParam(skillFunc, 3, false);
                    int  skillFuncParam5 = buffSkill.GetSkillFuncParam(skillFunc, 4, false);
                    int  skillFuncParam6 = buffSkill.GetSkillFuncParam(skillFunc, 5, false);
                    int  skillFuncParam7 = buffSkill.GetSkillFuncParam(skillFunc, 6, false);
                    int  skillFuncParam8 = buffSkill.GetSkillFuncParam(skillFunc, 7, false);
                    if (skillFuncParam3 == 0 && this.CheckTargetSubType(skillFuncParam4, skillFuncParam5, this.actorPtr))
                    {
                        if (skillFuncParam7 == 0 || this.CheckTriggerCondtion(skillFuncParam7, skillFuncParam8, _attack, this.actorPtr))
                        {
                            if (skillFuncParam2 == 0)
                            {
                                flag = true;
                            }
                            else if ((skillFuncParam2 & 1 << (int)_slotType) > 0)
                            {
                                flag = true;
                            }
                            if (skillFuncParam6 > 0)
                            {
                                flag2 = (Singleton <FrameSynchr> .GetInstance().LogicFrameTick - buffSkill.controlTime >= (ulong)((long)skillFuncParam6));
                            }
                            if (flag && flag2)
                            {
                                if (skillFuncParam6 != -2 || !buffSkill.IsNextDestroy())
                                {
                                    SkillUseParam skillUseParam = default(SkillUseParam);
                                    skillUseParam.Init();
                                    skillUseParam.SetOriginator(_attack);
                                    skillUseParam.bExposing = buffSkill.skillContext.bExposing;
                                    if (buffSkill.skillContext != null)
                                    {
                                        if (buffSkill.skillContext.SlotType != SkillSlotType.SLOT_SKILL_COUNT)
                                        {
                                            skillUseParam.SlotType = _slotType;
                                        }
                                        else
                                        {
                                            skillUseParam.SlotType = buffSkill.skillContext.SlotType;
                                        }
                                    }
                                    else
                                    {
                                        skillUseParam.SlotType = _slotType;
                                    }
                                    _attack.get_handle().SkillControl.SpawnBuff(this.actorPtr, ref skillUseParam, skillFuncParam, true);
                                    buffSkill.controlTime = Singleton <FrameSynchr> .GetInstance().LogicFrameTick;

                                    if (skillFuncParam6 == -1 || skillFuncParam6 == -2)
                                    {
                                        _attack.get_handle().BuffHolderComp.RemoveBuff(buffSkill);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }