PGRData/Script/matrix/xui/xuihosteldelegate/XUiHostelDelegate.lua

194 lines
No EOL
8.5 KiB
Lua

local XUiHostelDelegate = XUiManager.Register("UiHostelDelegate")
local table_insert = table.insert
-- auto
-- Automatic generation of code, forbid to edit
function XUiHostelDelegate:InitAutoScript()
self:AutoInitUi()
self.SpecialSoundMap = {}
self:AutoAddListener()
end
function XUiHostelDelegate:AutoInitUi()
self.PanelBg = self.Transform:Find("FullScreenBackground/PanelBg")
self.PanelCharTopButton = self.Transform:Find("SafeAreaContentPane/PanelCharTopButton")
self.BtnBack = self.Transform:Find("SafeAreaContentPane/PanelCharTopButton/BtnBack"):GetComponent("Button")
self.PanelLeft = self.Transform:Find("SafeAreaContentPane/PanelLeft")
self.ScrollView = self.Transform:Find("SafeAreaContentPane/PanelLeft/ScrollView"):GetComponent("Scrollbar")
self.PanelTabGroup = self.Transform:Find("SafeAreaContentPane/PanelLeft/ScrollView/Viewport/PanelTabGroup")
self.BtnTab1 = self.Transform:Find("SafeAreaContentPane/PanelLeft/ScrollView/Viewport/PanelTabGroup/BtnTab1"):GetComponent("Button")
self.TxtNormal = self.Transform:Find("SafeAreaContentPane/PanelLeft/ScrollView/Viewport/PanelTabGroup/BtnTab1/TxtNormal"):GetComponent("Text")
self.TxtSelected = self.Transform:Find("SafeAreaContentPane/PanelLeft/ScrollView/Viewport/PanelTabGroup/BtnTab1/TxtSelected"):GetComponent("Text")
self.PanelReport = self.Transform:Find("SafeAreaContentPane/PanelLeft/PanelReport")
self.BtnReport = self.Transform:Find("SafeAreaContentPane/PanelLeft/PanelReport/BtnReport"):GetComponent("Button")
self.TxtReleaseCount = self.Transform:Find("SafeAreaContentPane/PanelLeft/PanelReport/TxtReleaseCount"):GetComponent("Text")
self.TxtCompleteCount = self.Transform:Find("SafeAreaContentPane/PanelLeft/PanelReport/TxtCompleteCount"):GetComponent("Text")
self.PanelContent = self.Transform:Find("SafeAreaContentPane/PanelContent")
self.TxtTitle = self.Transform:Find("SafeAreaContentPane/PanelContent/TxtTitle"):GetComponent("Text")
self.TxtDesc = self.Transform:Find("SafeAreaContentPane/PanelContent/TxtDesc"):GetComponent("Text")
self.ImgRewardIcon = self.Transform:Find("SafeAreaContentPane/PanelContent/ImgRewardIcon"):GetComponent("Image")
self.TxtRewardCount = self.Transform:Find("SafeAreaContentPane/PanelContent/TxtRewardCount"):GetComponent("Text")
self.PanelBottom = self.Transform:Find("SafeAreaContentPane/PanelBottom")
self.PanelRelease = self.Transform:Find("SafeAreaContentPane/PanelBottom/PanelRelease")
self.BtnAdd = self.Transform:Find("SafeAreaContentPane/PanelBottom/PanelRelease/BtnAdd"):GetComponent("Button")
self.BtnMinus = self.Transform:Find("SafeAreaContentPane/PanelBottom/PanelRelease/BtnMinus"):GetComponent("Button")
self.TxtCount = self.Transform:Find("SafeAreaContentPane/PanelBottom/PanelRelease/TxtCount"):GetComponent("Text")
self.BtnRelease = self.Transform:Find("SafeAreaContentPane/PanelBottom/PanelRelease/BtnRelease"):GetComponent("Button")
self.TxtRemainCount = self.Transform:Find("SafeAreaContentPane/PanelBottom/PanelRelease/TxtRemainCount"):GetComponent("Text")
self.PanelMission = self.Transform:Find("SafeAreaContentPane/PanelBottom/PanelMission")
self.BtnCancel = self.Transform:Find("SafeAreaContentPane/PanelBottom/PanelMission/BtnCancel"):GetComponent("Button")
self.BtnHelp = self.Transform:Find("SafeAreaContentPane/PanelBottom/PanelMission/BtnHelp"):GetComponent("Button")
end
function XUiHostelDelegate:GetAutoKey(uiNode,eventName)
if not uiNode then return end
return eventName .. uiNode:GetHashCode()
end
function XUiHostelDelegate:RegisterListener(uiNode, eventName, func)
local key = self:GetAutoKey(uiNode, eventName)
if not key then return end
local listener = self.AutoCreateListeners[key]
if listener ~= nil then
uiNode[eventName]:RemoveListener(listener)
end
if func ~= nil then
if type(func) ~= "function" then
XLog.Error("XUiHostelDelegate:RegisterListener函数错误, 参数func需要是function类型, func的类型是" .. type(func))
end
listener = function(...)
XSoundManager.PlayBtnMusic(self.SpecialSoundMap[key],eventName)
func(self, ...)
end
uiNode[eventName]:AddListener(listener)
self.AutoCreateListeners[key] = listener
end
end
function XUiHostelDelegate:AutoAddListener()
self.AutoCreateListeners = {}
XUiHelper.RegisterClickEvent(self, self.BtnBack, self.OnBtnBackClick)
XUiHelper.RegisterClickEvent(self, self.BtnReport, self.OnBtnReportClick)
XUiHelper.RegisterClickEvent(self, self.BtnAdd, self.OnBtnAddClick)
XUiHelper.RegisterClickEvent(self, self.BtnMinus, self.OnBtnMinusClick)
XUiHelper.RegisterClickEvent(self, self.BtnRelease, self.OnBtnReleaseClick)
XUiHelper.RegisterClickEvent(self, self.BtnCancel, self.OnBtnCancelClick)
XUiHelper.RegisterClickEvent(self, self.BtnHelp, self.OnBtnHelpClick)
end
-- auto
function XUiHostelDelegate:OnOpen(deviceType)
self:InitAutoScript()
self.BtnDelegateTypeList = {}
table_insert(self.BtnDelegateTypeList,self.BtnTab1)
self.DeviceType = deviceType
self:UpdateView()
end
function XUiHostelDelegate:UpdateView()
local bRes, playerId = XDataCenter.HostelManager.IsInVisitFriendHostel()
if bRes then
self.IsVisitPlayer = true
self.PanelMission.gameObject:SetActive(true)
self.PanelReport.gameObject:SetActive(false)
self.PanelRelease.gameObject:SetActive(false)
self.VisitPlayerId = playerId
else
self.PanelMission.gameObject:SetActive(false)
self.PanelReport.gameObject:SetActive(true)
self.PanelRelease.gameObject:SetActive(true)
end
self:UpdateTabGroup()
end
function XUiHostelDelegate:UpdateTabGroup()
local delegateTypeList = XDataCenter.HostelDelegateManager.GetDelegateListByDeviceType(self.DeviceType)
if not delegateTypeList or #delegateTypeList == 0 then
return
end
self.DelegateTypeList = delegateTypeList
for i,_ in ipairs(delegateTypeList) do
local btn = self.BtnDelegateTypeList[i]
if not btn then
btn = CS.UnityEngine.Object.Instantiate(self.BtnTab1)
btn.transform:SetParent(self.PanelTabGroup, false)
table.insert(self.BtnDelegateTypeList, btn)
end
end
if self.TabBtnGroup then
self.TabBtnGroup:Dispose()
end
self.TabBtnGroup = XUiTabBtnGroup.New(self.BtnDelegateTypeList, function(index) self:OnSeletDelegateType(index) end)
for i,btn in ipairs(self.TabBtnGroup.TabBtnList) do
local config = XDataCenter.HostelDelegateManager.GetDelegateTemplateByType(delegateTypeList[i])
if config then
btn:SetName(config.DelegateName)
end
end
self.TabBtnGroup:SelectIndex(1)
end
function XUiHostelDelegate:OnSeletDelegateType(index)
local delegateType = self.DelegateTypeList[index]
self:UpdeteDelegateDes(delegateType)
if self.IsVisitPlayer then
self:UpdateMissonView(delegateType)
else
self:UpdatePublishView(delegateType)
end
end
function XUiHostelDelegate:UpdeteDelegateDes(delegateType)
local config = XDataCenter.HostelDelegateManager.GetDelegateTemplateByType(delegateType)
if not config then return end
self.TxtTitle.text = config.DelegateName
self.TxtDesc.text = config.ReportDes
end
function XUiHostelDelegate:UpdatePublishView(delegateType)
local config = XDataCenter.HostelDelegateManager.GetDelegateTemplateByType(delegateType)
if not config then return end
local Id, count = XDataCenter.HostelManager.GetDevieWorkSlotPruduct(config.SlotType)
self:SetUiSprite(self.ImgRewardIcon, XDataCenter.ItemManager.GetItemIcon(Id))
self.TxtRewardCount.text = math.floor(count * config.PublishAwardPercent / 100 )
end
function XUiHostelDelegate:UpdateMissonView(delegateType)
local config = XDataCenter.HostelDelegateManager.GetDelegateTemplateByType(delegateType)
if not config then return end
local Id, count = XDataCenter.HostelManager.GetDevieWorkSlotPruduct(config.SlotType)
self:SetUiSprite(self.ImgRewardIcon, XDataCenter.ItemManager.GetItemIcon(Id))
self.TxtRewardCount.text = math.floor(count * config.AssistAwardPercent / 100 )
end
function XUiHostelDelegate:OnBtnBackClick()
end
function XUiHostelDelegate:OnBtnReportClick()
end
function XUiHostelDelegate:OnBtnAddClick()
end
function XUiHostelDelegate:OnBtnMinusClick()
end
function XUiHostelDelegate:OnBtnReleaseClick()
end
function XUiHostelDelegate:OnBtnCancelClick()
end
function XUiHostelDelegate:OnBtnHelpClick()
end