protected override bool Evaluate(AIBehaviors fsm) { bool cantSeePlayer = fsm.GetClosestPlayerWithinSight(objectFinder.GetTransforms(), false) == null; if (cantSeePlayer) { if (timerStarted) { if (triggerTime < Time.time) { return(true); } } else { triggerTime = Time.time + triggerAfterTime; timerStarted = true; } } else { timerStarted = false; } return(false); }
protected Transform GetTarget(AIBehaviors fsm) { if (findVisibleTargetsOnly) { return(fsm.GetClosestPlayerWithinSight(objectFinder.GetTransforms())); } else { return(fsm.GetClosestPlayer(objectFinder.GetTransforms())); } }
protected override void Action(AIBehaviors fsm) { AnimatorStateInfo stateInfo = animator.GetCurrentAnimatorStateInfo(mecanimLayerIndex); int hash = Animator.StringToHash(animationStates[0].name); if (hash == stateInfo.fullPathHash) { float curNormalizedTime = stateInfo.normalizedTime % 1.0f; if (curNormalizedTime > attackPoint && prevNormalizedTime < attackPoint) { if (scriptWithAttackMethod != null) { TriggerCooldown(); Attack(fsm, fsm.GetClosestPlayerWithinSight(objectFinder.GetTransforms())); } } prevNormalizedTime = curNormalizedTime; } }
protected override bool Evaluate(AIBehaviors fsm) { seenPlayer = fsm.GetClosestPlayerWithinSight(objectFinder.GetTransforms(), true, sightTransformOverride); return(seenPlayer != null); }