//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Saturday, April 07, 2018
|
//--------------------------------------------------------
|
using UnityEngine;
|
using System.Collections;
|
using UnityEngine.UI;
|
|
|
namespace Snxxz.UI
|
{
|
|
public class RuneTowerPassedInfoPanel : MonoBehaviour
|
{
|
[SerializeField] ScrollRect m_ScrollRect;
|
[SerializeField] RuneTowerPassedInfoBehaviour[] m_Behaviours;
|
|
RuneTowerModel model { get { return ModelCenter.Instance.GetModel<RuneTowerModel>(); } }
|
|
public void Display()
|
{
|
var passedTowers = RuneTowerConfig.GetKeys();
|
for (int i = 0; i < m_Behaviours.Length; i++)
|
{
|
var behaviour = m_Behaviours[i];
|
if (i < passedTowers.Count)
|
{
|
behaviour.SetActive(true);
|
var towerId = int.Parse(passedTowers[i]);
|
|
var state = GetTowerState(towerId);
|
if (state == 1)
|
{
|
behaviour.Display(towerId, true);
|
}
|
else if (state == -1)
|
{
|
behaviour.Display(towerId, false);
|
}
|
else
|
{
|
var latestPassedFloor = ModelCenter.Instance.GetModel<RuneModel>().passRuneTowerFloor;
|
behaviour.Display(towerId, (int)latestPassedFloor);
|
}
|
}
|
else
|
{
|
behaviour.SetActive(false);
|
}
|
}
|
|
m_ScrollRect.verticalNormalizedPosition = 1f;
|
}
|
|
private int GetTowerState(int _towerId)
|
{
|
var latestPassedFloor = ModelCenter.Instance.GetModel<RuneModel>().passRuneTowerFloor;
|
var lastPassTowerId = -1;
|
if (latestPassedFloor > 0)
|
{
|
lastPassTowerId = RuneTowerFloorConfig.Get((int)latestPassedFloor).TowerId;
|
}
|
|
if (model.allTowerCompleted)
|
{
|
return 1;
|
}
|
else if (latestPassedFloor == 0)
|
{
|
return -1;
|
}
|
else if (_towerId == lastPassTowerId)
|
{
|
if (lastPassTowerId == model.currentTower)
|
{
|
return 0;
|
}
|
else
|
{
|
return 1;
|
}
|
}
|
else
|
{
|
return lastPassTowerId > _towerId ? 1 : -1;
|
}
|
}
|
|
|
}
|
|
}
|
|
|
|