238 lines
7.4 KiB
Plaintext
238 lines
7.4 KiB
Plaintext
AdventureCookPage = class("AdventureCookPage", SubView)
|
|
|
|
autoImport("WrapCellHelper")
|
|
autoImport("AdventureFoodRecipeCell")
|
|
autoImport("PersonalPicturCombineItemCell")
|
|
autoImport("PersonalPictureDetailPanel")
|
|
|
|
AdventureCookPage.ClickId = {
|
|
RefreshIndicator = 1,
|
|
CheckSelect = 2,
|
|
}
|
|
|
|
AdventureCookPage.DataType = {
|
|
UnlockRecipe = 1,
|
|
RecentCook = 2,
|
|
}
|
|
|
|
local tempVector3 = LuaVector3.zero
|
|
|
|
function AdventureCookPage:Init()
|
|
self:AddViewEvts();
|
|
self:initView();
|
|
self:initData()
|
|
end
|
|
|
|
function AdventureCookPage:OnEnter()
|
|
self:ResetData()
|
|
end
|
|
|
|
function AdventureCookPage:ResetData()
|
|
self:updateCookTitle()
|
|
self:updateUnlockRecipe()
|
|
self:updateRecentCook()
|
|
self:updateNextLevel()
|
|
self.FoodPageProfileView:ResetPosition()
|
|
end
|
|
|
|
function AdventureCookPage:initData()
|
|
self:UpdateHead()
|
|
local UserName = self:FindComponent("UserName",UILabel)
|
|
UserName.text = Game.Myself.data:GetName()
|
|
self.FoodPageProfileView:ResetPosition()
|
|
end
|
|
|
|
function AdventureCookPage:UpdateHead( )
|
|
-- body
|
|
if(not self.targetCell)then
|
|
local headCellObj = self:FindGO("PortraitCell")
|
|
self.headCellObj = Game.AssetManager_UI:CreateAsset(Charactor.PlayerHeadCellResId,headCellObj)
|
|
tempVector3:Set(0,0,0)
|
|
self.headCellObj.transform.localPosition = tempVector3
|
|
self.targetCell = PlayerFaceCell.new(self.headCellObj)
|
|
|
|
self.targetCell:HideLevel()
|
|
self.targetCell:HideHpMp()
|
|
end
|
|
local headData = HeadImageData.new();
|
|
headData:TransByLPlayer(Game.Myself);
|
|
-- 臨時處理
|
|
headData.frame = nil;
|
|
headData.job = nil;
|
|
self.targetCell:SetData(headData);
|
|
end
|
|
|
|
function AdventureCookPage:updateCookTitle()
|
|
local apl = MyselfProxy.Instance:GetCurFoodCookerApl()
|
|
if(apl and apl.staticData)then
|
|
self.adventureProfileTitle.text = apl.staticData.Name
|
|
self.foodDescriptionText.text = string.format(ZhString.AdventureFoodPage_CookDes,apl.staticData.Name)
|
|
else
|
|
self.foodDescriptionText.text = ""
|
|
end
|
|
|
|
local userData = Game.Myself.data.userdata
|
|
if(userData)then
|
|
local exp = userData:Get(UDEnum.COOKER_EXP) or 1
|
|
local lv = userData:Get(UDEnum.COOKER_LV) or 1
|
|
self.lvLabel.text = string.format(ZhString.AdventureFoodPage_CookLv,lv)
|
|
local lvData = Table_CookerLevel[lv+1]
|
|
if(lvData)then
|
|
self.expLabel.text = exp.."/"..lvData.NeedExp
|
|
self.expSlider.value = exp/lvData.NeedExp
|
|
else
|
|
exp = Table_CookerLevel[lv] and Table_CookerLevel[lv].NeedExp or 0
|
|
self.expLabel.text = exp.."/"..exp
|
|
self.expSlider.value = 1
|
|
end
|
|
end
|
|
end
|
|
|
|
function AdventureCookPage:updateUnlockRecipe()
|
|
local items = FoodProxy.Instance.recipe_id_map
|
|
local list = {}
|
|
local dataMap = {}
|
|
for k,v in pairs(items) do
|
|
if(v.unlock)then
|
|
local hardLv = math.floor((v:GetDiffLevel()+1)/2)
|
|
local data = dataMap[hardLv]
|
|
if(data)then
|
|
data.count = data.count +1
|
|
else
|
|
data = {lv = hardLv,count = 1}
|
|
list [#list+1] = data
|
|
dataMap[hardLv] = data
|
|
end
|
|
end
|
|
end
|
|
table.sort(list,function ( l,r )
|
|
return l.lv < r.lv
|
|
end)
|
|
|
|
local bd = NGUIMath.CalculateRelativeWidgetBounds(self.foodDescriptionText.transform,false)
|
|
local height = bd.size.y
|
|
local x,y,z = LuaGameObject.GetLocalPosition(self.foodDescriptionText.transform)
|
|
|
|
if(#list ==0)then
|
|
self.cookProfileTitle.text = ""
|
|
self:Hide(self.secondContent)
|
|
y = y - height
|
|
else
|
|
y = y - height - 20
|
|
self:Show(self.secondContent)
|
|
self.cookProfileTitle.text = ZhString.AdventureFoodPage_UnlockRecipeTitle
|
|
self.cookProfileList:ResetDatas(list)
|
|
end
|
|
local x1,y1,z1 = LuaGameObject.GetLocalPosition(self.secondContent.transform)
|
|
tempVector3:Set(x1,y,z1)
|
|
self.secondContent.transform.localPosition = tempVector3
|
|
end
|
|
|
|
function AdventureCookPage:updateRecentCook()
|
|
local items = FoodProxy.Instance.last_cooked_foods
|
|
local list = {}
|
|
for i=1,#items do
|
|
local itemData = ItemData.new(nil,items[i])
|
|
if(itemData)then
|
|
list[#list+1] = itemData
|
|
end
|
|
end
|
|
|
|
local bd = NGUIMath.CalculateRelativeWidgetBounds(self.secondContent.transform,false)
|
|
local height = bd.size.y
|
|
local x,y,z = LuaGameObject.GetLocalPosition(self.secondContent.transform)
|
|
if(#list==0)then
|
|
self.recentFoodTitle.text = ""
|
|
self:Hide(self.thirdContent)
|
|
y = y - height
|
|
else
|
|
y = y - height - 20
|
|
self:Show(self.thirdContent)
|
|
self.recentFoodTitle.text = ZhString.AdventureFoodPage_RecentCookTitle
|
|
self.recentFoodList:ResetDatas(list)
|
|
end
|
|
local x1,y1,z1 = LuaGameObject.GetLocalPosition(self.thirdContent.transform)
|
|
tempVector3:Set(x1,y,z1)
|
|
self.thirdContent.transform.localPosition = tempVector3
|
|
end
|
|
|
|
function AdventureCookPage:updateNextLevel()
|
|
|
|
local bd = NGUIMath.CalculateRelativeWidgetBounds(self.thirdContent.transform,false)
|
|
local height = bd.size.y
|
|
local x,y,z = LuaGameObject.GetLocalPosition(self.thirdContent.transform)
|
|
y = y - height - 20
|
|
|
|
local x1,y1,z1 = LuaGameObject.GetLocalPosition(self.fourthContent.transform)
|
|
tempVector3:Set(x1,y,z1)
|
|
self.fourthContent.transform.localPosition = tempVector3
|
|
|
|
local userData = Game.Myself.data.userdata
|
|
if(userData)then
|
|
local lv = userData:Get(UDEnum.COOKER_LV) or 0
|
|
local lvData = Table_CookerLevel[lv+1]
|
|
local curLvData = Table_CookerLevel[lv]
|
|
if(lvData)then
|
|
local title = Table_Appellation[lvData.Title]
|
|
local Book = Table_Item[lvData.Book]
|
|
if(title)then
|
|
local slot = 0
|
|
if(curLvData)then
|
|
slot = lvData.RewardBagSlot - curLvData.RewardBagSlot
|
|
end
|
|
self.nextLevelDes.text = string.format(ZhString.AdventureFoodPage_NextLevelReward,title.Name,slot,Book.NameZh,lvData.SuccessRate)
|
|
else
|
|
self.nextLevelDes.text = "Table_Appellation can't find data by id:"..lvData.Title
|
|
end
|
|
else
|
|
self:Hide(self.fourthContent)
|
|
end
|
|
end
|
|
end
|
|
|
|
function AdventureCookPage:AddViewEvts()
|
|
self:AddListenEvt(ServiceEvent.SceneFoodUpdateFoodInfo,self.Server_UpdateFoodInfo)
|
|
self:AddListenEvt(ServiceEvent.SceneFoodUnlockRecipeNtf,self.Server_UnlockRecipeNtf)
|
|
self:AddListenEvt(MyselfEvent.MyDataChange,self.UpdateUserInfo)
|
|
end
|
|
|
|
function AdventureCookPage:Server_UnlockRecipeNtf()
|
|
self:updateUnlockRecipe()
|
|
end
|
|
|
|
function AdventureCookPage:UpdateUserInfo()
|
|
self:updateCookTitle()
|
|
self:updateNextLevel()
|
|
end
|
|
|
|
function AdventureCookPage:Server_UpdateFoodInfo()
|
|
self:updateRecentCook()
|
|
end
|
|
|
|
function AdventureCookPage:initView()
|
|
self.gameObject = self:FindGO("AdventureCookPage")
|
|
|
|
self.adventureProfileTitle = self:FindComponent("AdventureFoodTitleLabel",UILabel)
|
|
self.expLabel = self:FindComponent("expLabel",UILabel)
|
|
self.expSlider = self:FindComponent("expSlider",UISlider)
|
|
self.foodDescriptionText = self:FindComponent("FoodDescriptionText",UILabel)
|
|
self.lvLabel = self:FindComponent("lvLabel",UILabel)
|
|
|
|
self.secondContent = self:FindGO("secondContent")
|
|
self.cookProfileTitle = self:FindComponent("cookProfileTitle",UILabel)
|
|
self.cookProfileTitle.text = ZhString.AdventureFoodPage_UnlockRecipeTitle
|
|
self.cookProfileList =self:FindComponent("cookProfileList",UIGrid)
|
|
self.cookProfileList = UIGridListCtrl.new(self.cookProfileList,AdventureFoodRecipeCell,"AdventureFoodRecipeCell")
|
|
|
|
self.thirdContent = self:FindGO("thirdContent")
|
|
self.recentFoodTitle = self:FindComponent("recentFoodTitle",UILabel)
|
|
self.recentFoodTitle.text = ZhString.AdventureFoodPage_RecentCookTitle
|
|
self.recentFoodList = self:FindComponent("recentFoodList",UIGrid)
|
|
self.recentFoodList = UIGridListCtrl.new(self.recentFoodList,ItemCell,"RecentFoodItemCell")
|
|
|
|
self.fourthContent = self:FindGO("fourthContent")
|
|
self.nextLevelTitle = self:FindComponent("nextLevelTitle",UILabel)
|
|
self.nextLevelTitle.text = ZhString.AdventureFoodPage_NextLevelTitle
|
|
self.nextLevelDes = self:FindComponent("nextLevelDes",UILabel)
|
|
self.FoodPageProfileView = self:FindComponent("FoodPageProfileView",UIScrollView)
|
|
end |