示例#1
0
 /// <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 );
     }
 }