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
using System;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.UI;
 
 
public class OSGalaMissionCell : CellView
{
    [SerializeField] Text nameText;
    [SerializeField] Image processImg;
    [SerializeField] Text processText;
    [SerializeField] ItemCell[] itemCells;
 
    [SerializeField] Button getBtn;
    [SerializeField] Button gotoBtn;
    [SerializeField] Transform gotRect;
 
 
    public void Display(int id)
    {
        var config = SuccessConfig.Get(id);
        int targetValue = 0;
        int curValue = 0;
        var type = config.Type;
        if (type == 2)
        {
            // 主线关卡活动
            nameText.text = Language.Get($"Achievement{type}", config.NeedCnt / 100, config.NeedCnt % 100);
 
        }
        else if (type == 4)
        {
            nameText.text = Language.Get($"Achievement{type}", UIHelper.AppendColor(OfficialRankManager.Instance.GetOfficialRankColor(config.NeedCnt),
                            RealmConfig.Get(config.NeedCnt).Name));
        }
        else if (type == 6)
        {
            // 装备品质
            nameText.text = Language.Get($"Achievement{type}", config.NeedCnt, UIHelper.GetQualityNameWithColor(config.Condition[0]));
        }
        else if (config.Condition.IsNullOrEmpty())
        {
            nameText.text = Language.Get($"Achievement{type}", config.NeedCnt);
        }
        else
        {
            nameText.text = Language.Get($"Achievement{type}", config.NeedCnt, config.Condition[0]);
        }
 
        if (type == 2)
        {
            targetValue = MainLevelConfig.GetToTargetLevelIndex(config.NeedCnt) + 1;
            curValue = MainLevelConfig.GetToTargetLevelIndex(AchievementManager.Instance.GetAchievementProgress(type)) + 1;
        }
        else if (type == 6)
        {
            targetValue = config.NeedCnt;
            curValue = AchievementManager.Instance.GetAchievementProgress(type, config.Condition[0].ToString());
        }
        else
        {
            targetValue = config.NeedCnt;
            curValue = AchievementManager.Instance.GetAchievementProgress(type);
        }
        
        processImg.fillAmount = (float)curValue / targetValue;
        processText.text = Math.Min(targetValue, curValue) + "/" + targetValue;
 
        var cond = config.Condition.IsNullOrEmpty() ? "" : config.Condition[0].ToString();
        var state = AchievementManager.Instance.GetAchievementState(id, cond);
        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(() =>
                {
                    ItemTipUtility.Show(itemID);
                });
            }
            else
            {
                itemCells[i].SetActive(false);
            }
        }
 
        getBtn.SetActive(state == 0);
        gotoBtn.SetActive(state == 1);
        gotRect.SetActive(state == 2);
 
 
        getBtn.AddListener(() =>
        {
            AchievementManager.Instance.SendGetAward(id);
        });
        
        gotoBtn.AddListener(() =>
        {
            UIManager.Instance.CloseWindow<OSGalaBaseWin>();
 
            int guideID = 0;
            OSActivityManager.Instance.typeToGuideID.TryGetValue(type, out guideID);
            if (guideID > 0)
            {
                NewBieCenter.Instance.StartNewBieGuide(guideID);
            }
        });
    }
 
 
}