PGRData/Script/matrix/xentity/xstronghold/XStrongholdPlugin.lua

81 lines
No EOL
1.8 KiB
Lua

local type = type
local pairs = pairs
local ipairs = ipairs
local isNumberValid = XTool.IsNumberValid
local tableInsert = table.insert
local clone = XTool.Clone
local Default = {
_Id = 0, --插件Id
_Count = 0, --已使用数量
_CostElectric = 0, --总消耗电能
}
local XStrongholdPlugin = XClass(nil, "XStrongholdPlugin")
function XStrongholdPlugin:Ctor(id)
for key, value in pairs(Default) do
if type(value) == "table" then
self[key] = {}
else
self[key] = value
end
end
self._Id = id
end
function XStrongholdPlugin:GetCostElectric()
return self._CostElectric
end
function XStrongholdPlugin:GetCostElectricSingle()
return XStrongholdConfigs.GetPluginUseElectric(self._Id)
end
function XStrongholdPlugin:GetAddAbility()
return self._Count * XStrongholdConfigs.GetPluginAddAbility(self._Id)
end
function XStrongholdPlugin:SetCount(count)
self._Count = count or self._Count
self._CostElectric = self._Count * self:GetCostElectricSingle()
end
function XStrongholdPlugin:GetCount()
return self._Count
end
function XStrongholdPlugin:GetCountLimit()
return XStrongholdConfigs.GetPluginCountLimit(self._Id)
end
function XStrongholdPlugin:IsEmpty()
return not isNumberValid(self._Count)
end
function XStrongholdPlugin:GetId()
return self._Id
end
function XStrongholdPlugin:GetIcon()
return XStrongholdConfigs.GetPluginIcon(self._Id)
end
function XStrongholdPlugin:GetName()
return XStrongholdConfigs.GetPluginName(self._Id)
end
function XStrongholdPlugin:GetDesc()
return XStrongholdConfigs.GetPluginDesc(self._Id)
end
function XStrongholdPlugin:Compare(cPlugin)
if not cPlugin then return false end
return self._Id == cPlugin:GetId()
and self._Count == cPlugin:GetCount()
end
return XStrongholdPlugin