Exemplo n.º 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);
    }
    public bool EnemyInRangeCheck(float delta)
    {
        rangeCheckTimer += delta;
        if (rangeCheckTimer < RangeCheckInterval)
        {
            return(false);
        }

        if (hostAi.GetCombatRange() > hostAi.DistanceToActor(enemy))
        {
            return(true);
        }

        return(false);
    }
Exemplo n.º 3
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);
    }