Double Healing

Double Healing

Lv 5BuffSkill Delay: 1 sec

After release, the priest receives "Double Healing" for 10 seconds, the next healing spell will cure one more ally (in addition to the current allied target) with the lowest HP, the recovery value equals to 50% of this time

Range: 9

Aesir Effects

• Double Healing - Duration Duration of [Double Healing] +3 seconds, Recovery value of [Double Healing] +3%

Skill Levels

Lvl: 4
Buff
Skill Delay: 1 sec
SP: 72
Range: 9

• After release, the priest receives "Double Healing" for 10 seconds, the next healing spell will cure one more ally (in addition to the current allied target) with the lowest HP, the recovery value equals to 40% of this time

Lvl: 3
Buff
Skill Delay: 1 sec
SP: 62
Range: 9

• After release, the priest receives "Double Healing" for 10 seconds, the next healing spell will cure one more ally (in addition to the current allied target) with the lowest HP, the recovery value equals to 30% of this time

Lvl: 2
Buff
Skill Delay: 1 sec
SP: 52
Range: 9

• After release, the priest receives "Double Healing" for 10 seconds, the next healing spell will cure one more ally (in addition to the current allied target) with the lowest HP, the recovery value equals to 20% of this time

Lvl: 1
Buff
Skill Delay: 1 sec
SP: 42
Range: 9

• After release, the priest receives "Double Healing" for 10 seconds, the next healing spell will cure one more ally (in addition to the current allied target) with the lowest HP, the recovery value equals to 10% of this time

Formula

