40 lines
1.1 KiB
C#
Raw Normal View History

2024-03-19 21:38:59 +03:00
using Koptilnya.StateMachine;
using Mirror;
using UnityEngine;
namespace Characters.Enemy.States
{
public class AttackState : State<EnemyState>
{
private readonly Enemy _enemy;
private static readonly int AttackAnimHash = Animator.StringToHash("attack");
2024-03-19 23:37:02 +03:00
private readonly AudioClip _attackClip;
2024-03-19 21:38:59 +03:00
public AttackState(Enemy enemy) : base(EnemyState.Attack)
{
_enemy = enemy;
2024-03-19 23:37:02 +03:00
_attackClip = Resources.Load<AudioClip>("Audio/EnemySounds/FX/attack");
2024-03-19 21:38:59 +03:00
}
public override void Enter()
{
2024-03-19 23:37:02 +03:00
if (_enemy.isServer)
{
_enemy.networkAnimator.SetTrigger(AttackAnimHash);
_enemy.RpcKillTarget(_enemy.targetTransform);
_enemy.ChangeState(EnemyState.Idle);
}
2024-03-19 21:38:59 +03:00
2024-03-19 23:37:02 +03:00
if (_enemy.isClient)
{
_enemy.audioSource.PlayOneShot(_attackClip);
}
2024-03-19 21:38:59 +03:00
}
[ServerCallback]
public override void Exit()
{
_enemy.targetTransform = null;
}
}
}