Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Zosyne
VuhDo
Commits
1aa0fd61
Commit
1aa0fd61
authored
2 years ago
by
Ivaria
Browse files
Options
Download
Email Patches
Plain Diff
Clean-up PWS Glyph absorb workaround
parent
0fe6add9
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
44 additions
and
30 deletions
+44
-30
VuhDoShieldAbsorb.lua
VuhDoShieldAbsorb.lua
+44
-30
No files found.
VuhDoShieldAbsorb.lua
View file @
1aa0fd61
...
...
@@ -5,21 +5,21 @@ local type = type;
local
UnitGetTotalAbsorbs
=
VUHDO_unitGetTotalAbsorbs
;
local
VUHDO_SHIELDS
=
{
[
17
]
=
30
,
--Power Word: Shield rank 1
[
592
]
=
30
,
--Power Word: Shield rank 2
[
600
]
=
30
,
--Power Word: Shield rank 3
[
3747
]
=
30
,
--Power Word: Shield rank 4
[
6056
]
=
30
,
--Power Word: Shield rank 5
[
6066
]
=
30
,
--Power Word: Shield rank 6
[
10898
]
=
30
,
--Power Word: Shield rank 7
[
10899
]
=
30
,
--Power Word: Shield rank 8
[
10900
]
=
30
,
--Power Word: Shield rank 9
[
10901
]
=
30
,
--Power Word: Shield rank 10
[
25217
]
=
30
,
--Power Word: Shield rank 11
[
25218
]
=
30
,
--Power Word: Shield rank 12
[
48065
]
=
30
,
--Power Word: Shield rank 13
[
48066
]
=
30
,
--Power Word: Shield rank 14
[
56160
]
=
30
,
--Glyph of Power Word: Shield
[
17
]
=
30
,
--
Power Word: Shield
(
rank 1
)
[
592
]
=
30
,
--
Power Word: Shield
(
rank 2
)
[
600
]
=
30
,
--
Power Word: Shield
(
rank 3
)
[
3747
]
=
30
,
--
Power Word: Shield
(
rank 4
)
[
6056
]
=
30
,
--
Power Word: Shield
(
rank 5
)
[
6066
]
=
30
,
--
Power Word: Shield
(
rank 6
)
[
10898
]
=
30
,
--
Power Word: Shield
(
rank 7
)
[
10899
]
=
30
,
--
Power Word: Shield
(
rank 8
)
[
10900
]
=
30
,
--
Power Word: Shield
(
rank 9
)
[
10901
]
=
30
,
--
Power Word: Shield
(
rank 10
)
[
25217
]
=
30
,
--
Power Word: Shield
(
rank 11
)
[
25218
]
=
30
,
--
Power Word: Shield
(
rank 12
)
[
48065
]
=
30
,
--
Power Word: Shield
(
rank 13
)
[
48066
]
=
30
,
--
Power Word: Shield
(
rank 14
)
[
56160
]
=
30
,
--
Glyph of Power Word: Shield
}
...
...
@@ -214,6 +214,7 @@ local function VUHDO_removeShield(aUnit, aShieldName)
VUHDO_SHIELD_LEFT
[
aUnit
][
aShieldName
]
=
nil
;
VUHDO_SHIELD_EXPIRY
[
aUnit
][
aShieldName
]
=
nil
;
VUHDO_SHIELD_LAST_SOURCE_GUID
[
aUnit
][
aShieldName
]
=
nil
;
VUHDO_SHIELD_LEFT_TEMP
[
aUnit
][
aShieldName
]
=
nil
;
--VUHDO_xMsg("Removed shield " .. aShieldName .. " from " .. aUnit);
end
...
...
@@ -308,15 +309,20 @@ end
--
function
VUHDO_getUnitOverallShieldRemain
(
aUnit
)
local
aRemain
=
UnitGetTotalAbsorbs
(
aUnit
)
if
aRemain
>
0
then
return
aRemain
end
local
aRemain
=
UnitGetTotalAbsorbs
(
aUnit
);
if
aRemain
>
0
then
return
aRemain
;
end
if
VUHDO_SHIELD_LEFT
[
aUnit
]
then
for
_
,
value
in
pairs
(
VUHDO_SHIELD_LEFT
[
aUnit
])
do
if
value
then
aRemain
=
aRemain
+
value
aRemain
=
aRemain
+
value
;
end
end
end
return
aRemain
;
end
...
...
@@ -344,26 +350,30 @@ function VUHDO_parseCombatLogShieldAbsorb(aMessage, aSrcGuid, aDstGuid, aShieldN
if
VUHDO_SHIELDS
[
aSpellId
]
then
if
"SPELL_AURA_REFRESH"
==
aMessage
then
if
not
anAmount
then
--anAmount is always nil
at wotlk
c
anAmount
=
VUHDO_SHIELD_LEFT_TEMP
[
tUnit
][
aShieldName
]
or
0
if
not
anAmount
then
--
anAmount is always nil
in Wrath Classi
c
anAmount
=
VUHDO_SHIELD_LEFT_TEMP
[
tUnit
][
aShieldName
]
or
0
;
end
VUHDO_updateShieldValue
(
tUnit
,
aShieldName
,
anAmount
,
VUHDO_SHIELDS
[
aSpellId
]);
elseif
"SPELL_AURA_APPLIED"
==
aMessage
then
if
not
anAmount
then
--anAmount is always nil
at wotlk
c
anAmount
=
VUHDO_SHIELD_LEFT_TEMP
[
tUnit
][
aShieldName
]
or
0
if
not
anAmount
then
--
anAmount is always nil
in Wrath Classi
c
anAmount
=
VUHDO_SHIELD_LEFT_TEMP
[
tUnit
][
aShieldName
]
or
0
;
end
VUHDO_initShieldValue
(
tUnit
,
aShieldName
,
anAmount
,
VUHDO_SHIELDS
[
aSpellId
]);
VUHDO_SHIELD_LAST_SOURCE_GUID
[
tUnit
][
aShieldName
]
=
aSrcGuid
;
elseif
"SPELL_AURA_REMOVED"
==
aMessage
or
"SPELL_AURA_BROKEN"
==
aMessage
or
"SPELL_AURA_BROKEN_SPELL"
==
aMessage
then
VUHDO_removeShield
(
tUnit
,
aShieldName
);
elseif
"SPELL_HEAL"
==
aMessage
and
aSpellId
==
56160
then
--Glyph of Power Word: Shield
anAmount
=
aHealAmount
*
5
elseif
"SPELL_HEAL"
==
aMessage
and
aSpellId
==
56160
then
-- Glyph of Power Word: Shield
anAmount
=
aHealAmount
/
0
.
2
;
-- the glyph heal amount is 20% of the absorb amount
if
aCritical
then
anAmount
=
math.floor
(
anAmount
/
1
.
5
)
anAmount
=
math.floor
(
anAmount
/
1
.
5
)
;
-- critical heals in Wrath Classic are 150%
end
VUHDO_SHIELD_LEFT_TEMP
[
tUnit
][
VUHDO_SPELL_ID
.
POWERWORD_SHIELD
]
=
anAmount
-- save shield value into temp table
VUHDO_SHIELD_LEFT_TEMP
[
tUnit
][
VUHDO_SPELL_ID
.
POWERWORD_SHIELD
]
=
anAmount
;
end
elseif
VUHDO_ABSORB_DEBUFFS
[
aSpellId
]
then
...
...
@@ -397,13 +407,17 @@ function VUHDO_parseCombatLogShieldAbsorb(aMessage, aSrcGuid, aDstGuid, aShieldN
VUHDO_updateAllHoTs
();
VUHDO_updateAllCyclicBouquets
(
true
);
elseif
"SPELL_ABSORBED"
==
aMessage
then
-- SPELL_ABSORBED optionally includes the spell payload if triggered from what would be SPELL_DAMAGE
-- this offsets the CLEU payload by +3
-- see: https://wowpedia.fandom.com/wiki/COMBAT_LOG_EVENT#SPELL_ABSORBED
if
anAbsorbSpellSchool
then
tShieldName
=
anAbsorbSpellName
anAmount
=
anAbsorbSpellDamageAmount
or
0
tShieldName
=
anAbsorbSpellName
;
anAmount
=
anAbsorbSpellDamageAmount
or
0
;
else
tShieldName
=
anAbsorbAmount
anAmount
=
anAbsorbSwingDamageAmount
or
0
tShieldName
=
anAbsorbAmount
;
anAmount
=
anAbsorbSwingDamageAmount
or
0
;
end
if
VUHDO_SHIELD_LEFT
[
tUnit
][
tShieldName
]
then
tDelta
=
VUHDO_getShieldLeftAmount
(
tUnit
,
tShieldName
)
-
anAmount
;
VUHDO_updateShieldValue
(
tUnit
,
tShieldName
,
tDelta
);
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment