源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

131 lines
3.8 KiB

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