yyl
8 小时以前 725b7b2374f43582a2d78b2cae3f8303359651b8
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;
using System.Linq;
using UnityEngine;
using UnityEngine.UI;
 
 
public class SignCell : MonoBehaviour
{
    [SerializeField] Image bgImg;
    [SerializeField] Text dayText;
    [SerializeField] ItemCell[] itemCells;
    [SerializeField] Transform[] gotRects;
    [SerializeField] Transform nowSelectRect;
    [SerializeField] Transform repairRect;
    [SerializeField] Button signBtn;
    
 
 
    public void Display(int index)
    {
        var day = index + 1;
        var config = SignInConfig.Get(day);
        //状态:0-不可签到;1-已签到;2-可补签;3-已领取
        var state = SignManager.Instance.GetSignDayState(day);
      
        for (int i = 0; i < itemCells.Length; i++)
        {
            if (i < config.AwardItemList.Length)
            {
                itemCells[i].SetActive(true);
                int itemID = config.AwardItemList[i][0];
                itemCells[i].Init(new ItemCellModel(itemID, false, config.AwardItemList[i][1]));
                itemCells[i].button.AddListener(()=>
                {
                    if (state == 1 || state == 2)
                    {
                        Sign(day);
                        return;
                    }
                    ItemTipUtility.Show(itemID);
                });
            }
            else
            {
                itemCells[i].SetActive(false);
            }
        }
        if (state == 1)
        {
            //可领取
            bgImg.SetOrgSprite("Sign_img_54", "Sign");
            nowSelectRect.SetActive(true);
            for (int i = 0; i < gotRects.Length; i++)
            {
                gotRects[i].SetActive(false);
            }
            repairRect.SetActive(false);
        }
        else if (state == 2)
        {
            //补签
            bgImg.SetOrgSprite("Sign_img_58", "Sign");
            nowSelectRect.SetActive(false);
            for (int i = 0; i < gotRects.Length; i++)
            {
                gotRects[i].SetActive(false);
            }
            repairRect.SetActive(true);
        }
        else if (state == 3)
        {
            //已领取
            bgImg.SetOrgSprite("Sign_img_57", "Sign");
            nowSelectRect.SetActive(false);
            for (int i = 0; i < gotRects.Length; i++)
            {
                gotRects[i].SetActive(true);
            }
            repairRect.SetActive(false);
        }
        else
        {
            //不可签到
            bgImg.SetOrgSprite("Sign_img_58", "Sign");
            nowSelectRect.SetActive(false);
            for (int i = 0; i < gotRects.Length; i++)
            {
                gotRects[i].SetActive(false);
            }
            repairRect.SetActive(false);
        }
 
        dayText.text = state == 3 ? Language.Get("Sign2") : Language.Get("SignDay" + day);
 
        signBtn.AddListener(() =>
        {
            if (state == 1 || state == 2)
            {
                Sign(day);
                return;
            }
        });
    }
 
    void Sign(int day)
    {
        var state = SignManager.Instance.GetSignDayState(day);
        if (state == 2)
        {
            ConfirmCancel.MoneyIconConfirm(SignManager.Instance.repairSignMoney, SignManager.Instance.repairSignMoneyType,
                Language.Get("Sign3", UIHelper.GetIconNameWithMoneyType(SignManager.Instance.repairSignMoneyType),
                SignManager.Instance.repairSignMoney), (bool isOk, bool isToggle) =>
                {
                    if (isOk)
                    {
                        var pack = new CA509_tagCSDaySign();
                        pack.Day = (byte)day;
                        GameNetSystem.Instance.SendInfo(pack);
                    }
 
                });
            return;
        }
 
        var pack = new CA509_tagCSDaySign();
        pack.Day = (byte)day;
        GameNetSystem.Instance.SendInfo(pack);
    }
}