using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using UnityEngine;
|
|
namespace vnxbqy.UI
|
{
|
public class YunShiMissionActCell : CellView
|
{
|
[SerializeField] TextEx txtMission;
|
[SerializeField] List<ItemCell> itemCells;
|
[SerializeField] ButtonEx btnGetGift;
|
[SerializeField] ImageEx imgGetYet;
|
[SerializeField] ButtonEx btnGo;
|
|
YunShiMissionActModel model { get { return ModelCenter.Instance.GetModel<YunShiMissionActModel>(); } }
|
|
public void Display(int id)
|
{
|
OperationMissionAct missionAct;
|
OperationTimeHepler.Instance.TryGetOperation(YunShiMissionActModel.operaType, out missionAct);
|
if (missionAct == null)
|
return;
|
var mission = missionAct.missionInfo[id];
|
txtMission.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);
|
btnGo.SetActive(state == 0);
|
btnGo.SetListener(() =>
|
{
|
WindowJumpMgr.Instance.WindowJumpTo((JumpUIType)model.missionJumpIDs[mission.TaskType]);
|
});
|
btnGetGift.SetActive(state == 1);
|
btnGetGift.SetListener(() =>
|
{
|
GetAllAward();
|
});
|
imgGetYet.SetActive(state == 2);
|
}
|
|
//Ò»¼üÁìÈ¡²¢ÇÒ Ìáǰչʾ½±Àø
|
private void GetAllAward()
|
{
|
List<Item> items = new List<Item>();
|
OperationMissionAct missionAct;
|
OperationTimeHepler.Instance.TryGetOperation(YunShiMissionActModel.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);
|
}
|
}
|
}
|
}
|
}
|