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;
|
|
int beforeActivity; //用于显示活跃奖励
|
|
protected override void OnPreOpen()
|
{
|
beforeActivity = DayMissionManager.Instance.activityTotal;
|
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();
|
if (DayMissionManager.Instance.activityTotal != beforeActivity)
|
{
|
List<Item> showItems = new List<Item>();
|
Item tempItem = new Item(GeneralDefine.activityItemID, DayMissionManager.Instance.activityTotal - beforeActivity);
|
showItems.Add(tempItem);
|
ItemLogicUtility.Instance.ShowGetItem(showItems);
|
|
beforeActivity = DayMissionManager.Instance.activityTotal;
|
}
|
}
|
|
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);
|
}
|
}
|
|
|
|
|
|