ro-table/Assets/Resources/Script/Com/Data/Adventure/AdventureAchieveBagData.txt
2025-06-04 05:12:01 +08:00

116 lines
2.8 KiB
Plaintext

AdventureAchieveBagData = class("AdventureAchieveBagData")
autoImport("AdventureAchieveTab")
autoImport("AdventureAchieveData")
function AdventureAchieveBagData:ctor(tabClass,type)
self.tabs = {}
self.itemMapTab = {}
self.type = type
self.tableData = Table_Achievement[self.type]
self.wholeTab = AdventureAchieveTab.new()
self.wholeTab:setBagTypeData(self.type)
self:initTabDatas()
end
function AdventureAchieveBagData:initTabDatas( )
-- body
local categorys = AdventureAchieveProxy.Instance:getTabsByCategory(self.type)
if(categorys and categorys.childs)then
for k,v in pairs(categorys.childs) do
local tabData = AdventureAchieveTab.new(v.staticData)
self.tabs[k] = tabData
for i=1,#v.types do
self.itemMapTab[v.types[i].id] = tabData
end
end
end
end
function AdventureAchieveBagData:getTabByItemAndType( item )
-- body
return self.itemMapTab[item.staticData.id]
end
function AdventureAchieveBagData:AddItems(items,tabType)
if(tabType ~=nil) then
local tab = self.tabs[tabType]
if(tab ~=nil) then
tab:AddItems(items)
end
end
self.wholeTab:AddItems(items)
end
function AdventureAchieveBagData:AddItem(item)
local tab = self:getTabByItemAndType(item)
if(tab ~=nil) then
tab:AddItem(item)
item.tabData = tab.tab
end
self.wholeTab:AddItem(item)
end
function AdventureAchieveBagData:UpdateItems(manualData)
local serverItems = manualData.items
for i=1,#serverItems do
local sItem = serverItems[i]
-- print(sItem)
local item = self:GetItemByStaticID(sItem.id)
-- helplog("UpdateItems",sItem.id,sItem.process,sItem.finishtime)
-- helplog("UpdateItems",#sItem.params)
if(item ~=nil) then
self:UpdateItem(item,sItem)
local tab = self:getTabByItemAndType(item)
if(tab)then
tab:SetDirty()
end
else
item = AdventureAchieveData.new(sItem)
if(item.staticData)then
self:UpdateItem(item,sItem)
if(item.staticData ~= nil) then
local tab = self:getTabByItemAndType(item)
self:AddItem(item)
end
end
end
end
end
function AdventureAchieveBagData:UpdateItem(item,serverItem)
item = item or self:GetItemByStaticID(serverItem.id)
if(item ~=nil) then
item:updateServerData(serverItem)
local tab = self:getTabByItemAndType(item)
if(tab ~=nil) then
tab:SetDirty(true)
end
self.wholeTab:SetDirty(true)
end
end
function AdventureAchieveBagData:GetTab(tabType)
if(tabType ~=nil) then
local tab = self.tabs[tabType]
if(tab ~=nil) then
return tab
end
end
return self.wholeTab
end
--tabtype 見gameconfig下的itempage和itemfashion
function AdventureAchieveBagData:GetItems(tabType)
if(tabType ~=nil) then
local tab = self.tabs[tabType]
if(tab ~=nil) then
return tab:GetItems()
end
end
return self.wholeTab:GetItems()
end
function AdventureAchieveBagData:GetItemByStaticID(id)
return self.wholeTab:GetItemByStaticID(id)
end