From ae3cbe69348c25601cd4dc16a8abcee789954a62 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期四, 23 十月 2025 19:55:40 +0800
Subject: [PATCH] 63 【公会】基础主体 - 捐献
---
Main/System/Guild/GuildManager.cs | 86 +++++++++++++++++++++++++++++++++++++++++--
1 files changed, 82 insertions(+), 4 deletions(-)
diff --git a/Main/System/Guild/GuildManager.cs b/Main/System/Guild/GuildManager.cs
index f195061..e60323d 100644
--- a/Main/System/Guild/GuildManager.cs
+++ b/Main/System/Guild/GuildManager.cs
@@ -2,6 +2,7 @@
using System.Collections;
using System.Collections.Generic;
using System.Text;
+using Cysharp.Threading.Tasks;
using LitJson;
using UnityEngine;
@@ -28,20 +29,41 @@
}
}
+ public byte[] donateCntList;
+ public event Action DonateCntListEvent;
+ public event Action<bool> EnterOrQuitGuildEvent; //杩涘叆鎴栭��鍑哄叕浼氫簨浠�
+
public override void Init()
{
ParseConfig();
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize;
+ DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk;
+ PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefreshEvent;
}
public override void Release()
{
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitialize;
+ DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent -= OnPlayerLoginOk;
+ PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefreshEvent;
}
- public void OnBeforePlayerDataInitialize()
+ void OnBeforePlayerDataInitialize()
{
ClearGuildData();
+ }
+
+ void OnPlayerLoginOk()
+ {
+ UpdateDonateRedPoint();
+ }
+
+ void PlayerDataRefreshEvent(PlayerDataType type)
+ {
+ if(type == PlayerDataType.default33)
+ {
+ UpdateDonateRedPoint();
+ }
}
void ClearGuildData()
@@ -53,15 +75,25 @@
PlayerDatas.Instance.fairyData.ClearData();
}
- public void ClearGuildWhenQuit()
+ //閫�鍑哄叕浼�
+ public void AfterQuitGuild()
{
//閫�鍑哄叕浼�
ClearGuildData();
-
//闇�瑕佽浆鍒癏omeWin鐣岄潰 涓斿叧闂叕浼氱浉鍏崇晫闈�(鐖跺瓙缁ф壙鍏抽棴)
UIManager.Instance.GetUI<MainWin>()?.ClickFunc(0);
+
+ UpdateDonateRedPoint();
+ EnterOrQuitGuildEvent?.Invoke(false);
}
+ public async UniTask AfterEnterGuild()
+ {
+ //杩欓噷杩樻病鏈夊叕浼氭暟鎹�, 鍚庣画鐨勫寘浼氭洿鏂板叕浼氭暟鎹�
+ await UniTask.Delay(100);
+ UpdateDonateRedPoint();
+ EnterOrQuitGuildEvent?.Invoke(true);
+ }
#region 閰嶇疆
@@ -524,7 +556,7 @@
//id 0 浠h〃涓�閿姞鍏�
public void SendApplyGuild(int id, int type)
{
- if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Fairy, true))
+ if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Guild, true))
{
return;
}
@@ -674,6 +706,52 @@
}
+ #region 鎹愯禒
+
+ public void UpdateDonateInfo(HA502_tagSCDonateCntInfo netPack)
+ {
+ donateCntList = netPack.DonateCntList;
+ DonateCntListEvent?.Invoke();
+ UpdateDonateRedPoint();
+ }
+ #endregion
+
+ #region 绾㈢偣
+ Redpoint hallRedpoint = new Redpoint(MainRedDot.MainGuildRedpoint, MainRedDot.guildHallRedpointID);
+ Redpoint donateRedpoint = new Redpoint(MainRedDot.guildHallRedpointID, MainRedDot.MainGuildRedpoint * 100);
+
+ void UpdateDonateRedPoint()
+ {
+ if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Guild))
+ {
+ return;
+ }
+ donateRedpoint.state = RedPointState.None;
+ if (PlayerDatas.Instance.fairyData.fairy == null)
+ {
+ return;
+ }
+
+ //鍙湁绗竴妗g殑鎵嶉渶瑕佺孩鐐�
+ var config = FamilyDonateConfig.Get(1);
+ if (donateCntList == null)
+ {
+ if (UIHelper.CheckMoneyCount(config.MoneyType, config.MoneyValue))
+ donateRedpoint.state = RedPointState.Simple;
+ return;
+ }
+ if (donateCntList != null && donateCntList.Length > 0)
+ {
+ if (donateCntList[0] < config.DailyCnt)
+ {
+ if (UIHelper.CheckMoneyCount(config.MoneyType, config.MoneyValue))
+ donateRedpoint.state = RedPointState.Simple;
+ }
+ }
+ }
+
+ #endregion
+
#region 鍔犲瘑鏁板瓧
//1. 灏嗘暟瀛楄ˉ鍏呭埌10浣嶏紝涓嶈冻琛�0
--
Gitblit v1.8.0