//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Thursday, November 09, 2017
|
//--------------------------------------------------------
|
using UnityEngine;
|
using System.Collections;
|
using UnityEngine.UI;
|
|
|
namespace vnxbqy.UI
|
{
|
|
public class TowerFloorBehaviour : MonoBehaviour
|
{
|
static float autoSelectAllowTime = 0f;
|
static bool autoSelectable {
|
get { return Time.time > autoSelectAllowTime; }
|
}
|
|
[SerializeField] Image m_Floor;
|
[SerializeField] Button m_Selected;
|
[SerializeField] TextEx m_FloorName;
|
[SerializeField] Image m_Challenge;
|
[SerializeField] Image m_Cover;
|
[SerializeField] RectTransform m_ContainerSelected;
|
[SerializeField] UIEffect m_GateEffect;
|
[SerializeField] UIFrame m_FlashFrame;
|
[SerializeField] PositionTween m_FloorTween;
|
|
[HideInInspector] public RuneTowerBehaviour towerBehaviour;
|
|
RectTransform m_RectTransform;
|
RectTransform rectTransform { get { return m_RectTransform ?? (this.transform as RectTransform); } }
|
|
RuneTowerModel model { get { return ModelCenter.Instance.GetModel<RuneTowerModel>(); } }
|
DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
|
|
int floorId = 0;
|
public void Display(int _floorId)
|
{
|
m_FlashFrame.SetActive(false);
|
this.floorId = _floorId;
|
|
var isOpened = this.model.currentFloor >= this.floorId;
|
var config = RuneTowerFloorConfig.Get(floorId);
|
m_FloorName.text = StringUtility.Contact(config.FloorName);
|
m_Challenge.SetActive(this.model.currentFloor == this.floorId);
|
m_Cover.SetActive(this.model.currentFloor > this.floorId);
|
|
m_FloorName.color = this.model.currentFloor == this.floorId ? UIHelper.GetUIColor(TextColType.NavyYellow) : UIHelper.s_LightYellow;
|
//if (this.model.currentFloor == this.floorId)
|
//{
|
// m_GateEffect.Play();
|
//}
|
//else
|
//{
|
// m_GateEffect.Stop();
|
//}
|
|
OnSelected(model.selectedFloor);
|
dungeonModel.onDungeonResultEvent -= OnDungeonResultEvent;
|
//不在塔地图中增加雷诛功能
|
if (this.model.currentFloor == this.floorId && dungeonModel.CanFlashKill())
|
{
|
dungeonModel.onDungeonResultEvent += OnDungeonResultEvent;
|
}
|
}
|
|
|
private void OnEnable()
|
{
|
model.selectedFloorEvent += OnSelected;
|
}
|
private void OnDisable()
|
{
|
model.selectedFloorEvent -= OnSelected;
|
StopAllCoroutines();
|
}
|
|
|
private void Awake()
|
{
|
m_Selected.AddListener(SelectTower);
|
}
|
|
private void SelectTower()
|
{
|
autoSelectAllowTime = Time.time + 0.5f;
|
model.selectedFloor = floorId;
|
}
|
|
private void OnSelected(int _floor)
|
{
|
m_ContainerSelected.SetActive(floorId == _floor);
|
}
|
|
private void OnDungeonResultEvent()
|
{
|
if (dungeonModel.dungeonResult.quickPass == 1 && dungeonModel.dungeonResult.dataMapID == RuneTowerModel.RUNETOWER_MAPID)
|
{
|
m_FlashFrame.SetActive(true);
|
m_FloorTween.Play(() => {
|
m_FlashFrame.SetActive(false);
|
model.OnFlashOver(1);
|
});
|
SoundPlayer.Instance.PlayUIAudio(857);
|
}
|
}
|
}
|
|
}
|
|
|
|