少年修仙传客户端代码仓库
lcy
2024-12-16 a39c35fc6449430cd02bccb681c4a0a880e46cd9
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
using UnityEngine;
using UnityEngine.UI;
using EnhancedUI.EnhancedScroller;
using System;
 
namespace vnxbqy.UI
{
    public class HolidayFlashRushSaleTimeCell : ScrollerUI
    {
        [SerializeField] Text remainText;
        [SerializeField] Button saleTimeBtn;
        [SerializeField] GameObject unSelectImg;
        [SerializeField] GameObject selectImg;
 
        HolidayFlashRushToBuyModel rushToBuyModel { get { return ModelCenter.Instance.GetModel<HolidayFlashRushToBuyModel>(); } }
        OperationFlashRushToBuy operation;
        int dayIndex = -1;
        int timeIndex = -1;
        private void Awake()
        {
            saleTimeBtn.AddListener(() =>
            {
                rushToBuyModel.UpdateSelectFlashSaleTime(dayIndex, timeIndex);
            });
        }
        private void OnEnable()
        {
            GlobalTimeEvent.Instance.secondEvent += UpdateBuyState;
        }
        private void OnDisable()
        {
            GlobalTimeEvent.Instance.secondEvent -= UpdateBuyState;
        }
        public override void Refresh(CellView cell)
        {
            operation = rushToBuyModel.GetOperationFlashRushToBuy();
            dayIndex = -1;
            timeIndex = -1;
            if (operation == null) return;
 
            dayIndex = cell.index/100;
            timeIndex = cell.index % 100;
            if(dayIndex == rushToBuyModel.presentFlashShop.dayIndex 
                && timeIndex == rushToBuyModel.presentFlashShop.timeIndex)
            {
                selectImg.SetActive(true);
                unSelectImg.SetActive(false);
            }
            else
            {
                selectImg.SetActive(false);
                unSelectImg.SetActive(true);
            }
            UpdateBuyState();
        }
 
        public void UpdateBuyState()
        {
            if (operation == null || timeIndex == -1) return;
 
            int seconds = 0;
            OperationTime operationTime = operation.times[timeIndex];
            int buyState = operation.GetBuyTimeState(TimeUtility.ServerNow, dayIndex, timeIndex, out seconds);
            var operationDate = operation.startDate.AddDays(dayIndex);
            switch (buyState)
            {
                case -1:
                    string timeStr = "";
                    if(seconds > 7200)
                    {
                        timeStr = operation.ToDisplayBuyTime(operationDate.month, operationDate.day, operationTime.startHour, operationTime.startMinute);
                        remainText.text = Language.Get("FlashRushToBuy106", timeStr);
                    }
                    else
                    {
                        timeStr = TimeUtility.SecondsToHMS(seconds);
                        remainText.text = Language.Get("FlashRushToBuy108", timeStr);
                    }
                    break;
                case 0:
                    remainText.text = Language.Get("FlashRushToBuy105", TimeUtility.SecondsToHMS(seconds));
                    break;
                case 1:
                    rushToBuyModel.PresentFlashShopActivityClose();
                    break;
            }
        }
    }
}