--[[ 势力红包 系统Controller --]] local RedPacket_Controller = {} local private = {} function RedPacket_Controller.OnStartup() private.redPacketMax = DataSheetManager.ConstData:GetDataByID("BangHongBaoGetMax").IntValue end function RedPacket_Controller.OnShutdown() end function RedPacket_Controller.OpenRedPacketInfo() UIManager.OpenView(Const_UI_Lua.UIEnum.UIRedPacketRecord) end function RedPacket_Controller.ShowOrHideRedPacket(show) if show == nil then show = not MDL.RedPacket.CanReveiveRedPacketIsEmpty() end -- 如果今日领取达到上限 则不显示红包 if MDL.RedPacket.GetRedPacketReceiveTimes() == private.redPacketMax then show = false end if show then if BattleDataGetter.IsTownLevel() then -- 当处于红包主界面、红包领取界面时 不显示 if UIManager.IsViewOpened(Const_UI_Lua.UIEnum.UIRedPacketMain) or UIManager.IsViewOpened(Const_UI_Lua.UIEnum.UIRedPacketRecord) then return end CTL.HomeMain.AddMainNotice(CTL.HomeMain.NoticeType.OpenRedPacket) end else CTL.HomeMain.RemoveMainNotice(CTL.HomeMain.NoticeType.OpenRedPacket) end end function RedPacket_Controller.RefreshRedPoint() if string.isNilOrEmpty(MDL.Guild.GetMyGuildId()) or (MDL.RedPacket.GetNotHasNewRedEnvelope() and MDL.RedPacket.CanReveiveRedPacketIsEmpty()) or MDL.RedPacket.GetRedPacketReceiveTimes() >= private.redPacketMax then CTL.RedPoint.RemoveRedPoint(CTL.RedPoint.RedPointKey.Guild_Member_RedPacket) else CTL.RedPoint.AddRedPoint(CTL.RedPoint.RedPointKey.Guild_Member_RedPacket) end end function RedPacket_Controller.GetRedPacketDescForChat(redPacketId) local redPacketData = DataSheetManager.HongBao:GetDataByID(redPacketId) if redPacketData then return string.format("[r]%s", RedPacket_Controller.GetRedPacketDescByRedPacketData(redPacketData)) else logging.error(LTAG.ERROR, "势力红包 : 没有找到 id = ", redPacketId, " 的红包数据") return "[r]" end end function RedPacket_Controller.GetRedPacketDescByRedPacketData(redPacketData) local desc = "" if redPacketData.HongBaoTrigger > 0 then local triggerData = DataSheetManager.TriggerID:GetDataByID(redPacketData.HongBaoTrigger) if triggerData then desc = MDL.Unlock.GetDesByTriggerID(triggerData.Unlock_Table[1]) else logging.error(LTAG.ERROR, "势力红包 : 没有找到 id = ", redPacketData.HongBaoTrigger, " 的Trigger数据") end else local redPacketIDS = DataSheetManager.HongBaoIDS:GetDataByID(redPacketData.ID) if redPacketIDS then if redPacketIDS.HongBaoIDSParam > 0 then desc = string.FormatByIdsId(Const_IDS[redPacketIDS.HongBaoIDSDes], redPacketIDS.HongBaoIDSParam) else desc = UIUtils.GetLocalizedTxt(Const_IDS[redPacketIDS.HongBaoIDSDes]) end else logging.error(LTAG.ERROR, "势力红包 : 没有找到 id = ", redPacketData.ID, " 的红包redPacketIDS数据") end end return desc end return RedPacket_Controller