void Update() { distanceToPlayer = Vector3.Distance(player.transform.position, transform.position); WeaponSystem weaponSystem = GetComponent <WeaponSystem>(); currentWeaponRange = weaponSystem.GetCurrentWeapon().GetMaxAttackRange(); if (distanceToPlayer > chaseRadius && state != State.patrolling) { StopAllCoroutines(); weaponSystem.StopAttacking(); StartCoroutine(Patrol()); } if (distanceToPlayer <= chaseRadius && state != State.chasing) { StopAllCoroutines(); weaponSystem.StopAttacking(); StartCoroutine(ChasePlayer()); } if (distanceToPlayer <= currentWeaponRange && state != State.attacking) { StopAllCoroutines(); weaponSystem.AttackTarget(player.gameObject); } }
bool IsTargetInRange(GameObject target) { float distanceToTarget = (target.transform.position - transform.position).magnitude; return(distanceToTarget <= weaponSystem.GetCurrentWeapon().GetMaxAttackRange()); }
void Update() { distanceToPlayer = Vector3.Distance(player.transform.position, transform.position); WeaponSystem weaponSystem = GetComponent <WeaponSystem>(); currentWeaponRange = weaponSystem.GetCurrentWeapon().GetMaxAttackRange(); if (distanceToPlayer > talkingRadius && state != State.patrolling) { StopAllCoroutines(); StartCoroutine(Patrol()); } if (distanceToPlayer <= talkingRadius && state != State.talking) { StopAllCoroutines(); StartCoroutine(TalkingToPlayer()); } }