| | |
| | | using System.Collections;
|
| | | using System.Collections.Generic;
|
| | | using System.Text;
|
| | | using Cysharp.Threading.Tasks;
|
| | | using LitJson;
|
| | | using UnityEngine;
|
| | |
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | 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()
|
| | |
| | | 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 配置
|
| | |
| | | //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;
|
| | | }
|
| | |
| | |
|
| | | }
|
| | |
|
| | | #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
|