eluna-scripts-ornfelt/lua/WowEmulationScriptPack/Lua/RandomSpell/RandomSpellCli.lua
2024-09-23 07:59:23 +02:00

108 lines
No EOL
2.7 KiB
Lua

local AIO = AIO or require("AIO")
if AIO.AddAddon() then
return
end
local AioHandler = AIO.AddHandlers("RandomSpell", {})
MainFrame = CreateFrame("Frame", "MainFrame", UIParent)
local frame = MainFrame
-- FUNCTION FOR WAITING AND EXECUTING ANOTHER FUNCTION
local waitTable = {};
local waitFrame = nil;
function frame_wait(delay, func, ...)
if(type(delay)~="number" or type(func)~="function") then
return false;
end
if(waitFrame == nil) then
waitFrame = CreateFrame("Frame","WaitFrame", UIParent);
waitFrame:SetScript("onUpdate",function (self,elapse)
local count = #waitTable;
local i = 1;
while(i<=count) do
local waitRecord = tremove(waitTable,i);
local d = tremove(waitRecord,1);
local f = tremove(waitRecord,1);
local p = tremove(waitRecord,1);
if(d>elapse) then
tinsert(waitTable,i,{d-elapse,f,p});
i = i + 1;
else
count = count - 1;
f(unpack(p));
end
end
end);
end
tinsert(waitTable,{delay,func,{...}});
return true;
end
-------------------------------------------------
function AioHandler.ShowFrame(player)
UIFrameFadeIn(frame, 1, 0, 1)
frame:Show()
frame_wait(5, FadeOutFrame)
end
function FadeOutFrame(player)
UIFrameFadeOut(frame, 0.5, 1, 0)
frame_wait(0.5, HideFrame)
end
function HideFrame(player)
frame:Hide()
end
function AioHandler.LoadMsg(player, roll)
--return rolled
CreateLink(roll)
end
-- FRAME DESIGN
-------------------------
frame:SetSize(300, 350)
frame:RegisterForDrag("LeftButton")
frame:SetPoint("TOP")
frame:SetToplevel(true)
frame:SetClampedToScreen(true)
-- Enable dragging of frame
frame:SetMovable(false)
frame:EnableMouse(false)
frame:Hide()
--AIO.SavePosition(frame)
local title = frame:CreateFontString("title")
title:SetFont("Fonts\\FRIZQT__.TTF", 13)
--title:SetSize("190,5")
title:SetPoint("CENTER", frame, "CENTER", 0, 65)
title:SetText("|cffFFC125YOU ROLLED|r")
local spellframe = CreateFrame("GameTooltip", "temptt", frame, "GameTooltipTemplate")
local spellicon = CreateFrame("Frame", "spellicon", frame)
function CreateLink(spell)
spellframe:SetOwner(frame, "ANCHOR_NONE")
spellframe:SetPoint("TOP", frame, "CENTER", 2, -10)
spellframe:SetHeight(400)
spellframe:SetWidth(300)
name, rank, icon, castTime, minRange, maxRange, spellId = GetSpellInfo(spell)
spellicon:SetSize(55,55)
spellicon:SetPoint("CENTER", frame, "CENTER", 2, 20)
spellicon:SetBackdrop({
bgFile = icon
})
local linked = GetSpellLink(spell)
if linked == nil then
linked = GetSpellLink(78)
linked = gsub(linked, "78", spell)
end
spellframe:SetHyperlink(linked)
SendSystemMessage("You rolled: " .. tostring(linked));
end