Files
2026-05-26 16:15:54 +08:00

125 lines
3.6 KiB
C#

using cfg;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using UnityEngine;
namespace game
{
public class ToolShovel : OperatingToolsBase
{
[Tooltip("动画")]
[SerializeField]
private Animation m_Animation = null;
[Tooltip("循环动画")]
[SerializeField]
private string m_LoopAnimation = null;
[Tooltip("最后一击动画")]
[SerializeField]
private string m_FinalBlowAnimation = null;
[Tooltip("循环动画声音节点")]
[SerializeField]
private GameObject m_LoopAnimationNode = null;
[Tooltip("最后一击动画声音节点")]
[SerializeField]
private GameObject m_FinalBlowAnimationNode = null;
#region
public override void Enter1stStage()
{
base.Enter1stStage();
if (m_Animation != null)
{
m_Animation.Play(m_LoopAnimation);
}
if (m_LoopAnimationNode != null && m_LoopAnimationNode.activeSelf == false)
{
m_LoopAnimationNode.SetActive(true);
}
}
public override void Exit1stStage()
{
base.Exit1stStage();
if (m_Animation != null)
{
m_Animation.Stop(m_LoopAnimation);
m_Animation.transform.localPosition = Vector3.zero;
m_Animation.transform.localEulerAngles = Vector3.zero;
}
if (m_LoopAnimationNode != null && m_LoopAnimationNode.activeSelf == true)
{
m_LoopAnimationNode.SetActive(false);
}
}
public override void Enter2ndStage()
{
base.Enter2ndStage();
if (m_Animation != null)
{
m_Animation.Play(m_FinalBlowAnimation);
}
if (m_FinalBlowAnimationNode != null && m_FinalBlowAnimationNode.activeSelf == false)
{
m_FinalBlowAnimationNode.SetActive(true);
}
}
public override void Exit2ndStage()
{
base.Exit2ndStage();
if (m_Animation != null)
{
m_Animation.transform.localPosition = Vector3.zero;
m_Animation.transform.localEulerAngles = Vector3.zero;
}
if (m_FinalBlowAnimationNode != null && m_FinalBlowAnimationNode.activeSelf == true)
{
m_FinalBlowAnimationNode.SetActive(false);
}
}
private void StopAllAnimation()
{
if (m_Animation != null)
{
m_Animation.Stop();
m_Animation.transform.localPosition = Vector3.zero;
m_Animation.transform.localEulerAngles = Vector3.zero;
}
if (m_LoopAnimationNode != null && m_LoopAnimationNode.activeSelf == true)
{
m_LoopAnimationNode.SetActive(false);
}
if (m_FinalBlowAnimationNode != null && m_FinalBlowAnimationNode.activeSelf == true)
{
m_FinalBlowAnimationNode.SetActive(false);
}
}
public override void StopExecuting()
{
base.StopExecuting();
StopAllAnimation();
}
#endregion
#region
public override void InitTool()
{
base.InitTool();
m_Type = EventWashingTool.Shovel;
m_PrepareCumulativeTime = 0f;
StopAllAnimation();
}
#endregion
}
}