hch
4 天以前 177aabe9741346a4e9902cb93cb35bfb0c686f39
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
117
118
119
120
121
122
123
124
125
126
127
128
129
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()
    {
        var appID = VersionConfig.Get().appId;
        if (appID == "sghy")
        {
            if (TimeUtility.CreateDays == 1)
            {
                //第二天才可以评论
                return false;
            }
        }
        else
        {
            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
}