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); }
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); }