mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2025-12-23 07:29:02 -08:00
41 lines
1.4 KiB
C#
41 lines
1.4 KiB
C#
using SuperStarTrek.Commands;
|
|
using SuperStarTrek.Objects;
|
|
using SuperStarTrek.Space;
|
|
|
|
namespace SuperStarTrek.Systems.ComputerFunctions
|
|
{
|
|
internal class StatusReport : ComputerFunction
|
|
{
|
|
private readonly Game _game;
|
|
private readonly Galaxy _galaxy;
|
|
private readonly Enterprise _enterprise;
|
|
|
|
internal StatusReport(Game game, Galaxy galaxy, Enterprise enterprise, Output output)
|
|
: base("Status report", output)
|
|
{
|
|
_game = game;
|
|
_galaxy = galaxy;
|
|
_enterprise = enterprise;
|
|
}
|
|
|
|
internal override void Execute(Quadrant quadrant)
|
|
{
|
|
Output.WriteLine(" Status report:")
|
|
.Write("Klingon".Pluralize(_galaxy.KlingonCount)).WriteLine($" left: {_galaxy.KlingonCount}")
|
|
.WriteLine($"Mission must be completed in {_game.StardatesRemaining:0.#} stardates.");
|
|
|
|
if (_galaxy.StarbaseCount > 0)
|
|
{
|
|
Output.Write($"The Federation is maintaining {_galaxy.StarbaseCount} ")
|
|
.Write("starbase".Pluralize(_galaxy.StarbaseCount)).WriteLine(" in the galaxy.");
|
|
}
|
|
else
|
|
{
|
|
Output.WriteLine("Your stupidity has left you on your own in")
|
|
.WriteLine(" the galaxy -- you have no starbases left!");
|
|
}
|
|
|
|
_enterprise.Execute(Command.DAM);
|
|
}
|
|
}
|
|
} |