Ancient Toxic Air

Ancient Toxic Air

Lv 1Buff

Range: 3

Formula

1function CommonFun.calcBuff_4630(srcUser, targetUser, a, b, c, d, lv)
2  local Vit = srcUser:GetProperty("Vit")
3  local MAtk = srcUser:GetProperty("MAtk")
4  local MAtkPer = srcUser:GetProperty("MAtkPer")
5  local MaxHp = targetUser:GetProperty("MaxHp")
6  local MDamIncrease = CommonFun.calcMDamIncrease(srcUser, targetUser)
7  local IgnoreMDef = srcUser:GetProperty("IgnoreMDef")
8  if 1 <= IgnoreMDef then
9    IgnoreMDef = 1
10  end
11  local MRefine = srcUser:GetProperty("MRefine")
12  local MDef2 = targetUser:GetProperty("MDef")
13  local MDefPer2 = targetUser:GetProperty("MDefPer")
14  local Vit2 = targetUser:GetProperty("Vit")
15  local VitPer2 = targetUser:GetProperty("VitPer")
16  local Int2 = targetUser:GetProperty("Int")
17  local IntPer2 = targetUser:GetProperty("IntPer")
18  local MDamReduc2 = CommonFun.calcMDamReDuc(srcUser, targetUser)
19  local RefineMDamReduc = CommonFun.calcRefineMDamReduc(srcUser, targetUser)
20  local raceparam = 1
21  local srcRace = srcUser.race
22  local targetRace = targetUser.race
23  if targetUser:HasBuffID(139410_TWO_FACE_DEMON_KING_HUMAN_:MAX_STACK_0) then
24    targetRace = 3
25  end
26  if srcUser:HasBuffID(139411_TWO_FACE_DEMON_KING_DEMON_:MAX_STACK_0) then
27    srcRace = 3
28  end
29  if srcUser:HasBuffID(49320_RACIAL_ANCIENT_RELICS_PERMANENT_:MAX_STACK_0) and srcUser:HasBuffID(49325_RACIAL_ANCIENT_RELICS_CD_:MAX_STACK_0) then
30  elseif srcUser:HasBuffID(49320_RACIAL_ANCIENT_RELICS_PERMANENT_:MAX_STACK_0) then
31    targetRace = 2
32  end
33  if targetUser:HasBuffID(49320_RACIAL_ANCIENT_RELICS_PERMANENT_:MAX_STACK_0) and targetUser:HasBuffID(49325_RACIAL_ANCIENT_RELICS_CD_:MAX_STACK_0) then
34  elseif targetUser:HasBuffID(49320_RACIAL_ANCIENT_RELICS_PERMANENT_:MAX_STACK_0) then
35    srcRace = 2
36  end
37  if nil == CommonFun.RaceProps[targetRace] then
38    return 0
39  end
40  if nil == CommonFun.RaceProps[srcRace] then
41    return 0
42  end
43  local raceInc = srcUser:GetProperty(CommonFun.RaceProps[targetRace][1])
44  local raceRed = targetUser:GetProperty(CommonFun.RaceProps[srcRace][2])
45  local raceRedThrough = srcUser:GetProperty(CommonFun.RaceProps[srcRace][3])
46  local raceIncResistance = targetUser:GetProperty(CommonFun.RaceProps[targetRace][4])
47  if nil == raceRedThrough then
48    raceRedThrough = 0
49  end
50  if nil == raceIncResistance then
51    raceIncResistance = 0
52  end
53  if 0 <= raceInc then
54    raceInc = raceInc * math.max(1 - raceIncResistance, 0)
55  end
56  if 0 <= raceRed then
57    raceRed = raceRed * math.max(1 - raceRedThrough, 0)
58  end
59  local raceparam = 1 + raceInc - raceRed
60  if raceparam <= 0.1 then
61    raceparam = 0.1
62  end
63  local srcAtkElement = c
64  local targetDefElement = targetUser:GetProperty("DefAttr")
65  local ElementRate = CommonFun.GetElementRate(srcUser, srcAtkElement, targetUser, targetDefElement)
66  if nil == CommonFun.NatureProps[srcAtkElement] or nil == CommonFun.NatureProps[targetDefElement] or nil == targetDefElement then
67    return 0
68  end
69  local elementInc = srcUser:GetProperty(CommonFun.NatureProps[targetDefElement][1])
70  local elementRed = targetUser:GetProperty(CommonFun.NatureProps[srcAtkElement][2])
71  local elementAtk = srcUser:GetProperty(CommonFun.NatureProps[srcAtkElement][3])
72  local elementThrough = srcUser:GetProperty(CommonFun.NatureProps[srcAtkElement][4])
73  local elementResistance = targetUser:GetProperty(CommonFun.NatureProps[srcAtkElement][5])
74  if 0 <= elementRed then
75    elementRed = elementRed * math.max(1 - elementThrough, 0)
76  end
77  if 0 <= elementAtk then
78    elementAtk = elementAtk * math.max(1 - elementResistance, 0)
79  end
80  local elementparam = (1 + elementInc) * ElementRate
81  local elementparam2 = 1 + elementAtk - elementRed
82  if elementparam2 <= 0.1 then
83    elementparam2 = 0.1
84  end
85  local ele = elementparam * elementparam2
86  if targetDefElement == nil or ElementRate == nil or elementInc == nil or elementRed == nil or elementAtk == nil then
87    ele = 1
88  end
89  local MAtkFinal = b * CommonFun.ShapeCorrection(srcUser, targetUser) * ele * raceparam
90  local MDefReduc = CommonFun.CalcMDef(srcUser, targetUser)
91  local A = (MAtkFinal * MDefReduc * (1 - MDamReduc2) + MRefine) * (1 - RefineMDamReduc) * (1 + MDamIncrease) - Vit2 / 2 * (1 + VitPer2) - Int2 * (1 + IntPer2) + MaxHp * a
92  if targetUser:GetNpcID() == 280931_BOVINE_OF_EARTH then
93    A = MaxHp * 0.1
94  end
95  return -A
96end
Preserved HTML snapshot from ROM Handbook