Claymore Trap

Claymore Trap

Lv 1AttackMagic

Range: 1

Formula

1function CommonFun.calcDamage_31(srcUser, targetUser, params, damageParam, logger)
2  local Int = srcUser:GetProperty("Int")
3  local Vit = srcUser:GetProperty("Vit")
4  local MAtk = srcUser:GetProperty("MAtk")
5  local MAtkPer = srcUser:GetProperty("MAtkPer")
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 srcAtkElement = CommonFun.GetUserAtkAttr(srcUser, targetUser, params, damageParam)
13  local targetDefElement = targetUser:GetProperty("DefAttr")
14  local elementparam2 = CommonFun.CalcElementParam2(srcUser, targetUser, params, damageParam, logger)
15  local raceparam = CommonFun.CalcRaceParam(srcUser, targetUser, params, damageParam, logger)
16  local raceparam2 = CommonFun.CalcRaceParam2(srcUser, targetUser, params, damageParam, logger)
17  local bossparam = CommonFun.CalcBossParam(srcUser, targetUser, params, damageParam, logger)
18  local bossparam2 = CommonFun.CalcBossParam2(srcUser, targetUser, params, damageParam, logger)
19  local MDef2 = targetUser:GetProperty("MDef")
20  local MDefPer2 = targetUser:GetProperty("MDefPer")
21  local Vit2 = targetUser:GetProperty("Vit")
22  local VitPer2 = targetUser:GetProperty("VitPer")
23  local Int2 = targetUser:GetProperty("Int")
24  local IntPer2 = targetUser:GetProperty("IntPer")
25  local MDamReduc2 = CommonFun.calcMDamReDuc(srcUser, targetUser)
26  local RefineMDamReduc = CommonFun.calcRefineMDamReduc(srcUser, targetUser)
27  local damChangePer = damageParam.damChangePer
28  local damChangePer1 = damageParam.damChangePer1
29  local BaseMAtk = Int + math.floor(Int * Int / 100)
30  local MAtkFinal = ((MAtk - BaseMAtk) * (1 + MAtkPer) + BaseMAtk) * raceparam * bossparam * bossparam2
31  local MDefReduc = CommonFun.CalcMDef(srcUser, targetUser)
32  local Num1 = srcUser:GetRunePoint(22160_AESIR_INCREASES_THE_DAMAGE_OF_FIRE_BOLT_COLD_BOLT_LIGHTNING_BOLT_AND_CHRONOLOGY_BOLT_BY_10)
33  local Num2 = srcUser:GetRunePoint(22161_AESIR_INCREASES_THE_DAMAGE_OF_FIRE_BOLT_COLD_BOLT_LIGHTNING_BOLT_AND_CHRONOLOGY_BOLT_BY_10)
34  local RuneDamage = (Num1 + Num2) * 0.1 + 1
35  local taozhuang1 = 1
36  if srcUser:HasBuffID(91000470_SAGE_S_BOOK_TELEKINETIC_ORB_:MAX_STACK_0) or srcUser:HasBuffID(91000770_SAGE_S_HANDBOOK_TELEKINETIC_ORB_:MAX_STACK_0) or srcUser:HasBuffID(91001490_SAGE_S_BOOK_CONTRACT_JEWELERY_:MAX_STACK_0) or srcUser:HasBuffID(91001500_SAGE_S_HANDBOOK_CONTRACT_JEWELERY_:MAX_STACK_0) then
37    taozhuang1 = 1.15
38  end
39  local Ring1 = srcUser:GetEquipedID(7_WEAPON)
40  local RefineLv = srcUser:GetEquipedRefineLv(7_WEAPON)
41  if Ring1 == 63440_SAGE_S_HANDBOOK_1 or Ring1 == 163440_SAGE_S_HANDBOOK_2 then
42    taozhuang1 = RefineLv * 0.01 + taozhuang1
43  end
44  if srcUser:HasBuffID(90004514_SAGE_S_HANDBOOK_1_TIER_5_:MAX_STACK_0) then
45    taozhuang1 = taozhuang1 + 0.15
46  end
47  local BaseLvDamage = 0
48  local skillID, skillLevel = CommonFun.UnmergeSkillID(params.skillIDAndLevel)
49  local CardXR = 1
50  local CardNum = srcUser:GetEquipCardNum(7, 23048_HILL_WIND_CARD)
51  local CardNum2 = srcUser:GetEquipCardNum(7, 24664_HILL_WIND_STAR_CARD)
52  CardNum = CardNum + CardNum2
53  if skillID == 107_KNIGHT:LIGHTNING_BOLT then
54    CardXR = CardNum * 0.25 + 1
55    local IBaseLv = srcUser.BaseLv
56    if srcUser:HasBuffID(42110_FLUORESCENCE_:MAX_STACK_0) then
57      BaseLvDamage = IBaseLv * 15
58    end
59    if srcUser:HasBuffID(42120_MJOLNIR_SPELLBOOK_:MAX_STACK_0) then
60      BaseLvDamage = IBaseLv * 15
61    end
62  end
63  local GemValue = srcUser:GetGemValue(82073_LIGHTNING_BOLT_DMG_PERCENTAGE)
64  local GemDam = 1 + GemValue / 100000
65  local A = ((MAtkFinal * MDefReduc * (1 - MDamReduc2) + MRefine) * damChangePer * (1 - RefineMDamReduc) * (1 + MDamIncrease) * CommonFun.calcMagicElement(srcUser, targetUser, params, damageParam) * elementparam2 - Vit2 / 2 * (1 + VitPer2) - Int2 * (1 + IntPer2) + damChangePer1) * RuneDamage * taozhuang1 * GemDam * CardXR + BaseLvDamage
66  if A <= 1 then
67    return 1
68  end
69  return A
70end
Preserved HTML snapshot from ROM Handbook