/// <summary> /// Starts a battle with an enemy character. /// </summary> /// <param name="playerParty">Player's party of monsters.</param> /// <param name="battlerParty">Battler's party of monsters.</param> public void StartCharBattle(MonsterParty playerParty, MonsterParty battlerParty) { _playerParty = playerParty; _battlerParty = battlerParty; _isCharBattle = true; _player = playerParty.GetComponent <PlayerController>(); _battler = battlerParty.GetComponent <BattlerController>(); StartCoroutine(SetupBattle()); }
/// <summary> /// Start a battle with enemy character. /// </summary> /// <param name="battler">Character to do battle with.</param> public void StartCharBattle(BattlerController battler) { _state = GameState.Battle; _battleSystem.gameObject.SetActive(true); _worldCamera.gameObject.SetActive(false); _battler = battler; var playerParty = _playerController.GetComponent <MonsterParty>(); var battlerParty = battler.GetComponent <MonsterParty>(); _battleSystem.StartCharBattle(playerParty, battlerParty); }
private void EndBattle(BattleResult result, bool isCharBattle) { _state = GameState.World; if (_battler != null && result == BattleResult.Won) { _battler.SetBattlerState(BattlerState.Defeated); _battler = null; } else if (_battler != null && result == BattleResult.Lost) { //TODO - handle a loss } else { //TODO - handle error } _battleSystem.gameObject.SetActive(false); _worldCamera.gameObject.SetActive(true); }
/// <summary> /// Starts an encounter with a character after LoS collider is triggered. /// </summary> /// <param name="battler">Character that was encountered.</param> public void StartCharEncounter(BattlerController battler) { _state = GameState.Cutscene; StartCoroutine(battler.TriggerBattle(_playerController)); }