| | |
| | | using System.Text;
|
| | | using TableConfig;
|
| | | using LitJson;
|
| | | using UnityEngine;
|
| | |
|
| | | namespace Snxxz.UI
|
| | | {
|
| | |
| | | }
|
| | | public DateTime matchStartTime { get; set; }
|
| | | public DateTime roundEndTime { get; private set; }
|
| | | StoreModel storeModel { get { return ModelCenter.Instance.GetModel<StoreModel>(); } }
|
| | |
|
| | | public override void Init()
|
| | | {
|
| | | IsMatching = false;
|
| | | ParseFuncConfig();
|
| | | SetHonorRedpoint();
|
| | | }
|
| | |
|
| | | public void OnBeforePlayerDataInitialize()
|
| | | {
|
| | | PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= UpdatePlayerData;
|
| | | CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent -= UpdatePlayerInfo;
|
| | | CrossServerOneVsOnePKSeason.Instance.updateSelfSeasonEvent -= UpdateSeason;
|
| | | TimeMgr.Instance.OnMinuteEvent -= UpdateMinute;
|
| | |
| | | CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent -= UpdateDayAwardState;
|
| | | InitData();
|
| | | }
|
| | |
|
| | | |
| | | public void OnAfterPlayerDataInitialize()
|
| | | {
|
| | | int playerId = (int)PlayerDatas.Instance.baseData.PlayerID;
|
| | |
| | |
|
| | | public void OnPlayerLoginOk()
|
| | | {
|
| | | PlayerDatas.Instance.PlayerDataRefreshInfoEvent += UpdatePlayerData;
|
| | | CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent += UpdatePlayerInfo;
|
| | | CrossServerOneVsOnePKSeason.Instance.updateSelfSeasonEvent += UpdateSeason;
|
| | | TimeMgr.Instance.OnMinuteEvent += UpdateMinute;
|
| | |
| | |
|
| | | UpdateCrossDayAwardsRedpoint();
|
| | | UpdateCrossMatchRedpoint();
|
| | | UpdateCanBuyRedpoint();
|
| | | }
|
| | |
|
| | | public override void UnInit()
|
| | |
| | | private void UpdateSeason()
|
| | | {
|
| | | UpdateCrossMatchRedpoint();
|
| | | UpdateCanBuyRedpoint();
|
| | | }
|
| | |
|
| | | private void UpdatePlayerInfo()
|
| | |
| | | crossServerRedpoint.count = 0;
|
| | | }
|
| | | }
|
| | |
|
| | | #region 荣誉商店红点
|
| | | public const int CrossHonorStoreRedKey = 2130104;
|
| | | public Redpoint crossHonorStoreRedpoint = new Redpoint(CrossOneVsOneRedKey, CrossHonorStoreRedKey);
|
| | | private Dictionary<int, Redpoint> honorRedpointDict = new Dictionary<int, Redpoint>();
|
| | | public void SetHonorRedpoint()
|
| | | {
|
| | | honorRedpointDict.Clear();
|
| | | List<StoreConfig> storelist = Config.Instance.GetAllValues<StoreConfig>();
|
| | | for (int i = 0; i < storelist.Count; i++)
|
| | | {
|
| | | StoreConfig storeConfig = storelist[i];
|
| | | int redKey = 0;
|
| | | Redpoint redpoint = null;
|
| | | if(storeConfig.ShopType == (int)StoreFunc.CrossOneVsOneHonor)
|
| | | {
|
| | | redKey = CrossHonorStoreRedKey *100 + storeConfig.ID;
|
| | | redpoint = new Redpoint(CrossHonorStoreRedKey, redKey);
|
| | | honorRedpointDict.Add(storeConfig.ID, redpoint);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | public Redpoint GetRedpointById(int shopId)
|
| | | {
|
| | | Redpoint redpoint = null;
|
| | | honorRedpointDict.TryGetValue(shopId,out redpoint);
|
| | | return redpoint;
|
| | | }
|
| | |
|
| | | private void UpdatePlayerData(PlayerDataRefresh type)
|
| | | {
|
| | | switch(type)
|
| | | {
|
| | | case PlayerDataRefresh.CDBPlayerRefresh_Honor:
|
| | | UpdateCanBuyRedpoint();
|
| | | break;
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | public void UpdateCanBuyRedpoint()
|
| | | {
|
| | | var pkSeason = CrossServerOneVsOnePKSeason.Instance;
|
| | | if (!pkSeason.IsEnterCrossServer()) return;
|
| | |
|
| | | List<StoreModel.StoreData> storeDatas = storeModel.TryGetStoreDatas((int)StoreFunc.CrossOneVsOneHonor);
|
| | | if(storeDatas != null)
|
| | | {
|
| | | for(int i = 0; i < storeDatas.Count; i++)
|
| | | {
|
| | | var storeData = storeDatas[i];
|
| | | var storeConfig = storeData.storeConfig;
|
| | | int type = 0;
|
| | | TryGetRedTypeByShopId(storeConfig.ID, out type);
|
| | | if (type == 6)
|
| | | {
|
| | | string key = StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID, "ShopId", storeData.shopId);
|
| | | int remainNum = 0;
|
| | | honorRedpointDict[storeConfig.ID].state = RedPointState.None;
|
| | | if (!storeModel.TryGetIsSellOut(storeConfig, out remainNum))
|
| | | {
|
| | | if(!PlayerPrefs.HasKey(key))
|
| | | {
|
| | | if (UIHelper.GetMoneyCnt(storeConfig.MoneyType) >= (ulong)storeConfig.MoneyNumber)
|
| | | {
|
| | | honorRedpointDict[storeConfig.ID].state = RedPointState.Simple;
|
| | | LocalSave.SetBool(key, true);
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | if(LocalSave.GetBool(key))
|
| | | {
|
| | | if (UIHelper.GetMoneyCnt(storeConfig.MoneyType) >= (ulong)storeConfig.MoneyNumber)
|
| | | {
|
| | | honorRedpointDict[storeConfig.ID].state = RedPointState.Simple;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | public bool TryGetRedTypeByShopId(int shopId, out int type)
|
| | | {
|
| | | type = 0;
|
| | | var ruleDict = storeModel.storeRedRuleDict;
|
| | | foreach (var key in ruleDict.Keys)
|
| | | {
|
| | | List<int> idlist = ruleDict[key];
|
| | | if (idlist.Contains(shopId))
|
| | | {
|
| | | type = key;
|
| | | return true;
|
| | | }
|
| | | }
|
| | | return false;
|
| | | }
|
| | |
|
| | | public void ClearRedpoint(int shopId)
|
| | | {
|
| | | string record = StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID, "ShopId", shopId);
|
| | | if(honorRedpointDict[shopId].state != RedPointState.None)
|
| | | {
|
| | | honorRedpointDict[shopId].state = RedPointState.None;
|
| | | LocalSave.SetBool(record, false);
|
| | | }
|
| | | }
|
| | | #endregion
|
| | |
|
| | | #endregion
|
| | | }
|
| | | }
|