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

219 lines
8.7 KiB

NewMainRoleView = NewMainRoleView or BaseClass(BaseView)
local NewMainRoleView = NewMainRoleView
NewMainRoleView.TabData = {
{id = NewMainRoleModel.TabId.ROLE, name = "角色", abName = "newmainrole_asset", light_res = "newMainRole_tab_1", dark_res = "newMainRole_tab_1_gray", view = "RoleAttributeView",open_lv = 1},
{id = NewMainRoleModel.TabId.Light, name = "幻光", abName = "newmainrole_asset", light_res = "newMainRole_tab_5", dark_res = "newMainRole_tab_5_gray", view = "LightSubView",open_lv = Config.Moduleid[147].open_lv,open_task = Config.Moduleid[147].task_id },
-- {id = NewMainRoleModel.TabId.NATURE, name = "性格", abName = "newmainrole_asset", light_res = "newMainRole_tab_5", dark_res = "newMainRole_tab_5_gray", view = "NatureSubView",open_lv = Config.Moduleid[167].open_lv },
{id = NewMainRoleModel.TabId.SOULPOWER, name = "魂力", abName = "newmainrole_asset", light_res = "newMainRole_tab_5", dark_res = "newMainRole_tab_5_gray", view = "SoulPowerView",open_lv = Config.Moduleid[144].open_lv },
{id = NewMainRoleModel.TabId.REIN, name = "转职", abName = "newmainrole_asset", light_res = "newMainRole_tab_5", dark_res = "newMainRole_tab_5_gray", view = "ReinTaskView",open_lv = Config.Moduleid[164].open_lv },
-- [3] = {id = 3, name = "神格", light_res = "icon_sg1_1", dark_res = "icon_sg1_2"},
-- [4] = {id = 4, name = "法则", light_res = "icon_fz1_1", dark_res = "icon_fz1_2"},
}
function NewMainRoleView:__init()
self.base_file = "newMainRole"
self.layout_file = "NewMainRoleView"
self.layer_name = "UI"
self.destroy_imm = true
self.use_background = G_USING_BG
self.model_activity_bg = true -- 3d背景模式,带镜面反射,一级全屏界面才需要
self.model_activity_bg_pos = Vector2(-308,30) -- 3d背景的偏移坐标,默认是居中的,如果你的模型不是居中的话就要调整坐标
self.model_activity_bg_type = 2
self.append_to_ctl_queue = true
self.change_scene_close = true
self.hide_maincancas = true
self.close_fog = true
self.fire_change_visible_event = true
self.mainVo = RoleManager.Instance.mainRoleInfo
self.model = NewMainRoleModel:getInstance()
MateModel:GetInstance():Fire(MateConst.REQ_BASIC_INFO)--羁绊信息
self:AddPreLoadList("reincarnation", {"ReinTaskScrollItem", "ReinTaskDataItem"})
-- self:AddPreLoadList("reincarnation", {"ReinTaskDataItem"})
self.current_index = false
self.contaner_list = {}
self.tab_name_list = {}
self.load_callback = function ()
self:LoadSuccess()
self:AddEvent()
end
self.open_callback = function ( )
self:OpenSuccess()
self:SwitchTab(self.current_index or 1, true)
self:ShowTabRedPointState()
end
self.switch_callback = function(index)
self:SwitchTab(index)
end
self.close_win_callback = function ( )
self:Close()
end
self.destroy_callback = function ( )
self:DestroySuccess()
end
end
function NewMainRoleView:GetRealIndex( index )
index = index or 1
return index
end
function NewMainRoleView:Open(index,sub_index,value)
self.current_index = self:GetRealIndex(index)
self.sub_index = sub_index
self.value = value
BaseView.Open(self)
end
function NewMainRoleView:ReOpen(index,sub_index,value)
self.current_index = self:GetRealIndex(index)
self.sub_index = sub_index
self.value = value
self:SwitchTab(self.current_index or 1, true)
self:ShowTabRedPointState()
end
function NewMainRoleView:LoadSuccess()
local nodes = {
"winCon",
}
self:GetChildren(nodes)
self.tabWindowComponent = UITabWindow.New(self.transform,NewMainRoleView.TabData,self.switch_callback,
self.close_win_callback,self.background_wnd,self.winCon, UITabWindow.SizeLarge, false,nil,true)
-- self.tabWindowComponent:SetTitleRes("newmainrole_asset", "newMainRole_title_1") --标题
-- self.tabWindowComponent:SetBackgroundRes("default_bg_1")
self.tabWindowComponent:SetTitleText( "角色" )
self.tabWindowComponent:SetUIBack({target = self, bg1 = GameResPath.GetViewBigBg("default_bg_1")})
end
function NewMainRoleView:AddEvent()
local function on_ans_update_red_dot()
self:ShowTabRedPointState()
end
self:BindEvent(self.model, NewMainRoleModel.ANS_UPDATE_RED_DOT, on_ans_update_red_dot)
local function on_close_new_main_role_view()
self:Close()
end
self:BindEvent(self.model, NewMainRoleModel.CLOSE_NEW_MAIN_ROLE_VIEW, on_close_new_main_role_view)
local function onGuideTrigger()
self:AddToStageHandler()
end
self.guide_trigger_id = GlobalEventSystem:Bind(EventName.TRIGGER_GUIDE_TYPE,onGuideTrigger)
end
function NewMainRoleView:OpenSuccess()
self:UpdateView()
end
function NewMainRoleView:SetRoleLevelName()
if self.level_item == nil then
self.level_item = self:CreateItem(RoleLevelItem, self.level_con)
end
self.level_item:SetData(self.mainVo.level, self.mainVo.turn, true, RoleLevelAlignType.MIDDLE, self.mainVo.name, "'#fffce5'", 22)
end
function NewMainRoleView:UpdateView()
end
function NewMainRoleView:SwitchTab( index, force )
if self.current_index == index and not force then return end
if self.tabWindowComponent ~= nil then
self.tabWindowComponent:SetTabBarIndex(index)
end
local chile_view = self.contaner_list[index]
if not chile_view then
local viewModule = false
for k,v in pairs(NewMainRoleView.TabData) do
if v.id == tonumber(index) then
viewModule = v
break
end
end
if viewModule then
chile_view = self:CreateItem(_G[viewModule.view], self.winCon, self.layer_name)
end
self.contaner_list[index] = chile_view
end
if chile_view then
if chile_view.SetData then
chile_view:SetData(index, self.sub_index, self.value)
end
self:PopUpChild(chile_view)
self.sub_index = nil--一般是用来跳转的 用完就置空了
end
self.current_index = index
if index == NewMainRoleModel.TabId.ROLE then
self.tabWindowComponent:SetBackgroundRes("default_bg_2")
elseif index == NewMainRoleModel.TabId.Light then
self.tabWindowComponent:SetBackgroundRes("default_bg_2")
elseif index == NewMainRoleModel.TabId.NATURE then
self.tabWindowComponent:SetBackgroundRes("default_bg_2")
elseif index == NewMainRoleModel.TabId.REIN then
self.tabWindowComponent:SetBackgroundRes("default_bg_2")
end
end
function NewMainRoleView:DestroySuccess( )
if self.refresh_dot_id then
self.model:UnBind(self.refresh_dot_id)
self.refresh_dot_id = nil
end
if self.guide_trigger_id then
GlobalEventSystem:UnBind(self.guide_trigger_id)
self.guide_trigger_id = nil
end
if self.tabWindowComponent then
self.tabWindowComponent:DeleteMe()
end
self.tabWindowComponent = nil
end
function NewMainRoleView:ShowTabRedPointState()
self.tabWindowComponent:ShowRedPoint(NewMainRoleModel.TabId.Light, LightModel:GetInstance():GetLightAllRed(false))
-- self.tabWindowComponent:ShowRedPoint(NewMainRoleModel.TabId.NATURE, NatureModel:getInstance():GetNatureAllRed(true))
self.tabWindowComponent:ShowRedPoint(NewMainRoleModel.TabId.SOULPOWER, SoulPowerModel:getInstance():IsSoulPowerRed())
self.tabWindowComponent:ShowRedPoint(NewMainRoleModel.TabId.REIN, ReincarnationModel:getInstance():GetReinRed())
self.tabWindowComponent:ShowRedPoint(NewMainRoleModel.TabId.ROLE, KfWorldModel:getInstance():GetRewardGetRed())
end
function NewMainRoleView:AddToStageHandler()
local helpVo = GuideModel:getInstance():GetHelpVo(HelpType.TYPE_LIGHT,5)
if not helpVo then return end
local help_type = helpVo.help_type
local step = helpVo.step
local button = false
if help_type == HelpType.TYPE_LIGHT and step == 5 then
GlobalEventSystem:Fire(EventName.FINISH_CURRENT_HELP_STEP,helpVo)
self:Close()
-- button = self.tabWindowComponent and self.tabWindowComponent.win_close_btn
end
-- if button then
-- local function call_back()
-- self:Close()
-- end
-- GlobalEventSystem:Fire(EventName.OPEN_GUIDE_PROMPT_VIEW, button.transform, self.transform, call_back, helpVo, self.layout_file)
-- end
end
function NewMainRoleView:Close()
--完成引导
local helpVo = GuideModel:getInstance():GetHelpVo(HelpType.TYPE_LIGHT,5)
if helpVo then
if helpVo.step == 5 then
GlobalEventSystem:Fire(EventName.FINISH_CURRENT_HELP_STEP,helpVo)
end
GlobalEventSystem:Fire(EventName.FORCE_TO_DO_TASK)
end
BaseView.Close(self)
end