|
|
- SkillUIModel = SkillUIModel or BaseClass(BaseVo, true)
- local SkillUIModel = SkillUIModel
-
- SkillUIModel.Skill_Type =
- {
- Goods = 1,
- Skill = 2,
- }
-
-
- SkillUIModel.Hook_Type =
- {
- NoAuto = 0,
- Auto = 1,
- }
-
- SkillUIModel.Click_SkillItem =
- {
- CareerList = 1,
- ConfigList = 2,
- ConfigSolt = 3,
- SkillLevelShow = 4,
- }
-
-
- SkillUIModel.UPDATE_TAB_DOT = "SkillUIModel.UPDATE_TAB_DOT"
- SkillUIModel.OPEN_SKILL_UPLEVEL_PREVIEW = "SkillUIModel.OPEN_SKILL_UPLEVEL_PREVIEW"
- SkillUIModel.CLOSE_SKILL_UPLEVEL_PREVIEW = "SkillUIModel.CLOSE_SKILL_UPLEVEL_PREVIEW"
- SkillUIModel.OPEN_SKILL_CONFIG_VIEW = "SkillUIModel.OPEN_SKILL_CONFIG_VIEW"
- SkillUIModel.CLICK_SKILL_ITEM = "SkillUIModel.CLICK_SKILL_ITEM"
- SkillUIModel.DRAG_SKILL_ITEM_BEGIN = "SkillUIModel.DRAG_SKILL_ITEM_BEGIN"
- SkillUIModel.DRAG_SKILL_ITEM_END = "SkillUIModel.DRAG_SKILL_ITEM_END"
- SkillUIModel.SKILL_UP_SUCCESS = "SkillUIModel.SKILL_UP_SUCCESS"
- SkillUIModel.CHANGE_AUTO_DAILY_SKILL_STATE = "SkillUIModel.CHANGE_AUTO_DAILY_SKILL_STATE"
- SkillUIModel.CLOSE_AUTO_DAILY_TISP = "SkillUIModel.CLOSE_AUTO_DAILY_TISP"
-
-
- function SkillUIModel:__init()
- SkillUIModel.Instance = self
-
- --红点
- self.skill_red = {}
- self.is_level_up = false
- self.skill_cfg = false
- end
-
- function SkillUIModel:getInstance()
- if SkillUIModel.Instance == nil then
- SkillUIModel.New()
- end
-
- return SkillUIModel.Instance
- end
-
-
- --获取职业基本的技能信息。不跟快捷栏挂钩
- function SkillUIModel:GetCareerBaseSkillList()
- local skill_vo
- local skill_list = {}
- local skill_mgr = SkillManager:getInstance()
- local key = RoleManager.Instance.mainRoleInfo.career .. "@" .. RoleManager.Instance.mainRoleInfo.sex
- local config_list = Config.ConfigSkillUI.shortCutSkill_list[key]
- if config_list then
- for id,_ in pairs(config_list) do
- skill_vo = skill_mgr:getSkill(id)
- if skill_vo then
- table.insert(skill_list, skill_vo)
- end
- end
- end
- local sort_func = function ( a,b )
- return a.id < b.id
- end
- table.sort(skill_list,sort_func) --升序排序
- return skill_list
- end
-
-
- --获取职业基本的技能id列表
- function SkillUIModel:GetCareerSkillListByTurn(turn)
- local skill_list = {}
- local key = RoleManager.Instance.mainRoleInfo.career .. "@" .. RoleManager.Instance.mainRoleInfo.sex
- local config_list = Config.ConfigSkillUI.shortCutSkill_list[key]
- if config_list then
- for id,_ in pairs(config_list) do
- table.insert(skill_list, id)
- end
- end
- local sort_func = function ( a,b )
- return a < b
- end
- table.sort(skill_list,sort_func) --升序排序
- return skill_list
- end
-
-
- --获取职业主动技能id列表
- function SkillUIModel:GetAllCareerSkillList()
- local career = RoleManager.Instance.mainRoleInfo.career or 1
- return Config.ConfigSkillUI.CareerSkill[career]
- end
-
- --获取职业特殊技能id列表
- function SkillUIModel:GetAllSpecialSkillList()
- local career = RoleManager.Instance.mainRoleInfo.career or 1
- return Config.ConfigSkillUI.SpecialSkill[career]
- end
-
- --获取传说技能id列表
- function SkillUIModel:GetAllLegendlSkillSkillList()
- local career = RoleManager.Instance.mainRoleInfo.career or 1
- return Config.ConfigSkillUI.LegendlSkill[career]
- end
-
-
- --获取主动技能列表(上阵)
- function SkillUIModel:GetMyInitiativeSkillList()
- local t = {}
- local list = self:GetAllCareerSkillList()
- local skill_mgr = SkillManager:getInstance()
- local turn = 1
- for i,v in ipairs(list) do
- t[turn] = {}
- for ii,id in ipairs(v) do
- local skill_vo = skill_mgr:getSkill(id)
- if skill_vo and skill_vo:GetSkillType() == 1 then
- table.insert(t[turn], id)
- end
- end
- turn = turn + 1
- end
-
- local my_turn = RoleManager:getInstance():GetMainRoleVo().turn
- if my_turn >= 2 then
- local list = self:GetAllLegendlSkillSkillList()
- for i,v in ipairs(list) do
- t[turn] = {}
- for ii,id in ipairs(v) do
- local skill_vo = skill_mgr:getSkill(id)
- if skill_vo and skill_vo:GetSkillType() == 1 then
- table.insert(t[turn], id)
- end
- end
- turn = turn + 1
- end
- end
- return t
- end
-
- --获取职业被动技能id列表
- function SkillUIModel:GetSKillUITab(enum)
- local career = RoleManager.Instance.mainRoleInfo.career or 1
- return Config.ConfigSkillUI.UITab[enum][career]
- end
-
-
- function SkillUIModel:CheckRedDot()
- self.skill_red = {}
- local function call_backack()
- local b = false
- for k,v in pairs(Config.ConfigSkillUI.TabEnum) do
- local can_up = self:CheckSkillRedDot(true, v)
- b = b or can_up
- end
- GlobalEventSystem:Fire(EventName.SHOW_FUNCTION_RED_POINT,3, b)
- self:Fire(SkillUIModel.UPDATE_TAB_DOT)
- end
- TimeManager.GetInstance():StartTime("SkillUIModel_CheckRedDot", 0.5, call_backack)
- end
-
- function SkillUIModel:IsSkillTypeUnLock( type_id )
- local tab_info = Config.ConfigSkillUI.Tab[type_id]
- local turn = RoleManager:getInstance():GetMainRoleVo().turn
- if tab_info and turn < tab_info.turn then
- return false
- else
- return true
- end
- end
-
- function SkillUIModel:CheckSkillRedDot(check_new, type_id)
- if not type_id then return false end
- if not self:IsSkillTypeUnLock(type_id) then
- return false
- end
- if check_new or self.skill_red[type_id] == nil then
- local skill_mgr = SkillManager:getInstance()
- local t = {}
- if type_id == Config.ConfigSkillUI.TabEnum.CareerSkill then
- t = self:GetAllCareerSkillList()
- elseif type_id == Config.ConfigSkillUI.TabEnum.SpecialSkill then
- t = self:GetAllSpecialSkillList()
-
- elseif type_id == Config.ConfigSkillUI.TabEnum.LegendlSkill then
- t = self:GetAllLegendlSkillSkillList()
- else
- return false
- end
- local b = false
- local list = {}
- for i,v in ipairs(t) do
- if type(v) == "table" then
- for ii,vv in ipairs(v) do
- table.insert(list, vv)
- end
- else
- table.insert(list, v)
- end
- end
- for i,v in ipairs(list) do
- local skill_vo = skill_mgr:getSkill(v)
- if skill_vo then
- local can_up = skill_vo:CanUp()
- if can_up then
- b = true
- break
- end
- end
- end
- self.skill_red[type_id] = b
- end
- return self.skill_red[type_id]
- end
-
-
- function SkillUIModel:GetRowCol(num, col_num)
- local row = 0
- local col = 0
- if col_num and col_num > 0 and num and num > 0 then
- row = math.floor((num - 1) / col_num ) + 1
- col = (num - 1) % col_num +1
- end
- return row, col
- end
-
-
- function SkillUIModel:GetSelectSkillIdByIdList(skill_id_list)
- if skill_id_list then
- for i,v in ipairs(skill_id_list) do
- if type(v) == "table" then
- for ii,vv in ipairs(v) do
- return vv
- end
- else
- return v
- end
- end
- end
- return 0
- end
-
- --获取技能方案
- function SkillUIModel:GetSkillPlan(plan)
- local t = {0, 0, 0, 0, 0, 0 , 0 , 0}
- local all_skill = SkillManager:getInstance().all_plan_skill
- if all_skill and all_skill[plan] and all_skill[plan].shortcutList then
- for k,v in pairs(all_skill[plan].shortcutList) do
- t[k] = v.id
- end
- end
- return t
- end
-
- --获取激活幻光技能的道具
- function SkillUIModel:GetDailySkillItem(skill_id, level)
- local config = Config.Visus
- local t = false
- for k,v in pairs(config) do
- local skillinfo = stringtotable(v.skill)
- if skillinfo and skillinfo[1] == skill_id and skillinfo[2] == level then
- t = v
- end
- end
- return t
- end
-
- --获取转生职业名字
- function SkillUIModel:GetTurnName(turn)
- local career = RoleManager:getInstance():GetMainRoleVo().career
- local cfg = Config.Transfercareer
- local career_name = ""
- for k,v in pairs(cfg) do
- if v.career == career and v.transfer_id == turn then
- career_name = Trim(v.name)
- break
- end
- end
- return career_name
- end
-
- --获取当前场景推荐幻光技能
- function SkillUIModel:GetRecommendDailySkillId()
- local skill_id = 0
- local info = SceneManager.Instance:GetSceneInfo()
- local cfg = Config.Visusskill
- if info and cfg then
- for k,v in pairs(cfg) do
- if v.scene_type == info.type then
- skill_id = v.skill_id
- break
- end
- end
- end
- return skill_id
- end
-
- --获取当前场景推荐幻光技能
- function SkillUIModel:IsAutoChangeDailySkillid()
- local cfg = self:GetAutoDailySkillCookie()
- return cfg.auto_change_daily_skill_state
- end
-
- --获取当前场景推荐幻光技能
- function SkillUIModel:SetAutoChangeDailyState(b)
- local cfg = self:GetAutoDailySkillCookie()
- cfg.auto_change_daily_skill_state = b
- self:Fire(SkillUIModel.CHANGE_AUTO_DAILY_SKILL_STATE)
- self:SetAutoDailySkillCookie()
- end
-
- --设置集字红点提示cookie
- function SkillUIModel:SetAutoDailySkillCookie( )
- self.skill_cfg = self.skill_cfg or {}
- CookieWrapper.Instance:SaveCookie(CookieLevelType.Account,CookieTimeType.TYPE_ALWAYS,CookieKey.AUTO_CHNAGE_DAILY_SKILL,self.skill_cfg)
- CookieWrapper.Instance:WriteAll()
- end
-
- --获得集字红点提示cookie
- function SkillUIModel:GetAutoDailySkillCookie( )
- if not self.skill_cfg then
- self.skill_cfg = CookieWrapper.Instance:GetCookie(CookieLevelType.Account,CookieKey.AUTO_CHNAGE_DAILY_SKILL) or {}
- end
- return self.skill_cfg
- end
|