|
|
- -- <*
- -- @Author: Saber
- -- @Description: 成就特权节点item
- -- *>
- AchievePrivilegeItem = AchievePrivilegeItem or BaseClass(BaseItem)
- local AchievePrivilegeItem = AchievePrivilegeItem
-
- function AchievePrivilegeItem:__init(parent_wnd,prefab_asset,layer_name)
- self.base_file = "achievement"
- self.layout_file = "AchievePrivilegeItem"
- self.parent_wnd = parent_wnd
- self.layer_name = layer_name
- self.is_selected = false
- self.model = AchieveModel:getInstance()
- self.privilege_data = self.model:GetAchievePrivilegeTabData()
- self:Load()
- end
-
- function AchievePrivilegeItem:Load_callback()
- local nodes = {
- "bg:obj:img", "arrow:obj", "selected:obj", "red:obj",
- "lv:tmp", "di_bg:raw", "des:tmp", "icon:img", "con_award",
- }
- self:GetChildren(nodes)
- lua_resM:setOutsideImageSprite(self, self.bg_img,
- GameResPath.GetAchieveBigPic("achi_privilege_bg"), true)
- SetLocalScale(self.icon, 0.8, 0.8, 1)
- self:AddEvents()
- if self.need_refreshData then
- self:UpdateView()
- end
- end
-
- function AchievePrivilegeItem:AddEvents( )
- local function click_event(target)
- if target == self.bg_obj then
- if self.index and self.callback then
- self.callback(self.index)
- end
- -- 如果当前的特权节点是交换交易券的且红点亮着,要取消掉登录红点并推事件
- if self.data.icon == 4 and self.model:GetAchieveCacheRed(AchieveModelRedType.Exchange) then
- self.model.exchange_login_red = false
- self.model:CheckAchieveRed(AchieveModelRedType.Exchange, true)
- end
- end
- end
- AddClickEvent(self.bg_obj, click_event, LuaSoundManager.SOUND_UI.SWITCH)
-
- local function update_privilege_red(type)
- if type == AchieveModelRedType.Privilege
- or type == AchieveModelRedType.Weekly
- or type == AchieveModelRedType.Exchange then
- self:UpdatePrivilegeTabRed()
- end
- end
- self:BindEvent(self.model, AchieveModel.UPDATE_ACHIEVE_RED, update_privilege_red)
- end
-
- function AchievePrivilegeItem:UpdateView( )
- -- self:SetSelected(self.is_selected)
- -- lua_resM:setImageSprite(self, self.bg_img, "achievement_asset", "achi_total_privilege_iconBg" .. self.data.icon .. "_pointfilter", true)
-
- lua_resM:setOutsideImageSprite(self, self.icon_img,
- GameResPath.GetAchieveBigPic("achi_privilege_icon" .. self.data.icon), true)
- self.lv_tmp.text = string.format('%s %s', HtmlColorTxt( "Lv." .. self.data.stage, ColorUtil.YELLOW_DARK), self.data.name)
- local str = ChuanWenManager:getInstance():FormatColorTag2(self.data.desc, true)
- self.des_tmp.text = " " .. string.gsub( str, [[\n]], "\n" )
- -- 更新红点
- -- self:UpdatePrivilegeTabRed()
- local cur_index = self.model:GetCurPrivilegeStage()
- -- self:SetSelected(cur_index == self.index)
- self.arrow_obj:SetActive(#self.privilege_data ~= self.index)
-
- self.award_item = self.award_item or UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.con_award)
- self.award_item:SetItemSize(62, 62)
- local reward = stringtotable(self.data.reward)[1]
- self.award_item:SetVisible(reward and true or false)
- if reward then
- local typeId, lock = GoodsModel:getInstance():GetMappingTypeId(reward[1], reward[2])
- self.award_item:SetData(typeId, reward[3], nil, nil, lock)
- end
- end
-
- function AchievePrivilegeItem:SetData( data, index, callback )
- self.data = data
- self.index = index
- self.callback = callback
- if self.is_loaded then
- self.need_refreshData = false
- self:UpdateView()
- else
- self.need_refreshData = true
- end
- end
-
- function AchievePrivilegeItem:SetSelected(bool)
- self.is_selected = bool
- if self.is_loaded then
- self.selected_obj:SetActive(bool)
- end
- end
-
- function AchievePrivilegeItem:UpdatePrivilegeTabRed( )
- if self.data then
- local bool
- bool = self.model:GetAchieveCacheRed(AchieveModelRedType.Privilege, self.data.stage)
- self.red_obj:SetActive(bool)
- end
- end
-
- function AchievePrivilegeItem:__delete( )
- if self.award_item then
- UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.award_item)
- end
- self.award_item = nil
- end
|