/// <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>()); }
/// <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); }