diff --git a/apps/backend/Contracts/WorldContracts.Celestial.cs b/apps/backend/Contracts/WorldContracts.Celestial.cs index 6ef8ba3..bdbfc02 100644 --- a/apps/backend/Contracts/WorldContracts.Celestial.cs +++ b/apps/backend/Contracts/WorldContracts.Celestial.cs @@ -1,20 +1,36 @@ namespace SpaceGame.Simulation.Api.Contracts; +public sealed record StarSnapshot( + string Kind, + string Color, + string Glow, + float Size, + float OrbitRadius, + float OrbitSpeed, + float OrbitPhaseAtEpoch); + +public sealed record MoonSnapshot( + string Label, + float Size, + string Color, + float OrbitRadius, + float OrbitSpeed, + float OrbitPhaseAtEpoch, + float OrbitInclination, + float OrbitLongitudeOfAscendingNode); + public sealed record SystemSnapshot( string Id, string Label, Vector3Dto GalaxyPosition, - string StarKind, - int StarCount, - string StarColor, - float StarSize, + IReadOnlyList Stars, IReadOnlyList Planets); public sealed record PlanetSnapshot( string Label, string PlanetType, string Shape, - int MoonCount, + IReadOnlyList Moons, float OrbitRadius, float OrbitSpeed, float OrbitEccentricity, diff --git a/apps/backend/Data/WorldDefinitions.cs b/apps/backend/Data/WorldDefinitions.cs index 1d1d6f0..97a9452 100644 --- a/apps/backend/Data/WorldDefinitions.cs +++ b/apps/backend/Data/WorldDefinitions.cs @@ -1,3 +1,5 @@ +using System.Text.Json.Serialization; + namespace SpaceGame.Simulation.Api.Data; public sealed class ConstructionDefinition @@ -13,6 +15,29 @@ public sealed class ConstructionDefinition public int Priority { get; set; } } +public sealed class ItemPriceDefinition +{ + public float Min { get; set; } + public float Max { get; set; } + public float Avg { get; set; } +} + +public sealed class ItemEffectDefinition +{ + public required string Type { get; set; } + public float Product { get; set; } +} + +public sealed class ItemProductionDefinition +{ + public float Time { get; set; } + public float Amount { get; set; } + public string Method { get; set; } = "default"; + public string Name { get; set; } = "Universal"; + public List Wares { get; set; } = []; + public List Effects { get; set; } = []; +} + public sealed class BalanceDefinition { public float YPlane { get; set; } @@ -25,17 +50,35 @@ public sealed class BalanceDefinition public float UndockDistance { get; set; } } +public sealed class StarDefinition +{ + public string Kind { get; set; } = "main-sequence"; + public required string Color { get; set; } + public required string Glow { get; set; } + public float Size { get; set; } + public float OrbitRadius { get; set; } + public float OrbitSpeed { get; set; } + public float OrbitPhaseAtEpoch { get; set; } +} + +public sealed class MoonDefinition +{ + public required string Label { get; set; } + public float Size { get; set; } + public required string Color { get; set; } + public float OrbitRadius { get; set; } + public float OrbitSpeed { get; set; } + public float OrbitPhaseAtEpoch { get; set; } + public float OrbitInclination { get; set; } + public float OrbitLongitudeOfAscendingNode { get; set; } +} + public sealed class SolarSystemDefinition { public required string Id { get; set; } public required string Label { get; set; } public required float[] Position { get; set; } - public string StarKind { get; set; } = "main-sequence"; - public int StarCount { get; set; } = 1; - public required string StarColor { get; set; } - public required string StarGlow { get; set; } - public float StarSize { get; set; } - public float GravityWellRadius { get; set; } + public required List Stars { get; set; } public required AsteroidFieldDefinition AsteroidField { get; set; } public required List ResourceNodes { get; set; } public required List Planets { get; set; } @@ -68,9 +111,21 @@ public sealed class ItemDefinition public required string Name { get; set; } public string Description { get; set; } = string.Empty; public string Type { get; set; } = "material"; - public required string CargoKind { get; set; } + public string CargoKind { get; set; } = string.Empty; public float Volume { get; set; } = 1f; + public int Version { get; set; } + public string FactoryName { get; set; } = string.Empty; + public string Icon { get; set; } = string.Empty; + public string Group { get; set; } = string.Empty; + public ItemPriceDefinition? Price { get; set; } + public List Illegal { get; set; } = []; + public List Production { get; set; } = []; public ConstructionDefinition? Construction { get; set; } + [JsonPropertyName("transport")] + public string Transport + { + set => CargoKind = value; + } } public sealed class RecipeOutputDefinition @@ -81,8 +136,13 @@ public sealed class RecipeOutputDefinition public sealed class RecipeInputDefinition { - public required string ItemId { get; set; } + public string ItemId { get; set; } = string.Empty; public float Amount { get; set; } + [JsonPropertyName("ware")] + public string Ware + { + set => ItemId = value; + } } public sealed class ModuleConstructionDefinition @@ -91,18 +151,73 @@ public sealed class ModuleConstructionDefinition public float ProductionTime { get; set; } } +public sealed class ModuleDockDefinition +{ + public int Capacity { get; set; } + public required string Size { get; set; } +} + +public sealed class ModuleCargoDefinition +{ + public float Max { get; set; } + public required string Type { get; set; } +} + +public sealed class ModuleWorkForceDefinition +{ + public float Capacity { get; set; } + public float Max { get; set; } + public string Race { get; set; } = string.Empty; +} + +public sealed class ModuleMountDefinition +{ + public required string Group { get; set; } + public required string Size { get; set; } + public bool Hittable { get; set; } + public List Types { get; set; } = []; +} + +public sealed class ModuleProductionDefinition +{ + public float Time { get; set; } + public float Amount { get; set; } + public string Method { get; set; } = "default"; + public string Name { get; set; } = "Universal"; + public List Wares { get; set; } = []; +} + public sealed class ModuleDefinition { public required string Id { get; set; } public required string Name { get; set; } public string Description { get; set; } = string.Empty; public required string Type { get; set; } + [JsonIgnore] public string? Product { get; set; } + public List Products { get; set; } = []; public string ProductionMode { get; set; } = "passive"; public float Radius { get; set; } = 12f; public float Hull { get; set; } = 100f; public float WorkforceNeeded { get; set; } + public int Version { get; set; } + public string Macro { get; set; } = string.Empty; + public string MakerRace { get; set; } = string.Empty; + public int ExplosionDamage { get; set; } + public ItemPriceDefinition? Price { get; set; } + public List Owners { get; set; } = []; + public ModuleCargoDefinition? Cargo { get; set; } + public ModuleWorkForceDefinition? WorkForce { get; set; } + public List Docks { get; set; } = []; + public List Shields { get; set; } = []; + public List Turrets { get; set; } = []; + public List Production { get; set; } = []; public ModuleConstructionDefinition? Construction { get; set; } + [JsonPropertyName("product")] + public List ProductIds + { + set => Products = value ?? []; + } } public sealed class ModuleRecipeDefinition @@ -130,7 +245,7 @@ public sealed class PlanetDefinition public required string Label { get; set; } public string PlanetType { get; set; } = "terrestrial"; public string Shape { get; set; } = "sphere"; - public int MoonCount { get; set; } + public List Moons { get; set; } = []; public float OrbitRadius { get; set; } public float OrbitSpeed { get; set; } public float OrbitEccentricity { get; set; } diff --git a/apps/backend/Simulation/ScenarioLoader.Generation.cs b/apps/backend/Simulation/ScenarioLoader.Generation.cs index 70590de..8689e15 100644 --- a/apps/backend/Simulation/ScenarioLoader.Generation.cs +++ b/apps/backend/Simulation/ScenarioLoader.Generation.cs @@ -8,19 +8,11 @@ public sealed partial class ScenarioLoader private const string DevelopmentCompanionSystemId = "helios"; private static List InjectSpecialSystems( - IReadOnlyList authoredSystems, - bool includeSolSystem) + IReadOnlyList authoredSystems) { - var systems = authoredSystems + return authoredSystems .Select(CloneSystemDefinition) .ToList(); - - if (includeSolSystem && systems.All((system) => system.Id != "sol")) - { - systems.Add(CreateSolSystem()); - } - - return systems; } private static List ExpandSystems( @@ -156,12 +148,16 @@ public sealed partial class ScenarioLoader Id = id, Label = label, Position = [position.X, position.Y, position.Z], - StarKind = starProfile.Kind, - StarCount = starProfile.StarCount, - StarColor = starProfile.StarColor, - StarGlow = starProfile.StarGlow, - StarSize = starProfile.BaseSize + ((generatedIndex % 4) * 2f), - GravityWellRadius = template.GravityWellRadius + ((generatedIndex % 3) * 12f), + Stars = + [ + new StarDefinition + { + Kind = starProfile.Kind, + Color = starProfile.StarColor, + Glow = starProfile.StarGlow, + Size = starProfile.BaseSize + ((generatedIndex % 4) * 2f), + }, + ], AsteroidField = new AsteroidFieldDefinition { DecorationCount = template.AsteroidField.DecorationCount + ((generatedIndex % 5) * 10), @@ -181,12 +177,7 @@ public sealed partial class ScenarioLoader Id = definition.Id, Label = definition.Label, Position = definition.Position.ToArray(), - StarKind = definition.StarKind, - StarCount = definition.StarCount, - StarColor = definition.StarColor, - StarGlow = definition.StarGlow, - StarSize = definition.StarSize, - GravityWellRadius = definition.GravityWellRadius, + Stars = definition.Stars.Select(s => new StarDefinition { Kind = s.Kind, Color = s.Color, Glow = s.Glow, Size = s.Size, OrbitRadius = s.OrbitRadius, OrbitSpeed = s.OrbitSpeed, OrbitPhaseAtEpoch = s.OrbitPhaseAtEpoch }).ToList(), AsteroidField = new AsteroidFieldDefinition { DecorationCount = definition.AsteroidField.DecorationCount, @@ -214,7 +205,7 @@ public sealed partial class ScenarioLoader Label = planet.Label, PlanetType = planet.PlanetType, Shape = planet.Shape, - MoonCount = planet.MoonCount, + Moons = planet.Moons.Select(m => new MoonDefinition { Label = m.Label, Size = m.Size, Color = m.Color, OrbitRadius = m.OrbitRadius, OrbitSpeed = m.OrbitSpeed, OrbitPhaseAtEpoch = m.OrbitPhaseAtEpoch, OrbitInclination = m.OrbitInclination, OrbitLongitudeOfAscendingNode = m.OrbitLongitudeOfAscendingNode }).ToList(), OrbitRadius = planet.OrbitRadius, OrbitSpeed = planet.OrbitSpeed, OrbitEccentricity = planet.OrbitEccentricity, @@ -387,14 +378,15 @@ public sealed partial class ScenarioLoader orbitRadius += profile.OrbitGapMin + (Hash01(generatedIndex, 10 + index) * (profile.OrbitGapMax - profile.OrbitGapMin)); var orbitEccentricity = 0.01f + (Hash01(generatedIndex, 20 + index) * 0.16f); var orbitInclination = -9f + (Hash01(generatedIndex, 30 + index) * 18f); - var moonVariance = (int)MathF.Floor(Hash01(generatedIndex, 40 + index) * 3f); + var moonCount = profile.BaseMoonCount + (int)MathF.Floor(Hash01(generatedIndex, 40 + index) * 3f); + var planetLabel = $"{BuildPlanetBaseName(generatedIndex, index)}-{index + 1}"; planets.Add(new PlanetDefinition { - Label = $"{BuildPlanetBaseName(generatedIndex, index)}-{index + 1}", + Label = planetLabel, PlanetType = profile.Type, Shape = profile.Shape, - MoonCount = profile.BaseMoonCount + moonVariance, + Moons = GenerateMoons(planetLabel, profile.BaseSize, moonCount), OrbitRadius = orbitRadius, OrbitSpeed = 0.11f / MathF.Sqrt(MathF.Max(orbitRadius * orbitRadius * orbitRadius, 0.02f)), OrbitEccentricity = orbitEccentricity, @@ -471,12 +463,44 @@ public sealed partial class ScenarioLoader return (value & 0x00ffffff) / 16777215f; } + private static List GenerateMoons(string planetLabel, float planetSize, int moonCount) + { + var seed = planetLabel.Aggregate(0, (acc, c) => acc * 31 + c); + var moons = new List(moonCount); + for (var moonIndex = 0; moonIndex < moonCount; moonIndex += 1) + { + var spacing = planetSize * 1.4f; + var radiusVariance = Hash01(seed, 10 + moonIndex) * planetSize * 0.9f; + var orbitRadius = (planetSize * 1.8f) + (moonIndex * spacing) + radiusVariance; + var orbitSpeed = 0.9f / MathF.Sqrt(MathF.Max(orbitRadius, 1f)) + (moonIndex * 0.003f); + var phase = Hash01(seed, 20 + moonIndex) * 360f; + var inclination = (Hash01(seed, 30 + moonIndex) - 0.5f) * 28f; + var ascendingNode = Hash01(seed, 40 + moonIndex) * 360f; + var sizeBase = MathF.Max(2.2f, planetSize * 0.11f); + var sizeVariance = Hash01(seed, 50 + moonIndex) * MathF.Max(planetSize * 0.16f, 2.5f); + var size = MathF.Min(sizeBase + sizeVariance, planetSize * 0.42f); + + moons.Add(new MoonDefinition + { + Label = $"{planetLabel}-m{moonIndex + 1}", + Size = size, + Color = "#c8c4bc", + OrbitRadius = orbitRadius, + OrbitSpeed = orbitSpeed, + OrbitPhaseAtEpoch = phase, + OrbitInclination = inclination, + OrbitLongitudeOfAscendingNode = ascendingNode, + }); + } + + return moons; + } + private sealed record StarProfile( string Kind, string StarColor, string StarGlow, - float BaseSize, - int StarCount); + float BaseSize); private sealed record PlanetProfile( string Type, @@ -490,106 +514,4 @@ public sealed partial class ScenarioLoader public float OrbitGapMax => OrbitGapMin + MathF.Max(0.12f, OrbitGapMin * 0.45f); } - private static SolarSystemDefinition CreateSolSystem() - { - var mercuryOrbitAu = 0.3871f; - var venusOrbitAu = 0.7233f; - var earthOrbitAu = 1.000f; - var marsOrbitAu = 1.5237f; - var jupiterOrbitAu = 5.203f; - var saturnOrbitAu = 9.582f; - var uranusOrbitAu = 19.201f; - var neptuneOrbitAu = 30.047f; - - return new SolarSystemDefinition - { - Id = "sol", - Label = "Sol", - Position = [18.2f, 0.02f, -11.8f], - StarKind = "main-sequence", - StarCount = 1, - StarColor = "#fff1b8", - StarGlow = "#ffd35a", - StarSize = 696340f, - GravityWellRadius = 240f, - AsteroidField = new AsteroidFieldDefinition - { - DecorationCount = 240, - RadiusOffset = 422000000f, - RadiusVariance = 180000000f, - HeightVariance = 22000000f, - }, - ResourceNodes = - [ - new ResourceNodeDefinition { SourceKind = "asteroid-belt", Angle = 0.2f, RadiusOffset = 126000f, InclinationDegrees = 4f, AnchorPlanetIndex = 3, OreAmount = 1000f, ItemId = "ore", ShardCount = 9 }, - new ResourceNodeDefinition { SourceKind = "asteroid-belt", Angle = 1.8f, RadiusOffset = 148000f, InclinationDegrees = -6f, AnchorPlanetIndex = 3, OreAmount = 1000f, ItemId = "ore", ShardCount = 9 }, - new ResourceNodeDefinition { SourceKind = "asteroid-belt", Angle = 3.5f, RadiusOffset = 138000f, InclinationDegrees = 8f, AnchorPlanetIndex = 4, OreAmount = 1000f, ItemId = "ore", ShardCount = 9 }, - new ResourceNodeDefinition { SourceKind = "asteroid-belt", Angle = 5.1f, RadiusOffset = 164000f, InclinationDegrees = -5f, AnchorPlanetIndex = 4, OreAmount = 1000f, ItemId = "ore", ShardCount = 9 }, - ], - Planets = - [ - CreateSolPlanet("Mercury", "barren", "sphere", 0, mercuryOrbitAu, 0.2056f, 7.0f, 48f, 29f, 252f, "#b7a08f", 0.03f, false), - CreateSolPlanet("Venus", "desert", "sphere", 0, venusOrbitAu, 0.0067f, 3.4f, 76f, 54f, 181f, "#d9b38c", 2.64f, false), - CreateSolPlanet("Earth", "terrestrial", "sphere", 1, earthOrbitAu, 0.0167f, 0.0f, 0f, 114f, 100f, "#4f84c4", 0.41f, false), - CreateSolPlanet("Mars", "desert", "sphere", 2, marsOrbitAu, 0.0934f, 1.85f, 49f, 286f, 54f, "#c56e52", 0.44f, false), - CreateSolPlanet("Jupiter", "gas-giant", "oblate", 95, jupiterOrbitAu, 0.0489f, 1.3f, 100f, 275f, 34f, "#d9b06f", 0.05f, true), - CreateSolPlanet("Saturn", "gas-giant", "oblate", 146, saturnOrbitAu, 0.0565f, 2.49f, 113f, 339f, 200f, "#dfc27d", 0.47f, true), - CreateSolPlanet("Uranus", "ice-giant", "oblate", 28, uranusOrbitAu, 0.046f, 0.77f, 74f, 97f, 130f, "#9fd3df", 1.71f, true), - CreateSolPlanet("Neptune", "ice-giant", "oblate", 16, neptuneOrbitAu, 0.009f, 1.77f, 132f, 273f, 256f, "#4c79c9", 0.49f, true) - ], - }; - } - - private static PlanetDefinition CreateSolPlanet( - string label, - string planetType, - string shape, - int moonCount, - float orbitRadiusAu, - float orbitEccentricity, - float orbitInclination, - float ascendingNode, - float argumentOfPeriapsis, - float phaseAtEpoch, - string color, - float tilt, - bool hasRing) - { - return new PlanetDefinition - { - Label = label, - PlanetType = planetType, - Shape = shape, - MoonCount = moonCount, - OrbitRadius = orbitRadiusAu, - OrbitSpeed = ComputeSolOrbitSpeed(orbitRadiusAu), - OrbitEccentricity = orbitEccentricity, - OrbitInclination = orbitInclination, - OrbitLongitudeOfAscendingNode = ascendingNode, - OrbitArgumentOfPeriapsis = argumentOfPeriapsis, - OrbitPhaseAtEpoch = phaseAtEpoch, - Size = planetType switch - { - "gas-giant" => label == "Saturn" ? 58232f : 69911f, - "ice-giant" => label == "Uranus" ? 25362f : 24622f, - _ => label switch - { - "Mercury" => 2440f, - "Venus" => 6052f, - "Earth" => 6371f, - "Mars" => 3390f, - _ => 5000f, - }, - }, - Color = color, - Tilt = tilt, - HasRing = hasRing, - }; - } - - private static float ComputeSolOrbitSpeed(float orbitRadiusAu) - { - const float earthAngularSpeed = 0.11f; - return earthAngularSpeed / MathF.Sqrt(orbitRadiusAu * orbitRadiusAu * orbitRadiusAu); - } } diff --git a/apps/backend/Simulation/ScenarioLoader.Seeding.cs b/apps/backend/Simulation/ScenarioLoader.Seeding.cs index 6b8a499..abb6bc5 100644 --- a/apps/backend/Simulation/ScenarioLoader.Seeding.cs +++ b/apps/backend/Simulation/ScenarioLoader.Seeding.cs @@ -60,14 +60,14 @@ public sealed partial class ScenarioLoader .ToList(); var refineries = ownedStations - .Where((station) => HasInstalledModules(station, "refinery-stack", "power-core", "liquid-tank")) + .Where((station) => HasInstalledModules(station, "module_gen_prod_refinedmetals_01", "module_gen_prod_energycells_01", "module_arg_stor_liquid_m_01")) .ToList(); if (refineries.Count > 0) { foreach (var refinery in refineries) { - refinery.Inventory["refined-metals"] = MathF.Max(GetInventoryAmount(refinery.Inventory, "refined-metals"), MinimumRefineryStock); + refinery.Inventory["refinedmetals"] = MathF.Max(GetInventoryAmount(refinery.Inventory, "refinedmetals"), MinimumRefineryStock); } if (refineries.All((station) => GetInventoryAmount(station.Inventory, "ore") < MinimumRefineryOre)) @@ -76,9 +76,9 @@ public sealed partial class ScenarioLoader } } - foreach (var shipyard in ownedStations.Where((station) => HasInstalledModules(station, "ship-factory"))) + foreach (var shipyard in ownedStations.Where((station) => HasInstalledModules(station, "module_gen_build_l_01"))) { - shipyard.Inventory["refined-metals"] = MathF.Max(GetInventoryAmount(shipyard.Inventory, "refined-metals"), MinimumShipyardStock); + shipyard.Inventory["refinedmetals"] = MathF.Max(GetInventoryAmount(shipyard.Inventory, "refinedmetals"), MinimumShipyardStock); } } } @@ -189,13 +189,13 @@ public sealed partial class ScenarioLoader { foreach (var (moduleId, targetCount) in new (string ModuleId, int TargetCount)[] { - ("refinery-stack", 1), - ("container-bay", 1), - ("fabricator-array", 2), - ("component-factory", 1), - ("ship-factory", 1), - ("solar-array", 2), - ("dock-bay-small", 2), + ("module_gen_prod_refinedmetals_01", 1), + ("module_arg_stor_container_m_01", 1), + ("module_gen_prod_hullparts_01", 2), + ("module_gen_prod_advancedelectronics_01", 1), + ("module_gen_build_l_01", 1), + ("module_gen_prod_energycells_01", 2), + ("module_arg_dock_m_01_lowtech", 2), }) { if (CountModules(station.InstalledModules, moduleId) < targetCount @@ -210,7 +210,7 @@ public sealed partial class ScenarioLoader private static void InitializeStationPopulation(StationRuntime station) { - var habitatModules = CountModules(station.InstalledModules, "habitat-ring"); + var habitatModules = CountModules(station.InstalledModules, "module_arg_hab_m_01"); station.PopulationCapacity = 40f + (habitatModules * 220f); station.WorkforceRequired = MathF.Max(12f, station.Modules.Count * 14f); station.Population = habitatModules > 0 diff --git a/apps/backend/Simulation/ScenarioLoader.Spatial.cs b/apps/backend/Simulation/ScenarioLoader.Spatial.cs index 6641948..5350a3f 100644 --- a/apps/backend/Simulation/ScenarioLoader.Spatial.cs +++ b/apps/backend/Simulation/ScenarioLoader.Spatial.cs @@ -9,13 +9,18 @@ public sealed partial class ScenarioLoader var celestials = new List(); var lagrangeNodesByPlanetIndex = new Dictionary>(); - AddCelestial( - celestials, - id: $"node-{system.Definition.Id}-star", - systemId: system.Definition.Id, - kind: SpatialNodeKind.Star, - position: Vector3.Zero, - localSpaceRadius: MathF.Max(system.Definition.GravityWellRadius + StarBubbleRadiusPadding, LocalSpaceRadius)); + for (var starIndex = 0; starIndex < system.Definition.Stars.Count; starIndex += 1) + { + AddCelestial( + celestials, + id: $"node-{system.Definition.Id}-star-{starIndex + 1}", + systemId: system.Definition.Id, + kind: SpatialNodeKind.Star, + position: Vector3.Zero, + localSpaceRadius: LocalSpaceRadius); + } + + var primaryStarNodeId = $"node-{system.Definition.Id}-star-1"; for (var planetIndex = 0; planetIndex < system.Definition.Planets.Count; planetIndex += 1) { @@ -29,7 +34,7 @@ public sealed partial class ScenarioLoader kind: SpatialNodeKind.Planet, position: planetPosition, localSpaceRadius: LocalSpaceRadius, - parentNodeId: $"node-{system.Definition.Id}-star"); + parentNodeId: primaryStarNodeId); var lagrangeNodes = new Dictionary(StringComparer.Ordinal); foreach (var point in EnumeratePlanetLagrangePoints(planetPosition, planet)) @@ -48,15 +53,10 @@ public sealed partial class ScenarioLoader lagrangeNodesByPlanetIndex[planetIndex] = lagrangeNodes; - if (planet.MoonCount <= 0) + for (var moonIndex = 0; moonIndex < planet.Moons.Count; moonIndex += 1) { - continue; - } - - var moonOrbitRadius = MathF.Max(planet.Size + 48f, 42f); - for (var moonIndex = 0; moonIndex < planet.MoonCount; moonIndex += 1) - { - var moonPosition = ComputeMoonPosition(planetPosition, moonOrbitRadius, moonIndex, planetIndex); + var moon = planet.Moons[moonIndex]; + var moonPosition = ComputeMoonPosition(planetPosition, moon); AddCelestial( celestials, id: $"node-{system.Definition.Id}-planet-{planetIndex + 1}-moon-{moonIndex + 1}", @@ -65,7 +65,6 @@ public sealed partial class ScenarioLoader position: moonPosition, localSpaceRadius: LocalSpaceRadius, parentNodeId: planetCelestial.Id); - moonOrbitRadius += 30f; } } @@ -232,10 +231,11 @@ public sealed partial class ScenarioLoader return new Vector3(x, 0f, z); } - private static Vector3 ComputeMoonPosition(Vector3 planetPosition, float orbitRadius, int moonIndex, int planetIndex) + private static Vector3 ComputeMoonPosition(Vector3 planetPosition, MoonDefinition moon) { - var angle = ((MathF.PI * 2f) / MathF.Max(1, moonIndex + 3)) * (moonIndex + 1) + (planetIndex * 0.37f); - return Add(planetPosition, new Vector3(MathF.Cos(angle) * orbitRadius, 0f, MathF.Sin(angle) * orbitRadius)); + var angle = DegreesToRadians(moon.OrbitPhaseAtEpoch); + var local = new Vector3(MathF.Cos(angle) * moon.OrbitRadius, 0f, MathF.Sin(angle) * moon.OrbitRadius); + return Add(planetPosition, local); } private static ShipSpatialStateRuntime CreateInitialShipSpatialState(string systemId, Vector3 position, IReadOnlyCollection celestials) diff --git a/apps/backend/Simulation/ScenarioLoader.cs b/apps/backend/Simulation/ScenarioLoader.cs index ab3b86f..863fee8 100644 --- a/apps/backend/Simulation/ScenarioLoader.cs +++ b/apps/backend/Simulation/ScenarioLoader.cs @@ -12,7 +12,6 @@ public sealed partial class ScenarioLoader private const float MinimumRefineryStock = 0f; private const float MinimumShipyardStock = 0f; private const float MinimumSystemSeparation = 3.2f; - private const float StarBubbleRadiusPadding = 40f; private const float LocalSpaceRadius = 10_000f; private static readonly string[] GeneratedSystemNames = [ @@ -51,13 +50,13 @@ public sealed partial class ScenarioLoader ]; private static readonly StarProfile[] StarProfiles = [ - new("main-sequence", "#ffd27a", "#ffb14a", 696340f, 1), - new("blue-white", "#9dc6ff", "#66a0ff", 930000f, 1), - new("white-dwarf", "#f1f5ff", "#b8caff", 12000f, 1), - new("brown-dwarf", "#b97d56", "#8a5438", 70000f, 1), - new("neutron-star", "#d9ebff", "#7ab4ff", 18f, 1), - new("binary-main-sequence", "#ffe09f", "#ffbe6b", 780000f, 2), - new("binary-white-dwarf", "#edf3ff", "#c8d6ff", 14000f, 2), + new("main-sequence", "#ffd27a", "#ffb14a", 696340f), + new("blue-white", "#9dc6ff", "#66a0ff", 930000f), + new("white-dwarf", "#f1f5ff", "#b8caff", 12000f), + new("brown-dwarf", "#b97d56", "#8a5438", 70000f), + new("neutron-star", "#d9ebff", "#7ab4ff", 18f), + new("binary-main-sequence", "#ffe09f", "#ffbe6b", 780000f), + new("binary-white-dwarf", "#edf3ff", "#c8d6ff", 14000f), ]; private static readonly PlanetProfile[] PlanetProfiles = [ @@ -88,16 +87,16 @@ public sealed partial class ScenarioLoader { var authoredSystems = Read>("systems.json"); var systems = ExpandSystems( - InjectSpecialSystems(authoredSystems, _worldGeneration.IncludeSolSystem), + InjectSpecialSystems(authoredSystems), _worldGeneration.TargetSystemCount); var scenario = NormalizeScenarioToAvailableSystems( Read("scenario.json"), systems.Select((system) => system.Id).ToList()); - var modules = Read>("modules.json"); + var modules = NormalizeModules(Read>("modules.json")); var ships = Read>("ships.json"); - var items = Read>("items.json"); + var items = NormalizeItems(Read>("items.json")); var balance = Read("balance.json"); - var recipes = BuildRecipes(items, ships); + var recipes = BuildRecipes(items, ships, modules); var moduleRecipes = BuildModuleRecipes(modules); var moduleDefinitions = modules.ToDictionary((definition) => definition.Id, StringComparer.Ordinal); @@ -177,7 +176,7 @@ public sealed partial class ScenarioLoader var startingModules = plan.StartingModules.Count > 0 ? plan.StartingModules - : ["dock-bay-small", "power-core", "bulk-bay", "liquid-tank"]; + : ["module_arg_dock_m_01_lowtech", "module_gen_prod_energycells_01", "module_arg_stor_solid_m_01", "module_arg_stor_liquid_m_01"]; foreach (var moduleId in startingModules) { AddStationModule(stations[^1], moduleDefinitions, moduleId); @@ -187,7 +186,7 @@ public sealed partial class ScenarioLoader foreach (var station in stations) { InitializeStationPopulation(station); - station.Inventory["refined-metals"] = 120f; + station.Inventory["refinedmetals"] = 120f; if (station.Population > 0f) { station.Inventory["water"] = MathF.Max(80f, station.Population * 1.5f); @@ -195,9 +194,9 @@ public sealed partial class ScenarioLoader } var refinery = stations.FirstOrDefault((station) => - HasInstalledModules(station, "power-core", "liquid-tank") && + HasInstalledModules(station, "module_gen_prod_energycells_01", "module_arg_stor_liquid_m_01") && station.SystemId == scenario.MiningDefaults.RefinerySystemId) - ?? stations.FirstOrDefault((station) => HasInstalledModules(station, "power-core", "liquid-tank")); + ?? stations.FirstOrDefault((station) => HasInstalledModules(station, "module_gen_prod_energycells_01", "module_arg_stor_liquid_m_01")); var patrolRoutes = scenario.PatrolRoutes .GroupBy((route) => route.SystemId, StringComparer.Ordinal) @@ -400,12 +399,12 @@ public sealed partial class ScenarioLoader private static List BuildModuleRecipes(IEnumerable modules) => modules - .Where((module) => module.Construction is not null) + .Where((module) => module.Construction is not null || module.Production.Count > 0) .Select((module) => new ModuleRecipeDefinition { ModuleId = module.Id, - Duration = module.Construction!.ProductionTime, - Inputs = module.Construction.Requirements + Duration = module.Construction?.ProductionTime ?? module.Production[0].Time, + Inputs = (module.Construction?.Requirements ?? module.Production[0].Wares) .Select((input) => new RecipeInputDefinition { ItemId = input.ItemId, @@ -415,12 +414,54 @@ public sealed partial class ScenarioLoader }) .ToList(); - private static List BuildRecipes(IEnumerable items, IEnumerable ships) + private static List BuildRecipes(IEnumerable items, IEnumerable ships, IReadOnlyCollection modules) { var recipes = new List(); + var preferredProducerByItemId = modules + .Where((module) => module.Products.Count > 0) + .GroupBy((module) => module.Products[0], StringComparer.Ordinal) + .ToDictionary( + (group) => group.Key, + (group) => group.OrderBy((module) => module.Id, StringComparer.Ordinal).First().Id, + StringComparer.Ordinal); foreach (var item in items) { + if (item.Production.Count > 0) + { + foreach (var production in item.Production) + { + recipes.Add(new RecipeDefinition + { + Id = $"{item.Id}-{production.Method}-production", + Label = production.Name == "Universal" + ? item.Name + : $"{item.Name} ({production.Name})", + FacilityCategory = InferFacilityCategory(item), + Duration = production.Time, + Priority = InferRecipePriority(item), + RequiredModules = InferRequiredModules(item, preferredProducerByItemId), + Inputs = production.Wares + .Select((input) => new RecipeInputDefinition + { + ItemId = input.ItemId, + Amount = input.Amount, + }) + .ToList(), + Outputs = + [ + new RecipeOutputDefinition + { + ItemId = item.Id, + Amount = production.Amount, + }, + ], + }); + } + + continue; + } + if (item.Construction is null) { continue; @@ -481,6 +522,74 @@ public sealed partial class ScenarioLoader return recipes; } + private static string InferFacilityCategory(ItemDefinition item) => + item.Group switch + { + "agricultural" or "food" or "pharmaceutical" or "water" => "farm", + _ => "station", + }; + + private static List InferRequiredModules(ItemDefinition item, IReadOnlyDictionary preferredProducerByItemId) + { + if (preferredProducerByItemId.TryGetValue(item.Id, out var moduleId)) + { + return [moduleId]; + } + return []; + } + + private static int InferRecipePriority(ItemDefinition item) => + item.Group switch + { + "energy" => 140, + "water" => 130, + "food" => 120, + "agricultural" => 110, + "refined" => 100, + "hightech" => 90, + "shiptech" => 80, + "pharmaceutical" => 70, + _ => 60, + }; + + private static List NormalizeItems(List items) + { + foreach (var item in items) + { + if (string.IsNullOrWhiteSpace(item.Type)) + { + item.Type = string.IsNullOrWhiteSpace(item.Group) ? "material" : item.Group; + } + } + + return items; + } + + private static List NormalizeModules(List modules) + { + foreach (var module in modules) + { + if (module.Products.Count == 0 && !string.IsNullOrWhiteSpace(module.Product)) + { + module.Products = [module.Product]; + } + + if (string.IsNullOrWhiteSpace(module.ProductionMode)) + { + module.ProductionMode = string.Equals(module.Type, "buildmodule", StringComparison.Ordinal) + ? "commanded" + : "passive"; + } + + if (module.WorkforceNeeded <= 0f) + { + module.WorkforceNeeded = module.WorkForce?.Max ?? 0f; + } + } + + return modules; + } + private static Vector3 Scale(Vector3 vector, float scale) => new(vector.X * scale, vector.Y * scale, vector.Z * scale); private static float DegreesToRadians(float degrees) => degrees * (MathF.PI / 180f); diff --git a/apps/backend/Simulation/SimulationEngine.CommanderSystem.cs b/apps/backend/Simulation/SimulationEngine.CommanderSystem.cs index 2f87318..6f4b607 100644 --- a/apps/backend/Simulation/SimulationEngine.CommanderSystem.cs +++ b/apps/backend/Simulation/SimulationEngine.CommanderSystem.cs @@ -141,9 +141,9 @@ public sealed partial class SimulationEngine string.Equals(s.Definition.Kind, "construction", StringComparison.Ordinal)), ControlledSystemCount = GetFactionControlledSystemsCount(world, factionId), TargetSystemCount = Math.Max(1, Math.Min(StrategicControlTargetSystems, world.Systems.Count)), - HasShipFactory = stations.Any(s => s.InstalledModules.Contains("ship-factory", StringComparer.Ordinal)), + HasShipFactory = stations.Any(s => s.InstalledModules.Contains("module_gen_build_l_01", StringComparer.Ordinal)), OreStockpile = stations.Sum(s => GetInventoryAmount(s.Inventory, "ore")), - RefinedMetalsStockpile = stations.Sum(s => GetInventoryAmount(s.Inventory, "refined-metals")), + RefinedMetalsStockpile = stations.Sum(s => GetInventoryAmount(s.Inventory, "refinedmetals")), }; } diff --git a/apps/backend/Simulation/SimulationEngine.OrbitalSystem.cs b/apps/backend/Simulation/SimulationEngine.OrbitalSystem.cs index 5e2f2eb..a7eb829 100644 --- a/apps/backend/Simulation/SimulationEngine.OrbitalSystem.cs +++ b/apps/backend/Simulation/SimulationEngine.OrbitalSystem.cs @@ -24,37 +24,18 @@ public sealed partial class SimulationEngine return local; } - private static Vector3 ComputeMoonOffset(PlanetDefinition planet, int moonIndex, float timeSeconds) + private static Vector3 ComputeMoonOffset(MoonDefinition moon, float timeSeconds) { - var orbitRadius = ComputeMoonOrbitRadius(planet, moonIndex); - var speed = ComputeMoonOrbitSpeed(planet, moonIndex); - var phase = HashUnit($"{planet.Label}:{moonIndex}:phase") * MathF.PI * 2f; - var inclination = DegreesToRadians((HashUnit($"{planet.Label}:{moonIndex}:inclination") - 0.5f) * 28f); - var ascendingNode = DegreesToRadians(HashUnit($"{planet.Label}:{moonIndex}:node") * 360f); - var angle = phase + (timeSeconds * speed); - + var angle = DegreesToRadians(moon.OrbitPhaseAtEpoch) + (timeSeconds * moon.OrbitSpeed); var local = new Vector3( - MathF.Cos(angle) * orbitRadius, + MathF.Cos(angle) * moon.OrbitRadius, 0f, - MathF.Sin(angle) * orbitRadius); - local = RotateAroundX(local, inclination); - local = RotateAroundY(local, ascendingNode); + MathF.Sin(angle) * moon.OrbitRadius); + local = RotateAroundX(local, DegreesToRadians(moon.OrbitInclination)); + local = RotateAroundY(local, DegreesToRadians(moon.OrbitLongitudeOfAscendingNode)); return local; } - private static float ComputeMoonOrbitRadius(PlanetDefinition planet, int moonIndex) - { - var spacing = planet.Size * 1.4f; - var variance = HashUnit($"{planet.Label}:{moonIndex}:radius") * planet.Size * 0.9f; - return (planet.Size * 1.8f) + (moonIndex * spacing) + variance; - } - - private static float ComputeMoonOrbitSpeed(PlanetDefinition planet, int moonIndex) - { - var radius = ComputeMoonOrbitRadius(planet, moonIndex); - return 0.9f / MathF.Sqrt(MathF.Max(radius, 1f)) + (moonIndex * 0.003f); - } - private static float ComputeResourceNodeOrbitSpeed(ResourceNodeRuntime node) { var baseSpeed = 0.24f; @@ -179,10 +160,24 @@ public sealed partial class SimulationEngine foreach (var system in world.Systems) { - var starNodeId = $"node-{system.Definition.Id}-star"; - if (celestialsById.TryGetValue(starNodeId, out var starNode)) + for (var starIndex = 0; starIndex < system.Definition.Stars.Count; starIndex += 1) { - starNode.Position = Vector3.Zero; + var star = system.Definition.Stars[starIndex]; + var starNodeId = $"node-{system.Definition.Id}-star-{starIndex + 1}"; + if (!celestialsById.TryGetValue(starNodeId, out var starNode)) + { + continue; + } + + if (star.OrbitRadius <= 0f) + { + starNode.Position = Vector3.Zero; + } + else + { + var angle = DegreesToRadians(star.OrbitPhaseAtEpoch) + (worldTimeSeconds * star.OrbitSpeed); + starNode.Position = new Vector3(MathF.Cos(angle) * star.OrbitRadius, 0f, MathF.Sin(angle) * star.OrbitRadius); + } } for (var planetIndex = 0; planetIndex < system.Definition.Planets.Count; planetIndex += 1) @@ -206,7 +201,7 @@ public sealed partial class SimulationEngine } } - for (var moonIndex = 0; moonIndex < planet.MoonCount; moonIndex += 1) + for (var moonIndex = 0; moonIndex < planet.Moons.Count; moonIndex += 1) { var moonId = $"node-{system.Definition.Id}-planet-{planetIndex + 1}-moon-{moonIndex + 1}"; if (!celestialsById.TryGetValue(moonId, out var moonNode)) @@ -214,7 +209,7 @@ public sealed partial class SimulationEngine continue; } - moonNode.Position = Add(planetPosition, ComputeMoonOffset(planet, moonIndex, worldTimeSeconds)); + moonNode.Position = Add(planetPosition, ComputeMoonOffset(planet.Moons[moonIndex], worldTimeSeconds)); } } } diff --git a/apps/backend/Simulation/SimulationEngine.PowerAndInventorySystems.cs b/apps/backend/Simulation/SimulationEngine.PowerAndInventorySystems.cs index c317d79..de23a71 100644 --- a/apps/backend/Simulation/SimulationEngine.PowerAndInventorySystems.cs +++ b/apps/backend/Simulation/SimulationEngine.PowerAndInventorySystems.cs @@ -44,9 +44,9 @@ public sealed partial class SimulationEngine _ => 0f, }; - var bulkBays = CountStationModules(station, "bulk-bay"); - var liquidTanks = CountStationModules(station, "liquid-tank"); - var containerBays = CountStationModules(station, "container-bay"); + var bulkBays = CountStationModules(station, "module_arg_stor_solid_m_01"); + var liquidTanks = CountStationModules(station, "module_arg_stor_liquid_m_01"); + var containerBays = CountStationModules(station, "module_arg_stor_container_m_01"); var moduleCapacity = storageClass switch { @@ -118,8 +118,8 @@ public sealed partial class SimulationEngine private static string? GetStorageRequirement(string storageClass) => storageClass switch { - "solid" => "bulk-bay", - "liquid" => "liquid-tank", + "solid" => "module_arg_stor_solid_m_01", + "liquid" => "module_arg_stor_liquid_m_01", _ => null, }; diff --git a/apps/backend/Simulation/SimulationEngine.Replication.cs b/apps/backend/Simulation/SimulationEngine.Replication.cs index 769b4d9..a266e13 100644 --- a/apps/backend/Simulation/SimulationEngine.Replication.cs +++ b/apps/backend/Simulation/SimulationEngine.Replication.cs @@ -20,15 +20,27 @@ public sealed partial class SimulationEngine system.Definition.Id, system.Definition.Label, ToDto(system.Position), - system.Definition.StarKind, - system.Definition.StarCount, - system.Definition.StarColor, - system.Definition.StarSize, + system.Definition.Stars.Select(star => new StarSnapshot( + star.Kind, + star.Color, + star.Glow, + star.Size, + star.OrbitRadius, + star.OrbitSpeed, + star.OrbitPhaseAtEpoch)).ToList(), system.Definition.Planets.Select(planet => new PlanetSnapshot( planet.Label, planet.PlanetType, planet.Shape, - planet.MoonCount, + planet.Moons.Select(moon => new MoonSnapshot( + moon.Label, + moon.Size, + moon.Color, + moon.OrbitRadius, + moon.OrbitSpeed, + moon.OrbitPhaseAtEpoch, + moon.OrbitInclination, + moon.OrbitLongitudeOfAscendingNode)).ToList(), planet.OrbitRadius, planet.OrbitSpeed, planet.OrbitEccentricity, diff --git a/apps/backend/Simulation/SimulationEngine.ResourceAndInfrastructureSystems.cs b/apps/backend/Simulation/SimulationEngine.ResourceAndInfrastructureSystems.cs index abe91d8..412ce36 100644 --- a/apps/backend/Simulation/SimulationEngine.ResourceAndInfrastructureSystems.cs +++ b/apps/backend/Simulation/SimulationEngine.ResourceAndInfrastructureSystems.cs @@ -110,9 +110,9 @@ public sealed partial class SimulationEngine const float StorageExpansionThreshold = 0.85f; var storageExpansionCandidates = new[] { - ("solid", "bulk-bay"), - ("liquid", "liquid-tank"), - ("container", "container-bay"), + ("solid", "module_arg_stor_solid_m_01"), + ("liquid", "module_arg_stor_liquid_m_01"), + ("container", "module_arg_stor_container_m_01"), }; foreach (var (storageClass, moduleId) in storageExpansionCandidates) @@ -136,25 +136,25 @@ public sealed partial class SimulationEngine var priorities = GetFactionExpansionPressure(world, station.FactionId) > 0f ? new (string ModuleId, int TargetCount)[] { - ("refinery-stack", 1), - ("bulk-bay", 1), - ("container-bay", 1), - ("fabricator-array", 2), - ("component-factory", 1), - ("ship-factory", 1), - ("dock-bay-small", 2), - ("solar-array", 2), + ("module_gen_prod_refinedmetals_01", 1), + ("module_arg_stor_solid_m_01", 1), + ("module_arg_stor_container_m_01", 1), + ("module_gen_prod_hullparts_01", 2), + ("module_gen_prod_advancedelectronics_01", 1), + ("module_gen_build_l_01", 1), + ("module_arg_dock_m_01_lowtech", 2), + ("module_gen_prod_energycells_01", 2), } : new (string ModuleId, int TargetCount)[] { - ("refinery-stack", 1), - ("bulk-bay", 1), - ("container-bay", 1), - ("fabricator-array", 2), - ("component-factory", 1), - ("ship-factory", 1), - ("solar-array", 2), - ("dock-bay-small", 2), + ("module_gen_prod_refinedmetals_01", 1), + ("module_arg_stor_solid_m_01", 1), + ("module_arg_stor_container_m_01", 1), + ("module_gen_prod_hullparts_01", 2), + ("module_gen_prod_advancedelectronics_01", 1), + ("module_gen_build_l_01", 1), + ("module_gen_prod_energycells_01", 2), + ("module_arg_dock_m_01_lowtech", 2), }; foreach (var (moduleId, targetCount) in priorities) @@ -225,7 +225,7 @@ public sealed partial class SimulationEngine } private static int GetDockingPadCount(StationRuntime station) => - CountModules(station.InstalledModules, "dock-bay-small") * 2; + CountModules(station.InstalledModules, "module_arg_dock_m_01_lowtech") * 2; private static int? ReserveDockingPad(StationRuntime station, string shipId) { diff --git a/apps/backend/Simulation/SimulationEngine.StationController.cs b/apps/backend/Simulation/SimulationEngine.StationController.cs index c360490..453ab72 100644 --- a/apps/backend/Simulation/SimulationEngine.StationController.cs +++ b/apps/backend/Simulation/SimulationEngine.StationController.cs @@ -14,22 +14,22 @@ public sealed partial class SimulationEngine var desiredOrders = new List(); var waterReserve = MathF.Max(30f, station.Population * 3f); - var refinedReserve = HasStationModules(station, "fabricator-array") ? 140f : 40f; + var refinedReserve = HasStationModules(station, "module_gen_prod_hullparts_01") ? 140f : 40f; var oreReserve = HasRefineryCapability(station) ? 180f : 0f; - var shipPartsReserve = HasStationModules(station, "fabricator-array") - && !HasStationModules(station, "component-factory", "ship-factory") + var shipPartsReserve = HasStationModules(station, "module_gen_prod_hullparts_01") + && !HasStationModules(station, "module_gen_prod_advancedelectronics_01", "module_gen_build_l_01") && FactionCommanderHasDirective(world, station.FactionId, "produce-military-ships") ? 90f : 0f; AddDemandOrder(desiredOrders, station, "water", waterReserve, valuationBase: 1.1f); AddDemandOrder(desiredOrders, station, "ore", oreReserve, valuationBase: 1.0f); - AddDemandOrder(desiredOrders, station, "refined-metals", refinedReserve, valuationBase: 1.15f); - AddDemandOrder(desiredOrders, station, "ship-parts", shipPartsReserve, valuationBase: 1.3f); + AddDemandOrder(desiredOrders, station, "refinedmetals", refinedReserve, valuationBase: 1.15f); + AddDemandOrder(desiredOrders, station, "hullparts", shipPartsReserve, valuationBase: 1.3f); AddSupplyOrder(desiredOrders, station, "water", waterReserve * 1.5f, reserveFloor: waterReserve, valuationBase: 0.65f); AddSupplyOrder(desiredOrders, station, "ore", oreReserve * 1.4f, reserveFloor: oreReserve, valuationBase: 0.7f); - AddSupplyOrder(desiredOrders, station, "refined-metals", refinedReserve * 1.4f, reserveFloor: refinedReserve, valuationBase: 0.95f); + AddSupplyOrder(desiredOrders, station, "refinedmetals", refinedReserve * 1.4f, reserveFloor: refinedReserve, valuationBase: 0.95f); ReconcileStationMarketOrders(world, station, desiredOrders); } @@ -133,7 +133,7 @@ public sealed partial class SimulationEngine var fleetPressure = FactionCommanderHasDirective(world, station.FactionId, "produce-military-ships") ? 1f : 0f; priority += recipe.Id switch { - "ship-parts-integration" => HasStationModules(station, "component-factory", "ship-factory") + "ship-parts-integration" => HasStationModules(station, "module_gen_prod_advancedelectronics_01", "module_gen_build_l_01") ? -140f * MathF.Max(expansionPressure, fleetPressure) : 280f * MathF.Max(expansionPressure, fleetPressure), "hull-fabrication" => 180f * expansionPressure, @@ -211,7 +211,7 @@ public sealed partial class SimulationEngine } private static bool HasRefineryCapability(StationRuntime station) => - HasStationModules(station, "refinery-stack", "power-core", "bulk-bay"); + HasStationModules(station, "module_gen_prod_refinedmetals_01", "module_gen_prod_energycells_01", "module_arg_stor_solid_m_01"); private static void AddDemandOrder(ICollection desiredOrders, StationRuntime station, string itemId, float targetAmount, float valuationBase) { diff --git a/apps/backend/Simulation/SimulationEngine.StationSystems.cs b/apps/backend/Simulation/SimulationEngine.StationSystems.cs index 9d16688..014eebf 100644 --- a/apps/backend/Simulation/SimulationEngine.StationSystems.cs +++ b/apps/backend/Simulation/SimulationEngine.StationSystems.cs @@ -31,7 +31,7 @@ public sealed partial class SimulationEngine var requiredWater = station.Population * WaterConsumptionPerWorkerPerSecond * deltaSeconds; var consumedWater = RemoveInventory(station.Inventory, "water", requiredWater); var waterSatisfied = requiredWater <= 0.01f || consumedWater + 0.001f >= requiredWater; - var habitatModules = CountModules(station.InstalledModules, "habitat-ring"); + var habitatModules = CountModules(station.InstalledModules, "module_arg_hab_m_01"); station.PopulationCapacity = 40f + (habitatModules * 220f); if (waterSatisfied) diff --git a/apps/backend/Simulation/WorldGenerationOptions.cs b/apps/backend/Simulation/WorldGenerationOptions.cs index 2d79c5b..2da1f4b 100644 --- a/apps/backend/Simulation/WorldGenerationOptions.cs +++ b/apps/backend/Simulation/WorldGenerationOptions.cs @@ -4,5 +4,4 @@ public sealed class WorldGenerationOptions { public int TargetSystemCount { get; init; } = 160; - public bool IncludeSolSystem { get; init; } = true; } diff --git a/apps/viewer/src/ViewerAppController.ts b/apps/viewer/src/ViewerAppController.ts index fe83135..f9204ab 100644 --- a/apps/viewer/src/ViewerAppController.ts +++ b/apps/viewer/src/ViewerAppController.ts @@ -28,19 +28,12 @@ import { SystemLayer } from "./viewerSystemLayer"; import { LocalLayer } from "./viewerLocalLayer"; import type { FactionSnapshot } from "./contracts"; import type { - CelestialVisual, CameraMode, - ClaimVisual, - ConstructionSiteVisual, DragMode, HistoryWindowState, NetworkStats, - NodeVisual, - OrbitLineVisual, PerformanceStats, Selectable, - ShipVisual, - StructureVisual, SystemVisual, WorldState, PovLevel, @@ -51,10 +44,10 @@ export class ViewerAppController { private readonly renderer = new THREE.WebGLRenderer({ antialias: true }); // ── Three independent rendering layers ─────────────────────────────────── - private readonly universeLayer = new UniverseLayer(); - private readonly galaxyLayer = new GalaxyLayer(); - private readonly systemLayer = new SystemLayer(); - private readonly localLayer = new LocalLayer(); + readonly universeLayer = new UniverseLayer(); + readonly galaxyLayer = new GalaxyLayer(); + readonly systemLayer = new SystemLayer(); + readonly localLayer = new LocalLayer(); private readonly clock = new THREE.Clock(); private readonly raycaster = new THREE.Raycaster(); @@ -70,16 +63,6 @@ export class ViewerAppController { private readonly gamePanelEl: HTMLDivElement; - private readonly celestialVisuals = new Map(); - private readonly stationVisuals = new Map(); - private readonly claimVisuals = new Map(); - private readonly constructionSiteVisuals = new Map(); - private readonly shipVisuals = new Map(); - private readonly systemVisuals = new Map(); - private readonly nodeVisuals = new Map(); - private readonly planetVisuals: any[] = []; - private readonly orbitLines: OrbitLineVisual[] = []; - private readonly statusEl: HTMLDivElement; private readonly gameSummaryEl: HTMLSpanElement; private readonly systemPanelEl: HTMLDivElement; @@ -98,6 +81,7 @@ export class ViewerAppController { private readonly historyLayerEl: HTMLDivElement; private readonly marqueeEl: HTMLDivElement; private readonly hoverLabelEl: HTMLDivElement; + private readonly hoverConnectorLineEl: SVGLineElement; private world?: WorldState; private worldTimeSyncMs = performance.now(); @@ -165,6 +149,7 @@ export class ViewerAppController { this.historyLayerEl = hud.historyLayerEl; this.marqueeEl = hud.marqueeEl; this.hoverLabelEl = hud.hoverLabelEl; + this.hoverConnectorLineEl = hud.hoverConnectorLineEl; ({ sceneDataController: this.sceneDataController, navigationController: this.navigationController, @@ -231,13 +216,10 @@ export class ViewerAppController { renderFrame({ clock: this.clock, renderer: this.renderer, - universeScene: this.universeLayer.scene, - galaxyScene: this.galaxyLayer.scene, - galaxyCamera: this.galaxyLayer.camera, - systemScene: this.systemLayer.scene, - systemCamera: this.systemLayer.camera, - localScene: this.localLayer.scene, - localCamera: this.localLayer.camera, + universeLayer: this.universeLayer, + galaxyLayer: this.galaxyLayer, + systemLayer: this.systemLayer, + localLayer: this.localLayer, getPovLevel: () => this.povLevel, updateCamera: (delta) => this.updateCamera(delta), updateAmbience: (delta) => this.presentationController.updateAmbience(delta), @@ -294,7 +276,7 @@ export class ViewerAppController { // Update star dot scales in galaxy scene updateSystemStarPresentation( - this.systemVisuals, + this.galaxyLayer.systemVisuals, this.activeSystemId, this.galaxyLayer.camera, (sprite, opacity) => this.setShellReticleOpacity(sprite, opacity), @@ -343,9 +325,9 @@ export class ViewerAppController { private onResize = () => { resizeViewer({ renderer: this.renderer, - galaxyCamera: this.galaxyLayer.camera, - systemCamera: this.systemLayer.camera, - localCamera: this.localLayer.camera, + galaxyLayer: this.galaxyLayer, + systemLayer: this.systemLayer, + localLayer: this.localLayer, }); }; @@ -354,7 +336,7 @@ export class ViewerAppController { } private describeSelectionParent(selection: Selectable) { - return describeSelectionParent(this.world, selection, this.stationVisuals, this.nodeVisuals); + return describeSelectionParent(this.world, selection, this.systemLayer.stationVisuals, this.systemLayer.nodeVisuals); } private toDisplayLocalPosition(localPosition: THREE.Vector3, systemId?: string) { diff --git a/apps/viewer/src/contracts.ts b/apps/viewer/src/contracts.ts index 36d8a2d..743668a 100644 --- a/apps/viewer/src/contracts.ts +++ b/apps/viewer/src/contracts.ts @@ -7,6 +7,8 @@ export type { OrbitalSimulationSnapshot, } from "./contractsWorld"; export type { + StarSnapshot, + MoonSnapshot, SystemSnapshot, PlanetSnapshot, ResourceNodeSnapshot, diff --git a/apps/viewer/src/contractsCelestial.ts b/apps/viewer/src/contractsCelestial.ts index 7346322..3101c22 100644 --- a/apps/viewer/src/contractsCelestial.ts +++ b/apps/viewer/src/contractsCelestial.ts @@ -1,13 +1,31 @@ import type { Vector3Dto } from "./contractsCommon"; +export interface StarSnapshot { + kind: string; + color: string; + glow: string; + size: number; + orbitRadius: number; + orbitSpeed: number; + orbitPhaseAtEpoch: number; +} + +export interface MoonSnapshot { + label: string; + size: number; + color: string; + orbitRadius: number; + orbitSpeed: number; + orbitPhaseAtEpoch: number; + orbitInclination: number; + orbitLongitudeOfAscendingNode: number; +} + export interface SystemSnapshot { id: string; label: string; galaxyPosition: Vector3Dto; - starKind: string; - starCount: number; - starColor: string; - starSize: number; + stars: StarSnapshot[]; planets: PlanetSnapshot[]; } @@ -15,7 +33,7 @@ export interface PlanetSnapshot { label: string; planetType: string; shape: string; - moonCount: number; + moons: MoonSnapshot[]; orbitRadius: number; orbitSpeed: number; orbitEccentricity: number; diff --git a/apps/viewer/src/style.css b/apps/viewer/src/style.css index 95d32be..494f5b3 100644 --- a/apps/viewer/src/style.css +++ b/apps/viewer/src/style.css @@ -65,6 +65,25 @@ canvas { box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04); } +.hover-connector-svg { + position: absolute; + inset: 0; + width: 100%; + height: 100%; + pointer-events: none; + overflow: visible; +} + +.hover-connector-line { + stroke: rgba(255, 88, 72, 0.45); + stroke-width: 1.5; + stroke-dasharray: 4 3; +} + +.hover-connector-line[hidden] { + display: none; +} + .hover-label { position: absolute; padding: 8px 10px; diff --git a/apps/viewer/src/viewerCamera.ts b/apps/viewer/src/viewerCamera.ts index fc4e380..866c4c8 100644 --- a/apps/viewer/src/viewerCamera.ts +++ b/apps/viewer/src/viewerCamera.ts @@ -215,6 +215,12 @@ export function resolveSelectionPosition(params: ResolveSelectionPositionParams) return computePlanetLocalPosition(planet, currentWorldTimeSeconds(world, worldTimeSyncMs)); } + if (selection.kind === "moon") { + const system = world.systems.get(selection.systemId); + const planet = system?.planets[selection.planetIndex]; + return planet ? computePlanetLocalPosition(planet, currentWorldTimeSeconds(world, worldTimeSyncMs)) : undefined; + } + const system = world.systems.get(selection.id); return system ? scaleGalaxyVector(toThreeVector(system.galaxyPosition)) : undefined; } diff --git a/apps/viewer/src/viewerConstants.ts b/apps/viewer/src/viewerConstants.ts index c012999..199fa07 100644 --- a/apps/viewer/src/viewerConstants.ts +++ b/apps/viewer/src/viewerConstants.ts @@ -6,6 +6,10 @@ export const NAV_DISTANCE: Record = { galaxy: 32000, }; +// Close-orbit distance when double-clicking a planet (display units). +// 0.005 units = ~333 km from planet center in system space. +export const NAV_DISTANCE_PLANET_ORBIT = 0.005; + export const ACTIVE_SYSTEM_DETAIL_SCALE = 10; export const GALAXY_PARALLAX_FACTOR = 0.025; export const ACTIVE_SYSTEM_CAPTURE_RADIUS = 9000; @@ -13,7 +17,8 @@ export const PROJECTED_GALAXY_RADIUS = 65000; export const STAR_RENDER_SCALE = 0.18; export const PLANET_RENDER_SCALE = 0.95; export const MOON_RENDER_SCALE = 1.1; -export const MIN_CAMERA_DISTANCE = 2; +// 0.002 units = ~133 km — allows scrolling into low orbit around planets. +export const MIN_CAMERA_DISTANCE = 0.002; export const MAX_CAMERA_DISTANCE = 150000; export interface ZoomBlend { diff --git a/apps/viewer/src/viewerControllerFactory.ts b/apps/viewer/src/viewerControllerFactory.ts index 6d2c0a8..f9c4cdb 100644 --- a/apps/viewer/src/viewerControllerFactory.ts +++ b/apps/viewer/src/viewerControllerFactory.ts @@ -25,15 +25,14 @@ export function createViewerControllers(host: any) { shipGroup: host.systemLayer.shipGroup, galaxySelectableTargets: host.galaxyLayer.selectableTargets, systemSelectableTargets: host.systemLayer.selectableTargets, - systemVisuals: host.systemVisuals, - planetVisuals: host.planetVisuals, - orbitLines: host.orbitLines, - celestialVisuals: host.celestialVisuals, - nodeVisuals: host.nodeVisuals, - stationVisuals: host.stationVisuals, - claimVisuals: host.claimVisuals, - constructionSiteVisuals: host.constructionSiteVisuals, - shipVisuals: host.shipVisuals, + systemVisuals: host.galaxyLayer.systemVisuals, + planetVisuals: host.systemLayer.planetVisuals, + celestialVisuals: host.systemLayer.celestialVisuals, + nodeVisuals: host.systemLayer.nodeVisuals, + stationVisuals: host.systemLayer.stationVisuals, + claimVisuals: host.systemLayer.claimVisuals, + constructionSiteVisuals: host.systemLayer.constructionSiteVisuals, + shipVisuals: host.systemLayer.shipVisuals, }); const navigationController = new ViewerNavigationController({ @@ -62,10 +61,10 @@ export function createViewerControllers(host: any) { systemAnchor: host.systemAnchor, galaxyCamera: host.galaxyLayer.camera, systemCamera: host.systemLayer.camera, - shipVisuals: host.shipVisuals, - nodeVisuals: host.nodeVisuals, - planetVisuals: host.planetVisuals, - systemVisuals: host.systemVisuals, + shipVisuals: host.systemLayer.shipVisuals, + nodeVisuals: host.systemLayer.nodeVisuals, + planetVisuals: host.systemLayer.planetVisuals, + systemVisuals: host.galaxyLayer.systemVisuals, followCameraPosition: host.followCameraPosition, followCameraFocus: host.followCameraFocus, followCameraDirection: host.followCameraDirection, @@ -103,9 +102,8 @@ export function createViewerControllers(host: any) { getSelectedItems: () => host.selectedItems, getWorldTimeSyncMs: () => host.worldTimeSyncMs, getCurrentDistance: () => host.currentDistance, - planetVisuals: host.planetVisuals, - orbitLines: host.orbitLines, - systemVisuals: host.systemVisuals, + planetVisuals: host.systemLayer.planetVisuals, + systemVisuals: host.galaxyLayer.systemVisuals, createWorldPresentationContext: () => host.createWorldPresentationContext(), }); @@ -198,6 +196,7 @@ export function createViewerControllers(host: any) { galaxySelectableTargets: host.galaxyLayer.selectableTargets, systemSelectableTargets: host.systemLayer.selectableTargets, hoverLabelEl: host.hoverLabelEl, + hoverConnectorLineEl: host.hoverConnectorLineEl, marqueeEl: host.marqueeEl, keyState: host.keyState, getWorld: () => host.world, diff --git a/apps/viewer/src/viewerGalaxyLayer.ts b/apps/viewer/src/viewerGalaxyLayer.ts index 5a5d64a..d6cd8a0 100644 --- a/apps/viewer/src/viewerGalaxyLayer.ts +++ b/apps/viewer/src/viewerGalaxyLayer.ts @@ -1,5 +1,5 @@ import * as THREE from "three"; -import type { Selectable } from "./viewerTypes"; +import type { Selectable, SystemVisual } from "./viewerTypes"; /** * Galaxy rendering layer — the galaxy map. @@ -15,6 +15,7 @@ export class GalaxyLayer { readonly systemGroup = new THREE.Group(); readonly selectableTargets = new Map(); + readonly systemVisuals = new Map(); constructor() { this.scene.fog = new THREE.FogExp2(0x040912, 0.000035); @@ -34,4 +35,8 @@ export class GalaxyLayer { this.camera.aspect = aspect; this.camera.updateProjectionMatrix(); } + + render(renderer: THREE.WebGLRenderer) { + renderer.render(this.scene, this.camera); + } } diff --git a/apps/viewer/src/viewerHud.ts b/apps/viewer/src/viewerHud.ts index cc70427..4165350 100644 --- a/apps/viewer/src/viewerHud.ts +++ b/apps/viewer/src/viewerHud.ts @@ -19,6 +19,7 @@ export interface ViewerHudElements { historyLayerEl: HTMLDivElement; marqueeEl: HTMLDivElement; hoverLabelEl: HTMLDivElement; + hoverConnectorLineEl: SVGLineElement; } export function createViewerHud(documentRef: Document): ViewerHudElements { @@ -73,6 +74,9 @@ export function createViewerHud(documentRef: Document): ViewerHudElements {
+ `; @@ -97,5 +101,6 @@ export function createViewerHud(documentRef: Document): ViewerHudElements { historyLayerEl: root.querySelector(".history-layer") as HTMLDivElement, marqueeEl: root.querySelector(".marquee-box") as HTMLDivElement, hoverLabelEl: root.querySelector(".hover-label") as HTMLDivElement, + hoverConnectorLineEl: root.querySelector(".hover-connector-line") as unknown as SVGLineElement, }; } diff --git a/apps/viewer/src/viewerInteraction.ts b/apps/viewer/src/viewerInteraction.ts index c9a1f28..c0090a6 100644 --- a/apps/viewer/src/viewerInteraction.ts +++ b/apps/viewer/src/viewerInteraction.ts @@ -68,6 +68,7 @@ export function pickSelectableHitAtClientPosition( export function updateHoverLabel(params: { dragMode?: string; hoverLabelEl: HTMLDivElement; + hoverConnectorLineEl: SVGLineElement; hoverPick: HoverPickResult | undefined; activeSystemId?: string; povLevel: PovLevel; @@ -77,6 +78,7 @@ export function updateHoverLabel(params: { const { dragMode, hoverLabelEl, + hoverConnectorLineEl, hoverPick, activeSystemId, povLevel, @@ -84,13 +86,9 @@ export function updateHoverLabel(params: { point, } = params; - if (dragMode) { - hoverLabelEl.hidden = true; - return; - } - - if (!hoverPick) { + if (dragMode || !hoverPick) { hoverLabelEl.hidden = true; + hoverConnectorLineEl.setAttribute("hidden", ""); return; } @@ -98,6 +96,7 @@ export function updateHoverLabel(params: { const label = describeHoverLabel(world, selection); if (!label) { hoverLabelEl.hidden = true; + hoverConnectorLineEl.setAttribute("hidden", ""); return; } @@ -105,8 +104,16 @@ export function updateHoverLabel(params: { hoverLabelEl.hidden = false; hoverLabelEl.textContent = `${label}\n${distance}`; - hoverLabelEl.style.left = `${point.x + 14}px`; - hoverLabelEl.style.top = `${point.y + 14}px`; + hoverLabelEl.style.left = `${point.x + 44}px`; + hoverLabelEl.style.top = `${point.y - 90}px`; + + const rect = hoverLabelEl.getBoundingClientRect(); + const svgRect = (hoverConnectorLineEl.ownerSVGElement as SVGSVGElement).getBoundingClientRect(); + hoverConnectorLineEl.removeAttribute("hidden"); + hoverConnectorLineEl.setAttribute("x1", String(point.x)); + hoverConnectorLineEl.setAttribute("y1", String(point.y)); + hoverConnectorLineEl.setAttribute("x2", String(rect.left - svgRect.left)); + hoverConnectorLineEl.setAttribute("y2", String(rect.top - svgRect.top + rect.height / 2)); } function formatHoverDistance( diff --git a/apps/viewer/src/viewerInteractionController.ts b/apps/viewer/src/viewerInteractionController.ts index b6e18de..ce55655 100644 --- a/apps/viewer/src/viewerInteractionController.ts +++ b/apps/viewer/src/viewerInteractionController.ts @@ -12,6 +12,7 @@ import { toggleCameraMode, navigateFromWheel, } from "./viewerControls"; +import { NAV_DISTANCE, NAV_DISTANCE_PLANET_ORBIT } from "./viewerConstants"; import { ViewerHistoryWindowController } from "./viewerHistoryWindowController"; import type { CameraMode, @@ -30,6 +31,7 @@ export interface ViewerInteractionContext { galaxySelectableTargets: Map; systemSelectableTargets: Map; hoverLabelEl: HTMLDivElement; + hoverConnectorLineEl: SVGLineElement; marqueeEl: HTMLDivElement; keyState: Set; getWorld: () => WorldState | undefined; @@ -231,8 +233,12 @@ export class ViewerInteractionController { return; } - this.context.focusOnSelection(selectedItems[0]); + const selection = selectedItems[0]; + this.context.focusOnSelection(selection); this.context.syncFollowStateFromSelection(); + if (selection.kind === "planet") { + this.context.setDesiredDistance(NAV_DISTANCE_PLANET_ORBIT); + } }; readonly onWheel = (event: WheelEvent) => { @@ -269,6 +275,7 @@ export class ViewerInteractionController { updateHoverLabel({ dragMode: this.context.getDragMode(), hoverLabelEl: this.context.hoverLabelEl, + hoverConnectorLineEl: this.context.hoverConnectorLineEl, hoverPick: this.pickSelectableHitAtClientPosition(event.clientX, event.clientY), activeSystemId: this.context.getActiveSystemId(), povLevel: this.context.getPovLevel(), diff --git a/apps/viewer/src/viewerLocalLayer.ts b/apps/viewer/src/viewerLocalLayer.ts index 2b49ed7..1ce3e10 100644 --- a/apps/viewer/src/viewerLocalLayer.ts +++ b/apps/viewer/src/viewerLocalLayer.ts @@ -21,4 +21,8 @@ export class LocalLayer { this.camera.aspect = aspect; this.camera.updateProjectionMatrix(); } + + render(renderer: THREE.WebGLRenderer) { + renderer.render(this.scene, this.camera); + } } diff --git a/apps/viewer/src/viewerMath.ts b/apps/viewer/src/viewerMath.ts index d6aa90c..a60a8b0 100644 --- a/apps/viewer/src/viewerMath.ts +++ b/apps/viewer/src/viewerMath.ts @@ -3,6 +3,7 @@ import { MOON_RENDER_SCALE } from "./viewerConstants"; import type { ShipSnapshot, PlanetSnapshot, + MoonSnapshot, Vector3Dto, WorldSnapshot, } from "./contracts"; @@ -176,7 +177,7 @@ export function computePlanetLocalPosition(planet: PlanetSnapshot, timeSeconds: const eccentricAnomaly = meanAnomaly + (eccentricity * Math.sin(meanAnomaly)) + (0.5 * eccentricity * eccentricity * Math.sin(2 * meanAnomaly)); - const semiMajorAxis = planet.orbitRadius; + const semiMajorAxis = planet.orbitRadius * KILOMETERS_PER_AU; const semiMinorAxis = semiMajorAxis * Math.sqrt(Math.max(1 - (eccentricity * eccentricity), 0.05)); const local = new THREE.Vector3( semiMajorAxis * (Math.cos(eccentricAnomaly) - eccentricity), @@ -190,47 +191,24 @@ export function computePlanetLocalPosition(planet: PlanetSnapshot, timeSeconds: return local; } -export function computeMoonOrbitRadius(planet: PlanetSnapshot, moonIndex: number, seed: number): number { - const spacing = planet.size * 1.4; - const variance = hashUnit(seed, `${planet.label}:${moonIndex}:radius`) * planet.size * 0.9; - return (planet.size * 1.8) + (moonIndex * spacing) + variance; -} - -export function computeMoonOrbitSpeed(planet: PlanetSnapshot, moonIndex: number, seed: number): number { - const radius = computeMoonOrbitRadius(planet, moonIndex, seed); - return 0.9 / Math.sqrt(Math.max(radius, 1)) + (moonIndex * 0.003); -} - -export function computeMoonLocalPosition(planet: PlanetSnapshot, moonIndex: number, timeSeconds: number, seed: number): THREE.Vector3 { - const orbitRadius = computeMoonOrbitRadius(planet, moonIndex, seed); - const speed = computeMoonOrbitSpeed(planet, moonIndex, seed); - const phase = hashUnit(seed, `${planet.label}:${moonIndex}:phase`) * Math.PI * 2; - const inclination = THREE.MathUtils.degToRad((hashUnit(seed, `${planet.label}:${moonIndex}:inclination`) - 0.5) * 28); - const node = THREE.MathUtils.degToRad(hashUnit(seed, `${planet.label}:${moonIndex}:node`) * 360); - const angle = phase + (timeSeconds * speed); - +export function computeMoonLocalPosition(moon: MoonSnapshot, timeSeconds: number): THREE.Vector3 { + const angle = THREE.MathUtils.degToRad(moon.orbitPhaseAtEpoch) + (timeSeconds * moon.orbitSpeed); const local = new THREE.Vector3( - Math.cos(angle) * orbitRadius, + Math.cos(angle) * moon.orbitRadius, 0, - Math.sin(angle) * orbitRadius, + Math.sin(angle) * moon.orbitRadius, ); - local.applyAxisAngle(new THREE.Vector3(1, 0, 0), inclination); - local.applyAxisAngle(new THREE.Vector3(0, 1, 0), node); + local.applyAxisAngle(new THREE.Vector3(1, 0, 0), THREE.MathUtils.degToRad(moon.orbitInclination)); + local.applyAxisAngle(new THREE.Vector3(0, 1, 0), THREE.MathUtils.degToRad(moon.orbitLongitudeOfAscendingNode)); return local; } -export function computeMoonSize(planet: PlanetSnapshot, moonIndex: number, seed: number): number { - const base = Math.max(2.2, planet.size * 0.11); - const variance = hashUnit(seed, `${planet.label}:${moonIndex}:size`) * Math.max(planet.size * 0.16, 2.5); - return Math.min(base + variance, planet.size * 0.42); -} - export function celestialRenderRadius(size: number, scale: number, minRadius: number, exponent = 1): number { return Math.max(minRadius, Math.pow(Math.max(size, 0.1), exponent) * scale); } -export function computeMoonRenderRadius(planet: PlanetSnapshot, moonIndex: number, seed: number): number { - return celestialRenderRadius(computeMoonSize(planet, moonIndex, seed), 0.00011, 0.025, 0.62); +export function computeMoonRenderRadius(moon: MoonSnapshot): number { + return celestialRenderRadius(moon.size, 0.00011, 0.025, 0.62); } export function starHaloOpacity(starKind: string): number { @@ -251,7 +229,6 @@ export function resolveOrbitalAnchorPosition( systemId: string, anchor: OrbitalAnchor, timeSeconds: number, - seed: number, ): THREE.Vector3 { if (!world || anchor.kind === "star") { return new THREE.Vector3(); @@ -268,5 +245,6 @@ export function resolveOrbitalAnchorPosition( return planetPosition; } - return planetPosition.add(computeMoonLocalPosition(planet, anchor.moonIndex, timeSeconds, seed)); + const moon = planet.moons[anchor.moonIndex]; + return planetPosition.add(computeMoonLocalPosition(moon, timeSeconds)); } diff --git a/apps/viewer/src/viewerPanels.ts b/apps/viewer/src/viewerPanels.ts index 3f51487..66a48c5 100644 --- a/apps/viewer/src/viewerPanels.ts +++ b/apps/viewer/src/viewerPanels.ts @@ -351,13 +351,27 @@ export function updateDetailPanel( detailBodyEl.innerHTML = `

${system.label}

Parent ${parent}

-

${planet.planetType} · ${planet.shape} · Moons ${planet.moonCount}

+

${planet.planetType} · ${planet.shape} · Moons ${planet.moons.length}

Orbit ${formatSystemDistance(planet.orbitRadius)}
Speed ${planet.orbitSpeed.toFixed(3)}
Ecc ${planet.orbitEccentricity.toFixed(3)}
Inc ${planet.orbitInclination.toFixed(1)}°

Phase ${planet.orbitPhaseAtEpoch.toFixed(1)}°

`; return; } + if (selected.kind === "moon") { + const system = world.systems.get(selected.systemId); + const planet = system?.planets[selected.planetIndex]; + const moon = planet?.moons[selected.moonIndex]; + if (moon) { + detailTitleEl.textContent = moon.label; + detailBodyEl.innerHTML = ` +

${system?.label ?? selected.systemId} / ${planet?.label ?? `planet ${selected.planetIndex + 1}`}

+

Orbit ${formatSystemDistance(moon.orbitRadius)}
Inc ${moon.orbitInclination.toFixed(1)}°

+ `; + } + return; + } + const system = world.systems.get(selected.id); if (!system) { return; diff --git a/apps/viewer/src/viewerPresentation.ts b/apps/viewer/src/viewerPresentation.ts index fc4c058..98ff27f 100644 --- a/apps/viewer/src/viewerPresentation.ts +++ b/apps/viewer/src/viewerPresentation.ts @@ -2,6 +2,14 @@ import * as THREE from "three"; import { ACTIVE_SYSTEM_DETAIL_SCALE, PROJECTED_GALAXY_RADIUS } from "./viewerConstants"; import { computeMoonLocalPosition, computePlanetLocalPosition, currentWorldTimeSeconds, scaleLocalVector } from "./viewerMath"; import type { PlanetVisual, ShipVisual, SystemVisual, WorldState } from "./viewerTypes"; +import { rawObject } from "./viewerScenePrimitives"; + +const MIN_ICON_PIXELS = 25; +const MAX_ICON_PIXELS = 50; + +export function iconWorldScale(distToCamera: number, camera: THREE.PerspectiveCamera, pixels: number): number { + return pixels * distToCamera * 2 * Math.tan((camera.fov * Math.PI / 180) / 2) / window.innerHeight; +} export function getAnimatedShipLocalPosition(visual: ShipVisual, now = performance.now()) { const elapsedMs = now - visual.receivedAtMs; @@ -26,6 +34,7 @@ export function updatePlanetPresentation( world: WorldState | undefined, worldTimeSyncMs: number, planetVisuals: PlanetVisual[], + systemCamera: THREE.PerspectiveCamera, ) { const nowSeconds = currentWorldTimeSeconds(world, worldTimeSyncMs); // In systemScene all positions use scaleLocalVector * ACTIVE_SYSTEM_DETAIL_SCALE. @@ -34,23 +43,44 @@ export function updatePlanetPresentation( const position = scaleLocalVector(computePlanetLocalPosition(visual.planet, nowSeconds)) .multiplyScalar(ACTIVE_SYSTEM_DETAIL_SCALE); - visual.orbit.setScaleScalar(ACTIVE_SYSTEM_DETAIL_SCALE); - visual.orbit.setPosition(new THREE.Vector3(0, 0, 0)); visual.mesh.setPosition(position); visual.icon.setPosition(position); + const iconWorldPos = visual.icon.getWorldPosition(new THREE.Vector3()); + const distToIcon = systemCamera.position.distanceTo(iconWorldPos); + const t = THREE.MathUtils.clamp(distToIcon / 300, 0, 1); + const rawScale = visual.iconBaseScale * t * Math.sqrt(t); + const planetIconScale = THREE.MathUtils.clamp(rawScale, iconWorldScale(distToIcon, systemCamera, MIN_ICON_PIXELS), iconWorldScale(distToIcon, systemCamera, MAX_ICON_PIXELS)); + visual.icon.setScaleScalar(planetIconScale); if (visual.ring) { visual.ring.setPosition(position); } + const distToPlanet = systemCamera.position.distanceTo(position); + const moonOrbitOpacity = THREE.MathUtils.clamp(1 - distToPlanet / 500, 0, 1) * 0.18; + + const clusterVisible = distToPlanet < 300; for (const [moonIndex, moon] of visual.moons.entries()) { - moon.orbit.setPosition(position); - moon.orbit.setScaleScalar(ACTIVE_SYSTEM_DETAIL_SCALE); - moon.mesh.setPosition( - position.clone().add( - scaleLocalVector(computeMoonLocalPosition(visual.planet, moonIndex, nowSeconds, world?.seed ?? 1)) - .multiplyScalar(ACTIVE_SYSTEM_DETAIL_SCALE), - ), + const moonPos = position.clone().add( + scaleLocalVector(computeMoonLocalPosition(visual.planet.moons[moonIndex], nowSeconds)) + .multiplyScalar(ACTIVE_SYSTEM_DETAIL_SCALE), ); + moon.mesh.setPosition(moonPos); + moon.mesh.setVisible(clusterVisible); + moon.icon.setPosition(moonPos); + moon.icon.setVisible(clusterVisible); + if (clusterVisible) { + const iconWorldPos = moon.icon.getWorldPosition(new THREE.Vector3()); + const moonDist = systemCamera.position.distanceTo(iconWorldPos); + const t = THREE.MathUtils.clamp(moonDist / 120, 0, 1); + const rawMoonScale = moon.iconBaseScale * t * Math.sqrt(t); + const moonIconScale = THREE.MathUtils.clamp(rawMoonScale, iconWorldScale(moonDist, systemCamera, MIN_ICON_PIXELS), iconWorldScale(moonDist, systemCamera, MAX_ICON_PIXELS)); + moon.icon.setScaleScalar(moonIconScale); + } + moon.orbit.setPosition(position); + const orbitObj = rawObject(moon.orbit); + if (orbitObj instanceof THREE.LineLoop) { + (orbitObj.material as THREE.LineBasicMaterial).opacity = moonOrbitOpacity; + } } } } diff --git a/apps/viewer/src/viewerPresentationController.ts b/apps/viewer/src/viewerPresentationController.ts index 68311f8..c6b500a 100644 --- a/apps/viewer/src/viewerPresentationController.ts +++ b/apps/viewer/src/viewerPresentationController.ts @@ -9,8 +9,8 @@ import { import { updatePlanetPresentation } from "./viewerPresentation"; import { renderRecentEvents, updateGameStatus, updateSystemSummaries, updateWorldPresentation } from "./viewerWorldPresentation"; import { updateSystemPanel } from "./viewerPanels"; -import { createBackdropStars, createNebulaClouds, createNebulaTexture } from "./viewerSceneFactory"; -import type { OrbitLineVisual, Selectable } from "./viewerTypes"; +import { createBackdropStars, createMilkyWayBand, createNebulaClouds, createNebulaTexture } from "./viewerSceneFactory"; +import type { Selectable } from "./viewerTypes"; export interface ViewerPresentationContext { renderer: THREE.WebGLRenderer; @@ -40,7 +40,6 @@ export interface ViewerPresentationContext { getWorldTimeSyncMs: () => number; getCurrentDistance: () => number; planetVisuals: any[]; - orbitLines: OrbitLineVisual[]; systemVisuals: Map; createWorldPresentationContext: () => any; } @@ -50,30 +49,28 @@ export class ViewerPresentationController { initializeAmbience() { this.context.ambienceGroup.renderOrder = -10; - this.context.ambienceGroup.add(createBackdropStars()); + this.context.ambienceGroup.add(createBackdropStars(document)); this.context.ambienceGroup.add(...createNebulaClouds(createNebulaTexture(document))); + this.context.ambienceGroup.add(createMilkyWayBand(document)); } - updateAmbience(delta: number) { + updateAmbience(_delta: number) { const activeCamera = this.context.getPovLevel() === "galaxy" ? this.context.galaxyCamera : this.context.systemCamera; this.context.ambienceGroup.position.copy(activeCamera.position); - this.context.ambienceGroup.rotation.y += delta * 0.005; - this.context.ambienceGroup.rotation.x = Math.sin(performance.now() * 0.00003) * 0.015; } applyZoomPresentation() { const activeSystemId = this.context.getActiveSystemId(); const povLevel = this.context.getPovLevel(); - // Orbit lines: only show for active system in system/local zoom - for (const orbitLine of this.context.orbitLines) { - const alpha = this.resolveOrbitLineOpacity(orbitLine, povLevel, activeSystemId); - orbitLine.line.setOpacity(alpha); - } - this.context.galaxyScene.fog = new THREE.FogExp2(0x040912, 0.000035); + + const showPlanetIcons = povLevel !== "local"; + for (const visual of this.context.planetVisuals) { + visual.icon.setVisible(showPlanetIcons); + } } updateNetworkPanel() { @@ -100,6 +97,7 @@ export class ViewerPresentationController { world, this.context.getWorldTimeSyncMs(), this.context.planetVisuals, + this.context.systemCamera, ); } @@ -148,21 +146,4 @@ export class ViewerPresentationController { return new THREE.Vector2(clientX - bounds.left, clientY - bounds.top); } - private resolveOrbitLineOpacity(orbitLine: OrbitLineVisual, povLevel: "local" | "system" | "galaxy", activeSystemId?: string) { - if (povLevel === "galaxy" || !activeSystemId || orbitLine.systemId !== activeSystemId) { - return 0; - } - - const selected = this.context.getSelectedItems(); - const selectedItem = selected.length === 1 ? selected[0] : undefined; - const baseAlpha = povLevel === "local" ? 0.55 : 0.9; - - if (selectedItem?.kind === "planet" && selectedItem.systemId === activeSystemId) { - return orbitLine.kind === "moon" && orbitLine.planetIndex === selectedItem.planetIndex - ? baseAlpha - : 0; - } - - return orbitLine.kind === "planet" ? baseAlpha : 0; - } } diff --git a/apps/viewer/src/viewerRenderLoop.ts b/apps/viewer/src/viewerRenderLoop.ts index 5f84823..261d6eb 100644 --- a/apps/viewer/src/viewerRenderLoop.ts +++ b/apps/viewer/src/viewerRenderLoop.ts @@ -1,17 +1,18 @@ import * as THREE from "three"; import { classifyPovLevel } from "./viewerMath"; -import type { PovLevel, PerformanceStats } from "./viewerTypes"; +import type { PovLevel } from "./viewerTypes"; +import type { UniverseLayer } from "./viewerUniverseLayer"; +import type { GalaxyLayer } from "./viewerGalaxyLayer"; +import type { SystemLayer } from "./viewerSystemLayer"; +import type { LocalLayer } from "./viewerLocalLayer"; export interface RenderFrameParams { clock: THREE.Clock; renderer: THREE.WebGLRenderer; - universeScene: THREE.Scene; - galaxyScene: THREE.Scene; - galaxyCamera: THREE.PerspectiveCamera; - systemScene: THREE.Scene; - systemCamera: THREE.PerspectiveCamera; - localScene: THREE.Scene; - localCamera: THREE.PerspectiveCamera; + universeLayer: UniverseLayer; + galaxyLayer: GalaxyLayer; + systemLayer: SystemLayer; + localLayer: LocalLayer; getPovLevel: () => PovLevel; updateCamera: (delta: number) => void; updateAmbience: (delta: number) => void; @@ -25,9 +26,9 @@ export interface RenderFrameParams { export interface ResizeParams { renderer: THREE.WebGLRenderer; - galaxyCamera: THREE.PerspectiveCamera; - systemCamera: THREE.PerspectiveCamera; - localCamera: THREE.PerspectiveCamera; + galaxyLayer: GalaxyLayer; + systemLayer: SystemLayer; + localLayer: LocalLayer; } export interface CameraStepParams { @@ -48,22 +49,22 @@ export function renderFrame(params: RenderFrameParams) { params.applyZoomPresentation(); const povLevel = params.getPovLevel(); - const activeCamera = povLevel === "galaxy" ? params.galaxyCamera : params.systemCamera; + const activeCamera = povLevel === "galaxy" ? params.galaxyLayer.camera : params.systemLayer.camera; params.renderer.autoClear = false; params.renderer.clear(); // Universe backdrop — always first, rendered with the active camera so it aligns with the foreground - params.renderer.render(params.universeScene, activeCamera); + params.universeLayer.render(params.renderer, activeCamera); params.renderer.clearDepth(); if (povLevel === "galaxy") { // Galaxy map on top of universe backdrop - params.renderer.render(params.galaxyScene, params.galaxyCamera); + params.galaxyLayer.render(params.renderer); } else if (povLevel === "system") { - params.renderer.render(params.systemScene, params.systemCamera); + params.systemLayer.render(params.renderer); } else { // local: system as mid-ground backdrop, then local on top - params.renderer.render(params.systemScene, params.systemCamera); + params.systemLayer.render(params.renderer); params.renderer.clearDepth(); - params.renderer.render(params.localScene, params.localCamera); + params.localLayer.render(params.renderer); } params.recordPerformanceStats(performance.now() - frameStartedAtMs); @@ -73,10 +74,9 @@ export function renderFrame(params: RenderFrameParams) { export function resizeViewer(params: ResizeParams) { const width = window.innerWidth; const height = window.innerHeight; - for (const camera of [params.galaxyCamera, params.systemCamera, params.localCamera]) { - camera.aspect = width / height; - camera.updateProjectionMatrix(); - } + params.galaxyLayer.onResize(width / height); + params.systemLayer.onResize(width / height); + params.localLayer.onResize(width / height); params.renderer.setSize(width, height); } diff --git a/apps/viewer/src/viewerSceneDataController.ts b/apps/viewer/src/viewerSceneDataController.ts index 2a4f743..d19fa38 100644 --- a/apps/viewer/src/viewerSceneDataController.ts +++ b/apps/viewer/src/viewerSceneDataController.ts @@ -42,7 +42,7 @@ import type { StationSnapshot, SystemSnapshot, } from "./contracts"; -import type { OrbitLineVisual, OrbitalAnchor, Selectable } from "./viewerTypes"; +import type { OrbitalAnchor, Selectable } from "./viewerTypes"; import { rawObject } from "./viewerScenePrimitives"; export interface ViewerSceneDataContext { @@ -65,7 +65,6 @@ export interface ViewerSceneDataContext { systemSelectableTargets: Map; systemVisuals: Map; planetVisuals: any[]; - orbitLines: OrbitLineVisual[]; celestialVisuals: Map; nodeVisuals: Map; stationVisuals: Map; @@ -251,7 +250,6 @@ export class ViewerSceneDataController { systemSelectableTargets: this.context.systemSelectableTargets, systemVisuals: this.context.systemVisuals, planetVisuals: this.context.planetVisuals, - orbitLines: this.context.orbitLines, celestialVisuals: this.context.celestialVisuals, nodeVisuals: this.context.nodeVisuals, stationVisuals: this.context.stationVisuals, diff --git a/apps/viewer/src/viewerSceneFactory.ts b/apps/viewer/src/viewerSceneFactory.ts index b87eb9a..61dd25d 100644 --- a/apps/viewer/src/viewerSceneFactory.ts +++ b/apps/viewer/src/viewerSceneFactory.ts @@ -1,5 +1,6 @@ import * as THREE from "three"; import { + ACTIVE_SYSTEM_DETAIL_SCALE, MOON_RENDER_SCALE, PLANET_RENDER_SCALE, STAR_RENDER_SCALE, @@ -8,6 +9,7 @@ import type { CelestialSnapshot, ClaimSnapshot, ConstructionSiteSnapshot, + MoonSnapshot, PlanetSnapshot, ResourceNodeSnapshot, ShipSnapshot, @@ -17,10 +19,9 @@ import type { import type { MoonVisual } from "./viewerTypes"; import { celestialRenderRadius, - computeMoonOrbitRadius, + computeMoonLocalPosition, computeMoonRenderRadius, computePlanetLocalPosition, - scaleLocalScalar, scaleLocalVector, starHaloOpacity, toThreeVector, @@ -84,45 +85,34 @@ export function createConstructionSiteMesh(site: ConstructionSiteSnapshot): Scen export function createStarCluster(system: SystemSnapshot): SceneNode { const root = new THREE.Group(); - const renderedStarSize = celestialRenderRadius(system.starSize, 0.00018, 0.16, 0.62); - const offsets = system.starCount > 1 - ? [new THREE.Vector3(-renderedStarSize * 0.55, 0, 0), new THREE.Vector3(renderedStarSize * 0.75, renderedStarSize * 0.08, 0)] - : [new THREE.Vector3(0, 0, 0)]; - - for (const [index, offset] of offsets.entries()) { - const sizeScale = index === 0 ? 1 : 0.72; - const star = new THREE.Mesh( - new THREE.SphereGeometry(renderedStarSize * sizeScale, 24, 24), - new THREE.MeshBasicMaterial({ color: system.starColor }), + for (const [index, star] of system.stars.entries()) { + const renderedSize = celestialRenderRadius(star.size, 0.00018, 40, 0.62); + const offset = system.stars.length > 1 + ? (index === 0 + ? new THREE.Vector3(-renderedSize * 0.55, 0, 0) + : new THREE.Vector3(renderedSize * 0.75, renderedSize * 0.08, 0)) + : new THREE.Vector3(0, 0, 0); + const mesh = new THREE.Mesh( + new THREE.SphereGeometry(renderedSize, 24, 24), + new THREE.MeshBasicMaterial({ color: star.color }), ); const halo = new THREE.Mesh( - new THREE.SphereGeometry(renderedStarSize * sizeScale * 1.45, 20, 20), + new THREE.SphereGeometry(renderedSize * 1.45, 20, 20), new THREE.MeshBasicMaterial({ - color: system.starColor, + color: star.color, transparent: true, - opacity: starHaloOpacity(system.starKind), + opacity: starHaloOpacity(star.kind), side: THREE.BackSide, }), ); - star.position.copy(offset); + mesh.position.copy(offset); halo.position.copy(offset); - root.add(star, halo); + root.add(mesh, halo); } return createSceneNode(root); } -export function createPlanetOrbit(planet: PlanetSnapshot): SceneNode { - const points = Array.from({ length: 120 }, (_, index) => { - const phaseDegrees = (index / 120) * 360; - return scaleLocalVector(computePlanetLocalPosition(planet, 0, phaseDegrees)); - }); - - return createSceneNode(new THREE.LineLoop( - new THREE.BufferGeometry().setFromPoints(points), - new THREE.LineBasicMaterial({ color: 0x17314d, transparent: true, opacity: 0.22 }), - )); -} export function createPlanetRing(planet: PlanetSnapshot): SceneNode { const renderedPlanetRadius = celestialRenderRadius(planet.size, 0.00012, 0.03, 0.62); @@ -140,41 +130,74 @@ export function createPlanetRing(planet: PlanetSnapshot): SceneNode { return createSceneNode(ring); } -export function createMoonVisuals(planet: PlanetSnapshot, seed: number): MoonVisual[] { - const moonCount = Math.min(planet.moonCount, 12); - const moons: MoonVisual[] = []; - - for (let moonIndex = 0; moonIndex < moonCount; moonIndex += 1) { - const orbitRadius = scaleLocalScalar(computeMoonOrbitRadius(planet, moonIndex, seed)); - const orbit = new THREE.LineLoop( - new THREE.BufferGeometry().setFromPoints( - Array.from({ length: 48 }, (_, index) => { - const angle = (index / 48) * Math.PI * 2; - return new THREE.Vector3( - Math.cos(angle) * orbitRadius, - 0, - Math.sin(angle) * orbitRadius, - ); - }), - ), - new THREE.LineBasicMaterial({ color: 0x3b5065, transparent: true, opacity: 0.1 }), +function createMoonOrbit(moon: MoonSnapshot): SceneNode { + const segments = 64; + const period = (2 * Math.PI) / Math.max(Math.abs(moon.orbitSpeed), 1e-6); + const points: THREE.Vector3[] = []; + for (let i = 0; i <= segments; i++) { + points.push( + scaleLocalVector(computeMoonLocalPosition(moon, (i / segments) * period)) + .multiplyScalar(ACTIVE_SYSTEM_DETAIL_SCALE), ); - orbit.rotation.x = THREE.MathUtils.degToRad(planet.orbitInclination * 0.35); + } + return createSceneNode(new THREE.LineLoop( + new THREE.BufferGeometry().setFromPoints(points), + new THREE.LineBasicMaterial({ + color: moon.color, + transparent: true, + opacity: 0, + depthWrite: false, + depthTest: false, + }), + )); +} - const moonSize = computeMoonRenderRadius(planet, moonIndex, seed); +export function createMoonVisuals(planet: PlanetSnapshot, documentRef: Document): MoonVisual[] { + return planet.moons.map((moon, moonIndex) => { + const moonSize = computeMoonRenderRadius(moon); const mesh = new THREE.Mesh( new THREE.SphereGeometry(moonSize, 12, 12), new THREE.MeshStandardMaterial({ - color: new THREE.Color(planet.color).lerp(new THREE.Color("#d9dee7"), 0.55), + color: moon.color, roughness: 0.96, metalness: 0.02, }), ); + const baseColor = new THREE.Color(moon.color); + const hsl = { h: 0, s: 0, l: 0 }; + baseColor.getHSL(hsl); + const iconColor = new THREE.Color().setHSL(hsl.h, Math.max(hsl.s, 0.4), 0.72).getStyle(); + const iconBaseScale = 72; + const icon = createTacticalIcon(documentRef, iconColor, iconBaseScale); + return { + systemId: "", + planetIndex: -1, + moonIndex, + mesh: createSceneNode(mesh), + icon, + iconBaseScale, + orbit: createMoonOrbit(moon), + }; + }); +} - moons.push({ systemId: "", planetIndex: -1, mesh: createSceneNode(mesh), orbit: createSceneNode(orbit) }); +export function createPlanetOrbit(planet: PlanetSnapshot): SceneNode { + const segments = 96; + const points: THREE.Vector3[] = []; + for (let i = 0; i <= segments; i++) { + const phase = (i / segments) * 360; + points.push(scaleLocalVector(computePlanetLocalPosition(planet, 0, phase)).multiplyScalar(ACTIVE_SYSTEM_DETAIL_SCALE)); } - - return moons; + return createSceneNode(new THREE.LineLoop( + new THREE.BufferGeometry().setFromPoints(points), + new THREE.LineBasicMaterial({ + color: planet.color, + transparent: true, + opacity: 0.22, + depthWrite: false, + depthTest: false, + }), + )); } export function createStationMesh(station: StationSnapshot): SceneNode { @@ -201,32 +224,160 @@ export function createShipMesh(ship: ShipSnapshot, size: number, length: number, return createSceneNode(mesh); } -export function createBackdropStars(): THREE.Points { - const starCount = 1800; - const radius = 36000; +function createStarGlowTexture(documentRef: Document): THREE.CanvasTexture { + const canvas = documentRef.createElement("canvas"); + canvas.width = 128; + canvas.height = 128; + const context = canvas.getContext("2d"); + if (!context) { + throw new Error("Unable to create star glow texture"); + } + + const gradient = context.createRadialGradient(64, 64, 0, 64, 64, 64); + gradient.addColorStop(0, "rgba(255,255,255,1)"); + gradient.addColorStop(0.14, "rgba(255,255,255,0.95)"); + gradient.addColorStop(0.35, "rgba(255,255,255,0.42)"); + gradient.addColorStop(0.68, "rgba(180,205,255,0.1)"); + gradient.addColorStop(1, "rgba(0,0,0,0)"); + context.fillStyle = gradient; + context.fillRect(0, 0, 128, 128); + + const texture = new THREE.CanvasTexture(canvas); + texture.needsUpdate = true; + return texture; +} + +function createStarSparkleTexture(documentRef: Document): THREE.CanvasTexture { + const canvas = documentRef.createElement("canvas"); + canvas.width = 128; + canvas.height = 128; + const context = canvas.getContext("2d"); + if (!context) { + throw new Error("Unable to create star sparkle texture"); + } + + context.clearRect(0, 0, 128, 128); + context.translate(64, 64); + context.lineCap = "round"; + + const bloom = context.createRadialGradient(0, 0, 0, 0, 0, 48); + bloom.addColorStop(0, "rgba(255,255,255,0.95)"); + bloom.addColorStop(0.3, "rgba(255,255,255,0.24)"); + bloom.addColorStop(1, "rgba(0,0,0,0)"); + context.fillStyle = bloom; + context.beginPath(); + context.arc(0, 0, 48, 0, Math.PI * 2); + context.fill(); + + context.strokeStyle = "rgba(255,255,255,0.75)"; + context.lineWidth = 4; + context.beginPath(); + context.moveTo(-38, 0); + context.lineTo(38, 0); + context.moveTo(0, -38); + context.lineTo(0, 38); + context.stroke(); + + context.rotate(Math.PI / 4); + context.strokeStyle = "rgba(255,255,255,0.35)"; + context.lineWidth = 2; + context.beginPath(); + context.moveTo(-28, 0); + context.lineTo(28, 0); + context.moveTo(0, -28); + context.lineTo(0, 28); + context.stroke(); + + const texture = new THREE.CanvasTexture(canvas); + texture.needsUpdate = true; + return texture; +} + +function createMilkyWayTexture(documentRef: Document): THREE.CanvasTexture { + const canvas = documentRef.createElement("canvas"); + canvas.width = 1024; + canvas.height = 256; + const context = canvas.getContext("2d"); + if (!context) { + throw new Error("Unable to create milky way texture"); + } + + const background = context.createLinearGradient(0, 0, 1024, 0); + background.addColorStop(0, "rgba(0,0,0,0)"); + background.addColorStop(0.1, "rgba(150,110,255,0.08)"); + background.addColorStop(0.32, "rgba(120,210,255,0.14)"); + background.addColorStop(0.5, "rgba(255,240,220,0.28)"); + background.addColorStop(0.68, "rgba(255,165,210,0.16)"); + background.addColorStop(0.88, "rgba(115,155,255,0.08)"); + background.addColorStop(1, "rgba(0,0,0,0)"); + context.fillStyle = background; + context.fillRect(0, 0, 1024, 256); + + for (let index = 0; index < 220; index += 1) { + const x = THREE.MathUtils.randFloat(0, 1024); + const y = 128 + THREE.MathUtils.randFloatSpread(78); + const radiusX = THREE.MathUtils.randFloat(40, 180); + const radiusY = THREE.MathUtils.randFloat(8, 28); + const alpha = THREE.MathUtils.randFloat(0.025, 0.09); + const hue = THREE.MathUtils.randFloat(0.52, 0.76); + const color = new THREE.Color().setHSL(hue, THREE.MathUtils.randFloat(0.25, 0.6), THREE.MathUtils.randFloat(0.72, 0.9)); + const puff = context.createRadialGradient(x, y, 0, x, y, radiusX); + puff.addColorStop(0, `rgba(${Math.round(color.r * 255)},${Math.round(color.g * 255)},${Math.round(color.b * 255)},${alpha})`); + puff.addColorStop(0.55, `rgba(${Math.round(color.r * 255)},${Math.round(color.g * 255)},${Math.round(color.b * 255)},${alpha * 0.45})`); + puff.addColorStop(1, "rgba(0,0,0,0)"); + context.save(); + context.translate(x, y); + context.scale(1, radiusY / radiusX); + context.fillStyle = puff; + context.beginPath(); + context.arc(0, 0, radiusX, 0, Math.PI * 2); + context.fill(); + context.restore(); + } + + for (let index = 0; index < 540; index += 1) { + const x = THREE.MathUtils.randFloat(0, 1024); + const y = 128 + THREE.MathUtils.randFloatSpread(54); + const alpha = THREE.MathUtils.randFloat(0.12, 0.65); + const size = THREE.MathUtils.randFloat(0.8, 2.4); + context.fillStyle = `rgba(255,255,255,${alpha})`; + context.fillRect(x, y, size, size); + } + + const texture = new THREE.CanvasTexture(canvas); + texture.needsUpdate = true; + return texture; +} + +function sampleBackdropStarColor(): THREE.Color { + const roll = Math.random(); + if (roll < 0.1) { + return new THREE.Color().setHSL(0.08, THREE.MathUtils.randFloat(0.65, 0.9), THREE.MathUtils.randFloat(0.78, 0.9)); + } + if (roll < 0.28) { + return new THREE.Color().setHSL(0.58, THREE.MathUtils.randFloat(0.28, 0.55), THREE.MathUtils.randFloat(0.78, 0.9)); + } + if (roll < 0.92) { + return new THREE.Color().setHSL(0.61, THREE.MathUtils.randFloat(0.08, 0.3), THREE.MathUtils.randFloat(0.84, 0.97)); + } + return new THREE.Color().setHSL(0.76, THREE.MathUtils.randFloat(0.25, 0.48), THREE.MathUtils.randFloat(0.78, 0.88)); +} + +function createStarPointLayer(radius: number, starCount: number, size: number, opacity: number): THREE.Points { const positions = new Float32Array(starCount * 3); const colors = new Float32Array(starCount * 3); - const color = new THREE.Color(); for (let index = 0; index < starCount; index += 1) { const direction = new THREE.Vector3( THREE.MathUtils.randFloatSpread(2), THREE.MathUtils.randFloatSpread(2), THREE.MathUtils.randFloatSpread(2), - ).normalize().multiplyScalar(radius * THREE.MathUtils.randFloat(0.82, 1)); + ).normalize().multiplyScalar(radius * THREE.MathUtils.randFloat(0.83, 1)); + const color = sampleBackdropStarColor().multiplyScalar(THREE.MathUtils.randFloat(0.55, 1.2)); + positions[index * 3] = direction.x; positions[index * 3 + 1] = direction.y; positions[index * 3 + 2] = direction.z; - - const tint = THREE.MathUtils.randFloat(0, 1); - color.setRGB( - THREE.MathUtils.lerp(0.68, 1, tint), - THREE.MathUtils.lerp(0.76, 0.94, tint), - THREE.MathUtils.lerp(0.9, 1, tint), - ); - if (Math.random() < 0.08) { - color.lerp(new THREE.Color(0xffd6a0), 0.45); - } colors[index * 3] = color.r; colors[index * 3 + 1] = color.g; colors[index * 3 + 2] = color.b; @@ -239,77 +390,244 @@ export function createBackdropStars(): THREE.Points { return new THREE.Points( geometry, new THREE.PointsMaterial({ - size: 2.2, + size, sizeAttenuation: false, vertexColors: true, transparent: true, - opacity: 0.9, + opacity, depthWrite: false, blending: THREE.AdditiveBlending, + fog: false, }), ); } +export function createBackdropStars(documentRef: Document): THREE.Group { + const radius = 36000; + const root = new THREE.Group(); + + root.add( + createStarPointLayer(radius, 2800, 1.15, 0.5), + createStarPointLayer(radius, 900, 1.9, 0.85), + createStarPointLayer(radius, 240, 3.1, 0.95), + ); + + const glowTexture = createStarGlowTexture(documentRef); + const sparkleTexture = createStarSparkleTexture(documentRef); + for (let index = 0; index < 72; index += 1) { + const direction = new THREE.Vector3( + THREE.MathUtils.randFloatSpread(2), + THREE.MathUtils.randFloatSpread(2), + THREE.MathUtils.randFloatSpread(2), + ).normalize().multiplyScalar(radius * THREE.MathUtils.randFloat(0.84, 0.98)); + const color = sampleBackdropStarColor().multiplyScalar(THREE.MathUtils.randFloat(0.9, 1.45)); + const glow = new THREE.Sprite(new THREE.SpriteMaterial({ + map: glowTexture, + color, + transparent: true, + opacity: THREE.MathUtils.randFloat(0.5, 0.95), + depthWrite: false, + blending: THREE.AdditiveBlending, + fog: false, + })); + const sparkle = new THREE.Sprite(new THREE.SpriteMaterial({ + map: sparkleTexture, + color: color.clone().lerp(new THREE.Color(0xffffff), 0.35), + transparent: true, + opacity: THREE.MathUtils.randFloat(0.2, 0.55), + depthWrite: false, + blending: THREE.AdditiveBlending, + fog: false, + })); + const glowScale = THREE.MathUtils.randFloat(120, 260); + glow.position.copy(direction); + glow.scale.set(glowScale, glowScale, 1); + sparkle.position.copy(direction); + sparkle.material.rotation = THREE.MathUtils.randFloat(0, Math.PI); + sparkle.scale.set(glowScale * THREE.MathUtils.randFloat(0.9, 1.4), glowScale * THREE.MathUtils.randFloat(0.9, 1.4), 1); + root.add(glow, sparkle); + } + + return root; +} + +export function createPlanetTexture(color: string, seed: number, documentRef: Document): THREE.CanvasTexture { + const W = 256, H = 128; + const canvas = documentRef.createElement("canvas"); + canvas.width = W; + canvas.height = H; + const ctx = canvas.getContext("2d"); + if (!ctx) throw new Error("Unable to create planet texture"); + + const imageData = ctx.createImageData(W, H); + const base = new THREE.Color(color); + + function hash(x: number, y: number): number { + const n = Math.sin(x * 127.1 + y * 311.7 + seed * 74.3) * 43758.5453; + return n - Math.floor(n); + } + + function smoothNoise(x: number, y: number): number { + const ix = Math.floor(x), iy = Math.floor(y); + const fx = x - ix, fy = y - iy; + const ux = fx * fx * (3 - 2 * fx), uy = fy * fy * (3 - 2 * fy); + const a = hash(ix, iy), b = hash(ix + 1, iy); + const c = hash(ix, iy + 1), d = hash(ix + 1, iy + 1); + return a + (b - a) * ux + (c - a) * uy + (a - b - c + d) * ux * uy; + } + + function fbm(x: number, y: number): number { + let v = 0, amp = 0.5, freq = 1; + for (let i = 0; i < 5; i++) { v += smoothNoise(x * freq, y * freq) * amp; amp *= 0.5; freq *= 2; } + return v; + } + + for (let y = 0; y < H; y++) { + for (let x = 0; x < W; x++) { + const nx = (x / W) * 5, ny = (y / H) * 3; + const turb = fbm(nx + 0.1, ny + 0.1) - 0.5; + const band = Math.sin((y / H * 10 + turb * 3) * Math.PI); + const light = 0.62 + band * 0.38; + const idx = (y * W + x) * 4; + imageData.data[idx] = Math.min(255, base.r * 255 * light); + imageData.data[idx + 1] = Math.min(255, base.g * 255 * light); + imageData.data[idx + 2] = Math.min(255, base.b * 255 * light); + imageData.data[idx + 3] = 255; + } + } + + ctx.putImageData(imageData, 0, 0); + const texture = new THREE.CanvasTexture(canvas); + texture.wrapS = THREE.RepeatWrapping; + texture.needsUpdate = true; + return texture; +} + export function createNebulaTexture(documentRef: Document): THREE.CanvasTexture { const canvas = documentRef.createElement("canvas"); - canvas.width = 256; - canvas.height = 256; + canvas.width = 512; + canvas.height = 512; const context = canvas.getContext("2d"); if (!context) { throw new Error("Unable to create nebula texture"); } - const gradient = context.createRadialGradient(128, 128, 18, 128, 128, 118); - gradient.addColorStop(0, "rgba(255,255,255,0.95)"); - gradient.addColorStop(0.2, "rgba(255,255,255,0.48)"); - gradient.addColorStop(0.55, "rgba(140,180,255,0.14)"); - gradient.addColorStop(1, "rgba(0,0,0,0)"); - context.fillStyle = gradient; - context.fillRect(0, 0, 256, 256); + const palettes = [ + ["rgba(80,220,255,0.24)", "rgba(120,110,255,0.18)", "rgba(255,255,255,0.14)"], + ["rgba(255,130,205,0.24)", "rgba(110,170,255,0.16)", "rgba(255,240,255,0.12)"], + ["rgba(120,255,205,0.2)", "rgba(100,160,255,0.18)", "rgba(255,255,255,0.1)"], + ]; - for (let index = 0; index < 10; index += 1) { - const x = THREE.MathUtils.randFloat(30, 226); - const y = THREE.MathUtils.randFloat(30, 226); - const radius = THREE.MathUtils.randFloat(24, 72); - const puff = context.createRadialGradient(x, y, 0, x, y, radius); - puff.addColorStop(0, "rgba(255,255,255,0.16)"); - puff.addColorStop(0.45, "rgba(255,255,255,0.08)"); - puff.addColorStop(1, "rgba(0,0,0,0)"); - context.fillStyle = puff; + context.clearRect(0, 0, 512, 512); + + for (let layer = 0; layer < palettes.length; layer += 1) { + for (let index = 0; index < 18; index += 1) { + const x = THREE.MathUtils.randFloat(40, 472); + const y = THREE.MathUtils.randFloat(40, 472); + const radius = THREE.MathUtils.randFloat(55, 180); + const [core, mid, edge] = palettes[layer]; + const puff = context.createRadialGradient(x, y, 0, x, y, radius); + puff.addColorStop(0, core); + puff.addColorStop(0.4, mid); + puff.addColorStop(0.78, edge); + puff.addColorStop(1, "rgba(0,0,0,0)"); + context.fillStyle = puff; + context.beginPath(); + context.arc(x, y, radius, 0, Math.PI * 2); + context.fill(); + } + } + + for (let index = 0; index < 36; index += 1) { + const x = THREE.MathUtils.randFloat(50, 462); + const y = THREE.MathUtils.randFloat(50, 462); + const radius = THREE.MathUtils.randFloat(18, 60); + const glow = context.createRadialGradient(x, y, 0, x, y, radius); + glow.addColorStop(0, "rgba(255,255,255,0.12)"); + glow.addColorStop(0.4, "rgba(255,255,255,0.05)"); + glow.addColorStop(1, "rgba(0,0,0,0)"); + context.fillStyle = glow; context.beginPath(); context.arc(x, y, radius, 0, Math.PI * 2); context.fill(); } + // Feather the entire texture toward the borders so large sprites do not show a card-like cutoff. + const edgeFade = context.createRadialGradient(256, 256, 86, 256, 256, 256); + edgeFade.addColorStop(0, "rgba(255,255,255,1)"); + edgeFade.addColorStop(0.58, "rgba(255,255,255,0.96)"); + edgeFade.addColorStop(0.82, "rgba(255,255,255,0.42)"); + edgeFade.addColorStop(1, "rgba(255,255,255,0)"); + context.globalCompositeOperation = "destination-in"; + context.fillStyle = edgeFade; + context.fillRect(0, 0, 512, 512); + context.globalCompositeOperation = "source-over"; + const texture = new THREE.CanvasTexture(canvas); texture.needsUpdate = true; return texture; } export function createNebulaClouds(texture: THREE.Texture): THREE.Sprite[] { - const directions = [ - new THREE.Vector3(0.74, 0.34, -0.58), - new THREE.Vector3(-0.62, 0.18, -0.77), - new THREE.Vector3(0.22, -0.44, -0.87), - new THREE.Vector3(-0.38, 0.56, 0.73), + const seeds = [ + { direction: new THREE.Vector3(0.76, 0.28, -0.58), color: "#5bd4ff", scale: 24000, opacity: 0.22, rotation: 0.18 }, + { direction: new THREE.Vector3(0.7, 0.34, -0.54), color: "#93b3ff", scale: 18000, opacity: 0.16, rotation: -0.22 }, + { direction: new THREE.Vector3(-0.58, 0.24, -0.78), color: "#ff8cc6", scale: 22000, opacity: 0.2, rotation: 0.34 }, + { direction: new THREE.Vector3(-0.48, 0.14, -0.86), color: "#8a8dff", scale: 16000, opacity: 0.14, rotation: -0.4 }, + { direction: new THREE.Vector3(0.24, -0.46, -0.85), color: "#79ffd6", scale: 20000, opacity: 0.17, rotation: 0.52 }, + { direction: new THREE.Vector3(-0.34, 0.58, 0.74), color: "#79b7ff", scale: 26000, opacity: 0.16, rotation: -0.12 }, ]; - return directions.map((direction, index) => { + return seeds.map((seed, index) => { const sprite = new THREE.Sprite(new THREE.SpriteMaterial({ map: texture, transparent: true, - opacity: 0.14, + opacity: seed.opacity, depthWrite: false, - color: ["#6dc7ff", "#ff9ec8", "#8e7dff", "#7ce0c3"][index] ?? "#6dc7ff", + color: seed.color, blending: THREE.AdditiveBlending, + fog: false, })); - sprite.position.copy(direction.normalize().multiplyScalar(25000 + index * 2600)); - const scale = 15000 + index * 2400; - sprite.scale.set(scale, scale * 0.62, 1); + sprite.position.copy(seed.direction.normalize().multiplyScalar(23000 + index * 1800)); + sprite.material.rotation = seed.rotation; + sprite.scale.set(seed.scale, seed.scale * THREE.MathUtils.randFloat(0.52, 0.78), 1); return sprite; }); } +export function createMilkyWayBand(documentRef: Document): THREE.Group { + const radius = 33800; + const texture = createMilkyWayTexture(documentRef); + const root = new THREE.Group(); + const planeNormal = new THREE.Vector3(0.24, 0.92, -0.3).normalize(); + const tangent = new THREE.Vector3().crossVectors(planeNormal, new THREE.Vector3(0, 0, 1)); + if (tangent.lengthSq() < 1e-6) { + tangent.set(1, 0, 0); + } + tangent.normalize(); + const bitangent = new THREE.Vector3().crossVectors(planeNormal, tangent).normalize(); + + for (let index = 0; index < 8; index += 1) { + const angle = (index / 8) * Math.PI * 2; + const direction = tangent.clone().multiplyScalar(Math.cos(angle)).add(bitangent.clone().multiplyScalar(Math.sin(angle))); + const sprite = new THREE.Sprite(new THREE.SpriteMaterial({ + map: texture, + transparent: true, + opacity: index % 2 === 0 ? 0.22 : 0.15, + depthWrite: false, + blending: THREE.AdditiveBlending, + color: index % 3 === 0 ? "#ffd3f1" : index % 3 === 1 ? "#c8d8ff" : "#ffffff", + fog: false, + })); + sprite.position.copy(direction.multiplyScalar(radius)); + sprite.scale.set(16500, 4300 + (index % 3) * 800, 1); + sprite.material.rotation = angle + Math.PI / 2; + root.add(sprite); + } + + return root; +} + export function createTacticalIcon(documentRef: Document, color: string, size: number): SceneNode { const canvas = documentRef.createElement("canvas"); canvas.width = 64; @@ -325,12 +643,6 @@ export function createTacticalIcon(documentRef: Document, color: string, size: n context.beginPath(); context.arc(32, 32, 18, 0, Math.PI * 2); context.stroke(); - context.beginPath(); - context.moveTo(32, 8); - context.lineTo(32, 56); - context.moveTo(8, 32); - context.lineTo(56, 32); - context.stroke(); const texture = new THREE.CanvasTexture(canvas); const sprite = new THREE.Sprite(new THREE.SpriteMaterial({ diff --git a/apps/viewer/src/viewerSceneSync.ts b/apps/viewer/src/viewerSceneSync.ts index 8dc5c84..cfdc391 100644 --- a/apps/viewer/src/viewerSceneSync.ts +++ b/apps/viewer/src/viewerSceneSync.ts @@ -10,7 +10,6 @@ import type { ClaimVisual, ConstructionSiteVisual, NodeVisual, - OrbitLineVisual, PlanetVisual, Selectable, ShipVisual, @@ -48,6 +47,7 @@ import { createNodeMesh, createPlanetOrbit, createPlanetRing, + createPlanetTexture, createShellReticle, createShipMesh, createCelestialMesh, @@ -86,7 +86,6 @@ interface SceneSyncContext { systemSelectableTargets: Map; systemVisuals: Map; planetVisuals: PlanetVisual[]; - orbitLines: OrbitLineVisual[]; celestialVisuals: Map; nodeVisuals: Map; stationVisuals: Map; @@ -121,7 +120,6 @@ export function rebuildSystems(context: SceneSyncContext, systems: SystemSnapsho context.galaxySelectableTargets.clear(); context.systemSelectableTargets.clear(); context.planetVisuals.length = 0; - context.orbitLines.length = 0; context.systemVisuals.clear(); for (const system of systems) { @@ -129,7 +127,7 @@ export function rebuildSystems(context: SceneSyncContext, systems: SystemSnapsho const galaxyRoot = createSceneNode(new THREE.Group()); galaxyRoot.setPosition(toDisplayGalaxyVector(system.galaxyPosition)); - const systemIcon = createStarDot(context.documentRef, system.starColor); + const systemIcon = createStarDot(context.documentRef, system.stars[0]?.color ?? "#ffffff"); const shellReticle = createShellReticle(context.documentRef, "#ff3b30", 400); galaxyRoot.add(systemIcon, shellReticle); @@ -150,50 +148,45 @@ export function rebuildSystems(context: SceneSyncContext, systems: SystemSnapsho ); for (const [planetIndex, planet] of system.planets.entries()) { - const orbit = createPlanetOrbit(planet); const renderedPlanetRadius = celestialRenderRadius(planet.size, 0.00012, 0.03, 0.62); + const planetTexture = createPlanetTexture(planet.color, planetIndex * 17 + system.id.length * 31, context.documentRef); const planetMesh = createSceneNode(new THREE.Mesh( - new THREE.SphereGeometry(renderedPlanetRadius, 18, 18), + new THREE.SphereGeometry(renderedPlanetRadius, 24, 24), new THREE.MeshStandardMaterial({ - color: planet.color, - roughness: 0.92, - metalness: 0.08, - emissive: new THREE.Color(planet.color).multiplyScalar(0.04), + map: planetTexture, + roughness: 0.88, + metalness: 0.04, }), )); const initialPos = toSystemPos(computePlanetLocalPosition(planet, worldTimeSeconds)); planetMesh.setPosition(initialPos); - const planetIcon = createTacticalIcon(context.documentRef, planet.color, Math.max(24, renderedPlanetRadius * 2)); + const iconBaseScale = Math.max(120, renderedPlanetRadius * 10); + const planetHsl = { h: 0, s: 0, l: 0 }; + new THREE.Color(planet.color).getHSL(planetHsl); + const planetIconColor = new THREE.Color().setHSL(planetHsl.h, Math.max(planetHsl.s, 0.5), 0.72).getStyle(); + const planetIcon = createTacticalIcon(context.documentRef, planetIconColor, iconBaseScale); planetIcon.setPosition(initialPos); + planetIcon.setVisible(true); + const orbit = createPlanetOrbit(planet); const ring = planet.hasRing ? createPlanetRing(planet) : undefined; if (ring) { ring.setPosition(initialPos); } - const moons = createMoonVisuals(planet, context.worldSeed); + const moons = createMoonVisuals(planet, context.documentRef); detailGroup.add(orbit, planetMesh, planetIcon); if (ring) { detailGroup.add(ring); } - for (const moon of moons) { + for (const [moonIdx, moon] of moons.entries()) { moon.systemId = system.id; moon.planetIndex = planetIndex; - moon.orbit.setPosition(initialPos); moon.mesh.setPosition(initialPos); - detailGroup.add(moon.orbit, moon.mesh); - context.orbitLines.push({ - line: moon.orbit, - systemId: system.id, - kind: "moon", - planetIndex, - }); + moon.icon.setPosition(initialPos); + detailGroup.add(moon.mesh, moon.icon, moon.orbit); + registerSelectableTarget(context.systemSelectableTargets, moon.mesh, { kind: "moon", systemId: system.id, planetIndex, moonIndex: moonIdx }); + registerSelectableTarget(context.systemSelectableTargets, moon.icon, { kind: "moon", systemId: system.id, planetIndex, moonIndex: moonIdx }); } - context.orbitLines.push({ - line: orbit, - systemId: system.id, - kind: "planet", - planetIndex, - }); - context.planetVisuals.push({ systemId: system.id, planet, orbit, mesh: planetMesh, icon: planetIcon, ring, moons }); + context.planetVisuals.push({ systemId: system.id, planet, orbit, mesh: planetMesh, icon: planetIcon, iconBaseScale, ring, moons }); registerSelectableTarget(context.systemSelectableTargets, planetMesh, { kind: "planet", systemId: system.id, planetIndex }); registerSelectableTarget(context.systemSelectableTargets, planetIcon, { kind: "planet", systemId: system.id, planetIndex }); } @@ -225,7 +218,8 @@ export function syncCelestials(context: SceneSyncContext, celestials: CelestialS } const mesh = createCelestialMesh(celestial, context.celestialColor); - const icon = createTacticalIcon(context.documentRef, context.celestialColor(celestial.kind), 18); + const celestialIconBaseScale = 90; + const icon = createTacticalIcon(context.documentRef, context.celestialColor(celestial.kind), celestialIconBaseScale); const orbitalAnchor = toSystemPos(toThreeVector(celestial.orbitalAnchor)); mesh.setPosition(orbitalAnchor); icon.setPosition(orbitalAnchor); @@ -237,6 +231,7 @@ export function syncCelestials(context: SceneSyncContext, celestials: CelestialS systemId: celestial.systemId, mesh, icon, + iconBaseScale: celestialIconBaseScale, kind: celestial.kind, orbitalAnchor, }); @@ -252,7 +247,7 @@ export function syncNodes(context: SceneSyncContext, nodes: ResourceNodeSnapshot for (const node of nodes) { const mesh = createNodeMesh(node); - const icon = createTacticalIcon(context.documentRef, node.sourceKind === "gas-cloud" ? "#7fd6ff" : "#d2b07a", 20); + const icon = createTacticalIcon(context.documentRef, node.sourceKind === "gas-cloud" ? "#7fd6ff" : "#d2b07a", 100); const localPosition = toThreeVector(node.localPosition); const displayPos = toSystemPos(localPosition); mesh.setPosition(displayPos); @@ -285,7 +280,7 @@ export function syncStations(context: SceneSyncContext, stations: StationSnapsho for (const station of stations) { const mesh = createStationMesh(station); - const icon = createTacticalIcon(context.documentRef, station.color, 26); + const icon = createTacticalIcon(context.documentRef, station.color, 130); const localPosition = toThreeVector(station.localPosition); const displayPos = toSystemPos(localPosition); mesh.setPosition(displayPos); @@ -320,7 +315,7 @@ export function syncClaims(context: SceneSyncContext, claims: ClaimSnapshot[], a const localPosition = context.resolvePointPosition(claim.systemId, claim.celestialId); const displayPos = toSystemPos(localPosition); const mesh = createClaimMesh(claim); - const icon = createTacticalIcon(context.documentRef, "#ff5b5b", 18); + const icon = createTacticalIcon(context.documentRef, "#ff5b5b", 90); mesh.setPosition(displayPos); icon.setPosition(displayPos); const isActive = claim.systemId === activeSystemId; @@ -348,7 +343,7 @@ export function syncConstructionSites(context: SceneSyncContext, sites: Construc const localPosition = context.resolvePointPosition(site.systemId, site.celestialId); const displayPos = toSystemPos(localPosition); const mesh = createConstructionSiteMesh(site); - const icon = createTacticalIcon(context.documentRef, "#9df29c", 18); + const icon = createTacticalIcon(context.documentRef, "#9df29c", 90); mesh.setPosition(displayPos); icon.setPosition(displayPos); const isActive = site.systemId === activeSystemId; @@ -375,7 +370,7 @@ export function syncShips(context: SceneSyncContext, ships: ShipSnapshot[], tick for (const ship of ships) { const mesh = createShipMesh(ship, context.shipSize(ship), context.shipLength(ship), context.shipPresentationColor(ship)); const shipColor = context.shipPresentationColor(ship); - const icon = createTacticalIcon(context.documentRef, shipColor, 18); + const icon = createTacticalIcon(context.documentRef, shipColor, 90); const localPosition = toThreeVector(ship.localPosition); const displayPos = toSystemPos(localPosition); mesh.setPosition(displayPos); diff --git a/apps/viewer/src/viewerSelection.ts b/apps/viewer/src/viewerSelection.ts index 2c87889..114e577 100644 --- a/apps/viewer/src/viewerSelection.ts +++ b/apps/viewer/src/viewerSelection.ts @@ -33,6 +33,10 @@ export function describeSelectable(world: WorldState | undefined, item: Selectab if (item.kind === "planet") { return world.systems.get(item.systemId)?.planets[item.planetIndex]?.label ?? `${item.systemId}:${item.planetIndex}`; } + if (item.kind === "moon") { + const planet = world.systems.get(item.systemId)?.planets[item.planetIndex]; + return planet?.moons[item.moonIndex]?.label ?? `moon ${item.moonIndex + 1}`; + } return world.systems.get(item.id)?.label ?? item.id; } @@ -54,7 +58,7 @@ export function describeHoverLabel(world: WorldState | undefined, item: Selectab if (!system) { return item.id; } - const starLabel = system.starCount > 1 ? `${system.starCount}× ${system.starKind}` : system.starKind; + const starLabel = system.stars.length > 1 ? `${system.stars.length}× ${system.stars[0]?.kind}` : (system.stars[0]?.kind ?? "unknown"); const planetCount = system.planets.length; const shipCount = [...world.ships.values()].filter((s) => s.systemId === item.id).length; const stationCount = [...world.stations.values()].filter((s) => s.systemId === item.id).length; @@ -81,6 +85,16 @@ export function describeHoverLabel(world: WorldState | undefined, item: Selectab return planet ? `${system?.label ?? item.systemId} / ${planet.label}` : `${item.systemId} / planet ${item.planetIndex + 1}`; } + if (item.kind === "moon") { + const system = world.systems.get(item.systemId); + const planet = system?.planets[item.planetIndex]; + const moon = planet?.moons[item.moonIndex]; + if (moon) { + return `${system?.label ?? item.systemId} / ${planet?.label ?? `planet ${item.planetIndex + 1}`} / ${moon.label}`; + } + return `${item.systemId} / planet ${item.planetIndex + 1} / moon ${item.moonIndex + 1}`; + } + if (item.kind === "node") { const node = world.nodes.get(item.id); if (!node) { @@ -168,6 +182,9 @@ export function resolveSelectableSystemId(world: WorldState | undefined, selecti if (selection.kind === "planet") { return selection.systemId; } + if (selection.kind === "moon") { + return selection.systemId; + } return selection.id; } @@ -271,7 +288,7 @@ export function renderSystemDetails( } } for (const planet of system.planets) { - moonCount += planet.moonCount; + moonCount += planet.moons.length; } const followText = activeContext && cameraMode === "follow" && cameraTargetShipId @@ -280,7 +297,7 @@ export function renderSystemDetails( return `

${system.id}${activeContext ? " · active system" : ""}

-

${system.starKind} · ${system.starCount} star${system.starCount > 1 ? "s" : ""}

+

${system.stars[0]?.kind ?? "unknown"} · ${system.stars.length} star${system.stars.length > 1 ? "s" : ""}

Planets ${system.planets.length}
Moons ${moonCount}
Ships ${shipCount}
Stations ${stationCount}

Celestials ${celestialCount}
Resource nodes ${nodeCount}

Claims ${claimCount}
Construction sites ${constructionCount}

diff --git a/apps/viewer/src/viewerSystemLayer.ts b/apps/viewer/src/viewerSystemLayer.ts index a7392ad..e905328 100644 --- a/apps/viewer/src/viewerSystemLayer.ts +++ b/apps/viewer/src/viewerSystemLayer.ts @@ -1,5 +1,14 @@ import * as THREE from "three"; -import type { Selectable } from "./viewerTypes"; +import type { + CelestialVisual, + ClaimVisual, + ConstructionSiteVisual, + NodeVisual, + PlanetVisual, + Selectable, + ShipVisual, + StructureVisual, +} from "./viewerTypes"; /** * System rendering layer. @@ -9,7 +18,7 @@ import type { Selectable } from "./viewerTypes"; */ export class SystemLayer { readonly scene = new THREE.Scene(); - readonly camera = new THREE.PerspectiveCamera(50, 1, 0.1, 50000); + readonly camera = new THREE.PerspectiveCamera(50, 1, 0.0001, 300000); readonly celestialGroup = new THREE.Group(); readonly nodeGroup = new THREE.Group(); @@ -20,6 +29,14 @@ export class SystemLayer { readonly selectableTargets = new Map(); + readonly planetVisuals: PlanetVisual[] = []; + readonly shipVisuals = new Map(); + readonly celestialVisuals = new Map(); + readonly nodeVisuals = new Map(); + readonly stationVisuals = new Map(); + readonly claimVisuals = new Map(); + readonly constructionSiteVisuals = new Map(); + constructor() { this.scene.add(new THREE.AmbientLight(0x90a6c0, 0.55)); const keyLight = new THREE.DirectionalLight(0xdcecff, 1.3); @@ -44,4 +61,8 @@ export class SystemLayer { this.camera.aspect = aspect; this.camera.updateProjectionMatrix(); } + + render(renderer: THREE.WebGLRenderer) { + renderer.render(this.scene, this.camera); + } } diff --git a/apps/viewer/src/viewerTypes.ts b/apps/viewer/src/viewerTypes.ts index c3ede19..66ea6b0 100644 --- a/apps/viewer/src/viewerTypes.ts +++ b/apps/viewer/src/viewerTypes.ts @@ -29,7 +29,8 @@ export type Selectable = | { kind: "claim"; id: string } | { kind: "construction-site"; id: string } | { kind: "system"; id: string } - | { kind: "planet"; systemId: string; planetIndex: number }; + | { kind: "planet"; systemId: string; planetIndex: number } + | { kind: "moon"; systemId: string; planetIndex: number; moonIndex: number }; export interface ShipVisual { systemId: string; @@ -49,6 +50,7 @@ export interface PlanetVisual { orbit: SceneNode; mesh: SceneNode; icon: SceneNode; + iconBaseScale: number; ring?: SceneNode; moons: MoonVisual[]; } @@ -56,17 +58,13 @@ export interface PlanetVisual { export interface MoonVisual { systemId: string; planetIndex: number; + moonIndex: number; mesh: SceneNode; + icon: SceneNode; + iconBaseScale: number; orbit: SceneNode; } -export interface OrbitLineVisual { - line: SceneNode; - systemId: string; - kind: "planet" | "moon"; - planetIndex: number; -} - export type OrbitalAnchor = | { kind: "star" } | { kind: "planet"; planetIndex: number } @@ -89,6 +87,7 @@ export interface CelestialVisual { systemId: string; mesh: SceneNode; icon: SceneNode; + iconBaseScale: number; kind: string; orbitalAnchor: THREE.Vector3; } diff --git a/apps/viewer/src/viewerUniverseLayer.ts b/apps/viewer/src/viewerUniverseLayer.ts index ad079bb..a695bdb 100644 --- a/apps/viewer/src/viewerUniverseLayer.ts +++ b/apps/viewer/src/viewerUniverseLayer.ts @@ -17,9 +17,11 @@ export class UniverseLayer { this.scene.add(this.ambienceGroup); } - updateAmbience(activeCamera: THREE.Camera, delta: number) { + updateAmbience(activeCamera: THREE.Camera, _delta: number) { this.ambienceGroup.position.copy(activeCamera.position); - this.ambienceGroup.rotation.y += delta * 0.005; - this.ambienceGroup.rotation.x = Math.sin(performance.now() * 0.00003) * 0.015; + } + + render(renderer: THREE.WebGLRenderer, camera: THREE.Camera) { + renderer.render(this.scene, camera); } } diff --git a/apps/viewer/src/viewerWorldPresentation.ts b/apps/viewer/src/viewerWorldPresentation.ts index 11b6a7b..cfb39b9 100644 --- a/apps/viewer/src/viewerWorldPresentation.ts +++ b/apps/viewer/src/viewerWorldPresentation.ts @@ -4,7 +4,6 @@ import { DISPLAY_UNITS_PER_LIGHT_YEAR, KILOMETERS_PER_AU, computeMoonLocalPosition, - computeMoonSize, computePlanetLocalPosition, currentWorldTimeSeconds, resolveOrbitalAnchorPosition, @@ -16,6 +15,7 @@ import { resolveShipHeading, updateSystemStarPresentation, getAnimatedShipLocalPosition, + iconWorldScale, } from "./viewerPresentation"; import { rawObject } from "./viewerScenePrimitives"; import type { @@ -114,7 +114,15 @@ export function updateWorldPresentation(context: WorldPresentationContext) { visual.mesh.setPosition(context.toDisplayLocalPosition(animatedLocalPosition)); visual.icon.setPosition(rawObject(visual.mesh).position.clone()); visual.mesh.setVisible(visual.systemId === context.activeSystemId); - visual.icon.setVisible(visual.systemId === context.activeSystemId); + const iconWorldPos = visual.icon.getWorldPosition(new THREE.Vector3()); + const distToIcon = context.camera.position.distanceTo(iconWorldPos); + const isNearPlanetLagrange = /-l[12]$/.test(visual.id); + const inCluster = !isNearPlanetLagrange || distToIcon < 400; + visual.icon.setVisible(visual.systemId === context.activeSystemId && inCluster); + const t = THREE.MathUtils.clamp(distToIcon / 300, 0, 1); + const rawCelestialScale = visual.iconBaseScale * t * Math.sqrt(t); + const celestialIconScale = THREE.MathUtils.clamp(rawCelestialScale, iconWorldScale(distToIcon, context.camera, 15), iconWorldScale(distToIcon, context.camera, 100)); + visual.icon.setScaleScalar(celestialIconScale); } for (const visual of context.stationVisuals.values()) { @@ -351,13 +359,12 @@ export function resolveOrbitalAnchor(context: WorldOrbitalContext, systemId: str bestAnchor = { kind: "planet", planetIndex }; } - const moonCount = Math.min(planet.moonCount, 12); - for (let moonIndex = 0; moonIndex < moonCount; moonIndex += 1) { + for (const [moonIndex, moon] of planet.moons.entries()) { const moonPosition = planetPosition .clone() - .add(computeMoonLocalPosition(planet, moonIndex, nowSeconds, context.world.seed)); + .add(computeMoonLocalPosition(moon, nowSeconds)); const moonDistance = localPosition.distanceTo(moonPosition); - const moonThreshold = Math.max(computeMoonSize(planet, moonIndex, context.world.seed) * 14, 80); + const moonThreshold = Math.max(moon.size * 14, 80); if (moonDistance < moonThreshold && moonDistance < bestDistance) { bestDistance = moonDistance; bestAnchor = { kind: "moon", planetIndex, moonIndex }; @@ -417,9 +424,15 @@ export function computeCelestialLocalPositionById( const parentInitialPosition = toThreeVector(parentCelestial.orbitalAnchor); const relativeOffset = basePosition.clone().sub(parentInitialPosition); - const initialAngle = Math.atan2(parentInitialPosition.z, parentInitialPosition.x); - const currentAngle = Math.atan2(parentCurrentPosition.z, parentCurrentPosition.x); - const rotatedOffset = relativeOffset.applyAxisAngle(new THREE.Vector3(0, 1, 0), currentAngle - initialAngle); + const initialDir = parentInitialPosition.clone().normalize(); + const currentDir = parentCurrentPosition.clone().normalize(); + let rotatedOffset: THREE.Vector3; + if (initialDir.lengthSq() > 0.0001 && currentDir.lengthSq() > 0.0001) { + const quaternion = new THREE.Quaternion().setFromUnitVectors(initialDir, currentDir); + rotatedOffset = relativeOffset.clone().applyQuaternion(quaternion); + } else { + rotatedOffset = relativeOffset.clone(); + } return parentCurrentPosition.clone().add(rotatedOffset); } @@ -486,7 +499,7 @@ function computeStructureLocalPosition( } function getOrbitalAnchorPosition(context: WorldOrbitalContext, systemId: string, anchor: OrbitalAnchor, timeSeconds: number) { - return resolveOrbitalAnchorPosition(context.world, systemId, anchor, timeSeconds, context.worldSeed); + return resolveOrbitalAnchorPosition(context.world, systemId, anchor, timeSeconds); } function resolveStructureAnimatedLocalPosition(context: WorldOrbitalContext, visual: StructureVisual, timeSeconds: number) { diff --git a/docs/SYSTEMS.md b/docs/SYSTEMS.md new file mode 100644 index 0000000..b9051fe --- /dev/null +++ b/docs/SYSTEMS.md @@ -0,0 +1,136 @@ +# Systems + +This document describes the `shared/data/systems.json` schema and the units used throughout. + +## Overview + +Each entry in `systems.json` defines a solar system in the galaxy. Systems are loaded by the backend and used to build the simulation world. The galaxy position, star properties, planet orbits, asteroid fields, and resource nodes are all authored here. + +--- + +## Top-Level Fields + +| Field | Type | Unit | Description | +|---|---|---|---| +| `id` | string | — | Unique identifier, referenced by scenario, factions, routes | +| `label` | string | — | Display name | +| `position` | `[x, y, z]` | **light-years (ly)** | Position in the galaxy map. Used directly for inter-system distances and FTL transit time. Sol is at `[18.2, 0.02, -11.8]` ly, Helios at `[0, 0, 0]`. | +| `stars` | array | — | One entry per star. Single-star systems have one element; binary systems have two. See `stars` section below. | + +--- + +## `stars` + +Each star is an explicit object. Single-star systems have one entry; binary systems have two. Binary stars orbit the barycenter using the same orbital fields as planets. + +| Field | Type | Unit | Description | +|---|---|---|---| +| `kind` | string | — | Classification: `"main-sequence"`, `"blue-white"`, `"white-dwarf"`, `"brown-dwarf"`, `"neutron-star"` | +| `color` | string | — | Hex color of the star body | +| `glow` | string | — | Hex color of the star's halo/corona | +| `size` | float | **km** | Radius of the star. Sol = 696,340 km | +| `orbitRadius` | float | **km** | Distance from system barycenter. `0` for single stars or the primary in a simple system. | +| `orbitSpeed` | float | **rad/s** | Angular velocity around barycenter. `0` for static stars. | +| `orbitPhaseAtEpoch` | float | **degrees** | Starting angle. | + +--- + +## `asteroidField` + +Defines the decorative asteroid belt for the system. + +| Field | Type | Unit | Description | +|---|---|---|---| +| `decorationCount` | int | — | Number of decorative asteroid meshes to scatter | +| `radiusOffset` | float | **km** | Base orbit radius of the belt from the system center | +| `radiusVariance` | float | **km** | Random spread around `radiusOffset` | +| `heightVariance` | float | **km** | Vertical (Y-axis) spread of the belt | + +Sol's belt (422,000,000 km base) maps to the real asteroid belt between Mars and Jupiter. Helios and Perseus use much smaller values since their orbits are scaled differently. + +--- + +## `resourceNodes` + +Each node is a mineable location in the system. + +| Field | Type | Unit | Description | +|---|---|---|---| +| `sourceKind` | string | — | Type of node. e.g. `"asteroid-belt"` | +| `angle` | float | **radians** | Angular position in the orbit around the anchor | +| `radiusOffset` | float | **km** | Orbit radius around the anchor celestial | +| `inclinationDegrees` | float | **degrees** | Orbital inclination of the node's orbit | +| `anchorPlanetIndex` | int? | — | 0-based index into `planets` array. If absent, anchored to the system center | +| `oreAmount` | float | — | Starting ore amount in the node | +| `itemId` | string | — | Item ID of the mined resource | +| `shardCount` | int | — | Number of individual shards the node splits into | + +--- + +## `planets` + +Planets are defined with real Keplerian orbital elements. All angular values use the same epoch for consistency. + +| Field | Type | Unit | Description | +|---|---|---|---| +| `label` | string | — | Display name | +| `planetType` | string | — | Classification: `"terrestrial"`, `"desert"`, `"barren"`, `"gas-giant"`, `"ice-giant"` | +| `shape` | string | — | Mesh hint: `"sphere"` or `"oblate"` | +| `moons` | array | — | Explicit moon definitions. See `moons` section below. | +| `orbitRadius` | float | **AU** | Semi-major axis in Astronomical Units. Converted to km at runtime using 1 AU = 149,597,870.7 km | +| `orbitSpeed` | float | **rad/s** (orbital sim seconds) | Angular velocity. Earth = 0.11 rad/s. Derived from Kepler's third law: `0.11 / sqrt(r³)` where r is in AU | +| `orbitEccentricity` | float | — | Orbital eccentricity (0 = circular) | +| `orbitInclination` | float | **degrees** | Inclination relative to the ecliptic plane. Converted to radians at runtime | +| `orbitLongitudeOfAscendingNode` | float | **degrees** | Longitude of the ascending node (Ω). Converted to radians at runtime | +| `orbitArgumentOfPeriapsis` | float | **degrees** | Argument of periapsis (ω). Converted to radians at runtime | +| `orbitPhaseAtEpoch` | float | **degrees** | Mean anomaly at epoch (initial angular position). Converted to radians at runtime | +| `size` | float | **km** | Radius of the planet. Earth = 6,371 km, Jupiter = 69,911 km | +| `color` | string | — | Hex color | +| `tilt` | float | **radians** | Axial tilt | +| `hasRing` | bool | — | Whether to render a ring system | + +### `moons` + +Each moon is an explicit celestial — a docking target in the simulation, just like a planet. + +| Field | Type | Unit | Description | +|---|---|---|---| +| `label` | string | — | Display name | +| `size` | float | **km** | Moon radius | +| `color` | string | — | Hex color | +| `orbitRadius` | float | **km** | Orbit radius around the parent planet | +| `orbitSpeed` | float | **rad/s** | Angular velocity. Negative = retrograde (e.g. Triton). | +| `orbitPhaseAtEpoch` | float | **degrees** | Initial angle | +| `orbitInclination` | float | **degrees** | Inclination relative to the planet's equatorial plane | +| `orbitLongitudeOfAscendingNode` | float | **degrees** | Longitude of the ascending node | + +For generated systems, moons are procedurally derived from the planet's size and label (seeded hash). Explicitly authored systems (Sol) define their moons directly. + +--- + +### Orbit Speed Formula + +``` +orbitSpeed = 0.11 / sqrt(orbitRadius³) +``` + +Where `0.11` is Earth's angular speed in orbital-sim-seconds per radian, and `orbitRadius` is in AU. This gives each planet the correct relative orbital period. + +Orbital sim time runs at a configurable multiplier relative to real time (`SimulatedSecondsPerRealSecond`), so the absolute speed only matters in relation to other planets, not to wall-clock time. + +--- + +## Unit Summary + +| Concept | Unit | +|---|---| +| Galaxy positions | light-years (ly) | +| Star / planet / moon sizes | km | +| Asteroid field radii | km | +| Resource node radii | km | +| Moon orbit radius | km | +| Planet orbit radius | AU (converted to km at runtime) | +| Planet / moon / star orbit speed | rad / orbital-sim-second | +| Orbital angles (inclination, ascending node, periapsis, phase) | degrees (converted to radians at runtime) | +| Resource node angle | radians | +| Resource node inclination | degrees | diff --git a/shared/data/items.json b/shared/data/items.json index a15a0ce..e838d9c 100644 --- a/shared/data/items.json +++ b/shared/data/items.json @@ -1,607 +1,2697 @@ [ + { + "id": "advancedcomposites", + "version": 0, + "name": "Advanced Composites", + "description": "Formed from some of the refined resources collected from mining ships, advanced composites is a general term for many compounds created to serve several purposes; most commonly used in the production of a variety of equipment parts.", + "factoryName": "Advanced Composite Factory", + "icon": "ware_advancedcomposites", + "volume": 32, + "transport": "container", + "price": { + "min": 432, + "max": 648, + "avg": 540 + }, + "group": "hightech", + "production": [ + { + "time": 300, + "amount": 54, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "energycells", + "amount": 50 + }, + { + "ware": "graphene", + "amount": 80 + }, + { + "ware": "refinedmetals", + "amount": 80 + } + ], + "effects": [ + { + "type": "work", + "product": 0.34 + } + ] + }, + { + "time": 300, + "amount": 54, + "method": "teladi", + "name": "Teladi", + "wares": [ + { + "ware": "energycells", + "amount": 50 + }, + { + "ware": "graphene", + "amount": 80 + }, + { + "ware": "teladianium", + "amount": 58 + } + ], + "effects": [ + { + "type": "work", + "product": 0.34 + } + ] + } + ] + }, + { + "id": "advancedelectronics", + "version": 0, + "name": "Advanced Electronics", + "description": "Designed specifically to work alongside weapon and turret components, it is a variety of advanced electronics that allow different weapons and turrets to have a range of turning speeds, fire rates and cooldowns. Whereas field coils for shields and antimatter converters for engines are more modular and can be used 'across the board', different weapons and turrets expect different electronic systems to be used in order to ensure the correct properties. However, as all equipment is built and repaired on demand, all advanced electronics are shipped to shipyards and equipment docks together.", + "factoryName": "Advanced Electronics Factory", + "icon": "ware_advancedelectronics", + "volume": 30, + "transport": "container", + "price": { + "min": 710, + "max": 1318, + "avg": 1014 + }, + "group": "shiptech", + "production": [ + { + "time": 720, + "amount": 54, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "energycells", + "amount": 60 + }, + { + "ware": "microchips", + "amount": 44 + }, + { + "ware": "quantumtubes", + "amount": 20 + } + ], + "effects": [ + { + "type": "work", + "product": 0.36 + } + ] + } + ] + }, + { + "id": "antimattercells", + "version": 0, + "name": "Antimatter Cells", + "description": "Highly advanced magnetic storage devices that carry antimatter. Due to the effect of Hawking radiation and their being self-powered, antimatter cells cannot store antimatter indefinitely. They are produced and filled using refined hydrogen and primarily used in the production of engine parts, and also can be miniaturised to be used in claytronics.", + "factoryName": "Antimatter Cell Factory", + "icon": "ware_antimattercells", + "volume": 18, + "transport": "container", + "price": { + "min": 121, + "max": 282, + "avg": 202 + }, + "group": "refined", + "production": [ + { + "time": 120, + "amount": 99, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "energycells", + "amount": 100 + }, + { + "ware": "hydrogen", + "amount": 320 + } + ], + "effects": [ + { + "type": "work", + "product": 0.35 + } + ] + } + ] + }, + { + "id": "antimatterconverters", + "version": 0, + "name": "Antimatter Converters", + "description": "Attached to the antimatter cells used in engine parts for both main engines and thrusters, antimatter converters fine-tune the amount of energy used to a more specific configuration. It is the use of this component that allows so many variations of engine, as their number and set up greatly impact the power and efficiency of the final product.", + "factoryName": "Antimatter Converter Factory", + "icon": "ware_antimatterconverters", + "volume": 10, + "transport": "container", + "price": { + "min": 248, + "max": 461, + "avg": 354 + }, + "group": "shiptech", + "production": [ + { + "time": 300, + "amount": 133, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "advancedcomposites", + "amount": 20 + }, + { + "ware": "energycells", + "amount": 80 + }, + { + "ware": "microchips", + "amount": 30 + } + ], + "effects": [ + { + "type": "work", + "product": 0.39 + } + ] + } + ] + }, + { + "id": "bofu", + "version": 1, + "name": "BoFu", + "description": "BoFu meals are known to be very nutritious and healthy. The Boron love them, and it is said that their pilots can live on just a nugget of BoFu for almost a week.nnBoFu is grown in special BoFu Chemical Labs, from Plankton and other secret ingredients. Even though the Boron are famous among other races for their delicious Stott Spices, the taste of BoFu is no joy to anybody but themselves.", + "factoryName": "BoFu Chemical Lab", + "icon": "ware_bofu", + "volume": 4, + "transport": "container", + "price": { + "min": 61, + "max": 142, + "avg": 101 + }, + "group": "food", + "production": [ + { + "time": 240, + "amount": 82, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "bogas", + "amount": 40 + }, + { + "ware": "energycells", + "amount": 40 + }, + { + "ware": "plankton", + "amount": 120 + } + ], + "effects": [ + { + "type": "work", + "product": 0.38 + } + ] + } + ] + }, + { + "id": "bogas", + "version": 1, + "name": "BoGas", + "description": "The unusual natural resources found on the planet Nishala mean that the planet is really a huge chemical factory. From these many chemicals, the Boron manufacture a unique gas that is used throughout the universe as the ultimate painkiller and anaesthetic.nnAfter the Boron government stopped any commercial use of the natural resources of its planet, BoGas is now artificially reproduced in Synthetic BoGas Breweries throughout the Queendom of Boron.", + "factoryName": "Synthetic BoGas Brewery", + "icon": "ware_bogas", + "volume": 4, + "transport": "container", + "price": { + "min": 44, + "max": 102, + "avg": 73 + }, + "group": "refined", + "production": [ + { + "time": 150, + "amount": 110, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "energycells", + "amount": 40 + }, + { + "ware": "water", + "amount": 100 + } + ], + "effects": [ + { + "type": "work", + "product": 0.46 + } + ] + } + ] + }, + { + "id": "cheltmeat", + "version": 1, + "name": "Chelt Meat", + "description": "Chelts are sea-bound creatures that once roamed the seas and oceans of the Split home planet. The Split harvested them for meat, oil and their skins, which they used to create a tough leather like material. However, Chelts were eventually over-hunted and almost brought to extinction. Nowadays Chelts are grown in space, in Chelt Aquariums, and used to produce food for Split workers to consume.", + "factoryName": "Chelt Aquarium", + "icon": "ware_cheltmeat", + "volume": 7, + "transport": "container", + "price": { + "min": 31, + "max": 72, + "avg": 51 + }, + "group": "agricultural", + "production": [ + { + "time": 450, + "amount": 209, + "method": "default", + "name": "Split", + "wares": [ + { + "ware": "energycells", + "amount": 50 + }, + { + "ware": "water", + "amount": 120 + } + ], + "effects": [ + { + "type": "work", + "product": 0.6 + } + ] + } + ] + }, + { + "id": "claytronics", + "version": 0, + "name": "Claytronics", + "description": "More commonly known as programmable matter, claytronics are made up of millions of individual nanometre-scale computers known as catoms. This technology lives at the heart of any non-Xenon station, used to build anything from internal wiring to computer systems and control mechanisms - effectively everything but the hull of the station itself. Claytronics are always in high-demand, as the universe rebuilds itself after the Jump Gate shutdown.", + "factoryName": "Claytronics Factory", + "icon": "ware_claytronics", + "volume": 24, + "transport": "container", + "price": { + "min": 1734, + "max": 2346, + "avg": 2040 + }, + "group": "shiptech", + "production": [ + { + "time": 900, + "amount": 108, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "antimattercells", + "amount": 100 + }, + { + "ware": "energycells", + "amount": 140 + }, + { + "ware": "microchips", + "amount": 160 + }, + { + "ware": "quantumtubes", + "amount": 100 + } + ], + "effects": [ + { + "type": "work", + "product": 0.34 + } + ] + }, + { + "time": 300, + "amount": 60, + "method": "recycling", + "name": "Recycling", + "wares": [ + { + "ware": "energycells", + "amount": 12000 + }, + { + "ware": "scrapmetal", + "amount": 300 + } + ], + "effects": [ + { + "type": "work", + "product": 0.34 + } + ] + } + ] + }, + { + "id": "computronicsubstrate", + "version": 1, + "name": "Computronic Substrate", + "description": "Computronic Substrate is the advanced Terran version of programmable matter. The \"atoms\" forming the Substrate can mimic virtually all other elements and particles, natural or artificial. This incredible feat, and its wide-spread application, is what makes modern Terran station and ship designs possible.", + "factoryName": "Computronic Substrate Fab", + "icon": "ware_computronicsubstrate", + "volume": 50, + "transport": "container", + "price": { + "min": 7452, + "max": 9108, + "avg": 8280 + }, + "group": "hightech", + "production": [ + { + "time": 600, + "amount": 98, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "energycells", + "amount": 4000 + }, + { + "ware": "hydrogen", + "amount": 2000 + }, + { + "ware": "ore", + "amount": 3000 + }, + { + "ware": "silicon", + "amount": 3000 + } + ], + "effects": [ + { + "type": "work", + "product": 0.1 + } + ] + }, + { + "time": 300, + "amount": 50, + "method": "recycling", + "name": "Recycling", + "wares": [ + { + "ware": "energycells", + "amount": 12500 + }, + { + "ware": "scrapmetal", + "amount": 1000 + } + ], + "effects": [ + { + "type": "work", + "product": 0.1 + } + ] + } + ] + }, + { + "id": "dronecomponents", + "version": 0, + "name": "Drone Components", + "description": "Much like weapon and turret components, drone components have been generalised and standardised across much of the Jump Gate network to be modularly used in all kinds of drone, making them a highly sought-after resource. Drone components are directly shipped to shipyards, equipment docks and stations to source drone-building, which is done on-demand as and when it is necessary.", + "factoryName": "Drone Component Factory", + "icon": "ware_dronecomponents", + "volume": 30, + "transport": "container", + "price": { + "min": 685, + "max": 1142, + "avg": 914 + }, + "group": "shiptech", + "production": [ + { + "time": 1200, + "amount": 105, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "energycells", + "amount": 60 + }, + { + "ware": "engineparts", + "amount": 20 + }, + { + "ware": "hullparts", + "amount": 20 + }, + { + "ware": "microchips", + "amount": 20 + }, + { + "ware": "scanningarrays", + "amount": 40 + } + ], + "effects": [ + { + "type": "work", + "product": 0.43 + } + ] + } + ] + }, + { + "id": "energycells", + "version": 0, + "name": "Energy Cells", + "description": "Contrary to common belief, Energy Cells are not simply glorified batteries; actually, they are sophisticated bio-chemical (or bio-mechanical, depending on technology) devices capable of storing energy near or at 100% efficiency.", + "factoryName": "Solar Power Plant", + "icon": "ware_energycells", + "volume": 1, + "transport": "container", + "price": { + "min": 10, + "max": 22, + "avg": 16 + }, + "group": "energy", + "production": [ + { + "time": 60, + "amount": 175, + "method": "default", + "name": "Universal", + "wares": [], + "effects": [ + { + "type": "sunlight", + "product": 1 + }, + { + "type": "work", + "product": 0.43 + } + ] + }, + { + "time": 60, + "amount": 50, + "method": "terran", + "name": "Terran", + "wares": [], + "effects": [ + { + "type": "sunlight", + "product": 1 + }, + { + "type": "work", + "product": 0.43 + } + ] + } + ] + }, + { + "id": "engineparts", + "version": 0, + "name": "Engine Parts", + "description": "Comprised of a number of different components that make up ship engines, engine parts are delivered straight to the end customer, most commonly shipyards and equipment docks, who then use them themselves to produce or repair engines. While naturally engine parts are a very necessary resource across the entire Jump Gate network, the ability to produce and repair engines on demand, instead of requiring an entirely separate production step for each, has greatly streamlined the universal economy.", + "factoryName": "Engine Part Factory", + "icon": "ware_engineparts", + "volume": 15, + "transport": "container", + "price": { + "min": 128, + "max": 237, + "avg": 182 + }, + "group": "hightech", + "production": [ + { + "time": 900, + "amount": 208, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "antimattercells", + "amount": 80 + }, + { + "ware": "energycells", + "amount": 60 + }, + { + "ware": "refinedmetals", + "amount": 96 + } + ], + "effects": [ + { + "type": "work", + "product": 0.47 + } + ] + }, + { + "time": 900, + "amount": 208, + "method": "teladi", + "name": "Teladi", + "wares": [ + { + "ware": "antimattercells", + "amount": 80 + }, + { + "ware": "energycells", + "amount": 60 + }, + { + "ware": "teladianium", + "amount": 70 + } + ], + "effects": [ + { + "type": "work", + "product": 0.47 + } + ] + } + ] + }, + { + "id": "fieldcoils", + "version": 0, + "name": "Field Coils", + "description": "Used to fine-tune the arrays used on ship and station shielding, field coils allow for much more modulation than using shield components alone. As such shipyards have begun using them to build a much wider variety of shields than was previously available. Like many of the components used on ships - that aren't the hull itself - shield components are shipped straight to shipyards and equipment docks so that shields can be produced on-demand.", + "factoryName": "Field Coil Factory", + "icon": "ware_fieldcoils", + "volume": 15, + "transport": "container", + "price": { + "min": 247, + "max": 576, + "avg": 412 + }, + "group": "shiptech", + "production": [ + { + "time": 600, + "amount": 175, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "energycells", + "amount": 60 + }, + { + "ware": "plasmaconductors", + "amount": 40 + }, + { + "ware": "quantumtubes", + "amount": 43 + } + ], + "effects": [ + { + "type": "work", + "product": 0.43 + } + ] + } + ] + }, + { + "id": "foodrations", + "version": 0, + "name": "Food Rations", + "description": "Food Rations come in a large variety; as far as rations for the species Homo sapiens are concerned, they mainly contain wheat, freeze-dried meat and different spices as well as vitamins and essential minerals.", + "factoryName": "Food Ration Factory", + "icon": "ware_foodrations", + "volume": 1, + "transport": "container", + "illegal": [ + "loanshark" + ], + "price": { + "min": 12, + "max": 29, + "avg": 21 + }, + "group": "food", + "production": [ + { + "time": 240, + "amount": 460, + "method": "default", + "name": "Argon", + "wares": [ + { + "ware": "energycells", + "amount": 100 + }, + { + "ware": "meat", + "amount": 40 + }, + { + "ware": "spices", + "amount": 40 + }, + { + "ware": "wheat", + "amount": 40 + } + ], + "effects": [ + { + "type": "work", + "product": 0.35 + } + ] + } + ] + }, + { + "id": "graphene", + "version": 0, + "name": "Graphene", + "description": "Produced from refined and heavily modified methane gas in the modern era, graphene is a semi-metal that has many uncommon properties. Due to its strength and resistance to heat and electricity, it is used to produce a variety of tech-level resources, and is also used to help in the reinforcement of hull parts.", + "factoryName": "Graphene Refinery", + "icon": "ware_graphene", + "volume": 20, + "transport": "container", + "price": { + "min": 100, + "max": 233, + "avg": 166 + }, + "group": "refined", + "production": [ + { + "time": 240, + "amount": 96, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "energycells", + "amount": 80 + }, + { + "ware": "methane", + "amount": 320 + } + ], + "effects": [ + { + "type": "work", + "product": 0.46 + } + ] + } + ] + }, + { + "id": "helium", + "version": 0, + "name": "Helium", + "description": "A colourless, odourless and non-toxic noble gas, helium is found in great abundance in gas nebulas across the entire Jump Gate network and is usually collected by mining ships to be refined into superfluid coolant.", + "factoryName": "Helium Extractor", + "icon": "ware_helium", + "volume": 6, + "transport": "liquid", + "price": { + "min": 37, + "max": 51, + "avg": 44 + }, + "group": "gases", + "production": [] + }, + { + "id": "hullparts", + "version": 0, + "name": "Hull Parts", + "description": "Made from refined metals or teladianium, Hull Parts are most commonly used to build the hulls of ships and stations, though they do have some other uses such as in drones and weapons. Usually layered for additional protection, and using other compounds to further reinforce, Hull Parts are still cheap to produce - a bonus, considering their position as the most frequently used resource in the Jump Gate network.", + "factoryName": "Hull Part Factory", + "icon": "ware_hullparts", + "volume": 12, + "transport": "container", + "price": { + "min": 146, + "max": 272, + "avg": 209 + }, + "group": "hightech", + "production": [ + { + "time": 900, + "amount": 294, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "energycells", + "amount": 80 + }, + { + "ware": "graphene", + "amount": 40 + }, + { + "ware": "refinedmetals", + "amount": 280 + } + ], + "effects": [ + { + "type": "work", + "product": 0.37 + } + ] + }, + { + "time": 300, + "amount": 200, + "method": "recycling", + "name": "Recycling", + "wares": [ + { + "ware": "energycells", + "amount": 3500 + }, + { + "ware": "scrapmetal", + "amount": 75 + } + ], + "effects": [ + { + "type": "work", + "product": 0.37 + } + ] + }, + { + "time": 900, + "amount": 294, + "method": "teladi", + "name": "Teladi", + "wares": [ + { + "ware": "energycells", + "amount": 80 + }, + { + "ware": "graphene", + "amount": 40 + }, + { + "ware": "teladianium", + "amount": 204 + } + ], + "effects": [ + { + "type": "work", + "product": 0.37 + } + ] + } + ] + }, + { + "id": "hydrogen", + "version": 0, + "name": "Hydrogen", + "description": "Historically, Hydrogen has been used mainly in H-fusion generators. These days however, with the rise of sustainable M/AM mass conversion, Hydrogen is routinely converted into anti-Hydrogen for use in Antimatter Cells.", + "factoryName": "Hydrogen Extractor", + "icon": "ware_hydrogen", + "volume": 6, + "transport": "liquid", + "price": { + "min": 49, + "max": 67, + "avg": 58 + }, + "group": "gases", + "production": [] + }, + { + "id": "ice", + "version": 0, + "name": "Ice", + "description": "H2O in its solid state of aggregation, used for industrial water supplies and general consumption after treatment.", + "factoryName": "Ice Mine", + "icon": "ware_ice", + "volume": 8, + "transport": "solid", + "illegal": [ + "loanshark" + ], + "price": { + "min": 26, + "max": 35, + "avg": 30 + }, + "group": "ice", + "production": [] + }, + { + "id": "majadust", + "version": 0, + "name": "Maja Dust", + "description": "Chemically processed from crushed maja snail shells, maja dust is a relaxant and hallucinogenic sold as a powder-substance that is inhaled. Though any official Paranid government would have the populous believe that maja dust is not commonly consumed, it is thought to be highly likely, particularly in light of the ongoing Paranid civil war, that many Paranid and non-Paranid alike are partaking in the outlawed substance.", + "factoryName": "Maja Dust Factory", + "icon": "ware_majadust", + "volume": 6, + "transport": "container", + "illegal": [ + "holyorder", + "paranid" + ], + "price": { + "min": 94, + "max": 323, + "avg": 208 + }, + "group": "pharmaceutical", + "production": [ + { + "time": 600, + "amount": 64, + "method": "default", + "name": "Paranid", + "wares": [ + { + "ware": "energycells", + "amount": 40 + }, + { + "ware": "majasnails", + "amount": 120 + }, + { + "ware": "spices", + "amount": 60 + } + ], + "effects": [ + { + "type": "work", + "product": 0.75 + } + ] + } + ] + }, + { + "id": "majasnails", + "version": 0, + "name": "Maja Snails", + "description": "Grown across many Paranid colonies, as well as in tanks across Paranid space, maja snails provide Paranid with a good number of the nutrients they need to survive. Commonly treated very well, once a snail dies its shell and flesh are both processed as part of soja husk, along with soja beans. The shell of the maja snail is also commonly used as the main ingredient of the drug known as maja dust.", + "factoryName": "Maja Snail Farm", + "icon": "ware_majasnails", + "volume": 6, + "transport": "container", + "price": { + "min": 35, + "max": 81, + "avg": 58 + }, + "group": "agricultural", + "production": [ + { + "time": 450, + "amount": 146, + "method": "default", + "name": "Paranid", + "wares": [ + { + "ware": "energycells", + "amount": 40 + }, + { + "ware": "water", + "amount": 100 + } + ], + "effects": [ + { + "type": "work", + "product": 0.59 + } + ] + } + ] + }, + { + "id": "meat", + "version": 0, + "name": "Meat", + "description": "Though meat comes in a great variety, the most sought-after type as of late is so-called 'vegan meat', synthesised and cloned not from real animals, but from cell cultures. However, real Argnu meat is still popular within the human population of many worlds.", + "factoryName": "Meat Factory", + "icon": "ware_meat", + "volume": 6, + "transport": "container", + "price": { + "min": 29, + "max": 68, + "avg": 48 + }, + "group": "agricultural", + "production": [ + { + "time": 450, + "amount": 290, + "method": "default", + "name": "Argon", + "wares": [ + { + "ware": "energycells", + "amount": 80 + }, + { + "ware": "water", + "amount": 100 + } + ], + "effects": [ + { + "type": "work", + "product": 0.33 + } + ] + } + ] + }, + { + "id": "medicalsupplies", + "version": 0, + "name": "Medical Supplies", + "description": "Medical supplies contain a number of different concoctions and remedies used to keep station workforce healthier and happier during their time aboard. Completely natural in design, these supplies have been vetted by both the Argon Federation and Godrealm of the Paranid to ensure they are both legal and safe, and thus there is no licence necessary to carry or supply them.", + "factoryName": "Medical Supply Factory", + "icon": "ware_medicalsupplies", + "volume": 2, + "transport": "container", + "price": { + "min": 43, + "max": 89, + "avg": 66 + }, + "group": "pharmaceutical", + "production": [ + { + "time": 300, + "amount": 208, + "method": "default", + "name": "Argon", + "wares": [ + { + "ware": "energycells", + "amount": 100 + }, + { + "ware": "spices", + "amount": 40 + }, + { + "ware": "water", + "amount": 60 + }, + { + "ware": "wheat", + "amount": 30 + } + ], + "effects": [ + { + "type": "work", + "product": 0.28 + } + ] + }, + { + "time": 300, + "amount": 208, + "method": "paranid", + "name": "Paranid", + "wares": [ + { + "ware": "energycells", + "amount": 100 + }, + { + "ware": "sojabeans", + "amount": 10 + }, + { + "ware": "spices", + "amount": 40 + }, + { + "ware": "water", + "amount": 60 + } + ], + "effects": [ + { + "type": "work", + "product": 0.28 + } + ] + }, + { + "time": 300, + "amount": 208, + "method": "teladi", + "name": "Teladi", + "wares": [ + { + "ware": "energycells", + "amount": 100 + }, + { + "ware": "spices", + "amount": 40 + }, + { + "ware": "sunriseflowers", + "amount": 12 + }, + { + "ware": "water", + "amount": 60 + } + ], + "effects": [ + { + "type": "work", + "product": 0.28 + } + ] + }, + { + "time": 300, + "amount": 208, + "method": "split", + "name": "Split", + "wares": [ + { + "ware": "energycells", + "amount": 100 + }, + { + "ware": "scruffinfruits", + "amount": 30 + }, + { + "ware": "spices", + "amount": 60 + }, + { + "ware": "water", + "amount": 60 + } + ], + "effects": [ + { + "type": "work", + "product": 0.28 + } + ] + }, + { + "time": 300, + "amount": 140, + "method": "terran", + "name": "Terran", + "wares": [ + { + "ware": "energycells", + "amount": 100 + }, + { + "ware": "ice", + "amount": 50 + }, + { + "ware": "proteinpaste", + "amount": 24 + } + ], + "effects": [ + { + "type": "work", + "product": 0.59 + } + ] + }, + { + "time": 300, + "amount": 208, + "method": "boron", + "name": "Boron", + "wares": [ + { + "ware": "energycells", + "amount": 100 + }, + { + "ware": "plankton", + "amount": 95 + }, + { + "ware": "water", + "amount": 60 + } + ], + "effects": [ + { + "type": "work", + "product": 0.28 + } + ] + } + ] + }, + { + "id": "metallicmicrolattice", + "version": 1, + "name": "Metallic Microlattice", + "description": "A metallic microlattice is a synthetic porous metallic material consisting of an ultra-light metal foam. One of the many uses of microlattices is in the production of extremely lightweight and efficient structures for structural reinforcement and heat transfer in high-performance vehicles.", + "factoryName": "Microlattice Factory", + "icon": "ware_metallicmicrolattice", + "volume": 1, + "transport": "container", + "price": { + "min": 42, + "max": 57, + "avg": 50 + }, + "group": "hightech", + "production": [ + { + "time": 180, + "amount": 190, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "energycells", + "amount": 50 + }, + { + "ware": "helium", + "amount": 130 + }, + { + "ware": "ore", + "amount": 50 + } + ], + "effects": [ + { + "type": "work", + "product": 0.2 + } + ] + } + ] + }, + { + "id": "methane", + "version": 0, + "name": "Methane", + "description": "Found in ample supply in gas nebulas across the Jump Gate network, methane (CH4) is collected by mining ships and taken to refineries to be processed into graphene.", + "factoryName": "Methane Extractor", + "icon": "ware_methane", + "volume": 6, + "transport": "liquid", + "price": { + "min": 41, + "max": 55, + "avg": 48 + }, + "group": "gases", + "production": [] + }, + { + "id": "microchips", + "version": 0, + "name": "Microchips", + "description": "Used in a wide variety of equipment parts, micro-chips are produced using silicon wafers, which, while fragile, allows them to conduct at a much higher rate. This, in turn, allows far better processing in the equipment that uses the micro-chips, which includes many advanced electronics and components.", + "factoryName": "Microchip Factory", + "icon": "ware_microchips", + "volume": 22, + "transport": "container", + "price": { + "min": 805, + "max": 1090, + "avg": 948 + }, + "group": "hightech", + "production": [ + { + "time": 600, + "amount": 72, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "energycells", + "amount": 50 + }, + { + "ware": "siliconwafers", + "amount": 200 + } + ], + "effects": [ + { + "type": "work", + "product": 0.36 + } + ] + } + ] + }, + { + "id": "missilecomponents", + "version": 0, + "name": "Missile Components", + "description": "Missile components are used in the construction of all missiles, often with a different number and configuration making up the construction of each missile. As with ship equipment, missiles are built on demand, and so missile components are bought at and found at shipyards and equipment docks, where most pilots can order missiles on demand.", + "factoryName": "Missile Component Factory", + "icon": "ware_missilecomponents", + "volume": 2, + "transport": "container", + "price": { + "min": 6, + "max": 13, + "avg": 9 + }, + "group": "shiptech", + "production": [ + { + "time": 900, + "amount": 281, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "advancedcomposites", + "amount": 2 + }, + { + "ware": "energycells", + "amount": 20 + }, + { + "ware": "hullparts", + "amount": 2 + } + ], + "effects": [ + { + "type": "work", + "product": 0.53 + } + ] + } + ] + }, + { + "id": "nividium", + "version": 0, + "name": "Nividium", + "description": "A rare metal found in small pockets in asteroids, Nividium has been cut out of any economic use by the improved efficiency with which businesses have been able to use ore and silicon, much easier to find and cheaper to process. However, Nividium is still valuable, and is often transported planet-side to be made into jewelry and art.", + "factoryName": "Nividium Mine", + "icon": "ware_nividium", + "volume": 10, + "transport": "solid", + "price": { + "min": 434, + "max": 587, + "avg": 510 + }, + "group": "minerals", + "production": [] + }, + { + "id": "nostropoil", + "version": 0, + "name": "Nostrop Oil", + "description": "Nostrop oil is squeezed from the leaves of sunrise flowers and mixed with water. Though the Teladi favour it for its simplicity and nutrients, other species have clearly indicated that nostrop oil does not in fact taste at all pleasing.", + "factoryName": "Nostrop Oil Factory", + "icon": "ware_nostropoil", + "volume": 1, + "transport": "container", + "price": { + "min": 20, + "max": 47, + "avg": 34 + }, + "group": "food", + "production": [ + { + "time": 300, + "amount": 500, + "method": "default", + "name": "Teladi", + "wares": [ + { + "ware": "energycells", + "amount": 100 + }, + { + "ware": "spices", + "amount": 40 + }, + { + "ware": "sunriseflowers", + "amount": 40 + }, + { + "ware": "water", + "amount": 60 + } + ], + "effects": [ + { + "type": "work", + "product": 0.2 + } + ] + } + ] + }, { "id": "ore", - "name": "Raw Ore", - "description": "Unprocessed asteroid ore used as the main industrial feedstock.", - "type": "resource", - "cargoKind": "solid", - "volume": 1.2 + "version": 0, + "name": "Ore", + "description": "Today ore tends not to be mined on habitable worlds, but harvested from other celestial bodies, mainly asteroids. As could be expected, Ore must always be refined to be of any use.", + "factoryName": "Ore Mine", + "icon": "ware_ore", + "volume": 10, + "transport": "solid", + "price": { + "min": 43, + "max": 58, + "avg": 50 + }, + "group": "minerals", + "production": [] + }, + { + "id": "plankton", + "version": 1, + "name": "Plankton", + "description": "Boron plankton is found as a scum-like layer that floats on the surface of the chemical swamps on the Planet Nishala. It forms naturally where certain chemicals, that are found in the swamp, mix with the ammonia-based atmosphere.nnThis scum is collected, and then treated with additives and other Boron minerals, to produce a wide range of different, nutritious spices. Since the Boron seas are now completely protected from any industrial usage, Plankton is mainly produced in space, aboard huge Plankton Farms that can be found everywhere in the Queendom of Boron.", + "factoryName": "Plankton Farm", + "icon": "ware_plankton", + "volume": 1, + "transport": "container", + "price": { + "min": 11, + "max": 25, + "avg": 18 + }, + "group": "agricultural", + "production": [ + { + "time": 400, + "amount": 275, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "energycells", + "amount": 20 + }, + { + "ware": "water", + "amount": 50 + } + ], + "effects": [ + { + "type": "work", + "product": 0.4 + } + ] + } + ] + }, + { + "id": "plasmaconductors", + "version": 0, + "name": "Plasma Conductors", + "description": "These conductors are designed to allow the flow of plasma through a component at the greatest possible efficiency. Though made relatively cheap to produce through years of research and development, plasma conductors remain highly complex pieces of technology. They are used primarily in the construction of weapon and shield components.", + "factoryName": "Plasma Conductor Factory", + "icon": "ware_plasmaconductors", + "volume": 32, + "transport": "container", + "price": { + "min": 769, + "max": 1282, + "avg": 1026 + }, + "group": "hightech", + "production": [ + { + "time": 900, + "amount": 44, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "energycells", + "amount": 60 + }, + { + "ware": "graphene", + "amount": 96 + }, + { + "ware": "superfluidcoolant", + "amount": 140 + } + ], + "effects": [ + { + "type": "work", + "product": 0.43 + } + ] + } + ] + }, + { + "id": "proteinpaste", + "version": 1, + "name": "Protein Paste", + "description": "Protein Paste is a concentrated blend of meat and vegetable proteins used to produce specialised food products.", + "factoryName": "Protein Processing Plant", + "icon": "ware_proteinpaste", + "volume": 4, + "transport": "container", + "price": { + "min": 57, + "max": 134, + "avg": 96 + }, + "group": "agricultural", + "production": [ + { + "time": 300, + "amount": 219, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "energycells", + "amount": 80 + }, + { + "ware": "ice", + "amount": 80 + }, + { + "ware": "methane", + "amount": 200 + } + ], + "effects": [ + { + "type": "work", + "product": 0.3 + } + ] + } + ] + }, + { + "id": "quantumtubes", + "version": 0, + "name": "Quantum Tubes", + "description": "An example of complex technology being made cheap through years of continuous research, no one outside of those manufacturing the technology quite knows how quantum tubes work. Though the outer wiring itself it easy to make and understand, the internal structure and what the wiring actually carries must be constructed only by those with countless hours of study and examination under their belts; otherwise risking catastrophic failures that can lead to entire shutdowns of the equipment in which they are used.", + "factoryName": "Quantum Tube Factory", + "icon": "ware_quantumtubes", + "volume": 22, + "transport": "container", + "price": { + "min": 225, + "max": 375, + "avg": 300 + }, + "group": "hightech", + "production": [ + { + "time": 720, + "amount": 94, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "energycells", + "amount": 40 + }, + { + "ware": "graphene", + "amount": 116 + }, + { + "ware": "superfluidcoolant", + "amount": 30 + } + ], + "effects": [ + { + "type": "work", + "product": 0.53 + } + ] + } + ] + }, + { + "id": "rawscrap", + "version": 0, + "name": "Raw Scrap", + "description": "Raw Scrap is found in wrecks. It is extracted from the wrecks of capital ships and stations, and broken down into Scrap Cubes by Compactor ships. These Scrap Cubes, as well as whole smaller wrecks, can be collected by Tug ships and taken to Scrap Processors, where they are melted down into Scrap Metal for further recycling.", + "factoryName": "", + "icon": "ware_scrapmetal", + "volume": 10, + "transport": "solid", + "price": { + "min": 153, + "max": 207, + "avg": 180 + }, + "group": "refined", + "production": [] + }, + { + "id": "refinedmetals", + "version": 0, + "name": "Refined Metals", + "description": "Refined from ore found in countless asteroids across the Jump Gate network, these refined metals are cheap to produce and easy to reinforce, making them perfect for use in constructing all kinds of Hull Parts, not just for ships and stations, but also for smaller components that used across all of space.", + "factoryName": "Ore Refinery", + "icon": "ware_refinedmetals", + "volume": 14, + "transport": "container", + "price": { + "min": 89, + "max": 207, + "avg": 148 + }, + "group": "refined", + "production": [ + { + "time": 150, + "amount": 88, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "energycells", + "amount": 90 + }, + { + "ware": "ore", + "amount": 240 + } + ], + "effects": [ + { + "type": "work", + "product": 0.43 + } + ] + } + ] + }, + { + "id": "scanningarrays", + "version": 0, + "name": "Scanning Arrays", + "description": "Scanning arrays have seen elegant redesign over the years so that ships and stations do not risk fragile antennas being broken or destroyed by collisions. Now entirely internal systems, scanning arrays are used not just in ship and station scanners and radars, but are also used in the targeting systems supplied with turret and drone components.", + "factoryName": "Scanning Array Factory", + "icon": "ware_scanningarrays", + "volume": 38, + "transport": "container", + "price": { + "min": 842, + "max": 1264, + "avg": 1053 + }, + "group": "hightech", + "production": [ + { + "time": 600, + "amount": 36, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "energycells", + "amount": 60 + }, + { + "ware": "refinedmetals", + "amount": 100 + }, + { + "ware": "siliconwafers", + "amount": 60 + } + ], + "effects": [ + { + "type": "work", + "product": 0.38 + } + ] + }, + { + "time": 600, + "amount": 36, + "method": "teladi", + "name": "Teladi", + "wares": [ + { + "ware": "energycells", + "amount": 60 + }, + { + "ware": "siliconwafers", + "amount": 60 + }, + { + "ware": "teladianium", + "amount": 73 + } + ], + "effects": [ + { + "type": "work", + "product": 0.38 + } + ] + } + ] + }, + { + "id": "scrapmetal", + "version": 0, + "name": "Scrap Metal", + "description": "Scrap Metal has become established as a vital part of severely resource-deprived economies. Usually obtained from salvaged station segments or recovered ship wrecks, Scrap Metal can be recycled into other, more valuable, materials.", + "factoryName": "Scrap Processing Factory", + "icon": "ware_scrapmetal", + "volume": 10, + "transport": "solid", + "price": { + "min": 318, + "max": 431, + "avg": 375 + }, + "group": "refined", + "production": [ + { + "time": 60, + "amount": 1, + "method": "processing", + "name": "Processing", + "wares": [ + { + "ware": "energycells", + "amount": 10 + }, + { + "ware": "rawscrap", + "amount": 1 + } + ], + "effects": [] + } + ] + }, + { + "id": "scruffinfruits", + "version": 1, + "name": "Scruffin Fruit", + "description": "Scruffin are fruit similar to sweet potatoes. They are grown by Split farmers in large, open fields on a number of planets, as well as in space aboard large installations known as Scruffin Farms. Scruffin flesh is a versatile foodstuff that, when processed, provides the basis of a number of Split food types. Although Scruffin are traded both inside and outside Split territory, they are mainly in demand in areas where Split workers are in abundance.", + "factoryName": "Scruffin Farm", + "icon": "ware_scruffinfruit", + "volume": 6, + "transport": "container", + "price": { + "min": 17, + "max": 40, + "avg": 28 + }, + "group": "agricultural", + "production": [ + { + "time": 300, + "amount": 255, + "method": "default", + "name": "Split", + "wares": [ + { + "ware": "energycells", + "amount": 30 + }, + { + "ware": "water", + "amount": 80 + } + ], + "effects": [ + { + "type": "work", + "product": 0.53 + } + ] + } + ] + }, + { + "id": "shieldcomponents", + "version": 0, + "name": "Shield Components", + "description": "From generators to coils that maintain energy over time, shield components are a wide arrange of technologies that provide everything necessary to build a variety of shields. Completely modular, each part can be used in each shield, which has led to a wide variety of new-generation shields being produced in recent years. As with all ship equipment, shields are built on-demand, and so shield components are produced in factories and shipped straight to shipyards and equipment docks where they can be more freely used for construction and repair.", + "factoryName": "Shield Component Factory", + "icon": "ware_shieldcomponents", + "volume": 10, + "transport": "container", + "price": { + "min": 113, + "max": 264, + "avg": 188 + }, + "group": "shiptech", + "production": [ + { + "time": 1200, + "amount": 193, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "energycells", + "amount": 70 + }, + { + "ware": "plasmaconductors", + "amount": 20 + }, + { + "ware": "quantumtubes", + "amount": 20 + } + ], + "effects": [ + { + "type": "work", + "product": 0.43 + } + ] + } + ] + }, + { + "id": "silicon", + "version": 0, + "name": "Silicon", + "description": "Silicon, required for the production of the most common types of silicon wafers, is usually mined or harvested from asteroids or other uninhabited celestial bodies.", + "factoryName": "Silicon Mine", + "icon": "ware_silicon", + "volume": 10, + "transport": "solid", + "price": { + "min": 111, + "max": 150, + "avg": 130 + }, + "group": "minerals", + "production": [] + }, + { + "id": "siliconcarbide", + "version": 1, + "name": "Silicon Carbide", + "description": "Silicon Carbide is a semiconductor containing silicon and carbon. It can be used to form very hard ceramics that are widely used in applications requiring high endurance. Its electrical properties make the material suitable for dealing with high temperatures and voltages. Consequently Silicon Carbide is a key component in the manufacture of equipment such as ship engines or weapons.", + "factoryName": "Silicon Carbide Mill", + "icon": "ware_siliconcarbide", + "volume": 20, + "transport": "container", + "price": { + "min": 1202, + "max": 1627, + "avg": 1414 + }, + "group": "hightech", + "production": [ + { + "time": 300, + "amount": 48, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "energycells", + "amount": 200 + }, + { + "ware": "metallicmicrolattice", + "amount": 2 + }, + { + "ware": "methane", + "amount": 400 + }, + { + "ware": "silicon", + "amount": 300 + } + ], + "effects": [ + { + "type": "work", + "product": 0.2 + } + ] + }, + { + "time": 300, + "amount": 60, + "method": "recycling", + "name": "Recycling", + "wares": [ + { + "ware": "energycells", + "amount": 4000 + }, + { + "ware": "scrapmetal", + "amount": 250 + } + ], + "effects": [ + { + "type": "work", + "product": 0.2 + } + ] + } + ] + }, + { + "id": "siliconwafers", + "version": 0, + "name": "Silicon Wafers", + "description": "If a technology requires any kind of chip, it is highly likely that is uses silicon wafers. Light, efficient and cheap to produce, these wafers are usually layered or constructed in hexagonal meshes to allow for quick transfer of data across a component.", + "factoryName": "Silicon Refinery", + "icon": "ware_siliconwafers", + "volume": 18, + "transport": "container", + "price": { + "min": 180, + "max": 419, + "avg": 299 + }, + "group": "refined", + "production": [ + { + "time": 180, + "amount": 107, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "energycells", + "amount": 90 + }, + { + "ware": "silicon", + "amount": 240 + } + ], + "effects": [ + { + "type": "work", + "product": 0.37 + } + ] + } + ] + }, + { + "id": "smartchips", + "version": 0, + "name": "Smart Chips", + "description": "A specialised form of microchip that contains a small amount of heuristic programming, these chips cannot allow a system to learn, but can allow for small, snap intelligent decision-making that assists in targeting systems and makes autonomous piloting more accurate. These chips are primarily used in guided missiles and drones.", + "factoryName": "Smart Chip Factory", + "icon": "ware_smartchips", + "volume": 2, + "transport": "container", + "price": { + "min": 46, + "max": 69, + "avg": 57 + }, + "group": "shiptech", + "production": [ + { + "time": 600, + "amount": 143, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "energycells", + "amount": 50 + }, + { + "ware": "siliconwafers", + "amount": 20 + } + ], + "effects": [ + { + "type": "work", + "product": 0.37 + } + ] + } + ] + }, + { + "id": "sojabeans", + "version": 0, + "name": "Soja Beans", + "description": "A small bean grown all across Paranid space, the soja bean adds flavour and nutritional value to the soja husk; the Paranids' primary food source. While this is its primary purpose, on many Paranid colonies it is also dried and ground into a powder and mixed with water, creating a flavoured and healthy drink that provides Paranid with ample energy.", + "factoryName": "Soja Bean Farm", + "icon": "ware_sojabeans", + "volume": 5, + "transport": "container", + "price": { + "min": 40, + "max": 93, + "avg": 67 + }, + "group": "agricultural", + "production": [ + { + "time": 300, + "amount": 104, + "method": "default", + "name": "Paranid", + "wares": [ + { + "ware": "energycells", + "amount": 30 + }, + { + "ware": "water", + "amount": 80 + } + ], + "effects": [ + { + "type": "work", + "product": 0.48 + } + ] + } + ] + }, + { + "id": "sojahusk", + "version": 0, + "name": "Soja Husk", + "description": "A Paranid dish; soja beans that have been crushed into a paste and mixed with the flesh of the maja snail, then served in a maja snail shell, soja husk is accepted as both a tasteful and nutritious meal by the Paranid, though there are few non-Paranid who have dared try it.", + "factoryName": "Soja Husk Factory", + "icon": "ware_sojahusk", + "volume": 1, + "transport": "container", + "price": { + "min": 19, + "max": 45, + "avg": 32 + }, + "group": "food", + "production": [ + { + "time": 300, + "amount": 350, + "method": "default", + "name": "Paranid", + "wares": [ + { + "ware": "energycells", + "amount": 80 + }, + { + "ware": "majasnails", + "amount": 50 + }, + { + "ware": "sojabeans", + "amount": 40 + }, + { + "ware": "spices", + "amount": 20 + } + ], + "effects": [ + { + "type": "work", + "product": 0.37 + } + ] + } + ] + }, + { + "id": "spacefuel", + "version": 0, + "name": "Spacefuel", + "description": "Spacefuel is made from processing and distilling wheat, water and a blend of spices. It is a cheap but strong alcoholic beverage that has been made illegal to trade in bulk across the Jump Gate network in an attempt to avoid drunken accidents on both ships and stations. In order to sell spacefuel as a beverage, one must be a licenced bar owner.", + "factoryName": "Spacefuel Factory", + "icon": "ware_spacefuel", + "volume": 2, + "transport": "container", + "illegal": [ + "antigone", + "argon", + "pioneers", + "terran" + ], + "price": { + "min": 60, + "max": 207, + "avg": 133 + }, + "group": "pharmaceutical", + "production": [ + { + "time": 480, + "amount": 98, + "method": "default", + "name": "Argon", + "wares": [ + { + "ware": "energycells", + "amount": 40 + }, + { + "ware": "water", + "amount": 100 + }, + { + "ware": "wheat", + "amount": 80 + } + ], + "effects": [ + { + "type": "work", + "product": 0.69 + } + ] + } + ] + }, + { + "id": "spaceweed", + "version": 0, + "name": "Spaceweed", + "description": "While seen as part of every-day life in Teladi society, spaceweed has been made illegal in both Argon and Paranid space, as it is seen as a dangerous narcotic. This point is argued heavily by many of those who partake in the drug, which is usually dried, crushed and then smoked, but attempts to legalise it have as of yet failed.", + "factoryName": "Spaceweed Farm", + "icon": "ware_spaceweed", + "volume": 3, + "transport": "container", + "illegal": [ + "antigone", + "argon", + "holyorder", + "paranid", + "terran" + ], + "price": { + "min": 75, + "max": 257, + "avg": 166 + }, + "group": "pharmaceutical", + "production": [ + { + "time": 600, + "amount": 183, + "method": "default", + "name": "Teladi", + "wares": [ + { + "ware": "energycells", + "amount": 140 + }, + { + "ware": "spices", + "amount": 40 + }, + { + "ware": "swampplant", + "amount": 120 + } + ], + "effects": [ + { + "type": "work", + "product": 0.7 + } + ] + } + ] + }, + { + "id": "spices", + "version": 0, + "name": "Spices", + "description": "Spices are used in many food and pharmaceutical products; primarily as an agent to add extra flavour, but also sometimes due to other properties that some are known to have, ranging from acting as a relaxant to a mild hallucinogenic. Factories that legally produce spices are commonly inspected to make sure their produce is in line with the local law, but as they are often shipped as a mixture, it is sometimes difficult to keep an eye on which spice is being used for which purpose.", + "factoryName": "Spice Farm", + "icon": "ware_spices", + "volume": 3, + "transport": "container", + "price": { + "min": 12, + "max": 28, + "avg": 20 + }, + "group": "agricultural", + "production": [ + { + "time": 600, + "amount": 500, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "energycells", + "amount": 40 + }, + { + "ware": "water", + "amount": 80 + } + ], + "effects": [ + { + "type": "work", + "product": 0.4 + } + ] + } + ] + }, + { + "id": "stimulants", + "version": 1, + "name": "Stimulants", + "description": "The term Stimulants has evolved to refer to the type of drugs that increase activity of the central nervous system and the body. The manufacture, distribution and use of Stimulants is considered illegal by the Terran government. However, there are persistent rumours that they are regularly used for specific military purposes, such as enhancing the combat performance of pilots.", + "factoryName": "Stimulants Lab", + "icon": "ware_stimulants", + "volume": 12, + "transport": "container", + "price": { + "min": 153, + "max": 527, + "avg": 340 + }, + "group": "pharmaceutical", + "production": [ + { + "time": 300, + "amount": 98, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "energycells", + "amount": 80 + }, + { + "ware": "helium", + "amount": 400 + }, + { + "ware": "silicon", + "amount": 20 + } + ], + "effects": [ + { + "type": "work", + "product": 0.65 + } + ] + } + ] + }, + { + "id": "sunriseflowers", + "version": 0, + "name": "Sunrise Flowers", + "description": "Known to grow naturally only on Ianamus Zura, the Teladi mastered the art of bio-engineering a near-identical but still artificially grown sunrise flower long ago. When squeezed, the leaves of the sunrise flower produce a bitter-tasting oil that while despised by other species, the Teladi appreciate as an adequate food source.", + "factoryName": "Sunrise Flower Farm", + "icon": "ware_sunriseflowers", + "volume": 5, + "transport": "container", + "price": { + "min": 48, + "max": 112, + "avg": 80 + }, + "group": "agricultural", + "production": [ + { + "time": 300, + "amount": 100, + "method": "default", + "name": "Teladi", + "wares": [ + { + "ware": "energycells", + "amount": 30 + }, + { + "ware": "water", + "amount": 80 + } + ], + "effects": [ + { + "type": "work", + "product": 0.28 + } + ] + } + ] + }, + { + "id": "superfluidcoolant", + "version": 0, + "name": "Superfluid Coolant", + "description": "Designed with superfluidity to ensure both efficiency and endurance, this coolant is used in complex technical components such as plasma conductors and quantum tubes to protect said components from overheating. The losslessness of kinetic energy afforded by the coolant's superfluidity means that it can continue to circulate around the component for a much longer time before needing to be recycled. This has led to such components lifetimes being greatly increased.", + "factoryName": "Helium Refinery", + "icon": "ware_superfluidcoolant", + "volume": 16, + "transport": "container", + "price": { + "min": 90, + "max": 211, + "avg": 150 + }, + "group": "refined", + "production": [ + { + "time": 240, + "amount": 95, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "energycells", + "amount": 60 + }, + { + "ware": "helium", + "amount": 320 + } + ], + "effects": [ + { + "type": "work", + "product": 0.49 + } + ] + } + ] + }, + { + "id": "swampplant", + "version": 0, + "name": "Swamp Plant", + "description": "Cultivated in a warm and humid environment, swamp plant is a small moss-like plant known to have mildly narcotic properties; the reason it is dried and crushed to be used as space weed. Though it is widely known that swamp plant is the main ingredient of a drug made illegal throughout non-Teladi space, producing and trading it itself is not illegal, as it is only in the processing of the plant that the narcotic properties can be unlocked.", + "factoryName": "Swamp Plant Farm", + "icon": "ware_swampplant", + "volume": 6, + "transport": "container", + "price": { + "min": 50, + "max": 117, + "avg": 84 + }, + "group": "agricultural", + "production": [ + { + "time": 450, + "amount": 120, + "method": "default", + "name": "Teladi", + "wares": [ + { + "ware": "energycells", + "amount": 40 + }, + { + "ware": "water", + "amount": 100 + } + ], + "effects": [ + { + "type": "work", + "product": 0.59 + } + ] + } + ] + }, + { + "id": "teladianium", + "version": 0, + "name": "Teladianium", + "description": "Teladianium is a hard, tough material used by the Teladi for station and, more commonly, ship construction. A lighter compound than the refined metals used in other races' vessels, Teladianium is traditionally made from chemically treated Teladian mud. However, as the necessary chemicals are rarely found in space, and expensive to produce, the Teladi often replace them with the raw minerals found in asteroids.", + "factoryName": "Teladianium Foundry", + "icon": "ware_teladianium", + "volume": 16, + "transport": "container", + "price": { + "min": 121, + "max": 283, + "avg": 202 + }, + "group": "refined", + "production": [ + { + "time": 120, + "amount": 70, + "method": "default", + "name": "Teladi", + "wares": [ + { + "ware": "energycells", + "amount": 45 + }, + { + "ware": "ore", + "amount": 280 + } + ], + "effects": [ + { + "type": "work", + "product": 0.43 + } + ] + } + ] + }, + { + "id": "terranmre", + "version": 1, + "name": "Terran MRE", + "description": "The MRE, Meal-Ready-to-Eat, was first invented on Earth in the 20th Century. Since that time the food that comprises it has developed and is more nutritious. These prehydrated meals require no preparation and are self-heating as required.", + "factoryName": "MRE Packing Facility", + "icon": "ware_terranmre", + "volume": 2, + "transport": "container", + "price": { + "min": 32, + "max": 75, + "avg": 54 + }, + "group": "food", + "production": [ + { + "time": 240, + "amount": 175, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "energycells", + "amount": 60 + }, + { + "ware": "proteinpaste", + "amount": 60 + } + ], + "effects": [ + { + "type": "work", + "product": 0.42 + } + ] + } + ] + }, + { + "id": "turretcomponents", + "version": 0, + "name": "Turret Components", + "description": "After the unification of the design process in station and capital ship weapon systems, many different turrets can be built from different configurations of these turret components.", + "factoryName": "Turret Component Factory", + "icon": "ware_turretcomponents", + "volume": 20, + "transport": "container", + "price": { + "min": 164, + "max": 383, + "avg": 273 + }, + "group": "shiptech", + "production": [ + { + "time": 1800, + "amount": 170, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "energycells", + "amount": 60 + }, + { + "ware": "microchips", + "amount": 20 + }, + { + "ware": "quantumtubes", + "amount": 20 + }, + { + "ware": "scanningarrays", + "amount": 10 + } + ], + "effects": [ + { + "type": "work", + "product": 0.53 + } + ] + } + ] }, { "id": "water", + "version": 0, "name": "Water", - "description": "Life-support and agricultural input.", - "type": "commodity", - "cargoKind": "liquid", - "volume": 1.0, - "construction": { - "recipeId": "water-reclamation", - "facilityCategory": "farm", - "requiredModules": [ - "liquid-tank", - "solar-array" - ], - "requirements": [], - "cycleTime": 6, - "batchSize": 12, - "productsPerHour": 7200, - "maxEfficiency": 1, - "priority": 14 - } + "description": "Essential to all known biological life forms, water has never become much of a catalyst for dispute amongst species, owing to its ubiquity in space. It is being used somewhere in the manufacturing process of nearly all goods available across space; especially, however, in the production of edible goods.", + "factoryName": "Ice Refinery", + "icon": "ware_water", + "volume": 6, + "transport": "container", + "illegal": [ + "loanshark" + ], + "price": { + "min": 32, + "max": 74, + "avg": 53 + }, + "group": "water", + "production": [ + { + "time": 120, + "amount": 193, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "energycells", + "amount": 60 + }, + { + "ware": "ice", + "amount": 320 + } + ], + "effects": [ + { + "type": "work", + "product": 0.43 + } + ] + } + ] }, { - "id": "refined-metals", - "name": "Refined Metals", - "description": "Processed structural metals used by stations and shipyards.", - "type": "material", - "cargoKind": "manufactured", - "volume": 1.0, - "construction": { - "recipeId": "ore-refining", - "facilityCategory": "station", - "requiredModules": [ - "refinery-stack" - ], - "requirements": [ - { - "itemId": "ore", - "amount": 60 - } - ], - "cycleTime": 8, - "batchSize": 60, - "productsPerHour": 27000, - "maxEfficiency": 1, - "priority": 100 - } + "id": "weaponcomponents", + "version": 0, + "name": "Weapon Components", + "description": "Made up from such things as trigger and reloading mechanisms, chambers and barrels, weapon components make up the mechanical part of all ship weapons. Combined with specialised advanced electronics, a number of different weapons can be made from the modular components, also across different size ranges. Shipped to shipyards and equipment docks as a single package, these components can then be put together relatively quickly and easily to make any weapon for the final customer on-demand.", + "factoryName": "Weapon Component Factory", + "icon": "ware_weaponcomponents", + "volume": 20, + "transport": "container", + "price": { + "min": 171, + "max": 399, + "avg": 285 + }, + "group": "shiptech", + "production": [ + { + "time": 1800, + "amount": 170, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "energycells", + "amount": 60 + }, + { + "ware": "hullparts", + "amount": 20 + }, + { + "ware": "plasmaconductors", + "amount": 30 + } + ], + "effects": [ + { + "type": "work", + "product": 0.53 + } + ] + } + ] }, { - "id": "hull-sections", - "name": "Hull Sections", - "description": "Prefabricated structural assemblies for ships and stations.", - "type": "component", - "cargoKind": "manufactured", - "volume": 1.5, - "construction": { - "recipeId": "hull-fabrication", - "facilityCategory": "station", - "requiredModules": [ - "fabricator-array" - ], - "requirements": [ - { - "itemId": "refined-metals", - "amount": 70 - } - ], - "cycleTime": 10, - "batchSize": 35, - "productsPerHour": 12600, - "maxEfficiency": 1, - "priority": 40 - } - }, - { - "id": "ammo-crates", - "name": "Ammo Crates", - "description": "Containerized magazines for turrets, launchers, and point defense.", - "type": "component", - "cargoKind": "container", - "volume": 1.0, - "construction": { - "recipeId": "ammo-fabrication", - "facilityCategory": "station", - "requiredModules": [ - "fabricator-array" - ], - "requirements": [ - { - "itemId": "refined-metals", - "amount": 24 - } - ], - "cycleTime": 6, - "batchSize": 30, - "productsPerHour": 18000, - "maxEfficiency": 1, - "priority": 34 - } - }, - { - "id": "ship-equipment", - "name": "Ship Equipment", - "description": "Shield emitters, avionics, cooling loops, and service kits.", - "type": "component", - "cargoKind": "container", - "volume": 1.0, - "construction": { - "recipeId": "equipment-assembly", - "facilityCategory": "station", - "requiredModules": [ - "fabricator-array" - ], - "requirements": [ - { - "itemId": "refined-metals", - "amount": 28 - }, - { - "itemId": "water", - "amount": 8 - } - ], - "cycleTime": 11, - "batchSize": 18, - "productsPerHour": 5890.9, - "maxEfficiency": 1, - "priority": 30 - } - }, - { - "id": "ship-parts", - "name": "Ship Parts", - "description": "High-value integration kits for hull fitting and final assembly.", - "type": "component", - "cargoKind": "manufactured", - "volume": 1.3, - "construction": { - "recipeId": "ship-parts-integration", - "facilityCategory": "station", - "requiredModules": [ - "fabricator-array" - ], - "requirements": [ - { - "itemId": "hull-sections", - "amount": 24 - }, - { - "itemId": "ship-equipment", - "amount": 10 - } - ], - "cycleTime": 14, - "batchSize": 20, - "productsPerHour": 5142.9, - "maxEfficiency": 1, - "priority": 50 - } - }, - { - "id": "drone-parts", - "name": "Drone Parts", - "description": "Containerized industrial freight for construction support.", - "type": "component", - "cargoKind": "container", - "volume": 1.0, - "construction": { - "recipeId": "drone-parts-assembly", - "facilityCategory": "station", - "requiredModules": [ - "fabricator-array" - ], - "requirements": [ - { - "itemId": "refined-metals", - "amount": 12 - }, - { - "itemId": "ship-equipment", - "amount": 6 - } - ], - "cycleTime": 7, - "batchSize": 16, - "productsPerHour": 8228.6, - "maxEfficiency": 1, - "priority": 18 - } - }, - { - "id": "command-bridge-module", - "name": "Command Bridge Module", - "description": "Packaged bridge and combat-information-center assembly for final ship integration.", - "type": "ship-module", - "cargoKind": "container", - "volume": 2.0, - "construction": { - "recipeId": "command-bridge-module-assembly", - "facilityCategory": "station", - "requiredModules": [ - "component-factory", - "container-bay" - ], - "requirements": [ - { - "itemId": "refined-metals", - "amount": 20 - }, - { - "itemId": "ship-equipment", - "amount": 10 - } - ], - "cycleTime": 9, - "batchSize": 1, - "productsPerHour": 400, - "maxEfficiency": 1, - "priority": 52 - } - }, - { - "id": "reactor-core-module", - "name": "Reactor Core Module", - "description": "Contained ship reactor package ready for installation into a hull.", - "type": "ship-module", - "cargoKind": "container", - "volume": 2.2, - "construction": { - "recipeId": "reactor-core-module-assembly", - "facilityCategory": "station", - "requiredModules": [ - "component-factory", - "container-bay" - ], - "requirements": [ - { - "itemId": "refined-metals", - "amount": 30 - }, - { - "itemId": "ship-equipment", - "amount": 8 - } - ], - "cycleTime": 10, - "batchSize": 1, - "productsPerHour": 360, - "maxEfficiency": 1, - "priority": 54 - } - }, - { - "id": "capacitor-bank-module", - "name": "Capacitor Bank Module", - "description": "Buffered capacitor section for propulsion, weapons, and industrial loads.", - "type": "ship-module", - "cargoKind": "container", - "volume": 1.8, - "construction": { - "recipeId": "capacitor-bank-module-assembly", - "facilityCategory": "station", - "requiredModules": [ - "component-factory", - "container-bay" - ], - "requirements": [ - { - "itemId": "refined-metals", - "amount": 18 - }, - { - "itemId": "ship-equipment", - "amount": 4 - } - ], - "cycleTime": 9, - "batchSize": 1, - "productsPerHour": 400, - "maxEfficiency": 1, - "priority": 52 - } - }, - { - "id": "ion-drive-module", - "name": "Ion Drive Module", - "description": "Preassembled sublight engine unit.", - "type": "ship-module", - "cargoKind": "container", - "volume": 2.0, - "construction": { - "recipeId": "ion-drive-module-assembly", - "facilityCategory": "station", - "requiredModules": [ - "component-factory", - "container-bay" - ], - "requirements": [ - { - "itemId": "refined-metals", - "amount": 22 - }, - { - "itemId": "ship-equipment", - "amount": 8 - } - ], - "cycleTime": 10, - "batchSize": 1, - "productsPerHour": 360, - "maxEfficiency": 1, - "priority": 53 - } - }, - { - "id": "ftl-core-module", - "name": "FTL Core Module", - "description": "Integrated FTL drive package for inter-system transit.", - "type": "ship-module", - "cargoKind": "container", - "volume": 2.4, - "construction": { - "recipeId": "ftl-core-module-assembly", - "facilityCategory": "station", - "requiredModules": [ - "component-factory", - "container-bay" - ], - "requirements": [ - { - "itemId": "refined-metals", - "amount": 34 - }, - { - "itemId": "ship-equipment", - "amount": 14 - } - ], - "cycleTime": 12, - "batchSize": 1, - "productsPerHour": 300, - "maxEfficiency": 1, - "priority": 56 - } - }, - { - "id": "gun-turret-module", - "name": "Gun Turret Module", - "description": "Shipboard turret mount and fire-control package.", - "type": "ship-module", - "cargoKind": "container", - "volume": 1.6, - "construction": { - "recipeId": "gun-turret-module-assembly", - "facilityCategory": "station", - "requiredModules": [ - "component-factory", - "container-bay" - ], - "requirements": [ - { - "itemId": "refined-metals", - "amount": 12 - } - ], - "cycleTime": 8, - "batchSize": 1, - "productsPerHour": 450, - "maxEfficiency": 1, - "priority": 58 - } - }, - { - "id": "carrier-bay-module", - "name": "Carrier Bay Module", - "description": "Hangar and launch-recovery assembly for capital ship integration.", - "type": "ship-module", - "cargoKind": "container", - "volume": 3.0, - "construction": { - "recipeId": "carrier-bay-module-assembly", - "facilityCategory": "station", - "requiredModules": [ - "component-factory", - "container-bay" - ], - "requirements": [ - { - "itemId": "hull-sections", - "amount": 18 - }, - { - "itemId": "refined-metals", - "amount": 18 - }, - { - "itemId": "ship-equipment", - "amount": 10 - } - ], - "cycleTime": 14, - "batchSize": 1, - "productsPerHour": 257.1, - "maxEfficiency": 1, - "priority": 40 - } - }, - { - "id": "habitat-ring-module", - "name": "Habitat Ring Module", - "description": "Crew habitat section packaged for large ship installation.", - "type": "ship-module", - "cargoKind": "container", - "volume": 2.6, - "construction": { - "recipeId": "habitat-ring-module-assembly", - "facilityCategory": "station", - "requiredModules": [ - "component-factory", - "container-bay" - ], - "requirements": [ - { - "itemId": "hull-sections", - "amount": 14 - }, - { - "itemId": "ship-equipment", - "amount": 8 - }, - { - "itemId": "water", - "amount": 10 - } - ], - "cycleTime": 12, - "batchSize": 1, - "productsPerHour": 300, - "maxEfficiency": 1, - "priority": 22 - } - }, - { - "id": "bulk-bay-module", - "name": "Bulk Bay Module", - "description": "Industrial cargo hold segment for raw-solid hauling ships.", - "type": "ship-module", - "cargoKind": "container", - "volume": 2.0, - "construction": { - "recipeId": "bulk-bay-module-assembly", - "facilityCategory": "station", - "requiredModules": [ - "component-factory", - "container-bay" - ], - "requirements": [ - { - "itemId": "refined-metals", - "amount": 16 - }, - { - "itemId": "hull-sections", - "amount": 10 - } - ], - "cycleTime": 8, - "batchSize": 1, - "productsPerHour": 450, - "maxEfficiency": 1, - "priority": 18 - } - }, - { - "id": "container-bay-module", - "name": "Container Bay Module", - "description": "Freight rack segment for manufactured and palletized cargo.", - "type": "ship-module", - "cargoKind": "container", - "volume": 2.0, - "construction": { - "recipeId": "container-bay-module-assembly", - "facilityCategory": "station", - "requiredModules": [ - "component-factory", - "container-bay" - ], - "requirements": [ - { - "itemId": "refined-metals", - "amount": 12 - }, - { - "itemId": "ship-equipment", - "amount": 4 - } - ], - "cycleTime": 8, - "batchSize": 1, - "productsPerHour": 450, - "maxEfficiency": 1, - "priority": 18 - } - }, - { - "id": "liquid-tank-module", - "name": "Liquid Tank Module", - "description": "Pressurized liquid storage segment for water and liquid logistics.", - "type": "ship-module", - "cargoKind": "container", - "volume": 2.0, - "construction": { - "recipeId": "liquid-tank-module-assembly", - "facilityCategory": "station", - "requiredModules": [ - "component-factory", - "container-bay" - ], - "requirements": [ - { - "itemId": "refined-metals", - "amount": 14 - }, - { - "itemId": "ship-equipment", - "amount": 4 - } - ], - "cycleTime": 8, - "batchSize": 1, - "productsPerHour": 450, - "maxEfficiency": 1, - "priority": 18 - } - }, - { - "id": "mining-turret-module", - "name": "Mining Turret Module", - "description": "Ship-mounted hard-rock extraction head.", - "type": "ship-module", - "cargoKind": "container", - "volume": 1.8, - "construction": { - "recipeId": "mining-turret-module-assembly", - "facilityCategory": "station", - "requiredModules": [ - "component-factory", - "container-bay" - ], - "requirements": [ - { - "itemId": "refined-metals", - "amount": 18 - }, - { - "itemId": "ship-equipment", - "amount": 6 - } - ], - "cycleTime": 9, - "batchSize": 1, - "productsPerHour": 400, - "maxEfficiency": 1, - "priority": 24 - } - }, - { - "id": "fabricator-array-module", - "name": "Fabricator Array Module", - "description": "Mobile industrial fabrication block for constructors.", - "type": "ship-module", - "cargoKind": "container", - "volume": 2.4, - "construction": { - "recipeId": "fabricator-array-module-assembly", - "facilityCategory": "station", - "requiredModules": [ - "component-factory", - "container-bay" - ], - "requirements": [ - { - "itemId": "refined-metals", - "amount": 24 - }, - { - "itemId": "ship-equipment", - "amount": 10 - } - ], - "cycleTime": 11, - "batchSize": 1, - "productsPerHour": 327.3, - "maxEfficiency": 1, - "priority": 20 - } + "id": "wheat", + "version": 0, + "name": "Wheat", + "description": "A staple ingredient in food rations, wheat is grown across all of Argon space and consumed on a daily basis in the form of flatbread or bunyos. Where meat is still produced from Argnu, instead of synthesised or cloned, wheat is also fed to the animals, which results in meat of exceptional quality.", + "factoryName": "Wheat Farm", + "icon": "ware_wheat", + "volume": 4, + "transport": "container", + "price": { + "min": 19, + "max": 44, + "avg": 31 + }, + "group": "agricultural", + "production": [ + { + "time": 300, + "amount": 310, + "method": "default", + "name": "Argon", + "wares": [ + { + "ware": "energycells", + "amount": 60 + }, + { + "ware": "water", + "amount": 80 + } + ], + "effects": [ + { + "type": "work", + "product": 0.28 + } + ] + } + ] } ] diff --git a/shared/data/modules.json b/shared/data/modules.json index 9f06219..7b89be4 100644 --- a/shared/data/modules.json +++ b/shared/data/modules.json @@ -1,252 +1,28373 @@ [ { - "id": "dock-bay-small", - "name": "Small Dock Bay", - "description": "External docking pad cluster for small and medium hulls.", - "type": "Dock", - "hull": 160, - "workforceNeeded": 10, - "construction": { - "productionTime": 12, - "requirements": [ - { - "itemId": "refined-metals", - "amount": 34 - } - ] - } + "id": "module_arg_conn_base_01", + "version": 0, + "name": "Argon Base Connection Structure 01", + "macro": "struct_arg_base_01_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 150000, + "makerRace": "argon", + "price": { + "min": 92363, + "max": 124961, + "avg": 108662 + }, + "owners": [ + "antigone", + "argon" + ], + "production": [ + { + "time": 59, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 14 + }, + { + "ware": "energycells", + "amount": 27 + }, + { + "ware": "hullparts", + "amount": 50 + } + ] + } + ] }, { - "id": "container-bay", - "name": "Container Bay", - "description": "Manufactured cargo storage and container handling racks.", - "type": "Storage", - "hull": 140, - "workforceNeeded": 8, - "construction": { - "productionTime": 10, - "requirements": [ - { - "itemId": "refined-metals", - "amount": 26 - } - ] - } + "id": "module_arg_conn_base_02", + "version": 0, + "name": "Argon Base Connection Structure 02", + "macro": "struct_arg_base_02_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 237000, + "makerRace": "argon", + "price": { + "min": 75585, + "max": 102263, + "avg": 88924 + }, + "owners": [ + "antigone", + "argon" + ], + "production": [ + { + "time": 53, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 17 + }, + { + "ware": "energycells", + "amount": 34 + }, + { + "ware": "hullparts", + "amount": 62 + } + ] + } + ] }, { - "id": "bulk-bay", - "name": "Bulk Bay", - "description": "Raw solid storage and ore handling volume.", - "type": "Storage", - "hull": 140, - "workforceNeeded": 8 + "id": "module_arg_conn_base_03", + "version": 0, + "name": "Argon Base Connection Structure 03", + "macro": "struct_arg_base_03_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 280000, + "makerRace": "argon", + "price": { + "min": 98841, + "max": 133727, + "avg": 116284 + }, + "owners": [ + "antigone", + "argon" + ], + "production": [ + { + "time": 72, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 18 + }, + { + "ware": "energycells", + "amount": 37 + }, + { + "ware": "hullparts", + "amount": 68 + } + ] + } + ] }, { - "id": "liquid-tank", - "name": "Liquid Tank", - "description": "Liquid cargo and water tankage.", - "type": "Storage", - "hull": 130, - "workforceNeeded": 6, - "construction": { - "productionTime": 10, - "requirements": [ - { - "itemId": "refined-metals", - "amount": 20 - } - ] - } + "id": "module_arg_conn_cross_01", + "version": 0, + "name": "Argon Cross Connection Structure 01", + "macro": "struct_arg_cross_01_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 120000, + "makerRace": "argon", + "price": { + "min": 65300, + "max": 88348, + "avg": 76824 + }, + "owners": [ + "antigone", + "argon" + ], + "production": [ + { + "time": 47, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 12 + }, + { + "ware": "energycells", + "amount": 24 + }, + { + "ware": "hullparts", + "amount": 44 + } + ] + } + ] }, { - "id": "refinery-stack", - "name": "Refinery Stack", - "description": "Heavy refining line for ore to refined metals.", - "type": "Production", - "productionMode": "passive", - "product": "refined-metals", - "hull": 180, - "workforceNeeded": 18, - "construction": { - "productionTime": 14, - "requirements": [ - { - "itemId": "refined-metals", - "amount": 38 - } - ] - } + "id": "module_arg_conn_vertical_01", + "version": 0, + "name": "Argon Vertical Connection Structure 01", + "macro": "struct_arg_vertical_01_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 79000, + "makerRace": "argon", + "price": { + "min": 54125, + "max": 73227, + "avg": 63676 + }, + "owners": [ + "antigone", + "argon" + ], + "production": [ + { + "time": 38, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 10 + }, + { + "ware": "energycells", + "amount": 20 + }, + { + "ware": "hullparts", + "amount": 36 + } + ] + } + ] }, { - "id": "solar-array", - "name": "Solar Array", - "description": "Orbital solar generation and utility frame.", - "type": "Production", - "productionMode": "passive", - "hull": 110, - "workforceNeeded": 6, - "construction": { - "productionTime": 12, - "requirements": [ - { - "itemId": "refined-metals", - "amount": 28 - } - ] - } + "id": "module_arg_conn_vertical_02", + "version": 0, + "name": "Argon Vertical Connection Structure 02", + "macro": "struct_arg_vertical_02_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 143000, + "makerRace": "argon", + "price": { + "min": 70888, + "max": 95908, + "avg": 83398 + }, + "owners": [ + "antigone", + "argon" + ], + "production": [ + { + "time": 52, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 13 + }, + { + "ware": "energycells", + "amount": 26 + }, + { + "ware": "hullparts", + "amount": 48 + } + ] + } + ] }, { - "id": "fabricator-array", - "name": "Fabricator Array", - "description": "General fabrication line for industrial goods and prefab kits.", - "type": "Build Module", - "productionMode": "commanded", - "hull": 200, - "workforceNeeded": 20, - "construction": { - "productionTime": 16, - "requirements": [ - { - "itemId": "refined-metals", - "amount": 48 - } - ] - } + "id": "module_arg_def_claim_01", + "version": 0, + "name": "Argon Administrative Centre", + "macro": "defence_arg_claim_01_macro", + "description": "No information available", + "type": "defencemodule", + "explosionDamage": 2000, + "hull": 512000, + "makerRace": "argon", + "price": { + "min": 744928, + "max": 1007844, + "avg": 876386 + }, + "owners": [ + "antigone", + "argon" + ], + "production": [ + { + "time": 536, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 137 + }, + { + "ware": "energycells", + "amount": 274 + }, + { + "ware": "hullparts", + "amount": 501 + } + ] + } + ] }, { - "id": "component-factory", - "name": "Component Factory", - "description": "Assembly line for ship-grade modules and integrated components.", - "type": "Build Module", - "productionMode": "commanded", - "hull": 220, - "workforceNeeded": 24, - "construction": { - "productionTime": 18, - "requirements": [ - { - "itemId": "refined-metals", - "amount": 54 - }, - { - "itemId": "ship-equipment", - "amount": 12 - } - ] - } + "id": "module_arg_def_disc_01", + "version": 0, + "name": "Argon Disc Defence Platform", + "macro": "defence_arg_disc_01_macro", + "description": "No information available", + "type": "defencemodule", + "explosionDamage": 1200, + "hull": 197400, + "makerRace": "argon", + "price": { + "min": 533140, + "max": 721308, + "avg": 627224 + }, + "owners": [ + "antigone", + "argon" + ], + "shields": [ + { + "group": "group01", + "size": "medium", + "hittable": true + }, + { + "group": "group02", + "size": "medium", + "hittable": true + }, + { + "group": "group04", + "size": "medium", + "hittable": true + }, + { + "group": "group03", + "size": "medium", + "hittable": true + }, + { + "group": "group05", + "size": "large", + "hittable": false + }, + { + "group": "group06", + "size": "large", + "hittable": false + }, + { + "group": "group07", + "size": "large", + "hittable": false + }, + { + "group": "group08", + "size": "large", + "hittable": false + } + ], + "turrets": [ + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group06", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group06", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group06", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group06", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group03", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group03", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group04", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group04", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group07", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group08", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group07", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group08", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group07", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group07", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group08", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group08", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 384, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 98 + }, + { + "ware": "energycells", + "amount": 196 + }, + { + "ware": "hullparts", + "amount": 359 + } + ] + }, + { + "time": 384, + "amount": 1, + "method": "xenon", + "name": "Xenon", + "wares": [ + { + "ware": "energycells", + "amount": 196 + }, + { + "ware": "ore", + "amount": 496 + }, + { + "ware": "silicon", + "amount": 290 + } + ] + } + ] }, { - "id": "ship-factory", - "name": "Ship Factory", - "description": "Slip-line and integration yard for final ship assembly.", - "type": "Build Module", - "productionMode": "commanded", - "hull": 260, - "workforceNeeded": 28, - "construction": { - "productionTime": 22, - "requirements": [ - { - "itemId": "refined-metals", - "amount": 60 - }, - { - "itemId": "hull-sections", - "amount": 24 - }, - { - "itemId": "ship-equipment", - "amount": 14 - } - ] - } + "id": "module_arg_def_tube_01", + "version": 0, + "name": "Argon Bridge Defence Platform", + "macro": "defence_arg_tube_01_macro", + "description": "No information available", + "type": "defencemodule", + "explosionDamage": 1200, + "hull": 148800, + "makerRace": "argon", + "price": { + "min": 462691, + "max": 625993, + "avg": 544342 + }, + "owners": [ + "antigone", + "argon" + ], + "shields": [ + { + "group": "group01", + "size": "medium", + "hittable": true + }, + { + "group": "group02", + "size": "medium", + "hittable": true + }, + { + "group": "group04", + "size": "medium", + "hittable": true + }, + { + "group": "group03", + "size": "medium", + "hittable": true + }, + { + "group": "group05", + "size": "large", + "hittable": false + }, + { + "group": "group06", + "size": "large", + "hittable": false + } + ], + "turrets": [ + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group06", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group06", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group06", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group06", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group03", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group03", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group04", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group04", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 334, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 85 + }, + { + "ware": "energycells", + "amount": 170 + }, + { + "ware": "hullparts", + "amount": 312 + } + ] + }, + { + "time": 334, + "amount": 1, + "method": "xenon", + "name": "Xenon", + "wares": [ + { + "ware": "energycells", + "amount": 170 + }, + { + "ware": "ore", + "amount": 431 + }, + { + "ware": "silicon", + "amount": 252 + } + ] + } + ] }, { - "id": "power-core", - "name": "Power Core", - "description": "Station backbone for power routing and core services.", - "type": "Connection", - "hull": 220, - "workforceNeeded": 10 + "id": "module_arg_dock_m_01", + "version": 0, + "name": "1M6S Standard Dock Area", + "macro": "dockarea_arg_m_station_01_macro", + "description": "No information available", + "type": "dockarea", + "explosionDamage": 1000, + "hull": 240000, + "price": { + "min": 293852, + "max": 397564, + "avg": 345708 + }, + "owners": [ + "antigone", + "argon", + "holyorder", + "paranid", + "teladi", + "trinity", + "freesplit", + "split" + ], + "docks": [ + { + "capacity": 10, + "size": "medium" + }, + { + "capacity": 40, + "size": "small" + }, + { + "capacity": 10, + "size": "extrasmall" + } + ], + "production": [ + { + "time": 424, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 54 + }, + { + "ware": "energycells", + "amount": 108 + }, + { + "ware": "hullparts", + "amount": 198 + } + ] + } + ] }, { - "id": "habitat-ring", - "name": "Habitat Ring", - "description": "Crew habitation and life-support section.", - "type": "Habitation", - "hull": 180, - "workforceNeeded": 12 + "id": "module_arg_dock_m_01_hightech", + "version": 0, + "name": "1M6S Luxury Dock Area", + "macro": "dockarea_arg_m_station_01_hightech_macro", + "description": "No information available", + "type": "dockarea", + "explosionDamage": 1000, + "hull": 275000, + "price": { + "min": 315326, + "max": 426618, + "avg": 370972 + }, + "owners": [ + "antigone", + "argon", + "holyorder", + "paranid", + "teladi", + "trinity", + "freesplit", + "split" + ], + "docks": [ + { + "capacity": 10, + "size": "medium" + }, + { + "capacity": 40, + "size": "small" + }, + { + "capacity": 10, + "size": "extrasmall" + } + ], + "production": [ + { + "time": 454, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 58 + }, + { + "ware": "energycells", + "amount": 116 + }, + { + "ware": "hullparts", + "amount": 212 + } + ] + } + ] }, { - "id": "turret-grid", - "name": "Turret Grid", - "description": "Defensive hardpoints and fire-control grid.", - "type": "Defense", - "hull": 180, - "workforceNeeded": 10 + "id": "module_arg_dock_m_01_lowtech", + "version": 0, + "name": "1M6S Basic Dock Area", + "macro": "dockarea_arg_m_station_01_lowtech_macro", + "description": "No information available", + "type": "dockarea", + "explosionDamage": 1000, + "hull": 210000, + "price": { + "min": 276636, + "max": 374272, + "avg": 325454 + }, + "owners": [ + "antigone", + "argon", + "holyorder", + "paranid", + "teladi", + "trinity", + "freesplit", + "split" + ], + "docks": [ + { + "capacity": 10, + "size": "medium" + }, + { + "capacity": 40, + "size": "small" + }, + { + "capacity": 10, + "size": "extrasmall" + } + ], + "production": [ + { + "time": 397, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 51 + }, + { + "ware": "energycells", + "amount": 101 + }, + { + "ware": "hullparts", + "amount": 185 + } + ] + } + ] }, { - "id": "command-bridge", - "name": "Command Bridge", - "description": "Command-and-control section for stations and capital structures.", - "type": "Connection", - "hull": 150, - "workforceNeeded": 8 + "id": "module_arg_dock_m_02", + "version": 0, + "name": "3M6S Standard Dock Area", + "macro": "dockarea_arg_m_station_02_macro", + "description": "No information available", + "type": "dockarea", + "explosionDamage": 1000, + "hull": 495000, + "price": { + "min": 423562, + "max": 573054, + "avg": 498308 + }, + "owners": [ + "antigone", + "argon", + "holyorder", + "paranid", + "teladi", + "trinity", + "freesplit", + "split" + ], + "docks": [ + { + "capacity": 10, + "size": "medium" + }, + { + "capacity": 40, + "size": "small" + }, + { + "capacity": 10, + "size": "extrasmall" + } + ], + "production": [ + { + "time": 609, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 78 + }, + { + "ware": "energycells", + "amount": 155 + }, + { + "ware": "hullparts", + "amount": 284 + } + ] + } + ] }, { - "id": "reactor-core", - "name": "Reactor Core", - "description": "Primary reactor and power conversion system.", - "type": "Connection", - "hull": 150, - "workforceNeeded": 8 + "id": "module_arg_dock_m_02_hightech", + "version": 0, + "name": "3M6S Luxury Dock Area", + "macro": "dockarea_arg_m_station_02_hightech_macro", + "description": "No information available", + "type": "dockarea", + "explosionDamage": 1000, + "hull": 530000, + "price": { + "min": 435642, + "max": 589398, + "avg": 512520 + }, + "owners": [ + "antigone", + "argon", + "holyorder", + "paranid", + "teladi", + "trinity", + "freesplit", + "split" + ], + "docks": [ + { + "capacity": 10, + "size": "medium" + }, + { + "capacity": 40, + "size": "small" + }, + { + "capacity": 10, + "size": "extrasmall" + } + ], + "production": [ + { + "time": 631, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 80 + }, + { + "ware": "energycells", + "amount": 161 + }, + { + "ware": "hullparts", + "amount": 294 + } + ] + } + ] }, { - "id": "capacitor-bank", - "name": "Capacitor Bank", - "description": "Energy buffering and discharge system.", - "type": "Connection", - "hull": 120, - "workforceNeeded": 4 + "id": "module_arg_dock_m_02_lowtech", + "version": 0, + "name": "3M6S Basic Dock Area", + "macro": "dockarea_arg_m_station_02_lowtech_macro", + "description": "No information available", + "type": "dockarea", + "explosionDamage": 10000, + "hull": 460000, + "price": { + "min": 407689, + "max": 551579, + "avg": 479634 + }, + "owners": [ + "antigone", + "argon", + "holyorder", + "paranid", + "teladi", + "trinity", + "freesplit", + "split" + ], + "docks": [ + { + "capacity": 10, + "size": "medium" + }, + { + "capacity": 40, + "size": "small" + }, + { + "capacity": 10, + "size": "extrasmall" + } + ], + "production": [ + { + "time": 587, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 75 + }, + { + "ware": "energycells", + "amount": 150 + }, + { + "ware": "hullparts", + "amount": 274 + } + ] + } + ] }, { - "id": "ion-drive", - "name": "Ion Drive", - "description": "Primary sublight propulsion module.", - "type": "Connection", - "hull": 120, - "workforceNeeded": 4 + "id": "module_arg_dock_tradestation_02", + "version": 0, + "name": "8M Standard Dock Area", + "macro": "dockarea_arg_m_02_tradestation_01_macro", + "description": "No information available", + "type": "dockarea", + "explosionDamage": 10000, + "hull": 1100000, + "price": { + "min": 630652, + "max": 853236, + "avg": 741944 + }, + "owners": [ + "antigone", + "argon" + ], + "docks": [ + { + "capacity": 10, + "size": "medium" + }, + { + "capacity": 10, + "size": "extrasmall" + } + ], + "production": [ + { + "time": 908, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 116 + }, + { + "ware": "energycells", + "amount": 232 + }, + { + "ware": "hullparts", + "amount": 424 + } + ] + } + ] }, { - "id": "ftl-core", - "name": "FTL Core", - "description": "Inter-system transit drive core.", - "type": "Connection", - "hull": 140, - "workforceNeeded": 6 + "id": "module_arg_hab_l_01", + "version": 0, + "name": "Argon L Habitat", + "macro": "hab_arg_l_01_macro", + "description": "No information available", + "type": "habitation", + "explosionDamage": 1000, + "hull": 500000, + "makerRace": "argon", + "workForce": { + "capacity": 1000, + "race": "argon" + }, + "price": { + "min": 16627714, + "max": 22496318, + "avg": 19562016 + }, + "owners": [ + "antigone", + "argon" + ], + "production": [ + { + "time": 750, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 191 + }, + { + "ware": "energycells", + "amount": 383 + }, + { + "ware": "hullparts", + "amount": 700 + } + ] + } + ] }, { - "id": "gun-turret", - "name": "Gun Turret", - "description": "General purpose shipboard turret.", - "type": "Defense", - "hull": 100, - "workforceNeeded": 3 + "id": "module_arg_hab_m_01", + "version": 0, + "name": "Argon M Habitat", + "macro": "hab_arg_m_01_macro", + "description": "No information available", + "type": "habitation", + "explosionDamage": 1000, + "hull": 250000, + "makerRace": "argon", + "workForce": { + "capacity": 500, + "race": "argon" + }, + "price": { + "min": 11754290, + "max": 15902862, + "avg": 13828576 + }, + "owners": [ + "antigone", + "argon" + ], + "production": [ + { + "time": 530, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 135 + }, + { + "ware": "energycells", + "amount": 271 + }, + { + "ware": "hullparts", + "amount": 495 + } + ] + } + ] }, { - "id": "carrier-bay", - "name": "Carrier Bay", - "description": "Launch and recovery bay for carried craft.", - "type": "Pier", - "hull": 160, - "workforceNeeded": 8 + "id": "module_arg_hab_s_01", + "version": 0, + "name": "Argon S Habitat", + "macro": "hab_arg_s_01_macro", + "description": "No information available", + "type": "habitation", + "explosionDamage": 1000, + "hull": 120000, + "makerRace": "argon", + "workForce": { + "capacity": 250, + "race": "argon" + }, + "price": { + "min": 8172621, + "max": 11057075, + "avg": 9614848 + }, + "owners": [ + "antigone", + "argon" + ], + "production": [ + { + "time": 367, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 94 + }, + { + "ware": "energycells", + "amount": 188 + }, + { + "ware": "hullparts", + "amount": 343 + } + ] + } + ] }, { - "id": "mining-turret", - "name": "Mining Turret", - "description": "Hard-rock extraction head for mining hulls.", - "type": "Production", - "hull": 90, - "workforceNeeded": 3 + "id": "module_arg_pier_l_01", + "version": 0, + "name": "Argon 3-Dock T Pier", + "macro": "pier_arg_harbor_01_macro", + "description": "No information available", + "type": "pier", + "explosionDamage": 1000, + "hull": 750000, + "makerRace": "argon", + "price": { + "min": 2946171, + "max": 3985997, + "avg": 3466084 + }, + "owners": [ + "argon" + ], + "production": [ + { + "time": 750, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 542 + }, + { + "ware": "energycells", + "amount": 1083 + }, + { + "ware": "hullparts", + "amount": 1980 + } + ] + } + ] + }, + { + "id": "module_arg_pier_l_02", + "version": 0, + "name": "Argon 1-Dock Pier", + "macro": "pier_arg_harbor_02_macro", + "description": "No information available", + "type": "pier", + "explosionDamage": 1000, + "hull": 250000, + "makerRace": "argon", + "price": { + "min": 1701192, + "max": 2301612, + "avg": 2001402 + }, + "owners": [ + "antigone", + "argon" + ], + "production": [ + { + "time": 433, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 313 + }, + { + "ware": "energycells", + "amount": 625 + }, + { + "ware": "hullparts", + "amount": 1143 + } + ] + } + ] + }, + { + "id": "module_arg_pier_l_03", + "version": 0, + "name": "Argon 3-Dock E Pier", + "macro": "pier_arg_harbor_03_macro", + "description": "No information available", + "type": "pier", + "explosionDamage": 1000, + "hull": 1000000, + "makerRace": "argon", + "price": { + "min": 3399016, + "max": 4598668, + "avg": 3998842 + }, + "owners": [ + "antigone" + ], + "production": [ + { + "time": 866, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 625 + }, + { + "ware": "energycells", + "amount": 1250 + }, + { + "ware": "hullparts", + "amount": 2287 + } + ] + } + ] + }, + { + "id": "module_arg_prod_foodrations_01", + "version": 0, + "name": "Food Ration Production", + "macro": "prod_arg_foodrations_macro", + "description": "No information available", + "type": "production", + "product": [ + "foodrations" + ], + "explosionDamage": 1000, + "hull": 133000, + "makerRace": "argon", + "workForce": { + "max": 90 + }, + "price": { + "min": 1425885, + "max": 1929139, + "avg": 1677512 + }, + "owners": [ + "antigone", + "argon" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 757, + "amount": 1, + "method": "default", + "name": "Argon", + "wares": [ + { + "ware": "claytronics", + "amount": 262 + }, + { + "ware": "energycells", + "amount": 525 + }, + { + "ware": "hullparts", + "amount": 961 + } + ] + } + ] + }, + { + "id": "module_arg_prod_meat_01", + "version": 0, + "name": "Meat Production", + "macro": "prod_arg_meat_macro", + "description": "No information available", + "type": "production", + "product": [ + "meat" + ], + "explosionDamage": 1000, + "hull": 198000, + "makerRace": "argon", + "workForce": { + "max": 75 + }, + "price": { + "min": 1349848, + "max": 1826264, + "avg": 1588056 + }, + "owners": [ + "antigone", + "argon" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 750, + "amount": 1, + "method": "default", + "name": "Argon", + "wares": [ + { + "ware": "claytronics", + "amount": 248 + }, + { + "ware": "energycells", + "amount": 497 + }, + { + "ware": "hullparts", + "amount": 910 + } + ] + } + ] + }, + { + "id": "module_arg_prod_medicalsupplies_01", + "version": 0, + "name": "Argon Medical Supply Production", + "macro": "prod_arg_medicalsupplies_macro", + "description": "No information available", + "type": "production", + "product": [ + "medicalsupplies" + ], + "explosionDamage": 1000, + "hull": 197000, + "makerRace": "argon", + "workForce": { + "max": 90 + }, + "price": { + "min": 1223505, + "max": 1655331, + "avg": 1439418 + }, + "owners": [ + "argon" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 739, + "amount": 1, + "method": "default", + "name": "Argon", + "wares": [ + { + "ware": "claytronics", + "amount": 225 + }, + { + "ware": "energycells", + "amount": 450 + }, + { + "ware": "hullparts", + "amount": 823 + } + ] + } + ] + }, + { + "id": "module_arg_prod_spacefuel_01", + "version": 0, + "name": "Spacefuel Production", + "macro": "prod_arg_spacefuel_macro", + "description": "No information available", + "type": "production", + "product": [ + "spacefuel" + ], + "explosionDamage": 1000, + "hull": 148000, + "makerRace": "argon", + "workForce": { + "max": 225 + }, + "price": { + "min": 1735171, + "max": 2347585, + "avg": 2041378 + }, + "owners": [ + "scaleplate" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 781, + "amount": 1, + "method": "default", + "name": "Argon", + "wares": [ + { + "ware": "claytronics", + "amount": 319 + }, + { + "ware": "energycells", + "amount": 638 + }, + { + "ware": "hullparts", + "amount": 1168 + } + ] + } + ] + }, + { + "id": "module_arg_prod_wheat_01", + "version": 0, + "name": "Wheat Production", + "macro": "prod_arg_wheat_macro", + "description": "No information available", + "type": "production", + "product": [ + "wheat" + ], + "explosionDamage": 1000, + "hull": 262000, + "makerRace": "argon", + "workForce": { + "max": 75 + }, + "price": { + "min": 1610158, + "max": 2178450, + "avg": 1894304 + }, + "owners": [ + "antigone", + "argon" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 772, + "amount": 1, + "method": "default", + "name": "Argon", + "wares": [ + { + "ware": "claytronics", + "amount": 296 + }, + { + "ware": "energycells", + "amount": 592 + }, + { + "ware": "hullparts", + "amount": 1084 + } + ] + } + ] + }, + { + "id": "module_arg_stor_container_l_01", + "version": 0, + "name": "Argon L Container Storage", + "macro": "storage_arg_l_container_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 1000, + "hull": 565000, + "makerRace": "argon", + "cargo": { + "max": 1000000, + "type": "container" + }, + "price": { + "min": 625503, + "max": 846269, + "avg": 735886 + }, + "owners": [ + "antigone", + "argon" + ], + "shields": [ + { + "group": "top_left_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_left_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 582, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 115 + }, + { + "ware": "energycells", + "amount": 230 + }, + { + "ware": "hullparts", + "amount": 421 + } + ] + } + ] + }, + { + "id": "module_arg_stor_container_m_01", + "version": 0, + "name": "Argon M Container Storage", + "macro": "storage_arg_m_container_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 800, + "hull": 285000, + "makerRace": "argon", + "cargo": { + "max": 100000, + "type": "container" + }, + "price": { + "min": 445475, + "max": 602701, + "avg": 524088 + }, + "owners": [ + "antigone", + "argon" + ], + "shields": [ + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 414, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 82 + }, + { + "ware": "energycells", + "amount": 163 + }, + { + "ware": "hullparts", + "amount": 299 + } + ] + } + ] + }, + { + "id": "module_arg_stor_container_s_01", + "version": 0, + "name": "Argon S Container Storage", + "macro": "storage_arg_s_container_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 500, + "hull": 114000, + "makerRace": "argon", + "cargo": { + "max": 25000, + "type": "container" + }, + "price": { + "min": 282224, + "max": 381832, + "avg": 332028 + }, + "owners": [ + "antigone", + "argon" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 261, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 52 + }, + { + "ware": "energycells", + "amount": 103 + }, + { + "ware": "hullparts", + "amount": 189 + } + ] + } + ] + }, + { + "id": "module_arg_stor_liquid_l_01", + "version": 0, + "name": "Argon L Liquid Storage", + "macro": "storage_arg_l_liquid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 1000, + "hull": 565000, + "makerRace": "argon", + "cargo": { + "max": 1000000, + "type": "liquid" + }, + "price": { + "min": 625503, + "max": 846269, + "avg": 735886 + }, + "owners": [ + "antigone", + "argon" + ], + "shields": [ + { + "group": "top_left_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_left_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 582, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 115 + }, + { + "ware": "energycells", + "amount": 230 + }, + { + "ware": "hullparts", + "amount": 421 + } + ] + } + ] + }, + { + "id": "module_arg_stor_liquid_m_01", + "version": 0, + "name": "Argon M Liquid Storage", + "macro": "storage_arg_m_liquid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 800, + "hull": 285000, + "makerRace": "argon", + "cargo": { + "max": 500000, + "type": "liquid" + }, + "price": { + "min": 445475, + "max": 602701, + "avg": 524088 + }, + "owners": [ + "antigone", + "argon" + ], + "shields": [ + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 414, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 82 + }, + { + "ware": "energycells", + "amount": 163 + }, + { + "ware": "hullparts", + "amount": 299 + } + ] + } + ] + }, + { + "id": "module_arg_stor_liquid_s_01", + "version": 0, + "name": "Argon S Liquid Storage", + "macro": "storage_arg_s_liquid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 500, + "hull": 114000, + "makerRace": "argon", + "cargo": { + "max": 100000, + "type": "liquid" + }, + "price": { + "min": 282224, + "max": 381832, + "avg": 332028 + }, + "owners": [ + "antigone", + "argon" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 261, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 52 + }, + { + "ware": "energycells", + "amount": 103 + }, + { + "ware": "hullparts", + "amount": 189 + } + ] + } + ] + }, + { + "id": "module_arg_stor_solid_l_01", + "version": 0, + "name": "Argon L Solid Storage", + "macro": "storage_arg_l_solid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 1000, + "hull": 565000, + "makerRace": "argon", + "cargo": { + "max": 1000000, + "type": "solid" + }, + "price": { + "min": 625503, + "max": 846269, + "avg": 735886 + }, + "owners": [ + "antigone", + "argon" + ], + "shields": [ + { + "group": "top_left_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_left_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 582, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 115 + }, + { + "ware": "energycells", + "amount": 230 + }, + { + "ware": "hullparts", + "amount": 421 + } + ] + } + ] + }, + { + "id": "module_arg_stor_solid_m_01", + "version": 0, + "name": "Argon M Solid Storage", + "macro": "storage_arg_m_solid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 800, + "hull": 285000, + "makerRace": "argon", + "cargo": { + "max": 500000, + "type": "solid" + }, + "price": { + "min": 445475, + "max": 602701, + "avg": 524088 + }, + "owners": [ + "antigone", + "argon" + ], + "shields": [ + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 414, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 82 + }, + { + "ware": "energycells", + "amount": 163 + }, + { + "ware": "hullparts", + "amount": 299 + } + ] + } + ] + }, + { + "id": "module_arg_stor_solid_s_01", + "version": 0, + "name": "Argon S Solid Storage", + "macro": "storage_arg_s_solid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 500, + "hull": 114000, + "makerRace": "argon", + "cargo": { + "max": 100000, + "type": "solid" + }, + "price": { + "min": 282224, + "max": 381832, + "avg": 332028 + }, + "owners": [ + "antigone", + "argon" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 261, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 52 + }, + { + "ware": "energycells", + "amount": 103 + }, + { + "ware": "hullparts", + "amount": 189 + } + ] + } + ] + }, + { + "id": "module_bor_build_dockarea_m_01", + "version": 1, + "name": "Boron S/M Ship Fabrication Bay", + "macro": "buildmodule_bor_ships_m_dockarea_01_macro", + "description": "No information available", + "type": "buildmodule", + "explosionDamage": 2500, + "hull": 245000, + "makerRace": "boron", + "workForce": { + "max": 800 + }, + "price": { + "min": 94609703, + "max": 128001363, + "avg": 111305533 + }, + "owners": [ + "boron" + ], + "docks": [ + { + "capacity": 30, + "size": "medium" + }, + { + "capacity": 100, + "size": "small" + }, + { + "capacity": 10, + "size": "extrasmall" + } + ], + "production": [ + { + "time": 688, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 818 + }, + { + "ware": "energycells", + "amount": 8696 + }, + { + "ware": "hullparts", + "amount": 2663 + }, + { + "ware": "water", + "amount": 7875 + } + ] + } + ] + }, + { + "id": "module_bor_build_l_01", + "version": 1, + "name": "Boron L Ship Fabrication Bay", + "macro": "buildmodule_bor_ships_l_macro", + "description": "No information available", + "type": "buildmodule", + "hull": 450000, + "makerRace": "boron", + "workForce": { + "max": 700 + }, + "price": { + "min": 198161899, + "max": 268101393, + "avg": 233131646 + }, + "owners": [ + "boron" + ], + "production": [ + { + "time": 722, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 1714 + }, + { + "ware": "energycells", + "amount": 18213 + }, + { + "ware": "hullparts", + "amount": 5577 + }, + { + "ware": "water", + "amount": 16495 + } + ] + } + ] + }, + { + "id": "module_bor_build_xl_01", + "version": 1, + "name": "Boron XL Ship Fabrication Bay", + "macro": "buildmodule_bor_ships_xl_macro", + "description": "No information available", + "type": "buildmodule", + "explosionDamage": 0, + "hull": 780000, + "makerRace": "boron", + "workForce": { + "max": 500 + }, + "price": { + "min": 201558642, + "max": 272696986, + "avg": 237127814 + }, + "owners": [ + "boron" + ], + "production": [ + { + "time": 1252, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 1744 + }, + { + "ware": "energycells", + "amount": 18526 + }, + { + "ware": "hullparts", + "amount": 5673 + }, + { + "ware": "water", + "amount": 16778 + } + ] + } + ] + }, + { + "id": "module_bor_conn_base_01", + "version": 1, + "name": "Boron Base Connection Structure 01", + "macro": "struct_bor_base_01_macro", + "description": "No information available", + "type": "connectionmodule", + "explosionDamage": 1000, + "hull": 74000, + "makerRace": "boron", + "price": { + "min": 83144, + "max": 112490, + "avg": 97817 + }, + "owners": [ + "boron" + ], + "production": [ + { + "time": 38, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 9 + }, + { + "ware": "energycells", + "amount": 275 + }, + { + "ware": "hullparts", + "amount": 63 + }, + { + "ware": "water", + "amount": 166 + } + ] + } + ] + }, + { + "id": "module_bor_conn_base_02", + "version": 1, + "name": "Boron Base Connection Structure 02", + "macro": "struct_bor_base_02_macro", + "description": "No information available", + "type": "connectionmodule", + "explosionDamage": 1000, + "hull": 140000, + "makerRace": "boron", + "price": { + "min": 10600, + "max": 137458, + "avg": 119529 + }, + "owners": [ + "boron" + ], + "production": [ + { + "time": 72, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 11 + }, + { + "ware": "energycells", + "amount": 336 + }, + { + "ware": "hullparts", + "amount": 77 + }, + { + "ware": "water", + "amount": 203 + } + ] + } + ] + }, + { + "id": "module_bor_conn_base_03", + "version": 1, + "name": "Boron Base Connection Structure 03", + "macro": "struct_bor_base_03_macro", + "description": "No information available", + "type": "connectionmodule", + "explosionDamage": 1000, + "hull": 213000, + "makerRace": "boron", + "price": { + "min": 108726, + "max": 147100, + "avg": 127913 + }, + "owners": [ + "boron" + ], + "production": [ + { + "time": 109, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 11 + }, + { + "ware": "energycells", + "amount": 360 + }, + { + "ware": "hullparts", + "amount": 83 + }, + { + "ware": "water", + "amount": 217 + } + ] + } + ] + }, + { + "id": "module_bor_conn_base_04", + "version": 1, + "name": "Boron Base Connection Structure 04", + "macro": "struct_bor_base_04_macro", + "description": "No information available", + "type": "connectionmodule", + "explosionDamage": 1000, + "hull": 225000, + "makerRace": "boron", + "price": { + "min": 114908, + "max": 155464, + "avg": 135186 + }, + "owners": [ + "boron" + ], + "production": [ + { + "time": 115, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 12 + }, + { + "ware": "energycells", + "amount": 380 + }, + { + "ware": "hullparts", + "amount": 87 + }, + { + "ware": "water", + "amount": 230 + } + ] + } + ] + }, + { + "id": "module_bor_conn_base_05", + "version": 1, + "name": "Boron Base Connection Structure 05", + "macro": "struct_bor_base_05_macro", + "description": "No information available", + "type": "connectionmodule", + "explosionDamage": 1000, + "hull": 260000, + "makerRace": "boron", + "price": { + "min": 126095, + "max": 170599, + "avg": 148347 + }, + "owners": [ + "boron" + ], + "production": [ + { + "time": 133, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 13 + }, + { + "ware": "energycells", + "amount": 417 + }, + { + "ware": "hullparts", + "amount": 96 + }, + { + "ware": "water", + "amount": 252 + } + ] + } + ] + }, + { + "id": "module_bor_conn_cross_01", + "version": 1, + "name": "Boron Cross Connection Structure 01", + "macro": "struct_bor_cross_01_macro", + "description": "No information available", + "type": "connectionmodule", + "explosionDamage": 1000, + "hull": 110000, + "makerRace": "boron", + "price": { + "min": 71831, + "max": 97183, + "avg": 84507 + }, + "owners": [ + "boron" + ], + "production": [ + { + "time": 56, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 7 + }, + { + "ware": "energycells", + "amount": 238 + }, + { + "ware": "hullparts", + "amount": 55 + }, + { + "ware": "water", + "amount": 144 + } + ] + } + ] + }, + { + "id": "module_bor_conn_cross_02", + "version": 1, + "name": "Boron Cross Connection Structure 02", + "macro": "struct_bor_cross_02_macro", + "description": "No information available", + "type": "connectionmodule", + "explosionDamage": 1000, + "hull": 165000, + "makerRace": "boron", + "price": { + "min": 89522, + "max": 121118, + "avg": 105320 + }, + "owners": [ + "boron" + ], + "production": [ + { + "time": 85, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 9 + }, + { + "ware": "energycells", + "amount": 296 + }, + { + "ware": "hullparts", + "amount": 68 + }, + { + "ware": "water", + "amount": 179 + } + ] + } + ] + }, + { + "id": "module_bor_conn_vertical_01", + "version": 1, + "name": "Boron Vertical Connection Structure 01", + "macro": "struct_bor_vertical_01_macro", + "description": "No information available", + "type": "connectionmodule", + "explosionDamage": 1000, + "hull": 68000, + "makerRace": "boron", + "price": { + "min": 59537, + "max": 80551, + "avg": 70044 + }, + "owners": [ + "boron" + ], + "production": [ + { + "time": 35, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 6 + }, + { + "ware": "energycells", + "amount": 197 + }, + { + "ware": "hullparts", + "amount": 45 + }, + { + "ware": "water", + "amount": 119 + } + ] + } + ] + }, + { + "id": "module_bor_conn_vertical_02", + "version": 1, + "name": "Boron Vertical Connection Structure 02", + "macro": "struct_bor_vertical_02_macro", + "description": "No information available", + "type": "connectionmodule", + "explosionDamage": 1000, + "hull": 132000, + "makerRace": "boron", + "price": { + "min": 77977, + "max": 105499, + "avg": 91738 + }, + "owners": [ + "boron" + ], + "production": [ + { + "time": 68, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 8 + }, + { + "ware": "energycells", + "amount": 258 + }, + { + "ware": "hullparts", + "amount": 59 + }, + { + "ware": "water", + "amount": 156 + } + ] + } + ] + }, + { + "id": "module_bor_def_claim_01", + "version": 1, + "name": "Boron Administrative Centre", + "macro": "defence_bor_claim_01_macro", + "description": "No information available", + "type": "defencemodule", + "explosionDamage": 2000, + "hull": 435000, + "makerRace": "boron", + "price": { + "min": 819421, + "max": 1108629, + "avg": 964025 + }, + "owners": [ + "boron" + ], + "production": [ + { + "time": 414, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 85 + }, + { + "ware": "energycells", + "amount": 2711 + }, + { + "ware": "hullparts", + "amount": 623 + }, + { + "ware": "water", + "amount": 1637 + } + ] + } + ] + }, + { + "id": "module_bor_def_disc_01", + "version": 1, + "name": "Boron Disc Defence Platform", + "macro": "defence_bor_disc_01_macro", + "description": "No information available", + "type": "defencemodule", + "explosionDamage": 1200, + "hull": 387000, + "makerRace": "boron", + "price": { + "min": 586455, + "max": 793439, + "avg": 689947 + }, + "owners": [ + "boron" + ], + "shields": [ + { + "group": "group_large_top_01", + "size": "large", + "hittable": false + }, + { + "group": "group_large_top_03", + "size": "large", + "hittable": false + }, + { + "group": "group_large_bottom_03", + "size": "large", + "hittable": false + }, + { + "group": "group_large_bottom_02", + "size": "large", + "hittable": false + }, + { + "group": "group_large_bottom_01", + "size": "large", + "hittable": false + }, + { + "group": "group_large_top_02", + "size": "large", + "hittable": false + }, + { + "group": "group_medium_top_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_medium_bottom_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_medium_bottom_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_medium_top_02", + "size": "medium", + "hittable": true + }, + { + "group": "group_medium_top_02", + "size": "medium", + "hittable": true + }, + { + "group": "group_medium_bottom_02", + "size": "medium", + "hittable": true + }, + { + "group": "group_medium_bottom_02", + "size": "medium", + "hittable": true + }, + { + "group": "group_medium_top_03", + "size": "medium", + "hittable": true + }, + { + "group": "group_medium_top_03", + "size": "medium", + "hittable": true + }, + { + "group": "group_medium_bottom_03", + "size": "medium", + "hittable": true + }, + { + "group": "group_medium_bottom_03", + "size": "medium", + "hittable": true + }, + { + "group": "group_medium_top_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "group_large_top_02", + "size": "large", + "hittable": false, + "types": [ + "missile" + ] + }, + { + "group": "group_large_top_03", + "size": "large", + "hittable": false, + "types": [ + "missile" + ] + }, + { + "group": "group_large_bottom_03", + "size": "large", + "hittable": false, + "types": [ + "missile" + ] + }, + { + "group": "group_large_bottom_02", + "size": "large", + "hittable": false, + "types": [ + "missile" + ] + }, + { + "group": "group_large_bottom_01", + "size": "large", + "hittable": false, + "types": [ + "missile" + ] + }, + { + "group": "group_large_top_01", + "size": "large", + "hittable": false, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_top_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_top_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_top_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_top_02", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_top_02", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_top_02", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_top_02", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_bottom_02", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_bottom_02", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_bottom_02", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_bottom_02", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_top_03", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_top_03", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_top_03", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_top_03", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_bottom_03", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_bottom_03", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_bottom_03", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_bottom_03", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_top_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + } + ], + "production": [ + { + "time": 133, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 61 + }, + { + "ware": "energycells", + "amount": 1940 + }, + { + "ware": "hullparts", + "amount": 446 + }, + { + "ware": "water", + "amount": 1172 + } + ] + } + ] + }, + { + "id": "module_bor_def_tube_01", + "version": 1, + "name": "Boron Bridge Defence Platform", + "macro": "defence_bor_tube_01_macro", + "description": "No information available", + "type": "defencemodule", + "explosionDamage": 1200, + "hull": 295000, + "makerRace": "boron", + "price": { + "min": 508960, + "max": 688594, + "avg": 598777 + }, + "owners": [ + "boron" + ], + "shields": [ + { + "group": "group_large_top_03", + "size": "large", + "hittable": false + }, + { + "group": "group_large_bottom_03", + "size": "large", + "hittable": false + }, + { + "group": "group_large_bottom_02", + "size": "large", + "hittable": false + }, + { + "group": "group_large_top_02", + "size": "large", + "hittable": false + }, + { + "group": "group_medium_top_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_medium_bottom_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_medium_bottom_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_medium_top_02", + "size": "medium", + "hittable": true + }, + { + "group": "group_medium_top_02", + "size": "medium", + "hittable": true + }, + { + "group": "group_medium_bottom_02", + "size": "medium", + "hittable": true + }, + { + "group": "group_medium_bottom_02", + "size": "medium", + "hittable": true + }, + { + "group": "group_medium_top_03", + "size": "medium", + "hittable": true + }, + { + "group": "group_medium_top_03", + "size": "medium", + "hittable": true + }, + { + "group": "group_medium_bottom_03", + "size": "medium", + "hittable": true + }, + { + "group": "group_medium_bottom_03", + "size": "medium", + "hittable": true + }, + { + "group": "group_medium_top_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_medium_top_04", + "size": "medium", + "hittable": true + }, + { + "group": "group_medium_top_05", + "size": "medium", + "hittable": true + }, + { + "group": "group_medium_bottom_04", + "size": "medium", + "hittable": true + }, + { + "group": "group_medium_bottom_05", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "group_large_top_02", + "size": "large", + "hittable": false, + "types": [ + "missile" + ] + }, + { + "group": "group_large_top_03", + "size": "large", + "hittable": false, + "types": [ + "missile" + ] + }, + { + "group": "group_large_bottom_03", + "size": "large", + "hittable": false, + "types": [ + "missile" + ] + }, + { + "group": "group_large_bottom_02", + "size": "large", + "hittable": false, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_top_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_top_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_top_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_top_02", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_top_02", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_top_02", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_top_02", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_bottom_02", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_bottom_02", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_bottom_02", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_bottom_02", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_top_04", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_top_05", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_bottom_04", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_bottom_05", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_top_03", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_top_04", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_top_05", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_bottom_04", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_bottom_05", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_top_03", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_top_03", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_top_03", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_bottom_03", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_bottom_03", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_bottom_03", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_bottom_03", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_medium_top_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + } + ], + "production": [ + { + "time": 118, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 53 + }, + { + "ware": "energycells", + "amount": 1684 + }, + { + "ware": "hullparts", + "amount": 387 + }, + { + "ware": "water", + "amount": 1017 + } + ] + } + ] + }, + { + "id": "module_bor_dock_m_01_standard", + "version": 1, + "name": "Boron 4M14S Luxury Dock Area", + "macro": "dockarea_bor_m_station_01_standard_macro", + "description": "No information available", + "type": "dockarea", + "explosionDamage": 1000, + "hull": 580000, + "makerRace": "boron", + "price": { + "min": 497906, + "max": 673638, + "avg": 585772 + }, + "owners": [ + "boron" + ], + "docks": [ + { + "capacity": 10, + "size": "medium" + }, + { + "capacity": 40, + "size": "small" + }, + { + "capacity": 10, + "size": "extrasmall" + } + ], + "production": [ + { + "time": 773, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 52 + }, + { + "ware": "energycells", + "amount": 1647 + }, + { + "ware": "hullparts", + "amount": 378 + }, + { + "ware": "water", + "amount": 995 + } + ] + } + ] + }, + { + "id": "module_bor_equip_dockarea_m_01", + "version": 1, + "name": "Boron S/M Ship Maintenance Bay", + "macro": "buildmodule_bor_equip_m_dockarea_01_macro", + "description": "No information available", + "type": "buildmodule", + "explosionDamage": 2500, + "hull": 225000, + "makerRace": "boron", + "workForce": { + "max": 400 + }, + "price": { + "min": 28659268, + "max": 38774304, + "avg": 33716786 + }, + "owners": [ + "boron" + ], + "docks": [ + { + "capacity": 30, + "size": "medium" + }, + { + "capacity": 100, + "size": "small" + }, + { + "capacity": 10, + "size": "extrasmall" + } + ], + "production": [ + { + "time": 596, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 595 + }, + { + "ware": "energycells", + "amount": 6322 + }, + { + "ware": "hullparts", + "amount": 1936 + }, + { + "ware": "water", + "amount": 5725 + } + ] + } + ] + }, + { + "id": "module_bor_equip_l_01", + "version": 1, + "name": "Boron L Ship Maintenance Bay", + "macro": "buildmodule_bor_equip_l_macro", + "description": "No information available", + "type": "buildmodule", + "explosionDamage": 5000, + "hull": 370000, + "makerRace": "boron", + "workForce": { + "max": 500 + }, + "price": { + "min": 52476005, + "max": 70996949, + "avg": 61736477 + }, + "owners": [ + "boron" + ], + "production": [ + { + "time": 653, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 872 + }, + { + "ware": "energycells", + "amount": 9260 + }, + { + "ware": "hullparts", + "amount": 2836 + }, + { + "ware": "water", + "amount": 8387 + } + ] + } + ] + }, + { + "id": "module_bor_equip_xl_01", + "version": 1, + "name": "Boron XL Ship Maintenance Bay", + "macro": "buildmodule_bor_equip_xl_macro", + "description": "No information available", + "type": "buildmodule", + "explosionDamage": 5000, + "hull": 715000, + "makerRace": "boron", + "workForce": { + "max": 500 + }, + "price": { + "min": 54208622, + "max": 73341077, + "avg": 63774850 + }, + "owners": [ + "boron" + ], + "production": [ + { + "time": 1136, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 1125 + }, + { + "ware": "energycells", + "amount": 11958 + }, + { + "ware": "hullparts", + "amount": 3662 + }, + { + "ware": "water", + "amount": 10830 + } + ] + } + ] + }, + { + "id": "module_bor_hab_l_01", + "version": 1, + "name": "Boron L Oasis", + "macro": "hab_bor_l_01_macro", + "description": "No information available", + "type": "habitation", + "explosionDamage": 1000, + "hull": 480000, + "makerRace": "boron", + "workForce": { + "capacity": 1000, + "race": "boron" + }, + "price": { + "min": 18290485, + "max": 24745951, + "avg": 21518218 + }, + "owners": [ + "boron" + ], + "production": [ + { + "time": 640, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 114 + }, + { + "ware": "energycells", + "amount": 3631 + }, + { + "ware": "hullparts", + "amount": 834 + }, + { + "ware": "water", + "amount": 2192 + } + ] + } + ] + }, + { + "id": "module_bor_hab_m_01", + "version": 1, + "name": "Boron M Oasis", + "macro": "hab_bor_m_01_macro", + "description": "No information available", + "type": "habitation", + "explosionDamage": 1000, + "hull": 260000, + "makerRace": "boron", + "workForce": { + "capacity": 500, + "race": "boron" + }, + "price": { + "min": 12929719, + "max": 17493149, + "avg": 15211434 + }, + "owners": [ + "boron" + ], + "production": [ + { + "time": 347, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 81 + }, + { + "ware": "energycells", + "amount": 2567 + }, + { + "ware": "hullparts", + "amount": 590 + }, + { + "ware": "water", + "amount": 1550 + } + ] + } + ] + }, + { + "id": "module_bor_hab_s_01", + "version": 1, + "name": "Boron S Oasis", + "macro": "hab_bor_s_01_macro", + "description": "No information available", + "type": "habitation", + "explosionDamage": 1000, + "hull": 140000, + "makerRace": "boron", + "workForce": { + "capacity": 250, + "race": "boron" + }, + "price": { + "min": 8989883, + "max": 12162783, + "avg": 10576333 + }, + "owners": [ + "boron" + ], + "production": [ + { + "time": 187, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 56 + }, + { + "ware": "energycells", + "amount": 1785 + }, + { + "ware": "hullparts", + "amount": 410 + }, + { + "ware": "water", + "amount": 1078 + } + ] + } + ] + }, + { + "id": "module_bor_pier_l_01", + "version": 1, + "name": "Boron 4-Dock T Pier", + "macro": "pier_bor_harbor_01_macro", + "description": "No information available", + "type": "pier", + "explosionDamage": 1000, + "hull": 850000, + "makerRace": "boron", + "price": { + "min": 3240789, + "max": 4384597, + "avg": 3812693 + }, + "owners": [ + "boron" + ], + "production": [ + { + "time": 739, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 336 + }, + { + "ware": "energycells", + "amount": 10723 + }, + { + "ware": "hullparts", + "amount": 2463 + }, + { + "ware": "water", + "amount": 6474 + } + ] + } + ] + }, + { + "id": "module_bor_pier_l_02", + "version": 1, + "name": "Boron 1-Dock Pier", + "macro": "pier_bor_harbor_02_macro", + "description": "No information available", + "type": "pier", + "explosionDamage": 1000, + "hull": 325000, + "makerRace": "boron", + "price": { + "min": 1871312, + "max": 2531774, + "avg": 2201543 + }, + "owners": [ + "boron" + ], + "production": [ + { + "time": 283, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 194 + }, + { + "ware": "energycells", + "amount": 6192 + }, + { + "ware": "hullparts", + "amount": 1422 + }, + { + "ware": "water", + "amount": 3738 + } + ] + } + ] + }, + { + "id": "module_bor_pier_l_03", + "version": 1, + "name": "Boron 3-Dock E Pier", + "macro": "pier_bor_harbor_03_macro", + "description": "No information available", + "type": "pier", + "explosionDamage": 1000, + "hull": 1250000, + "makerRace": "boron", + "price": { + "min": 3738918, + "max": 5058536, + "avg": 4398727 + }, + "owners": [ + "boron" + ], + "production": [ + { + "time": 1087, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 388 + }, + { + "ware": "energycells", + "amount": 12371 + }, + { + "ware": "hullparts", + "amount": 2841 + }, + { + "ware": "water", + "amount": 7470 + } + ] + } + ] + }, + { + "id": "module_bor_pier_l_04", + "version": 1, + "name": "Boron Trading Station 4-Dock Pier", + "macro": "pier_bor_harbor_04_macro", + "description": "No information available", + "type": "pier", + "explosionDamage": 1000, + "hull": 575000, + "makerRace": "boron", + "price": { + "min": 2633918, + "max": 3563536, + "avg": 3098727 + }, + "owners": [ + "boron" + ], + "production": [ + { + "time": 517, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 273 + }, + { + "ware": "energycells", + "amount": 8715 + }, + { + "ware": "hullparts", + "amount": 2002 + }, + { + "ware": "water", + "amount": 5262 + } + ] + } + ] + }, + { + "id": "module_bor_pier_tradestation_01", + "version": 1, + "name": "Boron Trading Station Hexa-Dock Pier", + "macro": "pier_bor_tradestation_01_macro", + "description": "No information available", + "type": "pier", + "explosionDamage": 1500, + "hull": 2000000, + "makerRace": "boron", + "price": { + "min": 4225512, + "max": 5210498, + "avg": 4730030 + }, + "owners": [ + "boron" + ], + "production": [ + { + "time": 1087, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 417 + }, + { + "ware": "energycells", + "amount": 13303 + }, + { + "ware": "hullparts", + "amount": 3055 + }, + { + "ware": "water", + "amount": 8032 + } + ] + } + ] + }, + { + "id": "module_bor_prod_bofu_01", + "version": 1, + "name": "BoFu Production", + "macro": "prod_bor_bofu_macro", + "description": "No information available", + "type": "production", + "product": [ + "bofu" + ], + "explosionDamage": 1000, + "hull": 165000, + "makerRace": "boron", + "workForce": { + "max": 125 + }, + "price": { + "min": 1568474, + "max": 2122053, + "avg": 1845263 + }, + "owners": [ + "boron" + ], + "shields": [ + { + "group": "group_top_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_bottom_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_top_left_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_bottom_left_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "group_top_right_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_top_right_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_bottom_right_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_bottom_right_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_top_left_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_top_left_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_bottom_left_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_bottom_left_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + } + ], + "production": [ + { + "time": 367, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 163 + }, + { + "ware": "energycells", + "amount": 5190 + }, + { + "ware": "hullparts", + "amount": 1192 + }, + { + "ware": "water", + "amount": 3133 + } + ] + } + ] + }, + { + "id": "module_bor_prod_bogas_01", + "version": 1, + "name": "BoGas Production", + "macro": "prod_bor_bogas_macro", + "description": "No information available", + "type": "production", + "product": [ + "bogas" + ], + "explosionDamage": 1000, + "hull": 185000, + "makerRace": "boron", + "workForce": { + "max": 100 + }, + "price": { + "min": 1484832, + "max": 2008891, + "avg": 1746862 + }, + "owners": [ + "boron" + ], + "shields": [ + { + "group": "group_top_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_top_left_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_bottom_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_bottom_left_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "group_top_right_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_top_right_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_top_left_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_top_left_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_bottom_right_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_bottom_right_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_bottom_left_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_bottom_left_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + } + ], + "production": [ + { + "time": 411, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 154 + }, + { + "ware": "energycells", + "amount": 4913 + }, + { + "ware": "hullparts", + "amount": 1128 + }, + { + "ware": "water", + "amount": 2966 + } + ] + } + ] + }, + { + "id": "module_bor_prod_medicalsupplies_01", + "version": 1, + "name": "Boron Medical Supply Production", + "macro": "prod_bor_medicalsupplies_macro", + "description": "No information available", + "type": "production", + "product": [ + "medicalsupplies" + ], + "explosionDamage": 1000, + "hull": 204000, + "makerRace": "boron", + "workForce": { + "max": 90 + }, + "price": { + "min": 1345856, + "max": 1820864, + "avg": 1583360 + }, + "owners": [ + "boron" + ], + "shields": [ + { + "group": "group_top_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_bottom_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_top_left_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_bottom_left_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "group_top_right_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_top_right_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_bottom_right_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_bottom_right_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_top_left_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_top_left_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_bottom_left_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_bottom_left_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + } + ], + "production": [ + { + "time": 453, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 140 + }, + { + "ware": "energycells", + "amount": 4453 + }, + { + "ware": "hullparts", + "amount": 1023 + }, + { + "ware": "water", + "amount": 2689 + } + ] + } + ] + }, + { + "id": "module_bor_prod_plankton_01", + "version": 1, + "name": "Plankton Production", + "macro": "prod_bor_plankton_macro", + "description": "No information available", + "type": "production", + "product": [ + "plankton" + ], + "explosionDamage": 1000, + "hull": 135000, + "makerRace": "boron", + "workForce": { + "max": 40 + }, + "price": { + "min": 921174, + "max": 1246295, + "avg": 1083734 + }, + "owners": [ + "boron" + ], + "shields": [ + { + "group": "group_top_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_down_left_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_top_left_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_down_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_down_left_02", + "size": "medium", + "hittable": true + }, + { + "group": "group_down_right_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "group_top_right_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_top_right_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_down_left_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_down_right_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_top_left_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_top_left_01", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_down_left_02", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + }, + { + "group": "group_down_right_02", + "size": "medium", + "hittable": true, + "types": [ + "missile" + ] + } + ], + "production": [ + { + "time": 278, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 96 + }, + { + "ware": "energycells", + "amount": 3048 + }, + { + "ware": "hullparts", + "amount": 700 + }, + { + "ware": "water", + "amount": 1840 + } + ] + } + ] + }, + { + "id": "module_bor_stor_container_l_01", + "version": 1, + "name": "Boron L Container Storage", + "macro": "storage_bor_l_container_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 1000, + "hull": 775000, + "makerRace": "boron", + "cargo": { + "max": 1000000, + "type": "container" + }, + "price": { + "min": 688054, + "max": 930896, + "avg": 809475 + }, + "owners": [ + "boron" + ], + "shields": [ + { + "group": "group_mid_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_mid_right_02", + "size": "medium", + "hittable": true + }, + { + "group": "group_mid_left_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_mid_left_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "group_mid_right_01", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_right_01", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_right_02", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_right_02", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_left_01", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_left_01", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_left_02", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_left_02", + "size": "medium", + "hittable": true, + "types": [] + } + ], + "production": [ + { + "time": 783, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 71 + }, + { + "ware": "energycells", + "amount": 2277 + }, + { + "ware": "hullparts", + "amount": 523 + }, + { + "ware": "water", + "amount": 1375 + } + ] + } + ] + }, + { + "id": "module_bor_stor_container_m_01", + "version": 1, + "name": "Boron M Container Storage", + "macro": "storage_bor_m_container_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 800, + "hull": 315000, + "makerRace": "boron", + "cargo": { + "max": 100000, + "type": "container" + }, + "price": { + "min": 490022, + "max": 662972, + "avg": 576497 + }, + "owners": [ + "boron" + ], + "shields": [ + { + "group": "group_mid_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_mid_right_02", + "size": "medium", + "hittable": true + }, + { + "group": "group_mid_left_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_mid_left_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "group_mid_right_01", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_right_01", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_right_02", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_right_02", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_left_01", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_left_01", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_left_02", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_left_02", + "size": "medium", + "hittable": true, + "types": [] + } + ], + "production": [ + { + "time": 423, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 51 + }, + { + "ware": "energycells", + "amount": 1621 + }, + { + "ware": "hullparts", + "amount": 372 + }, + { + "ware": "water", + "amount": 979 + } + ] + } + ] + }, + { + "id": "module_bor_stor_container_s_01", + "version": 1, + "name": "Boron S Container Storage", + "macro": "storage_bor_s_container_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 500, + "hull": 135000, + "makerRace": "boron", + "cargo": { + "max": 25000, + "type": "container" + }, + "price": { + "min": 310446, + "max": 420016, + "avg": 365231 + }, + "owners": [ + "boron" + ], + "shields": [ + { + "group": "group_mid_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_mid_right_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "group_mid_right_01", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_right_01", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_right_02", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_right_02", + "size": "medium", + "hittable": true, + "types": [] + } + ], + "production": [ + { + "time": 268, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 32 + }, + { + "ware": "energycells", + "amount": 1027 + }, + { + "ware": "hullparts", + "amount": 236 + }, + { + "ware": "water", + "amount": 620 + } + ] + } + ] + }, + { + "id": "module_bor_stor_liquid_l_01", + "version": 1, + "name": "Boron L Liquid Storage", + "macro": "storage_bor_l_liquid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 1000, + "hull": 765000, + "makerRace": "boron", + "cargo": { + "max": 1000000, + "type": "liquid" + }, + "price": { + "min": 688054, + "max": 930896, + "avg": 809475 + }, + "owners": [ + "boron" + ], + "shields": [ + { + "group": "group_mid_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_mid_right_02", + "size": "medium", + "hittable": true + }, + { + "group": "group_mid_left_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_mid_left_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "group_mid_right_01", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_right_01", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_right_02", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_right_02", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_left_01", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_left_01", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_left_02", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_left_02", + "size": "medium", + "hittable": true, + "types": [] + } + ], + "production": [ + { + "time": 783, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 71 + }, + { + "ware": "energycells", + "amount": 2277 + }, + { + "ware": "hullparts", + "amount": 523 + }, + { + "ware": "water", + "amount": 1375 + } + ] + } + ] + }, + { + "id": "module_bor_stor_liquid_m_01", + "version": 1, + "name": "Boron M Liquid Storage", + "macro": "storage_bor_m_liquid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 1000, + "hull": 307000, + "makerRace": "boron", + "cargo": { + "max": 500000, + "type": "liquid" + }, + "price": { + "min": 490022, + "max": 662972, + "avg": 576497 + }, + "owners": [ + "boron" + ], + "shields": [ + { + "group": "group_mid_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_mid_right_02", + "size": "medium", + "hittable": true + }, + { + "group": "group_mid_left_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_mid_left_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "group_mid_right_01", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_right_01", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_right_02", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_right_02", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_left_01", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_left_01", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_left_02", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_left_02", + "size": "medium", + "hittable": true, + "types": [] + } + ], + "production": [ + { + "time": 423, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 51 + }, + { + "ware": "energycells", + "amount": 1621 + }, + { + "ware": "hullparts", + "amount": 372 + }, + { + "ware": "water", + "amount": 979 + } + ] + } + ] + }, + { + "id": "module_bor_stor_liquid_s_01", + "version": 1, + "name": "Boron S Liquid Storage", + "macro": "storage_bor_s_liquid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 500, + "hull": 126000, + "makerRace": "boron", + "cargo": { + "max": 100000, + "type": "liquid" + }, + "price": { + "min": 310446, + "max": 420016, + "avg": 365231 + }, + "owners": [ + "boron" + ], + "shields": [ + { + "group": "group_mid_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_mid_right_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "group_mid_right_01", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_right_01", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_right_02", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_right_02", + "size": "medium", + "hittable": true, + "types": [] + } + ], + "production": [ + { + "time": 268, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 32 + }, + { + "ware": "energycells", + "amount": 1027 + }, + { + "ware": "hullparts", + "amount": 236 + }, + { + "ware": "water", + "amount": 620 + } + ] + } + ] + }, + { + "id": "module_bor_stor_solid_l_01", + "version": 1, + "name": "Boron L Solid Storage", + "macro": "storage_bor_l_solid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 1000, + "hull": 769000, + "makerRace": "boron", + "cargo": { + "max": 1000000, + "type": "solid" + }, + "price": { + "min": 688054, + "max": 930896, + "avg": 809475 + }, + "owners": [ + "boron" + ], + "shields": [ + { + "group": "group_mid_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_mid_right_02", + "size": "medium", + "hittable": true + }, + { + "group": "group_mid_left_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_mid_left_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "group_mid_right_01", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_right_01", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_right_02", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_right_02", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_left_01", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_left_01", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_left_02", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_left_02", + "size": "medium", + "hittable": true, + "types": [] + } + ], + "production": [ + { + "time": 783, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 71 + }, + { + "ware": "energycells", + "amount": 2277 + }, + { + "ware": "hullparts", + "amount": 523 + }, + { + "ware": "water", + "amount": 1375 + } + ] + } + ] + }, + { + "id": "module_bor_stor_solid_m_01", + "version": 1, + "name": "Boron M Solid Storage", + "macro": "storage_bor_m_solid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 1000, + "hull": 311000, + "makerRace": "boron", + "cargo": { + "max": 500000, + "type": "solid" + }, + "price": { + "min": 490022, + "max": 662972, + "avg": 576497 + }, + "owners": [ + "boron" + ], + "shields": [ + { + "group": "group_mid_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_mid_right_02", + "size": "medium", + "hittable": true + }, + { + "group": "group_mid_left_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_mid_left_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "group_mid_right_01", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_right_01", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_right_02", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_right_02", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_left_01", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_left_01", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_left_02", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_left_02", + "size": "medium", + "hittable": true, + "types": [] + } + ], + "production": [ + { + "time": 423, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 51 + }, + { + "ware": "energycells", + "amount": 1621 + }, + { + "ware": "hullparts", + "amount": 372 + }, + { + "ware": "water", + "amount": 979 + } + ] + } + ] + }, + { + "id": "module_bor_stor_solid_s_01", + "version": 1, + "name": "Boron S Solid Storage", + "macro": "storage_bor_s_solid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 500, + "hull": 132000, + "makerRace": "boron", + "cargo": { + "max": 100000, + "type": "solid" + }, + "price": { + "min": 310446, + "max": 420016, + "avg": 365231 + }, + "owners": [ + "boron" + ], + "shields": [ + { + "group": "group_mid_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "group_mid_right_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "group_mid_right_01", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_right_01", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_right_02", + "size": "medium", + "hittable": true, + "types": [] + }, + { + "group": "group_mid_right_02", + "size": "medium", + "hittable": true, + "types": [] + } + ], + "production": [ + { + "time": 268, + "amount": 1, + "method": "default", + "name": "Boron", + "wares": [ + { + "ware": "claytronics", + "amount": 32 + }, + { + "ware": "energycells", + "amount": 1027 + }, + { + "ware": "hullparts", + "amount": 236 + }, + { + "ware": "water", + "amount": 620 + } + ] + } + ] + }, + { + "id": "module_gen_build_dockarea_m_01", + "version": 0, + "name": "S/M Ship Fabrication Bay", + "macro": "buildmodule_gen_ships_m_dockarea_01_macro", + "description": "No information available", + "type": "buildmodule", + "explosionDamage": 2500, + "hull": 1020000, + "workForce": { + "max": 800 + }, + "price": { + "min": 86008820, + "max": 116364875, + "avg": 101186848 + }, + "owners": [ + "antigone", + "argon", + "holyorder", + "paranid", + "teladi", + "trinity", + "xenon", + "freesplit", + "split" + ], + "docks": [ + { + "capacity": 30, + "size": "medium" + }, + { + "capacity": 100, + "size": "small" + }, + { + "capacity": 10, + "size": "extrasmall" + } + ], + "production": [ + { + "time": 1298, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 3312 + }, + { + "ware": "energycells", + "amount": 6620 + }, + { + "ware": "hullparts", + "amount": 12112 + } + ] + }, + { + "time": 539, + "amount": 1, + "method": "xenon", + "name": "Xenon", + "wares": [ + { + "ware": "energycells", + "amount": 6620 + }, + { + "ware": "ore", + "amount": 6952 + }, + { + "ware": "silicon", + "amount": 4062 + } + ] + } + ] + }, + { + "id": "module_gen_build_l_01", + "version": 0, + "name": "L Ship Fabrication Bay", + "macro": "buildmodule_gen_ships_l_macro", + "description": "No information available", + "type": "buildmodule", + "explosionDamage": 10000, + "hull": 324000, + "workForce": { + "max": 700 + }, + "price": { + "min": 180147181, + "max": 243728539, + "avg": 211937860 + }, + "owners": [ + "antigone", + "argon", + "holyorder", + "paranid", + "teladi", + "trinity", + "freesplit", + "split" + ], + "production": [ + { + "time": 731, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 1866 + }, + { + "ware": "energycells", + "amount": 3731 + }, + { + "ware": "hullparts", + "amount": 6826 + } + ] + } + ] + }, + { + "id": "module_gen_build_xl_01", + "version": 0, + "name": "XL Ship Fabrication Bay", + "macro": "buildmodule_gen_ships_xl_macro", + "description": "No information available", + "type": "buildmodule", + "explosionDamage": 10000, + "hull": 551000, + "workForce": { + "max": 700 + }, + "price": { + "min": 183235129, + "max": 247906351, + "avg": 215570740 + }, + "owners": [ + "antigone", + "argon", + "holyorder", + "paranid", + "teladi", + "trinity", + "freesplit", + "split" + ], + "production": [ + { + "time": 954, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 2434 + }, + { + "ware": "energycells", + "amount": 4866 + }, + { + "ware": "hullparts", + "amount": 8902 + } + ] + } + ] + }, + { + "id": "module_gen_equip_dockarea_m_01", + "version": 0, + "name": "S/M Ship Maintenance Bay", + "macro": "buildmodule_gen_equip_m_dockarea_01_macro", + "description": "No information available", + "type": "buildmodule", + "explosionDamage": 2500, + "hull": 1020000, + "workForce": { + "max": 400 + }, + "price": { + "min": 26053880, + "max": 35249367, + "avg": 30651624 + }, + "owners": [ + "antigone", + "argon", + "holyorder", + "paranid", + "teladi", + "trinity", + "freesplit", + "split" + ], + "docks": [ + { + "capacity": 30, + "size": "medium" + }, + { + "capacity": 100, + "size": "small" + }, + { + "capacity": 10, + "size": "extrasmall" + } + ], + "production": [ + { + "time": 650, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 1604 + }, + { + "ware": "energycells", + "amount": 3312 + }, + { + "ware": "hullparts", + "amount": 6620 + } + ] + } + ] + }, + { + "id": "module_gen_equip_l_01", + "version": 0, + "name": "L Ship Maintenance Bay", + "macro": "buildmodule_gen_equip_l_macro", + "description": "No information available", + "type": "buildmodule", + "explosionDamage": 5000, + "hull": 324000, + "workForce": { + "max": 500 + }, + "price": { + "min": 47705459, + "max": 64542680, + "avg": 56124070 + }, + "owners": [ + "antigone", + "argon", + "holyorder", + "paranid", + "teladi", + "trinity", + "freesplit", + "split" + ], + "production": [ + { + "time": 364, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 931 + }, + { + "ware": "energycells", + "amount": 1866 + }, + { + "ware": "hullparts", + "amount": 3731 + } + ] + } + ] + }, + { + "id": "module_gen_equip_xl_01", + "version": 0, + "name": "XL Ship Maintenance Bay", + "macro": "buildmodule_gen_equip_xl_macro", + "description": "No information available", + "type": "buildmodule", + "explosionDamage": 5000, + "hull": 551000, + "workForce": { + "max": 500 + }, + "price": { + "min": 49280566, + "max": 66673706, + "avg": 57977136 + }, + "owners": [ + "antigone", + "argon", + "holyorder", + "paranid", + "teladi", + "trinity", + "freesplit", + "split" + ], + "production": [ + { + "time": 477, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 1212 + }, + { + "ware": "energycells", + "amount": 2434 + }, + { + "ware": "hullparts", + "amount": 4866 + } + ] + } + ] + }, + { + "id": "module_gen_proc_scrapworks", + "version": 0, + "name": "Scrap Processor", + "macro": "proc_gen_scrapworks_macro", + "description": "The Jump Gate shutdown left Avarice with very limited access to resources, so stranded Argon engineers started development of various recycling facilities. One of these was the Scrap Processor; a module that takes in S- and M-sized ship wrecks to process the contained Raw Scrap into Scrap Metal, which can, in turn, be recycled into other useable resources. The first Tug ships were also developed at this time, to transport the wrecks to the Scrap Processor. Scrap Cubes were a later introduction, designed to allow larger wrecks to be packed up into blocks suitable for towing and processing.nnFollowing the arrival of messenger drones from Sacred Relic, the people of Avarice sent out drones of their own to other disconnected systems. These drones contained blueprints for their recycling technology, in the hopes that it would be of help to others who were unfortunate enough to be stranded with no natural resources to hand. In the process, they created a local branch of the Alliance of the Word, operating out of Tidebreak. With the first Jump Gate reconnection in 825 (NT), the Alliance of the Word moved to its own station in Windfall.", + "type": "processingmodule", + "explosionDamage": 1000, + "hull": 150000, + "price": { + "min": 992413, + "max": 1342677, + "avg": 1167545 + }, + "owners": [ + "alliance", + "scaleplate", + "teladi", + "pioneers", + "scavenger" + ], + "shields": [ + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 566, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 178 + }, + { + "ware": "energycells", + "amount": 162 + }, + { + "ware": "hullparts", + "amount": 733 + } + ] + }, + { + "time": 565, + "amount": 1, + "method": "terran", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 49 + }, + { + "ware": "energycells", + "amount": 181 + }, + { + "ware": "siliconcarbide", + "amount": 78 + } + ] + } + ] + }, + { + "id": "module_gen_prod_advancedcomposites_01", + "version": 0, + "name": "Advanced Composite Production", + "macro": "prod_gen_advancedcomposites_macro", + "description": "No information available", + "type": "production", + "product": [ + "advancedcomposites" + ], + "explosionDamage": 1000, + "hull": 197000, + "workForce": { + "max": 315 + }, + "price": { + "min": 3524906, + "max": 4768990, + "avg": 4146948 + }, + "owners": [ + "antigone", + "argon", + "holyorder", + "paranid", + "teladi", + "trinity", + "freesplit", + "split", + "boron" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 869, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 648 + }, + { + "ware": "energycells", + "amount": 1296 + }, + { + "ware": "hullparts", + "amount": 2373 + } + ] + } + ] + }, + { + "id": "module_gen_prod_advancedelectronics_01", + "version": 0, + "name": "Advanced Electronics Production", + "macro": "prod_gen_advancedelectronics_macro", + "description": "No information available", + "type": "production", + "product": [ + "advancedelectronics" + ], + "explosionDamage": 1000, + "hull": 160000, + "workForce": { + "max": 540 + }, + "price": { + "min": 2622767, + "max": 3548449, + "avg": 3085608 + }, + "owners": [ + "antigone", + "argon", + "holyorder", + "paranid", + "teladi", + "trinity", + "freesplit", + "split", + "boron" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_02", + "size": "medium", + "hittable": true + }, + { + "group": "left_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 832, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 482 + }, + { + "ware": "energycells", + "amount": 965 + }, + { + "ware": "hullparts", + "amount": 1767 + } + ] + } + ] + }, + { + "id": "module_gen_prod_antimattercells_01", + "version": 0, + "name": "Antimatter Cell Production", + "macro": "prod_gen_antimattercells_macro", + "description": "No information available", + "type": "production", + "product": [ + "antimattercells" + ], + "explosionDamage": 1000, + "hull": 251000, + "workForce": { + "max": 180 + }, + "price": { + "min": 375477, + "max": 507999, + "avg": 441738 + }, + "owners": [ + "antigone", + "argon", + "holyorder", + "paranid", + "teladi", + "trinity", + "freesplit", + "split", + "boron" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 593, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 69 + }, + { + "ware": "energycells", + "amount": 138 + }, + { + "ware": "hullparts", + "amount": 253 + } + ] + } + ] + }, + { + "id": "module_gen_prod_antimatterconverters_01", + "version": 0, + "name": "Antimatter Converter Production", + "macro": "prod_gen_antimatterconverters_macro", + "description": "No information available", + "type": "production", + "product": [ + "antimatterconverters" + ], + "explosionDamage": 1000, + "hull": 216000, + "workForce": { + "max": 1080 + }, + "price": { + "min": 9681548, + "max": 13098564, + "avg": 11390056 + }, + "owners": [ + "antigone", + "argon", + "holyorder", + "paranid", + "teladi", + "trinity", + "freesplit", + "split", + "boron" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 993, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 1780 + }, + { + "ware": "energycells", + "amount": 3560 + }, + { + "ware": "hullparts", + "amount": 6516 + } + ] + } + ] + }, + { + "id": "module_gen_prod_claytronics_01", + "version": 0, + "name": "Claytronics Production", + "macro": "prod_gen_claytronics_macro", + "description": "No information available", + "type": "production", + "product": [ + "claytronics" + ], + "explosionDamage": 1000, + "hull": 195000, + "workForce": { + "max": 1215 + }, + "price": { + "min": 15347532, + "max": 20764308, + "avg": 18055920 + }, + "owners": [ + "antigone", + "argon", + "holyorder", + "teladi", + "trinity", + "freesplit", + "split", + "boron" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 1049, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 2822 + }, + { + "ware": "energycells", + "amount": 5642 + }, + { + "ware": "hullparts", + "amount": 10327 + } + ] + } + ] + }, + { + "id": "module_gen_prod_dronecomponents_01", + "version": 0, + "name": "Drone Component Production", + "macro": "prod_gen_dronecomponents_macro", + "description": "No information available", + "type": "production", + "product": [ + "dronecomponents" + ], + "explosionDamage": 1000, + "hull": 174000, + "workForce": { + "max": 675 + }, + "price": { + "min": 6662268, + "max": 9013656, + "avg": 7837962 + }, + "owners": [ + "argon", + "holyorder", + "ministry", + "trinity", + "freesplit", + "split", + "boron" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 947, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 1225 + }, + { + "ware": "energycells", + "amount": 2449 + }, + { + "ware": "hullparts", + "amount": 4483 + } + ] + } + ] + }, + { + "id": "module_gen_prod_energycells_01", + "version": 0, + "name": "Energy Cell Production", + "macro": "prod_gen_energycells_macro", + "description": "No information available", + "type": "production", + "product": [ + "energycells" + ], + "explosionDamage": 1000, + "hull": 217000, + "workForce": { + "max": 90 + }, + "price": { + "min": 1413819, + "max": 1912813, + "avg": 1663316 + }, + "owners": [ + "antigone", + "argon", + "holyorder", + "paranid", + "teladi", + "trinity", + "freesplit", + "split", + "boron" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 756, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 260 + }, + { + "ware": "energycells", + "amount": 520 + }, + { + "ware": "hullparts", + "amount": 951 + } + ] + } + ] + }, + { + "id": "module_gen_prod_engineparts_01", + "version": 0, + "name": "Engine Part Production", + "macro": "prod_gen_engineparts_macro", + "description": "No information available", + "type": "production", + "product": [ + "engineparts" + ], + "explosionDamage": 1000, + "hull": 120000, + "workForce": { + "max": 225 + }, + "price": { + "min": 2116689, + "max": 2863755, + "avg": 2490222 + }, + "owners": [ + "antigone", + "argon", + "paranid", + "teladi", + "trinity", + "freesplit", + "split", + "boron" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 806, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 389 + }, + { + "ware": "energycells", + "amount": 779 + }, + { + "ware": "hullparts", + "amount": 1426 + } + ] + } + ] + }, + { + "id": "module_gen_prod_fieldcoils_01", + "version": 0, + "name": "Field Coil Production", + "macro": "prod_gen_fieldcoils_macro", + "description": "No information available", + "type": "production", + "product": [ + "fieldcoils" + ], + "explosionDamage": 1000, + "hull": 149000, + "workForce": { + "max": 810 + }, + "price": { + "min": 9436671, + "max": 12767261, + "avg": 11101966 + }, + "owners": [ + "antigone", + "paranid", + "teladi", + "trinity", + "freesplit", + "split", + "boron" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 989, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 1735 + }, + { + "ware": "energycells", + "amount": 3470 + }, + { + "ware": "hullparts", + "amount": 6351 + } + ] + } + ] + }, + { + "id": "module_gen_prod_graphene_01", + "version": 0, + "name": "Graphene Production", + "macro": "prod_gen_graphene_macro", + "description": "No information available", + "type": "production", + "product": [ + "graphene" + ], + "explosionDamage": 1000, + "hull": 190000, + "workForce": { + "max": 180 + }, + "price": { + "min": 152966, + "max": 206954, + "avg": 179960 + }, + "owners": [ + "antigone", + "argon", + "holyorder", + "paranid", + "teladi", + "trinity", + "freesplit", + "split", + "boron" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 482, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 28 + }, + { + "ware": "energycells", + "amount": 57 + }, + { + "ware": "hullparts", + "amount": 104 + } + ] + } + ] + }, + { + "id": "module_gen_prod_hullparts_01", + "version": 0, + "name": "Hull Part Production", + "macro": "prod_gen_hullparts_macro", + "description": "No information available", + "type": "production", + "product": [ + "hullparts" + ], + "explosionDamage": 1000, + "hull": 146000, + "workForce": { + "max": 270 + }, + "price": { + "min": 3340194, + "max": 4519086, + "avg": 3929640 + }, + "owners": [ + "antigone", + "argon", + "holyorder", + "paranid", + "teladi", + "trinity", + "freesplit", + "split", + "boron" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 862, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 614 + }, + { + "ware": "energycells", + "amount": 1229 + }, + { + "ware": "hullparts", + "amount": 2249 + } + ] + } + ] + }, + { + "id": "module_gen_prod_microchips_01", + "version": 0, + "name": "Microchip Production", + "macro": "prod_gen_microchips_macro", + "description": "No information available", + "type": "production", + "product": [ + "microchips" + ], + "explosionDamage": 1000, + "hull": 199000, + "workForce": { + "max": 450 + }, + "price": { + "min": 4122469, + "max": 5577459, + "avg": 4849964 + }, + "owners": [ + "antigone", + "argon", + "holyorder", + "paranid", + "teladi", + "trinity", + "freesplit", + "split", + "boron" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 888, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 758 + }, + { + "ware": "energycells", + "amount": 1516 + }, + { + "ware": "hullparts", + "amount": 2774 + } + ] + } + ] + }, + { + "id": "module_gen_prod_missilecomponents_01", + "version": 0, + "name": "Missile Component Production", + "macro": "prod_gen_missilecomponents_macro", + "description": "No information available", + "type": "production", + "product": [ + "missilecomponents" + ], + "explosionDamage": 1000, + "hull": 159000, + "workForce": { + "max": 22 + }, + "price": { + "min": 191643, + "max": 259281, + "avg": 225462 + }, + "owners": [ + "argon", + "holyorder", + "ministry", + "paranid", + "trinity", + "freesplit", + "split", + "boron" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 510, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 35 + }, + { + "ware": "energycells", + "amount": 71 + }, + { + "ware": "hullparts", + "amount": 131 + } + ] + } + ] + }, + { + "id": "module_gen_prod_plasmaconductors_01", + "version": 0, + "name": "Plasma Conductor Production", + "macro": "prod_gen_plasmaconductors_macro", + "description": "No information available", + "type": "production", + "product": [ + "plasmaconductors" + ], + "explosionDamage": 1000, + "hull": 181000, + "workForce": { + "max": 225 + }, + "price": { + "min": 2572901, + "max": 3480983, + "avg": 3026942 + }, + "owners": [ + "antigone", + "argon", + "holyorder", + "paranid", + "teladi", + "trinity", + "freesplit", + "split", + "boron" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 830, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 473 + }, + { + "ware": "energycells", + "amount": 946 + }, + { + "ware": "hullparts", + "amount": 1732 + } + ] + } + ] + }, + { + "id": "module_gen_prod_quantumtubes_01", + "version": 0, + "name": "Quantum Tube Production", + "macro": "prod_gen_quantumtubes_macro", + "description": "No information available", + "type": "production", + "product": [ + "quantumtubes" + ], + "explosionDamage": 1000, + "hull": 148000, + "workForce": { + "max": 225 + }, + "price": { + "min": 2068152, + "max": 2798088, + "avg": 2433120 + }, + "owners": [ + "antigone", + "argon", + "holyorder", + "paranid", + "teladi", + "trinity", + "freesplit", + "split", + "boron" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 803, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 380 + }, + { + "ware": "energycells", + "amount": 761 + }, + { + "ware": "hullparts", + "amount": 1394 + } + ] + } + ] + }, + { + "id": "module_gen_prod_refinedmetals_01", + "version": 0, + "name": "Refined Metal Production", + "macro": "prod_gen_refinedmetals_macro", + "description": "No information available", + "type": "production", + "product": [ + "refinedmetals" + ], + "explosionDamage": 1000, + "hull": 210000, + "workForce": { + "max": 225 + }, + "price": { + "min": 197231, + "max": 266841, + "avg": 232036 + }, + "owners": [ + "antigone", + "argon", + "holyorder", + "paranid", + "teladi", + "trinity", + "freesplit", + "split", + "boron" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 514, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 36 + }, + { + "ware": "energycells", + "amount": 73 + }, + { + "ware": "hullparts", + "amount": 135 + } + ] + } + ] + }, + { + "id": "module_gen_prod_scanningarrays_01", + "version": 0, + "name": "Scanning Array Production", + "macro": "prod_gen_scanningarrays_macro", + "description": "No information available", + "type": "production", + "product": [ + "scanningarrays" + ], + "explosionDamage": 1000, + "hull": 169000, + "workForce": { + "max": 315 + }, + "price": { + "min": 3422258, + "max": 4630114, + "avg": 4026186 + }, + "owners": [ + "antigone", + "argon", + "holyorder", + "paranid", + "teladi", + "trinity", + "freesplit", + "split", + "boron" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 865, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 629 + }, + { + "ware": "energycells", + "amount": 1259 + }, + { + "ware": "hullparts", + "amount": 2305 + } + ] + } + ] + }, + { + "id": "module_gen_prod_scrap_recycler", + "version": 0, + "name": "Scrap Recycler", + "macro": "prod_gen_scrap_recycler_macro", + "description": "The Jump Gate shutdown left Avarice with very limited access to resources, so stranded Argon engineers started development of various recycling facilities. The Scrap Recycler was designed to process Scrap Metal into usable resources, converting it into Hull Parts and Claytronics in alternating production cycles.nnFollowing the arrival of messenger drones from Sacred Relic, the people of Avarice sent out drones of their own to other disconnected systems. These drones contained blueprints for their recycling technology, in the hopes that it would be of help to others who were unfortunate enough to be stranded with no natural resources to hand. In the process, they created a local branch of the Alliance of the Word, operating out of Tidebreak. With the first Jump Gate reconnection in 825 (NT), the Alliance of the Word moved to its own station in Windfall.", + "type": "production", + "product": [ + "claytronics", + "hullparts" + ], + "explosionDamage": 2000, + "hull": 200000, + "workForce": { + "max": 1250 + }, + "price": { + "min": 1628494, + "max": 2203256, + "avg": 1915875 + }, + "owners": [ + "alliance", + "scaleplate", + "teladi", + "scavenger" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 777, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 300 + }, + { + "ware": "energycells", + "amount": 600 + }, + { + "ware": "hullparts", + "amount": 1100 + } + ] + } + ] + }, + { + "id": "module_gen_prod_shieldcomponents_01", + "version": 0, + "name": "Shield Component Production", + "macro": "prod_gen_shieldcomponents_macro", + "description": "No information available", + "type": "production", + "product": [ + "shieldcomponents" + ], + "explosionDamage": 1000, + "hull": 191000, + "workForce": { + "max": 225 + }, + "price": { + "min": 2350389, + "max": 3179939, + "avg": 2765164 + }, + "owners": [ + "antigone", + "argon", + "holyorder", + "paranid", + "teladi", + "trinity", + "freesplit", + "split", + "boron" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 819, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 432 + }, + { + "ware": "energycells", + "amount": 865 + }, + { + "ware": "hullparts", + "amount": 1583 + } + ] + } + ] + }, + { + "id": "module_gen_prod_siliconwafers_01", + "version": 0, + "name": "Silicon Wafer Production", + "macro": "prod_gen_siliconwafers_macro", + "description": "No information available", + "type": "production", + "product": [ + "siliconwafers" + ], + "explosionDamage": 1000, + "hull": 186000, + "workForce": { + "max": 225 + }, + "price": { + "min": 403430, + "max": 545818, + "avg": 474624 + }, + "owners": [ + "antigone", + "argon", + "holyorder", + "paranid", + "teladi", + "trinity", + "freesplit", + "split", + "boron" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_02", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 602, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 74 + }, + { + "ware": "energycells", + "amount": 149 + }, + { + "ware": "hullparts", + "amount": 273 + } + ] + } + ] + }, + { + "id": "module_gen_prod_smartchips_01", + "version": 0, + "name": "Smart Chip Production", + "macro": "prod_gen_smartchips_macro", + "description": "No information available", + "type": "production", + "product": [ + "smartchips" + ], + "explosionDamage": 1000, + "hull": 104000, + "workForce": { + "max": 60 + }, + "price": { + "min": 686545, + "max": 928855, + "avg": 807700 + }, + "owners": [ + "antigone", + "paranid", + "teladi", + "trinity", + "freesplit", + "split", + "boron" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 667, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 126 + }, + { + "ware": "energycells", + "amount": 253 + }, + { + "ware": "hullparts", + "amount": 464 + } + ] + } + ] + }, + { + "id": "module_gen_prod_spices_01", + "version": 0, + "name": "Spice Production", + "macro": "prod_gen_spices_macro", + "description": "No information available", + "type": "production", + "product": [ + "spices" + ], + "explosionDamage": 1000, + "hull": 151000, + "workForce": { + "max": 60 + }, + "price": { + "min": 756543, + "max": 1023558, + "avg": 890050 + }, + "owners": [ + "antigone", + "argon", + "holyorder", + "paranid", + "teladi", + "trinity", + "freesplit", + "split" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 679, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 139 + }, + { + "ware": "energycells", + "amount": 278 + }, + { + "ware": "hullparts", + "amount": 510 + } + ] + } + ] + }, + { + "id": "module_gen_prod_superfluidcoolant_01", + "version": 0, + "name": "Superfluid Coolant Production", + "macro": "prod_gen_superfluidcoolant_macro", + "description": "No information available", + "type": "production", + "product": [ + "superfluidcoolant" + ], + "explosionDamage": 1000, + "hull": 177000, + "workForce": { + "max": 180 + }, + "price": { + "min": 137080, + "max": 185461, + "avg": 161270 + }, + "owners": [ + "antigone", + "argon", + "holyorder", + "paranid", + "teladi", + "trinity", + "freesplit", + "split", + "boron" + ], + "shields": [ + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 469, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 25 + }, + { + "ware": "energycells", + "amount": 51 + }, + { + "ware": "hullparts", + "amount": 94 + } + ] + } + ] + }, + { + "id": "module_gen_prod_turretcomponents_01", + "version": 0, + "name": "Turret Component Production", + "macro": "prod_gen_turretcomponents_macro", + "description": "No information available", + "type": "production", + "product": [ + "turretcomponents" + ], + "explosionDamage": 1000, + "hull": 155000, + "workForce": { + "max": 225 + }, + "price": { + "min": 2584529, + "max": 3496715, + "avg": 3040622 + }, + "owners": [ + "argon", + "ministry", + "paranid", + "trinity", + "freesplit", + "split", + "boron" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 830, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 475 + }, + { + "ware": "energycells", + "amount": 951 + }, + { + "ware": "hullparts", + "amount": 1741 + } + ] + } + ] + }, + { + "id": "module_gen_prod_water_01", + "version": 0, + "name": "Water Production", + "macro": "prod_gen_water_macro", + "description": "No information available", + "type": "production", + "product": [ + "water" + ], + "explosionDamage": 1000, + "hull": 203000, + "workForce": { + "max": 180 + }, + "price": { + "min": 195901, + "max": 265043, + "avg": 230472 + }, + "owners": [ + "antigone", + "argon", + "holyorder", + "paranid", + "teladi", + "trinity", + "freesplit", + "split", + "boron" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 513, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 36 + }, + { + "ware": "energycells", + "amount": 72 + }, + { + "ware": "hullparts", + "amount": 132 + } + ] + } + ] + }, + { + "id": "module_gen_prod_weaponcomponents_01", + "version": 0, + "name": "Weapon Component Production", + "macro": "prod_gen_weaponcomponents_macro", + "description": "No information available", + "type": "production", + "product": [ + "weaponcomponents" + ], + "explosionDamage": 1000, + "hull": 208000, + "workForce": { + "max": 225 + }, + "price": { + "min": 2154927, + "max": 2915489, + "avg": 2535208 + }, + "owners": [ + "argon", + "holyorder", + "ministry", + "trinity", + "freesplit", + "split", + "boron" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 808, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 396 + }, + { + "ware": "energycells", + "amount": 793 + }, + { + "ware": "hullparts", + "amount": 1452 + } + ] + } + ] + }, + { + "id": "module_par_conn_base_01", + "version": 0, + "name": "Paranid Base Connection Structure 01", + "macro": "struct_par_base_01_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 110000, + "makerRace": "paranid", + "price": { + "min": 64410, + "max": 87142, + "avg": 75776 + }, + "owners": [ + "holyorder", + "paranid", + "trinity" + ], + "production": [ + { + "time": 45, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 12 + }, + { + "ware": "energycells", + "amount": 23 + }, + { + "ware": "hullparts", + "amount": 42 + } + ] + } + ] + }, + { + "id": "module_par_conn_base_02", + "version": 0, + "name": "Paranid Base Connection Structure 02", + "macro": "struct_par_base_02_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 230000, + "makerRace": "paranid", + "price": { + "min": 91924, + "max": 124368, + "avg": 108146 + }, + "owners": [ + "holyorder", + "paranid", + "trinity" + ], + "production": [ + { + "time": 59, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 17 + }, + { + "ware": "energycells", + "amount": 34 + }, + { + "ware": "hullparts", + "amount": 61 + } + ] + } + ] + }, + { + "id": "module_par_conn_base_03", + "version": 0, + "name": "Paranid Base Connection Structure 03", + "macro": "struct_par_base_03_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 370000, + "makerRace": "paranid", + "price": { + "min": 114728, + "max": 155220, + "avg": 134974 + }, + "owners": [ + "holyorder", + "paranid", + "trinity" + ], + "production": [ + { + "time": 83, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 21 + }, + { + "ware": "energycells", + "amount": 43 + }, + { + "ware": "hullparts", + "amount": 78 + } + ] + } + ] + }, + { + "id": "module_par_conn_cross_01", + "version": 0, + "name": "Paranid Cross Connection Structure 01", + "macro": "struct_par_cross_01_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 90000, + "makerRace": "paranid", + "price": { + "min": 55015, + "max": 74433, + "avg": 64724 + }, + "owners": [ + "holyorder", + "paranid", + "trinity" + ], + "production": [ + { + "time": 40, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 10 + }, + { + "ware": "energycells", + "amount": 21 + }, + { + "ware": "hullparts", + "amount": 38 + } + ] + } + ] + }, + { + "id": "module_par_conn_cross_02", + "version": 0, + "name": "Paranid Cross Connection Structure 02", + "macro": "struct_par_cross_02_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 370000, + "makerRace": "paranid", + "price": { + "min": 114728, + "max": 155220, + "avg": 134974 + }, + "owners": [ + "holyorder", + "paranid", + "trinity" + ], + "production": [ + { + "time": 83, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 21 + }, + { + "ware": "energycells", + "amount": 43 + }, + { + "ware": "hullparts", + "amount": 78 + } + ] + } + ] + }, + { + "id": "module_par_conn_cross_03", + "version": 0, + "name": "Paranid Cross Connection Structure 03", + "macro": "struct_par_cross_03_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 230000, + "makerRace": "paranid", + "price": { + "min": 91924, + "max": 124368, + "avg": 108146 + }, + "owners": [ + "holyorder", + "paranid", + "trinity" + ], + "production": [ + { + "time": 59, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 17 + }, + { + "ware": "energycells", + "amount": 34 + }, + { + "ware": "hullparts", + "amount": 61 + } + ] + } + ] + }, + { + "id": "module_par_conn_vertical_01", + "version": 0, + "name": "Paranid Vertical Connection Structure 01", + "macro": "struct_par_vertical_01_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 79000, + "makerRace": "paranid", + "price": { + "min": 54125, + "max": 73227, + "avg": 63676 + }, + "owners": [ + "holyorder", + "paranid", + "trinity" + ], + "production": [ + { + "time": 38, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 10 + }, + { + "ware": "energycells", + "amount": 20 + }, + { + "ware": "hullparts", + "amount": 36 + } + ] + } + ] + }, + { + "id": "module_par_conn_vertical_02", + "version": 0, + "name": "Paranid Vertical Connection Structure 02", + "macro": "struct_par_vertical_02_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 143000, + "makerRace": "paranid", + "price": { + "min": 70888, + "max": 95908, + "avg": 83398 + }, + "owners": [ + "holyorder", + "paranid", + "trinity" + ], + "production": [ + { + "time": 52, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 13 + }, + { + "ware": "energycells", + "amount": 26 + }, + { + "ware": "hullparts", + "amount": 48 + } + ] + } + ] + }, + { + "id": "module_par_def_claim_01", + "version": 0, + "name": "Paranid Administrative Centre", + "macro": "defence_par_claim_01_macro", + "description": "No information available", + "type": "defencemodule", + "explosionDamage": 2000, + "hull": 532000, + "makerRace": "paranid", + "price": { + "min": 760801, + "max": 1029319, + "avg": 895060 + }, + "owners": [ + "holyorder", + "paranid", + "trinity" + ], + "production": [ + { + "time": 547, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 140 + }, + { + "ware": "energycells", + "amount": 279 + }, + { + "ware": "hullparts", + "amount": 511 + } + ] + } + ] + }, + { + "id": "module_par_def_disc_01", + "version": 0, + "name": "Paranid Disc Defence Platform", + "macro": "defence_par_disc_01_macro", + "description": "No information available", + "type": "defencemodule", + "explosionDamage": 1200, + "hull": 197400, + "makerRace": "paranid", + "price": { + "min": 533140, + "max": 721308, + "avg": 627224 + }, + "owners": [ + "holyorder", + "paranid", + "trinity" + ], + "shields": [ + { + "group": "group05", + "size": "medium", + "hittable": true + }, + { + "group": "group06", + "size": "medium", + "hittable": true + }, + { + "group": "group02", + "size": "large", + "hittable": false + }, + { + "group": "group02", + "size": "large", + "hittable": false + }, + { + "group": "group01", + "size": "large", + "hittable": false + }, + { + "group": "group01", + "size": "large", + "hittable": false + }, + { + "group": "group08", + "size": "medium", + "hittable": true + }, + { + "group": "group07", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "group02", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group01", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group05", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group06", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group06", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group05", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group01", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group02", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group01", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group02", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group01", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group02", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group02", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group02", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group01", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group01", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group07", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group08", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group07", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group08", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 384, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 98 + }, + { + "ware": "energycells", + "amount": 196 + }, + { + "ware": "hullparts", + "amount": 359 + } + ] + } + ] + }, + { + "id": "module_par_def_tube_01", + "version": 0, + "name": "Paranid Bridge Defence Platform", + "macro": "defence_par_tube_01_macro", + "description": "No information available", + "type": "defencemodule", + "explosionDamage": 1200, + "hull": 148800, + "makerRace": "paranid", + "price": { + "min": 462691, + "max": 625993, + "avg": 544342 + }, + "owners": [ + "holyorder", + "paranid", + "trinity" + ], + "shields": [ + { + "group": "group01", + "size": "medium", + "hittable": true + }, + { + "group": "group02", + "size": "medium", + "hittable": true + }, + { + "group": "group04", + "size": "medium", + "hittable": true + }, + { + "group": "group03", + "size": "medium", + "hittable": true + }, + { + "group": "group05", + "size": "large", + "hittable": false + }, + { + "group": "group06", + "size": "large", + "hittable": false + } + ], + "turrets": [ + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group06", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group06", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group06", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group06", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group03", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group03", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group04", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group04", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 334, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 85 + }, + { + "ware": "energycells", + "amount": 170 + }, + { + "ware": "hullparts", + "amount": 312 + } + ] + } + ] + }, + { + "id": "module_par_hab_l_01", + "version": 0, + "name": "Paranid L Dome", + "macro": "hab_par_l_01_macro", + "description": "No information available", + "type": "habitation", + "explosionDamage": 1000, + "hull": 600000, + "makerRace": "paranid", + "workForce": { + "capacity": 999, + "race": "paranid" + }, + "price": { + "min": 18262842, + "max": 24708550, + "avg": 21485696 + }, + "owners": [ + "holyorder", + "paranid", + "trinity" + ], + "production": [ + { + "time": 822, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 210 + }, + { + "ware": "energycells", + "amount": 419 + }, + { + "ware": "hullparts", + "amount": 767 + } + ] + } + ] + }, + { + "id": "module_par_hab_m_01", + "version": 0, + "name": "Paranid M Dome", + "macro": "hab_par_m_01_macro", + "description": "No information available", + "type": "habitation", + "explosionDamage": 1000, + "hull": 250000, + "makerRace": "paranid", + "workForce": { + "capacity": 666, + "race": "paranid" + }, + "price": { + "min": 11754290, + "max": 15902862, + "avg": 13828576 + }, + "owners": [ + "holyorder", + "paranid", + "trinity" + ], + "production": [ + { + "time": 530, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 135 + }, + { + "ware": "energycells", + "amount": 271 + }, + { + "ware": "hullparts", + "amount": 495 + } + ] + } + ] + }, + { + "id": "module_par_hab_s_01", + "version": 0, + "name": "Paranid S Dome", + "macro": "hab_par_s_01_macro", + "description": "No information available", + "type": "habitation", + "explosionDamage": 1000, + "hull": 120000, + "makerRace": "paranid", + "workForce": { + "capacity": 333, + "race": "paranid" + }, + "price": { + "min": 8172621, + "max": 11057075, + "avg": 9614848 + }, + "owners": [ + "holyorder", + "paranid", + "trinity" + ], + "production": [ + { + "time": 367, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 94 + }, + { + "ware": "energycells", + "amount": 188 + }, + { + "ware": "hullparts", + "amount": 343 + } + ] + } + ] + }, + { + "id": "module_par_pier_l_01", + "version": 0, + "name": "Paranid 3-Dock T Pier", + "macro": "pier_par_harbor_01_macro", + "description": "No information available", + "type": "pier", + "explosionDamage": 1000, + "hull": 810000, + "makerRace": "paranid", + "price": { + "min": 3060886, + "max": 4141198, + "avg": 3601042 + }, + "owners": [ + "paranid", + "trinity" + ], + "production": [ + { + "time": 780, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 563 + }, + { + "ware": "energycells", + "amount": 1125 + }, + { + "ware": "hullparts", + "amount": 2058 + } + ] + } + ] + }, + { + "id": "module_par_pier_l_02", + "version": 0, + "name": "Paranid 1-Dock Pier", + "macro": "pier_par_harbor_02_macro", + "description": "No information available", + "type": "pier", + "explosionDamage": 1000, + "hull": 270000, + "makerRace": "paranid", + "price": { + "min": 1766944, + "max": 2390572, + "avg": 2078758 + }, + "owners": [ + "holyorder", + "paranid", + "trinity" + ], + "production": [ + { + "time": 450, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 325 + }, + { + "ware": "energycells", + "amount": 650 + }, + { + "ware": "hullparts", + "amount": 1188 + } + ] + } + ] + }, + { + "id": "module_par_pier_l_03", + "version": 0, + "name": "Paranid 3-Dock E Pier", + "macro": "pier_par_harbor_03_macro", + "description": "No information available", + "type": "pier", + "explosionDamage": 1000, + "hull": 1080000, + "makerRace": "paranid", + "price": { + "min": 3534314, + "max": 4781718, + "avg": 4158016 + }, + "owners": [ + "holyorder", + "trinity" + ], + "production": [ + { + "time": 900, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 650 + }, + { + "ware": "energycells", + "amount": 1299 + }, + { + "ware": "hullparts", + "amount": 2377 + } + ] + } + ] + }, + { + "id": "module_par_prod_majadust_01", + "version": 0, + "name": "Maja Dust Production", + "macro": "prod_par_majadust_macro", + "description": "No information available", + "type": "production", + "product": [ + "majadust" + ], + "explosionDamage": 1000, + "hull": 245000, + "makerRace": "paranid", + "workForce": { + "max": 123 + }, + "price": { + "min": 2029023, + "max": 2745149, + "avg": 2387086 + }, + "owners": [ + "hatikvah", + "scaleplate" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 800, + "amount": 1, + "method": "default", + "name": "Paranid", + "wares": [ + { + "ware": "claytronics", + "amount": 373 + }, + { + "ware": "energycells", + "amount": 746 + }, + { + "ware": "hullparts", + "amount": 1366 + } + ] + } + ] + }, + { + "id": "module_par_prod_majasnails_01", + "version": 0, + "name": "Maja Snail Production", + "macro": "prod_par_majasnails_macro", + "description": "No information available", + "type": "production", + "product": [ + "majasnails" + ], + "explosionDamage": 1000, + "hull": 236000, + "makerRace": "paranid", + "workForce": { + "max": 175 + }, + "price": { + "min": 1349848, + "max": 1826264, + "avg": 1588056 + }, + "owners": [ + "holyorder", + "paranid", + "trinity" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 750, + "amount": 1, + "method": "default", + "name": "Paranid", + "wares": [ + { + "ware": "claytronics", + "amount": 248 + }, + { + "ware": "energycells", + "amount": 497 + }, + { + "ware": "hullparts", + "amount": 910 + } + ] + } + ] + }, + { + "id": "module_par_prod_medicalsupplies_01", + "version": 0, + "name": "Paranid Medical Supply Production", + "macro": "prod_par_medicalsupplies_macro", + "description": "No information available", + "type": "production", + "product": [ + "medicalsupplies" + ], + "explosionDamage": 1000, + "hull": 197000, + "makerRace": "paranid", + "workForce": { + "max": 90 + }, + "price": { + "min": 1229080, + "max": 1662872, + "avg": 1445976 + }, + "owners": [ + "holyorder", + "paranid", + "trinity" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 739, + "amount": 1, + "method": "default", + "name": "Paranid", + "wares": [ + { + "ware": "claytronics", + "amount": 226 + }, + { + "ware": "energycells", + "amount": 451 + }, + { + "ware": "hullparts", + "amount": 827 + } + ] + } + ] + }, + { + "id": "module_par_prod_sojabeans_01", + "version": 0, + "name": "Soja Bean Production", + "macro": "prod_par_sojabeans_macro", + "description": "No information available", + "type": "production", + "product": [ + "sojabeans" + ], + "explosionDamage": 1000, + "hull": 259000, + "makerRace": "paranid", + "workForce": { + "max": 175 + }, + "price": { + "min": 1610158, + "max": 2178450, + "avg": 1894304 + }, + "owners": [ + "holyorder", + "paranid", + "trinity" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 772, + "amount": 1, + "method": "default", + "name": "Paranid", + "wares": [ + { + "ware": "claytronics", + "amount": 296 + }, + { + "ware": "energycells", + "amount": 592 + }, + { + "ware": "hullparts", + "amount": 1084 + } + ] + } + ] + }, + { + "id": "module_par_prod_sojahusk_01", + "version": 0, + "name": "Soja Husk Production", + "macro": "prod_par_sojahusk_macro", + "description": "No information available", + "type": "production", + "product": [ + "sojahusk" + ], + "explosionDamage": 1000, + "hull": 218000, + "makerRace": "paranid", + "workForce": { + "max": 99 + }, + "price": { + "min": 1719737, + "max": 2326703, + "avg": 2023220 + }, + "owners": [ + "holyorder", + "paranid", + "trinity" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 780, + "amount": 1, + "method": "default", + "name": "Paranid", + "wares": [ + { + "ware": "claytronics", + "amount": 316 + }, + { + "ware": "energycells", + "amount": 633 + }, + { + "ware": "hullparts", + "amount": 1159 + } + ] + } + ] + }, + { + "id": "module_par_stor_container_l_01", + "version": 0, + "name": "Paranid L Container Storage", + "macro": "storage_par_l_container_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 1000, + "hull": 653000, + "makerRace": "paranid", + "cargo": { + "max": 1000000, + "type": "container" + }, + "price": { + "min": 674026, + "max": 911918, + "avg": 792972 + }, + "owners": [ + "holyorder", + "paranid", + "trinity" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 626, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 124 + }, + { + "ware": "energycells", + "amount": 247 + }, + { + "ware": "hullparts", + "amount": 453 + } + ] + } + ] + }, + { + "id": "module_par_stor_container_m_01", + "version": 0, + "name": "Paranid M Container Storage", + "macro": "storage_par_m_container_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 800, + "hull": 304000, + "makerRace": "paranid", + "cargo": { + "max": 100000, + "type": "container" + }, + "price": { + "min": 457555, + "max": 619045, + "avg": 538300 + }, + "owners": [ + "holyorder", + "paranid", + "trinity" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 427, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 84 + }, + { + "ware": "energycells", + "amount": 169 + }, + { + "ware": "hullparts", + "amount": 309 + } + ] + } + ] + }, + { + "id": "module_par_stor_container_s_01", + "version": 0, + "name": "Paranid S Container Storage", + "macro": "storage_par_s_container_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 500, + "hull": 133000, + "makerRace": "paranid", + "cargo": { + "max": 25000, + "type": "container" + }, + "price": { + "min": 304150, + "max": 411498, + "avg": 357824 + }, + "owners": [ + "holyorder", + "paranid", + "trinity" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 282, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 56 + }, + { + "ware": "energycells", + "amount": 112 + }, + { + "ware": "hullparts", + "amount": 204 + } + ] + } + ] + }, + { + "id": "module_par_stor_liquid_l_01", + "version": 0, + "name": "Paranid L Liquid Storage", + "macro": "storage_par_l_liquid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 1000, + "hull": 653000, + "makerRace": "paranid", + "cargo": { + "max": 1000000, + "type": "liquid" + }, + "price": { + "min": 674026, + "max": 911918, + "avg": 792972 + }, + "owners": [ + "holyorder", + "paranid", + "trinity" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 626, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 124 + }, + { + "ware": "energycells", + "amount": 247 + }, + { + "ware": "hullparts", + "amount": 453 + } + ] + } + ] + }, + { + "id": "module_par_stor_liquid_m_01", + "version": 0, + "name": "Paranid M Liquid Storage", + "macro": "storage_par_m_liquid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 800, + "hull": 304000, + "makerRace": "paranid", + "cargo": { + "max": 500000, + "type": "liquid" + }, + "price": { + "min": 457555, + "max": 619045, + "avg": 538300 + }, + "owners": [ + "holyorder", + "paranid", + "trinity" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 427, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 84 + }, + { + "ware": "energycells", + "amount": 169 + }, + { + "ware": "hullparts", + "amount": 309 + } + ] + } + ] + }, + { + "id": "module_par_stor_liquid_s_01", + "version": 0, + "name": "Paranid S Liquid Storage", + "macro": "storage_par_s_liquid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 500, + "hull": 133000, + "makerRace": "paranid", + "cargo": { + "max": 100000, + "type": "liquid" + }, + "price": { + "min": 304150, + "max": 411498, + "avg": 357824 + }, + "owners": [ + "holyorder", + "paranid", + "trinity" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 282, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 56 + }, + { + "ware": "energycells", + "amount": 112 + }, + { + "ware": "hullparts", + "amount": 204 + } + ] + } + ] + }, + { + "id": "module_par_stor_solid_l_01", + "version": 0, + "name": "Paranid L Solid Storage", + "macro": "storage_par_l_solid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 1000, + "hull": 653000, + "makerRace": "paranid", + "cargo": { + "max": 1000000, + "type": "solid" + }, + "price": { + "min": 674026, + "max": 911918, + "avg": 792972 + }, + "owners": [ + "holyorder", + "paranid", + "trinity" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 683, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 124 + }, + { + "ware": "energycells", + "amount": 247 + }, + { + "ware": "hullparts", + "amount": 453 + } + ] + } + ] + }, + { + "id": "module_par_stor_solid_m_01", + "version": 0, + "name": "Paranid M Solid Storage", + "macro": "storage_par_m_solid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 800, + "hull": 304000, + "makerRace": "paranid", + "cargo": { + "max": 500000, + "type": "solid" + }, + "price": { + "min": 457555, + "max": 619045, + "avg": 538300 + }, + "owners": [ + "holyorder", + "paranid", + "trinity" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 427, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 84 + }, + { + "ware": "energycells", + "amount": 169 + }, + { + "ware": "hullparts", + "amount": 309 + } + ] + } + ] + }, + { + "id": "module_par_stor_solid_s_01", + "version": 0, + "name": "Paranid S Solid Storage", + "macro": "storage_par_s_solid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 500, + "hull": 133000, + "makerRace": "paranid", + "cargo": { + "max": 100000, + "type": "solid" + }, + "price": { + "min": 304150, + "max": 411498, + "avg": 357824 + }, + "owners": [ + "holyorder", + "paranid", + "trinity" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 282, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 56 + }, + { + "ware": "energycells", + "amount": 112 + }, + { + "ware": "hullparts", + "amount": 204 + } + ] + } + ] + }, + { + "id": "module_pir_hab_l_01", + "version": 1, + "name": "Argon L Dormitory", + "macro": "hab_pir_l_01_macro", + "description": "No information available", + "type": "habitation", + "explosionDamage": 1000, + "hull": 500000, + "makerRace": "argon", + "workForce": { + "capacity": 1000, + "race": "argon" + }, + "price": { + "min": 17721792, + "max": 26352612, + "avg": 22037202 + }, + "owners": [ + "loanshark", + "scavenger" + ], + "production": [ + { + "time": 1155, + "amount": 1, + "method": "default", + "name": "Closed Loop", + "wares": [ + { + "ware": "claytronics", + "amount": 420 + }, + { + "ware": "energycells", + "amount": 383 + }, + { + "ware": "hullparts", + "amount": 1729 + } + ] + } + ] + }, + { + "id": "module_pir_hab_m_01", + "version": 1, + "name": "Argon M Dormitory", + "macro": "hab_pir_m_01_macro", + "description": "No information available", + "type": "habitation", + "explosionDamage": 1000, + "hull": 250000, + "makerRace": "argon", + "workForce": { + "capacity": 500, + "race": "argon" + }, + "price": { + "min": 12530160, + "max": 18631944, + "avg": 15581052 + }, + "owners": [ + "loanshark", + "scavenger" + ], + "production": [ + { + "time": 816, + "amount": 1, + "method": "default", + "name": "Closed Loop", + "wares": [ + { + "ware": "claytronics", + "amount": 297 + }, + { + "ware": "energycells", + "amount": 271 + }, + { + "ware": "hullparts", + "amount": 1222 + } + ] + } + ] + }, + { + "id": "module_pir_hab_s_01", + "version": 1, + "name": "Argon S Dormitory", + "macro": "hab_pir_s_01_macro", + "description": "No information available", + "type": "habitation", + "explosionDamage": 1000, + "hull": 120000, + "makerRace": "argon", + "workForce": { + "capacity": 250, + "race": "argon" + }, + "price": { + "min": 8689428, + "max": 12920328, + "avg": 10804878 + }, + "owners": [ + "loanshark", + "scavenger" + ], + "production": [ + { + "time": 566, + "amount": 1, + "method": "default", + "name": "Closed Loop", + "wares": [ + { + "ware": "claytronics", + "amount": 206 + }, + { + "ware": "energycells", + "amount": 188 + }, + { + "ware": "hullparts", + "amount": 847 + } + ] + } + ] + }, + { + "id": "module_pir_stor_condensate_l_01", + "version": 1, + "name": "Protectyon Shield Generator", + "macro": "storage_pir_l_condensate_01_macro", + "description": "The Protectyon Shield Generator was designed by the Northriver Company's Research and Development team. It is constructed in such a way that, when supplied with Protectyon condensate, it generates shielding that protects the entire station from the devastating effects of the Tide. As part of this process the Protectyon is depleted. Due to the high potency of Protectyon, and the incredible volatility inherent in such a substance, the module's design only allows for a small storage capacity.", + "type": "storage", + "explosionDamage": 1000, + "hull": 1000000, + "cargo": { + "max": 50, + "type": "condensate" + }, + "price": { + "min": 1433988, + "max": 2146384, + "avg": 1790186 + }, + "owners": [ + "scavenger" + ], + "shields": [ + { + "group": "column_02_l", + "size": "medium", + "hittable": true + }, + { + "group": "column_02_r", + "size": "medium", + "hittable": true + }, + { + "group": "column_03_r", + "size": "medium", + "hittable": true + }, + { + "group": "column_03_l", + "size": "medium", + "hittable": true + }, + { + "group": "column_01_l", + "size": "medium", + "hittable": true + }, + { + "group": "column_01_r", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "column_02_l", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "column_02_l", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "column_02_r", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "column_02_r", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "column_03_r", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "column_03_r", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "column_03_l", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "column_03_l", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "column_01_l", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "column_01_l", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "column_01_r", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "column_01_r", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 1033, + "amount": 1, + "method": "default", + "name": "Closed Loop", + "wares": [ + { + "ware": "claytronics", + "amount": 291 + }, + { + "ware": "energycells", + "amount": 265 + }, + { + "ware": "hullparts", + "amount": 1198 + } + ] + } + ] + }, + { + "id": "module_spl_conn_base_01", + "version": 1, + "name": "Split Base Connection Structure 01", + "macro": "struct_spl_base_01_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 150000, + "makerRace": "split", + "price": { + "min": 92363, + "max": 124961, + "avg": 108662 + }, + "owners": [ + "freesplit", + "split" + ], + "production": [ + { + "time": 59, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 14 + }, + { + "ware": "energycells", + "amount": 27 + }, + { + "ware": "hullparts", + "amount": 50 + } + ] + } + ] + }, + { + "id": "module_spl_conn_base_02", + "version": 1, + "name": "Split Base Connection Structure 02", + "macro": "struct_spl_base_02_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 237000, + "makerRace": "split", + "price": { + "min": 75585, + "max": 102263, + "avg": 88924 + }, + "owners": [ + "freesplit", + "split" + ], + "production": [ + { + "time": 53, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 17 + }, + { + "ware": "energycells", + "amount": 34 + }, + { + "ware": "hullparts", + "amount": 62 + } + ] + } + ] + }, + { + "id": "module_spl_conn_base_03", + "version": 1, + "name": "Split Base Connection Structure 03", + "macro": "struct_spl_base_03_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 280000, + "makerRace": "split", + "price": { + "min": 98841, + "max": 133727, + "avg": 116284 + }, + "owners": [ + "freesplit", + "split" + ], + "production": [ + { + "time": 72, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 18 + }, + { + "ware": "energycells", + "amount": 37 + }, + { + "ware": "hullparts", + "amount": 68 + } + ] + } + ] + }, + { + "id": "module_spl_conn_cross_01", + "version": 1, + "name": "Split Cross Connection Structure 01", + "macro": "struct_spl_cross_01_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 120000, + "makerRace": "split", + "price": { + "min": 65300, + "max": 88348, + "avg": 76824 + }, + "owners": [ + "freesplit", + "split" + ], + "production": [ + { + "time": 47, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 12 + }, + { + "ware": "energycells", + "amount": 24 + }, + { + "ware": "hullparts", + "amount": 44 + } + ] + } + ] + }, + { + "id": "module_spl_conn_vertical_01", + "version": 1, + "name": "Split Vertical Connection Structure 01", + "macro": "struct_spl_vertical_01_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 79000, + "makerRace": "split", + "price": { + "min": 54125, + "max": 73227, + "avg": 63676 + }, + "owners": [ + "freesplit", + "split" + ], + "production": [ + { + "time": 38, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 10 + }, + { + "ware": "energycells", + "amount": 20 + }, + { + "ware": "hullparts", + "amount": 36 + } + ] + } + ] + }, + { + "id": "module_spl_conn_vertical_02", + "version": 1, + "name": "Split Vertical Connection Structure 02", + "macro": "struct_spl_vertical_02_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 143000, + "makerRace": "split", + "price": { + "min": 70888, + "max": 95908, + "avg": 83398 + }, + "owners": [ + "freesplit", + "split" + ], + "production": [ + { + "time": 52, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 13 + }, + { + "ware": "energycells", + "amount": 26 + }, + { + "ware": "hullparts", + "amount": 48 + } + ] + } + ] + }, + { + "id": "module_spl_def_claim_01", + "version": 1, + "name": "Split Administrative Centre", + "macro": "defence_spl_claim_01_macro", + "description": "No information available", + "type": "defencemodule", + "explosionDamage": 2000, + "hull": 520000, + "makerRace": "split", + "price": { + "min": 750516, + "max": 1015404, + "avg": 882960 + }, + "owners": [ + "freesplit", + "split" + ], + "production": [ + { + "time": 541, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 138 + }, + { + "ware": "energycells", + "amount": 276 + }, + { + "ware": "hullparts", + "amount": 505 + } + ] + } + ] + }, + { + "id": "module_spl_def_disc_01", + "version": 1, + "name": "Split Disc Defence Platform", + "macro": "defence_spl_disc_01_macro", + "description": "No information available", + "type": "defencemodule", + "explosionDamage": 1200, + "hull": 197400, + "makerRace": "split", + "price": { + "min": 570940, + "max": 772448, + "avg": 671694 + }, + "owners": [ + "freesplit", + "split" + ], + "shields": [ + { + "group": "group01", + "size": "medium", + "hittable": true + }, + { + "group": "group04", + "size": "medium", + "hittable": true + }, + { + "group": "group06", + "size": "medium", + "hittable": true + }, + { + "group": "group02", + "size": "medium", + "hittable": true + }, + { + "group": "group05", + "size": "medium", + "hittable": true + }, + { + "group": "group03", + "size": "medium", + "hittable": true + }, + { + "group": "group11", + "size": "large", + "hittable": false + }, + { + "group": "group12", + "size": "large", + "hittable": false + }, + { + "group": "group07", + "size": "large", + "hittable": false + }, + { + "group": "group08", + "size": "large", + "hittable": false + }, + { + "group": "group09", + "size": "large", + "hittable": false + }, + { + "group": "group10", + "size": "large", + "hittable": false + } + ], + "turrets": [ + { + "group": "group11", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group04", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group04", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group06", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group06", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group05", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group05", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group03", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group03", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group11", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group10", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group10", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group12", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group12", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group07", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group07", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group08", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group08", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group09", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group09", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 410, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 105 + }, + { + "ware": "energycells", + "amount": 210 + }, + { + "ware": "hullparts", + "amount": 384 + } + ] + } + ] + }, + { + "id": "module_spl_def_tube_01", + "version": 1, + "name": "Split Bridge Defence Platform", + "macro": "defence_spl_tube_01_macro", + "description": "No information available", + "type": "defencemodule", + "explosionDamage": 1200, + "hull": 148800, + "makerRace": "split", + "price": { + "min": 570940, + "max": 772448, + "avg": 671694 + }, + "owners": [ + "freesplit", + "split" + ], + "shields": [ + { + "group": "group06", + "size": "large", + "hittable": false + }, + { + "group": "group05", + "size": "large", + "hittable": false + }, + { + "group": "group08", + "size": "large", + "hittable": false + }, + { + "group": "group07", + "size": "large", + "hittable": false + }, + { + "group": "group01", + "size": "medium", + "hittable": true + }, + { + "group": "group04", + "size": "medium", + "hittable": true + }, + { + "group": "group02", + "size": "medium", + "hittable": true + }, + { + "group": "group03", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "group06", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group06", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group08", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group07", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group07", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group08", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group04", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group04", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group03", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group03", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 410, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 105 + }, + { + "ware": "energycells", + "amount": 210 + }, + { + "ware": "hullparts", + "amount": 384 + } + ] + } + ] + }, + { + "id": "module_spl_hab_l_01", + "version": 1, + "name": "Split L Parlour", + "macro": "hab_spl_l_01_macro", + "description": "No information available", + "type": "habitation", + "explosionDamage": 1000, + "hull": 500000, + "makerRace": "split", + "workForce": { + "capacity": 1000, + "race": "split" + }, + "price": { + "min": 16627714, + "max": 22496318, + "avg": 19562016 + }, + "owners": [ + "freesplit", + "split" + ], + "production": [ + { + "time": 750, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 191 + }, + { + "ware": "energycells", + "amount": 383 + }, + { + "ware": "hullparts", + "amount": 700 + } + ] + } + ] + }, + { + "id": "module_spl_hab_m_01", + "version": 1, + "name": "Split M Parlour", + "macro": "hab_spl_m_01_macro", + "description": "No information available", + "type": "habitation", + "explosionDamage": 1000, + "hull": 250000, + "makerRace": "split", + "workForce": { + "capacity": 500, + "race": "split" + }, + "price": { + "min": 11754290, + "max": 15902862, + "avg": 13828576 + }, + "owners": [ + "freesplit", + "split" + ], + "production": [ + { + "time": 530, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 135 + }, + { + "ware": "energycells", + "amount": 271 + }, + { + "ware": "hullparts", + "amount": 495 + } + ] + } + ] + }, + { + "id": "module_spl_hab_s_01", + "version": 1, + "name": "Split S Parlour", + "macro": "hab_spl_s_01_macro", + "description": "No information available", + "type": "habitation", + "explosionDamage": 1000, + "hull": 120000, + "makerRace": "split", + "workForce": { + "capacity": 250, + "race": "split" + }, + "price": { + "min": 8172621, + "max": 11057075, + "avg": 9614848 + }, + "owners": [ + "freesplit", + "split" + ], + "production": [ + { + "time": 367, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 94 + }, + { + "ware": "energycells", + "amount": 188 + }, + { + "ware": "hullparts", + "amount": 343 + } + ] + } + ] + }, + { + "id": "module_spl_pier_l_01", + "version": 1, + "name": "Split 4-Dock T Pier", + "macro": "pier_spl_harbor_01_macro", + "description": "No information available", + "type": "pier", + "explosionDamage": 1000, + "hull": 750000, + "makerRace": "split", + "price": { + "min": 2946171, + "max": 3985997, + "avg": 3466084 + }, + "owners": [ + "freesplit", + "split" + ], + "production": [ + { + "time": 750, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 542 + }, + { + "ware": "energycells", + "amount": 1083 + }, + { + "ware": "hullparts", + "amount": 1980 + } + ] + } + ] + }, + { + "id": "module_spl_pier_l_02", + "version": 1, + "name": "Split 1-Dock Pier", + "macro": "pier_spl_harbor_02_macro", + "description": "No information available", + "type": "pier", + "explosionDamage": 1000, + "hull": 250000, + "makerRace": "split", + "price": { + "min": 1701192, + "max": 2301612, + "avg": 2001402 + }, + "owners": [ + "freesplit", + "split" + ], + "production": [ + { + "time": 433, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 313 + }, + { + "ware": "energycells", + "amount": 625 + }, + { + "ware": "hullparts", + "amount": 1143 + } + ] + } + ] + }, + { + "id": "module_spl_pier_l_03", + "version": 1, + "name": "Split 3-Dock E Pier", + "macro": "pier_spl_harbor_03_macro", + "description": "No information available", + "type": "pier", + "explosionDamage": 1000, + "hull": 1000000, + "makerRace": "split", + "price": { + "min": 3399016, + "max": 4598668, + "avg": 3998842 + }, + "owners": [ + "freesplit", + "split" + ], + "production": [ + { + "time": 866, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 625 + }, + { + "ware": "energycells", + "amount": 1250 + }, + { + "ware": "hullparts", + "amount": 2287 + } + ] + } + ] + }, + { + "id": "module_spl_prod_cheltmeat_01", + "version": 1, + "name": "Chelt Production", + "macro": "prod_spl_cheltmeat_macro", + "description": "No information available", + "type": "production", + "product": [ + "cheltmeat" + ], + "explosionDamage": 1000, + "hull": 320000, + "makerRace": "split", + "workForce": { + "max": 90 + }, + "price": { + "min": 698188, + "max": 944608, + "avg": 821398 + }, + "owners": [ + "freesplit", + "split" + ], + "shields": [ + { + "group": "top_rear_01", + "size": "medium", + "hittable": true + }, + { + "group": "mid_left_01", + "size": "medium", + "hittable": true + }, + { + "group": "mid_left_02", + "size": "medium", + "hittable": true + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "mid_right_02", + "size": "medium", + "hittable": true + }, + { + "group": "mid_right_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_rear_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_rear_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "mid_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "mid_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "mid_left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "mid_left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "mid_right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "mid_right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "mid_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "mid_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 503, + "amount": 1, + "method": "default", + "name": "Split", + "wares": [ + { + "ware": "claytronics", + "amount": 282 + }, + { + "ware": "energycells", + "amount": 256 + }, + { + "ware": "hullparts", + "amount": 1158 + } + ] + } + ] + }, + { + "id": "module_spl_prod_medicalsupplies_01", + "version": 1, + "name": "Split Medical Supply Production", + "macro": "prod_spl_medicalsupplies_macro", + "description": "No information available", + "type": "production", + "product": [ + "medicalsupplies" + ], + "explosionDamage": 1000, + "hull": 197000, + "makerRace": "split", + "workForce": { + "max": 90 + }, + "price": { + "min": 1223505, + "max": 1655331, + "avg": 1439418 + }, + "owners": [ + "split" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 739, + "amount": 1, + "method": "default", + "name": "Split", + "wares": [ + { + "ware": "claytronics", + "amount": 248 + }, + { + "ware": "energycells", + "amount": 451 + }, + { + "ware": "hullparts", + "amount": 910 + } + ] + } + ] + }, + { + "id": "module_spl_prod_scruffinfruits_01", + "version": 1, + "name": "Scruffin Production", + "macro": "prod_spl_scruffinfruit_macro", + "description": "No information available", + "type": "production", + "product": [ + "scruffinfruits" + ], + "explosionDamage": 1000, + "hull": 280000, + "makerRace": "split", + "workForce": { + "max": 90 + }, + "price": { + "min": 829662, + "max": 1122484, + "avg": 976073 + }, + "owners": [ + "freesplit", + "split" + ], + "shields": [ + { + "group": "top_right_02", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_left_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_left_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 598, + "amount": 1, + "method": "default", + "name": "Split", + "wares": [ + { + "ware": "claytronics", + "amount": 335 + }, + { + "ware": "energycells", + "amount": 305 + }, + { + "ware": "hullparts", + "amount": 1377 + } + ] + } + ] + }, + { + "id": "module_spl_stor_container_l_01", + "version": 1, + "name": "Split L Container Storage", + "macro": "storage_spl_l_container_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 1000, + "hull": 778000, + "makerRace": "split", + "cargo": { + "max": 1000000, + "type": "container" + }, + "price": { + "min": 734191, + "max": 993317, + "avg": 863754 + }, + "owners": [ + "freesplit", + "split" + ], + "shields": [ + { + "group": "top_left_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_left_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 683, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 135 + }, + { + "ware": "energycells", + "amount": 270 + }, + { + "ware": "hullparts", + "amount": 494 + } + ] + } + ] + }, + { + "id": "module_spl_stor_container_m_01", + "version": 1, + "name": "Split M Container Storage", + "macro": "storage_spl_m_container_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 800, + "hull": 345000, + "makerRace": "split", + "cargo": { + "max": 100000, + "type": "container" + }, + "price": { + "min": 489314, + "max": 662014, + "avg": 575664 + }, + "owners": [ + "freesplit", + "split" + ], + "shields": [ + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 455, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 90 + }, + { + "ware": "energycells", + "amount": 180 + }, + { + "ware": "hullparts", + "amount": 329 + } + ] + } + ] + }, + { + "id": "module_spl_stor_container_s_01", + "version": 1, + "name": "Split S Container Storage", + "macro": "storage_spl_s_container_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 500, + "hull": 157000, + "makerRace": "split", + "cargo": { + "max": 25000, + "type": "container" + }, + "price": { + "min": 331199, + "max": 448093, + "avg": 389646 + }, + "owners": [ + "freesplit", + "split" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 307, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 61 + }, + { + "ware": "energycells", + "amount": 121 + }, + { + "ware": "hullparts", + "amount": 222 + } + ] + } + ] + }, + { + "id": "module_spl_stor_liquid_l_01", + "version": 1, + "name": "Split L Liquid Storage", + "macro": "storage_spl_l_liquid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 1000, + "hull": 778000, + "makerRace": "split", + "cargo": { + "max": 1000000, + "type": "liquid" + }, + "price": { + "min": 734191, + "max": 993317, + "avg": 863754 + }, + "owners": [ + "freesplit", + "split" + ], + "shields": [ + { + "group": "top_left_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_left_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 683, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 135 + }, + { + "ware": "energycells", + "amount": 270 + }, + { + "ware": "hullparts", + "amount": 494 + } + ] + } + ] + }, + { + "id": "module_spl_stor_liquid_m_01", + "version": 1, + "name": "Split M Liquid Storage", + "macro": "storage_spl_m_liquid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 800, + "hull": 345000, + "makerRace": "split", + "cargo": { + "max": 500000, + "type": "liquid" + }, + "price": { + "min": 489314, + "max": 662014, + "avg": 575664 + }, + "owners": [ + "freesplit", + "split" + ], + "shields": [ + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 455, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 90 + }, + { + "ware": "energycells", + "amount": 180 + }, + { + "ware": "hullparts", + "amount": 329 + } + ] + } + ] + }, + { + "id": "module_spl_stor_liquid_s_01", + "version": 1, + "name": "Split S Liquid Storage", + "macro": "storage_spl_s_liquid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 500, + "hull": 157000, + "makerRace": "split", + "cargo": { + "max": 100000, + "type": "liquid" + }, + "price": { + "min": 331199, + "max": 448093, + "avg": 389646 + }, + "owners": [ + "freesplit", + "split" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 307, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 61 + }, + { + "ware": "energycells", + "amount": 121 + }, + { + "ware": "hullparts", + "amount": 222 + } + ] + } + ] + }, + { + "id": "module_spl_stor_solid_l_01", + "version": 1, + "name": "Split L Solid Storage", + "macro": "storage_spl_l_solid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 1000, + "hull": 778000, + "makerRace": "split", + "cargo": { + "max": 1000000, + "type": "solid" + }, + "price": { + "min": 734191, + "max": 993317, + "avg": 863754 + }, + "owners": [ + "freesplit", + "split" + ], + "shields": [ + { + "group": "top_left_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_left_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 683, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 135 + }, + { + "ware": "energycells", + "amount": 270 + }, + { + "ware": "hullparts", + "amount": 494 + } + ] + } + ] + }, + { + "id": "module_spl_stor_solid_m_01", + "version": 1, + "name": "Split M Solid Storage", + "macro": "storage_spl_m_solid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 800, + "hull": 345000, + "makerRace": "split", + "cargo": { + "max": 500000, + "type": "solid" + }, + "price": { + "min": 489314, + "max": 662014, + "avg": 575664 + }, + "owners": [ + "freesplit", + "split" + ], + "shields": [ + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 455, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 90 + }, + { + "ware": "energycells", + "amount": 180 + }, + { + "ware": "hullparts", + "amount": 329 + } + ] + } + ] + }, + { + "id": "module_spl_stor_solid_s_01", + "version": 1, + "name": "Split S Solid Storage", + "macro": "storage_spl_s_solid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 500, + "hull": 157000, + "makerRace": "split", + "cargo": { + "max": 100000, + "type": "solid" + }, + "price": { + "min": 331199, + "max": 448093, + "avg": 389646 + }, + "owners": [ + "freesplit", + "split" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 307, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 61 + }, + { + "ware": "energycells", + "amount": 121 + }, + { + "ware": "hullparts", + "amount": 222 + } + ] + } + ] + }, + { + "id": "module_tel_conn_base_01", + "version": 0, + "name": "Teladi Base Connection Structure 01", + "macro": "struct_tel_base_01_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 150000, + "makerRace": "teladi", + "price": { + "min": 92363, + "max": 124961, + "avg": 108662 + }, + "owners": [ + "teladi" + ], + "production": [ + { + "time": 59, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 14 + }, + { + "ware": "energycells", + "amount": 27 + }, + { + "ware": "hullparts", + "amount": 50 + } + ] + } + ] + }, + { + "id": "module_tel_conn_base_02", + "version": 0, + "name": "Teladi Base Connection Structure 02", + "macro": "struct_tel_base_02_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 238000, + "makerRace": "teladi", + "price": { + "min": 75585, + "max": 102263, + "avg": 88924 + }, + "owners": [ + "teladi" + ], + "production": [ + { + "time": 53, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 17 + }, + { + "ware": "energycells", + "amount": 34 + }, + { + "ware": "hullparts", + "amount": 62 + } + ] + } + ] + }, + { + "id": "module_tel_conn_base_03", + "version": 0, + "name": "Teladi Base Connection Structure 03", + "macro": "struct_tel_base_03_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 280000, + "makerRace": "teladi", + "price": { + "min": 98841, + "max": 133727, + "avg": 116284 + }, + "owners": [ + "teladi" + ], + "production": [ + { + "time": 72, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 18 + }, + { + "ware": "energycells", + "amount": 37 + }, + { + "ware": "hullparts", + "amount": 68 + } + ] + } + ] + }, + { + "id": "module_tel_conn_cross_01", + "version": 0, + "name": "Teladi Cross Connection Structure 01", + "macro": "struct_tel_cross_01_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 120000, + "makerRace": "teladi", + "price": { + "min": 65300, + "max": 88348, + "avg": 76824 + }, + "owners": [ + "teladi" + ], + "production": [ + { + "time": 47, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 12 + }, + { + "ware": "energycells", + "amount": 24 + }, + { + "ware": "hullparts", + "amount": 44 + } + ] + } + ] + }, + { + "id": "module_tel_conn_vertical_01", + "version": 0, + "name": "Teladi Vertical Connection Structure 01", + "macro": "struct_tel_vertical_01_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 79000, + "makerRace": "teladi", + "price": { + "min": 54125, + "max": 73227, + "avg": 63676 + }, + "owners": [ + "teladi" + ], + "production": [ + { + "time": 38, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 10 + }, + { + "ware": "energycells", + "amount": 20 + }, + { + "ware": "hullparts", + "amount": 36 + } + ] + } + ] + }, + { + "id": "module_tel_conn_vertical_02", + "version": 0, + "name": "Teladi Vertical Connection Structure 02", + "macro": "struct_tel_vertical_02_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 143000, + "makerRace": "teladi", + "price": { + "min": 70888, + "max": 95908, + "avg": 83398 + }, + "owners": [ + "teladi" + ], + "production": [ + { + "time": 52, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 13 + }, + { + "ware": "energycells", + "amount": 26 + }, + { + "ware": "hullparts", + "amount": 48 + } + ] + } + ] + }, + { + "id": "module_tel_def_claim_01", + "version": 0, + "name": "Teladi Administrative Centre", + "macro": "defence_tel_claim_01_macro", + "description": "No information available", + "type": "defencemodule", + "explosionDamage": 2000, + "hull": 516000, + "makerRace": "teladi", + "price": { + "min": 749625, + "max": 1014199, + "avg": 881912 + }, + "owners": [ + "ministry", + "teladi" + ], + "production": [ + { + "time": 538, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 138 + }, + { + "ware": "energycells", + "amount": 275 + }, + { + "ware": "hullparts", + "amount": 503 + } + ] + } + ] + }, + { + "id": "module_tel_def_disc_01", + "version": 0, + "name": "Teladi Disc Defence Platform", + "macro": "defence_tel_disc_01_macro", + "description": "No information available", + "type": "defencemodule", + "explosionDamage": 1200, + "hull": 197400, + "makerRace": "teladi", + "price": { + "min": 533140, + "max": 721308, + "avg": 627224 + }, + "owners": [ + "ministry", + "teladi" + ], + "shields": [ + { + "group": "group01", + "size": "medium", + "hittable": true + }, + { + "group": "group03", + "size": "medium", + "hittable": true + }, + { + "group": "group05", + "size": "large", + "hittable": false + }, + { + "group": "group05", + "size": "large", + "hittable": false + }, + { + "group": "group05", + "size": "large", + "hittable": false + }, + { + "group": "group05", + "size": "large", + "hittable": false + }, + { + "group": "group04", + "size": "medium", + "hittable": true + }, + { + "group": "group02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group03", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group03", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group04", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group04", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 384, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 98 + }, + { + "ware": "energycells", + "amount": 196 + }, + { + "ware": "hullparts", + "amount": 359 + } + ] + } + ] + }, + { + "id": "module_tel_def_tube_01", + "version": 0, + "name": "Teladi Bridge Defence Platform", + "macro": "defence_tel_tube_01_macro", + "description": "No information available", + "type": "defencemodule", + "explosionDamage": 1200, + "hull": 148800, + "makerRace": "teladi", + "price": { + "min": 462691, + "max": 625993, + "avg": 544342 + }, + "owners": [ + "ministry", + "teladi" + ], + "shields": [ + { + "group": "group01", + "size": "medium", + "hittable": true + }, + { + "group": "group02", + "size": "medium", + "hittable": true + }, + { + "group": "group04", + "size": "medium", + "hittable": true + }, + { + "group": "group03", + "size": "medium", + "hittable": true + }, + { + "group": "group05", + "size": "large", + "hittable": false + }, + { + "group": "group06", + "size": "large", + "hittable": false + } + ], + "turrets": [ + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group06", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group06", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group06", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group06", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group03", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group03", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group04", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group04", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 334, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 85 + }, + { + "ware": "energycells", + "amount": 170 + }, + { + "ware": "hullparts", + "amount": 312 + } + ] + } + ] + }, + { + "id": "module_tel_hab_l_01", + "version": 0, + "name": "Teladi L Biome", + "macro": "hab_tel_l_01_macro", + "description": "No information available", + "type": "habitation", + "explosionDamage": 1000, + "hull": 450000, + "makerRace": "teladi", + "workForce": { + "capacity": 1000, + "race": "teladi" + }, + "price": { + "min": 15822621, + "max": 21407075, + "avg": 18614848 + }, + "owners": [ + "teladi" + ], + "production": [ + { + "time": 711, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 182 + }, + { + "ware": "energycells", + "amount": 363 + }, + { + "ware": "hullparts", + "amount": 664 + } + ] + } + ] + }, + { + "id": "module_tel_hab_m_01", + "version": 0, + "name": "Teladi M Biome", + "macro": "hab_tel_m_01_macro", + "description": "No information available", + "type": "habitation", + "explosionDamage": 1000, + "hull": 200000, + "makerRace": "teladi", + "workForce": { + "capacity": 500, + "race": "teladi" + }, + "price": { + "min": 10530453, + "max": 14247083, + "avg": 12388768 + }, + "owners": [ + "teladi" + ], + "production": [ + { + "time": 474, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 121 + }, + { + "ware": "energycells", + "amount": 242 + }, + { + "ware": "hullparts", + "amount": 443 + } + ] + } + ] + }, + { + "id": "module_tel_hab_s_01", + "version": 0, + "name": "Teladi S Biome", + "macro": "hab_tel_s_01_macro", + "description": "No information available", + "type": "habitation", + "explosionDamage": 1000, + "hull": 100000, + "makerRace": "teladi", + "workForce": { + "capacity": 250, + "race": "teladi" + }, + "price": { + "min": 7471187, + "max": 10108077, + "avg": 8789632 + }, + "owners": [ + "teladi" + ], + "production": [ + { + "time": 335, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 86 + }, + { + "ware": "energycells", + "amount": 171 + }, + { + "ware": "hullparts", + "amount": 313 + } + ] + } + ] + }, + { + "id": "module_tel_pier_l_01", + "version": 0, + "name": "Teladi 3-Dock T Pier", + "macro": "pier_tel_harbor_01_macro", + "description": "No information available", + "type": "pier", + "explosionDamage": 1000, + "hull": 750000, + "makerRace": "teladi", + "price": { + "min": 2946171, + "max": 3985997, + "avg": 3466084 + }, + "owners": [ + "ministry", + "teladi" + ], + "production": [ + { + "time": 750, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 542 + }, + { + "ware": "energycells", + "amount": 1083 + }, + { + "ware": "hullparts", + "amount": 1980 + } + ] + } + ] + }, + { + "id": "module_tel_pier_l_02", + "version": 0, + "name": "Teladi 1-Dock Pier", + "macro": "pier_tel_harbor_02_macro", + "description": "No information available", + "type": "pier", + "explosionDamage": 1000, + "hull": 250000, + "makerRace": "teladi", + "price": { + "min": 1701192, + "max": 2301612, + "avg": 2001402 + }, + "owners": [ + "ministry", + "teladi" + ], + "production": [ + { + "time": 433, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 313 + }, + { + "ware": "energycells", + "amount": 625 + }, + { + "ware": "hullparts", + "amount": 1143 + } + ] + } + ] + }, + { + "id": "module_tel_pier_l_03", + "version": 0, + "name": "Teladi 3-Dock E Pier", + "macro": "pier_tel_harbor_03_macro", + "description": "No information available", + "type": "pier", + "explosionDamage": 1000, + "hull": 1000000, + "makerRace": "teladi", + "price": { + "min": 3399016, + "max": 4598668, + "avg": 3998842 + }, + "owners": [ + "ministry", + "teladi" + ], + "production": [ + { + "time": 866, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 625 + }, + { + "ware": "energycells", + "amount": 1250 + }, + { + "ware": "hullparts", + "amount": 2287 + } + ] + } + ] + }, + { + "id": "module_tel_prod_advancedcomposites_01", + "version": 0, + "name": "Teladi Advanced Composite Production", + "macro": "prod_tel_advancedcomposites_macro", + "description": "No information available", + "type": "production", + "product": [ + "advancedcomposites" + ], + "explosionDamage": 1000, + "hull": 197000, + "makerRace": "teladi", + "workForce": { + "max": 315 + }, + "price": { + "min": 3416014, + "max": 4621666, + "avg": 4018840 + }, + "owners": [ + "teladi" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 863, + "amount": 1, + "method": "default", + "name": "Teladi", + "wares": [ + { + "ware": "claytronics", + "amount": 628 + }, + { + "ware": "energycells", + "amount": 1241 + }, + { + "ware": "hullparts", + "amount": 2300 + } + ] + } + ] + }, + { + "id": "module_tel_prod_engineparts_01", + "version": 0, + "name": "Teladi Engine Part Production", + "macro": "prod_tel_engineparts_macro", + "description": "No information available", + "type": "production", + "product": [ + "engineparts" + ], + "explosionDamage": 1000, + "hull": 120000, + "makerRace": "teladi", + "workForce": { + "max": 225 + }, + "price": { + "min": 2143163, + "max": 2899573, + "avg": 2521368 + }, + "owners": [ + "teladi" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 806, + "amount": 1, + "method": "default", + "name": "Teladi", + "wares": [ + { + "ware": "claytronics", + "amount": 394 + }, + { + "ware": "energycells", + "amount": 778 + }, + { + "ware": "hullparts", + "amount": 1443 + } + ] + } + ] + }, + { + "id": "module_tel_prod_hullparts_01", + "version": 0, + "name": "Teladi Hull Part Production", + "macro": "prod_tel_hullparts_macro", + "description": "No information available", + "type": "production", + "product": [ + "hullparts" + ], + "explosionDamage": 1000, + "hull": 146000, + "makerRace": "teladi", + "workForce": { + "max": 270 + }, + "price": { + "min": 3339976, + "max": 4518792, + "avg": 3929384 + }, + "owners": [ + "teladi" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 861, + "amount": 1, + "method": "default", + "name": "Teladi", + "wares": [ + { + "ware": "claytronics", + "amount": 614 + }, + { + "ware": "energycells", + "amount": 1213 + }, + { + "ware": "hullparts", + "amount": 2249 + } + ] + } + ] + }, + { + "id": "module_tel_prod_medicalsupplies_01", + "version": 0, + "name": "Teladi Medical Supply Production", + "macro": "prod_tel_medicalsupplies_macro", + "description": "No information available", + "type": "production", + "product": [ + "medicalsupplies" + ], + "explosionDamage": 1000, + "hull": 197000, + "makerRace": "teladi", + "workForce": { + "max": 90 + }, + "price": { + "min": 1219233, + "max": 1649551, + "avg": 1434392 + }, + "owners": [ + "ministry" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 738, + "amount": 1, + "method": "default", + "name": "Teladi", + "wares": [ + { + "ware": "claytronics", + "amount": 224 + }, + { + "ware": "energycells", + "amount": 448 + }, + { + "ware": "hullparts", + "amount": 822 + } + ] + } + ] + }, + { + "id": "module_tel_prod_nostropoil_01", + "version": 0, + "name": "Nostrop Oil Production", + "macro": "prod_tel_nostropoil_macro", + "description": "No information available", + "type": "production", + "product": [ + "nostropoil" + ], + "explosionDamage": 1000, + "hull": 276000, + "makerRace": "teladi", + "workForce": { + "max": 120 + }, + "price": { + "min": 1574127, + "max": 2129701, + "avg": 1851914 + }, + "owners": [ + "teladi" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 769, + "amount": 1, + "method": "default", + "name": "Teladi", + "wares": [ + { + "ware": "claytronics", + "amount": 289 + }, + { + "ware": "energycells", + "amount": 579 + }, + { + "ware": "hullparts", + "amount": 1063 + } + ] + } + ] + }, + { + "id": "module_tel_prod_scanningarrays_01", + "version": 0, + "name": "Teladi Scanning Array Production", + "macro": "prod_tel_scanningarrays_macro", + "description": "No information available", + "type": "production", + "product": [ + "scanningarrays" + ], + "explosionDamage": 1000, + "hull": 169000, + "makerRace": "teladi", + "workForce": { + "max": 315 + }, + "price": { + "min": 3464989, + "max": 4687927, + "avg": 4076458 + }, + "owners": [ + "teladi" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 865, + "amount": 1, + "method": "default", + "name": "Teladi", + "wares": [ + { + "ware": "claytronics", + "amount": 637 + }, + { + "ware": "energycells", + "amount": 1259 + }, + { + "ware": "hullparts", + "amount": 2333 + } + ] + } + ] + }, + { + "id": "module_tel_prod_spaceweed_01", + "version": 0, + "name": "Spaceweed Production", + "macro": "prod_tel_spaceweed_macro", + "description": "No information available", + "type": "production", + "product": [ + "spaceweed" + ], + "explosionDamage": 1000, + "hull": 260000, + "makerRace": "teladi", + "workForce": { + "max": 90 + }, + "price": { + "min": 3475040, + "max": 4701524, + "avg": 4088282 + }, + "owners": [ + "hatikvah", + "scaleplate", + "teladi" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 867, + "amount": 1, + "method": "default", + "name": "Teladi", + "wares": [ + { + "ware": "claytronics", + "amount": 639 + }, + { + "ware": "energycells", + "amount": 1277 + }, + { + "ware": "hullparts", + "amount": 2338 + } + ] + } + ] + }, + { + "id": "module_tel_prod_sunriseflowers_01", + "version": 0, + "name": "Sunrise Flower Production", + "macro": "prod_tel_sunriseflowers_macro", + "description": "No information available", + "type": "production", + "product": [ + "sunriseflowers" + ], + "explosionDamage": 1000, + "hull": 235000, + "makerRace": "teladi", + "workForce": { + "max": 50 + }, + "price": { + "min": 1611474, + "max": 2180230, + "avg": 1895852 + }, + "owners": [ + "teladi" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 772, + "amount": 1, + "method": "default", + "name": "Teladi", + "wares": [ + { + "ware": "claytronics", + "amount": 296 + }, + { + "ware": "energycells", + "amount": 592 + }, + { + "ware": "hullparts", + "amount": 1087 + } + ] + } + ] + }, + { + "id": "module_tel_prod_swampplant_01", + "version": 0, + "name": "Swamp Plant Production", + "macro": "prod_tel_swampplant_macro", + "description": "No information available", + "type": "production", + "product": [ + "swampplant" + ], + "explosionDamage": 1000, + "hull": 287000, + "makerRace": "teladi", + "workForce": { + "max": 50 + }, + "price": { + "min": 3475040, + "max": 4701524, + "avg": 4088282 + }, + "owners": [ + "teladi" + ], + "shields": [ + { + "group": "front_03", + "size": "medium", + "hittable": true + }, + { + "group": "front_02", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_02", + "size": "medium", + "hittable": true + }, + { + "group": "back_03", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "front_03", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_03", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_03", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_03", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 867, + "amount": 1, + "method": "default", + "name": "Teladi", + "wares": [ + { + "ware": "claytronics", + "amount": 639 + }, + { + "ware": "energycells", + "amount": 1277 + }, + { + "ware": "hullparts", + "amount": 2338 + } + ] + } + ] + }, + { + "id": "module_tel_prod_teladianium_01", + "version": 0, + "name": "Teladianium Production", + "macro": "prod_tel_teladianium_macro", + "description": "No information available", + "type": "production", + "product": [ + "teladianium" + ], + "explosionDamage": 1000, + "hull": 226000, + "makerRace": "teladi", + "workForce": { + "max": 225 + }, + "price": { + "min": 272830, + "max": 369122, + "avg": 320976 + }, + "owners": [ + "teladi" + ], + "shields": [ + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 554, + "amount": 1, + "method": "default", + "name": "Teladi", + "wares": [ + { + "ware": "claytronics", + "amount": 50 + }, + { + "ware": "energycells", + "amount": 101 + }, + { + "ware": "hullparts", + "amount": 185 + } + ] + } + ] + }, + { + "id": "module_tel_stor_container_l_01", + "version": 0, + "name": "Teladi L Container Storage", + "macro": "storage_tel_l_container_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 1000, + "hull": 531000, + "makerRace": "teladi", + "cargo": { + "max": 1000000, + "type": "container" + }, + "price": { + "min": 608287, + "max": 822977, + "avg": 715632 + }, + "owners": [ + "teladi" + ], + "shields": [ + { + "group": "top_left_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_03", + "size": "medium", + "hittable": true + }, + { + "group": "front_02", + "size": "medium", + "hittable": true + }, + { + "group": "front_04", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_03", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_03", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_04", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_04", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 564, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 112 + }, + { + "ware": "energycells", + "amount": 223 + }, + { + "ware": "hullparts", + "amount": 408 + } + ] + } + ] + }, + { + "id": "module_tel_stor_container_m_01", + "version": 0, + "name": "Teladi M Container Storage", + "macro": "storage_tel_m_container_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 800, + "hull": 259000, + "makerRace": "teladi", + "cargo": { + "max": 100000, + "type": "container" + }, + "price": { + "min": 424014, + "max": 573666, + "avg": 498840 + }, + "owners": [ + "teladi" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "leftbottom_01", + "size": "medium", + "hittable": true + }, + { + "group": "rightbottom_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "leftbottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "rightbottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "rightbottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "leftbottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 394, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 78 + }, + { + "ware": "energycells", + "amount": 156 + }, + { + "ware": "hullparts", + "amount": 285 + } + ] + } + ] + }, + { + "id": "module_tel_stor_container_s_01", + "version": 0, + "name": "Teladi S Container Storage", + "macro": "storage_tel_s_container_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 500, + "hull": 111000, + "makerRace": "teladi", + "cargo": { + "max": 25000, + "type": "container" + }, + "price": { + "min": 277527, + "max": 375477, + "avg": 326502 + }, + "owners": [ + "teladi" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "leftbottom_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "leftbottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "leftbottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 258, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 51 + }, + { + "ware": "energycells", + "amount": 102 + }, + { + "ware": "hullparts", + "amount": 187 + } + ] + } + ] + }, + { + "id": "module_tel_stor_liquid_l_01", + "version": 0, + "name": "Teladi L Liquid Storage", + "macro": "storage_tel_l_liquid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 1000, + "hull": 531000, + "makerRace": "teladi", + "cargo": { + "max": 1000000, + "type": "liquid" + }, + "price": { + "min": 608287, + "max": 822977, + "avg": 715632 + }, + "owners": [ + "teladi" + ], + "shields": [ + { + "group": "top_left_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_03", + "size": "medium", + "hittable": true + }, + { + "group": "front_02", + "size": "medium", + "hittable": true + }, + { + "group": "front_04", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_03", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_03", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_04", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_04", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 564, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 112 + }, + { + "ware": "energycells", + "amount": 223 + }, + { + "ware": "hullparts", + "amount": 408 + } + ] + } + ] + }, + { + "id": "module_tel_stor_liquid_m_01", + "version": 0, + "name": "Teladi M Liquid Storage", + "macro": "storage_tel_m_liquid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 800, + "hull": 259000, + "makerRace": "teladi", + "cargo": { + "max": 500000, + "type": "liquid" + }, + "price": { + "min": 424014, + "max": 573666, + "avg": 498840 + }, + "owners": [ + "teladi" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "leftbottom_01", + "size": "medium", + "hittable": true + }, + { + "group": "rightbottom_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "leftbottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "rightbottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "rightbottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "leftbottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 394, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 78 + }, + { + "ware": "energycells", + "amount": 156 + }, + { + "ware": "hullparts", + "amount": 285 + } + ] + } + ] + }, + { + "id": "module_tel_stor_liquid_s_01", + "version": 0, + "name": "Teladi S Liquid Storage", + "macro": "storage_tel_s_liquid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 500, + "hull": 111000, + "makerRace": "teladi", + "cargo": { + "max": 100000, + "type": "liquid" + }, + "price": { + "min": 277527, + "max": 375477, + "avg": 326502 + }, + "owners": [ + "teladi" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "leftbottom_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "leftbottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "leftbottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 258, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 51 + }, + { + "ware": "energycells", + "amount": 102 + }, + { + "ware": "hullparts", + "amount": 187 + } + ] + } + ] + }, + { + "id": "module_tel_stor_solid_l_01", + "version": 0, + "name": "Teladi L Solid Storage", + "macro": "storage_tel_l_solid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 1000, + "hull": 531000, + "makerRace": "teladi", + "cargo": { + "max": 1000000, + "type": "solid" + }, + "price": { + "min": 608287, + "max": 822977, + "avg": 715632 + }, + "owners": [ + "teladi" + ], + "shields": [ + { + "group": "top_left_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_03", + "size": "medium", + "hittable": true + }, + { + "group": "front_02", + "size": "medium", + "hittable": true + }, + { + "group": "front_04", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_03", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_03", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_04", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_04", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 564, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 112 + }, + { + "ware": "energycells", + "amount": 223 + }, + { + "ware": "hullparts", + "amount": 408 + } + ] + } + ] + }, + { + "id": "module_tel_stor_solid_m_01", + "version": 0, + "name": "Teladi M Solid Storage", + "macro": "storage_tel_m_solid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 800, + "hull": 259000, + "makerRace": "teladi", + "cargo": { + "max": 500000, + "type": "solid" + }, + "price": { + "min": 424014, + "max": 573666, + "avg": 498840 + }, + "owners": [ + "teladi" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "leftbottom_01", + "size": "medium", + "hittable": true + }, + { + "group": "rightbottom_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "leftbottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "rightbottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "rightbottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "leftbottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 394, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 78 + }, + { + "ware": "energycells", + "amount": 156 + }, + { + "ware": "hullparts", + "amount": 285 + } + ] + } + ] + }, + { + "id": "module_tel_stor_solid_s_01", + "version": 0, + "name": "Teladi S Solid Storage", + "macro": "storage_tel_s_solid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 500, + "hull": 111000, + "makerRace": "teladi", + "cargo": { + "max": 100000, + "type": "solid" + }, + "price": { + "min": 277527, + "max": 375477, + "avg": 326502 + }, + "owners": [ + "teladi" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "leftbottom_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "bottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "leftbottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "leftbottom_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 258, + "amount": 1, + "method": "default", + "name": "Universal", + "wares": [ + { + "ware": "claytronics", + "amount": 51 + }, + { + "ware": "energycells", + "amount": 102 + }, + { + "ware": "hullparts", + "amount": 187 + } + ] + } + ] + }, + { + "id": "module_ter_build_dockarea_m_01", + "version": 1, + "name": "Terran S/M Ship Fabrication Bay", + "macro": "buildmodule_ter_ships_m_dockarea_01_macro", + "description": "No information available", + "type": "buildmodule", + "explosionDamage": 2500, + "hull": 1020000, + "makerRace": "terran", + "workForce": { + "max": 800 + }, + "price": { + "min": 92680858, + "max": 125391749, + "avg": 109036303 + }, + "owners": [ + "pioneers", + "terran" + ], + "docks": [ + { + "capacity": 30, + "size": "medium" + }, + { + "capacity": 100, + "size": "small" + }, + { + "capacity": 10, + "size": "extrasmall" + } + ], + "production": [ + { + "time": 1298, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 895 + }, + { + "ware": "energycells", + "amount": 6620 + }, + { + "ware": "siliconcarbide", + "amount": 1843 + } + ] + } + ] + }, + { + "id": "module_ter_build_l_01", + "version": 1, + "name": "Terran L Ship Fabrication Bay", + "macro": "buildmodule_ter_ships_l_macro", + "description": "No information available", + "type": "buildmodule", + "explosionDamage": 10000, + "hull": 324000, + "makerRace": "terran", + "workForce": { + "max": 500 + }, + "price": { + "min": 223501475, + "max": 302384349, + "avg": 262942912 + }, + "owners": [ + "pioneers", + "terran" + ], + "production": [ + { + "time": 731, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 505 + }, + { + "ware": "energycells", + "amount": 3731 + }, + { + "ware": "siliconcarbide", + "amount": 1039 + } + ] + } + ] + }, + { + "id": "module_ter_build_xl_01", + "version": 1, + "name": "Terran XL Ship Fabrication Bay", + "macro": "buildmodule_ter_ships_xl_macro", + "description": "No information available", + "type": "buildmodule", + "explosionDamage": 10000, + "hull": 551000, + "makerRace": "terran", + "workForce": { + "max": 700 + }, + "price": { + "min": 227108570, + "max": 307264536, + "avg": 267186553 + }, + "owners": [ + "pioneers", + "terran" + ], + "production": [ + { + "time": 954, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 658 + }, + { + "ware": "energycells", + "amount": 4866 + }, + { + "ware": "siliconcarbide", + "amount": 1354 + } + ] + } + ] + }, + { + "id": "module_ter_conn_base_01", + "version": 1, + "name": "Terran Base Connection Structure 01", + "macro": "struct_ter_base_01_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 75000, + "makerRace": "terran", + "price": { + "min": 61609, + "max": 83354, + "avg": 72482 + }, + "owners": [ + "pioneers", + "terran" + ], + "production": [ + { + "time": 37, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 3 + }, + { + "ware": "energycells", + "amount": 19 + }, + { + "ware": "siliconcarbide", + "amount": 5 + } + ] + } + ] + }, + { + "id": "module_ter_conn_base_02", + "version": 1, + "name": "Terran Base Connection Structure 02", + "macro": "struct_ter_base_02_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 150000, + "makerRace": "terran", + "price": { + "min": 85802, + "max": 116086, + "avg": 100944 + }, + "owners": [ + "pioneers", + "terran" + ], + "production": [ + { + "time": 53, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 4 + }, + { + "ware": "energycells", + "amount": 27 + }, + { + "ware": "siliconcarbide", + "amount": 8 + } + ] + } + ] + }, + { + "id": "module_ter_conn_base_03", + "version": 1, + "name": "Terran Base Connection Structure 03", + "macro": "struct_ter_base_03_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 300000, + "makerRace": "terran", + "price": { + "min": 110087, + "max": 148942, + "avg": 129515 + }, + "owners": [ + "pioneers", + "terran" + ], + "production": [ + { + "time": 74, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 5 + }, + { + "ware": "energycells", + "amount": 38 + }, + { + "ware": "siliconcarbide", + "amount": 11 + } + ] + } + ] + }, + { + "id": "module_ter_conn_cross_01", + "version": 1, + "name": "Terran Cross Connection Structure 01", + "macro": "struct_ter_cross_01_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 300000, + "makerRace": "terran", + "price": { + "min": 110087, + "max": 148942, + "avg": 129515 + }, + "owners": [ + "pioneers", + "terran" + ], + "production": [ + { + "time": 74, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 5 + }, + { + "ware": "energycells", + "amount": 38 + }, + { + "ware": "siliconcarbide", + "amount": 11 + } + ] + } + ] + }, + { + "id": "module_ter_conn_vertical_01", + "version": 1, + "name": "Terran Vertical Connection Structure 01", + "macro": "struct_ter_vertical_01_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 75000, + "makerRace": "terran", + "price": { + "min": 61609, + "max": 83354, + "avg": 72482 + }, + "owners": [ + "pioneers", + "terran" + ], + "production": [ + { + "time": 37, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 3 + }, + { + "ware": "energycells", + "amount": 19 + }, + { + "ware": "siliconcarbide", + "amount": 5 + } + ] + } + ] + }, + { + "id": "module_ter_conn_vertical_02", + "version": 1, + "name": "Terran Vertical Connection Structure 02", + "macro": "struct_ter_vertical_02_macro", + "description": "No information available", + "type": "connectionmodule", + "hull": 150000, + "makerRace": "terran", + "price": { + "min": 85802, + "max": 116086, + "avg": 100944 + }, + "owners": [ + "pioneers", + "terran" + ], + "production": [ + { + "time": 53, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 4 + }, + { + "ware": "energycells", + "amount": 27 + }, + { + "ware": "siliconcarbide", + "amount": 8 + } + ] + } + ] + }, + { + "id": "module_ter_def_claim_01", + "version": 1, + "name": "Terran Administrative Centre", + "macro": "defence_ter_claim_01_macro", + "description": "No information available", + "type": "defencemodule", + "explosionDamage": 2000, + "hull": 600000, + "makerRace": "terran", + "price": { + "min": 1731191, + "max": 2342200, + "avg": 2036696 + }, + "owners": [ + "pioneers", + "terran" + ], + "production": [ + { + "time": 1162, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 80 + }, + { + "ware": "energycells", + "amount": 593 + }, + { + "ware": "siliconcarbide", + "amount": 165 + } + ] + } + ] + }, + { + "id": "module_ter_def_disc_01", + "version": 1, + "name": "Terran Disc Defence Platform", + "macro": "defence_ter_disc_01_macro", + "description": "No information available", + "type": "defencemodule", + "explosionDamage": 1200, + "hull": 300000, + "makerRace": "terran", + "price": { + "min": 1231845, + "max": 1666614, + "avg": 1449230 + }, + "owners": [ + "pioneers", + "terran" + ], + "shields": [ + { + "group": "group01", + "size": "medium", + "hittable": true + }, + { + "group": "group02", + "size": "medium", + "hittable": true + }, + { + "group": "group04", + "size": "medium", + "hittable": true + }, + { + "group": "group03", + "size": "medium", + "hittable": true + }, + { + "group": "group05", + "size": "large", + "hittable": false + }, + { + "group": "group06", + "size": "large", + "hittable": false + }, + { + "group": "group07", + "size": "large", + "hittable": false + }, + { + "group": "group08", + "size": "large", + "hittable": false + }, + { + "group": "group09", + "size": "medium", + "hittable": true + }, + { + "group": "group10", + "size": "medium", + "hittable": true + }, + { + "group": "group11", + "size": "medium", + "hittable": true + }, + { + "group": "group12", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group06", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group06", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group03", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group03", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group04", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group04", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group07", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group07", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group08", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group08", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group09", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group09", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group10", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group10", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group11", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group11", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group12", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group12", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 822, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 57 + }, + { + "ware": "energycells", + "amount": 419 + }, + { + "ware": "siliconcarbide", + "amount": 117 + } + ] + } + ] + }, + { + "id": "module_ter_def_tube_01", + "version": 1, + "name": "Terran Bridge Defence Platform", + "macro": "defence_ter_tube_01_macro", + "description": "No information available", + "type": "defencemodule", + "explosionDamage": 1200, + "hull": 150000, + "makerRace": "terran", + "price": { + "min": 866932, + "max": 1172909, + "avg": 1019921 + }, + "owners": [ + "pioneers", + "terran" + ], + "shields": [ + { + "group": "group01", + "size": "medium", + "hittable": true + }, + { + "group": "group02", + "size": "medium", + "hittable": true + }, + { + "group": "group04", + "size": "medium", + "hittable": true + }, + { + "group": "group03", + "size": "medium", + "hittable": true + }, + { + "group": "group05", + "size": "large", + "hittable": false + }, + { + "group": "group06", + "size": "large", + "hittable": false + }, + { + "group": "group07", + "size": "large", + "hittable": false + }, + { + "group": "group08", + "size": "large", + "hittable": false + }, + { + "group": "group09", + "size": "medium", + "hittable": true + }, + { + "group": "group10", + "size": "medium", + "hittable": true + }, + { + "group": "group11", + "size": "medium", + "hittable": true + }, + { + "group": "group12", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group05", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group06", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group06", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group03", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group03", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group04", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group04", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group07", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group07", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group08", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group08", + "size": "large", + "hittable": false, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group09", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group09", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group10", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group10", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group11", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group11", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group12", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "group12", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 581, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 40 + }, + { + "ware": "energycells", + "amount": 296 + }, + { + "ware": "siliconcarbide", + "amount": 83 + } + ] + } + ] + }, + { + "id": "module_ter_dock_m_01_hightech", + "version": 1, + "name": "Terran 4M10S Luxury Dock Area", + "macro": "dockarea_ter_m_station_01_hightech_macro", + "description": "No information available", + "type": "dockarea", + "explosionDamage": 2000, + "hull": 455000, + "makerRace": "terran", + "price": { + "min": 238867, + "max": 323174, + "avg": 281021 + }, + "owners": [ + "pioneers", + "terran" + ], + "docks": [ + { + "capacity": 10, + "size": "medium" + }, + { + "capacity": 40, + "size": "small" + }, + { + "capacity": 10, + "size": "extrasmall" + } + ], + "production": [ + { + "time": 318, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 11 + }, + { + "ware": "energycells", + "amount": 81 + }, + { + "ware": "siliconcarbide", + "amount": 23 + } + ] + } + ] + }, + { + "id": "module_ter_equip_dockarea_m_01", + "version": 1, + "name": "Terran S/M Ship Maintenance Bay", + "macro": "buildmodule_ter_equip_m_dockarea_01_macro", + "description": "No information available", + "type": "buildmodule", + "explosionDamage": 2500, + "hull": 1020000, + "makerRace": "terran", + "workForce": { + "max": 400 + }, + "price": { + "min": 32174490, + "max": 43530192, + "avg": 37852341 + }, + "owners": [ + "pioneers", + "terran" + ], + "docks": [ + { + "capacity": 30, + "size": "medium" + }, + { + "capacity": 100, + "size": "small" + }, + { + "capacity": 10, + "size": "extrasmall" + } + ], + "production": [ + { + "time": 650, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 447 + }, + { + "ware": "energycells", + "amount": 3312 + }, + { + "ware": "siliconcarbide", + "amount": 921 + } + ] + } + ] + }, + { + "id": "module_ter_equip_l_01", + "version": 1, + "name": "Terran L Ship Maintenance Bay", + "macro": "buildmodule_ter_equip_l_macro", + "description": "No information available", + "type": "buildmodule", + "explosionDamage": 5000, + "hull": 324000, + "makerRace": "terran", + "workForce": { + "max": 500 + }, + "price": { + "min": 57725113, + "max": 78098683, + "avg": 67911898 + }, + "owners": [ + "pioneers", + "terran" + ], + "production": [ + { + "time": 364, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 252 + }, + { + "ware": "energycells", + "amount": 1866 + }, + { + "ware": "siliconcarbide", + "amount": 519 + } + ] + } + ] + }, + { + "id": "module_ter_equip_xl_01", + "version": 1, + "name": "Terran XL Ship Maintenance Bay", + "macro": "buildmodule_ter_equip_xl_macro", + "description": "No information available", + "type": "buildmodule", + "explosionDamage": 5000, + "hull": 551000, + "makerRace": "terran", + "workForce": { + "max": 700 + }, + "price": { + "min": 59755291, + "max": 80845393, + "avg": 70300342 + }, + "owners": [ + "pioneers", + "terran" + ], + "production": [ + { + "time": 477, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 329 + }, + { + "ware": "energycells", + "amount": 2434 + }, + { + "ware": "siliconcarbide", + "amount": 677 + } + ] + } + ] + }, + { + "id": "module_ter_hab_l_01", + "version": 1, + "name": "Terran L Living Quarters", + "macro": "hab_ter_l_01_macro", + "description": "No information available", + "type": "habitation", + "explosionDamage": 1000, + "hull": 1200000, + "makerRace": "terran", + "workForce": { + "capacity": 500, + "race": "terran" + }, + "price": { + "min": 12310693, + "max": 16655643, + "avg": 14483168 + }, + "owners": [ + "pioneers", + "terran" + ], + "production": [ + { + "time": 1162, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 80 + }, + { + "ware": "energycells", + "amount": 593 + }, + { + "ware": "siliconcarbide", + "amount": 165 + } + ] + } + ] + }, + { + "id": "module_ter_hab_m_01", + "version": 1, + "name": "Terran M Living Quarters", + "macro": "hab_ter_m_01_macro", + "description": "No information available", + "type": "habitation", + "explosionDamage": 1000, + "hull": 600000, + "makerRace": "terran", + "workForce": { + "capacity": 250, + "race": "terran" + }, + "price": { + "min": 8759787, + "max": 11851477, + "avg": 10305632 + }, + "owners": [ + "pioneers", + "terran" + ], + "production": [ + { + "time": 822, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 57 + }, + { + "ware": "energycells", + "amount": 419 + }, + { + "ware": "siliconcarbide", + "amount": 117 + } + ] + } + ] + }, + { + "id": "module_ter_hab_s_01", + "version": 1, + "name": "Terran S Living Quarters", + "macro": "hab_ter_s_01_macro", + "description": "No information available", + "type": "habitation", + "explosionDamage": 1000, + "hull": 300000, + "makerRace": "terran", + "workForce": { + "capacity": 100, + "race": "terran" + }, + "price": { + "min": 6164853, + "max": 8340683, + "avg": 7252768 + }, + "owners": [ + "pioneers", + "terran" + ], + "production": [ + { + "time": 581, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 40 + }, + { + "ware": "energycells", + "amount": 296 + }, + { + "ware": "siliconcarbide", + "amount": 83 + } + ] + } + ] + }, + { + "id": "module_ter_pier_01", + "version": 1, + "name": "Terran 3-Dock T Pier", + "macro": "pier_ter_harbor_01_macro", + "description": "No information available", + "type": "pier", + "explosionDamage": 1000, + "hull": 750000, + "makerRace": "terran", + "price": { + "min": 3159110, + "max": 4274089, + "avg": 3716600 + }, + "owners": [ + "pioneers", + "terran" + ], + "production": [ + { + "time": 750, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 146 + }, + { + "ware": "energycells", + "amount": 1083 + }, + { + "ware": "siliconcarbide", + "amount": 301 + } + ] + } + ] + }, + { + "id": "module_ter_pier_02", + "version": 1, + "name": "Terran 1-Dock Pier", + "macro": "pier_ter_harbor_02_macro", + "description": "No information available", + "type": "pier", + "explosionDamage": 1000, + "hull": 250000, + "makerRace": "terran", + "price": { + "min": 1835686, + "max": 2483576, + "avg": 2159631 + }, + "owners": [ + "pioneers", + "terran" + ], + "production": [ + { + "time": 433, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 85 + }, + { + "ware": "energycells", + "amount": 625 + }, + { + "ware": "siliconcarbide", + "amount": 174 + } + ] + } + ] + }, + { + "id": "module_ter_pier_03", + "version": 1, + "name": "Terran 3-Dock E Pier", + "macro": "pier_ter_harbor_03_macro", + "description": "No information available", + "type": "pier", + "explosionDamage": 1000, + "hull": 1000000, + "makerRace": "terran", + "price": { + "min": 3655537, + "max": 4945727, + "avg": 4300632 + }, + "owners": [ + "pioneers", + "terran" + ], + "production": [ + { + "time": 866, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 169 + }, + { + "ware": "energycells", + "amount": 1250 + }, + { + "ware": "siliconcarbide", + "amount": 348 + } + ] + } + ] + }, + { + "id": "module_ter_pier_04", + "version": 1, + "name": "Terran 4-Dock T Pier", + "macro": "pier_ter_harbor_04_macro", + "description": "No information available", + "type": "pier", + "explosionDamage": 500, + "hull": 250000, + "makerRace": "terran", + "price": { + "min": 1835686, + "max": 2483576, + "avg": 2159631 + }, + "owners": [ + "pioneers", + "terran" + ], + "production": [ + { + "time": 433, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 85 + }, + { + "ware": "energycells", + "amount": 625 + }, + { + "ware": "siliconcarbide", + "amount": 174 + } + ] + } + ] + }, + { + "id": "module_ter_pier_tradestation_01", + "version": 1, + "name": "Terran Trading Station Hexa-Dock Pier", + "macro": "pier_ter_tradestation_01_macro", + "description": "No information available", + "type": "pier", + "explosionDamage": 1500, + "hull": 2000000, + "makerRace": "terran", + "price": { + "min": 2297462, + "max": 3108330, + "avg": 2702896 + }, + "owners": [ + "pioneers", + "terran" + ], + "production": [ + { + "time": 1225, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 239 + }, + { + "ware": "energycells", + "amount": 1768 + }, + { + "ware": "siliconcarbide", + "amount": 492 + } + ] + } + ] + }, + { + "id": "module_ter_prod_computronicsubstrate_01", + "version": 1, + "name": "Computronic Substrate Production", + "macro": "prod_ter_computronicsubstrate_macro", + "description": "No information available", + "type": "production", + "product": [ + "computronicsubstrate" + ], + "explosionDamage": 2000, + "hull": 400000, + "makerRace": "terran", + "workForce": { + "max": 1500 + }, + "price": { + "min": 4220074, + "max": 5709512, + "avg": 4964793 + }, + "owners": [ + "pioneers", + "terran" + ], + "shields": [ + { + "group": "down_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "down_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 800, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 238 + }, + { + "ware": "energycells", + "amount": 688 + }, + { + "ware": "siliconcarbide", + "amount": 155 + } + ] + } + ] + }, + { + "id": "module_ter_prod_energycells_01", + "version": 1, + "name": "Terran Energy Cell Production", + "macro": "prod_ter_energycells_macro", + "description": "No information available", + "type": "production", + "product": [ + "energycells" + ], + "explosionDamage": 2000, + "hull": 200000, + "makerRace": "terran", + "workForce": { + "max": 45 + }, + "price": { + "min": 409886, + "max": 542074, + "avg": 471369 + }, + "owners": [ + "pioneers", + "terran" + ], + "production": [ + { + "time": 175, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 24 + }, + { + "ware": "energycells", + "amount": 100 + }, + { + "ware": "siliconcarbide", + "amount": 20 + } + ] + } + ] + }, + { + "id": "module_ter_prod_medicalsupplies_01", + "version": 1, + "name": "Terran Medical Supply Production", + "macro": "prod_ter_medicalsupplies_macro", + "description": "No information available", + "type": "production", + "product": [ + "medicalsupplies" + ], + "explosionDamage": 2000, + "hull": 240000, + "makerRace": "terran", + "workForce": { + "max": 90 + }, + "price": { + "min": 301266, + "max": 407596, + "avg": 354431 + }, + "owners": [ + "pioneers", + "terran" + ], + "shields": [ + { + "group": "right_02", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 336, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 17 + }, + { + "ware": "energycells", + "amount": 50 + }, + { + "ware": "siliconcarbide", + "amount": 11 + } + ] + } + ] + }, + { + "id": "module_ter_prod_metallicmicrolattice_01", + "version": 1, + "name": "Metallic Microlattice Production", + "macro": "prod_ter_metallicmicrolattice_macro", + "description": "No information available", + "type": "production", + "product": [ + "metallicmicrolattice" + ], + "explosionDamage": 2000, + "hull": 280000, + "makerRace": "terran", + "workForce": { + "max": 120 + }, + "price": { + "min": 106659, + "max": 144303, + "avg": 125481 + }, + "owners": [ + "pioneers", + "terran" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_02", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 152, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 6 + }, + { + "ware": "energycells", + "amount": 18 + }, + { + "ware": "siliconcarbide", + "amount": 4 + } + ] + } + ] + }, + { + "id": "module_ter_prod_proteinpaste_01", + "version": 1, + "name": "Protein Paste Production", + "macro": "prod_ter_proteinpaste_macro", + "description": "No information available", + "type": "production", + "product": [ + "proteinpaste" + ], + "explosionDamage": 2000, + "hull": 260000, + "makerRace": "terran", + "workForce": { + "max": 180 + }, + "price": { + "min": 1292921, + "max": 1749247, + "avg": 1521084 + }, + "owners": [ + "pioneers", + "terran" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_02", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 592, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 73 + }, + { + "ware": "energycells", + "amount": 211 + }, + { + "ware": "siliconcarbide", + "amount": 47 + } + ] + } + ] + }, + { + "id": "module_ter_prod_scrap_recycler", + "version": 1, + "name": "Terran Scrap Recycler", + "macro": "prod_ter_scrap_recycler_macro", + "description": "The Jump Gate shutdown left Avarice with very limited access to resources, so stranded Argon engineers started development of various recycling facilities. The Scrap Recycler was designed to process Scrap Metal into usable resources, converting it into Hull Parts and Claytronics in alternating production cycles.nnFollowing the arrival of messenger drones from Sacred Relic, the people of Avarice sent out drones of their own to other disconnected systems. These drones contained blueprints for their recycling technology, in the hopes that it would be of help to others who were unfortunate enough to be stranded with no natural resources to hand. In the process, they created a local branch of the Alliance of the Word, operating out of Tidebreak. With the first Jump Gate reconnection in 825 (NT), the Alliance of the Word moved to its own station in Windfall.nnUpon receiving blueprints for the Scrap Recycler, the Segaris Pioneers modified them to be compatible with their Terran economy. Instead of converting Scrap Metal to Hull Parts and Claytronics, their variant produced Silicon Carbide and Computronic Substrate in the same alternating fashion.", + "type": "production", + "product": [ + "computronicsubstrate", + "siliconcarbide" + ], + "explosionDamage": 2000, + "hull": 200000, + "makerRace": "terran", + "workForce": { + "max": 1250 + }, + "price": { + "min": 1719675, + "max": 2112168, + "avg": 1915898 + }, + "owners": [ + "pioneers" + ], + "shields": [ + { + "group": "top_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_01", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "top_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 777, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 99 + }, + { + "ware": "energycells", + "amount": 131 + }, + { + "ware": "siliconcarbide", + "amount": 21 + } + ] + } + ] + }, + { + "id": "module_ter_prod_siliconcarbide_01", + "version": 1, + "name": "Silicon Carbide Production", + "macro": "prod_ter_siliconcarbide_macro", + "description": "No information available", + "type": "production", + "product": [ + "siliconcarbide" + ], + "explosionDamage": 2000, + "hull": 350000, + "makerRace": "terran", + "workForce": { + "max": 750 + }, + "price": { + "min": 709162, + "max": 959454, + "avg": 834308 + }, + "owners": [ + "pioneers", + "terran" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_02", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 486, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 40 + }, + { + "ware": "energycells", + "amount": 117 + }, + { + "ware": "siliconcarbide", + "amount": 26 + } + ] + } + ] + }, + { + "id": "module_ter_prod_stimulants_01", + "version": 1, + "name": "Stimulant Production", + "macro": "prod_ter_stimulants_macro", + "description": "No information available", + "type": "production", + "product": [ + "stimulants" + ], + "explosionDamage": 2000, + "hull": 300000, + "makerRace": "terran", + "workForce": { + "max": 300 + }, + "price": { + "min": 2484701, + "max": 3361653, + "avg": 2923177 + }, + "owners": [ + "pioneers", + "terran" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_02", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 707, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 140 + }, + { + "ware": "energycells", + "amount": 407 + }, + { + "ware": "siliconcarbide", + "amount": 92 + } + ] + } + ] + }, + { + "id": "module_ter_prod_terranmre_01", + "version": 1, + "name": "Terran MRE Production", + "macro": "prod_ter_mre_macro", + "description": "No information available", + "type": "production", + "product": [ + "terranmre" + ], + "explosionDamage": 2000, + "hull": 270000, + "makerRace": "terran", + "workForce": { + "max": 135 + }, + "price": { + "min": 533265, + "max": 721477, + "avg": 627371 + }, + "owners": [ + "pioneers", + "terran" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_02", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 436, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 30 + }, + { + "ware": "energycells", + "amount": 89 + }, + { + "ware": "siliconcarbide", + "amount": 20 + } + ] + } + ] + }, + { + "id": "module_ter_stor_container_l_01", + "version": 1, + "name": "Terran L Container Storage", + "macro": "storage_ter_l_container_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 1000, + "hull": 1000000, + "makerRace": "terran", + "cargo": { + "max": 1000000, + "type": "container" + }, + "price": { + "min": 778303, + "max": 1052999, + "avg": 915651 + }, + "owners": [ + "pioneers", + "terran" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_02", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_02", + "size": "medium", + "hittable": true + }, + { + "group": "left_02", + "size": "medium", + "hittable": true + }, + { + "group": "front_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 671, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 36 + }, + { + "ware": "energycells", + "amount": 265 + }, + { + "ware": "siliconcarbide", + "amount": 74 + } + ] + } + ] + }, + { + "id": "module_ter_stor_container_m_01", + "version": 1, + "name": "Terran M Container Storage", + "macro": "storage_ter_m_container_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 800, + "hull": 450000, + "makerRace": "terran", + "cargo": { + "max": 500000, + "type": "container" + }, + "price": { + "min": 520713, + "max": 704493, + "avg": 612603 + }, + "owners": [ + "pioneers", + "terran" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_02", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 450, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 24 + }, + { + "ware": "energycells", + "amount": 178 + }, + { + "ware": "siliconcarbide", + "amount": 50 + } + ] + } + ] + }, + { + "id": "module_ter_stor_container_s_01", + "version": 1, + "name": "Terran S Container Storage", + "macro": "storage_ter_s_container_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 500, + "hull": 150000, + "makerRace": "terran", + "cargo": { + "max": 100000, + "type": "container" + }, + "price": { + "min": 303273, + "max": 410310, + "avg": 356792 + }, + "owners": [ + "pioneers", + "terran" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_02", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 260, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 14 + }, + { + "ware": "energycells", + "amount": 103 + }, + { + "ware": "siliconcarbide", + "amount": 29 + } + ] + } + ] + }, + { + "id": "module_ter_stor_liquid_l_01", + "version": 1, + "name": "Terran L Liquid Storage", + "macro": "storage_ter_l_liquid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 1000, + "hull": 1000000, + "makerRace": "terran", + "cargo": { + "max": 1000000, + "type": "liquid" + }, + "price": { + "min": 778303, + "max": 1052999, + "avg": 915651 + }, + "owners": [ + "pioneers", + "terran" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_02", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 671, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 36 + }, + { + "ware": "energycells", + "amount": 265 + }, + { + "ware": "siliconcarbide", + "amount": 74 + } + ] + } + ] + }, + { + "id": "module_ter_stor_liquid_m_01", + "version": 1, + "name": "Terran M Liquid Storage", + "macro": "storage_ter_m_liquid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 800, + "hull": 450000, + "makerRace": "terran", + "cargo": { + "max": 500000, + "type": "liquid" + }, + "price": { + "min": 520713, + "max": 704493, + "avg": 612603 + }, + "owners": [ + "pioneers", + "terran" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_02", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 450, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 24 + }, + { + "ware": "energycells", + "amount": 178 + }, + { + "ware": "siliconcarbide", + "amount": 50 + } + ] + } + ] + }, + { + "id": "module_ter_stor_liquid_s_01", + "version": 1, + "name": "Terran S Liquid Storage", + "macro": "storage_ter_s_liquid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 500, + "hull": 150000, + "makerRace": "terran", + "cargo": { + "max": 100000, + "type": "liquid" + }, + "price": { + "min": 303273, + "max": 410310, + "avg": 356792 + }, + "owners": [ + "pioneers", + "terran" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_02", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 260, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 14 + }, + { + "ware": "energycells", + "amount": 103 + }, + { + "ware": "siliconcarbide", + "amount": 29 + } + ] + } + ] + }, + { + "id": "module_ter_stor_solid_l_01", + "version": 1, + "name": "Terran L Solid Storage", + "macro": "storage_ter_l_solid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 1000, + "hull": 1000000, + "makerRace": "terran", + "cargo": { + "max": 1000000, + "type": "solid" + }, + "price": { + "min": 778303, + "max": 1052999, + "avg": 915651 + }, + "owners": [ + "pioneers", + "terran" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_02", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "front_01", + "size": "medium", + "hittable": true + }, + { + "group": "back_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_02", + "size": "medium", + "hittable": true + }, + { + "group": "left_02", + "size": "medium", + "hittable": true + }, + { + "group": "front_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "back_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "front_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 671, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 36 + }, + { + "ware": "energycells", + "amount": 265 + }, + { + "ware": "siliconcarbide", + "amount": 74 + } + ] + } + ] + }, + { + "id": "module_ter_stor_solid_m_01", + "version": 1, + "name": "Terran M Solid Storage", + "macro": "storage_ter_m_solid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 800, + "hull": 450000, + "makerRace": "terran", + "cargo": { + "max": 500000, + "type": "solid" + }, + "price": { + "min": 520713, + "max": 704493, + "avg": 612603 + }, + "owners": [ + "pioneers", + "terran" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_02", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 450, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 24 + }, + { + "ware": "energycells", + "amount": 178 + }, + { + "ware": "siliconcarbide", + "amount": 50 + } + ] + } + ] + }, + { + "id": "module_ter_stor_solid_s_01", + "version": 1, + "name": "Terran S Solid Storage", + "macro": "storage_ter_s_solid_01_macro", + "description": "No information available", + "type": "storage", + "explosionDamage": 500, + "hull": 150000, + "makerRace": "terran", + "cargo": { + "max": 100000, + "type": "solid" + }, + "price": { + "min": 303273, + "max": 410310, + "avg": 356792 + }, + "owners": [ + "pioneers", + "terran" + ], + "shields": [ + { + "group": "left_01", + "size": "medium", + "hittable": true + }, + { + "group": "left_02", + "size": "medium", + "hittable": true + }, + { + "group": "right_01", + "size": "medium", + "hittable": true + }, + { + "group": "right_02", + "size": "medium", + "hittable": true + } + ], + "turrets": [ + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "left_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_01", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + }, + { + "group": "right_02", + "size": "medium", + "hittable": true, + "types": [ + "standard", + "missile" + ] + } + ], + "production": [ + { + "time": 260, + "amount": 1, + "method": "default", + "name": "Terran", + "wares": [ + { + "ware": "computronicsubstrate", + "amount": 14 + }, + { + "ware": "energycells", + "amount": 103 + }, + { + "ware": "siliconcarbide", + "amount": 29 + } + ] + } + ] } ] diff --git a/shared/data/scenario.json b/shared/data/scenario.json index cc08540..d15d432 100644 --- a/shared/data/scenario.json +++ b/shared/data/scenario.json @@ -3,10 +3,10 @@ { "label": "Orbital Station", "startingModules": [ - "dock-bay-small", - "power-core", - "bulk-bay", - "liquid-tank" + "module_arg_dock_m_01_lowtech", + "module_gen_prod_energycells_01", + "module_arg_stor_solid_m_01", + "module_arg_stor_liquid_m_01" ], "systemId": "helios", "planetIndex": 2, diff --git a/shared/data/ships.json b/shared/data/ships.json index deb5772..3b8a8e6 100644 --- a/shared/data/ships.json +++ b/shared/data/ships.json @@ -21,35 +21,35 @@ "recipeId": "frigate-construction", "facilityCategory": "station", "requiredModules": [ - "ship-factory" + "module_gen_build_l_01" ], "requirements": [ { - "itemId": "hull-sections", + "itemId": "hullparts", "amount": 26 }, { - "itemId": "command-bridge-module", + "itemId": "advancedelectronics", "amount": 1 }, { - "itemId": "reactor-core-module", + "itemId": "antimatterconverters", "amount": 1 }, { - "itemId": "capacitor-bank-module", + "itemId": "shieldcomponents", "amount": 1 }, { - "itemId": "ion-drive-module", + "itemId": "engineparts", "amount": 1 }, { - "itemId": "ftl-core-module", + "itemId": "engineparts", "amount": 1 }, { - "itemId": "gun-turret-module", + "itemId": "turretcomponents", "amount": 1 } ], @@ -81,35 +81,35 @@ "recipeId": "destroyer-construction", "facilityCategory": "station", "requiredModules": [ - "ship-factory" + "module_gen_build_l_01" ], "requirements": [ { - "itemId": "hull-sections", + "itemId": "hullparts", "amount": 44 }, { - "itemId": "command-bridge-module", + "itemId": "advancedelectronics", "amount": 1 }, { - "itemId": "reactor-core-module", + "itemId": "antimatterconverters", "amount": 1 }, { - "itemId": "capacitor-bank-module", + "itemId": "shieldcomponents", "amount": 1 }, { - "itemId": "ion-drive-module", + "itemId": "engineparts", "amount": 1 }, { - "itemId": "ftl-core-module", + "itemId": "engineparts", "amount": 1 }, { - "itemId": "gun-turret-module", + "itemId": "turretcomponents", "amount": 2 } ], @@ -141,35 +141,35 @@ "recipeId": "cruiser-construction", "facilityCategory": "station", "requiredModules": [ - "ship-factory" + "module_gen_build_l_01" ], "requirements": [ { - "itemId": "hull-sections", + "itemId": "hullparts", "amount": 60 }, { - "itemId": "command-bridge-module", + "itemId": "advancedelectronics", "amount": 1 }, { - "itemId": "reactor-core-module", + "itemId": "antimatterconverters", "amount": 1 }, { - "itemId": "capacitor-bank-module", + "itemId": "shieldcomponents", "amount": 1 }, { - "itemId": "ion-drive-module", + "itemId": "engineparts", "amount": 1 }, { - "itemId": "ftl-core-module", + "itemId": "engineparts", "amount": 1 }, { - "itemId": "gun-turret-module", + "itemId": "turretcomponents", "amount": 2 } ], @@ -207,39 +207,39 @@ "recipeId": "carrier-construction", "facilityCategory": "station", "requiredModules": [ - "ship-factory" + "module_gen_build_l_01" ], "requirements": [ { - "itemId": "hull-sections", + "itemId": "hullparts", "amount": 120 }, { - "itemId": "command-bridge-module", + "itemId": "advancedelectronics", "amount": 1 }, { - "itemId": "reactor-core-module", + "itemId": "antimatterconverters", "amount": 1 }, { - "itemId": "capacitor-bank-module", + "itemId": "shieldcomponents", "amount": 1 }, { - "itemId": "ion-drive-module", + "itemId": "engineparts", "amount": 1 }, { - "itemId": "ftl-core-module", + "itemId": "engineparts", "amount": 1 }, { - "itemId": "carrier-bay-module", + "itemId": "dronecomponents", "amount": 2 }, { - "itemId": "gun-turret-module", + "itemId": "turretcomponents", "amount": 1 } ], @@ -272,35 +272,35 @@ "recipeId": "hauler-construction", "facilityCategory": "station", "requiredModules": [ - "ship-factory" + "module_gen_build_l_01" ], "requirements": [ { - "itemId": "hull-sections", + "itemId": "hullparts", "amount": 34 }, { - "itemId": "command-bridge-module", + "itemId": "advancedelectronics", "amount": 1 }, { - "itemId": "reactor-core-module", + "itemId": "antimatterconverters", "amount": 1 }, { - "itemId": "capacitor-bank-module", + "itemId": "shieldcomponents", "amount": 1 }, { - "itemId": "ion-drive-module", + "itemId": "engineparts", "amount": 1 }, { - "itemId": "ftl-core-module", + "itemId": "engineparts", "amount": 1 }, { - "itemId": "container-bay-module", + "itemId": "hullparts", "amount": 1 } ], @@ -333,39 +333,39 @@ "recipeId": "constructor-construction", "facilityCategory": "station", "requiredModules": [ - "ship-factory" + "module_gen_build_l_01" ], "requirements": [ { - "itemId": "hull-sections", + "itemId": "hullparts", "amount": 42 }, { - "itemId": "command-bridge-module", + "itemId": "advancedelectronics", "amount": 1 }, { - "itemId": "reactor-core-module", + "itemId": "antimatterconverters", "amount": 1 }, { - "itemId": "capacitor-bank-module", + "itemId": "shieldcomponents", "amount": 1 }, { - "itemId": "ion-drive-module", + "itemId": "engineparts", "amount": 1 }, { - "itemId": "ftl-core-module", + "itemId": "engineparts", "amount": 1 }, { - "itemId": "fabricator-array-module", + "itemId": "advancedelectronics", "amount": 1 }, { - "itemId": "container-bay-module", + "itemId": "hullparts", "amount": 1 } ], @@ -399,39 +399,39 @@ "recipeId": "miner-construction", "facilityCategory": "station", "requiredModules": [ - "ship-factory" + "module_gen_build_l_01" ], "requirements": [ { - "itemId": "hull-sections", + "itemId": "hullparts", "amount": 34 }, { - "itemId": "command-bridge-module", + "itemId": "advancedelectronics", "amount": 1 }, { - "itemId": "reactor-core-module", + "itemId": "antimatterconverters", "amount": 1 }, { - "itemId": "capacitor-bank-module", + "itemId": "shieldcomponents", "amount": 1 }, { - "itemId": "ion-drive-module", + "itemId": "engineparts", "amount": 1 }, { - "itemId": "ftl-core-module", + "itemId": "engineparts", "amount": 1 }, { - "itemId": "mining-turret-module", + "itemId": "turretcomponents", "amount": 1 }, { - "itemId": "bulk-bay-module", + "itemId": "hullparts", "amount": 1 } ], diff --git a/shared/data/systems.json b/shared/data/systems.json index 73dbfd7..51662ae 100644 --- a/shared/data/systems.json +++ b/shared/data/systems.json @@ -1,12 +1,359 @@ [ + { + "id": "sol", + "label": "Sol", + "position": [ + 18.2, + 0.02, + -11.8 + ], + "stars": [ + { + "kind": "main-sequence", + "color": "#fff1b8", + "glow": "#ffd35a", + "size": 696340 + } + ], + "asteroidField": { + "decorationCount": 240, + "radiusOffset": 422000000, + "radiusVariance": 180000000, + "heightVariance": 22000000 + }, + "resourceNodes": [ + { + "sourceKind": "asteroid-belt", + "angle": 0.2, + "radiusOffset": 126000, + "inclinationDegrees": 4, + "anchorPlanetIndex": 3, + "oreAmount": 1000, + "itemId": "ore", + "shardCount": 9 + }, + { + "sourceKind": "asteroid-belt", + "angle": 1.8, + "radiusOffset": 148000, + "inclinationDegrees": -6, + "anchorPlanetIndex": 3, + "oreAmount": 1000, + "itemId": "ore", + "shardCount": 9 + }, + { + "sourceKind": "asteroid-belt", + "angle": 3.5, + "radiusOffset": 138000, + "inclinationDegrees": 8, + "anchorPlanetIndex": 4, + "oreAmount": 1000, + "itemId": "ore", + "shardCount": 9 + }, + { + "sourceKind": "asteroid-belt", + "angle": 5.1, + "radiusOffset": 164000, + "inclinationDegrees": -5, + "anchorPlanetIndex": 4, + "oreAmount": 1000, + "itemId": "ore", + "shardCount": 9 + } + ], + "planets": [ + { + "label": "Mercury", + "planetType": "barren", + "shape": "sphere", + "moons": [], + "orbitRadius": 0.3871, + "orbitSpeed": 0.4567, + "orbitEccentricity": 0.2056, + "orbitInclination": 7.0, + "orbitLongitudeOfAscendingNode": 48, + "orbitArgumentOfPeriapsis": 29, + "orbitPhaseAtEpoch": 252, + "size": 2440, + "color": "#b7a08f", + "tilt": 0.03, + "hasRing": false + }, + { + "label": "Venus", + "planetType": "desert", + "shape": "sphere", + "moons": [], + "orbitRadius": 0.7233, + "orbitSpeed": 0.1788, + "orbitEccentricity": 0.0067, + "orbitInclination": 3.4, + "orbitLongitudeOfAscendingNode": 76, + "orbitArgumentOfPeriapsis": 54, + "orbitPhaseAtEpoch": 181, + "size": 6052, + "color": "#d9b38c", + "tilt": 2.64, + "hasRing": false + }, + { + "label": "Earth", + "planetType": "terrestrial", + "shape": "sphere", + "moons": [ + { + "label": "Moon", + "size": 1737, + "color": "#c0bdb7", + "orbitRadius": 384400, + "orbitSpeed": 2.664, + "orbitPhaseAtEpoch": 135, + "orbitInclination": 5.1, + "orbitLongitudeOfAscendingNode": 0 + } + ], + "orbitRadius": 1.0, + "orbitSpeed": 0.11, + "orbitEccentricity": 0.0167, + "orbitInclination": 0.0, + "orbitLongitudeOfAscendingNode": 0, + "orbitArgumentOfPeriapsis": 114, + "orbitPhaseAtEpoch": 100, + "size": 6371, + "color": "#4f84c4", + "tilt": 0.41, + "hasRing": false + }, + { + "label": "Mars", + "planetType": "desert", + "shape": "sphere", + "moons": [ + { + "label": "Phobos", + "size": 11, + "color": "#b0a898", + "orbitRadius": 9376, + "orbitSpeed": 19.84, + "orbitPhaseAtEpoch": 20, + "orbitInclination": 1.1, + "orbitLongitudeOfAscendingNode": 0 + }, + { + "label": "Deimos", + "size": 6, + "color": "#b8b0a4", + "orbitRadius": 23463, + "orbitSpeed": 7.72, + "orbitPhaseAtEpoch": 200, + "orbitInclination": 1.8, + "orbitLongitudeOfAscendingNode": 0 + } + ], + "orbitRadius": 1.5237, + "orbitSpeed": 0.05847, + "orbitEccentricity": 0.0934, + "orbitInclination": 1.85, + "orbitLongitudeOfAscendingNode": 49, + "orbitArgumentOfPeriapsis": 286, + "orbitPhaseAtEpoch": 54, + "size": 3390, + "color": "#c56e52", + "tilt": 0.44, + "hasRing": false + }, + { + "label": "Jupiter", + "planetType": "gas-giant", + "shape": "oblate", + "moons": [ + { + "label": "Io", + "size": 1821, + "color": "#e8c97a", + "orbitRadius": 421800, + "orbitSpeed": 0.8924, + "orbitPhaseAtEpoch": 0, + "orbitInclination": 0.04, + "orbitLongitudeOfAscendingNode": 0 + }, + { + "label": "Europa", + "size": 1561, + "color": "#c8bfa8", + "orbitRadius": 671100, + "orbitSpeed": 0.5567, + "orbitPhaseAtEpoch": 90, + "orbitInclination": 0.47, + "orbitLongitudeOfAscendingNode": 0 + }, + { + "label": "Ganymede", + "size": 2634, + "color": "#a89880", + "orbitRadius": 1070400, + "orbitSpeed": 0.3470, + "orbitPhaseAtEpoch": 180, + "orbitInclination": 0.18, + "orbitLongitudeOfAscendingNode": 0 + }, + { + "label": "Callisto", + "size": 2410, + "color": "#8c8070", + "orbitRadius": 1882700, + "orbitSpeed": 0.1836, + "orbitPhaseAtEpoch": 270, + "orbitInclination": 0.19, + "orbitLongitudeOfAscendingNode": 0 + } + ], + "orbitRadius": 5.203, + "orbitSpeed": 0.009274, + "orbitEccentricity": 0.0489, + "orbitInclination": 1.3, + "orbitLongitudeOfAscendingNode": 100, + "orbitArgumentOfPeriapsis": 275, + "orbitPhaseAtEpoch": 34, + "size": 69911, + "color": "#d9b06f", + "tilt": 0.05, + "hasRing": true + }, + { + "label": "Saturn", + "planetType": "gas-giant", + "shape": "oblate", + "moons": [ + { + "label": "Titan", + "size": 2575, + "color": "#d4a850", + "orbitRadius": 1221900, + "orbitSpeed": 0.2238, + "orbitPhaseAtEpoch": 45, + "orbitInclination": 0.33, + "orbitLongitudeOfAscendingNode": 0 + }, + { + "label": "Enceladus", + "size": 252, + "color": "#e8eef5", + "orbitRadius": 238000, + "orbitSpeed": 0.9328, + "orbitPhaseAtEpoch": 220, + "orbitInclination": 0.02, + "orbitLongitudeOfAscendingNode": 0 + }, + { + "label": "Rhea", + "size": 764, + "color": "#c8c0b0", + "orbitRadius": 527100, + "orbitSpeed": 0.3894, + "orbitPhaseAtEpoch": 130, + "orbitInclination": 0.35, + "orbitLongitudeOfAscendingNode": 0 + } + ], + "orbitRadius": 9.582, + "orbitSpeed": 0.003708, + "orbitEccentricity": 0.0565, + "orbitInclination": 2.49, + "orbitLongitudeOfAscendingNode": 113, + "orbitArgumentOfPeriapsis": 339, + "orbitPhaseAtEpoch": 200, + "size": 58232, + "color": "#dfc27d", + "tilt": 0.47, + "hasRing": true + }, + { + "label": "Uranus", + "planetType": "ice-giant", + "shape": "oblate", + "moons": [ + { + "label": "Titania", + "size": 789, + "color": "#b0b8c0", + "orbitRadius": 435910, + "orbitSpeed": 0.3560, + "orbitPhaseAtEpoch": 60, + "orbitInclination": 0.08, + "orbitLongitudeOfAscendingNode": 0 + }, + { + "label": "Oberon", + "size": 761, + "color": "#a0a8b0", + "orbitRadius": 583520, + "orbitSpeed": 0.2706, + "orbitPhaseAtEpoch": 240, + "orbitInclination": 0.07, + "orbitLongitudeOfAscendingNode": 0 + } + ], + "orbitRadius": 19.201, + "orbitSpeed": 0.001307, + "orbitEccentricity": 0.046, + "orbitInclination": 0.77, + "orbitLongitudeOfAscendingNode": 74, + "orbitArgumentOfPeriapsis": 97, + "orbitPhaseAtEpoch": 130, + "size": 25362, + "color": "#9fd3df", + "tilt": 1.71, + "hasRing": true + }, + { + "label": "Neptune", + "planetType": "ice-giant", + "shape": "oblate", + "moons": [ + { + "label": "Triton", + "size": 1353, + "color": "#b8c8d0", + "orbitRadius": 354800, + "orbitSpeed": -0.4076, + "orbitPhaseAtEpoch": 100, + "orbitInclination": 157, + "orbitLongitudeOfAscendingNode": 0 + } + ], + "orbitRadius": 30.047, + "orbitSpeed": 0.000668, + "orbitEccentricity": 0.009, + "orbitInclination": 1.77, + "orbitLongitudeOfAscendingNode": 132, + "orbitArgumentOfPeriapsis": 273, + "orbitPhaseAtEpoch": 256, + "size": 24622, + "color": "#4c79c9", + "tilt": 0.49, + "hasRing": true + } + ] + }, { "id": "helios", "label": "Helios Reach", - "position": [0, 0, 0], - "starColor": "#ffd27a", - "starGlow": "#ffb14a", - "starSize": 720000, - "gravityWellRadius": 210, + "position": [ + 0, + 0, + 0 + ], + "stars": [ + { + "kind": "main-sequence", + "color": "#ffd27a", + "glow": "#ffb14a", + "size": 720000 + } + ], "asteroidField": { "decorationCount": 180, "radiusOffset": 330000, @@ -15,20 +362,57 @@ }, "resourceNodes": [], "planets": [ - { "label": "Icarus", "orbitRadius": 0.36, "orbitSpeed": 0.5093, "size": 4200, "color": "#d4a373", "tilt": 0.2 }, - { "label": "Viridia", "orbitRadius": 0.60, "orbitSpeed": 0.2366, "size": 6200, "color": "#58a36c", "tilt": -0.4 }, - { "label": "Aster", "orbitRadius": 0.92, "orbitSpeed": 0.1246, "size": 7800, "color": "#6ea7d4", "tilt": 0.3, "hasRing": true }, - { "label": "Noctis", "orbitRadius": 1.34, "orbitSpeed": 0.0710, "size": 11200, "color": "#6958a8", "tilt": -0.15 } + { + "label": "Icarus", + "orbitRadius": 0.36, + "orbitSpeed": 0.5093, + "size": 4200, + "color": "#d4a373", + "tilt": 0.2 + }, + { + "label": "Viridia", + "orbitRadius": 0.60, + "orbitSpeed": 0.2366, + "size": 6200, + "color": "#58a36c", + "tilt": -0.4 + }, + { + "label": "Aster", + "orbitRadius": 0.92, + "orbitSpeed": 0.1246, + "size": 7800, + "color": "#6ea7d4", + "tilt": 0.3, + "hasRing": true + }, + { + "label": "Noctis", + "orbitRadius": 1.34, + "orbitSpeed": 0.0710, + "size": 11200, + "color": "#6958a8", + "tilt": -0.15 + } ] }, { "id": "perseus", "label": "Perseus Gate", - "position": [4.4, 0, 0.62], - "starColor": "#9dc6ff", - "starGlow": "#66a0ff", - "starSize": 930000, - "gravityWellRadius": 230, + "position": [ + 4.4, + 0, + 0.62 + ], + "stars": [ + { + "kind": "blue-white", + "color": "#9dc6ff", + "glow": "#66a0ff", + "size": 930000 + } + ], "asteroidField": { "decorationCount": 180, "radiusOffset": 330000, @@ -36,14 +420,54 @@ "heightVariance": 18000 }, "resourceNodes": [ - { "angle": 0.45, "radiusOffset": 180000, "oreAmount": 3000, "itemId": "ore", "shardCount": 7 }, - { "angle": 2.544395102, "radiusOffset": 180000, "oreAmount": 3000, "itemId": "ore", "shardCount": 7 }, - { "angle": 4.638790205, "radiusOffset": 180000, "oreAmount": 3000, "itemId": "ore", "shardCount": 7 } + { + "angle": 0.45, + "radiusOffset": 180000, + "oreAmount": 3000, + "itemId": "ore", + "shardCount": 7 + }, + { + "angle": 2.544395102, + "radiusOffset": 180000, + "oreAmount": 3000, + "itemId": "ore", + "shardCount": 7 + }, + { + "angle": 4.638790205, + "radiusOffset": 180000, + "oreAmount": 3000, + "itemId": "ore", + "shardCount": 7 + } ], "planets": [ - { "label": "Talos", "orbitRadius": 0.40, "orbitSpeed": 0.4348, "size": 5000, "color": "#c48f6a", "tilt": 0.18 }, - { "label": "Cygnus", "orbitRadius": 0.72, "orbitSpeed": 0.1800, "size": 6900, "color": "#4f84c4", "tilt": -0.22, "hasRing": true }, - { "label": "Rhea", "orbitRadius": 1.08, "orbitSpeed": 0.0981, "size": 9600, "color": "#8f8fb0", "tilt": 0.08 } + { + "label": "Talos", + "orbitRadius": 0.40, + "orbitSpeed": 0.4348, + "size": 5000, + "color": "#c48f6a", + "tilt": 0.18 + }, + { + "label": "Cygnus", + "orbitRadius": 0.72, + "orbitSpeed": 0.1800, + "size": 6900, + "color": "#4f84c4", + "tilt": -0.22, + "hasRing": true + }, + { + "label": "Rhea", + "orbitRadius": 1.08, + "orbitSpeed": 0.0981, + "size": 9600, + "color": "#8f8fb0", + "tilt": 0.08 + } ] } ]