Exemplo n.º 1
0
 public override void OnEnter()
 {
     base.OnEnter();
     Debug.Log("Flee");
     DryadEntity.GetComponent <SpeedManager>().SelfSpeedDirection = Context.FleeDir;
     DryadEntity.transform.rotation = Quaternion.Euler(0, Vector3.SignedAngle(Vector3.right, Context.FleeDir, Vector3.up), 0);
 }
Exemplo n.º 2
0
 public override void OnEnter()
 {
     base.OnEnter();
     Debug.Log("Wander");
     DryadEntity.GetComponent <Wander>().OnEnterWander();
     DryadEntity.GetComponent <Wander>().enabled = true;
 }
Exemplo n.º 3
0
 public override void Update()
 {
     base.Update();
     if (DryadEntity.GetComponent <DryadActionStateManager>().CurrentState == DryadActionState.Normal)
     {
         TransitionTo <DryadAIState_Flee>();
     }
 }
Exemplo n.º 4
0
    public override void Update()
    {
        base.Update();
        var DetectDanger = DryadEntity.GetComponent <DetectDanger>();

        if (!DetectDanger.Detect(DetectDanger.InDangerDetectAngle, DetectDanger.SaveDis))
        {
            TransitionTo <DryadAIState_Wander>();
        }
    }
Exemplo n.º 5
0
    public override void Update()
    {
        base.Update();
        var DetectDanger = DryadEntity.GetComponent <DetectDanger>();

        if (DetectDanger.Detect(DetectDanger.SaveDetectAngle, DetectDanger.AlertDis))
        {
            if (DetectDanger.DetectedBall)
            {
                Vector3 v = DetectDanger.DetectedBall.transform.position - DryadEntity.transform.position;
                v.y = 0;
                float Dis = v.magnitude;
                if (Dis < DetectDanger.ResponseDis)
                {
                    Context.FleeDir = -v.normalized;
                    TransitionTo <DryadAIState_Dodge>();
                }
                else
                {
                    TransitionTo <DryadAIState_Alert>();
                }
            }
            else
            {
                Vector3 v = DetectDanger.DetectedPlayer.transform.position - DryadEntity.transform.position;
                v.y = 0;
                float Dis = v.magnitude;

                if (Dis < DetectDanger.ResponseDis)
                {
                    Context.FleeDir = -v.normalized;
                    TransitionTo <DryadAIState_Flee>();
                }
                else
                {
                    TransitionTo <DryadAIState_Alert>();
                }
            }
        }
    }
Exemplo n.º 6
0
    public override void Update()
    {
        base.Update();
        DryadEntity.GetComponent <SpeedManager>().SelfSpeedDirection = Vector3.zero;
        var DetectDanger = DryadEntity.GetComponent <DetectDanger>();

        if (DetectDanger.Detect(DetectDanger.SaveDetectAngle, DetectDanger.AlertDis))
        {
            if (DetectDanger.DetectedBall)
            {
                Vector3 v = DetectDanger.DetectedBall.transform.position - DryadEntity.transform.position;
                v.y = 0;
                float Dis = v.magnitude;
                DryadEntity.transform.rotation = Quaternion.Euler(0, Vector3.SignedAngle(Vector3.right, v, Vector3.up), 0);

                if (Dis < DetectDanger.ResponseDis)
                {
                    Context.FleeDir = -v.normalized;
                    TransitionTo <DryadAIState_Dodge>();
                }
            }
            else
            {
                Vector3 v = DetectDanger.DetectedPlayer.transform.position - DryadEntity.transform.position;
                v.y = 0;
                float Dis = v.magnitude;
                DryadEntity.transform.rotation = Quaternion.Euler(0, Vector3.SignedAngle(Vector3.right, v, Vector3.up), 0);

                if (Dis < DetectDanger.ResponseDis)
                {
                    Context.FleeDir = -v.normalized;
                    TransitionTo <DryadAIState_Flee>();
                }
            }
        }
        else
        {
            TransitionTo <DryadAIState_Wander>();
        }
    }
Exemplo n.º 7
0
 public override void OnEnter()
 {
     base.OnEnter();
     DryadEntity.GetComponent <DryadAbility>().StartDodge(Context.FleeDir);
 }
Exemplo n.º 8
0
 public override void OnExit()
 {
     base.OnExit();
     DryadEntity.GetComponent <Wander>().enabled = false;
     DryadEntity.GetComponent <Wander>().OnExitWander();
 }