diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml
index 709a7cd..2f93975 100644
--- a/.gitea/workflows/release.yml
+++ b/.gitea/workflows/release.yml
@@ -37,10 +37,14 @@ jobs:
RID=$(curl -sf -X POST -H "Authorization: token $GITEA_TOKEN" \
-H "Content-Type: application/json" \
"$API/repos/$REPO/releases" \
- -d "$(jq -nc --arg t "$TAG" '{tag_name:$t,name:$t,draft:false,prerelease:false}')" \
+ -d "$(jq -nc --arg t "$TAG" '{tag_name:$t,name:$t,draft:false,prerelease:false,hide_archive_links:true}')" \
| jq -r '.id')
fi
echo "release id: $RID"
+ # Gitea honors hide_archive_links only on edit, not create — PATCH it
+ # so the auto-generated Source Code (zip/tar.gz) links stay hidden.
+ curl -sf -X PATCH -H "Authorization: token $GITEA_TOKEN" -H "Content-Type: application/json" \
+ "$API/repos/$REPO/releases/$RID" -d '{"hide_archive_links":true}' >/dev/null || true
# Upload every dist/*.zip. Per-asset failures don't fail the job —
# we want partial releases to still publish rather than block the
# whole pipeline on one big file.
diff --git a/Decursive/DCR_init.lua b/Decursive/DCR_init.lua
index 55f72a9..b97c825 100644
--- a/Decursive/DCR_init.lua
+++ b/Decursive/DCR_init.lua
@@ -124,8 +124,8 @@ DC.AfflictionSound = "Interface\\AddOns\\Decursive\\Sounds\\AfflictionAlert.wav"
--DC.AfflictionSound = "Sound\\Doodad\\BellTollTribal.wav"
DC.FailedSound = "Interface\\AddOns\\Decursive\\Sounds\\FailedSpell.wav";
-DC.IconON = "Interface\\AddOns\\Decursive\\iconON.tga";
-DC.IconOFF = "Interface\\AddOns\\Decursive\\iconOFF.tga";
+DC.IconON = "Interface\\AddOns\\Decursive\\iconON.blp";
+DC.IconOFF = "Interface\\AddOns\\Decursive\\iconOFF.blp";
for class in pairs(RAID_CLASS_COLORS) do
DC["CLASS_"..class] = class
@@ -506,7 +506,7 @@ function D:OnInitialize() -- Called on ADDON_LOADED -- {{{
DC.SpellsToUse[DS["COA_DEVOUR_CURSE"]] = { Types = {DC.CURSE}, IsBest = 0, Pet = false, } -- Cultist
DC.SpellsToUse[DS["COA_REBUKE"]] = { Types = {DC.MAGIC, DC.DISEASE, DC.POISON}, IsBest = 1, Pet = false, } -- Templar
DC.SpellsToUse[DS["COA_ANTIVENOM"]] = { Types = {DC.POISON}, IsBest = 0, Pet = false, } -- Venomancer (baseline, poison-only — curse-dispel in DBC doesn't fire server-side)
- DC.SpellsToUse[DS["COA_BLIGHT_ANTIDOTE"]] = { Types = {DC.POISON}, IsBest = 1, Pet = false, } -- Venomancer (MoA — same Antidote/Antivenom pattern as 800905; Venomancer curse-dispel needs the dedicated 524824 spell)
+ DC.SpellsToUse[DS["COA_BLIGHT_ANTIDOTE"]] = { Types = {DC.POISON}, IsBest = 1, Pet = false, } -- Venomancer (MoA — same Antidote/Antivenom pattern as 800905; the dedicated curse-cure 524824 is deliberately not registered: like Antivenom's DBC curse-dispel it is unverified to fire server-side)
DC.SpellsToUse[DS["COA_BURN_IMPURITIES"]] = { Types = {DC.DISEASE, DC.POISON}, IsBest = 0, Pet = false, } -- Pyromancer
DC.SpellsToUse[DS["COA_SURVIVAL_POTION"]] = { Types = {DC.DISEASE, DC.POISON}, IsBest = 0, Pet = false, } -- Ranger
DC.SpellsToUse[DS["COA_HEMAL_EXCISION"]] = { Types = {DC.CURSE}, IsBest = 0, Pet = false, } -- Bloodmage
@@ -517,6 +517,7 @@ function D:OnInitialize() -- Called on ADDON_LOADED -- {{{
DC.SpellsToUse[DS["COA_SOOTHING_TOUCH"]] = { Types = {DC.DISEASE, DC.POISON}, IsBest = 1, Pet = false, } -- Primalist
DC.SpellsToUse[DS["COA_SOOTHING_TOUCH_MOA"]] = { Types = {DC.DISEASE, DC.POISON}, IsBest = 1, Pet = false, } -- Primalist MoA
DC.SpellsToUse[DS["COA_CLEANSING_IDOL"]] = { Types = {DC.DISEASE, DC.POISON}, IsBest = 0, Pet = false, } -- Witch Doctor — Cleansing Idol (AoE, can't direct-target via click)
+ DC.SpellsToUse[DS["COA_HEXBREAK"]] = { Types = {DC.CURSE}, IsBest = 1, Pet = false, } -- Witch Doctor — Hexbreak (single-target curse removal, 40yd, instant; DBC type reads "Magic" but description+gameplay = Curse, cf. Soothing Touch)
DC.SpellsToUse[DS["COA_NANOBOT_CLEANSER"]] = { Types = {DC.DISEASE, DC.POISON}, IsBest = 1, Pet = false, } -- Tinker — Nanobot Cleanser (single-target, direct-castable)
DC.SpellsToUse[DS["COA_CAUTERIZE"]] = { Types = {DC.MAGIC, DC.POISON, DC.BLEED}, IsBest = 1, Pet = false, } -- Pyromancer — Cauterize (Magic + Poison via dummy; 1 Bleed via Dispel Mechanic, re-tagged by DC.BleedSpellIDs)
end
@@ -826,7 +827,7 @@ function D:OnDisable() -- When the addon is disabled by Ace
D.Status.Enabled = false;
D.DcrFullyInitialized = false;
- D:SetIcon("Interface\\AddOns\\Decursive\\iconOFF.tga");
+ D:SetIcon("Interface\\AddOns\\Decursive\\iconOFF.blp");
if ( D.profile.ShowDebuffsFrame) then
D.MFContainer:Hide();
@@ -986,6 +987,7 @@ function D:Configure() --{{{
CuringSpells[DC.POISON] = false;
CuringSpells[DC.DISEASE] = false;
CuringSpells[DC.CHARMED] = false;
+ CuringSpells[DC.BLEED] = false; -- CoA: reset so Cauterize doesn't ghost after respec
local Spell, spellName, Type, _;
local GetSpellInfo = _G.GetSpellInfo;
@@ -1186,12 +1188,13 @@ function D:GetSpellsTranslations(FromDIAG)
["COA_PRAYER_OF_ELUNE"] = { 801987, }, -- Starcaller (Magic)
["COA_WITCHBLOOD_TONIC"] = { 802278, }, -- WitchHunter (Curse)
["COA_SANCTIFY"] = { 524968, }, -- Sun Cleric (Magic, Poison, Disease)
- ["COA_MENDING_TOUCH"] = { 524971, }, -- Primalist passive (Soothing Touch +Poison +Disease, Neutralizing Touch self-heal on Magic dispel)
+ ["COA_MENDING_TOUCH"] = { 524971, }, -- Primalist passive (Soothing Touch +Poison +Disease, Neutralizing Touch self-heal on Magic dispel) — intentionally translation-only, never registered in SpellsToUse (passive, not castable)
["COA_SOOTHING_TOUCH"] = { 801439, }, -- Primalist (Poison, Disease — DBC type "Magic" doesn't fire; trust gameplay)
["COA_SOOTHING_TOUCH_MOA"] = { 520841, }, -- Primalist MoA (Poison, Disease — same Soothing-Touch variant pattern as Venomancer's Antivenom/Blight pair)
["COA_CLEANSING_IDOL"] = { 504840, }, -- Witch Doctor (Disease, Poison — AoE idol, 30yd, ticks every 3s)
+ ["COA_HEXBREAK"] = { 806240, }, -- Witch Doctor (Curse — single-target, 40yd, instant; DBC type "Magic" doesn't fire, trust description+gameplay)
["COA_NANOBOT_CLEANSER"] = { 502537, }, -- Tinker / Invention (Disease, Poison — single-target, 40yd, ticks every 3s for 15s)
- ["COA_CAUTERIZE"] = { 560749, }, -- Pyromancer (Magic + Poison via dummy script; also removes 1 bleed via Dispel Mechanic — bleed not modelled by Decursive)
+ ["COA_CAUTERIZE"] = { 560749, }, -- Pyromancer (Magic + Poison via dummy script; 1 Bleed via Dispel Mechanic — DC.BLEED, re-tagged by DC.BleedSpellIDs)
}
for k,v in pairs(customSpells) do Spells[k] = v end
end
diff --git a/Decursive/Dcr_LiveList.xml b/Decursive/Dcr_LiveList.xml
index 982cc0a..cdc890d 100644
--- a/Decursive/Dcr_LiveList.xml
+++ b/Decursive/Dcr_LiveList.xml
@@ -84,7 +84,7 @@
-
+
@@ -97,7 +97,7 @@
-
+
diff --git a/Decursive/Dcr_opt.lua b/Decursive/Dcr_opt.lua
index 82b5d24..c8fcfb5 100644
--- a/Decursive/Dcr_opt.lua
+++ b/Decursive/Dcr_opt.lua
@@ -1877,6 +1877,7 @@ function D:SetCureOrder (ToChange)
[DC.POISON] = D.options.args.CureOptions.args.CurePoison,
[DC.DISEASE] = D.options.args.CureOptions.args.CureDisease,
[DC.CHARMED] = D.options.args.CureOptions.args.CureCharmed,
+ [DC.BLEED] = D.options.args.CureOptions.args.CureBleed, -- CoA: added with DC.BLEED
}
end
diff --git a/Decursive/Decursive.lua b/Decursive/Decursive.lua
index 9e7754d..34de0f6 100644
--- a/Decursive/Decursive.lua
+++ b/Decursive/Decursive.lua
@@ -397,7 +397,7 @@ do
if D.LiveList.TestItemDisplayed and i == 1 and Unit ~= "target" and Unit ~= "mouseover" and UnitExists(Unit) then
D:Debug("|cFFFF0000Setting test debuff for %s (debuff %d)|r", Unit, i);
- return "Test item", DC.TypeNames[D.Status.ReversedCureOrder[1]], 2, "Interface\\AddOns\\Decursive\\iconON.tga", D.LiveList.TestItemDisplayed + 70;
+ return "Test item", DC.TypeNames[D.Status.ReversedCureOrder[1]], 2, "Interface\\AddOns\\Decursive\\iconON.blp", D.LiveList.TestItemDisplayed + 70;
end
--D:Debug("|cFFFF0000Getting debuffs for %s , id = %d|r", Unit, i);
diff --git a/Decursive/Libs/AceGUI-3.0/widgets/AceGUIWidget-Keybinding.lua b/Decursive/Libs/AceGUI-3.0/widgets/AceGUIWidget-Keybinding.lua
index ee5a83b..07c8f76 100644
--- a/Decursive/Libs/AceGUI-3.0/widgets/AceGUIWidget-Keybinding.lua
+++ b/Decursive/Libs/AceGUI-3.0/widgets/AceGUIWidget-Keybinding.lua
@@ -199,7 +199,7 @@ local function Constructor()
button:SetScript("OnKeyDown", Keybinding_OnKeyDown)
button:SetScript("OnMouseDown", Keybinding_OnMouseDown)
button:SetScript("OnMouseWheel", Keybinding_OnMouseWheel)
- button:SetScript("OnGamePadButtonDown", Keybinding_OnKeyDown)
+ pcall(button.SetScript, button, "OnGamePadButtonDown", Keybinding_OnKeyDown)
button:SetPoint("BOTTOMLEFT")
button:SetPoint("BOTTOMRIGHT")
button:SetHeight(24)
diff --git a/Decursive/Textures/BackDrop.blp b/Decursive/Textures/BackDrop.blp
new file mode 100644
index 0000000..aee00f3
Binary files /dev/null and b/Decursive/Textures/BackDrop.blp differ
diff --git a/Decursive/Textures/BackDrop.tga b/Decursive/Textures/BackDrop.tga
deleted file mode 100644
index c532d41..0000000
Binary files a/Decursive/Textures/BackDrop.tga and /dev/null differ
diff --git a/Decursive/Textures/GoldBorder.blp b/Decursive/Textures/GoldBorder.blp
new file mode 100644
index 0000000..4c0f30f
Binary files /dev/null and b/Decursive/Textures/GoldBorder.blp differ
diff --git a/Decursive/Textures/GoldBorder.tga b/Decursive/Textures/GoldBorder.tga
deleted file mode 100644
index 159a06e..0000000
Binary files a/Decursive/Textures/GoldBorder.tga and /dev/null differ
diff --git a/Decursive/iconOFF.blp b/Decursive/iconOFF.blp
new file mode 100644
index 0000000..8c37e65
Binary files /dev/null and b/Decursive/iconOFF.blp differ
diff --git a/Decursive/iconOFF.tga b/Decursive/iconOFF.tga
deleted file mode 100644
index 6207de6..0000000
Binary files a/Decursive/iconOFF.tga and /dev/null differ
diff --git a/Decursive/iconON.blp b/Decursive/iconON.blp
new file mode 100644
index 0000000..5c88fc0
Binary files /dev/null and b/Decursive/iconON.blp differ
diff --git a/Decursive/iconON.tga b/Decursive/iconON.tga
deleted file mode 100644
index dfe7563..0000000
Binary files a/Decursive/iconON.tga and /dev/null differ