|
|
- -- <*
- -- @Author: Saber
- -- @Description: 转职界面右侧职业tab按钮
- -- *>
- ReinTaskTabItem = ReinTaskTabItem or BaseClass(BaseItem)
- local ReinTaskTabItem = ReinTaskTabItem
-
- function ReinTaskTabItem:__init(parent_wnd,prefab_asset,layer_name)
- self.base_file = "reincarnation"
- self.layout_file = "ReinTaskTabItem"
- self.parent_wnd = parent_wnd
- self.layer_name = layer_name
- self.is_selected = false
- self.main_vo = RoleManager.Instance.mainRoleInfo
- self.model = ReincarnationModel:getInstance()
-
- self.progress_list = {} -- 进度图片节点
- self:Load()
- end
-
- function ReinTaskTabItem:Load_callback()
- local nodes = {
- "career_bg:obj:img",
- "career_bg/career_icon:raw",
- "career_bg/lock:obj",
- "selected:obj",
- "state_lb:tmp", "state_icon:img",
- "career_name:tmp",
- "progress_con",
- "turn:tmp",
- }
- self:GetChildren(nodes)
-
- self:AddEvents()
- if self.need_refreshData then
- self:UpdateView()
- end
- end
-
- function ReinTaskTabItem:AddEvents( )
- local function click_event(target)
- if target == self.career_bg_obj then
- if self.data and self.callback then
- self.callback(self.data.transfer_id)
- end
- end
- end
- AddClickEvent(self.career_bg_obj, click_event)
- end
-
- function ReinTaskTabItem: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 ReinTaskTabItem:UpdateView( )
- self:UpdateBasicData()
- self:UpdateTurnState()
- self:SetSelected(self.is_selected)
- end
-
- function ReinTaskTabItem:UpdateBasicData( )
- local career = self.main_vo.career
- if self.data then
- -- 加载职称
- self.career_name_tmp.text = Trim(self.data.name)
- self.turn_tmp.text = ReincarnationConst.TurnTips[self.data.transfer_id]
- -- 加载转职头像
- lua_resM:setOutsideRawImage(self, self.career_icon_raw, GameResPath.GetHeadIcon(self.data.image_id))
- end
- end
-
- -- 更新转职进度表现
- function ReinTaskTabItem:UpdateTurnState( )
- local turn, turn_stage = self.main_vo.turn, self.main_vo.turn_stage
- -- 先隐藏所有的进度节点
- for k, v in ipairs(self.progress_list) do
- v.gameObject:SetActive(false)
- end
- local show_flag = false
- local is_locked = false
- if self.data.transfer_id < turn + 1 then -- 往期转职
- show_flag = true
- elseif self.data.transfer_id == turn + 1 then -- 当前进行中的转职
- local cur_task_vo = self.model:GetCurTaskVo()
- -- 存在任务或者转职阶段不为0,则处于转职进行中,否则未解锁
- if cur_task_vo or turn_stage ~= 0 then
- local rein_stage_cfg = self.model:GetReinLvStageData(self.data.transfer_id)
- local total_stage = rein_stage_cfg and #rein_stage_cfg or 5
- -- 当前已接任务则当前阶段等于进行中的阶段,否则为下一阶段
- -- local task_received = cur_task_vo.acceptType == 0
- -- local real_index = task_received and turn_stage or turn_stage + 1
- -- real_index = real_index > total_stage and total_stage or real_index
- -- 创建进度表现
- for i = 1, total_stage do
- self.progress_list[i] = self.progress_list[i] or UiFactory.createChild(self.progress_con, UIType.Image3, "progress" .. i)
- SetAnchoredPosition(self.progress_list[i].transform, (i-1) * 11 - 41, -0.5)
- lua_resM:setImageSprite(self, self.progress_list[i]:GetComponent("Image"),
- "reincarnation_asset", i <= turn_stage and "re_tab_progress1" or "re_tab_progress0", true)
- self.progress_list[i].gameObject:SetActive(true)
- end
- else
- show_flag = true
- is_locked = true
- end
- else -- 未解锁
- show_flag = true
- is_locked = true
- end
- self.lock_obj:SetActive(is_locked)
- lua_resM:setImageSprite(self, self.state_icon_img, "reincarnation_asset", is_locked and "rein_preview_locked" or "rein_preview_finished", true)
- self.state_icon_img.enabled = show_flag
- self.state_lb_tmp.text = show_flag and (is_locked and "<color=#a9c1e1>未解锁</color>" or "<color=#2cf86f>已完成</color>") or ""
- end
-
- function ReinTaskTabItem:SetSelected(bool)
- self.is_selected = bool
- if self.is_loaded then
- self.selected_obj:SetActive(self.is_selected)
- self.career_name_tmp.color = ColorUtil:ConvertHexToRGBColor(self.is_selected and "#fdffc2" or "#ffffff")
- end
- end
-
- function ReinTaskTabItem:__delete( )
-
- end
|