Beispiel #1
0
    public void Update(float delta)
    {
        if (enemy == null)
        {
            hostAi.ChangeState(StateAi.States.Roaming);
        }

        aimed   = hostAi.IsAimedAt(enemy.Transform.origin, MeleeAimMargin);
        inRange = hostAi.DistanceToActor(enemy) <= MeleeRange;
        Strafe(delta);
        CloseDistance(delta);
        Attack(delta);
    }
Beispiel #2
0
    public void Update(float delta)
    {
        if (enemy == null)
        {
            hostAi.ChangeState(StateAi.States.Roaming);
        }

        aimed        = hostAi.IsAimedAt(enemy.Transform.origin, RangedAimMargin);
        currentRange = hostAi.DistanceToActor(enemy);
        inRange      = currentRange <= RangedRange;

        if (!aimDelayActive)
        {
            Strafe(delta);
            MaintainDistance(delta);
        }
        Attack(delta);
    }