using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
///
/// 官职任务
///
public class OfficialUpCell : MonoBehaviour
{
[SerializeField] Text stateName;
[SerializeField] Image stateImg;
[SerializeField] Image bgImg;
[SerializeField] Image finishImg;
[SerializeField] Image getAwardImg;
[SerializeField] GameObject getAwardEffect;
[SerializeField] Text taskName;
[SerializeField] Image taskProcess;
[SerializeField] Text taskProcessText;
[SerializeField] ItemCell taskReward;
[SerializeField] Button getBtn;
public void Display(int id)
{
var config = RealmLVUPTaskConfig.GetID(PlayerDatas.Instance.baseData.realmLevel, id);
var state = OfficialRankManager.Instance.GetMissionState(PlayerDatas.Instance.baseData.realmLevel, id);
stateName.text = Language.Get("L1129_" + state);
stateImg.SetSprite("OfficialMisionState" + state);
finishImg.SetActive(state == 2);
getAwardImg.SetActive(state == 1);
getAwardEffect.SetActive(state == 1);
bgImg.SetSprite(state == 0 ? "OfficialMissionBG0" : "OfficialMissionBG1");
var type = config.TaskType;
switch (type)
{
case 1:
case 3:
case 4:
taskName.text = Language.Get("OfficialMission" + type, config.NeedValueList[0]);
break;
case 2:
var mainLVConfig = MainLevelConfig.Get(config.NeedValueList[0]);
taskName.text = Language.Get("OfficialMission2", mainLVConfig.ChapterID, mainLVConfig.LevelNum);
break;
}
int process;
int total;
OfficialRankManager.Instance.GetMissionProcess(id, out process, out total);
taskProcess.fillAmount = (float)process / total;
taskProcessText.text = process + "/" + total;
int itemID = config.AwardItemList[0][0];
taskReward.Init(new ItemCellModel(itemID, false, config.AwardItemList[0][1]));
taskReward.button.AddListener(() =>
{
if (state == 0)
{
UIManager.Instance.CloseWindow();
NewBieCenter.Instance.StartNewBieGuide(OfficialRankManager.Instance.guideDict[type]);
return;
}
else if (state == 2)
{
ItemTipUtility.Show(itemID);
return;
}
OfficialRankManager.Instance.RequestAllAwards(id);
});
getBtn.AddListener(() =>
{
if (state == 0)
{
UIManager.Instance.CloseWindow();
NewBieCenter.Instance.StartNewBieGuide(OfficialRankManager.Instance.guideDict[type]);
return;
}
else if (state == 2)
{
return;
}
OfficialRankManager.Instance.RequestAllAwards(id);
});
}
}