using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
using UnityEngine.UI;
|
namespace vnxbqy.UI
|
{
|
public class DungeonLiquidBehaviour : MonoBehaviour
|
{
|
[SerializeField] Button m_LiquidBtn;
|
|
[SerializeField] RotationTween m_RotTween;
|
[SerializeField, Header("晃动次数")]
|
int m_WaggleCnt = 6;
|
[SerializeField, Header("间隔时间")]
|
float m_IntervalTime = 3.0f;
|
|
float m_Time;
|
|
DungeonModel m_Model;
|
DungeonModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<DungeonModel>()); } }
|
|
DungeonLiquidModel m_DungeonLiquidModel;
|
DungeonLiquidModel dungeonLiquidModel
|
{
|
get
|
{
|
return m_DungeonLiquidModel ?? (m_DungeonLiquidModel = ModelCenter.Instance.GetModel<DungeonLiquidModel>());
|
}
|
}
|
|
BuffModel m_BuffModel;
|
BuffModel Buffmodel
|
{
|
get
|
{
|
return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<BuffModel>());
|
}
|
}
|
|
bool m_Waggle = false;
|
|
void Awake()
|
{
|
m_LiquidBtn.onClick.AddListener(OnLiquidBtn);
|
}
|
|
private void OnEnable()
|
{
|
ResetTween();
|
BuffModel.Even_ObjAddBuf += UpdateBuf;
|
BuffModel.Even_ObjDelBuff += UpdateBuf;
|
UpdateBuf();
|
}
|
|
private void ResetTween()
|
{
|
m_Time = 0;
|
m_RotTween.enabled = false;
|
m_LiquidBtn.transform.localEulerAngles = Vector3.zero;
|
}
|
|
private void LateUpdate()
|
{
|
if (m_Waggle)
|
{
|
m_Time += Time.deltaTime;
|
if (m_RotTween.isActiveAndEnabled)
|
{
|
if (m_Time > m_RotTween.duration * m_WaggleCnt)
|
{
|
ResetTween();
|
}
|
}
|
else
|
{
|
if (m_Time > m_IntervalTime)
|
{
|
m_Time = 0;
|
m_RotTween.enabled = true;
|
}
|
}
|
}
|
}
|
|
private void OnLiquidBtn()
|
{
|
WindowCenter.Instance.Open<DungeonUseLiquidWin>();
|
}
|
|
private void OnDisable()
|
{
|
BuffModel.Even_ObjAddBuf -= UpdateBuf;
|
BuffModel.Even_ObjDelBuff -= UpdateBuf;
|
}
|
|
private void UpdateBuf()
|
{
|
int buffid = 0;
|
for (int i = 0; i < dungeonLiquidModel.liquidItems.Count; i++)
|
{
|
ItemConfig cfg = ItemConfig.Get(dungeonLiquidModel.liquidItems[i]);
|
if (Buffmodel._BuffDic.ContainsKey(cfg.AddSkill1))
|
{
|
buffid = cfg.AddSkill1;
|
break;
|
}
|
}
|
m_Waggle = buffid == 0;
|
if (!m_Waggle)
|
{
|
ResetTween();
|
}
|
}
|
}
|
}
|
|