/// <summary>
        /// Constructs the CombatController.
        /// </summary>
        /// <param name="character">A reference to the character to control.</param>
        /// <param name="mode">Its starting control mode.</param>
        /// <returns></returns>
        public static CombatController Construct(Character character, Character.ControlMode mode)
        {
            var CombatControllerObj = Instantiate(Resources.Load("Combat/CombatController")) as GameObject;

            CombatControllerObj.name = character.name;
            var controlModeEvent = new ChangeControlModeEvent();

            controlModeEvent.mode = mode;
            CombatControllerObj.Dispatch <ChangeControlModeEvent>(controlModeEvent);
            return(CombatControllerObj.GetComponent <CombatController>());
        }
예제 #2
0
        /// <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);
        }