All-round Attack - Wind

All-round Attack - Wind

Lv 10BuffMagic

Deals (Atk100%) Dmg to the target

Range: 5

Formula

1function CommonFun.calcDamage_16304(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 RangeDam = srcUser:GetProperty("RangeDam")
8  local MDamIncrease = CommonFun.calcMDamIncrease(srcUser, targetUser)
9  local IgnoreMDef = srcUser:GetProperty("IgnoreMDef")
10  if 1 <= IgnoreMDef then
11    IgnoreMDef = 1
12  end
13  local MRefine = srcUser:GetProperty("MRefine")
14  local srcAtkElement = CommonFun.GetUserAtkAttr(srcUser, targetUser, params, damageParam)
15  local targetDefElement = targetUser:GetProperty("DefAttr")
16  local elementparam2 = CommonFun.CalcElementParam2(srcUser, targetUser, params, damageParam, logger)
17  local raceparam = CommonFun.CalcRaceParam(srcUser, targetUser, params, damageParam, logger)
18  local raceparam2 = CommonFun.CalcRaceParam2(srcUser, targetUser, params, damageParam, logger)
19  local bossparam = CommonFun.CalcBossParam(srcUser, targetUser, params, damageParam, logger)
20  local bossparam2 = CommonFun.CalcBossParam2(srcUser, targetUser, params, damageParam, logger)
21  local MDef2 = targetUser:GetProperty("MDef")
22  local MDefPer2 = targetUser:GetProperty("MDefPer")
23  local Vit2 = targetUser:GetProperty("Vit")
24  local VitPer2 = targetUser:GetProperty("VitPer")
25  local Int2 = targetUser:GetProperty("Int")
26  local IntPer2 = targetUser:GetProperty("IntPer")
27  local MDamReduc2 = CommonFun.calcMDamReDuc(srcUser, targetUser)
28  local RefineMDamReduc = CommonFun.calcRefineMDamReduc(srcUser, targetUser)
29  local damChangePer = damageParam.damChangePer
30  local BaseMAtk = Int + math.floor(Int * Int / 100)
31  local MAtkFinal = ((MAtk - BaseMAtk) * (1 + MAtkPer) + BaseMAtk) * raceparam * bossparam * bossparam2
32  local MDefReduc = CommonFun.CalcMDef(srcUser, targetUser)
33  local skillID, skillLevel = CommonFun.UnmergeSkillID(params.skillIDAndLevel)
34  local skilllv = srcUser:GetLernedSkillLevel(2028_SNIPER:NINJUTSU_CULTIVATION)
35  local Sp = srcUser:GetProperty("Sp")
36  local Mskilllv = 0
37  local MSp = 0
38  local Master = srcUser:GetMasterUser()
39  if Master ~= nil then
40    Mskilllv = Master:GetLernedSkillLevel(2028_SNIPER:NINJUTSU_CULTIVATION)
41    MSp = Master:GetProperty("Sp")
42  end
43  local NinjaDam = 1
44  if 10 < skilllv or 10 < Mskilllv then
45    MDamReduc2 = MDamReduc2 - (math.max(skilllv, Mskilllv) - 10) * math.max(Sp, MSp) / 100 * 5.0E-4
46  end
47  if targetUser:HasBuffID(133290_ALL_ROUND_ATTACK_SPELL_:MAX_STACK_0) then
48    local GemValue2 = srcUser:GetGemValue(163002_NINJUTSU_ALL_ROUND_ATTACK_INCREASES_THE_TARGET_S_RECEIVED_NINJUTSU_AND_PSYCHIC_SPELL_DMG_BY_PERCENTAGE_FOR_S_SECONDS)
49    NinjaDam = NinjaDam * (1 + GemValue2 / 100000)
50  end
51  local CardTLS = 1
52  if srcUser:HasBuffID(55110_NINJUTSU_AND_SUMMONING_CARDS_:MAX_STACK_0) then
53    CardTLS = 1.06
54  end
55  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)) * NinjaDam * (1 + RangeDam) * CardTLS
56  if skillID == 2906_MERCHANT:ALL_ROUND_ATTACK_WIND or skillID == 2907_MERCHANT:ALL_ROUND_ATTACK_EARTH or skillID == 2908_MERCHANT:ALL_ROUND_ATTACK_WATER or skillID == 2909_MERCHANT:ALL_ROUND_ATTACK_FIRE then
57    local GemValue = srcUser:GetGemValue(163001_SKILL_NINJUTSU_ALL_ROUND_ATTACK_OBTAINED_BASED_ON_THE_ATTRIBUTE_AURA_YOU_ARE_CARRYING_INFLICT_MAGIC_DMG_OF_THE_SAME_ATTRIBUTE_OF_M_ATK_PERCENTAGE_ON_THE_TARGET_RANGE_AND_CREATE_A_MAGIC_ARRAY_OF_THE_SAME_ATTRIBUTE)
58    damChangePer = GemValue / 100000
59    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)) * NinjaDam * (1 + RangeDam) * CardTLS
60  end
61  if skillID == 2033_SNIPER:NINJUTSU_ICICLE_DROP then
62    local Rune = srcUser:GetRunePoint(163018_AESIR_NINJUTSU_ICICLE_DROP_DMG_6)
63    A = A * (1 + Rune * 0.06)
64  end
65  if A <= 1 then
66    return 1
67  end
68  return A
69end
Preserved HTML snapshot from ROM Handbook