hch
90 分钟以前 df31a88d551b779e7e19b1f6b2f2742beba27136
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
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
}