
Banana Warrior Melee Patk
Lv 1AttackPhysical
Range: 2
Formula
1function CommonFun.calcDamage_30(srcUser, targetUser, params, damageParam, logger)
2 local Luk = srcUser:GetProperty("Luk")
3 local Int = srcUser:GetProperty("Int")
4 local Vit = srcUser:GetProperty("Vit")
5 local MAtk = srcUser:GetProperty("MAtk")
6 local MAtkPer = srcUser:GetProperty("MAtkPer")
7 local MDamIncrease = CommonFun.calcMDamIncrease(srcUser, targetUser)
8 local IgnoreMDef = srcUser:GetProperty("IgnoreMDef")
9 if 1 <= IgnoreMDef then
10 IgnoreMDef = 1
11 end
12 local MRefine = srcUser:GetProperty("MRefine")
13 local srcAtkElement = CommonFun.GetUserAtkAttr(srcUser, targetUser, params, damageParam)
14 local targetDefElement = targetUser:GetProperty("DefAttr")
15 local elementparam2 = CommonFun.CalcElementParam2(srcUser, targetUser, params, damageParam, logger)
16 local raceparam = CommonFun.CalcRaceParam(srcUser, targetUser, params, damageParam, logger)
17 local raceparam2 = CommonFun.CalcRaceParam2(srcUser, targetUser, params, damageParam, logger)
18 local bossparam = CommonFun.CalcBossParam(srcUser, targetUser, params, damageParam, logger)
19 local bossparam2 = CommonFun.CalcBossParam2(srcUser, targetUser, params, damageParam, logger)
20 local MDef2 = targetUser:GetProperty("MDef")
21 local MDefPer2 = targetUser:GetProperty("MDefPer")
22 local Vit2 = targetUser:GetProperty("Vit")
23 local VitPer2 = targetUser:GetProperty("VitPer")
24 local Int2 = targetUser:GetProperty("Int")
25 local IntPer2 = targetUser:GetProperty("IntPer")
26 local MDamReduc2 = CommonFun.calcMDamReDuc(srcUser, targetUser)
27 local RefineMDamReduc = CommonFun.calcRefineMDamReduc(srcUser, targetUser)
28 local damChangePer = damageParam.damChangePer
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 CardXR = 1
33 local CardNum = srcUser:GetEquipCardNum(7, 23048_HILL_WIND_CARD)
34 local CardNum2 = srcUser:GetEquipCardNum(7, 24664_HILL_WIND_STAR_CARD)
35 CardNum = CardNum + CardNum2
36 local skillID, skillLevel = CommonFun.UnmergeSkillID(params.skillIDAndLevel)
37 if skillID == 84_SWORDSMAN:JUPITEL_THUNDER then
38 CardXR = CardNum * 0.25 + 1
39 end
40 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)) * CardXR
41 if skillID == 1930_SNIPER:HEAVY_SLASH then
42 local MDamSpike = srcUser:GetProperty("MDamSpike_MPEN")
43 MAtkFinal = (MAtk - BaseMAtk) * (1 + MAtkPer) + BaseMAtk
44 A = (MAtkFinal * (1 + MDamSpike) + MRefine) * damChangePer * (1 - RefineMDamReduc) * (1 + MDamIncrease)
45 end
46 if skillID == 1500_GUILLOTINE_CROSS:ICE_WALL then
47 local Num1 = srcUser:GetRunePoint(143026_AESIR_ICE_WALL_DAMAGE_INCREASES_BY_10)
48 A = A * (1 + Num1 * 0.1)
49 end
50 if skillID == 3209_MECHANIC:CHRONOLOGY_BOLT then
51 local skilllv_1 = srcUser:GetLernedSkillLevel(3226_MECHANIC:CHRONOLOGY_BOLT_ENHANCE)
52 local taozhuang1 = 1
53 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
54 taozhuang1 = 1.15
55 end
56 if srcUser:HasBuffID(90004514_SAGE_S_HANDBOOK_1_TIER_5_:MAX_STACK_0) then
57 taozhuang1 = taozhuang1 + 0.15
58 end
59 local Ring1 = srcUser:GetEquipedID(7_WEAPON)
60 local RefineLv = srcUser:GetEquipedRefineLv(7_WEAPON)
61 if Ring1 == 63440_SAGE_S_HANDBOOK_1 or Ring1 == 163440_SAGE_S_HANDBOOK_2 then
62 taozhuang1 = RefineLv * 0.01 + taozhuang1
63 end
64 local Num1 = srcUser:GetRunePoint(22160_AESIR_INCREASES_THE_DAMAGE_OF_FIRE_BOLT_COLD_BOLT_LIGHTNING_BOLT_AND_CHRONOLOGY_BOLT_BY_10)
65 local Num2 = srcUser:GetRunePoint(22161_AESIR_INCREASES_THE_DAMAGE_OF_FIRE_BOLT_COLD_BOLT_LIGHTNING_BOLT_AND_CHRONOLOGY_BOLT_BY_10)
66 local RuneDamage = (Num1 + Num2) * 0.1 + 1
67 local GemKj = 0
68 local GemSj = 0
69 if srcUser:HasBuffID(126122_CHRONOLOGY_BOLT_TIME_FIELD_:MAX_STACK_0) then
70 GemSj = srcUser:GetGemValue(82151_WHILE_YOU_ARE_IN_TIME_FIELD_INCREASE_CHRONOLOGY_BOLT_DMG_BY_PERCENTAGE)
71 end
72 local GemDam = 1 + GemSj / 100000
73 A = A * (1 + skilllv_1 * 0.06) * taozhuang1 * RuneDamage * GemDam
74 end
75 if A <= 1 then
76 return 1
77 end
78 return A
79endPreserved HTML snapshot from ROM Handbook
