From bcbbdae9f85dbb3efd58f0eaafe9f548caa5d923 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期三, 10 六月 2026 18:14:00 +0800
Subject: [PATCH] 588 公会攻防战 移除多余using DG.DemiEditor
---
Main/System/Guild/GuildBaseWin.cs | 308 +++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 297 insertions(+), 11 deletions(-)
diff --git a/Main/System/Guild/GuildBaseWin.cs b/Main/System/Guild/GuildBaseWin.cs
index 5227648..a862e87 100644
--- a/Main/System/Guild/GuildBaseWin.cs
+++ b/Main/System/Guild/GuildBaseWin.cs
@@ -1,5 +1,9 @@
+using System;
using System.Collections;
using System.Collections.Generic;
+using Cysharp.Threading.Tasks;
+using DG.Tweening;
+using System.Text;
using UnityEngine;
using UnityEngine.UI;
@@ -16,10 +20,41 @@
[SerializeField] Text guildNameText;
[SerializeField] Text guildMemberCountText;
[SerializeField] Button rankBtn;
-
-
-
+ [SerializeField] Button storeBtn;
+ [SerializeField] RichText talkInfoText;
+ [SerializeField] Button talkBtn;
+ [SerializeField] Button talkBtn1;
[SerializeField] Button requestBtn;
+
+
+ [SerializeField] ImageEx guildBattleLockImg;
+ [SerializeField] Text guildBattleTitleText;
+ [SerializeField] Button guildBattleBtn;
+ [SerializeField] Text guildBattleState;
+ [SerializeField] Image guildBattleStateImg;
+ [SerializeField] Text GuildBattleCountDownTime;
+ [SerializeField] ImageEx guildBattleImg;
+ [SerializeField] UIEffectPlayer guildBattleEffect;
+
+
+ [SerializeField] Color32 guildBattleState1;//鏈弬鎴�
+ [SerializeField] Color32 guildBattleState2;//瀵规垬澶辫触
+ [SerializeField] Color32 guildBattleState3;//澶囨垬涓�
+ [SerializeField] Color32 guildBattleState4;//婵�鎴樹腑
+ [SerializeField] Color32 guildBattleState5;//瀵规垬鑳滃埄
+
+
+ //NPC瀵硅瘽鐩稿叧
+ [Header("琛屽晢蹇呴』鏀剧涓�涓�")]
+ [SerializeField] HeroSkinModel[] funcNPCs;
+ [SerializeField] Transform[] talkRects;
+ [SerializeField] Text[] talkTexts;
+
+ //琛屽晢鐗规畩澶勭悊
+ [SerializeField] Transform hawkerRect;
+ [SerializeField] Transform pos1;
+ [SerializeField] Transform pos2;
+ [SerializeField] UIHeroController hawkerModel;
protected override void InitComponent()
{
@@ -30,10 +65,28 @@
requestBtn.AddListener(() =>
{
- // UIManager.Instance.OpenWindow<GuildRequestWin>();
+ UIManager.Instance.OpenWindow<GuildApplyListWin>();
});
-
+
guildHawkerBtn.AddListener(OpenHawker);
+ storeBtn.AddListener(() =>
+ {
+ StoreModel.Instance.selectStoreFuncType = StoreFunc.Guild;
+ UIManager.Instance.OpenWindow<StoreBaseWin>();
+ });
+ rankBtn.AddListener(() =>
+ {
+ UIManager.Instance.OpenWindow<GuildRankWin>();
+ });
+ guildBattleBtn.AddListener(() =>
+ {
+ if (!GuildAtkDefBatManager.Instance.IsOpen(true))
+ return;
+ UIManager.Instance.OpenWindow<GuildAtkDefBatWin>();
+ });
+ InitHawker();
+ talkBtn.AddListener(OnClickTalkButton);
+ talkBtn1.AddListener(OnClickTalkButton);
}
@@ -42,30 +95,123 @@
if (PlayerDatas.Instance.fairyData.fairy == null)
return;
GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
-
+ GlobalTimeEvent.Instance.fiveSecondEvent += OnFiveSecondEvent;
+ ChatManager.Instance.OnUpdateTalkEvent += OnUpdateTalkEvent;
+ PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo;
+ FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
+ GuildAtkDefBatManager.Instance.OnUpdateAtkDefBatInfoEvent += OnUpdateAtkDefBatInfoEvent;
Display();
}
protected override void OnPreClose()
{
GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent;
+ GlobalTimeEvent.Instance.fiveSecondEvent -= OnFiveSecondEvent;
+ ChatManager.Instance.OnUpdateTalkEvent -= OnUpdateTalkEvent;
+ PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= OnRefreshFairyInfo;
+ FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
+ GuildAtkDefBatManager.Instance.OnUpdateAtkDefBatInfoEvent -= OnUpdateAtkDefBatInfoEvent;
+ }
+ private void OnUpdateAtkDefBatInfoEvent()
+ {
+ ShowGuildBattleInfo();
}
+ private void OnFuncStateChangeEvent(int funcId)
+ {
+ if (funcId == (int)FuncOpenEnum.GuildAtkDefBat)
+ ShowGuildBattleInfo();
+ }
+
+ void OnRefreshFairyInfo()
+ {
+ ShowGuildInfo();
+ }
+
+ private void OnUpdateTalkEvent(ChatChannel channel, TalkData data, bool isSendBullet)
+ {
+ if (channel != ChatChannel.Guild)
+ return;
+ ShowTalkInfo();
+ }
void Display()
{
ShowGuildInfo();
ShowHawkerTime();
+ ShowTalkInfo();
+ ShowGuildBattleInfo();
}
void OnSecondEvent()
{
- ShowHawkerTime();
+ ShowHawkerTime(true);
+ UpdateGuildBattleCountdown();
+ }
+
+ /// <summary>
+ /// 鍒锋柊鏀婚槻鎴樼殑褰撳墠鐘舵�佸強瀵瑰簲鎻忚竟棰滆壊
+ /// </summary>
+ void ShowGuildBattleInfo()
+ {
+ bool isOpen = GuildAtkDefBatManager.Instance.IsOpen();
+ guildBattleLockImg.SetActive(!isOpen);
+ guildBattleTitleText.color = isOpen ? new Color32(222, 212, 200, 255) : UIHelper.GetUIColor(TextColType.Gray);
+ guildBattleStateImg.SetActive(isOpen);
+ guildBattleImg.SetActive(isOpen);
+ guildBattleEffect.SetActive(false);
+
+ if (!isOpen)
+ return;
+
+ // 鐘舵�佹爣璇嗭細1-鏈弬鎴�, 2-澶囨垬涓�, 3-婵�鎴樹腑, 4-鑳滃埄(浼戞垬涓�), 5-澶辫触(浼戞垬涓�)
+ int displayState = GuildAtkDefBatManager.Instance.GetGuildBattleDisplayState();
+
+ switch (displayState)
+ {
+ case 1: // 鏈弬鎴�
+ guildBattleState.text = Language.Get("GuildAtkDefBat27");
+ guildBattleState.color = guildBattleState1;
+ break;
+ case 2: // 澶囨垬涓�
+ guildBattleState.text = Language.Get("GuildAtkDefBat25");
+ guildBattleState.color = guildBattleState3;
+ break;
+ case 3: // 婵�鎴樹腑
+ guildBattleState.text = Language.Get("GuildAtkDefBat24");
+ guildBattleState.color = guildBattleState4;
+ guildBattleImg.SetActive(false);
+ guildBattleEffect.SetActive(true);
+ break;
+ case 4: // 鑳滃埄(浼戞垬涓�)
+ guildBattleState.text = Language.Get("GuildAtkDefBat23");
+ guildBattleState.color = guildBattleState5;
+ break;
+ case 5: // 澶辫触(浼戞垬涓�)
+ guildBattleState.text = Language.Get("GuildAtkDefBat26");
+ guildBattleState.color = guildBattleState2;
+ break;
+ }
+ UpdateGuildBattleCountdown();
+ }
+
+ /// <summary>
+ /// 鍒锋柊鍊掕鏃舵枃鏈� (姣忕璋冪敤), 浠呭鎴樻湡/婵�鎴樻湡鏄剧ず
+ /// </summary>
+ void UpdateGuildBattleCountdown()
+ {
+ int state = GuildAtkDefBatManager.Instance.BatState;
+ bool show = state == 2 || state == 3;
+ GuildBattleCountDownTime.SetActive(show);
+ if (!show) return;
+
+ GuildBattleCountDownTime.text = GuildAtkDefBatManager.Instance.GetGetCountdownToCurrentPeriodEndString();
}
void ShowGuildInfo()
{
- emblemCell.Display(PlayerDatas.Instance.fairyData.fairy.EmblemID, PlayerDatas.Instance.fairyData.fairy.EmblemWord, 0.5f);
+ requestBtn.SetActive(PlayerDatas.Instance.fairyData.HasFairy && PlayerDatas.Instance.fairyData.IsCanFunc(LimitFunc.CanCall));
+ emblemCell.Display(PlayerDatas.Instance.fairyData.fairy.EmblemID, PlayerDatas.Instance.fairyData.fairy.EmblemWord, 0.8f);
guildNameText.text = PlayerDatas.Instance.fairyData.fairy.FamilyName;
var config = FamilyConfig.Get(PlayerDatas.Instance.fairyData.fairy.FamilyLV);
guildMemberCountText.text = PlayerDatas.Instance.fairyData.fairy.MemberCount + "/" + config.MemberMax;
@@ -73,7 +219,7 @@
void OpenHawker()
{
- if (TimeUtility.GetToTenClockSeconds() > 0)
+ if (TimeUtility.GetToTheHourSeconds() > 0)
{
SysNotifyMgr.Instance.ShowTip("GuildSys17");
return;
@@ -81,21 +227,161 @@
UIManager.Instance.OpenWindow<GuildHawkerWin>();
}
- void ShowHawkerTime()
+ void ShowHawkerTime(bool modelPlay = false)
{
- var toTenSeconds = TimeUtility.GetToTenClockSeconds();
+ var toTenSeconds = TimeUtility.GetToTheHourSeconds();
if (toTenSeconds > 0)
{
guildHawkerTimeText.text = TimeUtility.SecondsToHMS(toTenSeconds);
guildHawkerInfo.SetActive(true);
var addStr = new string('.', (int)Time.time % 4);
guildHawkerInfo.text = Language.Get("Guild_72") + addStr;
+ if (modelPlay)
+ HawkerMove(false);
}
else
{
guildHawkerTimeText.text = TimeUtility.SecondsToHMS((int)(TimeUtility.GetTodayEndTime() - TimeUtility.ServerNow).TotalSeconds);
guildHawkerInfo.SetActive(false);
+ if (modelPlay)
+ HawkerMove(true);
}
+
}
+
+ void InitHawker()
+ {
+ if (FuncNPCManager.Instance.isHawkerStandBy)
+ {
+ hawkerRect.localPosition = pos1.localPosition;
+ }
+ else
+ {
+ hawkerRect.localPosition = pos2.localPosition;
+ }
+ // hawkerModel.PlayAnimation("zoulu", true);
+ }
+
+ //isShow true璧板嚭鏉�,false璧板嚭鍘�
+ void HawkerMove(bool isShow)
+ {
+ if (isShow == FuncNPCManager.Instance.isHawkerShowNow)
+ {
+ return;
+ }
+ FuncNPCManager.Instance.isHawkerShowNow = isShow;
+ hawkerModel.PlayAnimation("zoulu", true);
+ FuncNPCManager.Instance.isHawkerStandBy = false;
+ hawkerModel.transform.localScale = new Vector3(isShow ? Math.Abs(hawkerModel.transform.localScale.x) : -Math.Abs(hawkerModel.transform.localScale.x), hawkerModel.transform.localScale.y, hawkerModel.transform.localScale.z);
+ hawkerRect.DOLocalMove(isShow ? pos1.localPosition : pos2.localPosition, 1f).onComplete = () =>
+ {
+ hawkerModel.PlayAnimation("idle", true);
+
+ FuncNPCManager.Instance.isHawkerStandBy = isShow;
+ };
+ }
+
+
+
+
+ //NPC瀵硅瘽鐩稿叧
+ void OnFiveSecondEvent()
+ {
+ var index = FuncNPCManager.Instance.GetRandomGuildNpcTalk();
+ if (index == -1)
+ {
+ return;
+ }
+ var talk = FuncNPCManager.Instance.GetGuildTalk(funcNPCs[index].heroSkinID);
+ if (talk != null)
+ {
+ talkTexts[index].text = Language.Get(talk);
+ talkRects[index].SetActive(true);
+ }
+
+ var npc = funcNPCs[index].GetModel();
+ npc.PlayAnimation("hanhua", true);
+ Talk(index).Forget();
+ }
+
+ async UniTask Talk(int index)
+ {
+ await UniTask.Delay(5000);
+ talkRects[index].SetActive(false);
+ var npc = funcNPCs[index].GetModel();
+ npc.PlayAnimation("idle", true);
+ }
+
+ public void OnClickTalkButton()
+ {
+ ChatManager.Instance.nowChatTab = ChatChannel.Guild;
+ ChatManager.Instance.nowChatChannel = ChatChannel.Guild;
+ UIManager.Instance.OpenWindow<ChatWin>();
+ }
+
+ public string GetGuildChatAreaContent(TalkData talkData)
+ {
+ int type = ChatManager.Instance.GetTalkDataType(talkData);
+ if (type == 0)
+ {
+ return Language.Get("L1100", Language.Get("Chat13"), talkData.Content);
+ }
+ else if (type == 1)
+ {
+ return Language.Get("L1100", Language.Get("Chat13"), talkData.Content);
+ }
+ else
+ {
+ return Language.Get("L1100", talkData.Name, talkData.Content);
+ }
+ }
+
+ public Color32 GetGuildChatAreaColor(TalkData talkData)
+ {
+ int type = ChatManager.Instance.GetTalkDataType(talkData);
+ if (type == 2)
+ {
+ return ChatManager.Instance.areaMyColor;
+ }
+ else
+ {
+ return ChatManager.Instance.areaOtherColor;
+ }
+ }
+
+ List<TalkData> showTalkDatas = new List<TalkData>();
+ void ShowTalkInfo()
+ {
+ if (!ChatManager.Instance.TryGetTalkData(ChatChannel.Guild, out List<TalkData> datas) || datas.IsNullOrEmpty())
+ {
+ talkInfoText.text = string.Empty;
+ return;
+ }
+ showTalkDatas.Clear();
+
+ // 浠庡悗鍚戝墠閬嶅巻锛屾壘鍒版渶鍚庝袱鏉$帺瀹舵秷鎭紙杩囨护鎺夌郴缁熸秷鎭拰鏃ユ湡娑堟伅锛�
+ int count = 0;
+ for (int i = datas.Count - 1; i >= 0 && count < 2; i--)
+ {
+ TalkData data = datas[i];
+ // 鍙繚鐣欑帺瀹舵秷鎭細闈炵郴缁熸秷鎭笖闈炴棩鏈熸秷鎭�
+ if (!data.isSystem && !data.isDate)
+ {
+ showTalkDatas.Insert(0, data); // 鎻掑叆鍒板垪琛ㄥ紑澶翠互淇濇寔鏃堕棿椤哄簭
+ count++;
+ }
+ }
+
+ StringBuilder stringBuilder = new StringBuilder();
+ for (int i = 0; i < showTalkDatas.Count; i++)
+ {
+ TalkData data = showTalkDatas[i];
+ stringBuilder.Append(UIHelper.AppendColor(GetGuildChatAreaColor(data), GetGuildChatAreaContent(data)));
+ stringBuilder.AppendLine();
+ }
+
+ talkInfoText.text = stringBuilder.ToString();
+ }
+
}
\ No newline at end of file
--
Gitblit v1.8.0