using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; using UnityEngine.UI; namespace MoleMole { public class MonoMissionInfo : MonoBehaviour { public const string ITEM_ICON_PREFAB_PATH = "ItemIconPrefabPath"; private const string MATERIAL_GRAY_PATH = "Material/ImageGrayscale"; private List missionRewardList = new List(); [SerializeField] private Sprite _normalBG; [SerializeField] private Sprite _readyBG; private static Material _grayMat; private FetchRewardCallBack _onFetchRewardBtnClick; private GoMissionCallBack _onGoMissionBtnClick; private MissionDataItem _missionData; private UnityEventBase _leftClickEvent; private UnityEventBase _rightClickEvent; private RewardUIData _leftData; private RewardUIData _rightData; private Transform _time_root; private Text _timeNumber_comp; private Text _timeLable_comp; public Transform Time_root { get { if (_time_root == null) { _time_root = base.transform.Find("LeftTime"); } return _time_root; } } public Text TimeNumber_comp { get { if (_timeNumber_comp == null) { _timeNumber_comp = base.transform.Find("LeftTime/TimeValue").GetComponent(); } return _timeNumber_comp; } } public Text TimeLable_comp { get { if (_timeLable_comp == null) { _timeLable_comp = base.transform.Find("LeftTime/Label").GetComponent(); } return _timeLable_comp; } } public MissionDataItem GetMissionData() { return _missionData; } public void SetupView(MissionDataItem missionData) { if (_grayMat == null) { _grayMat = Miscs.LoadResource("Material/ImageGrayscale"); } _missionData = missionData; ClearAllViews(); SetupBGView(); SetupTypeView(); SetupMissionIconView(); SetupStatusInfoView(); SetupProgressView(); SetupTitleView(); SetupRewardView(); SetupButtonsView(); SetupTimeView(); } public void RegisterCallBacks(FetchRewardCallBack onFetch, GoMissionCallBack onGo) { _onFetchRewardBtnClick = onFetch; _onGoMissionBtnClick = onGo; } public void OnFetchRewardBtnClick() { if (_onFetchRewardBtnClick != null) { _onFetchRewardBtnClick(_missionData); } } public void OnGoMissionBtnClick() { if (_onGoMissionBtnClick != null) { _onGoMissionBtnClick(_missionData); } } private void SetupButtonsView() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Invalid comparison between Unknown and I4 //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Invalid comparison between Unknown and I4 if ((int)_missionData.status == 3) { if (missionRewardList.Count > 0) { base.transform.Find("Buttons/Fetch").gameObject.SetActive(true); } } else if ((int)_missionData.status == 2 && _missionData.metaData.LinkType != 0) { base.transform.Find("Buttons/Go").gameObject.SetActive(true); } } private void SetupTitleView() { base.transform.Find("Title/title").GetComponent().text = LocalizationGeneralLogic.GetText(_missionData.metaData.title); base.transform.Find("Title/splash").GetComponent().material = ((!IsMissionActive()) ? _grayMat : null); Text component = base.transform.Find("Title/description").GetComponent(); component.text = LocalizationGeneralLogic.GetText(_missionData.metaData.description); string str = ((!IsMissionActive()) ? "#a0a0a0FF" : "00CAFFFF"); Color color; UIUtil.TryParseHexString(str, out color); component.color = color; } private void SetupProgressView() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Invalid comparison between Unknown and I4 if ((int)_missionData.status == 2) { int progress = _missionData.progress; int totalProgress = _missionData.metaData.totalProgress; Transform transform = base.transform.Find("ProgressBar"); transform.gameObject.SetActive(true); transform.GetComponent().UpdateValue(progress, totalProgress, 0f); Transform transform2 = base.transform.Find("ProgressText"); transform2.gameObject.SetActive(true); transform2.Find("current").GetComponent().text = progress.ToString(); transform2.Find("total").GetComponent().text = totalProgress.ToString(); } } private void SetupStatusInfoView() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Invalid comparison between Unknown and I4 //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Invalid comparison between Unknown and I4 //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Invalid comparison between Unknown and I4 if ((int)_missionData.status == 3) { base.transform.Find("StatusInfo/Finish").gameObject.SetActive(true); } else if ((int)_missionData.status == 5) { base.transform.Find("StatusInfo/Closed").gameObject.SetActive(true); } else if ((int)_missionData.status == 1) { base.transform.Find("StatusInfo/NotBegin").gameObject.SetActive(true); } } private void SetupMissionIconView() { Image component = base.transform.Find("MissionIcon/Color").GetComponent(); component.sprite = Miscs.GetSpriteByPrefab(_missionData.metaData.thumb); Material material = ((!IsMissionActive()) ? _grayMat : null); component.material = material; } private void SetupBGView() { //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Invalid comparison between Unknown and I4 //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Invalid comparison between Unknown and I4 Image component = GetComponent(); if (IsMissionActive()) { if ((int)_missionData.status == 2) { component.sprite = _normalBG; } else if ((int)_missionData.status == 3) { component.sprite = _readyBG; } component.material = null; } else { component.sprite = _normalBG; component.material = _grayMat; } } private void SetupTypeView() { if (_missionData.metaData.type == 1) { if (_missionData.metaData.subType == 1) { base.transform.Find("TypeInfo/Branch").gameObject.SetActive(true); } else { base.transform.Find("TypeInfo/Linear").gameObject.SetActive(true); } } else if (_missionData.metaData.type == 2) { base.transform.Find("TypeInfo/Bounty").gameObject.SetActive(true); } else if (_missionData.metaData.type == 3) { base.transform.Find("TypeInfo/Timed").gameObject.SetActive(true); } else if (_missionData.metaData.type == 4) { base.transform.Find("TypeInfo/Touch").gameObject.SetActive(true); } } private void SetupRewardView() { RefreshRewardList(); if (missionRewardList.Count == 0) { return; } RewardUIData rewardUIData = null; _leftData = null; _rightData = null; RewardUIData rewardUIData2; if (missionRewardList.Count == 1) { rewardUIData2 = null; rewardUIData = missionRewardList[0]; } else { rewardUIData2 = missionRewardList[0]; rewardUIData = missionRewardList[1]; } _leftData = rewardUIData2; _rightData = rewardUIData; if (rewardUIData2 != null) { base.transform.Find("Rewards/Left").gameObject.SetActive(true); base.transform.Find("Rewards/Left/RewardItem/Icon").GetComponent().sprite = rewardUIData2.GetIconSprite(); Text component = base.transform.Find("Rewards/Left/RewardItem/Number").GetComponent(); component.text = string.Format("{0}", rewardUIData2.value); Text component2 = base.transform.Find("Rewards/Left/RewardItem/x").GetComponent(); string str = ((!IsMissionActive()) ? "##96b1c0FF" : "43C6FCFF"); Color color; UIUtil.TryParseHexString(str, out color); component2.color = color; base.transform.Find("Rewards/Left/RewardItem/Icon").GetComponent().material = ((!IsMissionActive()) ? _grayMat : null); if (rewardUIData2.rewardType == ResourceType.Item) { SetRarity(base.transform.Find("Rewards/Left/RewardItem"), rewardUIData2); } Button component3 = base.transform.Find("Rewards/Left/ShowDetailBtn").GetComponent