Formula

CommonFun.CalcCrit

formula.lua
1function CommonFun.CalcCrit(srcUser, targetUser, skillParams)
2  local CriDamPer = srcUser:GetProperty("CriDamPer")
3  local CriDefPer2 = targetUser:GetProperty("CriDefPer")
4  local targetRace = targetUser.race
5  if targetUser:HasBuffID(139410_TWO_FACE_DEMON_KING_HUMAN_:MAX_STACK_0) then
6    targetRace = 3
7  end
8  if srcUser:HasBuffID(49320_RACIAL_ANCIENT_RELICS_PERMANENT_:MAX_STACK_0) and srcUser:HasBuffID(49325_RACIAL_ANCIENT_RELICS_CD_:MAX_STACK_0) then
9  elseif srcUser:HasBuffID(49320_RACIAL_ANCIENT_RELICS_PERMANENT_:MAX_STACK_0) then
10    targetRace = 2
11  end
12  local Weapon = srcUser:GetEquipedID(7_WEAPON)
13  local scale = 1.5 + CriDamPer - CriDefPer2
14  if targetRace == 3 and (Weapon == 41815_SABBATH_1 or Weapon == 141815_SABBATH_2) then
15    scale = 1.75 + CriDamPer - CriDefPer2
16  end
17  local Buff = srcUser:HasBuffID(80000300_GOBLIN_ARCHER_CARD_DEPOSITE_:MAX_STACK_0)
18  if targetRace == 5 and Buff == true then
19    scale = 1.55 + CriDamPer - CriDefPer2
20  end
21  local Buff = srcUser:HasBuffID(80000310_STEAM_GOBLIN_CARD_DEPOSITE_:MAX_STACK_0)
22  if targetRace == 6 and Buff == true then
23    scale = 1.55 + CriDamPer - CriDefPer2
24  end
25  local CardKapok = srcUser:GetEquipCardNum(7, 23247)
26  local CardKapok1 = srcUser:GetEquipCardNum(7, 23388)
27  if targetRace == 1 and (srcUser:HasBuffID(56650_ALIEN_BOMBAX_CARD_:MAX_STACK_0) or srcUser:HasBuffID(58300_ALIEN_COTTON_CARD_:MAX_STACK_0)) then
28    scale = 1.5 + CardKapok * 0.15 + CardKapok1 * 0.15 + CriDamPer - CriDefPer2
29  end
30  if targetRace == 9 and (srcUser:HasBuffID(56650_ALIEN_BOMBAX_CARD_:MAX_STACK_0) or srcUser:HasBuffID(58300_ALIEN_COTTON_CARD_:MAX_STACK_0)) then
31    scale = 1.5 + CardKapok * 0.15 + CardKapok1 * 0.15 + CriDamPer - CriDefPer2
32  end
33  local Cri = srcUser:GetProperty("Cri")
34  local CriRes = targetUser:GetProperty("CriRes")
35  local Gem = srcUser:GetGemValue(31021_WHEN_CALCULATING_CRIT_DMG_ADD_EXTRA_CRIT_DMG_CASTER_S_CRIT_ENEMY_S_CRIT_RES_PERCENTAGE)
36  scale = scale + (Cri - CriRes) * Gem / 100000
37  if srcUser:HasBuffID(64710_3915_:MAX_STACK_0) then
38    scale = scale - 0.25
39  end
40  scale = CommonFun.Clamp(scale, 1, 100)
41  return scale
42end
Formula Graph

Connected Archive Data

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

Loading graph filters

CommonFun.CalcCrit

commonfun-calccrit

Nodes

0

Edges

0

Related Nodes

Select at least one node type.