using System.Collections; using System.Collections.Generic; using UnityEngine; using Saltosion.OneWeapon.AI.Behaviours; using Saltosion.OneWeapon.AI.Triggers; namespace Saltosion.OneWeapon.Enemies { [RequireComponent(typeof(Enemy))] [RequireComponent(typeof(PlayerSighted))] [RequireComponent(typeof(Wander))] [RequireComponent(typeof(Follow))] [RequireComponent(typeof(MeleeAttackFollowed))] public class Crab : MonoBehaviour { public Animator Anim; private Enemy Enemy; private PlayerSighted FollowTrigger; private Wander WanderBehaviour; private Follow FollowBehaviour; private MeleeAttackFollowed MeleeBehaviour; private void Start() { Enemy = GetComponent(); FollowTrigger = GetComponent(); WanderBehaviour = GetComponent(); FollowBehaviour = GetComponent(); MeleeBehaviour = GetComponent(); } private void Update() { Enemy.CurrentBehaviour = ""; if (FollowTrigger.IsTriggered()) { FollowBehaviour.Target = FollowTrigger.Player.transform; if (MeleeBehaviour.TryExecute()) { Enemy.CurrentBehaviour += "Melee:" + MeleeBehaviour.CurrentStatus + ", "; } if (FollowBehaviour.TryExecute()) { Enemy.CurrentBehaviour += "Follow:" + FollowBehaviour.CurrentStatus; } } else if (WanderBehaviour.TryExecute()) { Enemy.CurrentBehaviour += "Wander:" + WanderBehaviour.CurrentStatus; } if (MeleeBehaviour.Attacking) { Anim.Play("Attack"); } else { Anim.Play("Walk"); } Anim.SetFloat("Speed", Enemy.Movement.SpeedPercentage); } } }