private void CheckStatus() { // first, check active state if (!_isActive) { if (activationDetect.PlayerInRange()) { _isActive = true; } } if (currentKnockbackCooldown > 0) { _hitStunned = true; currentKnockbackCooldown -= Time.deltaTime; } else { _hitStunned = false; } if (_currentState == null) { CheckStates(); } }
public bool isActive() { bool active = true; // do checks for all conditions if (myEnemy.isActive != activeState) { active = false; } if (minDistance != null) { if (!minDistance.PlayerInRange()) { active = false; } } if (minHealthPercentage > 0 && myEnemy.currentHealth / myEnemy.maxHealth * 100f <= minHealthPercentage) { active = false; } // after all checks, if active = true && immediate == true, force mode switch if (active && overrideImmediate) { myEnemy.ForceBehaviorState(this); } return(active); }
private bool AttackInRange() { bool canContinue = true; if (rangeCheck != null) { if (!rangeCheck.PlayerInRange()) { canContinue = false; } } return(canContinue); }
// Update is called once per frame void FixedUpdate() { if (behaviorActing) { DoMovement(); chaseTimeCountdown -= Time.deltaTime; if (chaseEndRange != null) { if (chaseEndRange.PlayerInRange()) { EndAction(); } } if (chaseTimeCountdown <= 0) { EndAction(); } } }