public void RegisterCharacter(Character character) { if (!_activeCharacters.Contains(character)) { LogEx.Log <BattleSystem>("Registered character: '{0}'", character.name); _activeCharacters.Add(character); character.BattleEntities.ForEach(x => x.Initialize(this)); // Assign character into player slot. //character.Owner.FieldSide.Register(character); if (CharacterAddedToSlot != null) { CharacterAddedToSlot.Invoke(character); } if (PostCharacterAddedToSlot != null) { PostCharacterAddedToSlot.Invoke(character); } } else { LogEx.LogError <BattleSystem>("Cannot register character '{0}' as they are already registered.", character.name); } }
public void RegisterPlayer(Player player, int fieldSideID) { if (!_players.Contains(player)) { LogEx.Log <BattleSystem>("Registered player: '{0}'", player.name); _players.Add(player); fieldSideID = Mathf.Clamp(fieldSideID, 0, _fieldSides.Count - 1); player.AssignFieldSide(_fieldSides[fieldSideID]); // TEMP!!! //RegisterCharacter(player.ActiveCharacter); // TEMP!!! //player.ActiveCharacter.BattleEntities.ForEach(x => x.Initialize(this)); if (PlayerAdded != null) { PlayerAdded.Invoke(player); } } else { LogEx.LogError <BattleSystem>("Cannot register player '{0}' as they are already registered.", player.name); } }
public void AddPlayer(Player player, int fieldSide) { if (Players.Any(x => x.Player == player)) { LogEx.LogError <SetupParams>("Cannot add player as player {0} has already been registered.", player.name); } else { Players.Add(new PlayerData(player, fieldSide)); } }
void OnPlayerReplacementCharacterSelected(ReplaceCommand replaceCommand) { Coordinator.System.RegisterPlayerCommand(replaceCommand); if (_replacingPlayers.Contains(replaceCommand.Player)) { _replacingPlayers.Remove(replaceCommand.Player); } else { LogEx.LogError <BattleStatePostTurn>("Player {0} cannot be removed as they were never registered.", replaceCommand.Player.name); } if (_replacingPlayers.Count == 0) { LogEx.Log <BattleStatePostTurn>("All players have chosen their replacements. Executing..."); End(); } }
public void UnregisterPlayer(Player player) { if (_players.Contains(player)) { LogEx.Log <BattleSystem>("Unregistered player: '{0}'", player.name); _players.Remove(player); // TEMP!!! UnregisterCharacter(player.ActiveCharacter); if (PlayerRemoved != null) { PlayerRemoved.Invoke(player); } } else { LogEx.LogError <BattleSystem>("Cannot unregister player '{0}' as they were never registered.", player.name); } }
public void Start() { if (BattlePrototype != null) { var setupParams = new SetupParams(); var players = FindObjectsOfType <Player>(); // Register each player to a side. for (int i = 0; i < players.Length; i++) { int sideID = i % 2; setupParams.AddPlayer(players[i], sideID); } var battleInstance = Instantiate(BattlePrototype); battleInstance.Initialize(setupParams); } else { LogEx.LogError <Root>("The Battle reference is missing or null. Make sure that the Battle field is referencing a prefab."); } }
public void UnregisterCharacter(Character character) { if (_activeCharacters.Contains(character)) { LogEx.Log <BattleSystem>("Unregistered character: '{0}'", character.name); _activeCharacters.Remove(character); if (CharacterRemovedFromSlot != null) { CharacterRemovedFromSlot.Invoke(character); } if (PostCharacterRemovedFromSlot != null) { PostCharacterRemovedFromSlot.Invoke(character); } } else { LogEx.LogError <BattleSystem>("Cannot unregister character '{0}' as they were never registered.", character.name); } }