| | |
| | | using System; |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using UnityEngine; |
| | | using UnityEngine.UI; |
| | | using TableConfig; |
| | | namespace Snxxz.UI |
| | | { |
| | | public class DungeonInspireBehaviour : MonoBehaviour |
| | | { |
| | | [SerializeField] Button m_InspireBtn; |
| | | [SerializeField] RotationTween m_RotTween; |
| | | [SerializeField] Text m_InspireProgress; |
| | | [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>()); } } |
| | | |
| | | bool m_Waggle = false; |
| | | |
| | | DungeonInspireConfig m_CoinConfig; |
| | | |
| | | private void Awake() |
| | | { |
| | | m_InspireBtn.onClick.AddListener(OnInspireBtn); |
| | | } |
| | | |
| | | private void OnEnable() |
| | | { |
| | | ResetTween(); |
| | | model.dungeonInspireLvEvent += UpdateDugeonInspireLv; |
| | | UpdateDugeonInspireLv(); |
| | | var _list = model.GetDungeonInspire(PlayerDatas.Instance.baseData.MapID); |
| | | m_CoinConfig = null; |
| | | if (_list == null) |
| | | { |
| | | return; |
| | | } |
| | | for (int i = 0; i < _list.Count; i++) |
| | | { |
| | | if (_list[i].InspireType == 1) |
| | | { |
| | | m_CoinConfig = _list[i]; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | private void UpdateDugeonInspireLv() |
| | | { |
| | | var mapId = model.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID); |
| | | var lv = model.dungeonJadeInspireCount + model.dungeonCoinInspireCount; |
| | | m_Waggle = m_CoinConfig != null && model.dungeonCoinInspireCount < m_CoinConfig.InspireCount |
| | | && lv < model.GetDungeonInspireMaxCnt(mapId); |
| | | if (m_InspireProgress != null) |
| | | { |
| | | m_InspireProgress.gameObject.SetActive(PlayerDatas.Instance.baseData.MapID == DemonJarModel.DEMONJAR_MAPID); |
| | | m_InspireProgress.text = StringUtility.Contact(lv * 10, "%"); |
| | | } |
| | | if (!m_Waggle) |
| | | { |
| | | ResetTween(); |
| | | } |
| | | } |
| | | |
| | | 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 ResetTween() |
| | | { |
| | | m_Time = 0; |
| | | m_RotTween.enabled = false; |
| | | m_InspireBtn.transform.localEulerAngles = Vector3.zero; |
| | | } |
| | | |
| | | private void OnInspireBtn() |
| | | { |
| | | if ((model.dungeonCoinInspireCount + model.dungeonJadeInspireCount) >= model.GetDungeonInspireMaxCnt(PlayerDatas.Instance.baseData.MapID)) |
| | | { |
| | | SysNotifyMgr.Instance.ShowTip("Xjmj_InspireMaxLevel"); |
| | | return; |
| | | } |
| | | WindowCenter.Instance.Open<DungeonInspireWin>(); |
| | | } |
| | | |
| | | private void OnDisable() |
| | | { |
| | | model.dungeonInspireLvEvent -= UpdateDugeonInspireLv; |
| | | } |
| | | } |
| | | } |
| | | |
| | | using System;
|
| | | using System.Collections;
|
| | | using System.Collections.Generic;
|
| | | using UnityEngine;
|
| | | using UnityEngine.UI;
|
| | | using TableConfig;
|
| | | namespace Snxxz.UI
|
| | | {
|
| | | public class DungeonInspireBehaviour : MonoBehaviour
|
| | | {
|
| | | [SerializeField] Button m_InspireBtn;
|
| | | [SerializeField] RotationTween m_RotTween;
|
| | | [SerializeField] Text m_InspireProgress;
|
| | | [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>()); } }
|
| | |
|
| | | bool m_Waggle = false;
|
| | |
|
| | | DungeonInspireConfig m_CoinConfig;
|
| | |
|
| | | private void Awake()
|
| | | {
|
| | | m_InspireBtn.onClick.AddListener(OnInspireBtn);
|
| | | }
|
| | |
|
| | | private void OnEnable()
|
| | | {
|
| | | ResetTween();
|
| | | model.dungeonInspireLvEvent += UpdateDugeonInspireLv;
|
| | | UpdateDugeonInspireLv();
|
| | | var _list = model.GetDungeonInspire(PlayerDatas.Instance.baseData.MapID);
|
| | | m_CoinConfig = null;
|
| | | if (_list == null)
|
| | | {
|
| | | return;
|
| | | }
|
| | | for (int i = 0; i < _list.Count; i++)
|
| | | {
|
| | | if (_list[i].InspireType == 1)
|
| | | {
|
| | | m_CoinConfig = _list[i];
|
| | | break;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | private void UpdateDugeonInspireLv()
|
| | | {
|
| | | var mapId = model.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var lv = model.dungeonJadeInspireCount + model.dungeonCoinInspireCount;
|
| | | m_Waggle = m_CoinConfig != null && model.dungeonCoinInspireCount < m_CoinConfig.InspireCount
|
| | | && lv < model.GetDungeonInspireMaxCnt(mapId);
|
| | | if (m_InspireProgress != null)
|
| | | {
|
| | | m_InspireProgress.gameObject.SetActive(PlayerDatas.Instance.baseData.MapID == DemonJarModel.DEMONJAR_MAPID);
|
| | | m_InspireProgress.text = StringUtility.Contact(lv * 10, "%");
|
| | | }
|
| | | if (!m_Waggle)
|
| | | {
|
| | | ResetTween();
|
| | | }
|
| | | }
|
| | |
|
| | | 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 ResetTween()
|
| | | {
|
| | | m_Time = 0;
|
| | | m_RotTween.enabled = false;
|
| | | m_InspireBtn.transform.localEulerAngles = Vector3.zero;
|
| | | }
|
| | |
|
| | | private void OnInspireBtn()
|
| | | {
|
| | | if ((model.dungeonCoinInspireCount + model.dungeonJadeInspireCount) >= model.GetDungeonInspireMaxCnt(PlayerDatas.Instance.baseData.MapID))
|
| | | {
|
| | | SysNotifyMgr.Instance.ShowTip("Xjmj_InspireMaxLevel");
|
| | | return;
|
| | | }
|
| | | WindowCenter.Instance.Open<DungeonInspireWin>();
|
| | | }
|
| | |
|
| | | private void OnDisable()
|
| | | {
|
| | | model.dungeonInspireLvEvent -= UpdateDugeonInspireLv;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|