//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Wednesday, September 26, 2018
|
//--------------------------------------------------------
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
public class FairyAffinityMissionActCell : CellView
|
{
|
[SerializeField] Text missionText;
|
[SerializeField] List<ItemCell> itemCells;
|
[SerializeField] Button getGiftBtn;
|
[SerializeField] Image gotYetImg;
|
[SerializeField] Button goBtn;
|
|
FairyAffinityMissionActModel model { get { return ModelCenter.Instance.GetModel<FairyAffinityMissionActModel>(); } }
|
|
public void Display(int id)
|
{
|
OperationMissionAct missionAct;
|
OperationTimeHepler.Instance.TryGetOperation(FairyAffinityMissionActModel.operaType, out missionAct);
|
if (missionAct == null)
|
return;
|
var mission = missionAct.missionInfo[id];
|
missionText.text = Language.Get("MissionActType_" + mission.TaskType, Math.Min(model.missionValueDict[mission.TaskType], mission.NeedValue), mission.NeedValue);
|
var awards = mission.AwardItemList;
|
for (int i = 0; i < itemCells.Count; i++)
|
{
|
if (i < awards.Length)
|
{
|
var award = awards[i];
|
itemCells[i].SetActive(true);
|
var itemData = new ItemCellModel((int)award.ItemID, false, award.ItemCount);
|
itemCells[i].Init(itemData);
|
itemCells[i].button.SetListener(() =>
|
{
|
ItemTipUtility.Show((int)award.ItemID);
|
});
|
}
|
else
|
{
|
itemCells[i].SetActive(false);
|
}
|
}
|
var state = model.GetMissionAwardState(id);
|
goBtn.SetActive(state == 0);
|
goBtn.SetListener(() =>
|
{
|
WindowJumpMgr.Instance.WindowJumpTo((JumpUIType)model.missionJumpIDs[mission.TaskType]);
|
});
|
getGiftBtn.SetActive(state == 1);
|
getGiftBtn.SetListener(() =>
|
{
|
GetAllAward();
|
});
|
gotYetImg.SetActive(state == 2);
|
}
|
|
//一键领取并且 提前展示奖励
|
private void GetAllAward()
|
{
|
List<Item> items = new List<Item>();
|
OperationMissionAct missionAct;
|
OperationTimeHepler.Instance.TryGetOperation(FairyAffinityMissionActModel.operaType, out missionAct);
|
if (missionAct == null)
|
return;
|
var keys = missionAct.missionInfo.Keys.ToList();
|
foreach (var id in keys)
|
{
|
var state = model.GetMissionAwardState(id);
|
if (state == 1)
|
{
|
model.SendGetAward(id);
|
}
|
}
|
|
}
|
}
|
}
|