//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Wednesday, July 18, 2018
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
//回合战斗展示界面
|
namespace vnxbqy.UI
|
{
|
|
public class TurnFightWin : Window
|
{
|
[SerializeField] Text roundText;
|
[SerializeField] Button closeBtn;
|
[SerializeField] ButtonEx changeSpeed;
|
[SerializeField] Image speedImg;
|
[SerializeField] Image startBG;
|
[SerializeField] ScaleTween startWord;
|
[SerializeField] UIEffect uiEffect;
|
[SerializeField] Text skipRoundText;
|
[Header("异兽入侵")]
|
[SerializeField] GameObject beastInvasionGameObject;
|
[SerializeField] Slider slider;
|
[SerializeField] TextEx boxCountText;
|
[SerializeField] TextEx hurtText;
|
BeastInvasionModel beastInvasionModel { get { return ModelCenter.Instance.GetModel<BeastInvasionModel>(); } }
|
|
|
float startBGShowTime;
|
|
#region Built-in
|
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
closeBtn.AddListener(() => {
|
if (TurnFightModel.Instance.m_TurnNum < TurnFightModel.Instance.canJumpTurnNum) return;
|
TurnFightModel.Instance.EndTurnFight();
|
CloseClick();
|
});
|
|
|
changeSpeed.AddListener(() => {
|
TurnFightModel.Instance.ChangePlaySpeed();
|
speedImg.SetSprite("TurnFightSpeed" + TurnFightModel.Instance.speedMul);
|
});
|
|
}
|
|
|
protected override void OnPreOpen()
|
{
|
TurnFightModel.Instance.OnTurnFightEvent += Display;
|
startBG.fillAmount = 0;
|
startBG.SetActive(true);
|
startBGShowTime = Time.realtimeSinceStartup;
|
|
uiEffect.Play();
|
if (uiEffect.target != null)
|
{
|
var animator = uiEffect.target.GetAnimator();
|
if (animator != null)
|
{
|
animator.speed = TurnFightModel.Instance.speedMul * 1.5f;
|
animator.Play("Effect_jingjie_guochangyun_02", 0, 0); //云动画
|
}
|
}
|
Display();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
|
}
|
|
protected override void OnPreClose()
|
{
|
TurnFightModel.Instance.OnTurnFightEvent -= Display;
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
|
protected override void LateUpdate()
|
{
|
if (!startBG.IsActive())
|
{
|
return;
|
}
|
var speed = TurnFightModel.Instance.speedMul * 1.2f;
|
startBG.fillAmount = Mathf.Clamp01((Time.realtimeSinceStartup - startBGShowTime) * speed);
|
if (startBG.fillAmount > 0.4 && !startWord.IsPlaying())
|
{
|
startWord.SetActive(true);
|
startWord.SetStartState();
|
startWord.duration = 0.8f / speed;
|
startWord.Play(() => {
|
startBG.SetActive(false);
|
startWord.SetActive(false);
|
});
|
}
|
}
|
|
#endregion
|
|
void Display()
|
{
|
roundText.text = Language.Get("CutTree12", TurnFightModel.Instance.m_TurnNum, TurnFightModel.Instance.m_TurnMax);
|
speedImg.SetSprite("TurnFightSpeed" + TurnFightModel.Instance.speedMul);
|
if (TurnFightModel.Instance.canJumpTurnNum - TurnFightModel.Instance.m_TurnNum < 0)
|
{
|
skipRoundText.text = Language.Get("CutTree15");
|
}
|
else
|
{
|
skipRoundText.text = Language.Get("CutTree14", TurnFightModel.Instance.canJumpTurnNum + 1 - TurnFightModel.Instance.m_TurnNum);
|
}
|
|
beastInvasionGameObject.SetActive(TurnFightModel.Instance.m_MapID == 5010);
|
int boxNum = beastInvasionModel.boxNum;
|
float needHurtValue = float.Parse(AlineInvadeConfig.Get(boxNum).NeedHurtValue);
|
boxCountText.text = boxNum.ToString();
|
slider.value = (float)Math.Round(beastInvasionModel.boxHurt / needHurtValue, 3);
|
hurtText.text = StringUtility.Contact(UIHelper.ReplaceLargeNum(beastInvasionModel.boxHurt), "/", UIHelper.ReplaceLargeNum(needHurtValue));
|
}
|
}
|
|
}
|