ChildHandbookUpgradeView = ChildHandbookUpgradeView or BaseClass(BaseView) local ChildHandbookUpgradeView = ChildHandbookUpgradeView -- ChildHandbookUpgradeView.TabData = { -- [1] = {name = "人物", level = 1}, -- [2] = {name = "人", level = 1}, -- [3] = {name = "物", level = 1}, -- } function ChildHandbookUpgradeView:__init() self.base_file = "child" self.layout_file = "ChildHandbookUpgradeView" self.layer_name = "Activity" self.destroy_imm = true self.use_background = true --全屏界面默认使用这个参数 self.hide_maincancas = true self.change_scene_close = true self.append_to_ctl_queue = false --是否要添加进界面堆栈 self.need_show_money = false --是否要显示顶部的金钱栏 self.is_set_zdepth = true self.model = ChildModel:GetInstance() self.blur_activity_bg = true self.attr_item_list = {} self.attr_item_sum_list = {} self.suit_tab_item_list = {} self.load_callback = function () self:LoadSuccess() self:AddEvent() end self.open_callback = function ( ) self:OpenSuccess() end self.switch_callback = function(index) self:SwitchTab(index) end self.destroy_callback = function ( ) self:DestroySuccess() end end function ChildHandbookUpgradeView:Open( ) --self.data = data BaseView.Open(self) end function ChildHandbookUpgradeView:LoadSuccess() local nodes = { "con_money", "container/bg:raw", "container/btn_level_up:obj", "container/btn_level_up/red_dot_up:obj", -- "container/collectCon/fight_num:txt", "container/collectCon/collect_num:tmp","container/collectCon/percent_num:tmp", "container/collectCon:obj", "container/levelCon:obj", "container/collectCon/ScrollView_attr/Viewport/Content_attr_collect", "container/levelCon/ScrollView_attr/Viewport/Content_attr_level", "container/levelCon/level_num:txt", "container/levelCon/level_num_after:txt", -- "container/levelCon/fight_num_level:txt", "container/levelCon/money_con/money_num:tmp", "container/ScrollView_item/Viewport/Content_item", "container/levelCon/effectCon", "container/levelCon/maxTxt:obj:tmp", } self:GetChildren(nodes) local closeWin_callback = function() self:Close() end self.tabWindowComponent = UITabWindow.New(self.transform,{},select_callback,closeWin_callback, self.background_wnd,self.container, UITabWindow.SizeSmallNoTab, false,nil,true) self.tabWindowComponent:SetBackgroundRes("child_handbook_upgrade_bg_945_533") self.tabWindowComponent:SetTitleText("玩具加成") self.tabWindowComponent:ChangeShowFlag("Child") --lua_resM:setOutsideRawImage(self,self.bg_raw,GameResPath.GetChildIcon("child_hb_upgrade_bg"),false) local child_coin_good_id = self.model:GetChildCoinId() self.model:Fire(ChildConst.UPDATA_CHILD_COIN_NUM,GoodsModel:getInstance():GetTypeGoodsNum(child_coin_good_id)) end function ChildHandbookUpgradeView:AddEvent() local function onBreakSuccess() if self:HasOpen() then self:UpdateView() end end self.onBreakSuccess_id = GlobalEventSystem:Bind(EventName.GOODS_DECOMPOSE_RESULT, onBreakSuccess) local function updata_child_dif_suit_info_fun() self:SetBoxDesCon() end self.updata_child_dif_suit_info = self.model:Bind(ChildConst.UPDATA_CHILD_HB_SUIT_INFO, updata_child_dif_suit_info_fun) -- local function updata_Child_RED_DOT_VIEW_fun(id) if id ~= ChildConst.TabId.ChildHandbook then return end self:UpdateRedDot() end self.updata_Child_RED_DOT_VIEW_id = self.model:Bind(ChildConst.Child_RED_DOT_VIEW, updata_Child_RED_DOT_VIEW_fun) --红点更新 local function onBtnClickHandler(target, x, y) if target == self.btn_level_up_obj then self.model:Fire(ChildConst.CHILD_REQ_EVENT, 16537) -- 升级 end end AddClickEvent(self.btn_level_up_obj, onBtnClickHandler) end function ChildHandbookUpgradeView:OpenSuccess() self:UpdateView() end function ChildHandbookUpgradeView:UpdateView() self:SetBoxDesCon() self:UpdateRedDot() local toy_suit_list = self.model:GetToySuitInfo() local function callback( item ) end for k,v in pairs(toy_suit_list) do local item = self.suit_tab_item_list[k] if item == nil then item = ChildHandbookSuitItem.New(self.Content_item) self.suit_tab_item_list[k] = item end --local data = self.model:GetConfigChildSkillInfo(v.skill_id,v.skill_lv) self.suit_tab_item_list[k]:SetData(v,callback) end end function ChildHandbookUpgradeView:SetBoxDesCon( ) --改为整个玩具箱的而不是单独的 local handbook_list = self.model:GetSuitToyList() local level = self.model:GetSuitToyBoxLv() self.level_num_after_txt.text = level + 1 local last_level = tonumber(self.level_num_txt.text) self.level_num_txt.text = level local up_grade_list = self.model:GetChildHandbookToyUpgradeList(level) -- self.fight_num_level_txt.text = "f"..GetFighting(stringtotable(up_grade_list.add_attr)) self.money_num_tmp.text = stringtotable(up_grade_list.next_cost)[1][3] local up_grade_list_next = self.model:GetChildHandbookToyUpgradeList(level+1) if TableSize(up_grade_list_next) <= 0 then--满级 self.level_num_after_txt.text = "" self.maxTxt_tmp.text = "已满级" else self.maxTxt_tmp.text = "" end if self.has_init then if (not self.show_fight_effect) and last_level < level then self.show_fight_effect = true local function call_back( ) self.show_fight_effect = false end self:ClearUIEffect(self.effectCon) self:AddUIEffect("ui_jinjieshuxing", self.effectCon, self.layer_name, Vector3(-220, 20, 0), 1.2, false, 0.75, nil, call_back) end end if not self.has_init then -- 第一次初始化标志 self.has_init = true end ----升级属性 --local attr_list = self.model:GetChildVehicleShowAttrList(vehicle_id,stage) local attr_list = self.model:GetChildHandbookItemAttrList(level) -- stringtotable(item.data.attr_list) for i=1,#self.attr_item_list do self.attr_item_list[i]:SetVisible(false) end for k,v in pairs(attr_list) do local item = self.attr_item_list[k] if item == nil then item = ChildHandbookAttrItem.New(self.Content_attr_level) self.attr_item_list[k] = item end self.attr_item_list[k]:SetData(v.attr_id,v.num_before,v.num_after) item:SetVisible(true) end --------总属性,总进度 local suitRewardList = self.model:GetChildSuitRewardList() local progress = 0 local collectMaxNum = 0 for k,v in pairs(suitRewardList) do progress = progress + v.progress collectMaxNum = collectMaxNum + v.collectMaxNum end self.collect_num_tmp.text = "("..progress.."/"..collectMaxNum..")" self.percent_num_tmp.text = (progress*100 / collectMaxNum).."%" --------总战力计算,总属性显示handbook_list local sum_attr_list = {} for k,v in pairs(handbook_list) do if v.isActive then local attr_list = stringtotable(v.attr_list) for k,v_attr in pairs(attr_list) do local isHad = false for k,v_sum in pairs(sum_attr_list) do if v_sum[1] == v_attr[1] then isHad = true v_sum[2] = v_sum[2] + v_attr[2] end end if isHad == false then table.insert(sum_attr_list,v_attr) end end end end for i=1,#self.attr_item_sum_list do self.attr_item_sum_list[i]:SetVisible(false) end for k,v in pairs(sum_attr_list) do local item = self.attr_item_sum_list[k] if item == nil then item = ChildHandbookAttrItem.New(self.Content_attr_collect) self.attr_item_sum_list[k] = item end self.attr_item_sum_list[k]:SetData(v[1],v[2],"collect") item:SetVisible(true) end -- self.fight_num_txt.text = "f"..GetFighting(sum_attr_list) end function ChildHandbookUpgradeView:SwitchTab( index ) end function ChildHandbookUpgradeView:UpdateRedDot( ) local red_dot_list = self.model:GetRedDotChildHandbook() self.red_dot_up_obj:SetActive(red_dot_list.is_level_up) end function ChildHandbookUpgradeView:DestroySuccess( ) if self.onBreakSuccess_id then self.model:UnBind(self.onBreakSuccess_id) self.onBreakSuccess_id = nil end if self.updata_child_dif_suit_info then self.model:UnBind(self.updata_child_dif_suit_info) self.updata_child_dif_suit_info = nil end if self.updata_Child_RED_DOT_VIEW_id then self.model:UnBind(self.updata_Child_RED_DOT_VIEW_id) self.updata_Child_RED_DOT_VIEW_id = nil end if self.tabWindowComponent then self.tabWindowComponent:DeleteMe() self.tabWindowComponent = nil end for i, v in ipairs(self.attr_item_sum_list) do v:DeleteMe() v = nil end self.attr_item_sum_list = {} for i, v in ipairs(self.suit_tab_item_list) do v:DeleteMe() v = nil end self.suit_tab_item_list = {} for i, v in ipairs(self.attr_item_list) do v:DeleteMe() v = nil end self.attr_item_list = {} end