|
|
- CareerSkillView = CareerSkillView or BaseClass(BaseItem)
-
- function CareerSkillView:__init(parent_wnd, prefab_asset, layer_name)
- self.base_file = "skillUI"
- self.layout_file = "CareerSkillView"
- -- self.full_screen = true
- -- self.ani_right = 400
- -- self.adjust_mid = {left = 0, right = 650}
-
- self.model = SkillManager:getInstance()
- self.skillui_model = SkillUIModel:getInstance()
-
-
- self.skill_list_item = false
- self.detail_item = false
-
- self.skill_id_list = false
- self.view_index = false
- self.ui_type = false
-
- self.selet_skill = false
- self.is_pre_view = false
- self.last_ui_cache = {}
-
- self.is_open_select_up_skill = false
-
- self:Load()
- end
-
- --清除界面
- function CareerSkillView:__delete()
- self:Remove()
-
- end
-
- function CareerSkillView:Load_callback()
- self:LoadSuccess()
- self:InitEvent()
- end
-
- function CareerSkillView:Remove()
- if self.skill_list_item then
- self.skill_list_item:DeleteMe()
- self.skill_list_item = false
- end
- if self.detail_item then
- self.detail_item:DeleteMe()
- self.detail_item = false
- end
- end
-
- function CareerSkillView:LoadSuccess()
-
- local nodes = {
- "right/skill_detail_con",
- "right/config_btn:obj",
- "mid/skill_list_con",
- }
-
- self:GetChildren(nodes)
- self.skill_list_item = SkillUIListItem.New(self.skill_list_con, nil, self.maskID)
-
- if self.need_refreshData then
- self:SetData(self.skill_id_list, self.view_index, self.ui_type, self.is_open_select_up_skill)
- end
- end
-
- function CareerSkillView:InitEvent()
-
- local function onBtnClickHandler(target)
- if target == self.config_btn_obj then
- local level = 50
- if level > RoleManager.Instance.mainRoleInfo.level then
- Message.show(string.format("达到%d级,才可自由上阵技能哦~", level))
- return
- end
- self.skillui_model:Fire(SkillUIModel.OPEN_SKILL_CONFIG_VIEW)
- end
- end
- AddClickEvent(self.config_btn_obj,onBtnClickHandler)
-
- local function onClickSkillItem(view_index, skill_id, pos)
- if view_index ~= SkillUIModel.Click_SkillItem.ConfigSolt and view_index ~= SkillUIModel.Click_SkillItem.SkillLevelShow then
- local _, is_pre_view = self:GetLastUICache(self.view_index)
- self:SetLastUICache(self.view_index, skill_id, is_pre_view)
- self:UpdateSkillDetail(skill_id)
- end
- end
- self:BindEvent(self.skillui_model,SkillUIModel.CLICK_SKILL_ITEM, onClickSkillItem)
-
- local function onUpdateSkillList()
- self:UpdateView()
- end
- self:BindEvent(self.model,SkillManager.UPDATE_SKILL_LIST, onUpdateSkillList)
-
- local function onChangeNextUpSkill(skill_id)
- self:ChangeNextUpSkill(skill_id)
- end
- self:BindEvent(self.skillui_model, SkillUIModel.SKILL_UP_SUCCESS, onChangeNextUpSkill)
-
- local function onChangeAutoDailySkillState()
- self:UpdateView()
- end
- self:BindEvent(self.skillui_model,SkillUIModel.CHANGE_AUTO_DAILY_SKILL_STATE, onChangeAutoDailySkillState)
-
- end
-
- function CareerSkillView:UpdateView()
- if not self.skill_id_list then return end
- self.selet_skill, self.is_pre_view = self:GetOpenUpSkill() or self:GetLastUICache(self.view_index)
- self.skill_list_item:SetData(self.skill_id_list, self.selet_skill, self.view_index)
- self:UpdateSkillDetail(self.selet_skill)
- end
-
- function CareerSkillView:SetData(skill_id_list, view_index, ui_type, is_open_select_up_skill)
- self.skill_id_list = skill_id_list
- self.view_index = view_index
- self.ui_type = ui_type
- self.is_open_select_up_skill = is_open_select_up_skill
- if self.is_loaded then
- self:UpdateView()
- else
- self.need_refreshData = true
- end
- end
-
- function CareerSkillView:GetLastUICache(index)
- if not index then return end
- local t = self.last_ui_cache
- if not t[index] then
- t[index] = {}
- t[index].last_skill_id = self.skillui_model:GetSelectSkillIdByIdList(self.skill_id_list)
- t[index].last_pre_view = false
- end
- return t[index].last_skill_id, t[index].last_pre_view
- end
-
-
- function CareerSkillView:SetLastUICache(index, skill_id, pre_view)
- if not index then return end
- local t = self.last_ui_cache
- t[index] = t[index] or {}
- t[index].last_skill_id = skill_id
- t[index].last_pre_view = pre_view
- end
-
- function CareerSkillView:UpdateSkillDetail(skill_id)
- if not self.detail_item then
- self.detail_item = SkillUIDetailItem.New(self.skill_detail_con)
- end
- local skill_vo = self.model:getSkill(skill_id)
- self.detail_item:SetData(skill_vo)
- end
-
- function CareerSkillView:ChangeNextUpSkill(skill_id)
- if not self.skill_id_list then
- return
- end
- local skill_vo = self.model:getSkill(skill_id)
- if not skill_vo or skill_vo:CanUp() then
- return
- end
- local next_select_skill_id = false
- for i,list in ipairs(self.skill_id_list) do
- for k,id in ipairs(list) do
- skill_vo = self.model:getSkill(id)
- if skill_vo and skill_vo:CanUp() then
- next_select_skill_id = id
- break
- end
- if next_select_skill_id then
- break
- end
- end
- end
-
- if next_select_skill_id then
- self.skillui_model:Fire(SkillUIModel.CLICK_SKILL_ITEM, SkillUIModel.Click_SkillItem.CareerList, next_select_skill_id)
- end
- end
-
- --第一次打开时,是否选中可升级的技能
- function CareerSkillView:GetOpenUpSkill()
- if not self.is_open_select_up_skill then
- return
- end
- if not self.skill_id_list then
- return
- end
- self.is_open_select_up_skill = false
- local current_select_skill_id = false
- for i,list in ipairs(self.skill_id_list) do
- for k,id in ipairs(list) do
- skill_vo = self.model:getSkill(id)
- if skill_vo and skill_vo:CanUp() then
- current_select_skill_id = id
- break
- end
- if current_select_skill_id then
- break
- end
- end
- end
-
- if current_select_skill_id then
- self:SetLastUICache(self.view_index, current_select_skill_id, self.is_pre_view)
- end
-
- return current_select_skill_id
- end
|