/// <summary>
        /// Spawns the specified character in the arena.
        /// </summary>
        /// <param name="character">The character to spawn.</param>
        void Spawn(Character character, Character.ControlMode control)
        {
            var combatController = CombatController.Construct(character, control);

            combatController.transform.parent   = transform;
            combatController.transform.position = availableSpawnPositions[combatController.faction].Pop();
            // Announce that it has been spawwned (this event will be first received by this arena immediately)
            var spawnEvent = new CombatController.SpawnEvent();

            spawnEvent.controller = combatController;
            Scene.Dispatch <CombatController.SpawnEvent>(spawnEvent);
        }
        /// <summary>
        /// Registers the CombatControllers depending on their given faction.
        /// </summary>
        /// <param name="e"></param>
        void OnCombatControllerSpawnEvent(CombatController.SpawnEvent e)
        {
            combatantsByFaction[e.controller.faction].Add(e.controller);
            combatants.Add(e.controller);

            if (debug)
            {
                if (e.controller.faction == CombatController.Faction.Player)
                {
                    StratusDebug.Log(e.controller.gameObject.name + " has registered as FRIENDLY");
                }
                else
                {
                    StratusDebug.Log(e.controller.gameObject.name + " has registered as HOSTILE");
                }
            }
        }
Beispiel #3
0
 /// <summary>
 /// Registers the CombatControllers depending on their given faction.
 /// </summary>
 /// <param name="e"></param>
 void OnCombatControllerSpawnEvent(CombatController.SpawnEvent e)
 {
     OnCombatControllerSpawn(e.controller);
 }