Files
JJBB/Assets/Project/Script/GUI/Message/CombatValueAnim.cs

102 lines
2.2 KiB
C#
Raw Normal View History

2024-08-23 15:49:34 +08:00

using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using Games.GlobeDefine;
using GCGame.Table;
using GCGame;
public class CombatValueAnim : UIControllerBase<CombatValueAnim>
{
#region static
public static void ShowCombatValueAnim(int orgCombatVal, int curCombatVal)
{
Hashtable hash = new Hashtable();
hash.Add("OrgVal", orgCombatVal);
hash.Add("CurVal", curCombatVal);
UIManager.ShowUI(UIInfo.CombatValueAnim, OnCombatValueAnim, hash);
}
static void OnCombatValueAnim(bool bSuccess, object param)
{
Hashtable hash = param as Hashtable;
if (!bSuccess)
{
return;
}
if (hash == null)
{
return;
}
if (Instance() != null)
{
Instance().Show((int)hash["OrgVal"], (int)hash["CurVal"]);
}
}
#endregion
public UIImgText _CombatVal;
public UIImgText _CombatAddVal;
public float _NumJumpTime = 1.5f;
public float _NumJumpTimeInterval = 0.1f;
private int _OrgVal;
private int _CurVal;
private int _AddVal;
private float _JumpNum;
private float _JumpInterval;
void OnEnable()
{
SetInstance(this);
}
void OnDisable()
{
SetInstance(null);
}
public void Show(int orgVal, int curVal)
{
gameObject.SetActive(false);
gameObject.SetActive(true);
_OrgVal = orgVal;
_CurVal = curVal;
_AddVal = _CurVal - _OrgVal;
_CombatVal.text = _OrgVal.ToString();
_CombatAddVal.text = _AddVal.ToString();
_JumpNum = _OrgVal;
_JumpInterval = _AddVal / _NumJumpTime;
}
public void Close()
{
UIManager.CloseUI(UIInfo.CombatValueAnim);
}
public void StartNumJumpAnim()
{
CancelInvoke("NumJump");
InvokeRepeating("NumJump", 0, _NumJumpTimeInterval);
}
private void NumJump()
{
_JumpNum += _NumJumpTimeInterval * _JumpInterval;
_JumpNum = Mathf.Clamp(_JumpNum, _OrgVal, _CurVal);
_CombatVal.text = ((int)_JumpNum).ToString();
if (_JumpNum == _CurVal)
{
CancelInvoke("NumJump");
}
}
}