| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264 |
- local NewBattleChatPart = class("NewBattleChatPart")
- local UIChatRoot = require("UIChat/UIChatRoot")
- local uIChatRootWorld
- local chatDisplayDurationTime
- local chatHideTimer
- local pageToggleData = {}
- function NewBattleChatPart:ctor()
- self.curChatType = nil
- self.uiview = nil
- self.ismainBattle = nil
- end
- function NewBattleChatPart:HandleChatToggleBtns(type)
- if type == 1 then
- self.viewLua.togworld.toggle.isOn = true
- self.viewLua.togsystem.toggle.isOn = false
- self.viewLua.togwarlog.toggle.isOn = false
- elseif type == 2 then
- self.viewLua.togworld.toggle.isOn = false
- self.viewLua.togsystem.toggle.isOn = true
- self.viewLua.togwarlog.toggle.isOn = false
- elseif type == 3 then
- self.viewLua.togworld.toggle.isOn = false
- self.viewLua.togsystem.toggle.isOn = false
- self.viewLua.togwarlog.toggle.isOn = true
- end
- end
- function NewBattleChatPart:GetChatChannelType()
- return ManagerContainer.DataMgr.ChatData:GetChatChannelType()
- end
- function NewBattleChatPart:SetChatChannelType(type)
- ManagerContainer.DataMgr.ChatData:SetChatChannelType(type)
- end
- function NewBattleChatPart:InitGo(host,uiGo,ismainBattle,btnchat)
- self.uiview = host
- self.uiData = host.uiData
- self.uiBase = host.uiBase
- self.viewLua = CommonUtil.BindGridViewItem2Lua(self.uiview, "NewBattleChat", uiGo)
- self.viewLua.transform:SetAsFirstSibling()
- self.uieventhandler = self.viewLua.transform:GetComponent(Enum.TypeInfo.UIEventHandler)
- if uIChatRootWorld == nil then
- uIChatRootWorld = UIChatRoot:new()
- end
-
- local curChatType = self:GetChatChannelType()
- uIChatRootWorld:Init(self, curChatType, self.viewLua.chatView, nil, self.RefreshChatBg,true)
- self:SetChatChannelType(curChatType)
- if not ismainBattle then
- self.ismainBattle = ismainBattle
- self.viewLua.togwarlog:SetActive(false)
- end
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIPrivateChatBtn)
- end
- function NewBattleChatPart:RefreshChatBg()
- if not self.uiview or not self.uiview.uiBase or not self.uiBase then
- return
- end
- if not chatDisplayDurationTime then
- chatDisplayDurationTime = GlobalConfig.Instance:GetConfigIntValue(229)*1000
- end
- if nil ~= self.viewLua.chltogBg then
- DG.Tweening.DOTween.Kill(self.viewLua.chltogBg.canvasGroup)
- self.viewLua.chltogBg.canvasGroup:DOFade(1, 0)
- end
- --self.chltogBg:SetActive(true)
- if chatHideTimer then
- ManagerContainer.LuaTimerMgr:RemoveTimer(chatHideTimer)
- end
- chatHideTimer = ManagerContainer.LuaTimerMgr:AddTimer(chatDisplayDurationTime, 1, self, self.HideChatBg, nil)
- end
- function NewBattleChatPart:HideChatBg()
- if not self.uiview or not self.uiBase then
- return
- end
- self.viewLua.chltogBg.canvasGroup:DOFade(0, 0.5)
- end
- function NewBattleChatPart:AddUIEventListener()
- CommonUtil.CreateToggleMouduleOnlyBtns(self, pageToggleData, self.viewLua.chltogBg.toggleGroup, Enum.ChatChannel.World, self.OnValueChangedToggle)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiview.uiData.name, UIEventNames.WORLD_CHAT_UI_CLOSE, self, self.WorldChatUIClosed)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiview.uiData.name, UIEventNames.EID_Add_New_BattleLog, self,self.OnAddNewBattleLog)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiview.uiData.name, UIEventNames.EID_CLEAR_New_BattleLog, self,self.ClearBattleLog)
- if self.uieventhandler then
- self.uieventhandler:RemoveListener();
- self.uiBase:AddUIEventHandlerClickListener(self.uieventhandler, function (go)
- if not go or go.transform:IsChildOf(self.viewLua.transform) then
- return
- end
- if self.viewLua.funcbg then
- self.viewLua.funcbg:SetActive(false)
- end
- end)
- end
- self.uiview.uiBase:AddButtonEventListener(self.viewLua.btnChat.button, self, self.OpenWorldChat)
- self.viewLua.chatView.uIEventTriggerListener.onClick = function()
- self:RefreshChatBg()
- end
- self.viewLua.chatView.uIEventTriggerListener.onPointerUp = function()
- self:RefreshChatBg()
- end
- self.viewLua.battleLogView.uIEventTriggerListener.onClick = function()
- self:RefreshChatBg()
- end
- self.viewLua.battleLogView.uIEventTriggerListener.onPointerUp = function()
- self:RefreshChatBg()
- end
- uIChatRootWorld:AddUIEventListener()
- end
- function NewBattleChatPart:ClearBattleLog()
- if not self.uiview or not self.uiBase then
- return
- end
- self.logList = nil
- if self.bInitBattleLog then
- self.viewLua.battleLogView.loopVerticalScrollRect:ClearCells()
- end
- end
- function NewBattleChatPart:OnAddNewBattleLog()
- if not self.uiview or not self.uiBase then
- return
- end
- self.logList = LuaBattleBridge.GetBattleLog()
- if self.viewLua.battleLogView.loopVerticalScrollRect.ItemTypeStart >= 185 then
- self.viewLua.battleLogView.loopVerticalScrollRect:RefreshCellsData()
- else
- self.viewLua.battleLogView.loopVerticalScrollRect.totalCount = self.logList.Count
- local nEndItem = self.viewLua.battleLogView.loopVerticalScrollRect.ItemTypeEnd
- if self.logList.Count <= nEndItem + 2 then
- self.viewLua.battleLogView.loopVerticalScrollRect:MoveTo(self.logList.Count-1)
- end
- end
- end
- function NewBattleChatPart:OpenWorldChat()
- if not self.uiview or not self.uiBase then
- return
- end
- self.viewLua.chatView:SetActive(false)
- if ManagerContainer.LuaBattleMgr:GetBossFightState() then
- self.viewLua.battleLogView:SetActive(false)
- end
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIChat)
- end
- function NewBattleChatPart:WorldChatUIClosed()
- if not self.uiview or not self.uiBase then
- return
- end
- self.viewLua.chatView:SetActive(true)
- if uIChatRootWorld then
- local curChatType = self:GetChatChannelType()
- self:SetToggleGroupStatus(curChatType)
- self:OnValueChangedToggle(curChatType, true)
- end
- self.viewLua.battleLogView:SetActive(false)
- end
- function NewBattleChatPart:SetToggleGroupStatus(chatType)
- local toggleGroup = self.viewLua.chltogBg.toggleGroup
- self.viewLua.togworld.toggle.isOn = (chatType == 1)
- self.viewLua.togguild.toggle.isOn = (chatType == 2)
- self.viewLua.togsystem.toggle.isOn = (chatType == 3)
- self.viewLua.togwarlog.toggle.isOn = (chatType == 4)
- pageToggleData.toggleDefaultIndex = chatType
- end
- function NewBattleChatPart:OnValueChangedToggle(idx, dontDisplay)
- if not self.uiview or not self.uiBase then
- return
- end
- local forceRefresh = true
- self.viewLua.btnChat:SetActive(pageToggleData.toggleDefaultIndex ~= Enum.ChatChannel.BattleRecord)
- if pageToggleData.toggleDefaultIndex == Enum.ChatChannel.World then
- self.viewLua.chatView:SetActive(true)
- self.viewLua.battleLogView:SetActive(false)
- uIChatRootWorld:SetChannelType(Enum.ChatChannel.World, forceRefresh)
- elseif pageToggleData.toggleDefaultIndex == Enum.ChatChannel.Guild then
- local errorCode = ManagerContainer.DataMgr.GuildDataMgr:GetGuildDataStateErrorCode()
- if errorCode then
- ManagerContainer.LuaUIMgr:ErrorNoticeDisplay(errorCode)
- self:SetToggleGroupStatus(self:GetChatChannelType())
- return
- end
- self.viewLua.chatView:SetActive(true)
- self.viewLua.battleLogView:SetActive(false)
- uIChatRootWorld:SetChannelType(Enum.ChatChannel.Guild, forceRefresh)
- elseif pageToggleData.toggleDefaultIndex == Enum.ChatChannel.System then
- self.viewLua.chatView:SetActive(true)
- self.viewLua.battleLogView:SetActive(false)
- uIChatRootWorld:SetChannelType(Enum.ChatChannel.System, forceRefresh)
- elseif pageToggleData.toggleDefaultIndex == Enum.ChatChannel.BattleRecord then
- self.viewLua.chatView:SetActive(false)
- self.viewLua.battleLogView:SetActive(true)
- self:ShowBattleLog()
- end
- self:SetChatChannelType(pageToggleData.toggleDefaultIndex)
- if not dontDisplay then
- self:RefreshChatBg()
- end
- --end
- end
- function NewBattleChatPart:ShowBattleLog()
- if not self.uiview or not self.uiBase then
- return
- end
- if self.bInitBattleLog then
- return
- end
- self.bInitBattleLog = true
- self.viewLua.battleLogView.loopVerticalScrollRect:SetUpdateCellCallback(nil,nil)
- self.viewLua.battleLogView.loopVerticalScrollRect:ClearCells()
- self.logList = LuaBattleBridge.GetBattleLog()
- if self.logList ~= nil then
- CommonUtil.LoopGridViewEleCreateWithList(self,
- self.viewLua.battleLogView.loopVerticalScrollRect,
- self.viewLua.battleLogView.content.verticalLayoutGroup,self.logList,0,self,self.OnSetBattleLogData,false,nil,0)
- self.viewLua.battleLogView.loopVerticalScrollRect:MoveTo(self.logList.Count-1);
- end
- end
- function NewBattleChatPart:OnSetBattleLogData(itemLua,idx)
- if not self.uiview or not self.uiview.uiBase or not self.uiBase then
- return
- end
- if idx < self.logList.Count and idx>=0 then
- itemLua.text.text.text = self.logList[idx]
- end
- end
- function NewBattleChatPart:SetCanvasOrder(order)
- if not self.uiview or not self.uiview.uiBase or not self.uiBase then
- return
- end
- self.viewLua.canvas.sortingOrder = order
- end
- function NewBattleChatPart:Show()
- uIChatRootWorld:Init(self, curChatType, self.viewLua.chatView, nil, self.RefreshChatBg,true)
- self.viewLua:SetActive(true)
- end
- function NewBattleChatPart:Dispose()
- pageToggleData.toggleList = nil;
- if chatHideTimer then
- ManagerContainer.LuaTimerMgr:RemoveTimer(chatHideTimer)
- end
- chatHideTimer = nil
- self.uieventhandler:RemoveListener();
- self.uieventhandler = nil
- self.viewLua.chatView.uIEventTriggerListener.onClick = nil
- self.viewLua.chatView.uIEventTriggerListener.onPointerUp = nil
- self.viewLua.battleLogView.uIEventTriggerListener.onClick = nil
- self.viewLua.battleLogView.uIEventTriggerListener.onPointerUp = nil
- ManagerContainer.DataMgr.ChatData:SetChatChannelType(Enum.ChatDataType.World)
- ManagerContainer.LuaUIMgr:ClosePage(Enum.UIPageName.UIChat)
- ManagerContainer.LuaUIMgr:ClosePage(Enum.UIPageName.UIPrivateChatBtn)
- end
- return NewBattleChatPart
|