This repository has been archived on 2025-04-11. You can view files and clone it, but cannot push or open issues or pull requests.
project-undercover/Project Undercover/Assets/Scripts/CharacterStateMachine/ActionScripts/RoamAction.cs

40 lines
1.2 KiB
C#
Raw Normal View History

2017-10-03 04:15:13 -05:00
using System.Collections;
using UnityEngine;
using UnityEngine.AI;
[CreateAssetMenu(menuName = "CharacterStateMachine/Actions/Roam")]
public class RoamAction : Action
{
public override void StartAct(StateController controller)
{
controller.StartRoaming();
2017-10-09 18:55:07 -05:00
controller.characterAnimator.SetBool(CharacterAnimator.Params.Interacting, false);
2017-10-10 12:43:11 -05:00
if (controller.SelectedObject)
{
controller.SelectedObject.IsInteracting = false;
controller.SelectedObject = null;
}
if (controller.IsInteracting)
controller.IsInteracting = false;
2017-10-03 04:15:13 -05:00
}
public override void Act(StateController controller)
2017-10-03 04:15:13 -05:00
{
2017-10-09 18:55:07 -05:00
if (controller.Interactor != null && !controller.IsInteracting && InRangeOfInteractor(controller))
2017-10-03 04:15:13 -05:00
{
controller.AcceptInteraction();
2017-10-03 04:15:13 -05:00
}
}
public override void EndAct(StateController controller)
2017-10-03 04:15:13 -05:00
{
2017-10-05 13:53:29 -05:00
// Debug.Log("Stopping coroutine");
controller.StopRoaming();
2017-10-03 04:15:13 -05:00
}
2017-10-09 18:55:07 -05:00
private bool InRangeOfInteractor(StateController controller)
{
return (controller.Interactor.transform.position - controller.transform.position).magnitude < StateController.INTERACT_RANGE;
}
2017-10-03 04:15:13 -05:00
}