//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, September 26, 2018 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using System.Collections.Generic; using System; using System.Linq; namespace vnxbqy.UI { public class MissionActCell : CellView { [SerializeField] Text missionText; [SerializeField] List itemCells; [SerializeField] Button getGiftBtn; [SerializeField] Image gotYetImg; [SerializeField] Button goBtn; MissionActModel model { get { return ModelCenter.Instance.GetModel(); } } public void Display(int id) { OperationMissionAct missionAct; OperationTimeHepler.Instance.TryGetOperation(MissionActModel.operaType, out missionAct); 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); } //一键领取并且 提前展示奖励 void GetAllAward() { List items = new List(); OperationMissionAct missionAct; OperationTimeHepler.Instance.TryGetOperation(MissionActModel.operaType, out missionAct); var keys = missionAct.missionInfo.Keys.ToList(); foreach(var id in keys) { var state = model.GetMissionAwardState(id); if (state == 1) { model.SendGetAward(id); //var mission = missionAct.missionInfo[id]; //foreach (var item in mission.AwardItemList) //{ // items.Add(new Item((int)item.ItemID, item.ItemCount)); //} } } //ItemLogicUtility.Instance.ShowGetItem(items, "", 0); } } }