---@class SpellTrait local SpellTrait = { func = nil, } SpellTrait.__index = SpellTrait -- Constructor ---@param func function ---@return SpellTrait function SpellTrait:New(func) local self = setmetatable({}, SpellTrait) self.func = func return self end -- Evaluate the trait ---@param spell Spell ---@return boolean function SpellTrait:Evaluate(spell) return self.func(spell) end return SpellTrait