Necrosis CATA , WOLTK, TBC, Classic , Mastery, SOD

Necrosis CATA , WOLTK, TBC, Classic , Mastery, SOD

675k Downloads

Soul shards are not being deleted automatically

zackeryps opened this issue · 6 comments

commented

I tried both settings for this both independently and in tandem and no combination seemed to work.

edit: https://wowpedia.fandom.com/wiki/API_DeleteCursorItem
Patch 9.0.2 / API changes (2020-11-17): Requires a hardware event. A single hw event is sufficient for destroying multiple items.

commented

round-about macro to get almost the same functionality:
#showtooltip
/cast Drain Soul(Rank 1)
/run PickupContainerItem(4,24) DeleteCursorItem()

Change the 4 to whatever slot your soul bag is.
Change the 24 to whatever size your soul bag is.
In my case, my soul bag is in the furthest slot from the main backpack (4) and I am using the 24 slot 'Felcloth Bag'.

commented

This got me thinking that it may be possible to check and delete shards on cast of drain soul.
Some pseudocode of my thinking:
If spellcast == drainsoul AND (soulbag == full OR shards_in_bags >= shard_limit) then
delete extra shards + 1 --make room for an incoming soulshard
This would mimic the behavior of the macro.

commented
commented

Thanks for the add-on!

@CKNOEP Would it be a good idea to add a necrosis command that triggers the same event/action that happens when you ctrl+click? Something like /necrosis ss.

Then we can add this to a macro, but still keep the nice logic of necrosis that forces them into a specific bag and limits them to X amount of shards.

commented

I've managed to do that, by going:

function Necrosis.SlashHandler(arg1)
	if arg1:lower():find("recall") then
		Necrosis:Recall()
	elseif arg1:lower():find("ss") then
	        Necrosis:BagExplore()
	elseif arg1:lower():find("reset") and not InCombatLockdown() then
		NecrosisConfig = {}
		ReloadUI()
	elseif arg1:lower():find("glasofruix") then
		NecrosisConfig.Smooth = not NecrosisConfig.Smooth
		Necrosis:Msg("SpellTimer smoothing  : <lightBlue>Toggled", "USER")
	else
		Necrosis:OpenConfigPanel()
	end
end

Then I can just add /necrosis ss to my macro.

commented

Sorry, with new version of extensions that would be:

diff --git a/Initialize.lua b/Initialize.lua
index 45ce971..2dc59ee 100644
--- a/Initialize.lua
+++ b/Initialize.lua
@@ -258,7 +258,8 @@ end
 function Necrosis.SlashHandler(arg1)
        if arg1:lower():find("recall") then
                Necrosis:Recall()
-               
+       elseif arg1:lower():find("ss") then
+               Necrosis:DeleteShards()
        elseif arg1:lower():find("reset") and not InCombatLockdown() then
                NecrosisConfig = {}
                ReloadUI()

And then it would probably also need to be documented in all the localization files.

Would you accept such a PR @CKNOEP , or should I just patch it locally? :)