Formula

CommonFun.ModifyDamageBySpecialRaid

function CommonFun.ModifyDamageBySpecialRaid(srcUser, targetUser, damage, params)
  local RaidType = srcUser:GetRaidType()
  if RaidType == 32 then
    local ball66 = 1
    if srcUser:HasBuffID(210010_HOLD_ADDING_BUFF_:MAX_STACK_0) and targetUser:HasBuffID(107340_MASTER_TACKLER_LV_1_:MAX_STACK_0) then
      ball66 = 0.9
    elseif srcUser:HasBuffID(210010_HOLD_ADDING_BUFF_:MAX_STACK_0) and targetUser:HasBuffID(107341_MASTER_TACKLER_LV_2_:MAX_STACK_0) then
      ball66 = 0.8
    elseif srcUser:HasBuffID(210010_HOLD_ADDING_BUFF_:MAX_STACK_0) and targetUser:HasBuffID(107342_MASTER_TACKLER_LV_3_:MAX_STACK_0) then
      ball66 = 0.7
    elseif srcUser:HasBuffID(210010_HOLD_ADDING_BUFF_:MAX_STACK_0) and targetUser:HasBuffID(107343_MASTER_TACKLER_LV_4_:MAX_STACK_0) then
      ball66 = 0.6
    end
    if 0 < damage then
      damage = damage * ball66
    end
  elseif RaidType == 44 then
    local ball66 = 1
    if srcUser:HasBuffID(210200_CAPTURE_THE_CHESS_PIECE_:MAX_STACK_0) and targetUser:HasBuffID(107340_MASTER_TACKLER_LV_1_:MAX_STACK_0) then
      ball66 = 0.96
    elseif srcUser:HasBuffID(210200_CAPTURE_THE_CHESS_PIECE_:MAX_STACK_0) and targetUser:HasBuffID(107341_MASTER_TACKLER_LV_2_:MAX_STACK_0) then
      ball66 = 0.92
    elseif srcUser:HasBuffID(210200_CAPTURE_THE_CHESS_PIECE_:MAX_STACK_0) and targetUser:HasBuffID(107342_MASTER_TACKLER_LV_3_:MAX_STACK_0) then
      ball66 = 0.88
    elseif srcUser:HasBuffID(210200_CAPTURE_THE_CHESS_PIECE_:MAX_STACK_0) and targetUser:HasBuffID(107343_MASTER_TACKLER_LV_4_:MAX_STACK_0) then
      ball66 = 0.84
    end
    if 0 < damage then
      damage = damage * ball66
    end
  elseif RaidType == 50 then
    local CarRealDam = srcUser:GetProperty("CarRealDam")
    local CarRealDamPer = srcUser:GetProperty("CarRealDamPer")
    local TwlPlayerReduc = targetUser:GetProperty("TwlPlayerReduc")
    local TwlMonsterReduc = targetUser:GetProperty("TwlMonsterReduc")
    local TwlMonsterDam = srcUser:GetProperty("TwlMonsterDam")
    local MaxHp = targetUser:GetProperty("MaxHp")
    local GetNpcID = targetUser:GetNpcID()
    local GetSelfID = srcUser:GetNpcID()
    if GetSelfID == 0 and 0 < damage then
      damage = damage * (1 - TwlPlayerReduc)
    end
    if GetSelfID ~= 0 and srcUser:HasBuffID(151028_DEFENSE_TOWER_TAKE_AUTO_ATK_ONLY_:MAX_STACK_0) == false and 0 < damage then
      damage = damage * (1 - TwlMonsterReduc)
    end
    if GetSelfID == 0 and GetNpcID ~= 0 and targetUser:HasBuffID(151028_DEFENSE_TOWER_TAKE_AUTO_ATK_ONLY_:MAX_STACK_0) == false and 0 < damage then
      damage = damage * (1 + TwlMonsterDam)
    elseif GetSelfID ~= 0 and GetNpcID ~= 0 and targetUser:HasBuffID(151028_DEFENSE_TOWER_TAKE_AUTO_ATK_ONLY_:MAX_STACK_0) == false and targetUser:HasBuffID(160000_BOSS_IMMUNE_EFFECT_:MAX_STACK_0) == true and 0 < damage then
      damage = damage * (1 + TwlMonsterDam / 3)
    elseif GetSelfID ~= 0 and GetNpcID ~= 0 and targetUser:HasBuffID(151028_DEFENSE_TOWER_TAKE_AUTO_ATK_ONLY_:MAX_STACK_0) == false and targetUser:HasBuffID(160000_BOSS_IMMUNE_EFFECT_:MAX_STACK_0) == false and 0 < damage then
      damage = damage * (1 + TwlMonsterDam)
    end
    if srcUser:HasBuffID(151028_DEFENSE_TOWER_TAKE_AUTO_ATK_ONLY_:MAX_STACK_0) and GetNpcID == 0_PLAYER and targetUser:HasBuffID(151200_MORROC_TRANSFORMATION_:MAX_STACK_0) == false then
      damage = damage + 0.1 * MaxHp
    elseif not srcUser:HasBuffID(151028_DEFENSE_TOWER_TAKE_AUTO_ATK_ONLY_:MAX_STACK_0) or GetNpcID ~= 0 or targetUser:HasBuffID(151200_MORROC_TRANSFORMATION_:MAX_STACK_0) then
    end
    if targetUser:HasBuffID(151028_DEFENSE_TOWER_TAKE_AUTO_ATK_ONLY_:MAX_STACK_0) then
      if srcUser:IsAttackSkill(params.skillIDAndLevel) == false and 0 < damage then
        return 0, CommonFun.DamageType.Miss
      elseif srcUser:IsAttackSkill(params.skillIDAndLevel) == false and damage < 0 then
        return 0, CommonFun.DamageType.None
      else
        damage = math.min(damage, MaxHp * 0.003) + CarRealDam * (1 + CarRealDamPer)
      end
    end
    local Master = srcUser:GetMasterUser()
    if targetUser:HasBuffID(151028_DEFENSE_TOWER_TAKE_AUTO_ATK_ONLY_:MAX_STACK_0) and srcUser:HasBuffID(151231_DEFENSE_TOWER_DAMAGE_DEALT_:MAX_STACK_0) == false and (GetSelfID == 0 or Master ~= nil) and srcUser:HasBuffID(151200_MORROC_TRANSFORMATION_:MAX_STACK_0) == false then
      damage = 0
    elseif not targetUser:HasBuffID(151028_DEFENSE_TOWER_TAKE_AUTO_ATK_ONLY_:MAX_STACK_0) or srcUser:HasBuffID(151200_MORROC_TRANSFORMATION_:MAX_STACK_0) then
    end
  end
  return damage
end