using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
public class RealmStageBehaviour : MonoBehaviour
|
{
|
[SerializeField] Image m_RealmIcon;
|
[SerializeField] UIEffect m_Effect;
|
[SerializeField] UIEffect m_PracticeEffect;
|
|
public int realmLevel { get; private set; }
|
|
public int animIndex { get; set; }
|
|
RealmModel model { get { return ModelCenter.Instance.GetModel<RealmModel>(); } }
|
|
|
public void Display(int _realmLv)
|
{
|
this.realmLevel = _realmLv;
|
|
model.selectRealmRefresh -= SelectRealmRefresh;
|
model.selectRealmRefresh += SelectRealmRefresh;
|
|
DisplayBase();
|
DisplayPracticeEffect();
|
DisplayEffect(false);
|
}
|
|
void DisplayBase()
|
{
|
var config = RealmConfig.Get(realmLevel);
|
m_RealmIcon.SetSprite(config.Img);
|
}
|
|
|
|
void DisplayPracticeEffect()
|
{
|
if (model.displayRealmLevel == realmLevel)
|
{
|
if (!m_PracticeEffect.IsPlaying)
|
{
|
m_PracticeEffect.Play();
|
}
|
}
|
else
|
{
|
m_PracticeEffect.StopImediatly();
|
}
|
}
|
|
public void DisplayEffect(bool levelUp)
|
{
|
m_Effect.StopImediatly();
|
if (model.displayRealmLevel >= realmLevel)
|
{
|
m_Effect.effect = model.GetRealmStageEffect(realmLevel);
|
m_Effect.Play();
|
Animator animator = null;
|
if (m_Effect.target != null)
|
{
|
animator = m_Effect.target.GetAnimator();
|
}
|
if (animator != null)
|
{
|
animator.Play(levelUp ? "open" : "idle", 0);
|
if (levelUp)
|
{
|
StartCoroutine(Co_DelayEffect(animator));
|
}
|
}
|
}
|
}
|
|
IEnumerator Co_DelayEffect(Animator animator)
|
{
|
yield return WaitingForSecondConst.WaitMS300;
|
if (animator != null)
|
{
|
animator.Play("idle", 0, 0);
|
}
|
}
|
|
public void Dispose()
|
{
|
model.selectRealmRefresh -= SelectRealmRefresh;
|
StopAllCoroutines();
|
}
|
|
private void SelectRealmRefresh()
|
{
|
DisplayPracticeEffect();
|
}
|
|
private void OnSelect()
|
{
|
//model.selectRealm = realmLevel;
|
}
|
}
|
}
|