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"); switch (config.TaskType) { case 1: case 3: case 4: taskName.text = Language.Get("OfficialMission" + config.TaskType, 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(() => { ItemTipUtility.Show(itemID); }); getBtn.AddListener(() => { if (state != 1) return; OfficialRankManager.Instance.RequestAllAwards(); }); } }