lcy
9 天以前 29fd27541c91dc1bf6147c1de5cf5680dfc6cb38
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();
        //需要转到HomeWin界面 且关闭公会相关界面(父子继承关闭)
        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 代表一键加入
    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;
        }
        //只有第一档的才需要红点
        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