| using System.Collections; | 
| using System.Collections.Generic; | 
| using UnityEngine; | 
| using UnityEngine.UI; | 
|   | 
| /// <summary> | 
| /// 官职任务 | 
| /// </summary> | 
| 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(id); | 
|         }); | 
|   | 
|     } | 
|   | 
| } |