2025-06-04 05:02:57 +08:00

218 lines
6.3 KiB
Plaintext

GvgLandInfoPopUp = class("GvgLandInfoPopUp", ContainerView)
GvgLandInfoPopUp.ViewType = UIViewType.PopUpLayer
autoImport("GuildHeadCell");
function GvgLandInfoPopUp:Init()
self:InitPopUp();
self:MapEvent();
end
function GvgLandInfoPopUp:InitPopUp()
self.title = self:FindComponent("TitleLabel", UILabel);
self.guildName = self:FindComponent("GuildName", UILabel);
self.guildLevel = self:FindComponent("GuildLevel", UILabel);
self.guildMemberNum = self:FindComponent("GuildMemberNum", UILabel);
self.level = self:FindComponent("Level", UILabel);
self.desc = self:FindComponent("Desc", UILabel);
self.errorTip = self:FindComponent("ErrorTip", UILabel);
self.fightButton = self:FindGO("FightButton");
self.fightButton_sp = self.fightButton:GetComponent(UISprite);
self.fightButton_collider = self.fightButton:GetComponent(BoxCollider);
self.fightButton_label = self:FindComponent("Label", UILabel, self.fightButton);
self:AddClickEvent(self.fightButton, function (go)
self:DoFight();
end);
local headCellGO = self:FindGO("GuildHeadCell");
self.guildHeadCell = GuildHeadCell.new(headCellGO);
self.guildIcon = self:FindComponent("GuildIcon", UISprite);
self.noneTip = self:FindGO("NoneTip");
self.noOpenTip = self:FindGO("NoOpenTip");
self.buttons = self:FindGO("Buttons");
self.downInfo = self:FindGO("DownInfo");
self.bg = self:FindComponent("Bg", UISprite);
end
function GvgLandInfoPopUp:ActiveFightButton(b)
if(b)then
self.fightButton_sp.color = ColorUtil.NGUIWhite;
self.fightButton_collider.enabled = true;
self.fightButton_label.effectColor = ColorUtil.ButtonLabelOrange;
else
self.fightButton_sp.color = ColorUtil.NGUIShaderGray;
self.fightButton_collider.enabled = false;
self.fightButton_label.effectColor = ColorUtil.NGUIGray;
end
end
function GvgLandInfoPopUp:DoFight()
-- if GvgProxy.Instance:IsInFightingTime() then
-- helplog("Call-->GoCityGateMapCmd:", self.flagid);
-- ServiceMapProxy.Instance:CallGoCityGateMapCmd(self.flagid)
-- end
local nowZoneid = MyselfProxy.Instance:GetZoneId();
local myGuildData = GuildProxy.Instance.myGuildData;
if(myGuildData == nil or myGuildData.zoneid ~= nowZoneid)then
MsgManager.ConfirmMsgByID(2215, function ()
ServiceMapProxy.Instance:CallGoCityGateMapCmd(self.flagid)
self:CloseSelf();
end)
return;
end
ServiceMapProxy.Instance:CallGoCityGateMapCmd(self.flagid)
self:CloseSelf();
end
function GvgLandInfoPopUp:UpdatePopUp()
self.ruleGuild, self.ruleGuild_type = GvgProxy.Instance:GetRuleGuildInfo(self.flagid);
if(self.ruleGuild ~= nil and self.ruleGuild_type == 2)then
if(self.ruleGuild.guildid == nil or self.ruleGuild.guildid == 0)then
self.ruleGuild = nil;
end
end
if(self.ruleGuild)then
self.noneTip:SetActive(false);
local ruleGuild_lv = self.ruleGuild.lv or 0;
self.level.text = "Lv." .. ruleGuild_lv;
self.guildName.text = self.ruleGuild.name;
self.guildMemberNum.text = self.ruleGuild.membercount or 0;
self.guildLevel.text = ruleGuild_lv;
local headData = GuildHeadData.new();
headData:SetBy_InfoId(self.ruleGuild.portrait);
local ruleid = self.ruleGuild_type == 1 and self.ruleGuild.id or self.ruleGuild.guildid;
headData:SetGuildId(ruleid);
self.guildHeadCell:SetData(headData);
local guildIconData = Table_Guild_Icon[self.ruleGuild.portrait]
local guildIcon = guildIconData and guildIconData.Icon or nil;
if(guildIcon ~= nil)then
IconManager:SetGuildIcon(guildIcon, self.guildIcon);
end
else
self.level.text = "";
self.noneTip:SetActive(true);
self.guildName.text = ZhString.GvgLandInfoPopUp_NoRuleTip;
self.guildMemberNum.text = ZhString.GvgLandInfoPopUp_None;
self.guildLevel.text = ZhString.GvgLandInfoPopUp_None;
self.guildHeadCell:SetData();
end
if(GvgProxy.Instance:IsInFightingTime())then
self.fightButton_label.text = ZhString.GvgLandInfoPopUp_JoinFight;
else
self.fightButton_label.text = ZhString.GvgLandInfoPopUp_EnterArea;
end
local config = Table_Guild_StrongHold and Table_Guild_StrongHold[self.flagid];
if(config)then
self.title.text = config.Name;
self.desc.text = config.Text;
else
self.title.text = "Not Find Config";
self.desc.text = string.format("Not Find FlagConfig:%s In Table_Guild_StrongHold", self.flagid);
end
self:UpdateFightState();
end
function GvgLandInfoPopUp:UpdateFightState(note)
local open = true;
if(note)then
open = note.body.cityopen == true;
end
self.buttons:SetActive(open);
self.noOpenTip:SetActive(not open);
if(GvgProxy.Instance:IsInFightingTime())then
self:ActiveFightButton(true);
else
self:ActiveFightButton(false);
end
local config = Table_Guild_StrongHold and Table_Guild_StrongHold[self.flagid];
if(config)then
self.desc.text = config.Text;
else
self.desc.text = string.format("Not Find FlagConfig:%s In Table_Guild_StrongHold", self.flagid);
end
local myGuildData = GuildProxy.Instance.myGuildData;
local myGuildId = myGuildData and myGuildData.id or 0;
if(self.ruleGuild == nil)then
self.errorTip.text = "";
return;
end
local ruleid = self.ruleGuild_type == 1 and self.ruleGuild.id or self.ruleGuild.guildid;
if(ruleid == myGuildId)then
-- 自己的公會
self.errorTip.text = ZhString.GvgLandInfoPopUp_MyLandTip;
return;
end
if(not GvgProxy.Instance:IsInFightingTime())then
-- 不在公會戰時間
local openTime = GvgProxy.Instance:GetGvgOpenTime();
local timeDateInfo = os.date("*t", openTime);
self.errorTip.text = string.format(ZhString.GvgLandInfoPopUp_OpenTip, timeDateInfo.month, timeDateInfo.day, timeDateInfo.hour);
return;
end
self.errorTip.text = "";
end
function GvgLandInfoPopUp:ActiveDownInfo(b)
self.downInfo:SetActive(b);
if(b)then
self.bg.height = 524;
else
self.bg.height = 434;
end
end
function GvgLandInfoPopUp:MapEvent()
self:AddListenEvt(ServiceEvent.FuBenCmdGuildFireStatusFubenCmd, self.UpdateFightState);
self:AddListenEvt(ServiceEvent.PlayerMapChange, self.HandlePlayerMapChange);
end
function GvgLandInfoPopUp:HandlePlayerMapChange(note)
self:CloseSelf();
end
function GvgLandInfoPopUp:OnEnter()
GvgLandInfoPopUp.super.OnEnter(self);
self.flagid = self.viewdata.viewdata.flagid;
self:UpdatePopUp();
self.hideDownInfo = self.viewdata.viewdata.hide_downinfo;
self:ActiveDownInfo(self.hideDownInfo ~= true);
ServiceFuBenCmdProxy.Instance:CallGuildFireStatusFubenCmd(nil, nil, self.flagid);
end
function GvgLandInfoPopUp:OnExit()
GvgLandInfoPopUp.super.OnExit(self);
end