ro-table/Asstes/Resources/Script/FrameWork/GUI/view/GuildBuildingView.txt
2025-06-04 05:02:57 +08:00

132 lines
3.8 KiB
Plaintext

autoImport("GuildBuildingCell")
GuildBuildingView = class("GuildBuildingView",ContainerView)
GuildBuildingView.ViewType = UIViewType.NormalLayer
function GuildBuildingView:Init()
self:FindObjs()
self:MapListenEvt()
self:InitUIView()
end
function GuildBuildingView:FindObjs()
self.titleLab = self:FindComponent("Title",UILabel)
self.ScrollView = self:FindGO("ScrollView")
self.container = self:FindGO("Container")
end
function GuildBuildingView:MapListenEvt()
self:AddListenEvt(ServiceEvent.GuildCmdBuildingNtfGuildCmd, self.HandleBuildingNtf)
end
local params = {}
local format = string.format
function GuildBuildingView:HandleBuildingNtf(note)
local buildings = note.body.buildings
if(buildings and #buildings==1)then
local cellData=buildings[1]
local buildingData = GuildBuildingData.new();
buildingData:SetData(cellData)
if(buildingData.isbuilding and buildingData.staticData)then
TableUtility.ArrayClear(params)
params[1] = buildingData.staticData.Name
params[2] = buildingData.staticData.Level>0 and format(ZhString.GuildBuilding_StartBuild,ZhString.GuildBuilding_Levelup) or format(ZhString.GuildBuilding_StartBuild,ZhString.GuildBuilding_Build)
MsgManager.ShowMsgByIDTable(3714, params)
self:CloseSelf()
end
end
self:UpdataBuilding();
end
function GuildBuildingView:CallBuildingSubmitCountGuildCmd(type)
ServiceGuildCmdProxy.Instance:CallBuildingSubmitCountGuildCmd(type)
end
function GuildBuildingView:InitUIView()
self.titleLab.text=ZhString.GuildBuilding_TitleName
if(self.wrapHelper == nil)then
local wrapConfig = {
wrapObj = self.container,
pfbNum = 5,
cellName = "GuildBuildingCell",
control = GuildBuildingCell,
dir = 2,
}
self.wrapHelper = WrapCellHelper.new(wrapConfig)
self.wrapHelper:AddEventListener(MouseEvent.MouseClick, self.OpenTips, self)
self.wrapHelper:AddEventListener(GuildBuildingEvent.OnClickBuildBtn, self.StartBuild, self);
end
self:UpdataBuilding()
end
function GuildBuildingView:OpenTips(cellCtl)
if(cellCtl and cellCtl.data)then
if(self.chooseTip~=cellCtl.data.type)then
self.chooseTip=cellCtl.data.type
if(UIUtil.isClickLeftScreenArea())then
self:ShowBuildingTip(cellCtl.data,cellCtl.icon,NGUIUtil.AnchorSide.Right,{190,-62})
else
self:ShowBuildingTip(cellCtl.data,cellCtl.icon,NGUIUtil.AnchorSide.Left,{-190,-62})
end
else
TipManager.Instance:CloseTip()
self.chooseTip=nil
end
end
end
function GuildBuildingView:StartBuild(cellCtl)
if(cellCtl and cellCtl.data)then
local result = GuildBuildingProxy.Instance:GetBuildAuth()
if(result==GuildBuildingProxy.BuildAuth.EBuildAuth_OnBuild)then
MsgManager.ShowMsgByID(3700)
return
end
if(result==GuildBuildingProxy.BuildAuth.EBuildAuth_OnCD)then
MsgManager.ShowMsgByID(3705)
return
end
local data = cellCtl.data
if(data:GetCondMenu())then
MsgManager.ShowMsgByID(3705) -- ID待配置
return
end
if(data:LvlLimited())then
MsgManager.ShowMsgByID(2868)
return
end
local myGuildLv = GuildProxy.Instance.myGuildData.level
if data.level <GameConfig.Guild.building_check_lv and data.level>=myGuildLv then
MsgManager.ShowMsgByID(3701)
return
end
ServiceGuildCmdProxy.Instance:CallBuildGuildCmd(data.type)
end
end
function GuildBuildingView:ShowBuildingTip(data,stick,side,offset)
local sdata = {
itemdata = data,
ignoreBounds = ignoreBounds,
};
local tip = TipManager.Instance:ShowGuildBuildingTip(sdata,stick,side,offset)
tip:AddIgnoreBounds(self.ScrollView)
end
function GuildBuildingView:UpdataBuilding()
local data = GuildBuildingProxy.Instance.BuildingData
if(data)then
self.wrapHelper:UpdateInfo(data)
end
end
function GuildBuildingView:OnEnter()
GuildBuildingView.super.OnEnter(self);
end
function GuildBuildingView:OnExit()
PictureManager.Instance:UnLoadUI()
GuildBuildingView.super.OnExit(self);
end