//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Friday, May 25, 2018
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using System.Linq;
|
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace Snxxz.UI {
|
|
public class TreasureNewStageWin : Window
|
{
|
[SerializeField] RectTransform m_ContainerProperty;
|
[SerializeField] PropertyCompareBehaviour m_Property;
|
[SerializeField] Button m_PropertyConfirmBtn;
|
|
[SerializeField] RectTransform m_ContainerItem;
|
[SerializeField] ItemCell m_Item;
|
[SerializeField] Button m_ItemConfirm;
|
|
Treasure treasure;
|
|
TreasureModel m_Model;
|
TreasureModel model
|
{
|
get
|
{
|
return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<TreasureModel>());
|
}
|
}
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
m_PropertyConfirmBtn.onClick.AddListener(CloseClick);
|
m_ItemConfirm.onClick.AddListener(CloseClick);
|
}
|
|
protected override void OnPreOpen()
|
{
|
Display();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
|
protected override void OnPreClose()
|
{
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
#endregion
|
|
private void Display()
|
{
|
m_ContainerProperty.gameObject.SetActive(false);
|
m_ContainerItem.gameObject.SetActive(false);
|
model.TryGetTreasure(model.selectedTreasure, out treasure);
|
if (treasure == null)
|
{
|
return;
|
}
|
var stage = treasure.treasureStages[treasure.stage];
|
switch (stage.unlockType)
|
{
|
case TreasureStageUnlock.Property:
|
DisplayProperty(stage);
|
break;
|
case TreasureStageUnlock.Item:
|
DisplayItem(stage);
|
break;
|
}
|
}
|
|
private void DisplayProperty(TreasureStage _stage)
|
{
|
m_ContainerProperty.gameObject.SetActive(true);
|
var _keyValue = _stage.propertyDict.First();
|
var _beforeValue = UIHelper.GetPropertyMapPlayerData((AttrEnum)_keyValue.Key) - _keyValue.Value;
|
m_Property.Display(_keyValue.Key, _beforeValue, UIHelper.GetPropertyMapPlayerData((AttrEnum)_keyValue.Key));
|
}
|
|
private void DisplayItem(TreasureStage _stage)
|
{
|
m_ContainerItem.gameObject.SetActive(true);
|
ItemCellModel itemCell = new ItemCellModel(_stage.item.id, true, (ulong)_stage.item.count, _stage.item.bind ? 1 : 0);
|
m_Item.Init(itemCell);
|
}
|
}
|
|
}
|
|
|
|
|