void Start()
 {
     if (overrideDistance == null)
     {
         overrideDistance = aggroRange;
     }
     faction = combatController.faction;
 }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        /// <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));
        }