Example #1
0
        public static int OnDamageExtraEffect(ref HurtDataInfo _hurt, int _hurtValue)
        {
            SkillSlot skillSlot = null;

            if (!_hurt.atker || _hurt.atker.handle.ActorControl.IsDeadState)
            {
                return(_hurtValue);
            }
            BufferLogicEffect logicEffect          = _hurt.atker.handle.BuffHolderComp.logicEffect;
            List <PoolObjHandle <BuffSkill> > list = logicEffect.GetExtraHurtList();

            for (int i = 0; i < list.get_Count(); i++)
            {
                if (!_hurt.target)
                {
                    return(_hurtValue);
                }
                BuffSkill buffSkill      = list.get_Item(i);
                int       skillFuncParam = buffSkill.GetSkillFuncParam(72, 0, false);
                if (_hurt.atkSlot == (SkillSlotType)skillFuncParam && _hurt.atker.handle.SkillControl.TryGetSkillSlot(_hurt.atkSlot, out skillSlot))
                {
                    int skillFuncParam2 = buffSkill.GetSkillFuncParam(72, 1, false);
                    int skillFuncParam3 = buffSkill.GetSkillFuncParam(72, 2, false);
                    int skillFuncParam4 = buffSkill.GetSkillFuncParam(72, 3, false);
                    int skillFuncParam5 = buffSkill.GetSkillFuncParam(72, 4, false);
                    logicEffect.SetSkillSlotUseTime(_hurt.atkSlot, skillFuncParam5);
                    logicEffect.SetSkillSlotUseCount(_hurt.atkSlot, skillSlot.GetSkillUseCount());
                    return(logicEffect.DamageExtraEffect(ref _hurt, _hurtValue, skillFuncParam2, skillFuncParam3, skillFuncParam4));
                }
            }
            return(_hurtValue);
        }
Example #2
0
 public static int OnDamageExtraEffect(ref HurtDataInfo _hurt, int _hurtValue)
 {
     BuffSkill skill = null;
     SkillSlot slot = null;
     BufferLogicEffect logicEffect = null;
     List<PoolObjHandle<BuffSkill>> extraHurtList = null;
     if ((_hurt.atker != 0) && !_hurt.atker.handle.ActorControl.IsDeadState)
     {
         logicEffect = _hurt.atker.handle.BuffHolderComp.logicEffect;
         extraHurtList = logicEffect.GetExtraHurtList();
         for (int i = 0; i < extraHurtList.Count; i++)
         {
             if (_hurt.target == 0)
             {
                 return _hurtValue;
             }
             skill = extraHurtList[i];
             int num = skill.GetSkillFuncParam(0x48, 0, false);
             if ((_hurt.atkSlot == num) && _hurt.atker.handle.SkillControl.TryGetSkillSlot(_hurt.atkSlot, out slot))
             {
                 int num2 = skill.GetSkillFuncParam(0x48, 1, false);
                 int num3 = skill.GetSkillFuncParam(0x48, 2, false);
                 int num4 = skill.GetSkillFuncParam(0x48, 3, false);
                 int num5 = skill.GetSkillFuncParam(0x48, 4, false);
                 logicEffect.SetSkillSlotUseTime(_hurt.atkSlot, num5);
                 logicEffect.SetSkillSlotUseCount(_hurt.atkSlot, slot.GetSkillUseCount());
                 return logicEffect.DamageExtraEffect(ref _hurt, _hurtValue, num2, num3, num4);
             }
         }
     }
     return _hurtValue;
 }