Files
wow-weakauras/Random Trash/Interesting Shit/SeaStar.lua
2024-08-24 22:43:07 +02:00

135 lines
3.3 KiB
Lua

--Text?
function()
if not WeakAuras.IsOptionsOpen() then
WeakAuras.regions[aura_env.id].region.text2:SetText(string.format("Shuffle in %i casts", 10-aura_env.casts))
-- return math.floor(((aura_env.rate - aura_env.success) / (10 - aura_env.casts) * 100) + 0.5) .. "%"
return aura_env.rate - aura_env.success
else
return "0"
end
end
--ENCOUNTER_START COMBAT_LOG_EVENT_UNFILTERED ENCOUNTER_END
function(event, ...)
if event == "ENCOUNTER_START" then
local id, id2 = ...
if not id then return end
--print("COMBAT STARTED")
if GetNumGroupMembers() <= 5 then return end
local specID = GetSpecializationInfo(GetSpecialization())
if not aura_env.procRate[specID] then return end
aura_env.reset()
aura_env.rate = aura_env.procRate[specID]
return true
elseif event == "COMBAT_LOG_EVENT_UNFILTERED" then
local _, type, _, source, _, _, _, dest, _, _, _, spell, name = ...
if type == "SPELL_CAST_SUCCESS" and source == aura_env.player and aura_env.spells[spell] then
if not aura_env.checkBuff() then
aura_env.casts = aura_env.casts + 1
end
if aura_env.casts >= 10 then
aura_env.reset()
end
elseif (type == "SPELL_AURA_APPLIED" and
dest == aura_env.player and
(spell >= 242459 and spell <= 242474)) then
-- Because Blizzard needed 8 auras for one proc.
aura_env.success = aura_env.success + 1
if aura_env.casts == 0 then
aura_env.success = 0
end
end
end
end
--Untrigger
function(event, ...)
if event == "ENCOUNTER_END" then
local id, id2 = ...
if not id then return end
print("ENCOUNTER ENDED")
print(...)
return true
end
end
--Name
function()
return string.format("Shuffle in %i casts", 10-aura_env.casts)
end
--Every Frame
function()
return (aura_env.rate - aura_env.success) == 0 and not aura_env.checkBuff()
end
--INIT
--[[
Author: Voulk (Discord: Voulk#1858)
Wago Link: X
You can read more on the new deck based RNG system here:
https://questionablyepic.com/deck-RNG
]]
aura_env.player = UnitGUID"player"
aura_env.buffID = 0
aura_env.rate = 0
aura_env.reset = function()
aura_env.deckSize = 10
aura_env.success = 0
aura_env.casts = 0
end
aura_env.reset()
aura_env.spells =
{
[1064] = true, -- chain heal
[48438] = true, -- wild growth
[596] = true, -- prayer of healing
[85222] = true, -- light of dawn
[194509] = true, -- pw:r
[191837] = true -- essence font
}
aura_env.procRate =
{
[105] = 5, -- rdruid
[270] = 5, -- mw
[256] = 6, -- disc
[257] = 4, -- holy
[264] = 4, -- rsham
[65] = 4 -- hpal
}
-- Checks if the aura is active. If it is, we had a proc.
aura_env.checkBuff = function()
local _, _, _, _, _, duration, expTime = UnitBuff("player", "Ocean's Embrace")
if duration then
return true
end
end