Io/zerospace converter #1

Merged
JonathanMcCaffrey merged 137 commits from io/zerospace-converter into master 2026-09-29 18:21:24 +00:00
98 changed files with 860 additions and 513 deletions
Showing only changes of commit f1817205ad - Show all commits
File diff suppressed because one or more lines are too long
+55 -25
View File
@@ -529,31 +529,58 @@ static bool TryReadStarSystem(
{
system = default!;
var kind = string.Empty;
var kindCount = 0;
if (IsTrue(frontMatter, "isSideSystem"))
string category;
if (frontMatter.TryGetValue("systemCategory", out var categoryVal) && !string.IsNullOrWhiteSpace(categoryVal.Scalar))
{
kind = "Side";
kindCount++;
var catStr = categoryVal.Scalar.Trim();
if (catStr.Equals("Homeworld System", StringComparison.OrdinalIgnoreCase) || catStr.Equals("Homeworld", StringComparison.OrdinalIgnoreCase))
{
category = "HomeworldSystem";
}
else if (catStr.Equals("Core System", StringComparison.OrdinalIgnoreCase) || catStr.Equals("Core", StringComparison.OrdinalIgnoreCase))
{
category = "CoreSystem";
}
else if (catStr.Equals("Side System", StringComparison.OrdinalIgnoreCase) || catStr.Equals("Side", StringComparison.OrdinalIgnoreCase))
{
category = "SideSystem";
}
else
{
reason = $"unknown systemCategory '{catStr}'";
return false;
}
}
else
{
var kindCount = 0;
category = string.Empty;
if (IsTrue(frontMatter, "isSideSystem"))
{
category = "SideSystem";
kindCount++;
}
if (IsTrue(frontMatter, "isHomeworldSystem"))
{
category = "HomeworldSystem";
kindCount++;
}
if (IsTrue(frontMatter, "isCoreSystem"))
{
category = "CoreSystem";
kindCount++;
}
if (kindCount != 1)
{
reason = "missing or invalid systemCategory";
return false;
}
}
if (IsTrue(frontMatter, "isHomeworldSystem"))
{
kind = "Homeworld";
kindCount++;
}
if (IsTrue(frontMatter, "isCoreSystem"))
{
kind = "Core";
kindCount++;
}
if (kindCount != 1)
{
reason = "expected exactly one system kind flag";
return false;
}
var owner = TryGetOptionalString(frontMatter, "owner") ?? "The Eden Accord";
var name = Path.GetFileNameWithoutExtension(path);
var connectedSystems = frontMatter.TryGetValue("connectedSystems", out var connectedValue)
@@ -563,7 +590,8 @@ static bool TryReadStarSystem(
system = new StarSystemSource(
ToUniqueIdentifier(name, usedIds),
name,
kind,
category,
owner,
IsTrue(frontMatter, "higherInfluenceYield"),
IsTrue(frontMatter, "higherCreditYield"),
IsTrue(frontMatter, "higherEnergyYield"),
@@ -660,7 +688,8 @@ static string GenerateStarSystems(IReadOnlyList<StarSystemSource> systems)
builder.AppendLine($" public static readonly StarSystemData {system.Id} = new(");
builder.AppendLine($" Id: {Literal(system.Id)},");
builder.AppendLine($" Name: {Literal(system.Name)},");
builder.AppendLine($" Kind: StarSystemKind.{system.Kind},");
builder.AppendLine($" SystemCategory: StarSystemCategory.{system.SystemCategory},");
builder.AppendLine($" Owner: {Literal(system.Owner)},");
builder.AppendLine($" HigherInfluenceYield: {BoolLiteral(system.HigherInfluenceYield)},");
builder.AppendLine($" HigherCreditYield: {BoolLiteral(system.HigherCreditYield)},");
builder.AppendLine($" HigherEnergyYield: {BoolLiteral(system.HigherEnergyYield)},");
@@ -784,7 +813,8 @@ internal sealed record UnitSource(
internal sealed record StarSystemSource(
string Id,
string Name,
string Kind,
string SystemCategory,
string Owner,
bool HigherInfluenceYield,
bool HigherCreditYield,
bool HigherEnergyYield,
@@ -11,7 +11,8 @@ public sealed class StarSystemDoc
{
public string FilePath { get; set; } = string.Empty;
public string Name { get; set; } = string.Empty;
public string Kind { get; set; } = string.Empty;
public string SystemCategory { get; set; } = string.Empty;
public string Owner { get; set; } = string.Empty;
public bool HigherInfluenceYield { get; set; }
public bool HigherCreditYield { get; set; }
public bool HigherEnergyYield { get; set; }
@@ -119,13 +120,18 @@ public static class StarSystemDocStore
{
FilePath = path,
Name = Path.GetFileNameWithoutExtension(path),
SystemCategory = scalars.TryGetValue("systemCategory", out var categoryVal) ? categoryVal : string.Empty,
Owner = scalars.TryGetValue("owner", out var ownerVal) ? ownerVal : "The Eden Accord",
OccupationBuff = scalars.TryGetValue("occupationBuff", out var buff) ? buff : null,
SystemMastery = scalars.TryGetValue("systemMastery", out var mastery) ? mastery : null,
};
if (IsTrue(scalars, "isSideSystem")) doc.Kind = "Side";
if (IsTrue(scalars, "isHomeworldSystem")) doc.Kind = "Homeworld";
if (IsTrue(scalars, "isCoreSystem")) doc.Kind = "Core";
if (string.IsNullOrEmpty(doc.SystemCategory))
{
if (IsTrue(scalars, "isSideSystem")) doc.SystemCategory = "Side System";
if (IsTrue(scalars, "isHomeworldSystem")) doc.SystemCategory = "Homeworld System";
if (IsTrue(scalars, "isCoreSystem")) doc.SystemCategory = "Core System";
}
doc.HigherInfluenceYield = IsTrue(scalars, "higherInfluenceYield");
doc.HigherCreditYield = IsTrue(scalars, "higherCreditYield");
@@ -57,7 +57,7 @@ public sealed class MapDrawable : IDrawable
var center = ToScreen(node.X, node.Y);
var radius = (float)(NodeRadius * Scale);
canvas.FillColor = ColorForKind(node.Doc.Kind);
canvas.FillColor = ColorForOwner(node.Doc.Owner);
canvas.FillCircle(center, radius);
if (node.IsHighlighted)
@@ -85,11 +85,19 @@ public sealed class MapDrawable : IDrawable
}
}
public static Color ColorForKind(string kind) => kind switch
public static Color ColorForOwner(string owner) => owner switch
{
"Homeworld" => Color.FromArgb("#43a047"),
"Core" => Color.FromArgb("#fb8c00"),
"Side" => Color.FromArgb("#4a90d9"),
"The Eden Accord" => Color.FromArgb("#10b981"),
"The Keeper Council" => Color.FromArgb("#38bdf8"),
"The Obsidian Order" => Color.FromArgb("#ef4444"),
_ => Color.FromArgb("#9aa5b1"),
};
public static Color ColorForCategory(string category) => category switch
{
"Homeworld System" or "Homeworld" => Color.FromArgb("#43a047"),
"Core System" or "Core" => Color.FromArgb("#fb8c00"),
"Side System" or "Side" => Color.FromArgb("#4a90d9"),
_ => Color.FromArgb("#9aa5b1"),
};
}
@@ -37,8 +37,11 @@
<Label Text="Name" FontAttributes="Bold" />
<Label x:Name="NameLabel" />
<Label Text="Kind" FontAttributes="Bold" />
<Label x:Name="KindLabel" />
<Label Text="Category" FontAttributes="Bold" />
<Label x:Name="CategoryLabel" />
<Label Text="Owner" FontAttributes="Bold" />
<Label x:Name="OwnerLabel" />
<Label Text="Yields" FontAttributes="Bold" />
<Label x:Name="YieldsLabel" />
@@ -533,7 +533,8 @@ public partial class MapEditorPage : ContentPage
{
var doc = node.Doc;
NameLabel.Text = doc.Name;
KindLabel.Text = string.IsNullOrEmpty(doc.Kind) ? "—" : doc.Kind;
CategoryLabel.Text = string.IsNullOrEmpty(doc.SystemCategory) ? "—" : doc.SystemCategory;
OwnerLabel.Text = string.IsNullOrEmpty(doc.Owner) ? "—" : doc.Owner;
YieldsLabel.Text = YieldText(doc);
BuffLabel.Text = doc.OccupationBuff ?? "—";
MasteryLabel.Text = doc.SystemMastery ?? "—";
+47 -5
View File
@@ -1,16 +1,58 @@
namespace ZeroSpace.Model;
public enum StarSystemKind
public enum StarSystemCategory
{
Side,
Homeworld,
Core
HomeworldSystem,
CoreSystem,
SideSystem
}
public static class StarSystemCategoryExtensions
{
public static string ToDisplayName(this StarSystemCategory category) => category switch
{
StarSystemCategory.HomeworldSystem => "Homeworld System",
StarSystemCategory.CoreSystem => "Core System",
StarSystemCategory.SideSystem => "Side System",
_ => category.ToString()
};
}
public static class StarSystemOwners
{
public const string EdenAccord = "The Eden Accord";
public const string KeeperCouncil = "The Keeper Council";
public const string ObsidianOrder = "The Obsidian Order";
public static readonly IReadOnlyList<string> All =
[
EdenAccord,
KeeperCouncil,
ObsidianOrder
];
public static string GetColor(string? owner) => owner switch
{
EdenAccord => "#10b981", // Green
KeeperCouncil => "#38bdf8", // Blue
ObsidianOrder => "#ef4444", // Red
_ => "#94a3b8"
};
public static string GetCssClass(string? owner) => owner switch
{
EdenAccord => "owner-eden",
KeeperCouncil => "owner-keeper",
ObsidianOrder => "owner-obsidian",
_ => "owner-neutral"
};
}
public sealed record StarSystemData(
string Id,
string Name,
StarSystemKind Kind,
StarSystemCategory SystemCategory,
string Owner,
bool HigherInfluenceYield,
bool HigherCreditYield,
bool HigherEnergyYield,
+180 -98
View File
@@ -6,7 +6,8 @@ public static class StarSystems
public static readonly StarSystemData AndusReach = new(
Id: "AndusReach",
Name: "Andus Reach",
Kind: StarSystemKind.Side,
SystemCategory: StarSystemCategory.SideSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -21,7 +22,8 @@ public static class StarSystems
public static readonly StarSystemData AquilaRift = new(
Id: "AquilaRift",
Name: "Aquila Rift",
Kind: StarSystemKind.Side,
SystemCategory: StarSystemCategory.SideSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -36,7 +38,8 @@ public static class StarSystems
public static readonly StarSystemData ArtemisGrotto = new(
Id: "ArtemisGrotto",
Name: "Artemis Grotto",
Kind: StarSystemKind.Homeworld,
SystemCategory: StarSystemCategory.HomeworldSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -51,7 +54,8 @@ public static class StarSystems
public static readonly StarSystemData AshesOfRevenge = new(
Id: "AshesOfRevenge",
Name: "Ashes of Revenge",
Kind: StarSystemKind.Homeworld,
SystemCategory: StarSystemCategory.HomeworldSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -66,7 +70,8 @@ public static class StarSystems
public static readonly StarSystemData AstralHaven = new(
Id: "AstralHaven",
Name: "Astral Haven",
Kind: StarSystemKind.Side,
SystemCategory: StarSystemCategory.SideSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -81,7 +86,8 @@ public static class StarSystems
public static readonly StarSystemData AuroraVale = new(
Id: "AuroraVale",
Name: "Aurora Vale",
Kind: StarSystemKind.Side,
SystemCategory: StarSystemCategory.SideSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -89,14 +95,15 @@ public static class StarSystems
OccupationBuff: "+2% Unit health and shields",
SystemMastery: "Max Supply",
ConnectedSystems: ["Endless Wastes", "Beta Clarity", "Stronghold Nova Centauri"],
X: 597.9,
Y: 437.7,
X: 161.4,
Y: -30.2,
Body: "");
public static readonly StarSystemData BetaClarity = new(
Id: "BetaClarity",
Name: "Beta Clarity",
Kind: StarSystemKind.Side,
SystemCategory: StarSystemCategory.SideSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -104,14 +111,15 @@ public static class StarSystems
OccupationBuff: "+0.25 unit vision and attack range",
SystemMastery: "Hero Damage",
ConnectedSystems: ["Aurora Vale", "Solaris Reach", "Nebulon Drift"],
X: 467,
Y: 622.8,
X: 268.8,
Y: 87,
Body: "");
public static readonly StarSystemData BurningCairn = new(
Id: "BurningCairn",
Name: "Burning Cairn",
Kind: StarSystemKind.Side,
SystemCategory: StarSystemCategory.SideSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -126,7 +134,8 @@ public static class StarSystems
public static readonly StarSystemData CalmBelt = new(
Id: "CalmBelt",
Name: "Calm Belt",
Kind: StarSystemKind.Side,
SystemCategory: StarSystemCategory.SideSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -141,7 +150,8 @@ public static class StarSystems
public static readonly StarSystemData CelestialForgeStronghold = new(
Id: "CelestialForgeStronghold",
Name: "Celestial Forge Stronghold",
Kind: StarSystemKind.Core,
SystemCategory: StarSystemCategory.CoreSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: true,
@@ -156,7 +166,8 @@ public static class StarSystems
public static readonly StarSystemData CorundumDream = new(
Id: "CorundumDream",
Name: "Corundum Dream",
Kind: StarSystemKind.Side,
SystemCategory: StarSystemCategory.SideSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -171,7 +182,8 @@ public static class StarSystems
public static readonly StarSystemData CrimsonExpanse = new(
Id: "CrimsonExpanse",
Name: "Crimson Expanse",
Kind: StarSystemKind.Core,
SystemCategory: StarSystemCategory.CoreSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -186,7 +198,8 @@ public static class StarSystems
public static readonly StarSystemData CrystallicGenesis = new(
Id: "CrystallicGenesis",
Name: "Crystallic Genesis",
Kind: StarSystemKind.Side,
SystemCategory: StarSystemCategory.SideSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -201,7 +214,8 @@ public static class StarSystems
public static readonly StarSystemData DevilSTrident = new(
Id: "DevilSTrident",
Name: "Devil's Trident",
Kind: StarSystemKind.Core,
SystemCategory: StarSystemCategory.CoreSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: true,
HigherEnergyYield: false,
@@ -216,7 +230,8 @@ public static class StarSystems
public static readonly StarSystemData DraconisReach = new(
Id: "DraconisReach",
Name: "Draconis Reach",
Kind: StarSystemKind.Side,
SystemCategory: StarSystemCategory.SideSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -231,7 +246,8 @@ public static class StarSystems
public static readonly StarSystemData EbonyKeep = new(
Id: "EbonyKeep",
Name: "Ebony Keep",
Kind: StarSystemKind.Core,
SystemCategory: StarSystemCategory.CoreSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: true,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -246,7 +262,8 @@ public static class StarSystems
public static readonly StarSystemData EdenSHeart = new(
Id: "EdenSHeart",
Name: "Eden's Heart",
Kind: StarSystemKind.Homeworld,
SystemCategory: StarSystemCategory.HomeworldSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: true,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -261,7 +278,8 @@ public static class StarSystems
public static readonly StarSystemData EndlessWastes = new(
Id: "EndlessWastes",
Name: "Endless Wastes",
Kind: StarSystemKind.Side,
SystemCategory: StarSystemCategory.SideSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -269,14 +287,15 @@ public static class StarSystems
OccupationBuff: "+50 Starting Hexite",
SystemMastery: "Production Speed for Buildings",
ConnectedSystems: ["Uanachian Whirlpool", "Gamma Swarm", "Nebulon Drift", "Aurora Vale"],
X: 286.2,
Y: 508.8,
X: 146.7,
Y: 66.6,
Body: "");
public static readonly StarSystemData EpsilonArc = new(
Id: "EpsilonArc",
Name: "Epsilon Arc",
Kind: StarSystemKind.Core,
SystemCategory: StarSystemCategory.CoreSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -291,7 +310,8 @@ public static class StarSystems
public static readonly StarSystemData ErebusDeep = new(
Id: "ErebusDeep",
Name: "Erebus Deep",
Kind: StarSystemKind.Core,
SystemCategory: StarSystemCategory.CoreSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -306,7 +326,8 @@ public static class StarSystems
public static readonly StarSystemData ForgeOfSouls = new(
Id: "ForgeOfSouls",
Name: "Forge of Souls",
Kind: StarSystemKind.Homeworld,
SystemCategory: StarSystemCategory.HomeworldSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: true,
@@ -321,7 +342,8 @@ public static class StarSystems
public static readonly StarSystemData GalacticZenith = new(
Id: "GalacticZenith",
Name: "Galactic Zenith",
Kind: StarSystemKind.Core,
SystemCategory: StarSystemCategory.CoreSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: true,
HigherCreditYield: true,
HigherEnergyYield: true,
@@ -336,7 +358,8 @@ public static class StarSystems
public static readonly StarSystemData GammaSwarm = new(
Id: "GammaSwarm",
Name: "Gamma Swarm",
Kind: StarSystemKind.Side,
SystemCategory: StarSystemCategory.SideSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -351,7 +374,8 @@ public static class StarSystems
public static readonly StarSystemData GelidStorm = new(
Id: "GelidStorm",
Name: "Gelid Storm",
Kind: StarSystemKind.Side,
SystemCategory: StarSystemCategory.SideSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -366,7 +390,8 @@ public static class StarSystems
public static readonly StarSystemData GlitteringHope = new(
Id: "GlitteringHope",
Name: "Glittering Hope",
Kind: StarSystemKind.Homeworld,
SystemCategory: StarSystemCategory.HomeworldSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: true,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -381,7 +406,8 @@ public static class StarSystems
public static readonly StarSystemData HeigenStream = new(
Id: "HeigenStream",
Name: "Heigen Stream",
Kind: StarSystemKind.Side,
SystemCategory: StarSystemCategory.SideSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -396,7 +422,8 @@ public static class StarSystems
public static readonly StarSystemData HeliosCrossing = new(
Id: "HeliosCrossing",
Name: "Helios Crossing",
Kind: StarSystemKind.Core,
SystemCategory: StarSystemCategory.CoreSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -411,7 +438,8 @@ public static class StarSystems
public static readonly StarSystemData HyperionNebula = new(
Id: "HyperionNebula",
Name: "Hyperion Nebula",
Kind: StarSystemKind.Side,
SystemCategory: StarSystemCategory.SideSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -426,7 +454,8 @@ public static class StarSystems
public static readonly StarSystemData IdalSWord = new(
Id: "IdalSWord",
Name: "Idal's Word",
Kind: StarSystemKind.Side,
SystemCategory: StarSystemCategory.SideSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -441,7 +470,8 @@ public static class StarSystems
public static readonly StarSystemData IgneousCascade = new(
Id: "IgneousCascade",
Name: "Igneous Cascade",
Kind: StarSystemKind.Side,
SystemCategory: StarSystemCategory.SideSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -456,7 +486,8 @@ public static class StarSystems
public static readonly StarSystemData InfernoSEdgeStronghold = new(
Id: "InfernoSEdgeStronghold",
Name: "Inferno's Edge Stronghold",
Kind: StarSystemKind.Core,
SystemCategory: StarSystemCategory.CoreSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: true,
@@ -471,7 +502,8 @@ public static class StarSystems
public static readonly StarSystemData IotanTears = new(
Id: "IotanTears",
Name: "Iotan Tears",
Kind: StarSystemKind.Side,
SystemCategory: StarSystemCategory.SideSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -486,7 +518,8 @@ public static class StarSystems
public static readonly StarSystemData IvoryFields = new(
Id: "IvoryFields",
Name: "Ivory Fields",
Kind: StarSystemKind.Homeworld,
SystemCategory: StarSystemCategory.HomeworldSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -501,7 +534,8 @@ public static class StarSystems
public static readonly StarSystemData IvorySteel = new(
Id: "IvorySteel",
Name: "Ivory Steel",
Kind: StarSystemKind.Core,
SystemCategory: StarSystemCategory.CoreSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -516,7 +550,8 @@ public static class StarSystems
public static readonly StarSystemData LambdaGateway = new(
Id: "LambdaGateway",
Name: "Lambda Gateway",
Kind: StarSystemKind.Core,
SystemCategory: StarSystemCategory.CoreSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: true,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -531,7 +566,8 @@ public static class StarSystems
public static readonly StarSystemData LeviathanSWake = new(
Id: "LeviathanSWake",
Name: "Leviathan's Wake",
Kind: StarSystemKind.Core,
SystemCategory: StarSystemCategory.CoreSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: true,
@@ -546,7 +582,8 @@ public static class StarSystems
public static readonly StarSystemData LightsBounty = new(
Id: "LightsBounty",
Name: "Lights Bounty",
Kind: StarSystemKind.Homeworld,
SystemCategory: StarSystemCategory.HomeworldSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: true,
@@ -561,7 +598,8 @@ public static class StarSystems
public static readonly StarSystemData MagentaBloom = new(
Id: "MagentaBloom",
Name: "Magenta Bloom",
Kind: StarSystemKind.Side,
SystemCategory: StarSystemCategory.SideSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -576,7 +614,8 @@ public static class StarSystems
public static readonly StarSystemData MagneticFolly = new(
Id: "MagneticFolly",
Name: "Magnetic Folly",
Kind: StarSystemKind.Core,
SystemCategory: StarSystemCategory.CoreSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: true,
HigherEnergyYield: false,
@@ -591,7 +630,8 @@ public static class StarSystems
public static readonly StarSystemData MercuryForge = new(
Id: "MercuryForge",
Name: "Mercury Forge",
Kind: StarSystemKind.Core,
SystemCategory: StarSystemCategory.CoreSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: true,
HigherEnergyYield: false,
@@ -606,7 +646,8 @@ public static class StarSystems
public static readonly StarSystemData NebulonDrift = new(
Id: "NebulonDrift",
Name: "Nebulon Drift",
Kind: StarSystemKind.Side,
SystemCategory: StarSystemCategory.SideSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -621,7 +662,8 @@ public static class StarSystems
public static readonly StarSystemData NeeraSGift = new(
Id: "NeeraSGift",
Name: "Neera's Gift",
Kind: StarSystemKind.Homeworld,
SystemCategory: StarSystemCategory.HomeworldSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -636,7 +678,8 @@ public static class StarSystems
public static readonly StarSystemData NegativeIon = new(
Id: "NegativeIon",
Name: "Negative Ion",
Kind: StarSystemKind.Core,
SystemCategory: StarSystemCategory.CoreSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -651,7 +694,8 @@ public static class StarSystems
public static readonly StarSystemData NexusPrime = new(
Id: "NexusPrime",
Name: "Nexus Prime",
Kind: StarSystemKind.Homeworld,
SystemCategory: StarSystemCategory.HomeworldSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: true,
HigherEnergyYield: false,
@@ -666,7 +710,8 @@ public static class StarSystems
public static readonly StarSystemData NoxiousEnergy = new(
Id: "NoxiousEnergy",
Name: "Noxious Energy",
Kind: StarSystemKind.Side,
SystemCategory: StarSystemCategory.SideSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -681,7 +726,8 @@ public static class StarSystems
public static readonly StarSystemData NucleicRedux = new(
Id: "NucleicRedux",
Name: "Nucleic Redux",
Kind: StarSystemKind.Core,
SystemCategory: StarSystemCategory.CoreSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -696,7 +742,8 @@ public static class StarSystems
public static readonly StarSystemData ObsidianPalace = new(
Id: "ObsidianPalace",
Name: "Obsidian Palace",
Kind: StarSystemKind.Homeworld,
SystemCategory: StarSystemCategory.HomeworldSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -711,7 +758,8 @@ public static class StarSystems
public static readonly StarSystemData OccamSAbode = new(
Id: "OccamSAbode",
Name: "Occam's Abode",
Kind: StarSystemKind.Side,
SystemCategory: StarSystemCategory.SideSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -726,7 +774,8 @@ public static class StarSystems
public static readonly StarSystemData OrionSGate = new(
Id: "OrionSGate",
Name: "Orion's Gate",
Kind: StarSystemKind.Core,
SystemCategory: StarSystemCategory.CoreSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -741,7 +790,8 @@ public static class StarSystems
public static readonly StarSystemData PleiadesCluster = new(
Id: "PleiadesCluster",
Name: "Pleiades Cluster",
Kind: StarSystemKind.Side,
SystemCategory: StarSystemCategory.SideSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: true,
HigherEnergyYield: false,
@@ -756,7 +806,8 @@ public static class StarSystems
public static readonly StarSystemData ProximaPrime = new(
Id: "ProximaPrime",
Name: "Proxima Prime",
Kind: StarSystemKind.Homeworld,
SystemCategory: StarSystemCategory.HomeworldSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: true,
HigherEnergyYield: false,
@@ -771,7 +822,8 @@ public static class StarSystems
public static readonly StarSystemData QuartzalianBerth = new(
Id: "QuartzalianBerth",
Name: "Quartzalian Berth",
Kind: StarSystemKind.Side,
SystemCategory: StarSystemCategory.SideSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -786,7 +838,8 @@ public static class StarSystems
public static readonly StarSystemData RaiderSReef = new(
Id: "RaiderSReef",
Name: "Raider's Reef",
Kind: StarSystemKind.Side,
SystemCategory: StarSystemCategory.SideSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -801,7 +854,8 @@ public static class StarSystems
public static readonly StarSystemData ScarlettIre = new(
Id: "ScarlettIre",
Name: "Scarlett Ire",
Kind: StarSystemKind.Core,
SystemCategory: StarSystemCategory.CoreSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -816,7 +870,8 @@ public static class StarSystems
public static readonly StarSystemData ShatteredLight = new(
Id: "ShatteredLight",
Name: "Shattered Light",
Kind: StarSystemKind.Core,
SystemCategory: StarSystemCategory.CoreSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -831,7 +886,8 @@ public static class StarSystems
public static readonly StarSystemData SigmaVortex = new(
Id: "SigmaVortex",
Name: "Sigma Vortex",
Kind: StarSystemKind.Core,
SystemCategory: StarSystemCategory.CoreSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -846,7 +902,8 @@ public static class StarSystems
public static readonly StarSystemData SolarisReach = new(
Id: "SolarisReach",
Name: "Solaris Reach",
Kind: StarSystemKind.Side,
SystemCategory: StarSystemCategory.SideSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -861,7 +918,8 @@ public static class StarSystems
public static readonly StarSystemData StarlessSky = new(
Id: "StarlessSky",
Name: "Starless Sky",
Kind: StarSystemKind.Homeworld,
SystemCategory: StarSystemCategory.HomeworldSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -876,7 +934,8 @@ public static class StarSystems
public static readonly StarSystemData SteelDepths = new(
Id: "SteelDepths",
Name: "Steel Depths",
Kind: StarSystemKind.Homeworld,
SystemCategory: StarSystemCategory.HomeworldSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -891,7 +950,8 @@ public static class StarSystems
public static readonly StarSystemData StellarForge = new(
Id: "StellarForge",
Name: "Stellar Forge",
Kind: StarSystemKind.Core,
SystemCategory: StarSystemCategory.CoreSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -906,7 +966,8 @@ public static class StarSystems
public static readonly StarSystemData StrongholdAtlas = new(
Id: "StrongholdAtlas",
Name: "Stronghold Atlas",
Kind: StarSystemKind.Homeworld,
SystemCategory: StarSystemCategory.HomeworldSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -921,7 +982,8 @@ public static class StarSystems
public static readonly StarSystemData StrongholdCronus = new(
Id: "StrongholdCronus",
Name: "Stronghold Cronus",
Kind: StarSystemKind.Core,
SystemCategory: StarSystemCategory.CoreSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: true,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -936,7 +998,8 @@ public static class StarSystems
public static readonly StarSystemData StrongholdLeo = new(
Id: "StrongholdLeo",
Name: "Stronghold Leo",
Kind: StarSystemKind.Homeworld,
SystemCategory: StarSystemCategory.HomeworldSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: true,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -944,14 +1007,15 @@ public static class StarSystems
OccupationBuff: "+100 Starting Hexite",
SystemMastery: "Hero Damage",
ConnectedSystems: ["Glittering Hope", "Neera's Gift", "Pleiades Cluster"],
X: 330.4,
Y: 128.2,
X: 392.8,
Y: 76.8,
Body: "");
public static readonly StarSystemData StrongholdNovaCentauri = new(
Id: "StrongholdNovaCentauri",
Name: "Stronghold Nova Centauri",
Kind: StarSystemKind.Homeworld,
SystemCategory: StarSystemCategory.HomeworldSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -959,14 +1023,15 @@ public static class StarSystems
OccupationBuff: "+0.1 Topbar regeneration rate",
SystemMastery: "Starting Topbar Energy",
ConnectedSystems: ["Aurora Vale", "Solaris Reach", "Yellow Dawn", "Proxima Prime"],
X: 879.2,
Y: 660.9,
X: 334.2,
Y: -14.3,
Body: "");
public static readonly StarSystemData StrongholdOrion = new(
Id: "StrongholdOrion",
Name: "Stronghold Orion",
Kind: StarSystemKind.Homeworld,
SystemCategory: StarSystemCategory.HomeworldSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: true,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -981,7 +1046,8 @@ public static class StarSystems
public static readonly StarSystemData StrongholdTau = new(
Id: "StrongholdTau",
Name: "Stronghold Tau",
Kind: StarSystemKind.Homeworld,
SystemCategory: StarSystemCategory.HomeworldSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: true,
HigherEnergyYield: false,
@@ -996,7 +1062,8 @@ public static class StarSystems
public static readonly StarSystemData StrongholdVega = new(
Id: "StrongholdVega",
Name: "Stronghold Vega",
Kind: StarSystemKind.Homeworld,
SystemCategory: StarSystemCategory.HomeworldSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: true,
HigherEnergyYield: false,
@@ -1011,7 +1078,8 @@ public static class StarSystems
public static readonly StarSystemData SullenDwarf = new(
Id: "SullenDwarf",
Name: "Sullen Dwarf",
Kind: StarSystemKind.Side,
SystemCategory: StarSystemCategory.SideSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -1026,7 +1094,8 @@ public static class StarSystems
public static readonly StarSystemData TartarusExpanse = new(
Id: "TartarusExpanse",
Name: "Tartarus Expanse",
Kind: StarSystemKind.Core,
SystemCategory: StarSystemCategory.CoreSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -1041,7 +1110,8 @@ public static class StarSystems
public static readonly StarSystemData TheCrucible = new(
Id: "TheCrucible",
Name: "The Crucible",
Kind: StarSystemKind.Core,
SystemCategory: StarSystemCategory.CoreSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: true,
HigherEnergyYield: false,
@@ -1056,7 +1126,8 @@ public static class StarSystems
public static readonly StarSystemData TheHighCouncil = new(
Id: "TheHighCouncil",
Name: "The High Council",
Kind: StarSystemKind.Homeworld,
SystemCategory: StarSystemCategory.HomeworldSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: true,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -1071,7 +1142,8 @@ public static class StarSystems
public static readonly StarSystemData TheUndergrowth = new(
Id: "TheUndergrowth",
Name: "The Undergrowth",
Kind: StarSystemKind.Homeworld,
SystemCategory: StarSystemCategory.HomeworldSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: true,
HigherEnergyYield: false,
@@ -1086,7 +1158,8 @@ public static class StarSystems
public static readonly StarSystemData TitanSFall = new(
Id: "TitanSFall",
Name: "Titan's Fall",
Kind: StarSystemKind.Core,
SystemCategory: StarSystemCategory.CoreSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -1101,7 +1174,8 @@ public static class StarSystems
public static readonly StarSystemData TyphonSCall = new(
Id: "TyphonSCall",
Name: "Typhon's Call",
Kind: StarSystemKind.Homeworld,
SystemCategory: StarSystemCategory.HomeworldSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: true,
@@ -1116,7 +1190,8 @@ public static class StarSystems
public static readonly StarSystemData UanachianWhirlpool = new(
Id: "UanachianWhirlpool",
Name: "Uanachian Whirlpool",
Kind: StarSystemKind.Side,
SystemCategory: StarSystemCategory.SideSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -1131,7 +1206,8 @@ public static class StarSystems
public static readonly StarSystemData VoidStar = new(
Id: "VoidStar",
Name: "Void Star",
Kind: StarSystemKind.Core,
SystemCategory: StarSystemCategory.CoreSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -1139,14 +1215,15 @@ public static class StarSystems
OccupationBuff: "+20 Topbar maximum energy",
SystemMastery: "Unit Health and Shields",
ConnectedSystems: ["Nucleic Redux", "Aquila Rift", "Devil's Trident", "Xenon Abyss", "Inferno's Edge Stronghold", "Tartarus Expanse"],
X: 230,
Y: 140.6,
X: 813.8,
Y: 93.6,
Body: "");
public static readonly StarSystemData VulcanSBreath = new(
Id: "VulcanSBreath",
Name: "Vulcan's Breath",
Kind: StarSystemKind.Core,
SystemCategory: StarSystemCategory.CoreSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -1161,7 +1238,8 @@ public static class StarSystems
public static readonly StarSystemData WildSEnd = new(
Id: "WildSEnd",
Name: "Wild's End",
Kind: StarSystemKind.Homeworld,
SystemCategory: StarSystemCategory.HomeworldSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: true,
HigherEnergyYield: false,
@@ -1176,7 +1254,8 @@ public static class StarSystems
public static readonly StarSystemData XenonAbyss = new(
Id: "XenonAbyss",
Name: "Xenon Abyss",
Kind: StarSystemKind.Core,
SystemCategory: StarSystemCategory.CoreSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -1184,14 +1263,15 @@ public static class StarSystems
OccupationBuff: "+10 Topbar starting energy",
SystemMastery: "Starting Topbar Energy",
ConnectedSystems: ["Devil's Trident", "Void Star", "Inferno's Edge Stronghold", "Shattered Light"],
X: 623.3,
Y: 58.5,
X: 663.3,
Y: 0,
Body: "");
public static readonly StarSystemData XenthicFields = new(
Id: "XenthicFields",
Name: "Xenthic Fields",
Kind: StarSystemKind.Side,
SystemCategory: StarSystemCategory.SideSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -1206,7 +1286,8 @@ public static class StarSystems
public static readonly StarSystemData YellowDawn = new(
Id: "YellowDawn",
Name: "Yellow Dawn",
Kind: StarSystemKind.Homeworld,
SystemCategory: StarSystemCategory.HomeworldSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
@@ -1214,14 +1295,15 @@ public static class StarSystems
OccupationBuff: "+10 max supply",
SystemMastery: "Hero Health and Shields",
ConnectedSystems: ["Stronghold Nova Centauri", "Proxima Prime", "Eden's Heart"],
X: 65.5,
Y: 336.5,
X: 430.6,
Y: -2.9,
Body: "");
public static readonly StarSystemData ZetaHorizon = new(
Id: "ZetaHorizon",
Name: "Zeta Horizon",
Kind: StarSystemKind.Side,
SystemCategory: StarSystemCategory.SideSystem,
Owner: "The Eden Accord",
HigherInfluenceYield: false,
HigherCreditYield: false,
HigherEnergyYield: false,
+209 -43
View File
@@ -8,32 +8,89 @@
<div class="d-flex flex-wrap align-items-center justify-content-between mb-3 gap-3">
<div>
<h1 class="h2 mb-1 text-light fw-bold">Galaxy Map</h1>
<p class="text-secondary mb-0 small">Interactive tactical star chart displaying all planetary systems and
hyperlane routes.</p>
<p class="text-secondary mb-0 small">Interactive tactical star chart displaying all planetary systems and hyperlane routes.</p>
</div>
<div class="d-flex align-items-center gap-3">
<div class="map-legend d-flex align-items-center gap-3 px-3 py-2 rounded">
<div class="legend-item d-flex align-items-center gap-1">
<span class="legend-dot dot-homeworld"></span>
<span class="legend-text">Homeworld</span>
</div>
<div class="legend-item d-flex align-items-center gap-1">
<span class="legend-dot dot-core"></span>
<span class="legend-text">Core</span>
</div>
<div class="legend-item d-flex align-items-center gap-1">
<span class="legend-dot dot-side"></span>
<span class="legend-text">Side</span>
<div class="d-flex flex-wrap align-items-center gap-3">
<div class="map-legend d-flex flex-wrap align-items-center gap-3 px-3 py-2 rounded">
<div class="legend-group d-flex align-items-center gap-2">
<span class="legend-header text-dim fs-8 text-uppercase">Faction:</span>
<div class="legend-item d-flex align-items-center gap-1" title="The Eden Accord (Green)">
<span class="legend-dot dot-eden"></span>
<span class="legend-text">Eden Accord</span>
</div>
<div class="legend-item d-flex align-items-center gap-1" title="The Keeper Council (Blue)">
<span class="legend-dot dot-keeper"></span>
<span class="legend-text">Keeper Council</span>
</div>
<div class="legend-item d-flex align-items-center gap-1" title="The Obsidian Order (Red)">
<span class="legend-dot dot-obsidian"></span>
<span class="legend-text">Obsidian Order</span>
</div>
</div>
</div>
<div class="map-stats text-secondary small px-3 py-2 rounded">
<span><strong>@_systems.Count</strong> Systems</span>
<span><strong>@_matchingCount</strong> / <strong>@_systems.Count</strong> Systems</span>
<span class="mx-1">•</span>
<span><strong>@_connections.Count</strong> Hyperlanes</span>
</div>
</div>
</div>
<!-- Filter Control Bar -->
<div class="filter-bar zs-glass-card p-3 mb-3 d-flex flex-wrap align-items-center gap-3">
<div class="d-flex align-items-center gap-2 filter-item">
<label class="filter-label text-dim small fw-semibold text-uppercase">System Type:</label>
<select class="form-select form-select-sm scifi-select" @bind="_selectedCategory" @bind:after="ApplyFilters">
<option value="">All Types</option>
<option value="@StarSystemCategory.HomeworldSystem">Homeworld System</option>
<option value="@StarSystemCategory.CoreSystem">Core System</option>
<option value="@StarSystemCategory.SideSystem">Side System</option>
</select>
</div>
<div class="d-flex align-items-center gap-2 filter-item">
<label class="filter-label text-dim small fw-semibold text-uppercase">Mastery:</label>
<select class="form-select form-select-sm scifi-select" @bind="_selectedMastery" @bind:after="ApplyFilters">
<option value="">All Masteries</option>
<option value="__ANY__">Any Mastery</option>
@foreach (var mastery in _availableMasteries)
{
<option value="@mastery">@mastery</option>
}
</select>
</div>
<div class="d-flex align-items-center gap-2 filter-item">
<label class="filter-label text-dim small fw-semibold text-uppercase">Special Yields:</label>
<select class="form-select form-select-sm scifi-select" @bind="_selectedYield" @bind:after="ApplyFilters">
<option value="">All Yields</option>
<option value="ANY">Any Special Yield</option>
<option value="Influence">Higher Influence</option>
<option value="Credits">Higher Credits</option>
<option value="Energy">Higher Energy</option>
<option value="Items">Higher Items</option>
</select>
</div>
<div class="d-flex align-items-center gap-2 filter-item">
<label class="filter-label text-dim small fw-semibold text-uppercase">Faction:</label>
<select class="form-select form-select-sm scifi-select" @bind="_selectedOwner" @bind:after="ApplyFilters">
<option value="">All Factions</option>
@foreach (var owner in StarSystemOwners.All)
{
<option value="@owner">@owner</option>
}
</select>
</div>
@if (HasActiveFilters)
{
<button class="btn btn-sm btn-scifi-outline py-1 px-3 ms-auto" @onclick="ResetFilters">
<span>Reset Filters</span>
</button>
}
</div>
<div class="galaxy-map-container" @onmouseleave="OnContainerMouseLeave">
<svg viewBox="0 0 1000 1000" class="galaxy-svg" preserveAspectRatio="xMidYMid meet"
xmlns="http://www.w3.org/2000/svg">
@@ -50,23 +107,23 @@
<stop offset="100%" stop-color="rgba(13, 17, 23, 0)"/>
</radialGradient>
<!-- Glow filters -->
<filter id="glow-homeworld" x="-50%" y="-50%" width="200%" height="200%">
<!-- Glow filters for Owners / Factions -->
<filter id="glow-eden" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur in="SourceGraphic" stdDeviation="3" result="blur"/>
<feMerge>
<feMergeNode in="blur"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<filter id="glow-core" x="-50%" y="-50%" width="200%" height="200%">
<filter id="glow-keeper" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur in="SourceGraphic" stdDeviation="3" result="blur"/>
<feMerge>
<feMergeNode in="blur"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<filter id="glow-side" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur in="SourceGraphic" stdDeviation="2.5" result="blur"/>
<filter id="glow-obsidian" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur in="SourceGraphic" stdDeviation="3" result="blur"/>
<feMerge>
<feMergeNode in="blur"/>
<feMergeNode in="SourceGraphic"/>
@@ -83,12 +140,17 @@
<g class="hyperlanes">
@foreach (var edge in _connections)
{
var isHighlighted = _hoveredSystem is not null &&
var isFromMatch = _matchingSystemIds.Contains(edge.From.Id);
var isToMatch = _matchingSystemIds.Contains(edge.To.Id);
var isFilterDimmed = HasActiveFilters && (!isFromMatch || !isToMatch);
var isHoverHighlighted = _hoveredSystem is not null &&
(string.Equals(edge.From.Id, _hoveredSystem.Id, StringComparison.OrdinalIgnoreCase) ||
string.Equals(edge.To.Id, _hoveredSystem.Id, StringComparison.OrdinalIgnoreCase));
var isDimmed = _hoveredSystem is not null && !isHighlighted;
var lineClass = isHighlighted ? "hyperlane-line hyperlane-highlighted" :
isDimmed ? "hyperlane-line hyperlane-dimmed" : "hyperlane-line";
var isHoverDimmed = _hoveredSystem is not null && !isHoverHighlighted;
var lineClass = isHoverHighlighted ? "hyperlane-line hyperlane-highlighted" :
(isHoverDimmed || isFilterDimmed) ? "hyperlane-line hyperlane-dimmed" : "hyperlane-line";
<line x1="@SvgNumber(edge.From.X)"
y1="@SvgNumber(edge.From.Y)"
x2="@SvgNumber(edge.To.X)"
@@ -101,16 +163,18 @@
<g class="planetary-nodes">
@foreach (var system in _systems)
{
var kindClass = GetKindCssClass(system.Kind);
var radius = GetNodeRadius(system.Kind);
var ownerClass = GetOwnerCssClass(system.Owner);
var radius = GetNodeRadius(system.SystemCategory);
var isMatch = _matchingSystemIds.Contains(system.Id);
var isHovered = _hoveredSystem is not null && string.Equals(system.Id, _hoveredSystem.Id, StringComparison.OrdinalIgnoreCase);
var isNeighbor = _hoveredConnectedIds.Contains(system.Id);
var isDimmed = _hoveredSystem is not null && !isHovered && !isNeighbor;
var isDimmed = (_hoveredSystem is not null && !isHovered && !isNeighbor) || (HasActiveFilters && !isMatch);
var stateClass = isHovered ? "is-hovered" :
isNeighbor ? "is-neighbor" :
isDimmed ? "is-dimmed" : "";
isDimmed ? "is-dimmed" :
(HasActiveFilters && isMatch ? "is-filter-matched" : "");
<g class="node-group @kindClass @stateClass"
<g class="node-group @ownerClass @stateClass"
transform="translate(@SvgNumber(system.X), @SvgNumber(system.Y))"
@onclick="() => OnNodeClick(system.Id)"
@onmouseenter="() => OnNodeMouseEnter(system)"
@@ -120,7 +184,7 @@
@onkeydown="e => OnNodeKeyDown(e, system.Id)"
tabindex="0"
role="button"
aria-label="@system.Name (@system.Kind)">
aria-label="@system.Name (@system.SystemCategory.ToDisplayName(), @system.Owner)">
<!-- Outer aura/glow circle -->
<circle r="@SvgNumber(radius + 4)" class="node-aura"/>
@@ -129,7 +193,7 @@
<circle r="@SvgNumber(radius)" class="node-circle"/>
<!-- Center core dot for homeworlds and core systems -->
@if (system.Kind != StarSystemKind.Side)
@if (system.SystemCategory != StarSystemCategory.SideSystem)
{
<circle r="@SvgNumber(radius * 0.4)" class="node-core-dot"/>
}
@@ -144,21 +208,26 @@
<!-- Floating Glassmorphism Hover Card -->
@if (_hoveredSystem is not null)
{
var kindClass = GetKindCssClass(_hoveredSystem.Kind);
var ownerClass = GetOwnerCssClass(_hoveredSystem.Owner);
var higherYields = GetHigherYields(_hoveredSystem);
<div class="planet-hover-card @kindClass"
<div class="planet-hover-card @ownerClass"
style="@GetTooltipStyle(_hoveredSystem)"
role="tooltip"
aria-live="polite">
<div class="card-header-row d-flex align-items-center justify-content-between mb-2">
<div class="d-flex align-items-center gap-2">
<span class="system-kind-indicator"></span>
<span class="system-owner-indicator"></span>
<span class="system-title fw-bold text-light">@_hoveredSystem.Name</span>
</div>
<span class="badge kind-badge">@_hoveredSystem.Kind</span>
<span class="badge @CategoryBadgeClass(_hoveredSystem.SystemCategory)">@_hoveredSystem.SystemCategory.ToDisplayName()</span>
</div>
<div class="card-details-grid">
<div class="detail-row">
<span class="detail-label">Faction Owner</span>
<span class="badge @OwnerBadgeClass(_hoveredSystem.Owner) mt-1">@_hoveredSystem.Owner</span>
</div>
<div class="detail-row">
<span class="detail-label">Occupation Buff</span>
<span class="detail-value @(_hoveredSystem.OccupationBuff != null ? "text-buff" : "text-secondary")">
@@ -215,13 +284,93 @@
private IReadOnlyList<StarSystemData> _systems = [];
private IReadOnlyList<ConnectionEdge> _connections = [];
private IReadOnlyList<string> _availableMasteries = [];
private StarSystemData? _hoveredSystem;
private readonly HashSet<string> _hoveredConnectedIds = new(StringComparer.OrdinalIgnoreCase);
private readonly HashSet<string> _matchingSystemIds = new(StringComparer.OrdinalIgnoreCase);
private StarSystemCategory? _selectedCategory;
private string _selectedMastery = string.Empty;
private string _selectedYield = string.Empty;
private string _selectedOwner = string.Empty;
private int _matchingCount;
private bool HasActiveFilters =>
_selectedCategory.HasValue ||
!string.IsNullOrEmpty(_selectedMastery) ||
!string.IsNullOrEmpty(_selectedYield) ||
!string.IsNullOrEmpty(_selectedOwner);
protected override void OnInitialized()
{
_systems = StarSystems.All;
_connections = BuildUniqueConnections(_systems);
_availableMasteries = SystemMasteries.All.Select(m => m.Name).Distinct().OrderBy(m => m).ToList();
ApplyFilters();
}
private void ApplyFilters()
{
_matchingSystemIds.Clear();
foreach (var system in _systems)
{
if (MatchesFilters(system))
{
_matchingSystemIds.Add(system.Id);
}
}
_matchingCount = _matchingSystemIds.Count;
}
private bool MatchesFilters(StarSystemData system)
{
if (_selectedCategory.HasValue && system.SystemCategory != _selectedCategory.Value)
{
return false;
}
if (!string.IsNullOrEmpty(_selectedMastery))
{
if (_selectedMastery == "__ANY__")
{
if (string.IsNullOrWhiteSpace(system.SystemMastery)) return false;
}
else if (!string.Equals(system.SystemMastery, _selectedMastery, StringComparison.OrdinalIgnoreCase))
{
return false;
}
}
if (!string.IsNullOrEmpty(_selectedYield))
{
if (_selectedYield == "ANY")
{
if (!system.HigherInfluenceYield && !system.HigherCreditYield && !system.HigherEnergyYield && !system.HigherChanceForItems)
{
return false;
}
}
else if (_selectedYield == "Influence" && !system.HigherInfluenceYield) return false;
else if (_selectedYield == "Credits" && !system.HigherCreditYield) return false;
else if (_selectedYield == "Energy" && !system.HigherEnergyYield) return false;
else if (_selectedYield == "Items" && !system.HigherChanceForItems) return false;
}
if (!string.IsNullOrEmpty(_selectedOwner) && !string.Equals(system.Owner, _selectedOwner, StringComparison.OrdinalIgnoreCase))
{
return false;
}
return true;
}
private void ResetFilters()
{
_selectedCategory = null;
_selectedMastery = string.Empty;
_selectedYield = string.Empty;
_selectedOwner = string.Empty;
ApplyFilters();
}
private static IReadOnlyList<ConnectionEdge> BuildUniqueConnections(IReadOnlyList<StarSystemData> allSystems)
@@ -371,17 +520,34 @@
return $"left: {SvgNumber(posX)}%; top: {SvgNumber(posY)}%; transform: {transform};";
}
private static string GetKindCssClass(StarSystemKind kind) => kind switch
private static string GetOwnerCssClass(string owner) => owner switch
{
StarSystemKind.Homeworld => "kind-homeworld",
StarSystemKind.Core => "kind-core",
_ => "kind-side"
StarSystemOwners.EdenAccord => "owner-eden",
StarSystemOwners.KeeperCouncil => "owner-keeper",
StarSystemOwners.ObsidianOrder => "owner-obsidian",
_ => "owner-eden"
};
private static double GetNodeRadius(StarSystemKind kind) => kind switch
private static string CategoryBadgeClass(StarSystemCategory category) => category switch
{
StarSystemKind.Homeworld => 7.0,
StarSystemKind.Core => 6.0,
StarSystemCategory.HomeworldSystem => "badge-homeworld",
StarSystemCategory.CoreSystem => "badge-core",
StarSystemCategory.SideSystem => "badge-side",
_ => "badge-side"
};
private static string OwnerBadgeClass(string owner) => owner switch
{
StarSystemOwners.EdenAccord => "badge-eden",
StarSystemOwners.KeeperCouncil => "badge-keeper",
StarSystemOwners.ObsidianOrder => "badge-obsidian",
_ => "badge-side"
};
private static double GetNodeRadius(StarSystemCategory category) => category switch
{
StarSystemCategory.HomeworldSystem => 7.0,
StarSystemCategory.CoreSystem => 6.0,
_ => 4.5
};
+39 -54
View File
@@ -17,21 +17,21 @@
display: inline-block;
}
.dot-homeworld {
.dot-eden {
background-color: #10b981;
box-shadow: 0 0 8px rgba(16, 185, 129, 0.7);
}
.dot-core {
background-color: #f59e0b;
box-shadow: 0 0 8px rgba(245, 158, 11, 0.7);
}
.dot-side {
.dot-keeper {
background-color: #38bdf8;
box-shadow: 0 0 8px rgba(56, 189, 248, 0.7);
}
.dot-obsidian {
background-color: #ef4444;
box-shadow: 0 0 8px rgba(239, 68, 68, 0.7);
}
.legend-text {
font-size: 0.85rem;
color: #c9d1d9;
@@ -116,35 +116,35 @@
transition: fill 0.2s ease, font-weight 0.2s ease, font-size 0.2s ease;
}
/* Kinds */
.kind-homeworld .node-circle {
/* Faction owner colors */
.owner-eden .node-circle {
fill: #10b981;
stroke: #34d399;
}
.kind-homeworld .node-aura {
.owner-eden .node-aura {
fill: #10b981;
filter: url(#glow-homeworld);
filter: url(#glow-eden);
}
.kind-core .node-circle {
fill: #f59e0b;
stroke: #fbbf24;
}
.kind-core .node-aura {
fill: #f59e0b;
filter: url(#glow-core);
}
.kind-side .node-circle {
.owner-keeper .node-circle {
fill: #38bdf8;
stroke: #7dd3fc;
}
.kind-side .node-aura {
.owner-keeper .node-aura {
fill: #38bdf8;
filter: url(#glow-side);
filter: url(#glow-keeper);
}
.owner-obsidian .node-circle {
fill: #ef4444;
stroke: #f87171;
}
.owner-obsidian .node-aura {
fill: #ef4444;
filter: url(#glow-obsidian);
}
/* Node State Styles */
@@ -228,7 +228,7 @@
}
}
.system-kind-indicator {
.system-owner-indicator {
width: 9px;
height: 9px;
border-radius: 50%;
@@ -247,49 +247,34 @@
border-radius: 6px;
}
/* Kind Variant Themes for Hover Card */
.planet-hover-card.kind-homeworld {
/* Faction owner themes for hover card */
.planet-hover-card.owner-eden {
border-color: rgba(16, 185, 129, 0.45);
box-shadow: 0 16px 36px rgba(0, 0, 0, 0.8), 0 0 24px rgba(16, 185, 129, 0.18);
}
.planet-hover-card.kind-homeworld .kind-badge {
background: rgba(16, 185, 129, 0.2);
color: #34d399;
border: 1px solid rgba(16, 185, 129, 0.4);
}
.planet-hover-card.kind-homeworld .system-kind-indicator {
.planet-hover-card.owner-eden .system-owner-indicator {
background-color: #10b981;
box-shadow: 0 0 8px rgba(16, 185, 129, 0.8);
}
.planet-hover-card.kind-core {
border-color: rgba(245, 158, 11, 0.45);
box-shadow: 0 16px 36px rgba(0, 0, 0, 0.8), 0 0 24px rgba(245, 158, 11, 0.18);
}
.planet-hover-card.kind-core .kind-badge {
background: rgba(245, 158, 11, 0.2);
color: #fbbf24;
border: 1px solid rgba(245, 158, 11, 0.4);
}
.planet-hover-card.kind-core .system-kind-indicator {
background-color: #f59e0b;
box-shadow: 0 0 8px rgba(245, 158, 11, 0.8);
}
.planet-hover-card.kind-side {
.planet-hover-card.owner-keeper {
border-color: rgba(56, 189, 248, 0.45);
box-shadow: 0 16px 36px rgba(0, 0, 0, 0.8), 0 0 24px rgba(56, 189, 248, 0.18);
}
.planet-hover-card.kind-side .kind-badge {
background: rgba(56, 189, 248, 0.2);
color: #7dd3fc;
border: 1px solid rgba(56, 189, 248, 0.4);
}
.planet-hover-card.kind-side .system-kind-indicator {
.planet-hover-card.owner-keeper .system-owner-indicator {
background-color: #38bdf8;
box-shadow: 0 0 8px rgba(56, 189, 248, 0.8);
}
.planet-hover-card.owner-obsidian {
border-color: rgba(239, 68, 68, 0.45);
box-shadow: 0 16px 36px rgba(0, 0, 0, 0.8), 0 0 24px rgba(239, 68, 68, 0.18);
}
.planet-hover-card.owner-obsidian .system-owner-indicator {
background-color: #ef4444;
box-shadow: 0 0 8px rgba(239, 68, 68, 0.8);
}
/* Card Details Grid */
.card-details-grid {
display: flex;
+3 -3
View File
@@ -279,9 +279,9 @@
protected override void OnInitialized()
{
totalSystemsCount = StarSystems.All.Count;
homeworldsCount = StarSystems.All.Count(s => s.Kind == StarSystemKind.Homeworld);
coreCount = StarSystems.All.Count(s => s.Kind == StarSystemKind.Core);
sideCount = StarSystems.All.Count(s => s.Kind == StarSystemKind.Side);
homeworldsCount = StarSystems.All.Count(s => s.SystemCategory == StarSystemCategory.HomeworldSystem);
coreCount = StarSystems.All.Count(s => s.SystemCategory == StarSystemCategory.CoreSystem);
sideCount = StarSystems.All.Count(s => s.SystemCategory == StarSystemCategory.SideSystem);
// Calculate unique hyperlanes
var edges = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
@@ -12,7 +12,8 @@ else
{
<div class="section-header d-flex align-items-center mb-4">
<h1 class="mb-0">@system.Name</h1>
<span class="badge @KindBadgeClass(system.Kind) ms-3">@system.Kind</span>
<span class="badge @CategoryBadgeClass(system.SystemCategory) ms-3">@system.SystemCategory.ToDisplayName()</span>
<span class="badge @OwnerBadgeClass(system.Owner) ms-2">@system.Owner</span>
<div class="ms-3 flex-grow-1 border-bottom opacity-25"></div>
<a href="/galaxy" class="btn btn-sm btn-scifi-outline ms-2 d-none d-md-inline-flex">
<span>View on Map</span>
@@ -20,6 +21,14 @@ else
</div>
<dl class="row">
<dt class="col-sm-3">Owner</dt>
<dd class="col-sm-9">
<span class="badge @OwnerBadgeClass(system.Owner)">@system.Owner</span>
</dd>
<dt class="col-sm-3">Category</dt>
<dd class="col-sm-9">@system.SystemCategory.ToDisplayName()</dd>
<dt class="col-sm-3">Occupation buff</dt>
<dd class="col-sm-9">@(system.OccupationBuff ?? "—")</dd>
@@ -86,11 +95,19 @@ else
system = StarSystems.All.FirstOrDefault(s => s.Id.Equals(Id, StringComparison.OrdinalIgnoreCase));
}
private static string KindBadgeClass(StarSystemKind kind) => kind switch
private static string CategoryBadgeClass(StarSystemCategory category) => category switch
{
StarSystemKind.Homeworld => "badge-homeworld",
StarSystemKind.Core => "badge-core",
StarSystemKind.Side => "badge-side",
StarSystemCategory.HomeworldSystem => "badge-homeworld",
StarSystemCategory.CoreSystem => "badge-core",
StarSystemCategory.SideSystem => "badge-side",
_ => "badge-side"
};
private static string OwnerBadgeClass(string owner) => owner switch
{
StarSystemOwners.EdenAccord => "badge-eden",
StarSystemOwners.KeeperCouncil => "badge-keeper",
StarSystemOwners.ObsidianOrder => "badge-obsidian",
_ => "badge-side"
};
@@ -16,19 +16,19 @@
</a>
</div>
@foreach (var kind in Enum.GetValues<StarSystemKind>())
@foreach (var category in Enum.GetValues<StarSystemCategory>())
{
var systems = StarSystems.All.Where(s => s.Kind == kind).OrderBy(s => s.Name).ToList();
var badgeClass = kind switch {
StarSystemKind.Homeworld => "badge-homeworld",
StarSystemKind.Core => "badge-core",
StarSystemKind.Side => "badge-side",
var systems = StarSystems.All.Where(s => s.SystemCategory == category).OrderBy(s => s.Name).ToList();
var badgeClass = category switch {
StarSystemCategory.HomeworldSystem => "badge-homeworld",
StarSystemCategory.CoreSystem => "badge-core",
StarSystemCategory.SideSystem => "badge-side",
_ => "badge-side"
};
<div class="mb-4">
<div class="d-flex align-items-center gap-2 mb-3">
<h2 class="h4 mb-0 text-white">@kind Systems</h2>
<h2 class="h4 mb-0 text-white">@category.ToDisplayName()</h2>
<span class="badge @badgeClass">@systems.Count</span>
</div>
<ul class="list-unstyled row g-2">
@@ -36,10 +36,13 @@
{
<li class="col-md-4 col-lg-3">
<a class="d-block p-2 rounded zs-glass-card text-decoration-none" href="/StarSystem/@system.Id">
<span class="fw-semibold text-white">@system.Name</span>
<div class="d-flex align-items-center justify-content-between">
<span class="fw-semibold text-white">@system.Name</span>
<span class="badge @OwnerBadgeClass(system.Owner) fs-8">@system.Owner</span>
</div>
@if (!string.IsNullOrWhiteSpace(system.OccupationBuff))
{
<div class="small text-dim text-truncate" title="@system.OccupationBuff">@system.OccupationBuff</div>
<div class="small text-dim text-truncate mt-1" title="@system.OccupationBuff">@system.OccupationBuff</div>
}
</a>
</li>
@@ -47,3 +50,13 @@
</ul>
</div>
}
@code {
private static string OwnerBadgeClass(string owner) => owner switch
{
StarSystemOwners.EdenAccord => "badge-eden",
StarSystemOwners.KeeperCouncil => "badge-keeper",
StarSystemOwners.ObsidianOrder => "badge-obsidian",
_ => "badge-side"
};
}
@@ -118,6 +118,30 @@ p {
font-weight: 600;
}
.badge-eden {
background: rgba(16, 185, 129, 0.18);
color: #34d399;
border: 1px solid rgba(16, 185, 129, 0.45);
box-shadow: 0 0 8px rgba(16, 185, 129, 0.25);
font-weight: 600;
}
.badge-keeper {
background: rgba(56, 189, 248, 0.18);
color: #7dd3fc;
border: 1px solid rgba(56, 189, 248, 0.45);
box-shadow: 0 0 8px rgba(56, 189, 248, 0.25);
font-weight: 600;
}
.badge-obsidian {
background: rgba(239, 68, 68, 0.18);
color: #f87171;
border: 1px solid rgba(239, 68, 68, 0.45);
box-shadow: 0 0 8px rgba(239, 68, 68, 0.25);
font-weight: 600;
}
.badge-mastery {
background: rgba(167, 139, 250, 0.18);
color: #c4b5fd;
+2 -2
View File
@@ -19,7 +19,8 @@
"Armor rating": "number",
"Energy": "number",
"Rank": "number",
"isSideSystem": "checkbox",
"systemCategory": "text",
"owner": "text",
"Available Systems": "multitext",
"availableSystems": "multitext",
"connectedSystems": "multitext",
@@ -29,7 +30,6 @@
"heroDamage": "number",
"heroCooldown": "number",
"turretDamage": "number",
"isHomeworldSystem": "checkbox",
"heroHealthAndShields": "number",
"heroHealthAndShieldRegen": "number",
"higherInfluenceYield": "checkbox",
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isSideSystem: true
systemCategory: Side System
owner: The Eden Accord
occupationBuff: +50 Starting Hexite
systemMastery: "[[Unit Health and Shields]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isSideSystem: true
systemCategory: Side System
owner: The Eden Accord
higherChanceForItems: true
occupationBuff: +0.05 Topbar regeneration rate
systemMastery: "[[Building Health and Shields]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isHomeworldSystem: true
systemCategory: Homeworld System
owner: The Eden Accord
higherChanceForItems: true
occupationBuff: +4% Unit health and shields
systemMastery: "[[Unit Vision and Attack Range]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isHomeworldSystem: true
systemCategory: Homeworld System
owner: The Eden Accord
occupationBuff: +100 Starting Hexite
systemMastery: "[[Unit Health and Shields]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isSideSystem: true
systemCategory: Side System
owner: The Eden Accord
occupationBuff: +5 max supply
systemMastery: "[[Starting Topbar Energy]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isSideSystem: true
systemCategory: Side System
owner: The Eden Accord
occupationBuff: +2% Unit health and shields
systemMastery: "[[Max Supply]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isSideSystem: true
systemCategory: Side System
owner: The Eden Accord
higherChanceForItems: false
occupationBuff: +0.25 unit vision and attack range
systemMastery: "[[Hero Damage]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isSideSystem: true
systemCategory: Side System
owner: The Eden Accord
occupationBuff: +5% cooldown reduction on Topbar abilities
systemMastery: "[[Unit Health and Shields]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isSideSystem: true
systemCategory: Side System
owner: The Eden Accord
occupationBuff: +2% Unit health and shields
systemMastery: "[[Starting Topbar Energy]]"
connectedSystems:
@@ -1,6 +1,7 @@
---
category: StarSystem
isCoreSystem: true
systemCategory: Core System
owner: The Eden Accord
higherEnergyYield: true
occupationBuff: +0.15 Topbar regeneration rate
systemMastery: "[[Building Health and Shields]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isSideSystem: true
systemCategory: Side System
owner: The Eden Accord
occupationBuff: +25 Starting Flux
systemMastery: "[[Max Supply]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isCoreSystem: true
systemCategory: Core System
owner: The Eden Accord
occupationBuff: +20 Topbar maximum energy
systemMastery: "[[Hero Health and Shields]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isSideSystem: true
systemCategory: Side System
owner: The Eden Accord
occupationBuff: +2% Unit health and shields
systemMastery: "[[Unit Energy and Regeneration (not heroes)]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isCoreSystem: true
systemCategory: Core System
owner: The Eden Accord
higherCreditYield: true
occupationBuff: +15% cooldown reduction on Topbar abilities
systemMastery: "[[Hero Damage]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isSideSystem: true
systemCategory: Side System
owner: The Eden Accord
higherChanceForItems: true
occupationBuff: +5% unit max energy and regeneration
systemMastery: "[[Max Supply]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isCoreSystem: true
systemCategory: Core System
owner: The Eden Accord
higherInfluenceYield: true
occupationBuff: +0.15 Topbar regeneration rate
systemMastery: "[[Production Speed for Buildings]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isHomeworldSystem: true
systemCategory: Homeworld System
owner: The Eden Accord
higherInfluenceYield: true
occupationBuff: +9% hero damage, health and shields
systemMastery: "[[Unit Energy and Regeneration (not heroes)]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isSideSystem: true
systemCategory: Side System
owner: The Eden Accord
higherChanceForItems: true
occupationBuff: +50 Starting Hexite
systemMastery: "[[Production Speed for Buildings]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isCoreSystem: true
systemCategory: Core System
owner: The Eden Accord
occupationBuff: +20% unit max energy and regeneration
systemMastery: "[[Unit Energy and Regeneration (not heroes)]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isCoreSystem: true
systemCategory: Core System
owner: The Eden Accord
higherChanceForItems: true
occupationBuff: +12% hero damage, health and shields
systemMastery: "[[Building Health and Shields]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isHomeworldSystem: true
systemCategory: Homeworld System
owner: The Eden Accord
higherEnergyYield: true
occupationBuff: +4% Unit health and shields
systemMastery: "[[Unit Health and Shields]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isCoreSystem: true
systemCategory: Core System
owner: The Eden Accord
higherChanceForItems: true
higherCreditYield: true
higherInfluenceYield: true
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isSideSystem: true
systemCategory: Side System
owner: The Eden Accord
occupationBuff: +5% cooldown reduction on Topbar abilities
systemMastery: "[[Unit Energy and Regeneration (not heroes)]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isSideSystem: true
systemCategory: Side System
owner: The Eden Accord
occupationBuff: +5 Topbar maximum energy
systemMastery: "[[Hero Health and Shields]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isHomeworldSystem: true
systemCategory: Homeworld System
owner: The Eden Accord
higherInfluenceYield: true
occupationBuff: +10 max supply
systemMastery: "[[Production Speed for Buildings]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isSideSystem: true
systemCategory: Side System
owner: The Eden Accord
occupationBuff: +5% unit max energy and regeneration
systemMastery: "[[Unit Energy and Regeneration (not heroes)]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isCoreSystem: true
systemCategory: Core System
owner: The Eden Accord
higherChanceForItems: true
occupationBuff: +6% Unit health and shields
systemMastery: "[[Unit Energy and Regeneration (not heroes)]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isSideSystem: true
systemCategory: Side System
owner: The Eden Accord
higherChanceForItems: true
occupationBuff: +25 Starting Flux
systemMastery: "[[Hero Damage]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isSideSystem: true
systemCategory: Side System
owner: The Eden Accord
occupationBuff: +6% hero damage, health and shields
systemMastery: "[[Hero Health and Shields]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isSideSystem: true
systemCategory: Side System
owner: The Eden Accord
higherChanceForItems: true
occupationBuff: +0.25 unit vision and attack range
systemMastery: "[[Unit Vision and Attack Range]]"
@@ -1,6 +1,7 @@
---
category: StarSystem
isCoreSystem: true
systemCategory: Core System
owner: The Eden Accord
higherEnergyYield: true
occupationBuff: +75 Starting Flux
systemMastery: "[[Turret Damage]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isSideSystem: true
systemCategory: Side System
owner: The Eden Accord
occupationBuff: +5 Topbar maximum energy
systemMastery: "[[Production Speed for Buildings]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isHomeworldSystem: true
systemCategory: Homeworld System
owner: The Eden Accord
higherChanceForItems: true
occupationBuff: +50 Starting Flux
systemMastery: "[[Unit Energy and Regeneration (not heroes)]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isCoreSystem: true
systemCategory: Core System
owner: The Eden Accord
occupationBuff: +6% Unit health and shields
systemMastery: "[[Unit Health and Shields]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isCoreSystem: true
systemCategory: Core System
owner: The Eden Accord
higherInfluenceYield: true
occupationBuff: +10 Topbar starting energy
systemMastery: "[[Hero Damage]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isCoreSystem: true
systemCategory: Core System
owner: The Eden Accord
higherEnergyYield: true
occupationBuff: +150 Starting Hexite
systemMastery: "[[Unit Vision and Attack Range]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isHomeworldSystem: true
systemCategory: Homeworld System
owner: The Eden Accord
higherEnergyYield: true
occupationBuff: +5 Topbar starting energy
systemMastery: "[[Starting Topbar Energy]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isSideSystem: true
systemCategory: Side System
owner: The Eden Accord
occupationBuff: +3 Topbar starting energy
systemMastery: "[[Building Health and Shields]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isCoreSystem: true
systemCategory: Core System
owner: The Eden Accord
higherCreditYield: true
occupationBuff: +150 Starting Hexite
systemMastery: "[[Max Supply]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isCoreSystem: true
systemCategory: Core System
owner: The Eden Accord
higherCreditYield: true
occupationBuff: +0.5 unit vision and attack range
systemMastery: "[[Max Supply]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isSideSystem: true
systemCategory: Side System
owner: The Eden Accord
higherChanceForItems: true
occupationBuff: +0.05 Topbar regeneration rate
systemMastery: "[[Turret Damage]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isHomeworldSystem: true
systemCategory: Homeworld System
owner: The Eden Accord
occupationBuff: +5 Topbar starting energy
systemMastery: "[[Unit Health and Shields]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isCoreSystem: true
systemCategory: Core System
owner: The Eden Accord
occupationBuff: +0.15 Topbar regeneration rate
systemMastery: "[[Hero Health and Shields]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isHomeworldSystem: true
systemCategory: Homeworld System
owner: The Eden Accord
higherCreditYield: true
occupationBuff: +0.5 unit vision and attack range
systemMastery: "[[Building Health and Shields]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isSideSystem: true
systemCategory: Side System
owner: The Eden Accord
occupationBuff: +6% hero damage, health and shields
systemMastery: "[[Unit Vision and Attack Range]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isCoreSystem: true
systemCategory: Core System
owner: The Eden Accord
higherChanceForItems: true
occupationBuff: +20 max supply
systemMastery: "[[Starting Topbar Energy]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isHomeworldSystem: true
systemCategory: Homeworld System
owner: The Eden Accord
occupationBuff: +10% cooldown reduction on Topbar abilities
systemMastery: "[[Building Health and Shields]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isSideSystem: true
systemCategory: Side System
owner: The Eden Accord
occupationBuff: +5 max supply
systemMastery: "[[Hero Health and Shields]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isCoreSystem: true
systemCategory: Core System
owner: The Eden Accord
higherChanceForItems: true
occupationBuff: +12% hero damage, health and shields
systemMastery: "[[Unit Energy and Regeneration (not heroes)]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isSideSystem: true
systemCategory: Side System
owner: The Eden Accord
higherCreditYield: true
occupationBuff: +5 max supply
systemMastery: "[[Unit Energy and Regeneration (not heroes)]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isHomeworldSystem: true
systemCategory: Homeworld System
owner: The Eden Accord
higherCreditYield: true
occupationBuff: +0.5 unit vision and attack range
systemMastery: "[[Turret Damage]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isSideSystem: true
systemCategory: Side System
owner: The Eden Accord
higherChanceForItems: true
occupationBuff: +5 Topbar maximum energy
systemMastery: "[[Unit Vision and Attack Range]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isSideSystem: true
systemCategory: Side System
owner: The Eden Accord
occupationBuff: +5 Topbar maximum energy
systemMastery: "[[Building Health and Shields]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isCoreSystem: true
systemCategory: Core System
owner: The Eden Accord
occupationBuff: +75 Starting Flux
systemMastery: "[[Hero Health and Shields]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isCoreSystem: true
systemCategory: Core System
owner: The Eden Accord
higherChanceForItems: true
occupationBuff: +15% cooldown reduction on Topbar abilities
systemMastery: "[[Hero Damage]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isCoreSystem: true
systemCategory: Core System
owner: The Eden Accord
occupationBuff: +20 max supply
systemMastery: "[[Unit Vision and Attack Range]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isSideSystem: true
systemCategory: Side System
owner: The Eden Accord
occupationBuff: +5% unit max energy and regeneration
systemMastery: "[[Turret Damage]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isHomeworldSystem: true
systemCategory: Homeworld System
owner: The Eden Accord
higherChanceForItems: true
occupationBuff: +100 Starting Hexite
systemMastery: "[[Production Speed for Buildings]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isHomeworldSystem: true
systemCategory: Homeworld System
owner: The Eden Accord
occupationBuff: +10% unit max energy and regeneration
systemMastery: "[[Production Speed for Buildings]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isCoreSystem: true
systemCategory: Core System
owner: The Eden Accord
occupationBuff: +75 Starting Flux
systemMastery: "[[Max Supply]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isHomeworldSystem: true
systemCategory: Homeworld System
owner: The Eden Accord
higherChanceForItems: true
occupationBuff: +5 Topbar starting energy
systemMastery: "[[Hero Damage]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isCoreSystem: true
systemCategory: Core System
owner: The Eden Accord
higherInfluenceYield: true
occupationBuff: +15% cooldown reduction on Topbar abilities
systemMastery: "[[Production Speed for Buildings]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isHomeworldSystem: true
systemCategory: Homeworld System
owner: The Eden Accord
higherInfluenceYield: true
occupationBuff: +100 Starting Hexite
systemMastery: "[[Hero Damage]]"
@@ -1,7 +1,7 @@
---
category: StarSystem
isSideSystem: false
isHomeworldSystem: true
systemCategory: Homeworld System
owner: The Eden Accord
occupationBuff: +0.1 Topbar regeneration rate
systemMastery: "[[Starting Topbar Energy]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isHomeworldSystem: true
systemCategory: Homeworld System
owner: The Eden Accord
higherInfluenceYield: true
occupationBuff: +9% hero damage, health and shields
systemMastery: "[[Building Health and Shields]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isHomeworldSystem: true
systemCategory: Homeworld System
owner: The Eden Accord
higherCreditYield: true
occupationBuff: +50 Starting Flux
systemMastery: "[[Turret Damage]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isHomeworldSystem: true
systemCategory: Homeworld System
owner: The Eden Accord
higherCreditYield: true
occupationBuff: +9% hero damage, health and shields
systemMastery: "[[Turret Damage]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isSideSystem: true
systemCategory: Side System
owner: The Eden Accord
occupationBuff: +3 Topbar starting energy
systemMastery: "[[Production Speed for Buildings]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isCoreSystem: true
systemCategory: Core System
owner: The Eden Accord
occupationBuff: +12% hero damage, health and shields
systemMastery: "[[Hero Damage]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isCoreSystem: true
systemCategory: Core System
owner: The Eden Accord
higherCreditYield: true
occupationBuff: +15% cooldown reduction on Topbar abilities
systemMastery: "[[Hero Health and Shields]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isHomeworldSystem: true
systemCategory: Homeworld System
owner: The Eden Accord
higherInfluenceYield: true
occupationBuff: +12% hero damage, health and shields
systemMastery: "[[Starting Topbar Energy]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isHomeworldSystem: true
systemCategory: Homeworld System
owner: The Eden Accord
higherCreditYield: true
occupationBuff: +50 Starting Flux
systemMastery: "[[Max Supply]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isCoreSystem: true
systemCategory: Core System
owner: The Eden Accord
higherChanceForItems: true
occupationBuff: +20 Topbar maximum energy
systemMastery: "[[Turret Damage]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isHomeworldSystem: true
systemCategory: Homeworld System
owner: The Eden Accord
higherEnergyYield: true
occupationBuff: +10% unit max energy and regeneration
systemMastery: "[[Unit Health and Shields]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isSideSystem: true
systemCategory: Side System
owner: The Eden Accord
occupationBuff: +3 Topbar starting energy
systemMastery: "[[Starting Topbar Energy]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isCoreSystem: true
systemCategory: Core System
owner: The Eden Accord
higherChanceForItems: true
occupationBuff: +20 Topbar maximum energy
systemMastery: "[[Unit Health and Shields]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isCoreSystem: true
systemCategory: Core System
owner: The Eden Accord
occupationBuff: +20% unit max energy and regeneration
systemMastery: "[[Starting Topbar Energy]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isHomeworldSystem: true
systemCategory: Homeworld System
owner: The Eden Accord
higherCreditYield: true
occupationBuff: +10 max supply
systemMastery: "[[Max Supply]]"
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isCoreSystem: true
systemCategory: Core System
owner: The Eden Accord
occupationBuff: +10 Topbar starting energy
systemMastery: "[[Starting Topbar Energy]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isSideSystem: true
systemCategory: Side System
owner: The Eden Accord
occupationBuff: +50 Starting Hexite
systemMastery: "[[Turret Damage]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isHomeworldSystem: true
systemCategory: Homeworld System
owner: The Eden Accord
occupationBuff: +10 max supply
systemMastery: "[[Hero Health and Shields]]"
connectedSystems:
+2 -1
View File
@@ -1,6 +1,7 @@
---
category: StarSystem
isSideSystem: true
systemCategory: Side System
owner: The Eden Accord
occupationBuff: +0.25 unit vision and attack range
systemMastery: "[[Unit Vision and Attack Range]]"
connectedSystems:
+2 -3
View File
@@ -8,9 +8,8 @@ views:
- file.name
- systemMastery
- occupationBuff
- isSideSystem
- isHomeworldSystem
- isCoreSystem
- systemCategory
- owner
- higherInfluenceYield
- higherEnergyYield
- higherCreditYield