diff --git a/84 Super Star Trek/csharp/Game.cs b/84 Super Star Trek/csharp/Game.cs index 96261498..92c16a83 100644 --- a/84 Super Star Trek/csharp/Game.cs +++ b/84 Super Star Trek/csharp/Game.cs @@ -29,6 +29,7 @@ namespace SuperStarTrek } internal float Stardate => _currentStardate; + internal float StardatesRemaining => _finalStarDate - _currentStardate; internal void DoIntroduction() diff --git a/84 Super Star Trek/csharp/Objects/Klingon.cs b/84 Super Star Trek/csharp/Objects/Klingon.cs index 78c307e5..1b55940a 100644 --- a/84 Super Star Trek/csharp/Objects/Klingon.cs +++ b/84 Super Star Trek/csharp/Objects/Klingon.cs @@ -15,6 +15,7 @@ namespace SuperStarTrek.Objects } internal float Energy { get; private set; } + internal Coordinates Sector { get; private set; } public override string ToString() => "+K+"; diff --git a/84 Super Star Trek/csharp/Objects/Starbase.cs b/84 Super Star Trek/csharp/Objects/Starbase.cs index 1ef4a85e..c9abb870 100644 --- a/84 Super Star Trek/csharp/Objects/Starbase.cs +++ b/84 Super Star Trek/csharp/Objects/Starbase.cs @@ -18,6 +18,7 @@ namespace SuperStarTrek.Objects } internal Coordinates Sector { get; } + public override string ToString() => ">!<"; internal bool TryRepair(Enterprise enterprise, out float repairTime) diff --git a/84 Super Star Trek/csharp/Resources/Strings.cs b/84 Super Star Trek/csharp/Resources/Strings.cs index 72fd7d5a..c3dcedf6 100644 --- a/84 Super Star Trek/csharp/Resources/Strings.cs +++ b/84 Super Star Trek/csharp/Resources/Strings.cs @@ -7,29 +7,53 @@ namespace SuperStarTrek.Resources internal static class Strings { internal static string CombatArea => GetResource(); + internal static string ComputerFunctions => GetResource(); + internal static string Congratulations => GetResource(); + internal static string CourtMartial => GetResource(); + internal static string Destroyed => GetResource(); + internal static string EndOfMission => GetResource(); + internal static string Enterprise => GetResource(); + internal static string Instructions => GetResource(); + internal static string LowShields => GetResource(); + internal static string NoEnemyShips => GetResource(); + internal static string NoStarbase => GetResource(); + internal static string NowEntering => GetResource(); + internal static string Orders => GetResource(); + internal static string PermissionDenied => GetResource(); + internal static string Protected => GetResource(); + internal static string RegionNames => GetResource(); + internal static string RelievedOfCommand => GetResource(); + internal static string RepairEstimate => GetResource(); + internal static string RepairPrompt => GetResource(); + internal static string ReplayPrompt => GetResource(); + internal static string ShieldsDropped => GetResource(); + internal static string ShortRangeSensorsOut => GetResource(); + internal static string StartText => GetResource(); + internal static string Stranded => GetResource(); + internal static string Title => GetResource(); private static string GetResource([CallerMemberName] string name = "") diff --git a/84 Super Star Trek/csharp/Space/Coordinates.cs b/84 Super Star Trek/csharp/Space/Coordinates.cs index 4bcc8085..7aec927f 100644 --- a/84 Super Star Trek/csharp/Space/Coordinates.cs +++ b/84 Super Star Trek/csharp/Space/Coordinates.cs @@ -17,8 +17,11 @@ namespace SuperStarTrek.Space } internal int X { get; } + internal int Y { get; } + internal int RegionIndex { get; } + internal int SubRegionIndex { get; } private static int Validated(int value, string argumentName) diff --git a/84 Super Star Trek/csharp/Space/Course.cs b/84 Super Star Trek/csharp/Space/Course.cs index 7067ec81..6418b15b 100644 --- a/84 Super Star Trek/csharp/Space/Course.cs +++ b/84 Super Star Trek/csharp/Space/Course.cs @@ -46,6 +46,7 @@ namespace SuperStarTrek.Space } internal float DeltaX { get; } + internal float DeltaY { get; } internal IEnumerable GetSectorsFrom(Coordinates start) diff --git a/84 Super Star Trek/csharp/Space/Galaxy.cs b/84 Super Star Trek/csharp/Space/Galaxy.cs index 91961b38..0b348b06 100644 --- a/84 Super Star Trek/csharp/Space/Galaxy.cs +++ b/84 Super Star Trek/csharp/Space/Galaxy.cs @@ -44,7 +44,9 @@ namespace SuperStarTrek.Space internal QuadrantInfo this[Coordinates coordinate] => _quadrants[coordinate.X][coordinate.Y]; internal int KlingonCount => _quadrants.SelectMany(q => q).Sum(q => q.KlingonCount); + internal int StarbaseCount => _quadrants.SelectMany(q => q).Count(q => q.HasStarbase); + internal IEnumerable> Quadrants => _quadrants; private static string GetQuadrantName(Coordinates coordinates) => diff --git a/84 Super Star Trek/csharp/Space/Quadrant.cs b/84 Super Star Trek/csharp/Space/Quadrant.cs index 0ed2a567..29f8e0ce 100644 --- a/84 Super Star Trek/csharp/Space/Quadrant.cs +++ b/84 Super Star Trek/csharp/Space/Quadrant.cs @@ -40,11 +40,17 @@ namespace SuperStarTrek.Space } internal Coordinates Coordinates => _info.Coordinates; + internal bool HasKlingons => _info.KlingonCount > 0; + internal int KlingonCount => _info.KlingonCount; + internal bool HasStarbase => _info.HasStarbase; + internal Starbase Starbase { get; } + internal Galaxy Galaxy { get; } + internal bool EnterpriseIsNextToStarbase => _info.HasStarbase && Math.Abs(_enterprise.SectorCoordinates.X - Starbase.Sector.X) <= 1 && diff --git a/84 Super Star Trek/csharp/Space/QuadrantInfo.cs b/84 Super Star Trek/csharp/Space/QuadrantInfo.cs index 31626a35..6a403c2e 100644 --- a/84 Super Star Trek/csharp/Space/QuadrantInfo.cs +++ b/84 Super Star Trek/csharp/Space/QuadrantInfo.cs @@ -14,9 +14,13 @@ namespace SuperStarTrek.Space } internal Coordinates Coordinates { get; } + internal string Name { get; } + internal int KlingonCount { get; private set; } + internal bool HasStarbase { get; private set; } + internal int StarCount { get; } internal static QuadrantInfo Create(Coordinates coordinates, string name, Random random) diff --git a/84 Super Star Trek/csharp/Systems/ComputerFunctions/ComputerFunction.cs b/84 Super Star Trek/csharp/Systems/ComputerFunctions/ComputerFunction.cs index 400c1f62..36d9127b 100644 --- a/84 Super Star Trek/csharp/Systems/ComputerFunctions/ComputerFunction.cs +++ b/84 Super Star Trek/csharp/Systems/ComputerFunctions/ComputerFunction.cs @@ -11,6 +11,7 @@ namespace SuperStarTrek.Systems.ComputerFunctions } internal string Description { get; } + protected Output Output { get; } internal abstract void Execute(Quadrant quadrant); diff --git a/84 Super Star Trek/csharp/Systems/Subsystem.cs b/84 Super Star Trek/csharp/Systems/Subsystem.cs index 2e11e3e7..5c11e656 100644 --- a/84 Super Star Trek/csharp/Systems/Subsystem.cs +++ b/84 Super Star Trek/csharp/Systems/Subsystem.cs @@ -16,8 +16,11 @@ namespace SuperStarTrek.Systems } internal string Name { get; } + internal float Condition { get; private set; } + internal bool IsDamaged => Condition < 0; + internal Command Command { get; } protected virtual bool CanExecuteCommand() => true;