1function CommonFun.calcDamage_5101(srcUser, targetUser, params, damageParam, logger)
2  local BaseLv = srcUser.BaseLv
3  local Int = srcUser:GetProperty("Int")
4  local HolyAtk = srcUser:GetProperty("HolyAtk")
5  local HealEncPer = srcUser:GetProperty("HealEncPer")
6  local enemy = srcUser:IsEnemy(targetUser)
7  local MDamIncrease = CommonFun.calcMDamIncrease(srcUser, targetUser)
8  local skilllv_1 = srcUser:GetLernedSkillLevel(50034_:FIRST_AID_II)
9  local skilllv_2 = srcUser:GetLernedSkillLevel(50035_:FIRST_AID_III)
10  local Num1 = srcUser:GetRunePoint(51001_AESIR_HEALING_DONE_BY_HEAL_2)
11  local Num2 = srcUser:GetRunePoint(51011)
12  local RuneDamage = Num1 * 0.02 + Num2 * 0.02 + 1
13  local c = 1
14  if srcUser:HasBuffID(51580_LADY_WHITE_SNAKE_CARD_:MAX_STACK_0) then
15    c = 1.1
16  end
17  local RefineLv = srcUser:GetEquipedRefineLv(1)
18  local Angel = 1
19  if srcUser:HasBuffID(40430_SACRED_MISSION_:MAX_STACK_0) then
20    Angel = 1 + RefineLv / 100
21  end
22  if srcUser:HasBuffID(90001813_SACRED_MISSION_TIER_4_:MAX_STACK_0) then
23    if 5 <= RefineLv and RefineLv < 10 then
24      Angel = Angel + 0.03
25    elseif 10 <= RefineLv then
26      Angel = Angel + 0.03 + 0.07
27    end
28  end
29  if srcUser:HasBuffID(90001816_SACRED_MISSION_TIER_7_:MAX_STACK_0) then
30    if 5 <= RefineLv and RefineLv < 10 then
31      Angel = Angel + 0.02
32    elseif 10 <= RefineLv then
33      Angel = Angel + 0.02 + 0.03
34    end
35  end
36  local equipRing = srcUser:getEquip(CommonFun.PackType.EPACKTYPE_EQUIP, CommonFun.EquipPos.EEQUIPPOS_SHIELD)
37  if equipRing.id == 42579 or equipRing.id == 142579 then
38    if 5 > equipRing.refinelv then
39      Angel = Angel + equipRing.refinelv / 100
40    elseif 5 <= equipRing.refinelv and 10 > equipRing.refinelv then
41      Angel = Angel + 0.05 + equipRing.refinelv / 100
42    elseif 10 <= equipRing.refinelv then
43      Angel = Angel + 0.05 + 0.1 + equipRing.refinelv / 100
44    end
45  end
46  local equipRingSD = srcUser:getEquip(CommonFun.PackType.EPACKTYPE_SHADOWEQUIP, CommonFun.EquipPos.EEQUIPPOS_SHIELD)
47  if equipRingSD.id == 42579 or equipRingSD.id == 142579 then
48    if 5 > equipRingSD.refinelv then
49      Angel = Angel + equipRingSD.refinelv / 100 * equipRingSD.quench_per / 100
50    elseif 5 <= equipRingSD.refinelv and 10 > equipRingSD.refinelv then
51      Angel = Angel + (0.05 + equipRingSD.refinelv / 100) * equipRingSD.quench_per / 100
52    elseif 10 <= equipRingSD.refinelv then
53      Angel = Angel + (0.15000000000000002 + equipRingSD.refinelv / 100) * equipRingSD.quench_per / 100
54    end
55  end
56  local srcAtkElement = CommonFun.GetUserAtkAttr(srcUser, targetUser, params, damageParam)
57  local targetDefElement = targetUser:GetProperty("DefAttr")
58  local BeHealEncPer2 = targetUser:GetProperty("BeHealEncPer")
59  local race2 = targetUser.race
60  if targetUser:HasBuffID(139410_TWO_FACE_DEMON_KING_HUMAN_:MAX_STACK_0) then
61    race2 = 3
62  end
63  if srcUser:HasBuffID(49320_RACIAL_ANCIENT_RELICS_PERMANENT_:MAX_STACK_0) and srcUser:HasBuffID(49325_RACIAL_ANCIENT_RELICS_CD_:MAX_STACK_0) then
64  elseif srcUser:HasBuffID(49320_RACIAL_ANCIENT_RELICS_PERMANENT_:MAX_STACK_0) then
65    race2 = 2
66  end
67  local DefAttr2 = targetUser:GetProperty("DefAttr")
68  local AttrEffect = targetUser:GetProperty("AttrEffect2")
69  local bits = CommonFun.getBits(AttrEffect)
70  local damChangePer = damageParam.damChangePer
71  local damChangePer1 = damageParam.damChangePer1
72  local elementparam2 = CommonFun.CalcElementParam2(srcUser, targetUser, params, damageParam, logger)
73  local A = ((math.floor((BaseLv + Int) / 10) * damChangePer + 100 + skilllv_1 * 50 + skilllv_2 * 50) * (1 + HealEncPer) * (1 + BeHealEncPer2) + damChangePer1) * -1 * (1 + HolyAtk) * RuneDamage * c * Angel
74  local mapid, maptype = srcUser:GetMapInfo()
75  local skillID, skillLevel = CommonFun.UnmergeSkillID(params.skillIDAndLevel)
76  if skillID == 11_NOVICE:FIRST_AID then
77    local BaseLv = srcUser.BaseLv
78    A = (100 + BaseLv * 5 + skilllv_1 * 200 + skilllv_2 * 200) * (1 + HealEncPer) * (1 + BeHealEncPer2) * -1 * (1 + HolyAtk)
79  end
80  if skillID == 1224_THIEF:COLUCEO_HEAL_THIEF:COLUCEO_HEAL then
81    local skilllv_3 = srcUser:GetLernedSkillLevel(144_KNIGHT:HEAL)
82    local damChangePer = 4
83    if skilllv_3 <= 10 then
84      damChangePer = 4 + skilllv_3 * 8
85    elseif 10 < skilllv_3 then
86      damChangePer = 64 + skilllv_3 * 2
87    end
88    local MaxHp = targetUser:GetProperty("MaxHp")
89    local Hp = targetUser:GetProperty("Hp")
90    local Num = srcUser:GetRunePoint(54030_AESIR_COLUCEO_HEAL_GAINS_EXTRA_HEALING_EQUAL_TO_2_OF_TARGET_S_LOST_HP)
91    local RuneDamage1 = (MaxHp - Hp) * 0.02 * Num
92    local GemValue = srcUser:GetGemValue(51011_COLUCEO_HEAL_S_CURE_PERCENTAGE)
93    local GemDam = 1 + GemValue / 100000
94    local PvP_ratio = 1
95    if maptype == PVP_MAPS then
96      PvP_ratio = 4
97    end
98    A = (math.floor((BaseLv + Int) / 10) * damChangePer + 100 + skilllv_1 * 50 + skilllv_2 * 50) * damChangePer1 * PvP_ratio * (1 + HealEncPer) * (1 + BeHealEncPer2) * -1 * (1 + HolyAtk) * RuneDamage * c * Angel * GemDam - RuneDamage1 * (1 + BeHealEncPer2)
99  end
100  if targetUser:HasBuffID(41100050_HEALING_RECEIVED_:MAX_STACK_0) then
101    local MaxHp = targetUser:GetProperty("MaxHp")
102    local Hp = targetUser:GetProperty("Hp")
103    local Num1 = targetUser:GetBuffLayer(41100050_HEALING_RECEIVED_:MAX_STACK_0)
104    if Hp < MaxHp * (0.15 * Num1) then
105      A = A * 3
106    end
107  end
108  local RateNum = 0
109  local profressionID = srcUser:GetProfressionID()
110  if srcUser:HasBuffID(35381_47160_ANGEL_WING_FEATHER_:MAX_STACK_0) and (profressionID == 51_ACOLYTE or profressionID == 52_PRIEST or profressionID == 53_HIGH_PRIEST or profressionID == 54_ARCHBISHOP or profressionID == 55_SAINT or profressionID == 615_NIDHOGG or profressionID == 795_KAFRA) then
111    RateNum = 15
112  end
113  local HealtoDam = targetUser:GetBuffLevel(129100_CURE_BARRIER_:MAX_STACK_0)
114  local DamRatio = 1
115  if targetUser:HasBuffID(129100_CURE_BARRIER_:MAX_STACK_0) then
116    DamRatio = -0.1 * HealtoDam
117  end
118  if skillID == 1224_THIEF:COLUCEO_HEAL_THIEF:COLUCEO_HEAL and srcUser:HasBuffID(22000530_COLUCEO_HEAL_DOES_NOT_SHIFT_OR_CONVERSE_:MAX_STACK_0) then
119    DamRatio = 1
120    if 0 < A then
121      A = 0
122    end
123  end
124  local HealReduce = targetUser:GetBuffLevel(136500_10783_:MAX_STACK_0)
125  if targetUser:HasBuffID(136500_10783_:MAX_STACK_0) then
126    DamRatio = 1 - (0.2 + 0.03 * HealReduce)
127  end
128  if enemy then
129    if DefAttr2 == 9 then
130      return A / 2 * CommonFun.calcMagicElement(srcUser, targetUser, params, damageParam) * elementparam2 * -1 * (1 + MDamIncrease)
131    else
132      return 0, 0
133    end
134  elseif DefAttr2 == 9 or bits[CommonFun.AttrEffect.PoisinDamNoUse] == 1 then
135    return -1
136  elseif CommonFun.IsInRate(RateNum, srcUser:GetRandom()) then
137    return A * 2 * DamRatio
138  else
139    return A * DamRatio
140  end
141end
Preserved HTML snapshot from ROM Handbook