using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; //日常任务 public class DayMissionWin : UIBase { [SerializeField] Text totalActivityText; [SerializeField] Image totalActivityProcessImg; [SerializeField] ItemCell[] itemCells; [SerializeField] Transform[] finishMarkImg; [SerializeField] Transform[] canGetAwardImg; [SerializeField] Text[] targetActivityText; [SerializeField] ScrollerController scroller; protected override void OnPreOpen() { scroller.OnRefreshCell += OnRefreshCell; DayMissionManager.Instance.OnDayMissionEvent += OnDayMissionEvent; CreateScroller(); Display(); } protected override void OnPreClose() { scroller.OnRefreshCell -= OnRefreshCell; DayMissionManager.Instance.OnDayMissionEvent -= OnDayMissionEvent; } void Display() { totalActivityText.text = DayMissionManager.Instance.activityTotal.ToString(); var keys = DailyLivenessRewardConfig.GetKeys(); keys.Sort(); for (int i = 0; i < itemCells.Length; i++) { int id = keys[i]; var config = DailyLivenessRewardConfig.Get(id); int itemID = config.AwardItemList[0][0]; int itemCount = config.AwardItemList[0][1]; var state = DayMissionManager.Instance.GetDayActivityState(config); itemCells[i].Init(new ItemCellModel(itemID, false, itemCount)); itemCells[i].button.AddListener(() => { ShowAward(id); }); if (state == 0) { finishMarkImg[i].SetActive(false); canGetAwardImg[i].SetActive(false); } else if (state == 1) { finishMarkImg[i].SetActive(false); canGetAwardImg[i].SetActive(true); } else if (state == 2) { finishMarkImg[i].SetActive(true); canGetAwardImg[i].SetActive(false); } targetActivityText[i].text = config.NeedLiveness.ToString(); } totalActivityProcessImg.fillAmount = (float)DayMissionManager.Instance.activityTotal / 100; } void CreateScroller() { scroller.Refresh(); DayMissionManager.Instance.SortDailyTask(); for (int i = 0; i < DayMissionManager.Instance.dailyIDList.Count; i++) { var id = DayMissionManager.Instance.dailyIDList[i]; scroller.AddCell(ScrollerDataType.Header, i); } scroller.Restart(); } void OnDayMissionEvent() { DayMissionManager.Instance.SortDailyTask(); Display(); scroller.m_Scorller.RefreshActiveCellViews(); } void ShowAward(int id) { var config = DailyLivenessRewardConfig.Get(id); var state = DayMissionManager.Instance.GetDayActivityState(config); if (state == 1) { var keys = DailyLivenessRewardConfig.GetKeys(); keys.Sort(); foreach(var id1 in keys) { var config1 = DailyLivenessRewardConfig.Get(id1); var state1 = DayMissionManager.Instance.GetDayActivityState(config1); if (state1 == 1) { //增加一键领奖 var pack = new CA504_tagCMPlayerGetReward(); pack.RewardType = 0; pack.DataEx = (uint)id1; GameNetSystem.Instance.SendInfo(pack); } } return; } int itemID = config.AwardItemList[0][0]; ItemTipUtility.Show(itemID); } void OnRefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell as DayMissionCell; _cell.Display(cell.index); } }