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);
|
}
|
});
|
}
|
|
|
}
|