c1_lua/lua/app/userdata/equip/equip_data.lua
2023-07-20 16:20:11 +08:00

86 lines
2.1 KiB
Lua

local EquipData = class("EquipData", BaseData)
local EquipEntity = require "app/userdata/equip/equip_entity"
function EquipData:ctor()
self.data.isDirty = false
end
function EquipData:clear()
end
function EquipData:init(data)
data = data or GConst.EMPTY_TABLE
Logger.logHighlight("装备数据")
Logger.printTable(data)
self.equips = {}
if not data.HeroesEquips then
return
end
for heroId, equip in pairs(data.HeroesEquips) do
for part, level in pairs(equip.Equips) do
self:addEquip(heroId, part, level)
end
end
end
function EquipData:setDirty()
self.data.isDirty = not self.data.isDirty
end
-- 武器功能是否开启
function EquipData:isWeaponOpen(showToast)
if not ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.EQUIP_WEAPON, not showToast) then
return false
end
return true
end
-- 防具功能是否开启
function EquipData:isArmorOpen(showToast)
if not ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.EQUIP_ARMOR, not showToast) then
return false
end
return true
end
function EquipData:addEquip(heroId, part, level)
if not self.equips[heroId] then
self.equips[heroId] = {}
end
if self.equips[heroId][part] then
return
end
self.equips[heroId][part] = self:createEntity(heroId, part, level)
end
function EquipData:createEntity(heroId, part, level)
return EquipEntity:create(heroId, part, level)
end
function EquipData:getAllEquips()
return self.equips
end
function EquipData:getEquip(id, part)
if not self.equips[id] then
self.equips[id] = {}
end
if not self.equips[id][part] then
self.equips[id][part] = self:createEntity(id, part)
end
return self.equips[id][part]
end
-- 装备升级
function EquipData:onUpgradeEquip(heroId, part)
local entity = self:getEquip(heroId, part)
if not entity then
return
end
entity:onLevelUp()
DataManager.HeroData:getHeroById(heroId):setEquipAttrDirty()
EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.EQUIP_UPGRADE_SUCCESS)
end
return EquipData