using System.Collections.Generic;
|
using UnityEngine.UI;
|
using System.Linq;
|
using LitJson;
|
using System;
|
|
//一些小功能少量代码存放
|
public class SmallFuncManager : GameSystemManager<SmallFuncManager>
|
{
|
|
public Dictionary<int, int> playerRewardDict = new Dictionary<int, int>(); //A3 0C 玩家各奖励类型领取记录信息 #tagMCPlayerRewardGetRecord
|
public event Action OnPlayerRewardEvent;
|
|
|
|
public override void Init()
|
{
|
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize;
|
DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk;
|
UIManager.Instance.OnCloseWindow += OnCloseWindow;
|
}
|
|
public override void Release()
|
{
|
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitialize;
|
DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent -= OnPlayerLoginOk;
|
UIManager.Instance.OnCloseWindow -= OnCloseWindow;
|
}
|
|
public void OnBeforePlayerDataInitialize()
|
{
|
playerRewardDict.Clear();
|
}
|
|
void OnPlayerLoginOk()
|
{
|
UpdateReviewRedpoint();
|
}
|
|
void OnCloseWindow(UIBase win)
|
{
|
if (win is StoryBossBattleWin)
|
{
|
//刚好过关的时候推送
|
if (PlayerDatas.Instance.baseData.ExAttr1 == (GeneralDefine.review_MainLevel + 1) * 100 && IsReviewOpen())
|
{
|
PopupWindowsProcessor.Instance.Add("GoodReviewWin");
|
UpdateReviewRedpoint();
|
}
|
}
|
}
|
|
|
public void UpdatePlayerReward(HA30C_tagMCPlayerRewardGetRecord pack)
|
{
|
playerRewardDict[pack.RewardType] = (int)pack.RewardGetRecord;
|
UpdateReviewRedpoint();
|
OnPlayerRewardEvent?.Invoke();
|
}
|
|
|
#region 好评
|
|
//是否显示好评 1.达到通关条件 2.该渠道有好评功能,3. 未领取奖励(未评价)
|
public bool IsReviewOpen()
|
{
|
if (PlayerDatas.Instance.baseData.ExAttr1 / 100 <= GeneralDefine.review_MainLevel)
|
{
|
return false;
|
}
|
|
if (!GeneralDefine.review_UrlDict.ContainsKey(SDKUtils.channelSign) && VersionConfig.Get().versionAuthority == VersionAuthority.Release)
|
{
|
return false;
|
}
|
|
if (GetReviewState() == 2)
|
{
|
return false;
|
}
|
|
// 奖励
|
return true;
|
}
|
|
// 好评红点
|
Redpoint reviewRedpoint = new Redpoint(MainRedDot.RightFuncRedpoint, MainRedDot.RedPoint_Review);
|
|
void UpdateReviewRedpoint()
|
{
|
reviewRedpoint.state = IsReviewOpen() ? RedPointState.Simple : RedPointState.None;
|
}
|
|
//评分仅可领1次 0 未评分 1 可领取 2 已领取
|
public int GetReviewState()
|
{
|
if (!playerRewardDict.ContainsKey(35) || playerRewardDict[35] == 0)
|
{
|
var clickTime = LocalSave.GetInt("review" + PlayerDatas.Instance.baseData.PlayerID);
|
if (clickTime == 0)
|
{
|
return 0;
|
}
|
if (TimeUtility.AllSeconds - clickTime > GeneralDefine.review_CD)
|
{
|
return 1;
|
}
|
return 0;
|
}
|
|
return 2;
|
}
|
|
#endregion
|
}
|
|