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