Formula

CommonFun.CalcSuckBlood

formula.lua
1function CommonFun.CalcSuckBlood(srcUser, damage, skillid)
2  local skillParams = Table_Skill[skillid]
3  if skillParams == nil or skillParams.Logic_Param == nil then
4    return 0
5  end
6  local Num1 = srcUser:GetRunePoint(42130_AESIR_SHARP_SHOOTING_CAST_TIME_0_3_HEALING_EFFECT_1_BUT_SKILL_CD_0_3_SEC)
7  local RuneDamage = 0.01 * Num1
8  local skilllv_1 = srcUser:GetLernedSkillLevel(1168_THIEF:HP_ABSORB)
9  local GemValue = srcUser:GetGemValue(41082_SHARP_SHOOTING_DMG_CONVERTION_RATE_PERCENTAGE)
10  if skillParams.Logic_Param.isSuckSkill then
11    if math.floor(skillid / 1000) == 130 and skillid % 100 <= 5 then
12      return damage * (0.15 + RuneDamage + GemValue / 100000)
13    end
14    if math.floor(skillid / 1000) == 130 and skillid % 100 > 5 then
15      return damage * (0.3 + RuneDamage + GemValue / 100000)
16    end
17    if math.floor(skillid / 1000) == 1168 then
18      return damage * (0.25 + math.min(skilllv_1, 5) * 0.05)
19    end
20    if math.floor(skillid / 1000) == 810 then
21      local GemValue = srcUser:GetGemValue(51132_YOU_ARE_HEALED_FOR_SHADOW_WAVE_DAMAGE_DEALT_XPERCENTAGE)
22      local HealEncPer = srcUser:GetProperty("HealEncPer")
23      local HealDam = 1
24      if srcUser:HasBuffID(20510130_HEALING_BONUS_AFFECTS_SHADOW_WAVE_:MAX_STACK_0) then
25        HealDam = 1 + HealEncPer
26      end
27      return damage * GemValue / 100000 * HealDam
28    end
29    if skillid == 73210002 then
30      return damage
31    end
32    if skillid == 73580001 then
33      return damage
34    end
35    if skillid == 78440001 then
36      return damage
37    end
38    if skillid == 77360001 then
39      return damage * 20
40    end
41    if skillid == 78945001 then
42      return damage * 20
43    end
44    if skillid == 79012001 then
45      return damage * 10
46    end
47    if math.floor(skillid / 1000) == 81013 then
48      return damage * 0.5
49    end
50    if math.floor(skillid / 1000) == 2441 then
51      local skilllv = srcUser:GetLernedSkillLevel(2451_PRIEST:FULLMOON_KICK_MOON_SPLENDOR)
52      return damage * skilllv * 0.02
53    end
54    if math.floor(skillid / 1000) == 2637 or math.floor(skillid / 1000) == 2639 then
55      local skilllv = srcUser:GetLernedSkillLevel(2620_ARCHBISHOP:RABIES_VACCINATION)
56      return damage * skilllv * 0.005
57    end
58    if math.floor(skillid / 1000) == 2080 and srcUser:HasBuffID(51400_KOBOLD_LEADER_CARD_:MAX_STACK_0) then
59      return damage * 0.05
60    end
61  end
62  return 0
63end
Formula Graph

Connected Archive Data

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

Loading graph filters

CommonFun.CalcSuckBlood

commonfun-calcsuckblood

Nodes

0

Edges

0

Related Nodes

Select at least one node type.