Formula
CommonFun.DoCalcStateEffectDam
formula.lua
1function CommonFun.DoCalcStateEffectDam(srcUser, targetUser, params)
2 local StateEffect = targetUser:GetProperty("StateEffect")
3 local bits = CommonFun.getBits(StateEffect)
4 local Weapon = srcUser:GetEquipedID(7_WEAPON)
5 local RefineLv = srcUser:GetEquipedRefineLv(7_WEAPON)
6 local Profession = srcUser:GetProfressionID()
7 local Num1 = srcUser:GetRunePoint(31011_AESIR_DEALS_10_MORE_DAMAGE_TO_STUNNED_TARGETS)
8 local Num2 = srcUser:GetRunePoint(31012_AESIR_DEALS_5_MORE_DAMAGE_TO_STUNNED_TARGETS)
9 local Num3 = srcUser:GetRunePoint(31013_AESIR_DEALS_10_MORE_DAMAGE_TO_STUNNED_TARGETS)
10 local Num4 = srcUser:GetRunePoint(31014_AESIR_DEALS_5_MORE_DAMAGE_TO_STUNNED_TARGETS)
11 local Num5 = srcUser:GetRunePoint(31015_AESIR_DEALS_5_MORE_DAMAGE_TO_STUNNED_TARGETS)
12 local RuneDamage1 = Num1 * 0.1 + Num2 * 0.05 + Num3 * 0.1 + Num4 * 0.05 + Num5 * 0.05
13 local Num6 = srcUser:GetRunePoint(41011_AESIR_DEALS_15_DAMAGE_TO_SNARED_UNITS)
14 local Num7 = srcUser:GetRunePoint(41012_AESIR_DEALS_10_DAMAGE_TO_SNARED_UNITS)
15 local Num8 = srcUser:GetRunePoint(41013_AESIR_DEALS_15_DAMAGE_TO_SNARED_UNITS)
16 local RuneDamage2 = Num6 * 0.15 + Num7 * 0.1 + Num8 * 0.15
17 local Num9 = srcUser:GetRunePoint(62001_AESIR_DEALS_2_MORE_DAMAGE_TO_STUNNED_TARGETS)
18 local Num10 = srcUser:GetRunePoint(62002_AESIR_DEALS_4_MORE_DAMAGE_TO_STUNNED_TARGETS)
19 local Num11 = srcUser:GetRunePoint(62003_AESIR_DEALS_4_MORE_DAMAGE_TO_STUNNED_TARGETS)
20 local Num12 = srcUser:GetRunePoint(62004_AESIR_DEALS_2_MORE_DAMAGE_TO_STUNNED_TARGETS)
21 local Num13 = srcUser:GetRunePoint(62005_AESIR_DEALS_2_MORE_DAMAGE_TO_STUNNED_TARGETS)
22 local RuneDamage3 = Num9 * 0.02 + Num10 * 0.04 + Num11 * 0.04 + Num12 * 0.02 + Num13 * 0.02
23 local Num14 = srcUser:GetRunePoint(120180_AESIR_DEALS_3_DMG_TO_SILENCED_TARGETS)
24 local RuneDamage4 = Num14 * 0.03
25 local Num16 = srcUser:GetRunePoint(120210_AESIR_DEALS_10_DMG_TO_STUNNED_TARGETS)
26 local RuneDamage6 = Num16 * 0.1
27 local Num17 = srcUser:GetRunePoint(90210_AESIR_DEALS_5_DMG_TO_STUNNED_TARGETS)
28 local RuneDamage7 = Num17 * 0.05
29 local Num18 = srcUser:GetRunePoint(90200_AESIR_DAMAGE_TO_TARGETS_OF_SLOW_ATK_AND_CLOSE_CONFINE_3)
30 local RuneDamage8 = Num18 * 0.03
31 local Snatch = 0
32 local fromid = targetUser:GetBuffFromID(106131_INTIMIDATE_AEISR_MONUMENT_DAMAGE_BONUS_:MAX_STACK_0)
33 local guid = srcUser:GetGuid()
34 local Num19 = srcUser:GetRunePoint(90110_AESIR_WITHIN_5_SECONDS_THE_DAMAGE_TO_TARGET_OF_INTIMIDATE_5)
35 if fromid == guid then
36 Snatch = 0.05 * Num19
37 end
38 local DizzyRatio = 0
39 if srcUser:HasBuffID(80001480_ORC_HERO_CARD_DEPOSITE_:MAX_STACK_0) and srcUser:HasBuffID(51230_ORC_HERO_CARD_:MAX_STACK_0) or srcUser:HasBuffID(81004140_ORC_HERO_CARD_:MAX_STACK_0) and srcUser:HasBuffID(58530_ORC_HERO_CARD_:MAX_STACK_0) then
40 DizzyRatio = 0.15
41 end
42 if srcUser:HasBuffID(38010_3000812SR_HELMET_1_:MAX_STACK_0) then
43 DizzyRatio = DizzyRatio + 0.1
44 end
45 local CardNumzsj = srcUser:GetEquipCardNum(7, 24624_ROTAR_ZAIRO_STAR_CARD)
46 if srcUser:HasBuffID(54100_ROTAR_ZAIRO_CARD_:MAX_STACK_0) then
47 DizzyRatio = DizzyRatio + 0.1 * CardNumzsj
48 end
49 local Ring5 = srcUser:GetEquipedID(5_ACCESSORY)
50 local RefineLv5 = srcUser:GetEquipedRefineLv(5_ACCESSORY)
51 local Ring6 = srcUser:GetEquipedID(6_ACCESSORY)
52 local RefineLv6 = srcUser:GetEquipedRefineLv(6_ACCESSORY)
53 local curse5 = 0
54 local curse6 = 0
55 if Ring5 == 44089 or Ring5 == 144089 then
56 curse5 = RefineLv5 / 100
57 end
58 if Ring6 == 44089 or Ring6 == 144089 then
59 curse6 = RefineLv6 / 100
60 end
61 local equipRing5 = srcUser:getEquip(CommonFun.PackType.EPACKTYPE_EQUIP, CommonFun.EquipPos.EEQUIPPOS_ACCESSORY1)
62 if equipRing5.id == 44164 or equipRing5.id == 144164 then
63 curse5 = curse5 + equipRing5.refinelv * 0.01
64 end
65 local equipRingSD5 = srcUser:getEquip(CommonFun.PackType.EPACKTYPE_SHADOWEQUIP, CommonFun.EquipPos.EEQUIPPOS_ACCESSORY1)
66 if equipRingSD5.id == 44164 or equipRingSD5.id == 144164 then
67 curse5 = curse5 + equipRingSD5.refinelv * 0.01 * equipRingSD5.quench_per / 100
68 end
69 local equipRing6 = srcUser:getEquip(CommonFun.PackType.EPACKTYPE_EQUIP, CommonFun.EquipPos.EEQUIPPOS_ACCESSORY2)
70 if equipRing6.id == 44164 or equipRing6.id == 144164 then
71 curse6 = curse6 + equipRing6.refinelv * 0.01
72 end
73 local equipRingSD6 = srcUser:getEquip(CommonFun.PackType.EPACKTYPE_SHADOWEQUIP, CommonFun.EquipPos.EEQUIPPOS_ACCESSORY2)
74 if equipRingSD6.id == 44164 or equipRingSD6.id == 144164 then
75 curse6 = curse6 + equipRingSD6.refinelv * 0.01 * equipRingSD6.quench_per / 100
76 end
77 local curse = curse5 + curse6
78 local skilllv_Rogue = srcUser:GetLernedSkillLevel(484_RUNEMASTER:STATE_PURSUIT)
79 local Rogue = 0
80 if 1 <= skilllv_Rogue then
81 Rogue = 0.03 * skilllv_Rogue
82 end
83 local bloodrain = 0
84 local RefineLv7 = srcUser:GetEquipedRefineLv(7_WEAPON)
85 if srcUser:HasBuffID(90001048_BLOOD_TEARS_1_TIER_9_:MAX_STACK_0) and 10 <= RefineLv7 then
86 bloodrain = 0.15
87 end
88 if srcUser:HasBuffID(41870_ASSASSIN_S_JUR_:MAX_STACK_0) and 5 <= RefineLv7 then
89 bloodrain = 0.2
90 end
91 if srcUser:HasBuffID(44290_POISONOUS_WHIP_ROSE_:MAX_STACK_0) or srcUser:HasBuffID(44300_NEPENTHES_LYRE_:MAX_STACK_0) then
92 bloodrain = RefineLv7 * 0.01
93 end
94 if srcUser:HasBuffID(90004314_DESERT_STORM_1_TIER_5_:MAX_STACK_0) then
95 bloodrain = 0.15
96 end
97 if srcUser:HasBuffID(64350_2982_:MAX_STACK_0) then
98 bloodrain = bloodrain + 0.1
99 end
100 local skilllv_Zhuangtai = srcUser:GetLernedSkillLevel(1166_THIEF:STATUS_VULNERABILITY)
101 local skilllv_Zhuangtai2 = srcUser:GetLernedSkillLevel(1490_GUILLOTINE_CROSS:STATUS_VULNERABILITY)
102 local skilllv_Zhuangtai3 = srcUser:GetLernedSkillLevel(1716_ARCHER:STATUS_VULNERABILITY)
103 local skilllv_Zhuangtai4 = srcUser:GetLernedSkillLevel(1912_HUNTER:STATUS_VULNERABILITY)
104 local skilllv_Zhuangtai5 = srcUser:GetLernedSkillLevel(62001_:STATUS_VULNERABILITY)
105 local Numfs = srcUser:GetRunePoint(24080_AESIR_STATUS_VULNERABILITY_S_EFFECT_3_AUTO_ATTACK_HAS_A_3_CHANCE_TO_INFLICT_BURN_FREEZING_STUN_OR_BLEEDING_ON_THE_ENEMY)
106 local Yishang = skilllv_Zhuangtai * 0.05 + Numfs * 0.03 + skilllv_Zhuangtai2 * 0.05 + skilllv_Zhuangtai3 * 0.05 + skilllv_Zhuangtai4 * 0.05 + skilllv_Zhuangtai5 * 0.005
107 local FrozenM = 0
108 local Card1 = srcUser:GetEquipCardNum(7, 20025_MARINA_CARD)
109 if 0 < Card1 and srcUser:HasBuffID(80000250_MARINA_CARD_DEPOSITE_:MAX_STACK_0) then
110 FrozenM = 0.25 + FrozenM
111 end
112 if srcUser:HasBuffID(52180_GARM_CARD_:MAX_STACK_0) and srcUser:HasBuffID(81000050_GARM_CARD_DEPOSITE_:MAX_STACK_0) then
113 FrozenM = 0.2 + FrozenM
114 end
115 if srcUser:HasBuffID(56250_GARM_CARD_:MAX_STACK_0) and srcUser:HasBuffID(81003180_GARM_CARD_STORAGE_:MAX_STACK_0) then
116 FrozenM = 0.2 + FrozenM
117 end
118 if srcUser:HasBuffID(54930_REVENANT_STORMY_KNIGHT_CARD_:MAX_STACK_0) and srcUser:HasBuffID(54910_STORMY_KNIGHT_CARD_:MAX_STACK_0) then
119 FrozenM = 0.1 + FrozenM
120 end
121 local BloodM = 0
122 if srcUser:HasBuffID(37540_3000531SRSILVER_MOON_BLACKCAT_:MAX_STACK_0) then
123 BloodM = 0.05 + BloodM
124 end
125 local Rosa = 0
126 if srcUser:HasBuffID(138691_GUIDE_OF_ROSE_:MAX_STACK_0) then
127 local Bufflv = srcUser:GetBuffLevel(138691_GUIDE_OF_ROSE_:MAX_STACK_0)
128 Rosa = Bufflv * 0.03
129 end
130 if bits[CommonFun.StateEffect.Poison] == 1 and (Weapon == 40909_BLOOD_TEARS_1 or Weapon == 140909_BLOOD_TEARS_2) then
131 return 1 + bloodrain
132 end
133 if bits[CommonFun.StateEffect.Poison] == 1 and (Weapon == 40945_ASSASSIN_S_JUR_1 or Weapon == 140945_ASSASSIN_S_JUR_2) then
134 return 1 + bloodrain
135 end
136 if bits[CommonFun.StateEffect.Poison] == 1 and (Weapon == 62819_POISONOUS_WHIP_1 or Weapon == 162819_POISONOUS_WHIP_2 or Weapon == 63153_NEPENTHES_LYRE_1 or Weapon == 163153_NEPENTHES_LYRE_2) then
137 return 1 + bloodrain
138 end
139 if bits[CommonFun.StateEffect.Poison] == 1 and (Weapon == 40766_DESERT_STORM_1 or Weapon == 140766_DESERT_STORM_2) then
140 return 1 + bloodrain
141 end
142 if bits[CommonFun.StateEffect.Poison] == 1 then
143 return 1 + bloodrain
144 end
145 if targetUser:GetBuffFromID(106131_INTIMIDATE_AEISR_MONUMENT_DAMAGE_BONUS_:MAX_STACK_0) and fromid == guid and (Profession == 92_ROGUE_ROGUE_ROGUE_ROGUE_ROGUE or Profession == 93_STALKER_STALKER_STALKER_STALKER_STALKER or Profession == 94_SHADOW_CHASER_SHADOW_CHASER_SHADOW_CHASER_SHADOW_CHASER_SHADOW_CHASER or Profession == 95_PHANTOM_DANCER_PHANTOM_DANCER_PHANTOM_DANCER_PHANTOM_DANCER_PHANTOM_DANCER) then
146 return 1 + Snatch
147 end
148 if bits[CommonFun.StateEffect.Dizzy] == 1 and (Profession == 92_ROGUE_ROGUE_ROGUE_ROGUE_ROGUE or Profession == 93_STALKER_STALKER_STALKER_STALKER_STALKER or Profession == 94_SHADOW_CHASER_SHADOW_CHASER_SHADOW_CHASER_SHADOW_CHASER_SHADOW_CHASER or Profession == 95_PHANTOM_DANCER_PHANTOM_DANCER_PHANTOM_DANCER_PHANTOM_DANCER_PHANTOM_DANCER) then
149 return 1 + Rogue + RuneDamage7 + Snatch
150 end
151 if (bits[CommonFun.StateEffect.NoMove] == 1 or targetUser:HasBuffID(106151_CLOSE_CONFINE_REMOVE_EFFECTS_:MAX_STACK_0)) and (Profession == 92_ROGUE_ROGUE_ROGUE_ROGUE_ROGUE or Profession == 93_STALKER_STALKER_STALKER_STALKER_STALKER or Profession == 94_SHADOW_CHASER_SHADOW_CHASER_SHADOW_CHASER_SHADOW_CHASER_SHADOW_CHASER or Profession == 95_PHANTOM_DANCER_PHANTOM_DANCER_PHANTOM_DANCER_PHANTOM_DANCER_PHANTOM_DANCER) then
152 return 1 + Rogue + RuneDamage8 + Snatch
153 end
154 if (bits[CommonFun.StateEffect.Dark] == 1 or targetUser:HasBuffID(106151_CLOSE_CONFINE_REMOVE_EFFECTS_:MAX_STACK_0)) and (Profession == 92_ROGUE_ROGUE_ROGUE_ROGUE_ROGUE or Profession == 93_STALKER_STALKER_STALKER_STALKER_STALKER or Profession == 94_SHADOW_CHASER_SHADOW_CHASER_SHADOW_CHASER_SHADOW_CHASER_SHADOW_CHASER or Profession == 95_PHANTOM_DANCER_PHANTOM_DANCER_PHANTOM_DANCER_PHANTOM_DANCER_PHANTOM_DANCER) then
155 return 1 + Rogue + Snatch + curse
156 end
157 if (bits[CommonFun.StateEffect.Dizzy] == 1 or bits[CommonFun.StateEffect.NoMove] == 1 or bits[CommonFun.StateEffect.Dark] == 1 or targetUser:HasBuffID(106151_CLOSE_CONFINE_REMOVE_EFFECTS_:MAX_STACK_0)) and (Profession == 92_ROGUE_ROGUE_ROGUE_ROGUE_ROGUE or Profession == 93_STALKER_STALKER_STALKER_STALKER_STALKER or Profession == 94_SHADOW_CHASER_SHADOW_CHASER_SHADOW_CHASER_SHADOW_CHASER_SHADOW_CHASER or Profession == 95_PHANTOM_DANCER_PHANTOM_DANCER_PHANTOM_DANCER_PHANTOM_DANCER_PHANTOM_DANCER) then
158 return 1 + Rogue + Snatch
159 end
160 if bits[CommonFun.StateEffect.Dizzy] == 1 and (Weapon == 41813_WINDHAWK_1 or Weapon == 141813_WINDHAWK_2) then
161 return 1.15 + RuneDamage1 + RuneDamage3 + RuneDamage6 + DizzyRatio + Rogue
162 end
163 if bits[CommonFun.StateEffect.Dizzy] == 1 and (Weapon == 41811_GUILLOTINE_1 or Weapon == 141811_GUILLOTINE_2) then
164 return 1 + 0.05 * RefineLv + RuneDamage1 + RuneDamage3 + RuneDamage6 + DizzyRatio + Rogue
165 end
166 if bits[CommonFun.StateEffect.Dizzy] == 1 and (Profession == 61_MERCHANT or Profession == 62_BLACKSMITH or Profession == 63_WHITESMITH or Profession == 64_MECHANIC or Profession == 65_LIGHTBRINGER or Profession == 31_THIEF or Profession == 32_ASSASSIN or Profession == 33_ASSASSIN_CROSS or Profession == 34_GUILLOTINE_CROSS or Profession == 35_BLADE_SOUL or Profession == 213_LITTLE_SAVIOR or Profession == 214_RYUJINMARU or Profession == 215_RYUOUMARU) then
167 return 1 + RuneDamage1 + RuneDamage3 + DizzyRatio
168 end
169 if bits[CommonFun.StateEffect.Freeze] == 1 then
170 return 1 + Yishang + FrozenM
171 end
172 if bits[CommonFun.StateEffect.NoMove] == 1 then
173 return 1 + RuneDamage2
174 end
175 if bits[CommonFun.StateEffect.Silence] == 1 and (Profession == 122_MONK_MONK or Profession == 123_CHAMPION_CHAMPION or Profession == 124_SHURA_SHURA or Profession == 125_DRAGON_FIST_DRAGON_FIST) then
176 return 1 + RuneDamage4 + curse
177 end
178 if bits[CommonFun.StateEffect.Dizzy] == 1 and (Profession == 122_MONK_MONK or Profession == 123_CHAMPION_CHAMPION or Profession == 124_SHURA_SHURA or Profession == 125_DRAGON_FIST_DRAGON_FIST) then
179 return 1 + RuneDamage6 + DizzyRatio
180 end
181 if srcUser:HasBuffID(80113_HEAD_CRUSH_PEAK_:MAX_STACK_0) and bits[CommonFun.StateEffect.Blood] == 1 then
182 local skilllv_1 = srcUser:GetLernedSkillLevel(25_SWORDSMAN:HEAD_CRUSH)
183 if 10 < skilllv_1 then
184 return 1 + (skilllv_1 - 10) * 0.05 + BloodM + Rosa
185 end
186 end
187 if bits[CommonFun.StateEffect.Blood] == 1 then
188 return 1 + Yishang + BloodM + Rosa
189 end
190 if bits[CommonFun.StateEffect.Dizzy] == 1 and (Profession == 24_WARLOCK_WARLOCK or Profession == 25_ARCANE_MASTER_ARCANE_MASTER or Profession == 144_SUPER_NOVICE_SUPER_NOVICE or Profession == 145_NOVICE_GUARDIAN_NOVICE_GUARDIAN or Profession == 204_WARRIOR_OF_WILDFIRE_WARRIOR_OF_WILDFIRE or Profession == 205_INFERNO_ARMOR_INFERNO_ARMOR or Profession == 224_CHAOTIC_ARCHMAGE_CHAOTIC_ARCHMAGE or Profession == 225_SLAYER_SLAYER or srcUser:HasBuffID(231010_STATUS_VULNERABILITY_:MAX_STACK_0)) then
191 return 1 + Yishang + DizzyRatio
192 end
193 if (bits[CommonFun.StateEffect.Freeze] == 1 or bits[CommonFun.StateEffect.Blood] == 1 or bits[CommonFun.StateEffect.Burn] == 1) and (Profession == 24_WARLOCK_WARLOCK or Profession == 25_ARCANE_MASTER_ARCANE_MASTER or Profession == 144_SUPER_NOVICE_SUPER_NOVICE or Profession == 145_NOVICE_GUARDIAN_NOVICE_GUARDIAN or Profession == 204_WARRIOR_OF_WILDFIRE_WARRIOR_OF_WILDFIRE or Profession == 205_INFERNO_ARMOR_INFERNO_ARMOR or Profession == 224_CHAOTIC_ARCHMAGE_CHAOTIC_ARCHMAGE or Profession == 225_SLAYER_SLAYER or srcUser:HasBuffID(231010_STATUS_VULNERABILITY_:MAX_STACK_0)) then
194 return 1 + Yishang
195 end
196 if bits[CommonFun.StateEffect.Dizzy] == 1 then
197 return 1 + DizzyRatio
198 end
199 local GemValue = srcUser:GetGemValue(91061_DMG_DEALT_TO_ENEMIES_IN_FEAR_PERCENTAGE)
200 local RuneNum_mjhw = srcUser:GetRunePoint(153041_AESIR_MEOW_INFLICTS_EXTRA_DMG_OF_3_ON_ENEMY_UNITS_WITH_THE_FEAR_STATUS)
201 if bits[CommonFun.StateEffect.Fear] == 1 then
202 return 1 + GemValue / 100000 + RuneNum_mjhw * 0.03 + curse
203 end
204 if bits[CommonFun.StateEffect.Curse] == 1 then
205 return 1 + curse + Rosa
206 elseif bits[CommonFun.StateEffect.Fear] == 1 or bits[CommonFun.StateEffect.Dark] == 1 or bits[CommonFun.StateEffect.Silence] == 1 then
207 return 1 + curse
208 end
209 return 1
210endFormula Graph
Connected Archive Data
See which cards, equipment, headwears, buffs, and other archived records connect to this formula.
Loading graph filters
CommonFun.DoCalcStateEffectDam
commonfun-docalcstateeffectdam
Nodes
0
Edges
0
Related Nodes
Select at least one node type.
