116 lines
2.8 KiB
Plaintext
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
|