using UnityEngine; using UnityEngine.UI; using TableConfig; using System; namespace Snxxz.UI { public class ToHiTaskCell : CellView { [SerializeField] Image activeIcon; [SerializeField] Text activeNameText; [SerializeField] Text activeDesText; [SerializeField] Text progressText; [SerializeField] Button gobtn; [SerializeField] GameObject completeImg; AllPeoplePartyConfig taskConfig; FairylandCeremonyModel ceremonyModel { get { return ModelCenter.Instance.GetModel(); } } private void OnEnable() { ceremonyModel.RefreshHiPointAct += OnRefreshProgress; } private void OnDisable() { ceremonyModel.RefreshHiPointAct -= OnRefreshProgress; } public void Init(AllPeoplePartyConfig taskConfig) { this.taskConfig = taskConfig; activeIcon.SetSprite(taskConfig.IconKey); SetTaskState(ceremonyModel.GetPeopleTaskTimesById(taskConfig.ID),taskConfig.TotalTimes); activeDesText.text = string.Format(taskConfig.TaskDes,taskConfig.AddPoint); } private void OnRefreshProgress(int actId) { if (taskConfig == null || taskConfig.ID != actId) return; SetTaskState(ceremonyModel.GetPeopleTaskTimesById(taskConfig.ID), taskConfig.TotalTimes); } public void SetTaskState(int curProgress,int sumProgress) { gobtn.RemoveAllListeners(); progressText.text = StringUtility.Contact(curProgress, "/", sumProgress); if (curProgress < sumProgress) { gobtn.gameObject.SetActive(true); completeImg.SetActive(false); progressText.color = UIHelper.GetUIColor(TextColType.Red); gobtn.AddListener(()=> { WindowJumpMgr.Instance.WindowJumpTo((JumpUIType)taskConfig.JumpId); }); } else { gobtn.gameObject.SetActive(false); completeImg.SetActive(true); progressText.color = UIHelper.GetUIColor(TextColType.Green); } } } }