Formula

CommonFun.ModifyDamageBySpecialRaid

formula.lua
1function CommonFun.ModifyDamageBySpecialRaid(srcUser, targetUser, damage, params)
2  local RaidType = srcUser:GetRaidType()
3  if RaidType == 32 then
4    local ball66 = 1
5    if srcUser:HasBuffID(210010_HOLD_ADDING_BUFF_:MAX_STACK_0) and targetUser:HasBuffID(107340_MASTER_TACKLER_LV_1_:MAX_STACK_0) then
6      ball66 = 0.9
7    elseif srcUser:HasBuffID(210010_HOLD_ADDING_BUFF_:MAX_STACK_0) and targetUser:HasBuffID(107341_MASTER_TACKLER_LV_2_:MAX_STACK_0) then
8      ball66 = 0.8
9    elseif srcUser:HasBuffID(210010_HOLD_ADDING_BUFF_:MAX_STACK_0) and targetUser:HasBuffID(107342_MASTER_TACKLER_LV_3_:MAX_STACK_0) then
10      ball66 = 0.7
11    elseif srcUser:HasBuffID(210010_HOLD_ADDING_BUFF_:MAX_STACK_0) and targetUser:HasBuffID(107343_MASTER_TACKLER_LV_4_:MAX_STACK_0) then
12      ball66 = 0.6
13    end
14    if 0 < damage then
15      damage = damage * ball66
16    end
17  elseif RaidType == 44 then
18    local ball66 = 1
19    if srcUser:HasBuffID(210200_CAPTURE_THE_CHESS_PIECE_:MAX_STACK_0) and targetUser:HasBuffID(107340_MASTER_TACKLER_LV_1_:MAX_STACK_0) then
20      ball66 = 0.96
21    elseif srcUser:HasBuffID(210200_CAPTURE_THE_CHESS_PIECE_:MAX_STACK_0) and targetUser:HasBuffID(107341_MASTER_TACKLER_LV_2_:MAX_STACK_0) then
22      ball66 = 0.92
23    elseif srcUser:HasBuffID(210200_CAPTURE_THE_CHESS_PIECE_:MAX_STACK_0) and targetUser:HasBuffID(107342_MASTER_TACKLER_LV_3_:MAX_STACK_0) then
24      ball66 = 0.88
25    elseif srcUser:HasBuffID(210200_CAPTURE_THE_CHESS_PIECE_:MAX_STACK_0) and targetUser:HasBuffID(107343_MASTER_TACKLER_LV_4_:MAX_STACK_0) then
26      ball66 = 0.84
27    end
28    if 0 < damage then
29      damage = damage * ball66
30    end
31  elseif RaidType == 50 then
32    local CarRealDam = srcUser:GetProperty("CarRealDam")
33    local CarRealDamPer = srcUser:GetProperty("CarRealDamPer")
34    local TwlPlayerReduc = targetUser:GetProperty("TwlPlayerReduc")
35    local TwlMonsterReduc = targetUser:GetProperty("TwlMonsterReduc")
36    local TwlMonsterDam = srcUser:GetProperty("TwlMonsterDam")
37    local MaxHp = targetUser:GetProperty("MaxHp")
38    local GetNpcID = targetUser:GetNpcID()
39    local GetSelfID = srcUser:GetNpcID()
40    if GetSelfID == 0 and 0 < damage then
41      damage = damage * (1 - TwlPlayerReduc)
42    end
43    if GetSelfID ~= 0 and srcUser:HasBuffID(151028_DEFENSE_TOWER_TAKE_AUTO_ATK_ONLY_:MAX_STACK_0) == false and 0 < damage then
44      damage = damage * (1 - TwlMonsterReduc)
45    end
46    if GetSelfID == 0 and GetNpcID ~= 0 and targetUser:HasBuffID(151028_DEFENSE_TOWER_TAKE_AUTO_ATK_ONLY_:MAX_STACK_0) == false and 0 < damage then
47      damage = damage * (1 + TwlMonsterDam)
48    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
49      damage = damage * (1 + TwlMonsterDam / 3)
50    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
51      damage = damage * (1 + TwlMonsterDam)
52    end
53    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
54      damage = damage + 0.1 * MaxHp
55    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
56    end
57    if targetUser:HasBuffID(151028_DEFENSE_TOWER_TAKE_AUTO_ATK_ONLY_:MAX_STACK_0) then
58      if srcUser:IsAttackSkill(params.skillIDAndLevel) == false and 0 < damage then
59        return 0, CommonFun.DamageType.Miss
60      elseif srcUser:IsAttackSkill(params.skillIDAndLevel) == false and damage < 0 then
61        return 0, CommonFun.DamageType.None
62      else
63        damage = math.min(damage, MaxHp * 0.003) + CarRealDam * (1 + CarRealDamPer)
64      end
65    end
66    local Master = srcUser:GetMasterUser()
67    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
68      damage = 0
69    elseif not targetUser:HasBuffID(151028_DEFENSE_TOWER_TAKE_AUTO_ATK_ONLY_:MAX_STACK_0) or srcUser:HasBuffID(151200_MORROC_TRANSFORMATION_:MAX_STACK_0) then
70    end
71  end
72  return damage
73end
Formula Graph

Connected Archive Data

See which cards, equipment, headwears, buffs, and other archived records connect to this formula.

Loading graph filters

CommonFun.ModifyDamageBySpecialRaid

commonfun-modifydamagebyspecialraid

Nodes

0

Edges

0

Related Nodes

Select at least one node type.