LightTabItem = LightTabItem or BaseClass(BaseItem)
|
|
local LightTabItem = LightTabItem
|
|
|
|
LightTabItem.Width = 121
|
|
LightTabItem.Height = 125
|
|
|
|
function LightTabItem:__init(parent_wnd,prefab_asset,layer_name)
|
|
self.base_file = "light"
|
|
self.layout_file = "LightTabItem"
|
|
self.layer_name = layer_name
|
|
self.model = LightModel:GetInstance()
|
|
|
|
self:Load()
|
|
end
|
|
|
|
function LightTabItem:Load_callback()
|
|
self.nodes = {
|
|
"di_can:obj", "lock:obj", "lb_lock_des:tmp", "icon:img", "di:img:obj", "red_dot:obj",
|
|
"mask:obj", "light:obj", "di_name:obj",
|
|
}
|
|
self:GetChildren(self.nodes)
|
|
self:AddEvents()
|
|
|
|
if self.need_refreshData then
|
|
self:UpdateView()
|
|
end
|
|
end
|
|
|
|
function LightTabItem:AddEvents( )
|
|
local function call_back( target )
|
|
if self.call_back then
|
|
self.call_back(self.data.id)
|
|
end
|
|
if self.index == 1 then
|
|
--完成引导
|
|
local helpVo = GuideModel:getInstance():GetHelpVo(HelpType.TYPE_LIGHT,3)
|
|
if helpVo and helpVo.step == 3 then
|
|
GlobalEventSystem:Fire(EventName.FINISH_CURRENT_HELP_STEP,helpVo)
|
|
end
|
|
end
|
|
end
|
|
AddClickEvent(self.di_obj,call_back,false)
|
|
|
|
local function onGuideTrigger()
|
|
self:AddToStageHandler()
|
|
end
|
|
self.guide_trigger_id = GlobalEventSystem:Bind(EventName.TRIGGER_GUIDE_TYPE,onGuideTrigger)
|
|
end
|
|
|
|
function LightTabItem:UpdateView( )
|
|
if not self.data then
|
|
return
|
|
end
|
|
|
|
local can_active = self.model:CanLightActive( false,self.data.id )
|
|
local is_active = self.model:GetLightIsActive( self.data.id )
|
|
local conf = self.model:GetLightConfOne(self.data.id)
|
|
local cur_is_me = self.data.id == self.cur_select_id
|
|
self.lock_obj:SetActive(not is_active)
|
|
self.di_can_obj:SetActive(can_active)
|
|
self.di_name_obj:SetActive(not is_active)
|
|
self.lb_lock_des_tmp.text = (is_active or can_active) and "" or Trim(self.data.desc)
|
|
|
|
-- lua_resM:setImageSprite(self, self.di_img, "light_asset", cur_is_me and "light_di_19" or "light_di_20",true)
|
|
lua_resM:setImageSprite(self, self.di_img, "light_asset", "light_di_19" .. "_" .. conf.color,true)
|
|
|
|
local function call_back( )
|
|
local x,y = GetSizeDeltaXY(self.icon.transform)
|
|
local scale = 1
|
|
if x > y then
|
|
if x > 104 then
|
|
scale = 104/x
|
|
end
|
|
else
|
|
if y > 104 then
|
|
scale = 104/y
|
|
end
|
|
end
|
|
SetLocalScale(self.icon.transform, scale,scale,scale)
|
|
end
|
|
lua_resM:setOutsideImageSprite(self,self.icon_img,"/client/assets/icon/light/light_head_" .. self.data.id .. ".png",true,call_back)
|
|
|
|
self.mask_obj:SetActive( not is_active )
|
|
self.light_obj:SetActive(cur_is_me)
|
|
self:UpdateRed()
|
|
end
|
|
|
|
function LightTabItem:UpdateRed( )
|
|
if not self.is_loaded then return end
|
|
if not self.data then
|
|
return
|
|
end
|
|
local can_active = self.model:CanLightActive( false,self.data.id )
|
|
self.red_dot_obj:SetActive(can_active or self.model:CanLightUpGrade( false,self.data.id ))
|
|
self:AddToStageHandler()
|
|
end
|
|
|
|
function LightTabItem:SetData( index, data, call_back, cur_select_id )
|
|
self.index = index
|
|
self.data = data
|
|
self.call_back = call_back
|
|
self.cur_select_id = cur_select_id
|
|
if self.is_loaded then
|
|
self.need_refreshData = false
|
|
self:UpdateView()
|
|
else
|
|
self.need_refreshData = true
|
|
end
|
|
end
|
|
|
|
function LightTabItem:__delete( )
|
|
if self.guide_trigger_id then
|
|
GlobalEventSystem:UnBind(self.guide_trigger_id)
|
|
self.guide_trigger_id = nil
|
|
end
|
|
end
|
|
|
|
function LightTabItem:AddToStageHandler()
|
|
if self.index ~= 1 then return end
|
|
local helpVo = GuideModel:getInstance():GetHelpVo(HelpType.TYPE_LIGHT,3)
|
|
if not helpVo then return end
|
|
local help_type = helpVo.help_type
|
|
local step = helpVo.step
|
|
local button = false
|
|
if help_type == HelpType.TYPE_LIGHT and step == 3 then
|
|
button = self.di_obj
|
|
end
|
|
if button then
|
|
GlobalEventSystem:Fire(EventName.OPEN_GUIDE_PROMPT_VIEW, button.transform, self.transform, call_back, helpVo, self.layout_file)
|
|
end
|
|
end
|