源战役客户端
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.
 
 
 
 
 

182 lines
6.3 KiB

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