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(); int guideID = 0; OSActivityManager.Instance.typeToGuideID.TryGetValue(type, out guideID); if (guideID > 0) { NewBieCenter.Instance.StartNewBieGuide(guideID); } }); } }