hch
57 分钟以前 bc6f633a2f3cfc01122d8fd4452f69313ddcb32b
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
using System;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.UI;
public class MinggePrayWin : UIBase
{
    [SerializeField] ItemCell itemCell;
    [SerializeField] Text itemName;
    [SerializeField] Text desce;
    [SerializeField] Text qlValueText;
    [SerializeField] MinggePrayRateCell[] prayRateCells;
    [SerializeField] SliderPanel sliderPanel;
    [SerializeField] Image itemIcon;
    [SerializeField] Text countText;
    [SerializeField] Button qlBtn;
    [SerializeField] UIEffectPlayer qlEffect;
 
    int useCnt = 1;
 
    int qualityCnt;
    int maxRateNum = 0;
 
    protected override void InitComponent()
    {
        qlBtn.AddListener(QL);
        var rateList = MGLingyingQualityConfig.Get(0).ItemColorWeightList;
        qualityCnt = rateList.Length;
        foreach (var rate in rateList)
        {
            maxRateNum += rate;
        }
    }
 
    protected override void OnPreOpen()
    {
        MinggeManager.Instance.OnMinggeInfoUpdate += Display;
        Display();
    }
 
    protected override void OnPreClose()
    {
        MinggeManager.Instance.OnMinggeInfoUpdate -= Display;
    }
 
    public void Display()
    {
        var config = ItemConfig.Get(MinggeManager.Instance.qlItemID);
        itemCell.Init(new ItemCellModel(MinggeManager.Instance.qlItemID, false, 0));
        itemName.text = config.ItemName;
        desce.text = config.Description;
        var maxCnt = PackManager.Instance.GetItemCountByID(PackType.Item, MinggeManager.Instance.qlItemID);
        useCnt = Math.Max(1, (int)maxCnt);
        sliderPanel.Init((value) => { OnSliderChange(value); }, useCnt, useCnt);
        DisplayPrayRate();
        DisplayCostItem();
    }
 
 
    void DisplayPrayRate()
    {
        qlValueText.text = MinggeManager.Instance.m_Lingying.ToString();
        var littleRateList = MinggeManager.Instance.GetQLRate(MinggeManager.Instance.m_Lingying);
        var bigRateList = MinggeManager.Instance.GetQLRate(MinggeManager.Instance.m_Lingying + useCnt);
 
        for (int i = 0; i < prayRateCells.Length; i++)
        {
            if (i < qualityCnt)
            {
                prayRateCells[i].SetActive(true);
                prayRateCells[i].Display(i, bigRateList, littleRateList, maxRateNum);
            }
            else
            {
                prayRateCells[i].SetActive(false);
            }
        }
    }
 
    void DisplayCostItem()
    {
        itemIcon.SetItemSprite(MinggeManager.Instance.qlItemID);
        countText.text = UIHelper.ShowUseItem(PackType.Item, MinggeManager.Instance.qlItemID, useCnt);
    }
 
    void OnSliderChange(int value)
    {
        useCnt = Math.Max(1, value);
        DisplayPrayRate();
        DisplayCostItem();
    }
 
    void QL()
    {
        if (useCnt == 0)
        {
            return;
        }
        if (!ItemLogicUtility.CheckItemCount(PackType.Item, MinggeManager.Instance.qlItemID, useCnt, 2))
        {
            TimingGiftManager.Instance.TryAddWhenInsufficient(6, PackType.Item, MinggeManager.Instance.qlItemID, useCnt);
            return;
        }
 
        var pack = new CB253_tagCSMinggeQiling();
        pack.UseCount = (uint)useCnt;
 
        GameNetSystem.Instance.SendInfo(pack);
        qlEffect.Play();
        // 如果正好消耗完,不触发固定概率的判定
        if (!TimingGiftManager.Instance.TryAddWhenExactConsumption(6, PackType.Item, MinggeManager.Instance.qlItemID, useCnt))
        {
            TimingGiftManager.Instance.TryAddWithFixedProbabilityWhenSufficient(6, PackType.Item, MinggeManager.Instance.qlItemID, useCnt);
        }
    }
 
 
 
}