|
-- <*
|
|
-- @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
|