void Start() { if (overrideDistance == null) { overrideDistance = aggroRange; } faction = combatController.faction; }
/// <summary> /// Gets a list of all possible targets, those not belonging to the given /// faction. /// </summary> /// <param name="faction"></param> /// <returns></returns> List <CombatController> getTargets(CombatController.Faction faction) { var targets = new List <CombatController>(); foreach (var CombatControllerGroup in combatantsByFaction) { if (CombatControllerGroup.Key != faction) { foreach (var target in CombatControllerGroup.Value) { targets.Add(target); } } } return(targets); }
/// <summary> /// Calculates the grid positions for the given party faction. /// </summary> /// <param name="position">The position of the lead from the party.</param> /// <param name="faction">The faction it belongs to. </param> void CalculatePositionsAround(Vector3 position, CombatController.Faction faction) { var margin = 3f; // 1 2 3 availableSpawnPositions[faction].Push(new Vector3(position.x - margin, position.y, position.z - margin)); availableSpawnPositions[faction].Push(new Vector3(position.x, position.y, position.z - margin)); availableSpawnPositions[faction].Push(new Vector3(position.x + margin, position.y, position.z - margin)); // 4 5 6 availableSpawnPositions[faction].Push(new Vector3(position.x - margin, position.y, position.z)); availableSpawnPositions[faction].Push(position); availableSpawnPositions[faction].Push(new Vector3(position.x + margin, position.y, position.z)); // 7 8 9 availableSpawnPositions[faction].Push(new Vector3(position.x - margin, position.y, position.z + margin)); availableSpawnPositions[faction].Push(new Vector3(position.x, position.y, position.z + margin)); availableSpawnPositions[faction].Push(new Vector3(position.x + margin, position.y, position.z + margin)); }