mirror of
https://github.com/otland/forgottenserver
synced 2026-08-15 16:32:07 -04:00
43 lines
793 B
Lua
43 lines
793 B
Lua
local raids = {}
|
|
|
|
Raid = setmetatable({
|
|
getRaids = function() return raids end
|
|
}, {
|
|
__call = function(self, name)
|
|
local events = {}
|
|
|
|
local obj = {
|
|
margin = 0,
|
|
name = name,
|
|
repeats = false,
|
|
}
|
|
|
|
function obj:__newindex(key, value)
|
|
if key == "interval" or key == "margin" or key == "repeats" then
|
|
rawset(self, key, value)
|
|
else
|
|
io.write("[Warning] Invalid attribute for raid: " .. key .. ". Ignoring...\n")
|
|
end
|
|
end
|
|
|
|
function obj:addEvent(delay, fn)
|
|
events[#events] = { delay = delay, fn = fn }
|
|
end
|
|
|
|
function obj:execute()
|
|
for _, event in ipairs(events) do
|
|
addEvent(event.delay, event.fn)
|
|
end
|
|
end
|
|
|
|
function obj:register()
|
|
raids[self.name] = self
|
|
end
|
|
|
|
function obj:unregister()
|
|
raids[self.name] = nil
|
|
end
|
|
|
|
return obj
|
|
end
|
|
})
|