|
|
- -- <*
- -- @Author: huangcong
- -- @Description: 装备橙色套装界面
- -- *>
- BagEquipOrangeSuitView = BagEquipOrangeSuitView or BaseClass(BaseView)
- local BagEquipOrangeSuitView = BagEquipOrangeSuitView
-
- function BagEquipOrangeSuitView:__init()
- self.base_file = "bag"
- self.layout_file = "BagEquipOrangeSuitView"
- self.layer_name = "Activity"
- self.destroy_imm = true
- self.use_background = true --全屏界面默认使用这个参数,非全屏界面自行设置
- self.is_set_zdepth = true
- self.model = EquipModel:getInstance()
- self.attr_item_list = {}
- self.attr_item_list2 = {}
- self.tab_list = {}
- self.look_suit_cache = {}--查看的套装换成 等会这里面的属性都要换成已查看
- self.max_item_num = 1
-
- self.load_callback = function ()
- self:LoadSuccess()
- self:AddEvent()
- end
- self.open_callback = function ( )
- self:UpdateView()
- end
- self.destroy_callback = function ( )
- self:DestroySuccess()
- end
- end
-
- function BagEquipOrangeSuitView:Open(suit_num)
- self.suit_num = suit_num or 1
- BaseView.Open(self)
- end
-
- function BagEquipOrangeSuitView:LoadSuccess()
- local nodes = {
- "bg:raw", "rightBtn:obj", "leftBtn:obj", "closeBtn:obj", "tabScroll/Viewport/tabCon", "tabScroll",
- --装备套件
- "fightText1:txt", "attrCon1", "suitNumText1:tmp", "fightTitleText1:tmp", "suitText1:tmp",
- --饰品套件
- "fightText2:txt", "attrCon2", "suitNumText2:tmp", "fightTitleText2:tmp", "suitText2:tmp",
- "leftRedDot:obj", "rightRedDot:obj",
- }
- self:GetChildren(nodes)
-
- self.fightTitleText1_tmp.text = "全集齐战力:"
- self.fightTitleText2_tmp.text = "全集齐战力:"
- lua_resM:setOutsideRawImage(self, self.bg_raw, GameResPath.GetViewBigBg("equip_bag_suit_bg"), false)
-
- if self.need_refreshData then
- self:UpdateView()
- end
- end
-
- function BagEquipOrangeSuitView:AddEvent()
- local function click_event(target)
- if target == self.closeBtn_obj then
- self:Close()
- elseif target == self.leftBtn_obj then -- 左
- self.suit_num = self.suit_num - 1
- if self.suit_num < 1 then
- Message.show("到最左边啦!","fault")
- self.suit_num = 1
- return
- end
- self:RefreshView()
- self:MoveTabItem()
- elseif target == self.rightBtn_obj then -- 右
- self.suit_num = self.suit_num + 1
- if self.suit_num > self.max_item_num then
- Message.show("到最右边啦!","fault")
- self.suit_num = self.max_item_num
- return
- end
- self:RefreshView()
- self:MoveTabItem()
- end
- end
- AddClickEvent(self.closeBtn_obj, click_event, LuaSoundManager.SOUND_UI.NONE)
- AddClickEvent(self.leftBtn_obj, click_event)
- AddClickEvent(self.rightBtn_obj, click_event)
-
-
- local function updateRedDotBool( ... )
- self:UpdateRedBool()
- end
- self:BindEvent(GlobalEventSystem,EventName.UPDATE_BAG_RED,updateRedDotBool)
- end
-
- function BagEquipOrangeSuitView:UpdateView()
- if self.is_loaded then
- self.need_refreshData = false
- else
- self.need_refreshData = true
- return
- end
- self:UpdateTabList()
- end
-
- --更新页签
- function BagEquipOrangeSuitView:UpdateTabList( )
- local tab_len = EquipModel.getInstance():GetCurrentOpenSuitSeries() or 1
- local function callback( index )
- if not index then return end
- self.suit_num = index
- self:RefreshView()
- end
- self.max_item_num = tab_len
- local offer_x = 65
- local offer_y = 0
- local x = 0
- local y = 0
- for i=1,tab_len do
- local item = self.tab_list[i]
- if item == nil then
- item = BagEquipOrangeSuitTab.New(self.tabCon, nil, self.layer_name)
- self.tab_list[i] = item
- x = (BagEquipOrangeSuitTab.Width + offer_x)* (i-1) + 1
- y = -3
- item:SetPosition(x,y)
- item:SetCallBackFunc(callback)
- end
- item:SetData(i,i)
- end
- callback(self.suit_num)
-
- SetSizeDeltaX(self.tabCon,(BagEquipOrangeSuitTab.Width + offer_x)*tab_len)
-
- local sum_x = (BagEquipOrangeSuitTab.Width + offer_x)*tab_len - offer_x
- local size_x = 596--y66
- if sum_x < size_x then
- local offer_x = (size_x - sum_x)/2
- for i,v in ipairs(self.tab_list) do
- local pos = v:GetPosition()
- v:SetPosition(pos.x+offer_x,pos.y)
- end
- end
-
- self:MoveTabItem()
- end
-
- function BagEquipOrangeSuitView:MoveTabItem( )
- local offer_x = 65
- if not self.is_first_open then
- self.is_first_open = true
- if self.suit_num > 3 then--大于三套就移动一下位置吧
- local offer_index = self.suit_num - 3
- SetAnchoredPositionX(self.tabCon,-offer_index*(BagEquipOrangeSuitTab.Width + offer_x))
- end
- else
- if self.suit_num > 3 then--大于三套就移动一下位置吧
- local offer_index = self.suit_num - 3
- SetAnchoredPositionX(self.tabCon,-offer_index*(BagEquipOrangeSuitTab.Width + offer_x))
- else
- SetAnchoredPositionX(self.tabCon,0)
- end
- end
- end
-
- function BagEquipOrangeSuitView:RefreshView( )
- local active_list = EquipModel:getInstance().suit_attr_active_list[self.suit_num]
- if active_list then
- for k,v in pairs(active_list) do
- for ii,vv in ipairs(v) do
- for ii,vvv in ipairs(vv) do
- vv[2] = false
- end
- end
- end
- end
-
- self.model:UpdateNewSuitAttrActive(false)--更新红点
-
- self.look_suit_cache[self.suit_num] = true
- for k,v in pairs(self.tab_list) do
- v:SetChoose(self.suit_num)
- end
-
- self.suitText1_tmp.text = string.format("%s代",self.suit_num)
- self.suitText2_tmp.text = string.format("%s代",self.suit_num)
-
- local cur = GoodsModel:getInstance():GetEquipCurSuitOrangeNum(self.suit_num,1)
- local max = 7
- self.suitNumText1_tmp.text = string.format("收集进度 <color=%s>%s/%s</color>",ColorUtil.GREEN_DARK,cur,max)
-
- local cur2 = GoodsModel:getInstance():GetEquipCurSuitOrangeNum(self.suit_num,2)
- local max2 = 3
- self.suitNumText2_tmp.text = string.format("收集进度 <color=%s>%s/%s</color>",ColorUtil.GREEN_DARK,cur2,max2)
- self:UpdateAttrItemList()
- self:UpdateAttrItemList2()
- end
-
- --更新红点
- function BagEquipOrangeSuitView:UpdateRedBool( )
- local leftBool = false
- if self.suit_num > 1 then
- for i=1,self.suit_num - 1 do
- leftBool = self.model.suit_attr_active_red_series_list[i] or leftBool
- end
- end
- self.leftRedDot_obj:SetActive(leftBool)
-
- local rightBool = false
- if self.suit_num < self.max_item_num then
- for i=self.suit_num + 1,self.max_item_num do
- rightBool = self.model.suit_attr_active_red_series_list[i] or rightBool
- end
- end
- self.rightRedDot_obj:SetActive(rightBool)
-
- for k,v in pairs(self.tab_list) do
- v:UpdateRedBool()
- end
- end
-
- --更新装备属性列表
- function BagEquipOrangeSuitView:UpdateAttrItemList( )
- for k,v in pairs(self.attr_item_list) do
- v:SetVisible(false)
- end
- local suit_cfg_list = self.model:GetEquipmentSuitCfg(self.suit_num,1)
- local cur_suit_id_num,suit_equip_pos_list = GoodsModel:getInstance():GetEquipSuitNum(self.suit_num,1)
- if not suit_cfg_list or TableSize(suit_cfg_list) == 0 then return end
-
- local anim_power_cfg = suit_cfg_list[#suit_cfg_list]
- local power = anim_power_cfg and self.model:MathGreatAttrFighting(anim_power_cfg.attr,anim_power_cfg.suit_num <= cur_suit_id_num) or 0
- self.fightText1_txt.text = power
-
- local item_list = suit_cfg_list
- local y_list = {0,-97,-200}
- local offer_x = 0
- local offer_y = 17
- local x = 0
- local y = 0
- for i, v in ipairs(item_list) do
- local item = self.attr_item_list[i]
- if item == nil then
- item = BagEquipOrangeSuitAttrItem.New(self.attrCon1,nil,self.layer_name)
- self.attr_item_list[i] = item
- end
- item:SetData(v,i,cur_suit_id_num)
- item:SetVisible(true)
- item:SetPosition(0,y_list[i])
- end
- end
-
- --更新饰品属性列表
- function BagEquipOrangeSuitView:UpdateAttrItemList2( )
- for k,v in pairs(self.attr_item_list2) do
- v:SetVisible(false)
- end
- local suit_cfg_list = self.model:GetEquipmentSuitCfg(self.suit_num,2)
- local cur_suit_id_num,suit_equip_pos_list = GoodsModel:getInstance():GetEquipSuitNum(self.suit_num,2)
- if not suit_cfg_list or TableSize(suit_cfg_list) == 0 then return end
- local anim_power_cfg = suit_cfg_list[#suit_cfg_list]
- local power = anim_power_cfg and self.model:MathGreatAttrFighting(anim_power_cfg.attr,anim_power_cfg.suit_num <= cur_suit_id_num) or 0
- self.fightText2_txt.text = power
- local item_list = suit_cfg_list
- local offer_x = 0
- local offer_y = 11
- local x = 0
- local y = 0
- for i, v in ipairs(item_list) do
- local item = self.attr_item_list2[i]
- if item == nil then
- item = BagEquipOrangeSuitAttrItem.New(self.attrCon2,nil,self.layer_name)
- self.attr_item_list2[i] = item
- end
- item:SetData(v,i,cur_suit_id_num)
- item:SetVisible(true)
- item:SetPosition(0,-(BagEquipOrangeSuitAttrItem.Height+offer_y)*(i - 1))
- end
- end
-
- function BagEquipOrangeSuitView:DestroySuccess( )
- for k,v in pairs(self.tab_list) do
- v:DeleteMe()
- v = nil
- end
- self.tab_list = {}
-
- for i,v in ipairs(self.attr_item_list) do
- v:DeleteMe()
- v = nil
- end
- self.attr_item_list = {}
-
- for i,v in ipairs(self.attr_item_list2) do
- v:DeleteMe()
- v = nil
- end
- self.attr_item_list2 = {}
-
- for series,v in pairs(self.look_suit_cache) do--缓存列表的套装全部换成已查看属性
- local active_list = EquipModel:getInstance().suit_attr_active_list[series]
- if active_list then
- for kk,vv in pairs(active_list) do
- for kkk,vvv in ipairs(vv) do
- vvv[3] = true
- end
- end
- end
- end
- end
|