private void PersonalityShuffle() { fleePersonality = (FleePersonality)Random.Range(0, System.Enum.GetNames(typeof(FleePersonality)).Length); capPersonality = (CapPersonality)Random.Range(0, System.Enum.GetNames(typeof(CapPersonality)).Length); attackingPersonality = (AttackingPersonality)Random.Range(0, System.Enum.GetNames(typeof(AttackingPersonality)).Length); personalityShuffleTimer = Time.time + Random.Range(personalityShuffleDelayMin, personalityShuffleDelayMax); }
private void VariableShuffle() { pursuitRadius = Random.Range(pursuitRadiusMin, pursuitRadiusMax); attackRadius = Random.Range(attackRadiusMin, attackRadiusMax); fleeUntilTime = Random.Range(fleeTimerMin, fleeTimerMax); fleeRadius = Random.Range(fleeRadiusMin, fleeRadiusMax); idleAnimationRadius = Random.Range(idleRadiusMin, idleRadiusMax); if (Time.time > personalityShuffleTimer) { fleePersonality = (FleePersonality)Random.Range(0, System.Enum.GetNames(typeof(FleePersonality)).Length); capPersonality = (CapPersonality)Random.Range(0, System.Enum.GetNames(typeof(CapPersonality)).Length); personalityShuffleTimer = Time.time + Random.Range(personalityShuffleDelayMin, personalityShuffleDelayMax); } nextShuffleTime = Time.time + Random.Range(shuffleDelayMin, shuffleDelayMax); }
private Transform FindNearestCap(CapPersonality mode) { Transform nearest = null; float curDistance = Mathf.Infinity; foreach (GameObject cap in GameManager.caps) { // If attacker, ignore own team's zones if (mode == CapPersonality.Attacker && cap.GetComponent <CapZone>().GetOwner() == this.tag) { continue; } // If any cap, ignore current nearest zone if (mode == CapPersonality.AnyCap && cap.transform == nearestCap) { continue; } /* * // If defender, ignore other teams' zones * if (mode == CapPersonality.Defender && cap.GetComponent<CapZone>().GetOwner() != this.tag) * continue; */ // If capTaker, only search for unclaimed zones if (mode == CapPersonality.CapTaker && cap.GetComponent <CapZone>().GetOwner() != "uncapped") { continue; } float calculatedDist = (cap.transform.position - transform.position).sqrMagnitude; if (calculatedDist < curDistance) { nearest = cap.transform; curDistance = calculatedDist; capDistance = calculatedDist; } } return(nearest); }