/// <summary> /// Execute a battle between the player and an enemy. /// </summary> /// <param name="player"></param> /// <param name="enemy"></param> public void DoPlayerBattle( Player player, Enemy enemy, int reinforcements ) { int totalStrength = player.TotalStrength + player.BonusStrengthAgainstEnemy( enemy ) + reinforcements; if( totalStrength > enemy.Strength ) // player wins { GameManager.Instance.UI.DisplayBattleResults( player, enemy, BattleResults.Victory ); this.AwardPlayerAfterBattle( player, enemy ); } else if( totalStrength == enemy.Strength ) // player ties { // Check if the player has the stone wall, which allows a tie to count as a victory if( player.HasBuilding( GameManager.Instance.GetBuilding( "Stone Wall" ) ) ) { GameManager.Instance.UI.DisplayBattleResults( player, enemy, BattleResults.Victory ); this.AwardPlayerAfterBattle( player, enemy ); } else { GameManager.Instance.UI.DisplayBattleResults( player, enemy, BattleResults.Tie ); } } else // player loses { GameManager.Instance.UI.DisplayBattleResults( player, enemy, BattleResults.Loss ); } }