SkillMainView = SkillMainView or BaseClass(BaseView)
|
|
local SkillMainView = SkillMainView
|
|
|
|
SkillMainView.Tab_list = {
|
|
{id = Config.ConfigSkillUI.TabEnum.CareerSkill, tab_id = Config.ConfigSkillUI.TabEnum.CareerSkill, name = "职业技能", light_res = "icon_jn1_1", dark_res = "icon_jn1_2" },
|
|
{id = Config.ConfigSkillUI.TabEnum.SpecialSkill, tab_id = Config.ConfigSkillUI.TabEnum.SpecialSkill, name = "特殊技能", light_res = "icon_bd1_1", dark_res = "icon_bd1_2"},
|
|
{id = Config.ConfigSkillUI.TabEnum.LegendlSkill, tab_id = Config.ConfigSkillUI.TabEnum.LegendlSkill, name = "传说技能", light_res = "icon_jn1_1", dark_res = "icon_jn1_2" },
|
|
}
|
|
function SkillMainView:__init()
|
|
self.base_file = "skillui"
|
|
self.layout_file = "SkillMainView"
|
|
self.layer_name = "UI"
|
|
self.use_background = true
|
|
self.hide_maincancas = true
|
|
self.use_background = G_USING_BG
|
|
|
|
self.skillui_model = SkillUIModel:getInstance()
|
|
self.append_to_ctl_queue = true
|
|
self.view_index = false
|
|
|
|
self.blur_activity_bg = true
|
|
self.use_show_anim = true
|
|
self.use_hide_anim = true
|
|
|
|
self.show_tabs = {}
|
|
self.tab_name_list = {}
|
|
self.contaner_list = {}
|
|
|
|
local open_day = ServerTimeModel:getInstance():GetOpenServerDay()
|
|
local playerLv = RoleManager:getInstance():GetMainRoleVo().level
|
|
local turn = RoleManager:getInstance():GetMainRoleVo().turn
|
|
for i, v in ipairs(SkillMainView.Tab_list) do
|
|
local config = Config.ConfigSkillUI.Tab[v.tab_id]
|
|
if config and config.open_level <= playerLv and config.open_day <= open_day then
|
|
table.insert(self.show_tabs, v)
|
|
table.insert(self.tab_name_list, v)
|
|
end
|
|
end
|
|
self.load_callback = function ()
|
|
self:LoadSuccess()
|
|
self:InitEvent()
|
|
end
|
|
self.open_callback = function ()
|
|
self:SeletedTabbar(self.oepn_index, true)
|
|
end
|
|
self.close_callback = function ()
|
|
self:Remove()
|
|
end
|
|
end
|
|
|
|
function SkillMainView:Open(index,select_up_skill)
|
|
self.oepn_index = index or 1
|
|
self.select_up_skill = select_up_skill
|
|
for index, v in ipairs(self.show_tabs) do
|
|
if self.oepn_index == v.tab_id then
|
|
self.oepn_index = index
|
|
break
|
|
end
|
|
end
|
|
BaseView.Open(self)
|
|
end
|
|
|
|
function SkillMainView:Remove()
|
|
if self.refresh_red_point_id then
|
|
self.skillui_model:UnBind(self.refresh_red_point_id)
|
|
self.refresh_red_point_id = nil
|
|
end
|
|
|
|
for i, view in pairs(self.contaner_list) do
|
|
view:DeleteMe()
|
|
end
|
|
if self.tabWindowComponent then
|
|
self.tabWindowComponent:DeleteMe()
|
|
self.tabWindowComponent = nil
|
|
end
|
|
self.contaner_list = nil
|
|
|
|
if self.base_view then
|
|
self.base_view:DeleteMe()
|
|
self.base_view = nil
|
|
end
|
|
if self.config_view then
|
|
self.config_view:DeleteMe()
|
|
self.config_view = nil
|
|
end
|
|
if self.special_view then
|
|
self.special_view:DeleteMe()
|
|
self.special_view = nil
|
|
end
|
|
|
|
end
|
|
|
|
function SkillMainView:LoadSuccess()
|
|
self.winCon = self:GetChild("winCon")
|
|
|
|
local select_callback = function(index)
|
|
self:SeletedTabbar(index)
|
|
self:ShowTabRedPointState()
|
|
end
|
|
|
|
local closeWin_callback = function()
|
|
self:Close()
|
|
end
|
|
|
|
self.tabWindowComponent = UITabWindow.New(self.transform,self.tab_name_list,select_callback,closeWin_callback,self.background_wnd,self.winCon, UITabWindow.SizeSmallHall, false,nil,true)
|
|
self.tabWindowComponent:SetBackgroundRes("skill_main_bg")
|
|
self.tabWindowComponent:SetTitleText("技能")
|
|
end
|
|
|
|
function SkillMainView:SeletedTabbar(index, force)
|
|
|
|
if self.select_index == index and not force then
|
|
return
|
|
end
|
|
|
|
local tab_info = Config.ConfigSkillUI.Tab[self.show_tabs[index].tab_id]
|
|
local turn = RoleManager:getInstance():GetMainRoleVo().turn
|
|
|
|
if turn < tab_info.turn then
|
|
self.select_index = self.select_index or 1
|
|
Message.show("达成传说职业后可解锁!")
|
|
else
|
|
self.select_index = index
|
|
end
|
|
|
|
if self.tabWindowComponent ~= nil then
|
|
self.tabWindowComponent:SetTabBarIndex(self.select_index)
|
|
self:UpdateView()
|
|
end
|
|
end
|
|
|
|
function SkillMainView:InitEvent()
|
|
|
|
local function RedDotRefresh( )
|
|
self:ShowTabRedPointState()
|
|
end
|
|
self:BindEvent(self.skillui_model, SkillUIModel.UPDATE_TAB_DOT, RedDotRefresh)
|
|
|
|
local function onGetSkillShortCut( )
|
|
self:UpdateView()
|
|
end
|
|
self:BindEvent(GlobalEventSystem, EventName.GET_SKILL_SHORTCUT, onGetSkillShortCut)
|
|
end
|
|
|
|
function SkillMainView:UpdateView()
|
|
local index = self.tabWindowComponent:GetCurrentSelectIndex()
|
|
if not self.show_tabs[index] then return end
|
|
if not self.base_view then
|
|
self.base_view = CareerSkillView.New(self.winCon, nil, self.layer_name)
|
|
end
|
|
self.base_view:SetVisible(true)
|
|
self:ResetView()
|
|
local tab_id = self.show_tabs[index].tab_id
|
|
|
|
if tab_id == Config.ConfigSkillUI.TabEnum.CareerSkill then
|
|
self.base_view:SetData(self.skillui_model:GetAllCareerSkillList(), tab_id, SkillUIDetailItem.UIType.PreViewMode, self.select_up_skill)
|
|
|
|
elseif tab_id == Config.ConfigSkillUI.TabEnum.SpecialSkill then
|
|
self.base_view:SetData(self.skillui_model:GetAllSpecialSkillList(), tab_id, SkillUIDetailItem.UIType.PreViewMode, self.select_up_skill)
|
|
|
|
elseif tab_id == Config.ConfigSkillUI.TabEnum.LegendlSkill then
|
|
self.base_view:SetData(self.skillui_model:GetAllLegendlSkillSkillList(), tab_id, SkillUIDetailItem.UIType.PreViewMode, self.select_up_skill)
|
|
end
|
|
self.select_up_skill = false
|
|
end
|
|
|
|
function SkillMainView:ShowTabRedPointState()
|
|
self.tabWindowComponent:ShowRedPoint(Config.ConfigSkillUI.TabEnum.CareerSkill,self.skillui_model:CheckSkillRedDot( false,Config.ConfigSkillUI.TabEnum.CareerSkill ))
|
|
self.tabWindowComponent:ShowRedPoint(Config.ConfigSkillUI.TabEnum.SpecialSkill,self.skillui_model:CheckSkillRedDot( false,Config.ConfigSkillUI.TabEnum.SpecialSkill ))
|
|
self.tabWindowComponent:ShowRedPoint(Config.ConfigSkillUI.TabEnum.LegendlSkill,self.skillui_model:CheckSkillRedDot( false,Config.ConfigSkillUI.TabEnum.LegendlSkill ))
|
|
end
|
|
|
|
|
|
function SkillMainView:ResetView()
|
|
if self.config_view then
|
|
self.config_view:SetVisible(false)
|
|
end
|
|
if self.special_view then
|
|
self.special_view:SetVisible(false)
|
|
end
|
|
end
|
|
|