From 85483319fe86ca14c41ad3bcebbc7b15a5549d9f Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Wed, 23 Jun 2021 04:25:23 +0100 Subject: [PATCH] Modular Database Upgrade CultCache API can now be configured with multiple interchangeable backing stores. Will be using plain JSON in repository from now on. --- Assets/Materials/Fog Marching.mat | 6 +- Assets/Materials/UI/Map Gravity Lines.mat | 2 +- Assets/Scenes/ARPG.unity | 16 +- .../CultCache/Editor/AetheriaDatabaseView.cs | 2 +- .../CultCache/Editor/DatabaseInspector.cs | 3 +- .../Scripts/CultCache/Editor/DatabaseView.cs | 36 +- Assets/Scripts/Gameplay/ActionGameManager.cs | 9 +- Assets/Scripts/ServerShared/Corporations.cs | 2 +- .../ServerShared/CultCache/Attributes.cs | 4 +- .../CultCache/CollectionExtensions.cs | 9 + .../ServerShared/CultCache/CultCache.cs | 590 ++++++++++++++---- .../CultCache/RethinkConnection.cs | 113 ---- .../Serialization/RegisterResolver.cs | 15 + Assets/Scripts/ServerShared/Entity.cs | 2 + .../ServerShared/Narrative/StoryProcessor.cs | 6 +- GameData/AetherDB.msgpack | 4 +- GameData/CargoBayData/SafeStuff II.json | 1 + .../Store-All Enterprise Edition.json | 1 + .../CargoBayData/Store-All Plus Mini.json | 1 + GameData/CargoBayData/Store-All Plus.json | 1 + GameData/CompoundCommodityData/AI Pilot.json | 1 + .../All-Surface Stylus.json | 1 + .../Antireflective Coating.json | 1 + .../Ballistic Powder.json | 1 + .../CompoundCommodityData/Big Red Button.json | 1 + GameData/CompoundCommodityData/Cargo Pod.json | 1 + .../CompoundCommodityData/Circuit Board.json | 1 + GameData/CompoundCommodityData/Cockpit.json | 1 + .../Construction Rebar.json | 1 + .../Crash Test Dummy.json | 1 + .../Daily Feed Ad Slot (5ms).json | 1 + .../Dashboard Ornament.json | 1 + GameData/CompoundCommodityData/Dials.json | 1 + GameData/CompoundCommodityData/Diamond.json | 1 + ...mergency Personal Life Support System.json | 1 + GameData/CompoundCommodityData/Fuel.json | 1 + .../CompoundCommodityData/Geiger Counter.json | 1 + GameData/CompoundCommodityData/Hat.json | 1 + .../CompoundCommodityData/Heat Sink Tile.json | 1 + GameData/CompoundCommodityData/Helmet.json | 1 + GameData/CompoundCommodityData/Holo-desk.json | 1 + .../Inertial Compensating Seatbelt.json | 1 + .../CompoundCommodityData/Insulation.json | 1 + GameData/CompoundCommodityData/Joystick.json | 1 + GameData/CompoundCommodityData/Knife.json | 1 + .../CompoundCommodityData/Local Newscast.json | 1 + .../Magnetic EVA Boots.json | 1 + .../Memory Download.json | 1 + .../CompoundCommodityData/Mining Rights.json | 1 + .../Moo-ed Lighting.json | 1 + .../Mouth Adapting Gummy Molars.json | 1 + .../CompoundCommodityData/Neural Lace.json | 1 + .../Paparazzi Drone.json | 1 + .../Reaction Chamber.json | 1 + GameData/CompoundCommodityData/Rope.json | 1 + .../CompoundCommodityData/Safety Goggles.json | 1 + .../Secret Storage Compartment.json | 1 + .../CompoundCommodityData/Sheet Metal.json | 1 + .../CompoundCommodityData/Ship Decal.json | 1 + GameData/CompoundCommodityData/Ship Fins.json | 1 + GameData/CompoundCommodityData/SpaceCast.json | 1 + GameData/CompoundCommodityData/Spacesuit.json | 1 + .../Spacewalking Boots.json | 1 + .../Stealth Coating.json | 1 + .../Super Tough Toffee.json | 1 + .../CompoundCommodityData/Support Strut.json | 1 + .../Sure Bet Sherbet Fountain.json | 1 + .../CompoundCommodityData/Travel Permit.json | 1 + GameData/CompoundCommodityData/Trigger.json | 1 + GameData/CompoundCommodityData/Trousers.json | 1 + .../Universal Translator.json | 1 + .../DockingBayData/Medium Docking Bay.json | 1 + GameData/Faction/Adrasteia.json | 1 + GameData/Faction/Aeronautics Unlimited.json | 1 + GameData/Faction/Alakrita.json | 1 + GameData/Faction/Death Monkey Explosives.json | 1 + GameData/Faction/Ewan Hart Inc.json | 1 + GameData/Faction/Finch Cybernetics.json | 1 + GameData/Faction/Lightsail Express.json | 1 + GameData/Faction/Lucent Media.json | 1 + ...Miss Terri’s Sugariffic Snack Company.json | 1 + GameData/Faction/NiteLife Energy.json | 1 + GameData/Faction/Rossum & Douglas.json | 1 + GameData/Faction/Zhestokost.json | 1 + GameData/GearData/Arctica.json | 1 + GameData/GearData/Assembly Line.json | 1 + GameData/GearData/Cockpit 2x2.json | 1 + GameData/GearData/Core Power.json | 1 + GameData/GearData/Deep Ore Extractor.json | 1 + .../Industrial Thermostatic Heater.json | 1 + GameData/GearData/Large Drive.json | 1 + GameData/GearData/Long Radiator.json | 1 + GameData/GearData/Manhattan.json | 1 + GameData/GearData/MoveOnPro.json | 1 + GameData/GearData/Notorious.json | 1 + GameData/GearData/OK Disperser.json | 1 + GameData/GearData/PotaT+-.json | 1 + GameData/GearData/Refinery.json | 1 + GameData/GearData/Shipyard.json | 1 + GameData/GearData/Small Radiator.json | 1 + GameData/GearData/Surface Ore Extractor.json | 1 + GameData/GearData/The Bat.json | 1 + GameData/GearData/Traction.json | 1 + GameData/GearData/Tractor Beam.json | 1 + GameData/GearData/Turret Control Module.json | 1 + GameData/GearData/Vulcan.json | 1 + GameData/GearData/cold like my heart.json | 1 + GameData/GearData/deep space burnout.json | 1 + GameData/GearData/not if i see you first.json | 1 + GameData/HullData/LonginusX.json | 1 + GameData/HullData/Turret.json | 1 + ...25f5a6ba5f33.msgpack => Australia.msgpack} | 0 ...a4e-f7e661850787.msgpack => Congo.msgpack} | 0 ...3-bae707469e7c.msgpack => Germany.msgpack} | 0 ...fff-deb3eb5872e9.msgpack => India.msgpack} | 0 ...be4d-442f72382721.msgpack => Iran.msgpack} | 0 ...1bb-e1d71f39b696.msgpack => Japan.msgpack} | 0 ...86-7bcef44f780c.msgpack => Mexico.msgpack} | 0 ...23-58f197af51b9.msgpack => Russia.msgpack} | 0 ...c-2486185f9064.msgpack => Swahili.msgpack} | 0 ...-c267c58f2855.msgpack => Thailand.msgpack} | 0 ...-9f5d-c1b9e69d356d.msgpack => USA.msgpack} | 0 ...-7f02ff7372c3.msgpack => pleiades.msgpack} | 0 .../PersonalityAttribute/Agreeableness.json | 1 + .../PersonalityAttribute/Extraversion.json | 1 + GameData/PersonalityAttribute/Openness.json | 1 + GameData/PlayerSettings.msgpack | 4 +- GameData/SimpleCommodityData/Algae.json | 1 + .../SimpleCommodityData/Animal Products.json | 1 + .../SimpleCommodityData/Autocannon Ammo.json | 1 + GameData/SimpleCommodityData/Bacteria.json | 1 + GameData/SimpleCommodityData/Fungi.json | 1 + GameData/SimpleCommodityData/Gold.json | 1 + GameData/SimpleCommodityData/Hydrogen.json | 1 + GameData/SimpleCommodityData/Methane.json | 1 + GameData/SimpleCommodityData/New Metals.json | 1 + GameData/SimpleCommodityData/Potassium.json | 1 + GameData/SimpleCommodityData/Rock.json | 1 + GameData/SimpleCommodityData/Uranium.json | 1 + GameData/SimpleCommodityData/Water.json | 1 + GameData/WeaponItemData/6k Shooter.json | 1 + GameData/WeaponItemData/Autocannon.json | 1 + .../CShot RainbowLite Lazer.json | 1 + GameData/WeaponItemData/ChargeBlast SG.json | 1 + GameData/WeaponItemData/ChargeBlast+-.json | 1 + GameData/WeaponItemData/ClearPath.json | 1 + GameData/WeaponItemData/ColdFire.json | 1 + GameData/WeaponItemData/DeathCluster.json | 1 + GameData/WeaponItemData/Earp.json | 1 + GameData/WeaponItemData/FastBlast+-.json | 1 + GameData/WeaponItemData/GT 3K.json | 1 + GameData/WeaponItemData/LRMM72.json | 1 + GameData/WeaponItemData/SRMM72.json | 1 + GameData/WeaponItemData/Spectra.json | 1 + GameData/WeaponItemData/plight.json | 1 + .../pretty pretty bang bang.json | 1 + GameData/WeaponItemData/pswarm.json | 1 + .../WeaponItemData/scorched void policy.json | 1 + 158 files changed, 660 insertions(+), 292 deletions(-) create mode 100644 GameData/CargoBayData/SafeStuff II.json create mode 100644 GameData/CargoBayData/Store-All Enterprise Edition.json create mode 100644 GameData/CargoBayData/Store-All Plus Mini.json create mode 100644 GameData/CargoBayData/Store-All Plus.json create mode 100644 GameData/CompoundCommodityData/AI Pilot.json create mode 100644 GameData/CompoundCommodityData/All-Surface Stylus.json create mode 100644 GameData/CompoundCommodityData/Antireflective Coating.json create mode 100644 GameData/CompoundCommodityData/Ballistic Powder.json create mode 100644 GameData/CompoundCommodityData/Big Red Button.json create mode 100644 GameData/CompoundCommodityData/Cargo Pod.json create mode 100644 GameData/CompoundCommodityData/Circuit Board.json create mode 100644 GameData/CompoundCommodityData/Cockpit.json create mode 100644 GameData/CompoundCommodityData/Construction Rebar.json create mode 100644 GameData/CompoundCommodityData/Crash Test Dummy.json create mode 100644 GameData/CompoundCommodityData/Daily Feed Ad Slot (5ms).json create mode 100644 GameData/CompoundCommodityData/Dashboard Ornament.json create mode 100644 GameData/CompoundCommodityData/Dials.json create mode 100644 GameData/CompoundCommodityData/Diamond.json create mode 100644 GameData/CompoundCommodityData/Emergency Personal Life Support System.json create mode 100644 GameData/CompoundCommodityData/Fuel.json create mode 100644 GameData/CompoundCommodityData/Geiger Counter.json create mode 100644 GameData/CompoundCommodityData/Hat.json create mode 100644 GameData/CompoundCommodityData/Heat Sink Tile.json create mode 100644 GameData/CompoundCommodityData/Helmet.json create mode 100644 GameData/CompoundCommodityData/Holo-desk.json create mode 100644 GameData/CompoundCommodityData/Inertial Compensating Seatbelt.json create mode 100644 GameData/CompoundCommodityData/Insulation.json create mode 100644 GameData/CompoundCommodityData/Joystick.json create mode 100644 GameData/CompoundCommodityData/Knife.json create mode 100644 GameData/CompoundCommodityData/Local Newscast.json create mode 100644 GameData/CompoundCommodityData/Magnetic EVA Boots.json create mode 100644 GameData/CompoundCommodityData/Memory Download.json create mode 100644 GameData/CompoundCommodityData/Mining Rights.json create mode 100644 GameData/CompoundCommodityData/Moo-ed Lighting.json create mode 100644 GameData/CompoundCommodityData/Mouth Adapting Gummy Molars.json create mode 100644 GameData/CompoundCommodityData/Neural Lace.json create mode 100644 GameData/CompoundCommodityData/Paparazzi Drone.json create mode 100644 GameData/CompoundCommodityData/Reaction Chamber.json create mode 100644 GameData/CompoundCommodityData/Rope.json create mode 100644 GameData/CompoundCommodityData/Safety Goggles.json create mode 100644 GameData/CompoundCommodityData/Secret Storage Compartment.json create mode 100644 GameData/CompoundCommodityData/Sheet Metal.json create mode 100644 GameData/CompoundCommodityData/Ship Decal.json create mode 100644 GameData/CompoundCommodityData/Ship Fins.json create mode 100644 GameData/CompoundCommodityData/SpaceCast.json create mode 100644 GameData/CompoundCommodityData/Spacesuit.json create mode 100644 GameData/CompoundCommodityData/Spacewalking Boots.json create mode 100644 GameData/CompoundCommodityData/Stealth Coating.json create mode 100644 GameData/CompoundCommodityData/Super Tough Toffee.json create mode 100644 GameData/CompoundCommodityData/Support Strut.json create mode 100644 GameData/CompoundCommodityData/Sure Bet Sherbet Fountain.json create mode 100644 GameData/CompoundCommodityData/Travel Permit.json create mode 100644 GameData/CompoundCommodityData/Trigger.json create mode 100644 GameData/CompoundCommodityData/Trousers.json create mode 100644 GameData/CompoundCommodityData/Universal Translator.json create mode 100644 GameData/DockingBayData/Medium Docking Bay.json create mode 100644 GameData/Faction/Adrasteia.json create mode 100644 GameData/Faction/Aeronautics Unlimited.json create mode 100644 GameData/Faction/Alakrita.json create mode 100644 GameData/Faction/Death Monkey Explosives.json create mode 100644 GameData/Faction/Ewan Hart Inc.json create mode 100644 GameData/Faction/Finch Cybernetics.json create mode 100644 GameData/Faction/Lightsail Express.json create mode 100644 GameData/Faction/Lucent Media.json create mode 100644 GameData/Faction/Miss Terri’s Sugariffic Snack Company.json create mode 100644 GameData/Faction/NiteLife Energy.json create mode 100644 GameData/Faction/Rossum & Douglas.json create mode 100644 GameData/Faction/Zhestokost.json create mode 100644 GameData/GearData/Arctica.json create mode 100644 GameData/GearData/Assembly Line.json create mode 100644 GameData/GearData/Cockpit 2x2.json create mode 100644 GameData/GearData/Core Power.json create mode 100644 GameData/GearData/Deep Ore Extractor.json create mode 100644 GameData/GearData/Industrial Thermostatic Heater.json create mode 100644 GameData/GearData/Large Drive.json create mode 100644 GameData/GearData/Long Radiator.json create mode 100644 GameData/GearData/Manhattan.json create mode 100644 GameData/GearData/MoveOnPro.json create mode 100644 GameData/GearData/Notorious.json create mode 100644 GameData/GearData/OK Disperser.json create mode 100644 GameData/GearData/PotaT+-.json create mode 100644 GameData/GearData/Refinery.json create mode 100644 GameData/GearData/Shipyard.json create mode 100644 GameData/GearData/Small Radiator.json create mode 100644 GameData/GearData/Surface Ore Extractor.json create mode 100644 GameData/GearData/The Bat.json create mode 100644 GameData/GearData/Traction.json create mode 100644 GameData/GearData/Tractor Beam.json create mode 100644 GameData/GearData/Turret Control Module.json create mode 100644 GameData/GearData/Vulcan.json create mode 100644 GameData/GearData/cold like my heart.json create mode 100644 GameData/GearData/deep space burnout.json create mode 100644 GameData/GearData/not if i see you first.json create mode 100644 GameData/HullData/LonginusX.json create mode 100644 GameData/HullData/Turret.json rename GameData/NameFile/{8af167f7-2ac7-4cba-b204-25f5a6ba5f33.msgpack => Australia.msgpack} (100%) rename GameData/NameFile/{35f90a4b-460c-416c-9a4e-f7e661850787.msgpack => Congo.msgpack} (100%) rename GameData/NameFile/{dfb8e9b0-31cd-4ff9-b6f3-bae707469e7c.msgpack => Germany.msgpack} (100%) rename GameData/NameFile/{95c298ae-d7b4-4481-9fff-deb3eb5872e9.msgpack => India.msgpack} (100%) rename GameData/NameFile/{ecffecc1-d0b9-4014-be4d-442f72382721.msgpack => Iran.msgpack} (100%) rename GameData/NameFile/{43872e8e-df2f-4e03-81bb-e1d71f39b696.msgpack => Japan.msgpack} (100%) rename GameData/NameFile/{350eac1f-ecca-4439-9a86-7bcef44f780c.msgpack => Mexico.msgpack} (100%) rename GameData/NameFile/{5fb6de6e-616e-478c-9323-58f197af51b9.msgpack => Russia.msgpack} (100%) rename GameData/NameFile/{fc790c9c-8b47-4519-8f2c-2486185f9064.msgpack => Swahili.msgpack} (100%) rename GameData/NameFile/{d0959e52-7726-4510-bdaa-c267c58f2855.msgpack => Thailand.msgpack} (100%) rename GameData/NameFile/{cfbb1969-2a8c-40dd-9f5d-c1b9e69d356d.msgpack => USA.msgpack} (100%) rename GameData/NameFile/{86257ba5-2c68-4b6f-a269-7f02ff7372c3.msgpack => pleiades.msgpack} (100%) create mode 100644 GameData/PersonalityAttribute/Agreeableness.json create mode 100644 GameData/PersonalityAttribute/Extraversion.json create mode 100644 GameData/PersonalityAttribute/Openness.json create mode 100644 GameData/SimpleCommodityData/Algae.json create mode 100644 GameData/SimpleCommodityData/Animal Products.json create mode 100644 GameData/SimpleCommodityData/Autocannon Ammo.json create mode 100644 GameData/SimpleCommodityData/Bacteria.json create mode 100644 GameData/SimpleCommodityData/Fungi.json create mode 100644 GameData/SimpleCommodityData/Gold.json create mode 100644 GameData/SimpleCommodityData/Hydrogen.json create mode 100644 GameData/SimpleCommodityData/Methane.json create mode 100644 GameData/SimpleCommodityData/New Metals.json create mode 100644 GameData/SimpleCommodityData/Potassium.json create mode 100644 GameData/SimpleCommodityData/Rock.json create mode 100644 GameData/SimpleCommodityData/Uranium.json create mode 100644 GameData/SimpleCommodityData/Water.json create mode 100644 GameData/WeaponItemData/6k Shooter.json create mode 100644 GameData/WeaponItemData/Autocannon.json create mode 100644 GameData/WeaponItemData/CShot RainbowLite Lazer.json create mode 100644 GameData/WeaponItemData/ChargeBlast SG.json create mode 100644 GameData/WeaponItemData/ChargeBlast+-.json create mode 100644 GameData/WeaponItemData/ClearPath.json create mode 100644 GameData/WeaponItemData/ColdFire.json create mode 100644 GameData/WeaponItemData/DeathCluster.json create mode 100644 GameData/WeaponItemData/Earp.json create mode 100644 GameData/WeaponItemData/FastBlast+-.json create mode 100644 GameData/WeaponItemData/GT 3K.json create mode 100644 GameData/WeaponItemData/LRMM72.json create mode 100644 GameData/WeaponItemData/SRMM72.json create mode 100644 GameData/WeaponItemData/Spectra.json create mode 100644 GameData/WeaponItemData/plight.json create mode 100644 GameData/WeaponItemData/pretty pretty bang bang.json create mode 100644 GameData/WeaponItemData/pswarm.json create mode 100644 GameData/WeaponItemData/scorched void policy.json diff --git a/Assets/Materials/Fog Marching.mat b/Assets/Materials/Fog Marching.mat index ea8595788..52dc13c19 100644 --- a/Assets/Materials/Fog Marching.mat +++ b/Assets/Materials/Fog Marching.mat @@ -59,12 +59,12 @@ Material: - _AlphaFloor: 0.01 - _DepthBlend: 512 - _DepthCeiling: 4096 - - _Exposure: 2 + - _Exposure: 10 - _FlowAmplitude: 512 - _FlowScale: 1024 - _FlowScroll: 0 - _FlowSpeed: 1 - - _Gamma: 0.5 + - _Gamma: 0.3 - _GridCeilingBlend: -300 - _GridCeilingDensity: 0.01 - _GridCeilingFollow: 0 @@ -91,7 +91,7 @@ Material: - _ScatteringDistExponent: 1.5 - _ScatteringMinDist: 10 - _StepExponent: 2 - - _TintExponent: 1.2 + - _TintExponent: 2 - _TurbulenceAmplitude: 20 - _TurbulenceScale: 60 m_Colors: diff --git a/Assets/Materials/UI/Map Gravity Lines.mat b/Assets/Materials/UI/Map Gravity Lines.mat index a17a560ad..8252c5c27 100644 --- a/Assets/Materials/UI/Map Gravity Lines.mat +++ b/Assets/Materials/UI/Map Gravity Lines.mat @@ -86,7 +86,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Scale: 1.6688799 + - _Scale: 12.242577 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 diff --git a/Assets/Scenes/ARPG.unity b/Assets/Scenes/ARPG.unity index ab8f8982c..1bb1960a0 100644 --- a/Assets/Scenes/ARPG.unity +++ b/Assets/Scenes/ARPG.unity @@ -23731,12 +23731,12 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -23751,12 +23751,12 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.x - value: 55.675 + value: 0 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.y - value: -16 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1713457305180270767, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -24943,12 +24943,12 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -24963,12 +24963,12 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.x - value: 60.98 + value: 0 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.y - value: -16 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1713457305180270767, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} diff --git a/Assets/Scripts/CultCache/Editor/AetheriaDatabaseView.cs b/Assets/Scripts/CultCache/Editor/AetheriaDatabaseView.cs index 51df01573..9a609b371 100644 --- a/Assets/Scripts/CultCache/Editor/AetheriaDatabaseView.cs +++ b/Assets/Scripts/CultCache/Editor/AetheriaDatabaseView.cs @@ -18,7 +18,7 @@ public class AetheriaDatabaseView : DatabaseListView protected override string DatabaseName => "Aetheria"; - protected override string FilePath => Path.Combine(new DirectoryInfo(Application.dataPath).Parent.CreateSubdirectory("GameData").FullName, "AetherDB.msgpack"); + protected override string FilePath => new DirectoryInfo(Application.dataPath).Parent.CreateSubdirectory("GameData").FullName; protected override DatabaseEntryGroup[] Groupers => new DatabaseEntryGroup[] { diff --git a/Assets/Scripts/CultCache/Editor/DatabaseInspector.cs b/Assets/Scripts/CultCache/Editor/DatabaseInspector.cs index a4508c53a..0ea16b439 100644 --- a/Assets/Scripts/CultCache/Editor/DatabaseInspector.cs +++ b/Assets/Scripts/CultCache/Editor/DatabaseInspector.cs @@ -44,8 +44,7 @@ public class DatabaseInspector : EditorWindow void OnEnable() { _instance = this; - CultCache.OnDataUpdateLocal += _ => Repaint(); - CultCache.OnDataUpdateRemote += _ => EditorDispatcher.Dispatch(Repaint); + CultCache.OnUpdate += (_,__) => EditorDispatcher.Dispatch(Repaint); wantsMouseMove = true; _warning = new GUIStyle(EditorStyles.boldLabel); _warning.normal.textColor = Color.red; diff --git a/Assets/Scripts/CultCache/Editor/DatabaseView.cs b/Assets/Scripts/CultCache/Editor/DatabaseView.cs index 1543405c8..407d0ff1c 100644 --- a/Assets/Scripts/CultCache/Editor/DatabaseView.cs +++ b/Assets/Scripts/CultCache/Editor/DatabaseView.cs @@ -96,6 +96,8 @@ public abstract class DatabaseListView : EditorWindow public Color LabelColor => EditorGUIUtility.isProSkin ? Color.white : Color.black; private bool _listItemStyle; + private SingleFileMessagePackBackingStore _msgPackStore; + private MultiFileJsonBackingStore _jsonStore; public GUIStyle ListItemStyle => (_listItemStyle = !_listItemStyle) ? ListStyleEven : ListStyleOdd; void OnEnable() @@ -110,16 +112,16 @@ public abstract class DatabaseListView : EditorWindow normal = {background = EditorGUIUtility.isProSkin ? Color.Lerp(XKCDColors.DarkGrey,Color.black,.5f).ToTexture() : Color.Lerp(XKCDColors.LightGrey,Color.white,.5f).ToTexture()}, margin = new RectOffset(0, 0, 0, 0) }; - - cultCache = new CultCache(FilePath); - - cultCache.OnDataUpdateLocal += _ => Repaint(); - cultCache.OnDataInsertLocal += _ => Repaint(); - cultCache.OnDataRemoveLocal += _ => Repaint(); - cultCache.OnDataUpdateRemote += _ => EditorDispatcher.Dispatch(Repaint); - cultCache.OnDataInsertRemote += _ => EditorDispatcher.Dispatch(Repaint); - cultCache.OnDataRemoveRemote += _ => EditorDispatcher.Dispatch(Repaint); + _jsonStore = new MultiFileJsonBackingStore(FilePath); + _msgPackStore = new SingleFileMessagePackBackingStore(Path.Combine(FilePath, "AetherDB.msgpack")); + cultCache = new CultCache(); + cultCache.AddBackingStore(_jsonStore); + cultCache.AddBackingStore(_msgPackStore); + cultCache.AddBackingStore(new MultiFileMessagePackBackingStore(FilePath), typeof(NameFile)); + cultCache.PullAllBackingStores(); + + cultCache.OnUpdate += (_,__) => EditorDispatcher.Dispatch(Repaint); DatabaseInspector.CultCache = cultCache; _inspector = DatabaseInspector.Instance; _inspector.Show(); @@ -128,8 +130,7 @@ public abstract class DatabaseListView : EditorWindow .Where(t => t.GetCustomAttribute() != null && t.GetCustomAttribute() != null).ToArray(); _tables = typeof(DatabaseEntry).GetAllChildClasses() .Where(t => t.GetCustomAttribute() != null && t.GetCustomAttribute() == null) - .GroupBy(t=>t.GetCustomAttribute()?.TableName ?? - (t.GetCustomAttribute() != null ? "External" : "Default")) + .GroupBy(t=>t.GetCustomAttribute()?.TableName ?? "Default") .ToDictionary(group=>group.Key, group=> (false, group.Select(t=>(t, false)).ToArray())); if (EditorPrefs.HasKey("RethinkDB.URL")) @@ -170,17 +171,18 @@ public abstract class DatabaseListView : EditorWindow } using (new HorizontalScope()) { + GUILayout.Label("Export"); //_fileName = TextField(_fileName); - if (GUILayout.Button("Save")) + if (GUILayout.Button("JSON")) { - cultCache.Save(); - Debug.Log("Local DB Cache Saved!"); + _jsonStore.PushAll(); + Debug.Log("Exported DB to JSON!"); } - if (GUILayout.Button("Load")) + if (GUILayout.Button("MsgPack")) { - cultCache.Load(); - Debug.Log("Loaded DB From Local Cache!"); + _msgPackStore.PushAll(); + Debug.Log("Exported DB to MessagePack!"); } } diff --git a/Assets/Scripts/Gameplay/ActionGameManager.cs b/Assets/Scripts/Gameplay/ActionGameManager.cs index ce2be4be6..07cd74184 100644 --- a/Assets/Scripts/Gameplay/ActionGameManager.cs +++ b/Assets/Scripts/Gameplay/ActionGameManager.cs @@ -84,8 +84,13 @@ public class ActionGameManager : MonoBehaviour { if (_cultCache != null) return _cultCache; - _cultCache = new CultCache(Path.Combine(GameDataDirectory.FullName, "AetherDB.msgpack")); - _cultCache.Load(); + _cultCache = new CultCache(); + _cultCache.AddBackingStore(new MultiFileJsonBackingStore(GameDataDirectory.FullName)); + _cultCache.AddBackingStore( + new SingleFileMessagePackBackingStore(Path.Combine(GameDataDirectory.FullName, "AetherDB.msgpack"))); + // _cultCache.AddBackingStore( + // new MultiFileMessagePackBackingStore(GameDataDirectory.FullName), typeof(NameFile)); + _cultCache.PullAllBackingStores(); return _cultCache; } diff --git a/Assets/Scripts/ServerShared/Corporations.cs b/Assets/Scripts/ServerShared/Corporations.cs index f84262a62..a5c1685dd 100644 --- a/Assets/Scripts/ServerShared/Corporations.cs +++ b/Assets/Scripts/ServerShared/Corporations.cs @@ -64,7 +64,7 @@ public class Faction : DatabaseEntry, INamedEntry } } -[Inspectable, MessagePackObject, ExternalEntry] +[Inspectable, MessagePackObject] public class NameFile : DatabaseEntry, INamedEntry { [Key(1)] public string Name; diff --git a/Assets/Scripts/ServerShared/CultCache/Attributes.cs b/Assets/Scripts/ServerShared/CultCache/Attributes.cs index 9988256ef..c28eb8265 100644 --- a/Assets/Scripts/ServerShared/CultCache/Attributes.cs +++ b/Assets/Scripts/ServerShared/CultCache/Attributes.cs @@ -3,8 +3,8 @@ using System; [AttributeUsage(AttributeTargets.Class)] public class GlobalSettingsAttribute : Attribute { } -[AttributeUsage(AttributeTargets.Class)] -public class ExternalEntryAttribute : Attribute { } +// [AttributeUsage(AttributeTargets.Class)] +// public class ExternalEntryAttribute : Attribute { } [AttributeUsage(AttributeTargets.All, Inherited = false)] public class InspectableAttribute : Attribute { } diff --git a/Assets/Scripts/ServerShared/CultCache/CollectionExtensions.cs b/Assets/Scripts/ServerShared/CultCache/CollectionExtensions.cs index d027ea2d0..ebb949302 100644 --- a/Assets/Scripts/ServerShared/CultCache/CollectionExtensions.cs +++ b/Assets/Scripts/ServerShared/CultCache/CollectionExtensions.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; +using System.Threading.Tasks; public static class CollectionExtensions { @@ -64,4 +65,12 @@ public static class CollectionExtensions return maxItem; } +} + +public static class AsyncAwaitExtensions +{ + public static async void WrapAwait(this Task task) + { + await task; + } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/CultCache/CultCache.cs b/Assets/Scripts/ServerShared/CultCache/CultCache.cs index d1264d2fa..2931dd6b5 100644 --- a/Assets/Scripts/ServerShared/CultCache/CultCache.cs +++ b/Assets/Scripts/ServerShared/CultCache/CultCache.cs @@ -3,85 +3,64 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ using System; +using System.Buffers.Text; using System.Collections; using System.Collections.Generic; using System.IO; using System.Linq; using System.Reflection; +using System.Text; +using System.Threading.Tasks; using MessagePack; +using Newtonsoft.Json; +using RethinkDb.Driver; +using RethinkDb.Driver.Net; +using UniRx; public class CultCache { - public event Action OnDataInsertLocal; - public event Action OnDataUpdateLocal; - public event Action OnDataRemoveLocal; - public event Action OnDataInsertRemote; - public event Action OnDataUpdateRemote; - public event Action OnDataRemoveRemote; private readonly object addLock = new object(); //public Action Logger = Console.WriteLine; - private string _filePath; + //private string _filePath; + + public event Action OnUpdate; + + private List _backingStores = new List(); + + private readonly Dictionary _typeStores = new Dictionary(); + private readonly Dictionary _storeTypes = new Dictionary(); private readonly Dictionary _entries = new Dictionary(); private readonly Dictionary _globals = new Dictionary(); private readonly Dictionary> _types = new Dictionary>(); - private readonly Dictionary entries)> _externalTypes = new Dictionary entries)>(); + // private readonly Dictionary entries)> _externalTypes = new Dictionary entries)>(); - private class ExternalEntry - { - public string FilePath; - public DatabaseEntry Entry; - - public ExternalEntry(string filePath, DatabaseEntry entry) - { - FilePath = filePath; - Entry = entry; - } - } - private readonly Dictionary _externalEntries = new Dictionary(); - private readonly Dictionary _linkFields = new Dictionary(); + // private class ExternalEntry + // { + // public string FilePath; + // public DatabaseEntry Entry; + // + // public ExternalEntry(string filePath, DatabaseEntry entry) + // { + // FilePath = filePath; + // Entry = entry; + // } + // } + // private readonly Dictionary _externalEntries = new Dictionary(); public IEnumerable AllEntries => _entries.Values; - public CultCache(string filePath) + public CultCache() { DatabaseLinkBase.Cache = this; - RegisterResolver.Register(); - _filePath = filePath; - var fileInfo = new FileInfo(filePath); - var dataDirectory = fileInfo.Directory; - // Entry types can be marked external - // External entries are stored individually and loaded on demand - // This is mainly to accomodate large files like datasets foreach (var type in typeof(DatabaseEntry).GetAllChildClasses()) { - var linkFields = type.GetFields().Where(f => f.FieldType.IsAssignableToGenericType(typeof(DatabaseLink<>))).ToArray(); - if(linkFields.Length > 0) - _linkFields[type] = linkFields; - - if (type.GetCustomAttribute() != null) - { - var typeDirectory = dataDirectory.CreateSubdirectory(type.Name); - _externalTypes[type] = (typeDirectory, new List()); - - // Cache the GUIDs for all available external entries for querying - // Initially set values to null to indicate they haven't been loaded yet - foreach (var file in typeDirectory.EnumerateFiles("*.msgpack")) - { - Guid id; - if (Guid.TryParse(file.Name.Substring(0, file.Name.IndexOf('.')), out id)) - { - _externalEntries.Add(id, new ExternalEntry(file.FullName, null)); - _externalTypes[type].entries.Add(id); - } - } - } - else _types[type] = new HashSet(); + _types[type] = new HashSet(); if (type.GetCustomAttribute() != null) { @@ -91,7 +70,42 @@ public class CultCache } } - public void Add(DatabaseEntry entry, bool remote = false) + public void AddBackingStore(CacheBackingStore store, params Type[] domain) + { + if (domain.Length > 0) + { + _storeTypes[store] = domain; + foreach (var t in domain) _typeStores[t] = store; + } + else + { + foreach(var existingStore in _backingStores) store.SubscribeTo(existingStore); + _backingStores.Add(store); + } + store.EntryAdded.Subscribe(entry => + { + Add(entry, store); + OnUpdate?.Invoke(null, entry); + }); + store.EntryUpdated.Subscribe(entry => + { + Add(entry, store); + OnUpdate?.Invoke(entry, entry); + }); + store.EntryDeleted.Subscribe(entry => + { + Remove(entry, store); + OnUpdate?.Invoke(entry, null); + }); + } + + public void PullAllBackingStores() + { + foreach(var store in _backingStores) store.PullAll(); + foreach(var store in _storeTypes.Keys) store.PullAll(); + } + + public void Add(DatabaseEntry entry, CacheBackingStore source = null) { lock(addLock) { @@ -101,85 +115,49 @@ public class CultCache var type = entry.GetType(); - // If an external entry is added, store it separately - if (_externalTypes.ContainsKey(type)) + if (_globals.ContainsKey(type)) { - if (_externalEntries.ContainsKey(entry.ID)) + if(_globals[type]!=null) { - _externalEntries[entry.ID].Entry = entry; - } - else - { - _externalTypes[type].entries.Add(entry.ID); - _externalEntries[entry.ID] = new ExternalEntry( - Path.Combine(_externalTypes[type].directory.FullName, $"{entry.ID.ToString()}.msgpack"), - entry); + Remove(_globals[type]); + exists = true; } + _globals[type] = entry; } + + if(_typeStores.ContainsKey(type)) + _typeStores[type].Push(entry); else { - if (_globals.ContainsKey(type)) - { - if(_globals[type]!=null) - { - Remove(_globals[type], remote); - exists = true; - } - _globals[type] = entry; - } - - _entries[entry.ID] = entry; - _types[type].Add(entry); - foreach (var parentType in type.GetParentTypes()) - { - if(_types.ContainsKey(parentType)) - _types[parentType].Add(entry); - } - - if (remote) - { - if (exists) - OnDataUpdateRemote?.Invoke(entry); - else - OnDataInsertRemote?.Invoke(entry); - } - else - { - if (exists) - OnDataUpdateLocal?.Invoke(entry); - else - OnDataInsertLocal?.Invoke(entry); - } + var masterStore = _backingStores.First(); + if(masterStore!=source) + masterStore.Push(entry); } + + _entries[entry.ID] = entry; + _types[type].Add(entry); + foreach (var parentType in type.GetParentTypes()) + { + if(_types.ContainsKey(parentType)) + _types[parentType].Add(entry); + } + } } } - public bool IsExternal(DatabaseEntry entry) => _externalTypes.ContainsKey(entry.GetType()); public bool IsGlobal(DatabaseEntry entry) => _globals.ContainsKey(entry.GetType()); - public void AddAll(IEnumerable entries, bool remote = false) + public void AddAll(IEnumerable entries) { foreach (var entry in entries) { - Add(entry, remote); + Add(entry); } } public DatabaseEntry Get(Guid guid) { - if (_externalEntries.ContainsKey(guid)) - { - if(_externalEntries[guid].Entry == null) - { - var bytes = File.ReadAllBytes(_externalEntries[guid].FilePath); - var e = MessagePackSerializer.Deserialize(bytes); - _externalEntries[guid].Entry = e; - } - - return _externalEntries[guid].Entry; - } - DatabaseEntry entry; _entries.TryGetValue(guid, out entry); return entry; @@ -203,56 +181,394 @@ public class CultCache public IEnumerable GetAll(Type type) { - if (_externalTypes.ContainsKey(type)) - { - return _externalTypes[type].entries.Select(Get); - } return !_types.ContainsKey(type) ? Enumerable.Empty() : _types[type]; } public IEnumerable GetAll() where T : DatabaseEntry { var type = typeof(T); - if (_externalTypes.ContainsKey(type)) - { - return _externalTypes[type].entries.Select(Get); - } return !_types.ContainsKey(type) ? Enumerable.Empty() : _types[type].Cast(); } - public void Remove(DatabaseEntry entry, bool remote = false) + public void Remove(DatabaseEntry entry, CacheBackingStore source = null) { _entries.Remove(entry.ID); - foreach (var parentType in entry.GetType().GetParentTypes()) + var type = entry.GetType(); + if(_typeStores.ContainsKey(type)) + _typeStores[type].Delete(entry); + else foreach(var store in _backingStores) + { + if(store != source) + store.Delete(entry); + } + foreach (var parentType in type.GetParentTypes()) { if(_types.ContainsKey(parentType)) _types[parentType].Remove(entry); } + } +} - if (remote) - OnDataRemoveRemote?.Invoke(entry); - else - OnDataRemoveLocal?.Invoke(entry); +public interface RealtimeBackingStore +{ + public void ObserveChanges(); +} + +public abstract class CacheBackingStore +{ + protected CacheBackingStore() + { + EntryAdded = new Subject(); + EntryDeleted = new Subject(); + EntryUpdated = new Subject(); } - public void Load() - { - var bytes = File.ReadAllBytes(_filePath); - var entries = MessagePackSerializer.Deserialize(bytes); - AddAll(entries); - } + public abstract void PullAll(); + public abstract void Push(DatabaseEntry entry); + public abstract void Delete(DatabaseEntry entry); + public abstract void PushAll(bool soft = false); + + public Subject EntryAdded { get; } + public Subject EntryDeleted { get; } + public Subject EntryUpdated { get; } - public void Save() + protected Dictionary Entries = new Dictionary(); + + public void SubscribeTo(CacheBackingStore targetStore) { - var entries = AllEntries.ToArray(); - File.WriteAllBytes(_filePath, MessagePackSerializer.Serialize(entries)); - - foreach (var external in _externalEntries.Values) + targetStore.EntryAdded.Subscribe(Push); + targetStore.EntryDeleted.Subscribe(Delete); + targetStore.EntryUpdated.Subscribe(Push); + } +} + +public abstract class MultiFileBackingStore : CacheBackingStore, RealtimeBackingStore +{ + public DirectoryInfo DirectoryInfo { get; } + protected Dictionary _entryTypeDirectories = new Dictionary(); + + public abstract byte[] Serialize(DatabaseEntry entry); + public abstract DatabaseEntry Deserialize(byte[] data); + public abstract string Extension { get; } + + public MultiFileBackingStore(string path) + { + DirectoryInfo = new DirectoryInfo(path); + foreach (var type in typeof(DatabaseEntry).GetAllChildClasses()) { - if (external.Entry != null) + _entryTypeDirectories[type] = DirectoryInfo.CreateSubdirectory(type.Name); + } + } + + public override void PullAll() + { + if (!DirectoryInfo.Exists) return; + + foreach (var directory in _entryTypeDirectories.Values) + { + foreach (var file in directory.EnumerateFiles($"*.{Extension}")) { - File.WriteAllBytes(external.FilePath, MessagePackSerializer.Serialize(external.Entry)); + var entry = Deserialize(File.ReadAllBytes(file.FullName)); + Entries[entry.ID] = entry; + EntryAdded.OnNext(entry); } } } + + private string GetFileName(DatabaseEntry entry) => + $"{(entry is INamedEntry namedEntry ? namedEntry.EntryName : entry.ID.ToString())}.{Extension}"; + + public override void Push(DatabaseEntry entry) + { + var type = entry.GetType(); + Entries[entry.ID] = entry; + var directory = _entryTypeDirectories[type]; + File.WriteAllBytes(Path.Combine(directory.FullName, GetFileName(entry)), Serialize(entry)); + } + + public override void Delete(DatabaseEntry entry) + { + if(Entries.ContainsKey(entry.ID)) + { + var type = entry.GetType(); + Entries.Remove(entry.ID); + var directory = _entryTypeDirectories[type]; + var file = new FileInfo(Path.Combine(directory.FullName, GetFileName(entry))); + if (file.Exists) + file.Delete(); + } + } + + public override void PushAll(bool soft = false) + { + foreach(var entry in Entries.Values.ToArray()) Push(entry); + } + + public void ObserveChanges() + { + foreach (var directory in _entryTypeDirectories.Values) + { + var watcher = new FileSystemWatcher(directory.FullName); + watcher.Changed += (sender, args) => + { + var entry = Deserialize(File.ReadAllBytes(args.FullPath)); + Entries[entry.ID] = entry; + EntryUpdated.OnNext(entry); + }; + watcher.Created += (sender, args) => + { + var entry = Deserialize(File.ReadAllBytes(args.FullPath)); + Entries[entry.ID] = entry; + EntryAdded.OnNext(entry); + }; + watcher.Deleted += (sender, args) => + { + var entry = Deserialize(File.ReadAllBytes(args.FullPath)); + Entries[entry.ID] = entry; + EntryDeleted.OnNext(entry); + }; + } + } +} + +public class MultiFileJsonBackingStore : MultiFileBackingStore +{ + public MultiFileJsonBackingStore(string path) : base(path) + { + RegisterResolver.Register(); + } + + public override byte[] Serialize(DatabaseEntry entry) + { + return Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(entry)); + } + + public override DatabaseEntry Deserialize(byte[] data) + { + return JsonConvert.DeserializeObject(Encoding.UTF8.GetString(data)); + } + + public override string Extension => "json"; +} + +public class MultiFileMessagePackBackingStore : MultiFileBackingStore +{ + public MultiFileMessagePackBackingStore(string path) : base(path) + { + RegisterResolver.Register(); + } + + public override byte[] Serialize(DatabaseEntry entry) + { + return MessagePackSerializer.Serialize(entry); + } + + public override DatabaseEntry Deserialize(byte[] data) + { + return MessagePackSerializer.Deserialize(data); + } + + public override string Extension => "msgpack"; +} + +public abstract class SingleFileBackingStore : CacheBackingStore +{ + public FileInfo FileInfo { get; } + + public abstract byte[] Serialize(DatabaseEntry[] entries); + public abstract DatabaseEntry[] Deserialize(byte[] data); + + public SingleFileBackingStore(string filePath) + { + FileInfo = new FileInfo(filePath); + } + + public override void PullAll() + { + if (!FileInfo.Exists) return; + + foreach (var entry in Deserialize(File.ReadAllBytes(FileInfo.FullName))) + { + Entries[entry.ID] = entry; + EntryAdded.OnNext(entry); + } + } + + public override void Push(DatabaseEntry entry) + { + var type = entry.GetType(); + Entries[entry.ID] = entry; + PushAll(); + } + + public override void Delete(DatabaseEntry entry) + { + if(Entries.ContainsKey(entry.ID)) + { + Entries.Remove(entry.ID); + PushAll(); + } + } + + public override void PushAll(bool soft = false) + { + var entriesArray = Entries.Values.ToArray(); + File.WriteAllBytes(FileInfo.FullName, Serialize(entriesArray)); + } +} + +public class SingleFileMessagePackBackingStore : SingleFileBackingStore +{ + public SingleFileMessagePackBackingStore(string filePath) : base(filePath) + { + RegisterResolver.Register(); + } + + public override byte[] Serialize(DatabaseEntry[] entries) + { + return MessagePackSerializer.Serialize(entries); + } + + public override DatabaseEntry[] Deserialize(byte[] data) + { + return MessagePackSerializer.Deserialize(data); + } +} + +public class SingleFileJsonBackingStore : SingleFileBackingStore +{ + public SingleFileJsonBackingStore(string filePath) : base(filePath) + { + RegisterResolver.Register(); + } + + public override byte[] Serialize(DatabaseEntry[] entries) + { + return Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(entries)); + } + + public override DatabaseEntry[] Deserialize(byte[] data) + { + return JsonConvert.DeserializeObject(Encoding.UTF8.GetString(data)); + } +} + +public class RethinkBackingStore : CacheBackingStore, RealtimeBackingStore +{ + public const string DEFAULT_TABLE = "Default"; + public static RethinkDB R = RethinkDB.R; + public string DatabaseName { get; } + public string ConnectionString { get; } + + private string[] _syncTables; + private Connection _connection; + private Dictionary _entryHashes = new Dictionary(); + + public void ObserveChanges() + { + foreach (var table in _syncTables) + { + // Subscribe to changes from RethinkDB + Task.Run(async () => + { + var result = await R + .Db(DatabaseName) + .Table(table) + .Changes() + .RunChangesAsync(_connection); + while (await result.MoveNextAsync()) + { + var change = result.Current; + if(change.NewValue==null) + EntryDeleted.OnNext(change.OldValue); + else if(change.OldValue==null) + EntryAdded.OnNext(change.NewValue); + else EntryUpdated.OnNext(change.NewValue); + } + }).WrapAwait(); + } + } + + public RethinkBackingStore(string databaseName, string connectionString) + { + DatabaseName = databaseName; + ConnectionString = connectionString; + + RegisterResolver.Register(); + + var connectionStringDomainLength = connectionString.IndexOf(':'); + if (connectionStringDomainLength < 1) + throw new ArgumentException("Illegal Connection String: must include port!"); + + var portString = connectionString.Substring(connectionStringDomainLength + 1); + if (!int.TryParse(portString, out var port)) + throw new ArgumentException($"Illegal connection string! \"{portString}\" is not a valid port number!"); + + _connection = R.Connection() + .Hostname(connectionString.Substring(0,connectionStringDomainLength)) + .Port(port).Timeout(60).Connect(); + + var tables = R.Db(DatabaseName).TableList().RunAtom(_connection); + + _syncTables = typeof(DatabaseEntry).GetAllChildClasses() + .Select(t => t.GetCustomAttribute()?.TableName ?? DEFAULT_TABLE).Distinct().ToArray(); + + foreach (var st in _syncTables.Where(st => !tables.Contains(st))) + R.Db(DatabaseName).TableCreate(st).RunNoReply(_connection); + } + + public override void PullAll() + { + foreach (var table in _syncTables) + { + // Get entries from RethinkDB + Task.Run(async () => + { + var result = await R + .Db(DatabaseName) + .Table(table) + .RunCursorAsync(_connection); + + while (await result.MoveNextAsync()) + { + var entry = result.Current; + EntryAdded.OnNext(entry); + } + }).WrapAwait(); + } + } + + public override async void Push(DatabaseEntry entry) + { + var type = entry.GetType(); + //(Entries.ContainsKey(entry.ID) ? EntryUpdated : EntryAdded).OnNext(entry); + var table = type.GetCustomAttribute()?.TableName ?? DEFAULT_TABLE; + var result = await R + .Db(DatabaseName) + .Table(table) + .Get(entry.ID) + .Replace(entry) + .RunAsync(_connection); + } + + public override async void Delete(DatabaseEntry entry) + { + if(Entries.ContainsKey(entry.ID)) + { + var type = entry.GetType(); + var table = type.GetCustomAttribute()?.TableName ?? DEFAULT_TABLE; + var result = await R + .Db(DatabaseName) + .Table(table) + .Get(entry.ID) + .Delete() + .RunAsync(_connection); + } + } + + public override void PushAll(bool soft = false) + { + foreach(var entry in Entries.Values) + Push(entry); + } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/CultCache/RethinkConnection.cs b/Assets/Scripts/ServerShared/CultCache/RethinkConnection.cs index 585aeecb0..2970aa084 100644 --- a/Assets/Scripts/ServerShared/CultCache/RethinkConnection.cs +++ b/Assets/Scripts/ServerShared/CultCache/RethinkConnection.cs @@ -19,126 +19,13 @@ public static class RethinkConnection public static RethinkQueryStatus RethinkConnect(CultCache cache, string connectionString, string dbName, bool syncLocalChanges = true) { - // Add Unity.Mathematics serialization support to RethinkDB Driver - JsonConvert.DefaultSettings = () => new JsonSerializerSettings - { - Converters = new List - { - new MathJsonConverter(), - Converter.DateTimeConverter, - Converter.BinaryConverter, - Converter.GroupingConverter, - Converter.PocoExprConverter - } - }; - - var syncTables = typeof(DatabaseEntry).GetAllChildClasses() - .Select(t => t.GetCustomAttribute()?.TableName ?? "Default").Distinct(); - - var connectionStringDomainLength = connectionString.IndexOf(':'); - if (connectionStringDomainLength < 1) - throw new ArgumentException("Illegal Connection String: must include port!"); - - var portString = connectionString.Substring(connectionStringDomainLength + 1); - if (!int.TryParse(portString, out var port)) - throw new ArgumentException($"Illegal connection string! \"{portString}\" is not a valid port number!"); - - var connection = R.Connection() - .Hostname(connectionString.Substring(0,connectionStringDomainLength)) - .Port(port).Timeout(60).Connect(); - - var tables = R.Db(dbName).TableList().RunAtom(connection); - - foreach (var st in syncTables.Where(st => !tables.Contains(st))) - R.Db(dbName).TableCreate(st).RunNoReply(connection); - - if (syncLocalChanges) - { - // When entries are changed locally, push the changes to RethinkDB - cache.OnDataUpdateLocal += async entry => - { - var table = entry.GetType().GetCustomAttribute()?.TableName ?? "Other"; - var result = await R - .Db(dbName) - .Table(table) - .Get(entry.ID) - .Replace(entry) - .RunAsync(connection); - }; - - cache.OnDataInsertLocal += async entry => - { - var table = entry.GetType().GetCustomAttribute()?.TableName ?? "Other"; - var result = await R - .Db(dbName) - .Table(table) - .Insert(entry) - .RunAsync(connection); - }; - - cache.OnDataRemoveLocal += async entry => - { - var table = entry.GetType().GetCustomAttribute()?.TableName ?? "Other"; - var result = await R - .Db(dbName) - .Table(table) - .Get(entry.ID) - .Delete() - .RunAsync(connection); - }; - } - var status = new RethinkQueryStatus(); - foreach (var table in syncTables) - { - // Get entries from RethinkDB - Task.Run(async () => - { - status.TotalEntries += R - .Db(dbName) - .Table(table) - .Count().RunAtom(connection); - - var result = await R - .Db(dbName) - .Table(table) - .RunCursorAsync(connection); - while (await result.MoveNextAsync()) - { - var entry = result.Current; - cache.Add(entry, true); - status.RetrievedEntries++; - } - }).WrapAwait(); - - // Subscribe to changes from RethinkDB - Task.Run(async () => - { - var result = await R - .Db(dbName) - .Table(table) - .Changes() - .RunChangesAsync(connection); - while (await result.MoveNextAsync()) - { - var change = result.Current; - cache.Add(change.NewValue, true); - } - }).WrapAwait(); - } return status; } } -public static class AsyncAwaitExtensions -{ - public static async void WrapAwait(this Task task) - { - await task; - } -} public class RethinkQueryStatus { diff --git a/Assets/Scripts/ServerShared/CultCache/Serialization/RegisterResolver.cs b/Assets/Scripts/ServerShared/CultCache/Serialization/RegisterResolver.cs index 2c34a444d..d821cf306 100644 --- a/Assets/Scripts/ServerShared/CultCache/Serialization/RegisterResolver.cs +++ b/Assets/Scripts/ServerShared/CultCache/Serialization/RegisterResolver.cs @@ -3,6 +3,8 @@ using System.Collections.Generic; using MessagePack; using MessagePack.ReactivePropertyExtension; using MessagePack.Resolvers; +using Newtonsoft.Json; +using RethinkDb.Driver.Net; public static class RegisterResolver { @@ -22,6 +24,19 @@ public static class RegisterResolver var options = MessagePackSerializerOptions.Standard.WithResolver(resolver); MessagePackSerializer.DefaultOptions = options; + // Add Unity.Mathematics serialization support to Newtonsoft JSON + JsonConvert.DefaultSettings = () => new JsonSerializerSettings + { + Converters = new List + { + new MathJsonConverter(), + Converter.DateTimeConverter, + Converter.BinaryConverter, + Converter.GroupingConverter, + Converter.PocoExprConverter + } + }; + registered = true; } } diff --git a/Assets/Scripts/ServerShared/Entity.cs b/Assets/Scripts/ServerShared/Entity.cs index 3372f3671..0379b5291 100644 --- a/Assets/Scripts/ServerShared/Entity.cs +++ b/Assets/Scripts/ServerShared/Entity.cs @@ -1294,6 +1294,8 @@ public class EquippedItem var scaleModifier = 1.0f; var scaleModifiers = stat.GetScaleModifiers(Entity).Values; + var a = float3(0, 0, 1); + var b = dot(a, float3(0, 0, 1)); foreach (var value in scaleModifiers) scaleModifier *= value; float constantModifier = 0; diff --git a/Assets/Scripts/ServerShared/Narrative/StoryProcessor.cs b/Assets/Scripts/ServerShared/Narrative/StoryProcessor.cs index d253781d8..21b13a53d 100644 --- a/Assets/Scripts/ServerShared/Narrative/StoryProcessor.cs +++ b/Assets/Scripts/ServerShared/Narrative/StoryProcessor.cs @@ -55,7 +55,11 @@ public class StoryProcessor : IZoneResolver, IFactionResolver public void ProcessStories() { var locationFiles = _locationsPath.EnumerateFiles("*.ink"); - foreach(var inkFile in locationFiles) ProcessLocation(GetStory(inkFile), inkFile); + foreach(var inkFile in locationFiles) + { + Log($"Processing story file at {inkFile.FullName}"); + ProcessLocation(GetStory(inkFile), inkFile); + } var questFiles = _questsPath.EnumerateFiles("*ink"); foreach(var inkFile in questFiles) ProcessQuest(GetStory(inkFile), inkFile); diff --git a/GameData/AetherDB.msgpack b/GameData/AetherDB.msgpack index ee2b2e74a..e1c75acd3 100644 --- a/GameData/AetherDB.msgpack +++ b/GameData/AetherDB.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:70392aa70f46e95bf5ba2f2a4591cf5da6c4626ace87ccbb2d27560945f07828 -size 76192 +oid sha256:d1e9b95040fff18ed65ebf2f7f767b8faa7ddede6a3f0f32911d00d648fca521 +size 40398 diff --git a/GameData/CargoBayData/SafeStuff II.json b/GameData/CargoBayData/SafeStuff II.json new file mode 100644 index 000000000..63eae67f7 --- /dev/null +++ b/GameData/CargoBayData/SafeStuff II.json @@ -0,0 +1 @@ +{"interiorShape":{"name":[[true,true,true,true,true,true],[true,true,true,true,true,true],[true,true,true,true,true,true],[true,true,true,true,true,true],[true,true,true,true,true,true],[true,true,true,true,true,true]]},"schematic":"","behaviors":[],"durability":550.0,"minTemp":175.0,"maxTemp":600.0,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":1.0,"actionIcon":null,"soundBank":0,"audioStats":[],"name":"SafeStuff II","description":"Your stuff is safe stuffed in the new, bigger SafeStuff","creator":"adfb9b08-aabc-45c6-9586-915698a9c4b0","mass":700.0,"shape":{"name":[[true,true,true],[true,true,true],[true,true,true]]},"specificHeat":0.75,"conductivity":1.0,"price":450000,"id":"03740fd6-158d-43e9-b070-9a40e0b9bc45","$type":"CargoBayData"} \ No newline at end of file diff --git a/GameData/CargoBayData/Store-All Enterprise Edition.json b/GameData/CargoBayData/Store-All Enterprise Edition.json new file mode 100644 index 000000000..933d31247 --- /dev/null +++ b/GameData/CargoBayData/Store-All Enterprise Edition.json @@ -0,0 +1 @@ +{"interiorShape":{"name":[[true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,true]]},"schematic":"","behaviors":[],"durability":1000.0,"minTemp":175.0,"maxTemp":600.0,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":1.0,"actionIcon":null,"soundBank":0,"audioStats":[],"name":"Store-All Enterprise Edition","description":"A large amount of storage","creator":"2f74e6b4-d268-48a9-b2a8-24591c680e84","mass":800.0,"shape":{"name":[[true,true,true,true,true,true],[true,true,true,true,true,true],[true,true,true,true,true,true],[true,true,true,true,true,true],[true,true,true,true,true,true],[true,true,true,true,true,true]]},"specificHeat":0.75,"conductivity":1.0,"price":700000,"id":"46b66f9a-5c72-4e7a-ac9b-4dd7904cc4a1","$type":"CargoBayData"} \ No newline at end of file diff --git a/GameData/CargoBayData/Store-All Plus Mini.json b/GameData/CargoBayData/Store-All Plus Mini.json new file mode 100644 index 000000000..463342779 --- /dev/null +++ b/GameData/CargoBayData/Store-All Plus Mini.json @@ -0,0 +1 @@ +{"interiorShape":{"name":[[true,true],[true,true]]},"schematic":"","behaviors":[],"durability":125.0,"minTemp":175.0,"maxTemp":600.0,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":1.0,"actionIcon":null,"soundBank":0,"audioStats":[],"name":"Store-All Plus Mini","description":"Take some of your cargo wherever your shipgo","creator":"2f74e6b4-d268-48a9-b2a8-24591c680e84","mass":50.0,"shape":{"name":[[true]]},"specificHeat":0.75,"conductivity":1.0,"price":50000,"id":"ae05f4cb-0dd5-4f37-af96-cc61c9d61e1f","$type":"CargoBayData"} \ No newline at end of file diff --git a/GameData/CargoBayData/Store-All Plus.json b/GameData/CargoBayData/Store-All Plus.json new file mode 100644 index 000000000..91eb68d09 --- /dev/null +++ b/GameData/CargoBayData/Store-All Plus.json @@ -0,0 +1 @@ +{"interiorShape":{"name":[[true,true,true,true],[true,true,true,true],[true,true,true,true],[true,true,true,true]]},"schematic":"","behaviors":[],"durability":250.0,"minTemp":175.0,"maxTemp":600.0,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":1.0,"actionIcon":null,"soundBank":0,"audioStats":[],"name":"Store-All Plus","description":"Take your cargo wherever your shipgo","creator":"2f74e6b4-d268-48a9-b2a8-24591c680e84","mass":200.0,"shape":{"name":[[true,true],[true,true]]},"specificHeat":0.75,"conductivity":1.0,"price":150000,"id":"49b4c15a-c10b-49c0-9dad-31dfb9b3a9b9","$type":"CargoBayData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/AI Pilot.json b/GameData/CompoundCommodityData/AI Pilot.json new file mode 100644 index 000000000..9cf8ed2f4 --- /dev/null +++ b/GameData/CompoundCommodityData/AI Pilot.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":4,"name":"AI Pilot","description":"Place your valuable life and even more valuable cargo in the relentlessly logical hands of your AI copilot*. *Personalities may vary. Any neuroticism or homicidal madness in an artificial intelligence is not our responsibility. ","creator":"00000000-0000-0000-0000-000000000000","mass":0.0,"shape":null,"specificHeat":0.0,"conductivity":1.0,"price":0,"id":"11d9fd0c-c0dd-482f-8e2a-f7c289ed6a3d","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/All-Surface Stylus.json b/GameData/CompoundCommodityData/All-Surface Stylus.json new file mode 100644 index 000000000..94214d187 --- /dev/null +++ b/GameData/CompoundCommodityData/All-Surface Stylus.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":3,"name":"All-Surface Stylus","description":"Draw and write on anything! Even lava!","creator":"00000000-0000-0000-0000-000000000000","mass":0.7,"shape":null,"specificHeat":0.0,"conductivity":1.0,"price":0,"id":"20376ecd-77fa-4ffe-9be6-185158ee1bfc","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Antireflective Coating.json b/GameData/CompoundCommodityData/Antireflective Coating.json new file mode 100644 index 000000000..dfa946ee2 --- /dev/null +++ b/GameData/CompoundCommodityData/Antireflective Coating.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":4,"name":"Antireflective Coating","description":"Spray this stuff on your hull to make it invisible to radar.","creator":"00000000-0000-0000-0000-000000000000","mass":5.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"4810a43b-bbb9-447d-b62e-b723e4d88afc","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Ballistic Powder.json b/GameData/CompoundCommodityData/Ballistic Powder.json new file mode 100644 index 000000000..6756d7b22 --- /dev/null +++ b/GameData/CompoundCommodityData/Ballistic Powder.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":4,"name":"Ballistic Powder","description":"Used in the creation of ballistic weapons. \r\n","creator":"00000000-0000-0000-0000-000000000000","mass":1.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"0b449ae1-7eab-47e8-ac3c-2b6f6ff01f00","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Big Red Button.json b/GameData/CompoundCommodityData/Big Red Button.json new file mode 100644 index 000000000..5a29ffcd9 --- /dev/null +++ b/GameData/CompoundCommodityData/Big Red Button.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":4,"name":"Big Red Button","description":"No one knows what it does, but everyone know it's critical to modern spaceship design. Just don't press it.","creator":"00000000-0000-0000-0000-000000000000","mass":3.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"5e2950d6-02df-461e-a35e-a4123c6a5639","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Cargo Pod.json b/GameData/CompoundCommodityData/Cargo Pod.json new file mode 100644 index 000000000..66dbe45c9 --- /dev/null +++ b/GameData/CompoundCommodityData/Cargo Pod.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":5,"name":"Cargo Pod","description":"Cargo space? No, cargo road, but also, cargo pod.","creator":"00000000-0000-0000-0000-000000000000","mass":20.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"17032840-c285-4f33-82ae-6b03f1e1e56b","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Circuit Board.json b/GameData/CompoundCommodityData/Circuit Board.json new file mode 100644 index 000000000..682e272c6 --- /dev/null +++ b/GameData/CompoundCommodityData/Circuit Board.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":4,"name":"Circuit Board","description":null,"creator":"00000000-0000-0000-0000-000000000000","mass":3.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"3c8b2b3d-ca1a-405f-966f-c64662a64418","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Cockpit.json b/GameData/CompoundCommodityData/Cockpit.json new file mode 100644 index 000000000..2dde53605 --- /dev/null +++ b/GameData/CompoundCommodityData/Cockpit.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":5,"name":"Cockpit","description":null,"creator":"00000000-0000-0000-0000-000000000000","mass":25.0,"shape":null,"specificHeat":1.5,"conductivity":1.0,"price":0,"id":"6d20c298-281e-46fc-be33-dbcc575d49d7","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Construction Rebar.json b/GameData/CompoundCommodityData/Construction Rebar.json new file mode 100644 index 000000000..97b7ceae6 --- /dev/null +++ b/GameData/CompoundCommodityData/Construction Rebar.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":4,"name":"Construction Rebar","description":"Helps your building stay up.","creator":"00000000-0000-0000-0000-000000000000","mass":65.0,"shape":null,"specificHeat":0.0,"conductivity":1.0,"price":0,"id":"2aa99b2d-80ed-4640-9350-9affcfe6d8cd","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Crash Test Dummy.json b/GameData/CompoundCommodityData/Crash Test Dummy.json new file mode 100644 index 000000000..988794bc7 --- /dev/null +++ b/GameData/CompoundCommodityData/Crash Test Dummy.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":2,"name":"Crash Test Dummy","description":"Your best friend and co pilot","creator":"00000000-0000-0000-0000-000000000000","mass":7.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"4b3fc716-d362-4379-8c65-f2c471647ed1","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Daily Feed Ad Slot (5ms).json b/GameData/CompoundCommodityData/Daily Feed Ad Slot (5ms).json new file mode 100644 index 000000000..4c882aef8 --- /dev/null +++ b/GameData/CompoundCommodityData/Daily Feed Ad Slot (5ms).json @@ -0,0 +1 @@ +{"demandProfile":{},"category":2,"name":"Daily Feed Ad Slot (5ms)","description":"A 5 ms slot on the most widely viewed news feed in the multiverse","creator":"00000000-0000-0000-0000-000000000000","mass":1.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"601a345d-6f0b-4bdb-8171-be4befaf9a33","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Dashboard Ornament.json b/GameData/CompoundCommodityData/Dashboard Ornament.json new file mode 100644 index 000000000..02df1c71a --- /dev/null +++ b/GameData/CompoundCommodityData/Dashboard Ornament.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":2,"name":"Dashboard Ornament","description":"Add personality to your ship dashboard! *Not responsible for accidental death due to inertia from sudden deceleration","creator":"00000000-0000-0000-0000-000000000000","mass":0.5,"shape":null,"specificHeat":0.0,"conductivity":1.0,"price":0,"id":"03ff4335-fa65-4a89-8cea-68f70de01d60","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Dials.json b/GameData/CompoundCommodityData/Dials.json new file mode 100644 index 000000000..a5acb0706 --- /dev/null +++ b/GameData/CompoundCommodityData/Dials.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":4,"name":"Dials","description":"Small dials for your control panel. Do they do anything? We don't know, but they sure look important.","creator":"00000000-0000-0000-0000-000000000000","mass":0.5,"shape":null,"specificHeat":0.0,"conductivity":1.0,"price":0,"id":"6d4c9e32-7ffd-45f6-8e08-86d544793774","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Diamond.json b/GameData/CompoundCommodityData/Diamond.json new file mode 100644 index 000000000..552813389 --- /dev/null +++ b/GameData/CompoundCommodityData/Diamond.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":4,"name":"Diamond","description":"Used to harden a material. \r\n","creator":"00000000-0000-0000-0000-000000000000","mass":1.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"8776c2fd-45f6-4ca6-8ef0-5214be830182","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Emergency Personal Life Support System.json b/GameData/CompoundCommodityData/Emergency Personal Life Support System.json new file mode 100644 index 000000000..84758ec06 --- /dev/null +++ b/GameData/CompoundCommodityData/Emergency Personal Life Support System.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":5,"name":"Emergency Personal Life Support System","description":"The sole survivor's best friend.","creator":"00000000-0000-0000-0000-000000000000","mass":16.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"35f02735-1993-4467-b3de-028c2d6e2276","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Fuel.json b/GameData/CompoundCommodityData/Fuel.json new file mode 100644 index 000000000..c82075307 --- /dev/null +++ b/GameData/CompoundCommodityData/Fuel.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":4,"name":"Fuel","description":null,"creator":"00000000-0000-0000-0000-000000000000","mass":3.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"6821495a-4875-4350-a8e8-e813c3576aa8","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Geiger Counter.json b/GameData/CompoundCommodityData/Geiger Counter.json new file mode 100644 index 000000000..b92cbc21b --- /dev/null +++ b/GameData/CompoundCommodityData/Geiger Counter.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":3,"name":"Geiger Counter","description":"It's rad. You shouldn't be.","creator":"00000000-0000-0000-0000-000000000000","mass":6.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"1ea0df17-aba1-45bc-8d6e-a430c110e38d","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Hat.json b/GameData/CompoundCommodityData/Hat.json new file mode 100644 index 000000000..1f1a3a98a --- /dev/null +++ b/GameData/CompoundCommodityData/Hat.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":0,"name":"Hat","description":"A hat. Goes on your head. OR: It keeps the rain off your head. ","creator":"00000000-0000-0000-0000-000000000000","mass":1.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"5383d6b6-083b-4721-8f6b-426dba0beaeb","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Heat Sink Tile.json b/GameData/CompoundCommodityData/Heat Sink Tile.json new file mode 100644 index 000000000..9034f4128 --- /dev/null +++ b/GameData/CompoundCommodityData/Heat Sink Tile.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":4,"name":"Heat Sink Tile","description":"It's getting hot in here, so drain off all your heat before your systems overload","creator":"00000000-0000-0000-0000-000000000000","mass":7.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"0d6a518d-24e9-40bf-9861-301de17b5161","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Helmet.json b/GameData/CompoundCommodityData/Helmet.json new file mode 100644 index 000000000..352d10355 --- /dev/null +++ b/GameData/CompoundCommodityData/Helmet.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":0,"name":"Helmet","description":"Goes on your head. But better.","creator":"00000000-0000-0000-0000-000000000000","mass":5.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"8b026aea-1d79-49a0-b843-abdfcca31bab","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Holo-desk.json b/GameData/CompoundCommodityData/Holo-desk.json new file mode 100644 index 000000000..6b943efd8 --- /dev/null +++ b/GameData/CompoundCommodityData/Holo-desk.json @@ -0,0 +1 @@ +{"demandProfile":{"2103d2d5-bf5c-4dd9-9381-c90f1e39496f":0.25,"3f608054-8e4a-43fb-926c-261da4cc92d9":0.85},"category":3,"name":"Holo-desk","description":"A totally not ripped off version of Star Trek's Holodeck, now in desk size. An upgraded part of the Virtual Reality Experience","creator":"00000000-0000-0000-0000-000000000000","mass":4.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"2055f611-ef5d-4791-b1ad-f1757c081a99","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Inertial Compensating Seatbelt.json b/GameData/CompoundCommodityData/Inertial Compensating Seatbelt.json new file mode 100644 index 000000000..580d6c0da --- /dev/null +++ b/GameData/CompoundCommodityData/Inertial Compensating Seatbelt.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":4,"name":"Inertial Compensating Seatbelt","description":"because humans are squishy.","creator":"00000000-0000-0000-0000-000000000000","mass":3.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"32934bf0-d7e9-432f-8863-e07c092b67f6","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Insulation.json b/GameData/CompoundCommodityData/Insulation.json new file mode 100644 index 000000000..4f00180b8 --- /dev/null +++ b/GameData/CompoundCommodityData/Insulation.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":4,"name":"Insulation","description":"Keeps hot things hot and cold things cold.","creator":"00000000-0000-0000-0000-000000000000","mass":2.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"4c82acfa-b8e4-4601-9465-2fad107b1eff","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Joystick.json b/GameData/CompoundCommodityData/Joystick.json new file mode 100644 index 000000000..e01457f06 --- /dev/null +++ b/GameData/CompoundCommodityData/Joystick.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":0,"name":"Joystick","description":"Manual ship control","creator":"00000000-0000-0000-0000-000000000000","mass":2.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"63abe46b-ad99-4ac9-b5e4-d83a40465065","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Knife.json b/GameData/CompoundCommodityData/Knife.json new file mode 100644 index 000000000..495955371 --- /dev/null +++ b/GameData/CompoundCommodityData/Knife.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":3,"name":"Knife","description":"for slicing, stabbing, and sauteing","creator":"00000000-0000-0000-0000-000000000000","mass":1.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"5449f7d3-b250-41cd-9e7e-ab2a7037cacb","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Local Newscast.json b/GameData/CompoundCommodityData/Local Newscast.json new file mode 100644 index 000000000..3a2559ff7 --- /dev/null +++ b/GameData/CompoundCommodityData/Local Newscast.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":2,"name":"Local Newscast","description":"Has all the local dirt, available for download upon entry to a territory.","creator":"00000000-0000-0000-0000-000000000000","mass":0.0,"shape":null,"specificHeat":0.0,"conductivity":1.0,"price":0,"id":"5bcddae5-10fe-4316-9dca-6dc5d53c899e","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Magnetic EVA Boots.json b/GameData/CompoundCommodityData/Magnetic EVA Boots.json new file mode 100644 index 000000000..64df9ba41 --- /dev/null +++ b/GameData/CompoundCommodityData/Magnetic EVA Boots.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":0,"name":"Magnetic EVA Boots","description":"Keeps you from being flung into the abyss. Also gives you some daaamn nice calves. Leg day? Every day.","creator":"00000000-0000-0000-0000-000000000000","mass":3.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"3987140a-19c3-4b0b-8fa5-528f43a83afb","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Memory Download.json b/GameData/CompoundCommodityData/Memory Download.json new file mode 100644 index 000000000..0b576bc51 --- /dev/null +++ b/GameData/CompoundCommodityData/Memory Download.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":2,"name":"Memory Download","description":"Moments of human life distilled into electrical impulses and available for download.","creator":"00000000-0000-0000-0000-000000000000","mass":1.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"6f0ed812-01b0-4767-90c5-0b6857bc2e29","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Mining Rights.json b/GameData/CompoundCommodityData/Mining Rights.json new file mode 100644 index 000000000..2af09dcb7 --- /dev/null +++ b/GameData/CompoundCommodityData/Mining Rights.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":4,"name":"Mining Rights","description":"legal right to a particular location","creator":"00000000-0000-0000-0000-000000000000","mass":0.0,"shape":null,"specificHeat":0.0,"conductivity":1.0,"price":0,"id":"51e4dc3b-0107-4ab5-a2c6-02d34a1035b2","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Moo-ed Lighting.json b/GameData/CompoundCommodityData/Moo-ed Lighting.json new file mode 100644 index 000000000..cf3e19d9f --- /dev/null +++ b/GameData/CompoundCommodityData/Moo-ed Lighting.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":3,"name":"Moo-ed Lighting","description":"The best cow-based lighting system in the galaxy","creator":"00000000-0000-0000-0000-000000000000","mass":43.0,"shape":null,"specificHeat":0.0,"conductivity":1.0,"price":0,"id":"86d11f6a-9ddd-478d-8192-f047d38a7c6a","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Mouth Adapting Gummy Molars.json b/GameData/CompoundCommodityData/Mouth Adapting Gummy Molars.json new file mode 100644 index 000000000..7b02b4861 --- /dev/null +++ b/GameData/CompoundCommodityData/Mouth Adapting Gummy Molars.json @@ -0,0 +1 @@ +{"demandProfile":{"8e5a2064-9603-4205-baf7-4d037ebfda90":0.1,"d6506d2d-3699-4c8c-8e90-5e4b8f2f43b9":0.75},"category":1,"name":"Mouth Adapting Gummy Molars","description":"i’s amazing mouth adaptive gummy candy, now you can!eding to be brushed and stopping me from living out my dreams of biting directly into ice cream. I wish I could eat them.”? No? Well, thanks to Miss Terri’s amazing mouth adaptive gummy candy, now you can!","creator":"00000000-0000-0000-0000-000000000000","mass":2.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"3ddbbb28-c166-4ab3-8a0b-c7b77c372f32","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Neural Lace.json b/GameData/CompoundCommodityData/Neural Lace.json new file mode 100644 index 000000000..d97b192a9 --- /dev/null +++ b/GameData/CompoundCommodityData/Neural Lace.json @@ -0,0 +1 @@ +{"demandProfile":{"3f608054-8e4a-43fb-926c-261da4cc92d9":0.9,"d6506d2d-3699-4c8c-8e90-5e4b8f2f43b9":0.1},"category":0,"name":"Neural Lace","description":"Used in the development of brain-machine interfaces; can also be used to knit a neural doily for your gran.","creator":"00000000-0000-0000-0000-000000000000","mass":2.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"34b16da9-1e5e-4fba-b256-eb8a38274b39","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Paparazzi Drone.json b/GameData/CompoundCommodityData/Paparazzi Drone.json new file mode 100644 index 000000000..e1ff91fb0 --- /dev/null +++ b/GameData/CompoundCommodityData/Paparazzi Drone.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":2,"name":"Paparazzi Drone","description":"Now you can keep tabs on your favourite Lucent personalities from the comfort of your rest module! ","creator":"00000000-0000-0000-0000-000000000000","mass":11.0,"shape":null,"specificHeat":0.0,"conductivity":1.0,"price":0,"id":"675a1ebe-868c-4b27-a2eb-bee2fe5e356b","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Reaction Chamber.json b/GameData/CompoundCommodityData/Reaction Chamber.json new file mode 100644 index 000000000..30137b655 --- /dev/null +++ b/GameData/CompoundCommodityData/Reaction Chamber.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":5,"name":"Reaction Chamber","description":null,"creator":"00000000-0000-0000-0000-000000000000","mass":25.0,"shape":null,"specificHeat":1.25,"conductivity":1.0,"price":0,"id":"0caaa08c-e0b6-4eaf-a9fd-7e03088371ea","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Rope.json b/GameData/CompoundCommodityData/Rope.json new file mode 100644 index 000000000..1ffa793d5 --- /dev/null +++ b/GameData/CompoundCommodityData/Rope.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":3,"name":"Rope","description":"Ties things. And people.","creator":"00000000-0000-0000-0000-000000000000","mass":5.0,"shape":null,"specificHeat":0.0,"conductivity":1.0,"price":0,"id":"502a6ed8-73aa-4554-ae89-a50b67cfa9e0","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Safety Goggles.json b/GameData/CompoundCommodityData/Safety Goggles.json new file mode 100644 index 000000000..141b1959b --- /dev/null +++ b/GameData/CompoundCommodityData/Safety Goggles.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":0,"name":"Safety Goggles","description":"Safety First, so your eyes burn up last.","creator":"00000000-0000-0000-0000-000000000000","mass":0.5,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"5837ec5e-036b-4f73-9098-dbe11339909f","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Secret Storage Compartment.json b/GameData/CompoundCommodityData/Secret Storage Compartment.json new file mode 100644 index 000000000..39916a113 --- /dev/null +++ b/GameData/CompoundCommodityData/Secret Storage Compartment.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":5,"name":"Secret Storage Compartment","description":"Hide your snacks from your thieving co workers who have no respect for the institution of dibs, LARRY. Also smuggling.","creator":"00000000-0000-0000-0000-000000000000","mass":4.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"452bbd60-11df-449b-a4b7-a4ca22527123","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Sheet Metal.json b/GameData/CompoundCommodityData/Sheet Metal.json new file mode 100644 index 000000000..32b4f578d --- /dev/null +++ b/GameData/CompoundCommodityData/Sheet Metal.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":4,"name":"Sheet Metal","description":"Oh sheet, it's metal!","creator":"00000000-0000-0000-0000-000000000000","mass":5.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"421e9788-d094-4c17-88cc-0d820e3cfeca","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Ship Decal.json b/GameData/CompoundCommodityData/Ship Decal.json new file mode 100644 index 000000000..ea539a275 --- /dev/null +++ b/GameData/CompoundCommodityData/Ship Decal.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":4,"name":"Ship Decal","description":"Express your unique style with mass produced stickers","creator":"00000000-0000-0000-0000-000000000000","mass":1.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"4d5929a9-5cb1-470c-a0b7-12f8abaf4497","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Ship Fins.json b/GameData/CompoundCommodityData/Ship Fins.json new file mode 100644 index 000000000..c523dd257 --- /dev/null +++ b/GameData/CompoundCommodityData/Ship Fins.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":4,"name":"Ship Fins","description":"Aerodynamic! Because that's obviously needed in a low-friction environment. ","creator":"00000000-0000-0000-0000-000000000000","mass":24.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"4681d1af-1a6d-4c7e-b10d-5ee8295b9a79","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/SpaceCast.json b/GameData/CompoundCommodityData/SpaceCast.json new file mode 100644 index 000000000..b133a0549 --- /dev/null +++ b/GameData/CompoundCommodityData/SpaceCast.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":2,"name":"SpaceCast","description":"News from the sector, available on entry","creator":"00000000-0000-0000-0000-000000000000","mass":0.0,"shape":null,"specificHeat":0.0,"conductivity":1.0,"price":0,"id":"6713c2b2-d886-4440-b076-dd206c22848a","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Spacesuit.json b/GameData/CompoundCommodityData/Spacesuit.json new file mode 100644 index 000000000..82f10c1f0 --- /dev/null +++ b/GameData/CompoundCommodityData/Spacesuit.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":0,"name":"Spacesuit","description":"Because dying naked in space would be adding insult to injury","creator":"00000000-0000-0000-0000-000000000000","mass":7.0,"shape":null,"specificHeat":0.0,"conductivity":1.0,"price":0,"id":"1af83f0b-11ae-4d03-acc3-c5d478d55f14","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Spacewalking Boots.json b/GameData/CompoundCommodityData/Spacewalking Boots.json new file mode 100644 index 000000000..c8302c658 --- /dev/null +++ b/GameData/CompoundCommodityData/Spacewalking Boots.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":0,"name":"Spacewalking Boots","description":"Go on your feet","creator":"00000000-0000-0000-0000-000000000000","mass":3.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"22917d5e-313a-4470-a91e-0c78f1e08044","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Stealth Coating.json b/GameData/CompoundCommodityData/Stealth Coating.json new file mode 100644 index 000000000..a62887128 --- /dev/null +++ b/GameData/CompoundCommodityData/Stealth Coating.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":4,"name":"Stealth Coating","description":null,"creator":"00000000-0000-0000-0000-000000000000","mass":2.0,"shape":null,"specificHeat":1.5,"conductivity":1.0,"price":0,"id":"33944941-5bd1-43ca-91a4-348c253f7e8b","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Super Tough Toffee.json b/GameData/CompoundCommodityData/Super Tough Toffee.json new file mode 100644 index 000000000..d8ae34d4a --- /dev/null +++ b/GameData/CompoundCommodityData/Super Tough Toffee.json @@ -0,0 +1 @@ +{"demandProfile":{"0e91c198-d6c6-4d28-a7e0-d5316db3b7d0":0.25,"3f608054-8e4a-43fb-926c-261da4cc92d9":0.75},"category":1,"name":"Super Tough Toffee","description":"Revenge is sweet. Jawbreaker toffee is sweeter. (leftovers are excellent for ship repair!) ","creator":"00000000-0000-0000-0000-000000000000","mass":2.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"498c664d-05ff-45a0-b3b6-2b98feec8611","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Support Strut.json b/GameData/CompoundCommodityData/Support Strut.json new file mode 100644 index 000000000..7ad7f9f53 --- /dev/null +++ b/GameData/CompoundCommodityData/Support Strut.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":4,"name":"Support Strut","description":"This genre of metal only has 400 fans! Keeps things from falling apart.","creator":"00000000-0000-0000-0000-000000000000","mass":5.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"6dc76b7c-65c3-4cc1-bc2a-eace8e4f58d2","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Sure Bet Sherbet Fountain.json b/GameData/CompoundCommodityData/Sure Bet Sherbet Fountain.json new file mode 100644 index 000000000..560fc32d1 --- /dev/null +++ b/GameData/CompoundCommodityData/Sure Bet Sherbet Fountain.json @@ -0,0 +1 @@ +{"demandProfile":{"2103d2d5-bf5c-4dd9-9381-c90f1e39496f":0.75,"3f608054-8e4a-43fb-926c-261da4cc92d9":0.75},"category":1,"name":"Sure Bet Sherbet Fountain","description":"Each fizzy, sweet-tart purchase enters you automatically into an annual lottery held by Miss Terri’s. What’s the prize? Well, it wouldn’t be fun if we told you, would it?* *by purchasing this candy you agree to 1 non negotiable entry into the annual Sugar Bowl Lottery. Winning entrants are required by law to appear at the Miss Terri’s main factory on BonBon 26 on a date to be specified by the MTSSC Legal team. No unauthorized absences will be tolerated.","creator":"00000000-0000-0000-0000-000000000000","mass":3.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"3689a855-9264-40f0-91b3-8b235dac80b6","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Travel Permit.json b/GameData/CompoundCommodityData/Travel Permit.json new file mode 100644 index 000000000..a357fbf76 --- /dev/null +++ b/GameData/CompoundCommodityData/Travel Permit.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":2,"name":"Travel Permit","description":"Allows for travel between specified territories. For Limited Espionage Permits as specified in Subsection 1121!, Clause W of the Unified Government Corporate Rights and Privileges Amendment (Not recognized in the Terri-Tory) please submit your application in person at the offices on the surface of your local sun. ","creator":"00000000-0000-0000-0000-000000000000","mass":0.0,"shape":null,"specificHeat":0.0,"conductivity":1.0,"price":0,"id":"4081eb4c-3376-4912-a230-c43096d90ad1","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Trigger.json b/GameData/CompoundCommodityData/Trigger.json new file mode 100644 index 000000000..ad14bc1dc --- /dev/null +++ b/GameData/CompoundCommodityData/Trigger.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":5,"name":"Trigger","description":"Makes you happy. And fires your weapon.","creator":"00000000-0000-0000-0000-000000000000","mass":0.2,"shape":null,"specificHeat":0.0,"conductivity":1.0,"price":0,"id":"40004417-d242-47d2-9f27-1bbcf8548779","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Trousers.json b/GameData/CompoundCommodityData/Trousers.json new file mode 100644 index 000000000..c966166f8 --- /dev/null +++ b/GameData/CompoundCommodityData/Trousers.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":0,"name":"Trousers","description":"Goes on your legs.","creator":"00000000-0000-0000-0000-000000000000","mass":1.0,"shape":null,"specificHeat":0.0,"conductivity":1.0,"price":0,"id":"515734e6-4287-470c-bf56-188c4b257420","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/CompoundCommodityData/Universal Translator.json b/GameData/CompoundCommodityData/Universal Translator.json new file mode 100644 index 000000000..f556ccf88 --- /dev/null +++ b/GameData/CompoundCommodityData/Universal Translator.json @@ -0,0 +1 @@ +{"demandProfile":{},"category":3,"name":"Universal Translator","description":"Speaks your language. And Everyone elses! Downloaded directly into your brain.","creator":"00000000-0000-0000-0000-000000000000","mass":0.0,"shape":null,"specificHeat":0.0,"conductivity":1.0,"price":0,"id":"3a33da73-ba06-4574-afec-d529097408b5","$type":"CompoundCommodityData"} \ No newline at end of file diff --git a/GameData/DockingBayData/Medium Docking Bay.json b/GameData/DockingBayData/Medium Docking Bay.json new file mode 100644 index 000000000..937250353 --- /dev/null +++ b/GameData/DockingBayData/Medium Docking Bay.json @@ -0,0 +1 @@ +{"maxSize":[18,18],"interiorShape":{"name":[[true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true]]},"schematic":"","behaviors":[],"durability":1000.0,"minTemp":-3.8451617E-06,"maxTemp":673.15,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":1.0,"actionIcon":null,"soundBank":0,"audioStats":[],"name":"Medium Docking Bay","description":null,"creator":"8443f966-0d88-4ec7-a20e-8edf73fa62f6","mass":750.0,"shape":{"name":[[true,true,true,true],[true,true,true,true],[true,true,true,true],[true,true,true,true]]},"specificHeat":0.75,"conductivity":1.0,"price":500000,"id":"3e930a2c-ac72-4385-98aa-1c5b0b90db46","$type":"DockingBayData"} \ No newline at end of file diff --git a/GameData/Faction/Adrasteia.json b/GameData/Faction/Adrasteia.json new file mode 100644 index 000000000..5e70ecc65 --- /dev/null +++ b/GameData/Faction/Adrasteia.json @@ -0,0 +1 @@ +{"name":"Adrasteia","shortName":"Adrasteia","description":"The best defense is not to need one.","logo":"","personality":{},"primaryColor":[0.09,0.123157874,0.3],"secondaryColor":[0.4032,0.760051847,0.8],"nameFile":"95c298ae-d7b4-4481-9fff-deb3eb5872e9","bossHull":"bb5d9f73-612f-4060-8fb4-f72d6b93b616","influence":3,"allegiance":{"16bad4f9-7fb5-41c5-8da0-dc76709eb7d3":0.389,"1dfaa629-6c63-42a7-91e1-f1ae90f92f09":0.811,"2f74e6b4-d268-48a9-b2a8-24591c680e84":0.607,"73d368dd-58a8-4431-b9ba-2d44754d36a1":0.233,"8419f9bc-0167-46ec-86c3-3265d2905fbc":0.434,"8443f966-0d88-4ec7-a20e-8edf73fa62f6":0.559,"a012e0f4-4b22-47b7-8b24-ff3e1439c949":0.155,"a1f76631-d6d1-443a-9be1-c9b1267d6ca2":0.957,"a9672650-c335-484a-9555-71a35c841aa1":0.251,"adfb9b08-aabc-45c6-9586-915698a9c4b0":0.881,"bbd619ed-76c1-464c-829d-3f419cdc2525":1.0,"d6466821-6776-4f40-9609-2342debf5c86":0.978},"overworldMusic":0,"combatMusic":0,"bossMusic":0,"id":"bbd619ed-76c1-464c-829d-3f419cdc2525","$type":"Faction"} \ No newline at end of file diff --git a/GameData/Faction/Aeronautics Unlimited.json b/GameData/Faction/Aeronautics Unlimited.json new file mode 100644 index 000000000..2ee239398 --- /dev/null +++ b/GameData/Faction/Aeronautics Unlimited.json @@ -0,0 +1 @@ +{"name":"Aeronautics Unlimited","shortName":"AU","description":"\"Quick expansion and retrieval of resources is key to a successful quarter, every quarter.\"","logo":"Assets/Resources/Sprites/Icons/Tech/Tex_skill_47.PNG","personality":{"0e91c198-d6c6-4d28-a7e0-d5316db3b7d0":0.3,"2103d2d5-bf5c-4dd9-9381-c90f1e39496f":0.65},"primaryColor":[0.3294118,0.498696,0.8392157],"secondaryColor":[0.270588279,0.8117647,0.5093596],"nameFile":"350eac1f-ecca-4439-9a86-7bcef44f780c","bossHull":"bb5d9f73-612f-4060-8fb4-f72d6b93b616","influence":5,"allegiance":{"16bad4f9-7fb5-41c5-8da0-dc76709eb7d3":0.794,"1dfaa629-6c63-42a7-91e1-f1ae90f92f09":0.498,"2f74e6b4-d268-48a9-b2a8-24591c680e84":0.415,"73d368dd-58a8-4431-b9ba-2d44754d36a1":0.749,"8419f9bc-0167-46ec-86c3-3265d2905fbc":0.474,"8443f966-0d88-4ec7-a20e-8edf73fa62f6":1.0,"a012e0f4-4b22-47b7-8b24-ff3e1439c949":0.466,"a1f76631-d6d1-443a-9be1-c9b1267d6ca2":0.289,"a9672650-c335-484a-9555-71a35c841aa1":0.658,"adfb9b08-aabc-45c6-9586-915698a9c4b0":0.874,"bbd619ed-76c1-464c-829d-3f419cdc2525":0.414,"d6466821-6776-4f40-9609-2342debf5c86":0.306},"overworldMusic":0,"combatMusic":0,"bossMusic":0,"id":"8443f966-0d88-4ec7-a20e-8edf73fa62f6","$type":"Faction"} \ No newline at end of file diff --git a/GameData/Faction/Alakrita.json b/GameData/Faction/Alakrita.json new file mode 100644 index 000000000..f2af42a63 --- /dev/null +++ b/GameData/Faction/Alakrita.json @@ -0,0 +1 @@ +{"name":"Alakrita","shortName":"Alakrita","description":"Speed. Elegance. Alakrita.","logo":"","personality":{},"primaryColor":[0.04705884,0.628758132,0.745098054],"secondaryColor":[0.264150918,0.0,0.0],"nameFile":"86257ba5-2c68-4b6f-a269-7f02ff7372c3","bossHull":"bb5d9f73-612f-4060-8fb4-f72d6b93b616","influence":4,"allegiance":{"16bad4f9-7fb5-41c5-8da0-dc76709eb7d3":0.555,"1dfaa629-6c63-42a7-91e1-f1ae90f92f09":0.708,"2f74e6b4-d268-48a9-b2a8-24591c680e84":0.022,"73d368dd-58a8-4431-b9ba-2d44754d36a1":0.598,"8419f9bc-0167-46ec-86c3-3265d2905fbc":0.606,"8443f966-0d88-4ec7-a20e-8edf73fa62f6":0.284,"a012e0f4-4b22-47b7-8b24-ff3e1439c949":0.823,"a1f76631-d6d1-443a-9be1-c9b1267d6ca2":1.0,"a9672650-c335-484a-9555-71a35c841aa1":0.325,"adfb9b08-aabc-45c6-9586-915698a9c4b0":0.085,"bbd619ed-76c1-464c-829d-3f419cdc2525":0.908,"d6466821-6776-4f40-9609-2342debf5c86":0.809},"overworldMusic":0,"combatMusic":0,"bossMusic":0,"id":"a1f76631-d6d1-443a-9be1-c9b1267d6ca2","$type":"Faction"} \ No newline at end of file diff --git a/GameData/Faction/Death Monkey Explosives.json b/GameData/Faction/Death Monkey Explosives.json new file mode 100644 index 000000000..d5a921705 --- /dev/null +++ b/GameData/Faction/Death Monkey Explosives.json @@ -0,0 +1 @@ +{"name":"Death Monkey Explosives","shortName":"DME","description":"Some people just want to watch the world burn. We’re here to help!","logo":"","personality":{},"primaryColor":[0.8980392,0.564925969,0.0980392247],"secondaryColor":[0.819607854,0.279215753,0.196078435],"nameFile":"ecffecc1-d0b9-4014-be4d-442f72382721","bossHull":"bb5d9f73-612f-4060-8fb4-f72d6b93b616","influence":3,"allegiance":{"16bad4f9-7fb5-41c5-8da0-dc76709eb7d3":0.289,"1dfaa629-6c63-42a7-91e1-f1ae90f92f09":0.727,"2f74e6b4-d268-48a9-b2a8-24591c680e84":0.313,"73d368dd-58a8-4431-b9ba-2d44754d36a1":0.724,"8419f9bc-0167-46ec-86c3-3265d2905fbc":1.0,"8443f966-0d88-4ec7-a20e-8edf73fa62f6":0.544,"a012e0f4-4b22-47b7-8b24-ff3e1439c949":0.784,"a1f76631-d6d1-443a-9be1-c9b1267d6ca2":0.817,"a9672650-c335-484a-9555-71a35c841aa1":0.106,"adfb9b08-aabc-45c6-9586-915698a9c4b0":0.148,"bbd619ed-76c1-464c-829d-3f419cdc2525":0.973,"d6466821-6776-4f40-9609-2342debf5c86":0.973},"overworldMusic":0,"combatMusic":0,"bossMusic":0,"id":"8419f9bc-0167-46ec-86c3-3265d2905fbc","$type":"Faction"} \ No newline at end of file diff --git a/GameData/Faction/Ewan Hart Inc.json b/GameData/Faction/Ewan Hart Inc.json new file mode 100644 index 000000000..9da09e07f --- /dev/null +++ b/GameData/Faction/Ewan Hart Inc.json @@ -0,0 +1 @@ +{"name":"Ewan Hart Inc","shortName":"Ewan Hart","description":"Money does grow on trees","logo":"","personality":{},"primaryColor":[0.0,0.764151,0.299815148],"secondaryColor":[0.146092921,0.46226418,0.324359715],"nameFile":"cfbb1969-2a8c-40dd-9f5d-c1b9e69d356d","bossHull":"00000000-0000-0000-0000-000000000000","influence":2,"allegiance":{"16bad4f9-7fb5-41c5-8da0-dc76709eb7d3":0.874,"1dfaa629-6c63-42a7-91e1-f1ae90f92f09":0.162,"2f74e6b4-d268-48a9-b2a8-24591c680e84":0.953,"73d368dd-58a8-4431-b9ba-2d44754d36a1":0.559,"8419f9bc-0167-46ec-86c3-3265d2905fbc":0.233,"8443f966-0d88-4ec7-a20e-8edf73fa62f6":0.973,"a012e0f4-4b22-47b7-8b24-ff3e1439c949":0.491,"a1f76631-d6d1-443a-9be1-c9b1267d6ca2":0.166,"a9672650-c335-484a-9555-71a35c841aa1":1.0,"adfb9b08-aabc-45c6-9586-915698a9c4b0":0.875,"bbd619ed-76c1-464c-829d-3f419cdc2525":0.068,"d6466821-6776-4f40-9609-2342debf5c86":0.257},"overworldMusic":0,"combatMusic":0,"bossMusic":0,"id":"a9672650-c335-484a-9555-71a35c841aa1","$type":"Faction"} \ No newline at end of file diff --git a/GameData/Faction/Finch Cybernetics.json b/GameData/Faction/Finch Cybernetics.json new file mode 100644 index 000000000..2585b254b --- /dev/null +++ b/GameData/Faction/Finch Cybernetics.json @@ -0,0 +1 @@ +{"name":"Finch Cybernetics","shortName":"Finch","description":"“The search for knowledge is the duty of all intelligent beings.”","logo":"Assets/Resources/Sprites/Icons/Logos/finch.png","personality":{"0e91c198-d6c6-4d28-a7e0-d5316db3b7d0":0.2,"2103d2d5-bf5c-4dd9-9381-c90f1e39496f":0.25,"3f608054-8e4a-43fb-926c-261da4cc92d9":0.9,"8e5a2064-9603-4205-baf7-4d037ebfda90":0.4,"d6506d2d-3699-4c8c-8e90-5e4b8f2f43b9":0.7},"primaryColor":[0.4552703,0.0,1.0],"secondaryColor":[1.0,0.0,0.0],"nameFile":"43872e8e-df2f-4e03-81bb-e1d71f39b696","bossHull":"00000000-0000-0000-0000-000000000000","influence":5,"allegiance":{"16bad4f9-7fb5-41c5-8da0-dc76709eb7d3":0.262,"1dfaa629-6c63-42a7-91e1-f1ae90f92f09":1.0,"2f74e6b4-d268-48a9-b2a8-24591c680e84":0.567,"73d368dd-58a8-4431-b9ba-2d44754d36a1":0.215,"8419f9bc-0167-46ec-86c3-3265d2905fbc":0.651,"8443f966-0d88-4ec7-a20e-8edf73fa62f6":0.536,"a012e0f4-4b22-47b7-8b24-ff3e1439c949":0.848,"a1f76631-d6d1-443a-9be1-c9b1267d6ca2":0.628,"a9672650-c335-484a-9555-71a35c841aa1":0.481,"adfb9b08-aabc-45c6-9586-915698a9c4b0":0.638,"bbd619ed-76c1-464c-829d-3f419cdc2525":0.959,"d6466821-6776-4f40-9609-2342debf5c86":0.087},"overworldMusic":0,"combatMusic":0,"bossMusic":0,"id":"1dfaa629-6c63-42a7-91e1-f1ae90f92f09","$type":"Faction"} \ No newline at end of file diff --git a/GameData/Faction/Lightsail Express.json b/GameData/Faction/Lightsail Express.json new file mode 100644 index 000000000..3c46c7e68 --- /dev/null +++ b/GameData/Faction/Lightsail Express.json @@ -0,0 +1 @@ +{"name":"Lightsail Express","shortName":"Lightsail","description":"We’ll lose our lives before we lose your cargo.","logo":"","personality":{},"primaryColor":[0.324836552,0.270588249,0.596078455],"secondaryColor":[0.6690326,0.6629583,0.735849],"nameFile":"fc790c9c-8b47-4519-8f2c-2486185f9064","bossHull":"00000000-0000-0000-0000-000000000000","influence":3,"allegiance":{"16bad4f9-7fb5-41c5-8da0-dc76709eb7d3":0.754,"1dfaa629-6c63-42a7-91e1-f1ae90f92f09":0.181,"2f74e6b4-d268-48a9-b2a8-24591c680e84":1.0,"73d368dd-58a8-4431-b9ba-2d44754d36a1":0.333,"8419f9bc-0167-46ec-86c3-3265d2905fbc":0.313,"8443f966-0d88-4ec7-a20e-8edf73fa62f6":0.653,"a012e0f4-4b22-47b7-8b24-ff3e1439c949":0.544,"a1f76631-d6d1-443a-9be1-c9b1267d6ca2":0.056,"a9672650-c335-484a-9555-71a35c841aa1":0.792,"adfb9b08-aabc-45c6-9586-915698a9c4b0":0.967,"bbd619ed-76c1-464c-829d-3f419cdc2525":0.197,"d6466821-6776-4f40-9609-2342debf5c86":0.126},"overworldMusic":0,"combatMusic":0,"bossMusic":0,"id":"2f74e6b4-d268-48a9-b2a8-24591c680e84","$type":"Faction"} \ No newline at end of file diff --git a/GameData/Faction/Lucent Media.json b/GameData/Faction/Lucent Media.json new file mode 100644 index 000000000..d2de55124 --- /dev/null +++ b/GameData/Faction/Lucent Media.json @@ -0,0 +1 @@ +{"name":"Lucent Media","shortName":"Lucent","description":"“People will do anything for the adulation or loathing of their peers. We at Lucent have harnessed that heretofore destructive tendency for the benefit of all.”","logo":"Assets/Resources/Sprites/Icons/Logos/lucent.png","personality":{"0e91c198-d6c6-4d28-a7e0-d5316db3b7d0":0.7,"2103d2d5-bf5c-4dd9-9381-c90f1e39496f":0.9,"3f608054-8e4a-43fb-926c-261da4cc92d9":0.3,"8e5a2064-9603-4205-baf7-4d037ebfda90":0.6,"d6506d2d-3699-4c8c-8e90-5e4b8f2f43b9":0.2},"primaryColor":[0.8396226,0.04356533,0.3411568],"secondaryColor":[0.821494758,0.08962262,1.0],"nameFile":"35f90a4b-460c-416c-9a4e-f7e661850787","bossHull":"bb5d9f73-612f-4060-8fb4-f72d6b93b616","influence":6,"allegiance":{"16bad4f9-7fb5-41c5-8da0-dc76709eb7d3":0.252,"1dfaa629-6c63-42a7-91e1-f1ae90f92f09":0.679,"2f74e6b4-d268-48a9-b2a8-24591c680e84":0.305,"73d368dd-58a8-4431-b9ba-2d44754d36a1":0.914,"8419f9bc-0167-46ec-86c3-3265d2905fbc":0.831,"8443f966-0d88-4ec7-a20e-8edf73fa62f6":0.808,"a012e0f4-4b22-47b7-8b24-ff3e1439c949":1.0,"a1f76631-d6d1-443a-9be1-c9b1267d6ca2":0.714,"a9672650-c335-484a-9555-71a35c841aa1":0.329,"adfb9b08-aabc-45c6-9586-915698a9c4b0":0.333,"bbd619ed-76c1-464c-829d-3f419cdc2525":0.583,"d6466821-6776-4f40-9609-2342debf5c86":0.53},"overworldMusic":0,"combatMusic":0,"bossMusic":0,"id":"a012e0f4-4b22-47b7-8b24-ff3e1439c949","$type":"Faction"} \ No newline at end of file diff --git a/GameData/Faction/Miss Terri’s Sugariffic Snack Company.json b/GameData/Faction/Miss Terri’s Sugariffic Snack Company.json new file mode 100644 index 000000000..2a5eba80a --- /dev/null +++ b/GameData/Faction/Miss Terri’s Sugariffic Snack Company.json @@ -0,0 +1 @@ +{"name":"Miss Terri’s Sugariffic Snack Company","shortName":"Miss Terri's","description":"Candy for all! Suspiciously experimental substances for some!","logo":"Assets/Resources/Sprites/Icons/Logos/miss_terri.png","personality":{"0e91c198-d6c6-4d28-a7e0-d5316db3b7d0":0.75,"2103d2d5-bf5c-4dd9-9381-c90f1e39496f":0.9,"3f608054-8e4a-43fb-926c-261da4cc92d9":0.8},"primaryColor":[1.0,0.0500000119,0.6796082],"secondaryColor":[0.9150943,0.9150943,0.9150943],"nameFile":"8af167f7-2ac7-4cba-b204-25f5a6ba5f33","bossHull":"00000000-0000-0000-0000-000000000000","influence":2,"allegiance":{"16bad4f9-7fb5-41c5-8da0-dc76709eb7d3":0.048,"1dfaa629-6c63-42a7-91e1-f1ae90f92f09":0.587,"2f74e6b4-d268-48a9-b2a8-24591c680e84":0.429,"73d368dd-58a8-4431-b9ba-2d44754d36a1":0.914,"8419f9bc-0167-46ec-86c3-3265d2905fbc":1.0,"8443f966-0d88-4ec7-a20e-8edf73fa62f6":0.402,"a012e0f4-4b22-47b7-8b24-ff3e1439c949":0.802,"a1f76631-d6d1-443a-9be1-c9b1267d6ca2":0.718,"a9672650-c335-484a-9555-71a35c841aa1":0.216,"adfb9b08-aabc-45c6-9586-915698a9c4b0":0.059,"bbd619ed-76c1-464c-829d-3f419cdc2525":0.939,"d6466821-6776-4f40-9609-2342debf5c86":1.0},"overworldMusic":237948771,"combatMusic":0,"bossMusic":0,"id":"d6466821-6776-4f40-9609-2342debf5c86","$type":"Faction"} \ No newline at end of file diff --git a/GameData/Faction/NiteLife Energy.json b/GameData/Faction/NiteLife Energy.json new file mode 100644 index 000000000..64c4d3843 --- /dev/null +++ b/GameData/Faction/NiteLife Energy.json @@ -0,0 +1 @@ +{"name":"NiteLife Energy","shortName":"NiteLife","description":"We keep the lights on, so you can keep on keeping on.","logo":"","personality":{},"primaryColor":[0.2235294,0.611764669,1.0],"secondaryColor":[0.7075472,0.2236116,0.7007313],"nameFile":"d0959e52-7726-4510-bdaa-c267c58f2855","bossHull":"bb5d9f73-612f-4060-8fb4-f72d6b93b616","influence":4,"allegiance":{"16bad4f9-7fb5-41c5-8da0-dc76709eb7d3":0.25,"1dfaa629-6c63-42a7-91e1-f1ae90f92f09":0.5,"2f74e6b4-d268-48a9-b2a8-24591c680e84":0.2,"73d368dd-58a8-4431-b9ba-2d44754d36a1":1.0,"8419f9bc-0167-46ec-86c3-3265d2905fbc":0.9,"8443f966-0d88-4ec7-a20e-8edf73fa62f6":0.75,"a012e0f4-4b22-47b7-8b24-ff3e1439c949":1.0,"a1f76631-d6d1-443a-9be1-c9b1267d6ca2":0.75,"a9672650-c335-484a-9555-71a35c841aa1":0.6,"adfb9b08-aabc-45c6-9586-915698a9c4b0":0.25,"bbd619ed-76c1-464c-829d-3f419cdc2525":0.5,"d6466821-6776-4f40-9609-2342debf5c86":0.75},"overworldMusic":0,"combatMusic":0,"bossMusic":0,"id":"73d368dd-58a8-4431-b9ba-2d44754d36a1","$type":"Faction"} \ No newline at end of file diff --git a/GameData/Faction/Rossum & Douglas.json b/GameData/Faction/Rossum & Douglas.json new file mode 100644 index 000000000..50eaeeb9f --- /dev/null +++ b/GameData/Faction/Rossum & Douglas.json @@ -0,0 +1 @@ +{"name":"Rossum & Douglas","shortName":"R&D","description":null,"logo":"","personality":{},"primaryColor":[0.735849,0.689622641,0.510234952],"secondaryColor":[0.254717,0.254717,0.254717],"nameFile":"dfb8e9b0-31cd-4ff9-b6f3-bae707469e7c","bossHull":"bb5d9f73-612f-4060-8fb4-f72d6b93b616","influence":5,"allegiance":{"16bad4f9-7fb5-41c5-8da0-dc76709eb7d3":0.5,"1dfaa629-6c63-42a7-91e1-f1ae90f92f09":0.8,"2f74e6b4-d268-48a9-b2a8-24591c680e84":0.6,"73d368dd-58a8-4431-b9ba-2d44754d36a1":0.4,"8419f9bc-0167-46ec-86c3-3265d2905fbc":0.1,"8443f966-0d88-4ec7-a20e-8edf73fa62f6":1.0,"a012e0f4-4b22-47b7-8b24-ff3e1439c949":0.3,"a1f76631-d6d1-443a-9be1-c9b1267d6ca2":0.25,"a9672650-c335-484a-9555-71a35c841aa1":0.6,"bbd619ed-76c1-464c-829d-3f419cdc2525":0.75,"d6466821-6776-4f40-9609-2342debf5c86":0.1},"overworldMusic":0,"combatMusic":0,"bossMusic":0,"id":"adfb9b08-aabc-45c6-9586-915698a9c4b0","$type":"Faction"} \ No newline at end of file diff --git a/GameData/Faction/Zhestokost.json b/GameData/Faction/Zhestokost.json new file mode 100644 index 000000000..763893646 --- /dev/null +++ b/GameData/Faction/Zhestokost.json @@ -0,0 +1 @@ +{"name":"Zhestokost","shortName":"Zhestokost","description":"\"It is a truth universally acknowledged that nothing is as useful in diplomacy and warfare as a gigantic nuclear arsenal.\"","logo":"Assets/Resources/Sprites/Icons/Logos/colferv.png","personality":{"0e91c198-d6c6-4d28-a7e0-d5316db3b7d0":0.25,"2103d2d5-bf5c-4dd9-9381-c90f1e39496f":0.3},"primaryColor":[1.0,0.0500000119,0.0500000119],"secondaryColor":[1.0,1.0,0.0500000119],"nameFile":"5fb6de6e-616e-478c-9323-58f197af51b9","bossHull":"bb5d9f73-612f-4060-8fb4-f72d6b93b616","influence":6,"allegiance":{"16bad4f9-7fb5-41c5-8da0-dc76709eb7d3":1.0,"1dfaa629-6c63-42a7-91e1-f1ae90f92f09":0.162,"2f74e6b4-d268-48a9-b2a8-24591c680e84":0.724,"73d368dd-58a8-4431-b9ba-2d44754d36a1":0.186,"8419f9bc-0167-46ec-86c3-3265d2905fbc":0.305,"8443f966-0d88-4ec7-a20e-8edf73fa62f6":0.632,"a012e0f4-4b22-47b7-8b24-ff3e1439c949":0.325,"a1f76631-d6d1-443a-9be1-c9b1267d6ca2":0.153,"a9672650-c335-484a-9555-71a35c841aa1":0.541,"adfb9b08-aabc-45c6-9586-915698a9c4b0":0.919,"bbd619ed-76c1-464c-829d-3f419cdc2525":0.027,"d6466821-6776-4f40-9609-2342debf5c86":0.182},"overworldMusic":3285854189,"combatMusic":681474673,"bossMusic":3119006570,"id":"16bad4f9-7fb5-41c5-8da0-dc76709eb7d3","$type":"Faction"} \ No newline at end of file diff --git a/GameData/GearData/Arctica.json b/GameData/GearData/Arctica.json new file mode 100644 index 000000000..770554609 --- /dev/null +++ b/GameData/GearData/Arctica.json @@ -0,0 +1 @@ +{"hardpointType":6,"schematic":"","behaviors":[{"targetTemp":273.15,"highPass":true,"adjustable":false,"group":0,"$type":"ThermotoggleData"},{"emissivity":{"min":2.0,"max":5.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.25,"qualityExponent":1.5},"pumpedHeat":{"min":750.0,"max":4000.0,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.5,"qualityExponent":2.0},"temperatureFloor":273.15,"wasteHeat":{"min":75.0,"max":50.0,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.5,"qualityExponent":1.5},"energyUsage":{"min":3.0,"max":2.0,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.5,"qualityExponent":1.25},"thermalMass":{"min":65.0,"max":105.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":2.0},"group":0,"$type":"RadiatorData"},{"perSecond":true,"group":0,"$type":"WearData"}],"durability":30.0,"minTemp":223.15,"maxTemp":473.15,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":2.0,"actionIcon":"","soundBank":0,"audioStats":[],"name":"Arctica","description":"Go blazingly fast, without burning up.","creator":"a1f76631-d6d1-443a-9be1-c9b1267d6ca2","mass":50.0,"shape":{"name":[[true],[true]]},"specificHeat":1.0,"conductivity":1.0,"price":350000,"id":"2935b4d4-2ad5-4b90-8416-a85bbb38171b","$type":"GearData"} \ No newline at end of file diff --git a/GameData/GearData/Assembly Line.json b/GameData/GearData/Assembly Line.json new file mode 100644 index 000000000..39176b917 --- /dev/null +++ b/GameData/GearData/Assembly Line.json @@ -0,0 +1 @@ +{"hardpointType":1,"schematic":"","behaviors":[null],"durability":0.0,"minTemp":273.15,"maxTemp":373.15,"heatCurve":null,"resilience":1.0,"actionIcon":null,"soundBank":0,"audioStats":[],"name":"Assembly Line","description":"Yup it updated.","creator":"00000000-0000-0000-0000-000000000000","mass":1300.0,"shape":{"name":[[true]]},"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"a4d971ab-d312-461e-814a-15210606c51d","$type":"GearData"} \ No newline at end of file diff --git a/GameData/GearData/Cockpit 2x2.json b/GameData/GearData/Cockpit 2x2.json new file mode 100644 index 000000000..f6beceedd --- /dev/null +++ b/GameData/GearData/Cockpit 2x2.json @@ -0,0 +1 @@ +{"hardpointType":12,"schematic":"","behaviors":[{"targetTemp":288.15,"highPass":false,"adjustable":false,"group":0,"$type":"ThermotoggleData"},{"draw":{"min":25.0,"max":25.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"perSecond":true,"group":0,"$type":"EnergyDrawData"},{"group":1,"$type":"CockpitData"},{"heat":{"min":200.0,"max":200.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"perSecond":true,"group":0,"$type":"HeatData"},{"perSecond":true,"group":0,"$type":"WearData"}],"durability":100.0,"minTemp":223.15,"maxTemp":398.15,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":5.0,"actionIcon":null,"soundBank":0,"audioStats":[],"name":"Cockpit 2x2","description":"","creator":"2f74e6b4-d268-48a9-b2a8-24591c680e84","mass":50.0,"shape":{"name":[[true,true],[true,true]]},"specificHeat":1.0,"conductivity":1.0,"price":50000,"id":"31325c3d-0537-40ec-9e5e-80930ea01496","$type":"GearData"} \ No newline at end of file diff --git a/GameData/GearData/Core Power.json b/GameData/GearData/Core Power.json new file mode 100644 index 000000000..89dc2a510 --- /dev/null +++ b/GameData/GearData/Core Power.json @@ -0,0 +1 @@ +{"hardpointType":5,"schematic":"","behaviors":[{"charge":{"min":100.0,"max":100.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.5},"efficiency":{"min":0.05,"max":0.1,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.8},"overload":{"min":0.001,"max":0.005,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":2.0},"underload":{"min":1.5,"max":3.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.75},"group":0,"$type":"ReactorData"},{"perSecond":false,"group":0,"$type":"WearData"}],"durability":100.0,"minTemp":200.0,"maxTemp":450.0,"heatCurve":{"keys":[]},"resilience":250.0,"actionIcon":null,"soundBank":0,"audioStats":[],"name":"Core Power","description":"It gets the job done, but that's all.","creator":"00000000-0000-0000-0000-000000000000","mass":50.0,"shape":{"name":[[true,true],[true,true]]},"specificHeat":2.5,"conductivity":1.0,"price":250000,"id":"4bc1fe6f-347a-425e-be1b-997920175bee","$type":"GearData"} \ No newline at end of file diff --git a/GameData/GearData/Deep Ore Extractor.json b/GameData/GearData/Deep Ore Extractor.json new file mode 100644 index 000000000..2ca09924f --- /dev/null +++ b/GameData/GearData/Deep Ore Extractor.json @@ -0,0 +1 @@ +{"hardpointType":1,"schematic":"","behaviors":[null],"durability":0.0,"minTemp":273.15,"maxTemp":373.15,"heatCurve":null,"resilience":1.0,"actionIcon":null,"soundBank":0,"audioStats":[],"name":"Deep Ore Extractor","description":"Get the most out of your resource rights! The Deep Ore Extractor ensures that any planet or asteroid you choose to mine will be left a hollow, barren husk, just as nature intended.","creator":"00000000-0000-0000-0000-000000000000","mass":550.0,"shape":{"name":[[true]]},"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"518e1b4c-4c6c-4a9a-903f-940e3ac91ad5","$type":"GearData"} \ No newline at end of file diff --git a/GameData/GearData/Industrial Thermostatic Heater.json b/GameData/GearData/Industrial Thermostatic Heater.json new file mode 100644 index 000000000..6c6bd57cf --- /dev/null +++ b/GameData/GearData/Industrial Thermostatic Heater.json @@ -0,0 +1 @@ +{"hardpointType":1,"schematic":"","behaviors":[{"targetTemp":288.15,"highPass":false,"adjustable":false,"group":0,"$type":"ThermotoggleData"},{"draw":{"min":1000.0,"max":2500.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.0},"perSecond":true,"group":0,"$type":"EnergyDrawData"},{"heat":{"min":50000.0,"max":100000.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.0},"perSecond":true,"group":0,"$type":"HeatData"}],"durability":0.0,"minTemp":150.0,"maxTemp":400.0,"heatCurve":null,"resilience":1.0,"actionIcon":null,"soundBank":0,"audioStats":[],"name":"Industrial Thermostatic Heater","description":null,"creator":"00000000-0000-0000-0000-000000000000","mass":250.0,"shape":{"name":[[false,true,true,false],[true,true,true,true],[true,true,true,true],[false,true,true,false]]},"specificHeat":2.0,"conductivity":1.0,"price":0,"id":"2c911da4-fad0-4a38-be5b-5e327c0c9e43","$type":"GearData"} \ No newline at end of file diff --git a/GameData/GearData/Large Drive.json b/GameData/GearData/Large Drive.json new file mode 100644 index 000000000..8f6666016 --- /dev/null +++ b/GameData/GearData/Large Drive.json @@ -0,0 +1 @@ +{"hardpointType":3,"schematic":"","behaviors":[{"thrust":{"min":250000.0,"max":250000.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.0},"visibility":{"min":100.0,"max":100.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.0},"heat":{"min":2500.0,"max":2500.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.0},"energy":{"min":0.0,"max":0.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"Particles":"Assets/Resources/Prefabs/Thrusters/Thruster 1.prefab","group":0,"$type":"ThrusterData"},{"perSecond":true,"group":0,"$type":"WearData"}],"durability":100.0,"minTemp":200.0,"maxTemp":400.0,"heatCurve":null,"resilience":10.0,"actionIcon":null,"soundBank":0,"audioStats":[],"name":"Large Drive","description":"Keeps you going and going and going...","creator":"00000000-0000-0000-0000-000000000000","mass":100.0,"shape":{"name":[[true,true],[true,true]]},"specificHeat":2.5,"conductivity":5.0,"price":100000,"id":"5cd802dd-ef0e-4303-bd87-c30988326e4b","$type":"GearData"} \ No newline at end of file diff --git a/GameData/GearData/Long Radiator.json b/GameData/GearData/Long Radiator.json new file mode 100644 index 000000000..8fdd8cf57 --- /dev/null +++ b/GameData/GearData/Long Radiator.json @@ -0,0 +1 @@ +{"hardpointType":6,"schematic":"","behaviors":[{"targetTemp":273.15,"highPass":true,"adjustable":false,"group":0,"$type":"ThermotoggleData"},{"emissivity":{"min":15.0,"max":15.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"pumpedHeat":{"min":2500.0,"max":2500.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"temperatureFloor":278.15,"wasteHeat":{"min":100.0,"max":100.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"energyUsage":{"min":1.0,"max":1.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"thermalMass":{"min":0.0,"max":0.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"group":0,"$type":"RadiatorData"},{"perSecond":true,"group":0,"$type":"WearData"}],"durability":100.0,"minTemp":223.15,"maxTemp":473.15,"heatCurve":null,"resilience":1.0,"actionIcon":null,"soundBank":0,"audioStats":[],"name":"Long Radiator","description":null,"creator":"00000000-0000-0000-0000-000000000000","mass":50.0,"shape":{"name":[[true],[true],[true],[true]]},"specificHeat":1.0,"conductivity":1.0,"price":150000,"id":"4b019503-1865-4bad-a6e9-c85b558aacea","$type":"GearData"} \ No newline at end of file diff --git a/GameData/GearData/Manhattan.json b/GameData/GearData/Manhattan.json new file mode 100644 index 000000000..7d3241642 --- /dev/null +++ b/GameData/GearData/Manhattan.json @@ -0,0 +1 @@ +{"hardpointType":5,"schematic":"","behaviors":[{"charge":{"min":500.0,"max":1000.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.125,"qualityExponent":1.5},"efficiency":{"min":0.05,"max":0.15,"heatExponentMultiplier":0.03125,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"overload":{"min":0.0005,"max":0.005,"heatExponentMultiplier":0.03125,"durabilityExponentMultiplier":0.25,"qualityExponent":3.0},"underload":{"min":1.5,"max":3.0,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.125,"qualityExponent":1.75},"group":0,"$type":"ReactorData"},{"perSecond":true,"group":0,"$type":"WearData"}],"durability":100.0,"minTemp":200.0,"maxTemp":450.0,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":10.0,"actionIcon":"","soundBank":2204642885,"audioStats":[],"name":"Manhattan","description":"Because might is right and finesse is for fools","creator":"16bad4f9-7fb5-41c5-8da0-dc76709eb7d3","mass":500.0,"shape":{"name":[[true,true,true],[true,true,true],[true,true,true]]},"specificHeat":2.5,"conductivity":1.0,"price":750000,"id":"3baa2c43-b389-4438-94cb-fbb04489cd77","$type":"GearData"} \ No newline at end of file diff --git a/GameData/GearData/MoveOnPro.json b/GameData/GearData/MoveOnPro.json new file mode 100644 index 000000000..b0c0103a0 --- /dev/null +++ b/GameData/GearData/MoveOnPro.json @@ -0,0 +1 @@ +{"hardpointType":5,"schematic":"","behaviors":[{"charge":{"min":25.0,"max":125.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.25,"qualityExponent":1.5},"efficiency":{"min":0.015,"max":0.1,"heatExponentMultiplier":0.0625,"durabilityExponentMultiplier":0.125,"qualityExponent":2.0},"overload":{"min":0.00025,"max":0.005,"heatExponentMultiplier":0.0625,"durabilityExponentMultiplier":0.125,"qualityExponent":2.5},"underload":{"min":2.5,"max":20.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.25,"qualityExponent":2.25},"group":0,"$type":"ReactorData"},{"perSecond":true,"group":0,"$type":"WearData"}],"durability":100.0,"minTemp":200.0,"maxTemp":500.0,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":5.0,"actionIcon":"","soundBank":2204642885,"audioStats":[],"name":"MoveOnPro","description":"The only muon catalyst fusion reactor on the market! Always gets a great reaction.","creator":"73d368dd-58a8-4431-b9ba-2d44754d36a1","mass":300.0,"shape":{"name":[[true,true],[true,true]]},"specificHeat":2.5,"conductivity":1.0,"price":900000,"id":"372d23cc-5ef0-42b5-9d96-807f2e412b0d","$type":"GearData"} \ No newline at end of file diff --git a/GameData/GearData/Notorious.json b/GameData/GearData/Notorious.json new file mode 100644 index 000000000..136ae3145 --- /dev/null +++ b/GameData/GearData/Notorious.json @@ -0,0 +1 @@ +{"hardpointType":5,"schematic":"","behaviors":[{"charge":{"min":400.0,"max":1200.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.125,"qualityExponent":2.0},"efficiency":{"min":0.025,"max":0.1,"heatExponentMultiplier":0.0625,"durabilityExponentMultiplier":0.25,"qualityExponent":2.5},"overload":{"min":0.0005,"max":0.005,"heatExponentMultiplier":0.0625,"durabilityExponentMultiplier":0.25,"qualityExponent":3.0},"underload":{"min":3.0,"max":12.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.25,"qualityExponent":1.75},"group":0,"$type":"ReactorData"},{"perSecond":true,"group":0,"$type":"WearData"}],"durability":100.0,"minTemp":250.0,"maxTemp":450.0,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":10.0,"actionIcon":"","soundBank":2204642885,"audioStats":[],"name":"Notorious","description":"A reactor for those who want the biggest reaction","creator":"a012e0f4-4b22-47b7-8b24-ff3e1439c949","mass":750.0,"shape":{"name":[[true,true,true],[true,true,true],[true,true,true]]},"specificHeat":2.5,"conductivity":1.0,"price":1000000,"id":"394612a6-9198-4797-a69b-c70cd0ee3273","$type":"GearData"} \ No newline at end of file diff --git a/GameData/GearData/OK Disperser.json b/GameData/GearData/OK Disperser.json new file mode 100644 index 000000000..fb9e7ef26 --- /dev/null +++ b/GameData/GearData/OK Disperser.json @@ -0,0 +1 @@ +{"hardpointType":6,"schematic":"","behaviors":[{"targetTemp":273.15,"highPass":true,"adjustable":false,"group":0,"$type":"ThermotoggleData"},{"emissivity":{"min":4.0,"max":8.0,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.5,"qualityExponent":1.75},"pumpedHeat":{"min":1000.0,"max":4000.0,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.5,"qualityExponent":2.0},"temperatureFloor":278.15,"wasteHeat":{"min":500.0,"max":100.0,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.5,"qualityExponent":1.5},"energyUsage":{"min":6.0,"max":3.0,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.5,"qualityExponent":1.75},"thermalMass":{"min":75.0,"max":125.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":2.0},"group":0,"$type":"RadiatorData"},{"perSecond":true,"group":0,"$type":"WearData"}],"durability":100.0,"minTemp":223.15,"maxTemp":473.15,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":1.0,"actionIcon":"","soundBank":0,"audioStats":[],"name":"OK Disperser","description":"Adapted from the patented cooling system Lucent uses in their professional gaming setups. A high quality cooler, built to withstand even the most aggressive of rage quits.","creator":"a012e0f4-4b22-47b7-8b24-ff3e1439c949","mass":150.0,"shape":{"name":[[true,true],[true,true]]},"specificHeat":1.0,"conductivity":1.0,"price":250000,"id":"542169f2-363c-41f7-8d6d-60a5bd7578bd","$type":"GearData"} \ No newline at end of file diff --git a/GameData/GearData/PotaT+-.json b/GameData/GearData/PotaT+-.json new file mode 100644 index 000000000..f42b0eff1 --- /dev/null +++ b/GameData/GearData/PotaT+-.json @@ -0,0 +1 @@ +{"hardpointType":1,"schematic":"","behaviors":[{"capacity":{"min":50.0,"max":150.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.0625,"qualityExponent":2.0},"efficiency":{"min":0.5,"max":0.99,"heatExponentMultiplier":0.0625,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"group":0,"$type":"CapacitorData"}],"durability":50.0,"minTemp":200.0,"maxTemp":500.0,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":1.0,"actionIcon":null,"soundBank":0,"audioStats":[],"name":"PotaT+-","description":"[TODO]","creator":"73d368dd-58a8-4431-b9ba-2d44754d36a1","mass":75.0,"shape":{"name":[[true]]},"specificHeat":1.0,"conductivity":1.0,"price":75000,"id":"34b15c33-c01f-4712-ac75-5fcf779f0685","$type":"GearData"} \ No newline at end of file diff --git a/GameData/GearData/Refinery.json b/GameData/GearData/Refinery.json new file mode 100644 index 000000000..2ab0f7f55 --- /dev/null +++ b/GameData/GearData/Refinery.json @@ -0,0 +1 @@ +{"hardpointType":1,"schematic":"","behaviors":[null],"durability":0.0,"minTemp":273.15,"maxTemp":373.15,"heatCurve":null,"resilience":1.0,"actionIcon":null,"soundBank":0,"audioStats":[],"name":"Refinery","description":"Generates plastics, refines raw materials, creates larger molecules","creator":"00000000-0000-0000-0000-000000000000","mass":1300.0,"shape":{"name":[[true]]},"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"18a67053-2407-4bd7-90ca-9c19891594a9","$type":"GearData"} \ No newline at end of file diff --git a/GameData/GearData/Shipyard.json b/GameData/GearData/Shipyard.json new file mode 100644 index 000000000..de86dfb69 --- /dev/null +++ b/GameData/GearData/Shipyard.json @@ -0,0 +1 @@ +{"hardpointType":1,"schematic":"","behaviors":[null],"durability":0.0,"minTemp":273.15,"maxTemp":373.15,"heatCurve":null,"resilience":1.0,"actionIcon":null,"soundBank":0,"audioStats":[],"name":"Shipyard","description":null,"creator":"00000000-0000-0000-0000-000000000000","mass":10000.0,"shape":{"name":[[true]]},"specificHeat":0.0,"conductivity":1.0,"price":0,"id":"c6b994e6-a366-46b2-bc43-8a81944039f0","$type":"GearData"} \ No newline at end of file diff --git a/GameData/GearData/Small Radiator.json b/GameData/GearData/Small Radiator.json new file mode 100644 index 000000000..726ff1a0e --- /dev/null +++ b/GameData/GearData/Small Radiator.json @@ -0,0 +1 @@ +{"hardpointType":6,"schematic":"","behaviors":[{"targetTemp":273.15,"highPass":true,"adjustable":false,"group":0,"$type":"ThermotoggleData"},{"emissivity":{"min":5.0,"max":5.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"pumpedHeat":{"min":1000.0,"max":1000.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"temperatureFloor":278.15,"wasteHeat":{"min":100.0,"max":100.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"energyUsage":{"min":1.0,"max":1.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"thermalMass":{"min":0.0,"max":0.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"group":0,"$type":"RadiatorData"},{"perSecond":true,"group":0,"$type":"WearData"}],"durability":100.0,"minTemp":223.15,"maxTemp":473.15,"heatCurve":null,"resilience":1.0,"actionIcon":null,"soundBank":0,"audioStats":[],"name":"Small Radiator","description":null,"creator":"00000000-0000-0000-0000-000000000000","mass":50.0,"shape":{"name":[[true],[true]]},"specificHeat":1.0,"conductivity":1.0,"price":50000,"id":"bc3870ae-8e31-45ec-99d9-745a4262f78a","$type":"GearData"} \ No newline at end of file diff --git a/GameData/GearData/Surface Ore Extractor.json b/GameData/GearData/Surface Ore Extractor.json new file mode 100644 index 000000000..c4bd66a29 --- /dev/null +++ b/GameData/GearData/Surface Ore Extractor.json @@ -0,0 +1 @@ +{"hardpointType":1,"schematic":"","behaviors":[],"durability":0.0,"minTemp":273.15,"maxTemp":373.15,"heatCurve":null,"resilience":1.0,"actionIcon":null,"soundBank":0,"audioStats":[],"name":"Surface Ore Extractor","description":"Just scratching the surface here.","creator":"00000000-0000-0000-0000-000000000000","mass":450.0,"shape":{"name":[[true]]},"specificHeat":0.0,"conductivity":1.0,"price":0,"id":"35ab1554-3ab1-4bc9-9325-2bf0348df084","$type":"GearData"} \ No newline at end of file diff --git a/GameData/GearData/The Bat.json b/GameData/GearData/The Bat.json new file mode 100644 index 000000000..4dbd9d0a4 --- /dev/null +++ b/GameData/GearData/The Bat.json @@ -0,0 +1 @@ +{"hardpointType":8,"schematic":"","behaviors":[{"sensitivity":{"min":0.0001,"max":0.0001,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.5},"sensCurve":null,"pingBoost":{"min":10000.0,"max":20000.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.125,"qualityExponent":2.0},"pingEnergy":{"min":50.0,"max":50.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"pingVisibility":{"min":5000.0,"max":1000.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.125,"qualityExponent":2.0},"pingRange":{"min":1000.0,"max":2000.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.125,"qualityExponent":2.0},"pingCooldown":{"min":5.0,"max":2.0,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.125,"qualityExponent":2.0},"pingDuration":2.0,"pingRadiusExponent":0.5,"group":0,"$type":"SensorData"}],"durability":50.0,"minTemp":200.0,"maxTemp":400.0,"heatCurve":null,"resilience":1.0,"actionIcon":null,"soundBank":0,"audioStats":[],"name":"The Bat","description":"","creator":"00000000-0000-0000-0000-000000000000","mass":10.0,"shape":{"name":[[true]]},"specificHeat":1.0,"conductivity":1.0,"price":75000,"id":"72859489-677a-47a4-ae04-550e582ba29e","$type":"GearData"} \ No newline at end of file diff --git a/GameData/GearData/Traction.json b/GameData/GearData/Traction.json new file mode 100644 index 000000000..0c61669e1 --- /dev/null +++ b/GameData/GearData/Traction.json @@ -0,0 +1 @@ +{"hardpointType":13,"schematic":"","behaviors":[{"diameters":[3.0,2.0,0.5],"masses":[30.0,20.0,5.0],"rpm":{"min":40000.0,"max":80000.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"couplingLambdas":[0.5,1.0,1.0],"lambdaMultiplier":{"min":1.0,"max":1.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"couplingEfficiency":{"min":0.85,"max":0.95,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"torque":{"min":750000.0,"max":1750000.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"torqueProfile":{"keys":[[0.0,1.0,-3.91729,-3.91729],[1.0,0.03112793,-1.73879516,-1.73879516]]},"draw":{"min":1.0,"max":1.25,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":2.0},"passiveCoupling":{"min":0.01,"max":0.001,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"rpmAudio":2008207144,"torqueAudio":2808571831,"particles":"Assets/Resources/Prefabs/Thrusters/Aether Drive.prefab","group":0,"$type":"AetherDriveData"},{"perSecond":false,"group":0,"$type":"WearData"}],"durability":100.0,"minTemp":200.0,"maxTemp":450.0,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":250.0,"actionIcon":"","soundBank":2492857755,"audioStats":[{"parameter":1345552351,"stat":{"min":1.0,"max":0.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.5,"qualityExponent":0.25}}],"name":"Traction","description":"[TODO]","creator":"8443f966-0d88-4ec7-a20e-8edf73fa62f6","mass":75.0,"shape":{"name":[[true,true],[true,true]]},"specificHeat":2.5,"conductivity":1.0,"price":250000,"id":"42d1ffaa-f764-4a65-ba03-43cc4e6fd2bc","$type":"GearData"} \ No newline at end of file diff --git a/GameData/GearData/Tractor Beam.json b/GameData/GearData/Tractor Beam.json new file mode 100644 index 000000000..ef4c9881f --- /dev/null +++ b/GameData/GearData/Tractor Beam.json @@ -0,0 +1 @@ +{"hardpointType":8,"schematic":"","behaviors":[],"durability":0.0,"minTemp":-3.8451617E-06,"maxTemp":-3.8451617E-06,"heatCurve":null,"resilience":1.0,"actionIcon":null,"soundBank":0,"audioStats":[],"name":"Tractor Beam","description":"Trap your enemies in gravity wells. Haul thousands of tons of hay through space!","creator":"00000000-0000-0000-0000-000000000000","mass":86.0,"shape":{"name":[[true]]},"specificHeat":0.0,"conductivity":1.0,"price":0,"id":"7d14649c-a3b6-47c5-ab74-201b90072e2c","$type":"GearData"} \ No newline at end of file diff --git a/GameData/GearData/Turret Control Module.json b/GameData/GearData/Turret Control Module.json new file mode 100644 index 000000000..2d8258e47 --- /dev/null +++ b/GameData/GearData/Turret Control Module.json @@ -0,0 +1 @@ +{"hardpointType":12,"schematic":"","behaviors":[{"draw":{"min":25.0,"max":25.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"perSecond":true,"group":0,"$type":"EnergyDrawData"},{"group":0,"$type":"TurretControllerData"}],"durability":100.0,"minTemp":173.15,"maxTemp":523.15,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":1.0,"actionIcon":null,"soundBank":0,"audioStats":[],"name":"Turret Control Module","description":"","creator":"8443f966-0d88-4ec7-a20e-8edf73fa62f6","mass":10.0,"shape":{"name":[[true]]},"specificHeat":1.0,"conductivity":1.0,"price":25000,"id":"2b2777c0-b756-4e19-9bf6-e5bac3cc385c","$type":"GearData"} \ No newline at end of file diff --git a/GameData/GearData/Vulcan.json b/GameData/GearData/Vulcan.json new file mode 100644 index 000000000..fe2ece343 --- /dev/null +++ b/GameData/GearData/Vulcan.json @@ -0,0 +1 @@ +{"hardpointType":5,"schematic":"","behaviors":[{"charge":{"min":50.0,"max":200.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.25,"qualityExponent":1.5},"efficiency":{"min":0.0025,"max":0.025,"heatExponentMultiplier":0.0625,"durabilityExponentMultiplier":0.125,"qualityExponent":2.0},"overload":{"min":0.00025,"max":0.005,"heatExponentMultiplier":0.0625,"durabilityExponentMultiplier":0.125,"qualityExponent":2.5},"underload":{"min":1.0,"max":6.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.25,"qualityExponent":2.25},"group":0,"$type":"ReactorData"},{"perSecond":true,"group":0,"$type":"WearData"}],"durability":100.0,"minTemp":200.0,"maxTemp":500.0,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":5.0,"actionIcon":"","soundBank":2204642885,"audioStats":[],"name":"Vulcan","description":"High output, high heat. Blaze across the cosmos like the comet you were meant to be.","creator":"8443f966-0d88-4ec7-a20e-8edf73fa62f6","mass":500.0,"shape":{"name":[[false,true,true,false],[true,true,true,true],[true,true,true,true],[false,true,true,false]]},"specificHeat":2.5,"conductivity":1.0,"price":1150000,"id":"205efba0-16af-477b-80e9-c9597cead5b4","$type":"GearData"} \ No newline at end of file diff --git a/GameData/GearData/cold like my heart.json b/GameData/GearData/cold like my heart.json new file mode 100644 index 000000000..2e63279a4 --- /dev/null +++ b/GameData/GearData/cold like my heart.json @@ -0,0 +1 @@ +{"hardpointType":6,"schematic":"","behaviors":[{"targetTemp":273.15,"highPass":true,"adjustable":false,"group":0,"$type":"ThermotoggleData"},{"emissivity":{"min":3.0,"max":6.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.25,"qualityExponent":1.5},"pumpedHeat":{"min":1000.0,"max":5000.0,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.5,"qualityExponent":2.0},"temperatureFloor":273.15,"wasteHeat":{"min":100.0,"max":300.0,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.5,"qualityExponent":1.5},"energyUsage":{"min":2.0,"max":1.0,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.5,"qualityExponent":1.25},"thermalMass":{"min":175.0,"max":225.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":2.0},"group":0,"$type":"RadiatorData"},{"perSecond":true,"group":0,"$type":"WearData"}],"durability":60.0,"minTemp":223.15,"maxTemp":473.15,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":2.0,"actionIcon":"","soundBank":0,"audioStats":[],"name":"cold like my heart","description":"nothing can touch me/ i'm an agent of entropy/ heat death in a bottle like a molotov cocktail","creator":"8419f9bc-0167-46ec-86c3-3265d2905fbc","mass":250.0,"shape":{"name":[[true],[true]]},"specificHeat":1.0,"conductivity":1.0,"price":500000,"id":"20e9f41a-6bd2-4f6c-9740-7b707614509c","$type":"GearData"} \ No newline at end of file diff --git a/GameData/GearData/deep space burnout.json b/GameData/GearData/deep space burnout.json new file mode 100644 index 000000000..a130da7a2 --- /dev/null +++ b/GameData/GearData/deep space burnout.json @@ -0,0 +1 @@ +{"hardpointType":3,"schematic":"","behaviors":[{"thrust":{"min":250000.0,"max":1000000.0,"heatExponentMultiplier":0.0625,"durabilityExponentMultiplier":0.5,"qualityExponent":2.0},"visibility":{"min":100.0,"max":400.0,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.25,"qualityExponent":1.5},"heat":{"min":4000.0,"max":12000.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.125,"qualityExponent":1.0},"energy":{"min":0.0,"max":0.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"Particles":"Assets/Resources/Prefabs/Thrusters/Thruster 1.prefab","group":0,"$type":"ThrusterData"},{"perSecond":true,"group":0,"$type":"WearData"}],"durability":100.0,"minTemp":200.0,"maxTemp":400.0,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":15.0,"actionIcon":null,"soundBank":0,"audioStats":[],"name":"deep space burnout","description":"go go go go go/ get the drift/ you'll burn before you stop ","creator":"8419f9bc-0167-46ec-86c3-3265d2905fbc","mass":150.0,"shape":{"name":[[true,true],[true,true]]},"specificHeat":2.5,"conductivity":5.0,"price":200000,"id":"04255796-db68-48d2-81e5-8cfdab150706","$type":"GearData"} \ No newline at end of file diff --git a/GameData/GearData/not if i see you first.json b/GameData/GearData/not if i see you first.json new file mode 100644 index 000000000..095b4fa67 --- /dev/null +++ b/GameData/GearData/not if i see you first.json @@ -0,0 +1 @@ +{"hardpointType":8,"schematic":"","behaviors":[{"sensitivity":{"min":0.25,"max":1.5,"heatExponentMultiplier":0.4,"durabilityExponentMultiplier":0.4,"qualityExponent":1.5},"sensCurve":{"keys":[[0.0,1.0,0.0,0.0],[1.0,0.0,-1.76562428,-1.76562428]]},"pingBoost":{"min":5.0,"max":15.0,"heatExponentMultiplier":0.0625,"durabilityExponentMultiplier":0.125,"qualityExponent":2.0},"pingEnergy":{"min":150.0,"max":100.0,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"pingVisibility":{"min":5000.0,"max":1000.0,"heatExponentMultiplier":0.5,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"pingRange":{"min":1000.0,"max":5000.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"pingCooldown":{"min":20.0,"max":5.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.125,"qualityExponent":2.0},"pingDuration":2.0,"pingRadiusExponent":0.5,"group":0,"$type":"SensorData"}],"durability":50.0,"minTemp":200.0,"maxTemp":400.0,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":1.0,"actionIcon":null,"soundBank":0,"audioStats":[],"name":"not if i see you first","description":"[TODO]","creator":"8419f9bc-0167-46ec-86c3-3265d2905fbc","mass":200.0,"shape":{"name":[[true,true],[true,true]]},"specificHeat":1.0,"conductivity":1.0,"price":250000,"id":"480d6cc4-cd8a-49b6-9c89-211033e7c1d5","$type":"GearData"} \ No newline at end of file diff --git a/GameData/HullData/LonginusX.json b/GameData/HullData/LonginusX.json new file mode 100644 index 000000000..773782d8e --- /dev/null +++ b/GameData/HullData/LonginusX.json @@ -0,0 +1 @@ +{"hardpoints":[{"type":12,"position":[2,6],"shape":{"name":[[true,true],[true,true]]},"transform":null,"rotation":0,"armor":50.0},{"type":13,"position":[2,3],"shape":{"name":[[true,true],[true,true]]},"transform":"Drive","rotation":0,"armor":10.0},{"type":9,"position":[1,8],"shape":{"name":[[true,true]]},"transform":"En.L","rotation":0,"armor":20.0},{"type":9,"position":[4,8],"shape":{"name":[[true,true]]},"transform":"En.R","rotation":0,"armor":20.0},{"type":11,"position":[0,5],"shape":{"name":[[true,true,true]]},"transform":"La.L","rotation":0,"armor":30.0},{"type":11,"position":[5,5],"shape":{"name":[[true,true,true]]},"transform":"La.R","rotation":0,"armor":30.0},{"type":6,"position":[1,2],"shape":{"name":[[true,true]]},"transform":"Ra.L","rotation":1,"armor":10.0},{"type":6,"position":[4,2],"shape":{"name":[[true,true]]},"transform":"Ra.R","rotation":3,"armor":10.0},{"type":5,"position":[2,1],"shape":{"name":[[true,true],[true,true]]},"transform":"Reactor","rotation":0,"armor":0.0},{"type":8,"position":[3,10],"shape":{"name":[[true]]},"transform":null,"rotation":0,"armor":5.0}],"prefab":"Assets/Resources/Prefabs/Ships/Longinus.prefab","hullType":0,"gridOffset":3.0,"armor":10.0,"drag":0.1,"canTow":false,"schematic":"Assets/Resources/Schematics/schema_Longinus.png","behaviors":[{"crossSection":{"min":500.0,"max":150.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":1.0,"qualityExponent":2.0},"group":0,"$type":"ReflectorData"}],"durability":500.0,"minTemp":173.15,"maxTemp":573.15,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":1.0,"actionIcon":"","soundBank":85412153,"audioStats":[],"name":"LonginusX","description":null,"creator":"a1f76631-d6d1-443a-9be1-c9b1267d6ca2","mass":2500.0,"shape":{"name":[[false,false,false,false,true,true,true,true,true,false,false,false,false,false,false,false,false],[true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false],[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false],[false,false,false,false,true,true,true,true,true,false,false,false,false,false,false,false,false]]},"specificHeat":1.0,"conductivity":32.0,"price":7500000,"id":"445d911a-9951-40a3-874e-0b7ce8b35129","$type":"HullData"} \ No newline at end of file diff --git a/GameData/HullData/Turret.json b/GameData/HullData/Turret.json new file mode 100644 index 000000000..803407be7 --- /dev/null +++ b/GameData/HullData/Turret.json @@ -0,0 +1 @@ +{"hardpoints":[{"type":6,"position":[0,2],"shape":{"name":[[true,true,true,true]]},"transform":null,"rotation":1,"armor":10.0},{"type":6,"position":[7,2],"shape":{"name":[[true,true,true,true]]},"transform":null,"rotation":3,"armor":10.0},{"type":10,"position":[1,2],"shape":{"name":[[true,true,true,true],[true,true,true,true]]},"transform":"Left Gun","rotation":0,"armor":20.0},{"type":10,"position":[5,2],"shape":{"name":[[true,true,true,true],[true,true,true,true]]},"transform":"Right Gun","rotation":0,"armor":20.0},{"type":5,"position":[3,3],"shape":{"name":[[true,true],[true,true]]},"transform":null,"rotation":0,"armor":0.0},{"type":12,"position":[3,5],"shape":{"name":[[true]]},"transform":null,"rotation":0,"armor":0.0},{"type":8,"position":[4,5],"shape":{"name":[[true]]},"transform":null,"rotation":0,"armor":10.0}],"prefab":"Assets/Resources/Prefabs/Turrets/Turret.prefab","hullType":2,"gridOffset":12.0,"armor":10.0,"drag":0.0,"canTow":false,"schematic":"","behaviors":[{"crossSection":{"min":250.0,"max":250.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"group":0,"$type":"ReflectorData"}],"durability":100.0,"minTemp":123.149986,"maxTemp":773.15,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":5.0,"actionIcon":null,"soundBank":0,"audioStats":[],"name":"Turret","description":null,"creator":"16bad4f9-7fb5-41c5-8da0-dc76709eb7d3","mass":500.0,"shape":{"name":[[false,false,true,true,true,true,false,false],[false,true,true,true,true,true,true,false],[true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true],[false,true,true,true,true,true,true,false],[false,false,true,true,true,true,false,false]]},"specificHeat":1.0,"conductivity":32.0,"price":500000,"id":"b867b35f-0bb4-4b85-b967-9a35832deb69","$type":"HullData"} \ No newline at end of file diff --git a/GameData/NameFile/8af167f7-2ac7-4cba-b204-25f5a6ba5f33.msgpack b/GameData/NameFile/Australia.msgpack similarity index 100% rename from GameData/NameFile/8af167f7-2ac7-4cba-b204-25f5a6ba5f33.msgpack rename to GameData/NameFile/Australia.msgpack diff --git a/GameData/NameFile/35f90a4b-460c-416c-9a4e-f7e661850787.msgpack b/GameData/NameFile/Congo.msgpack similarity index 100% rename from GameData/NameFile/35f90a4b-460c-416c-9a4e-f7e661850787.msgpack rename to GameData/NameFile/Congo.msgpack diff --git a/GameData/NameFile/dfb8e9b0-31cd-4ff9-b6f3-bae707469e7c.msgpack b/GameData/NameFile/Germany.msgpack similarity index 100% rename from GameData/NameFile/dfb8e9b0-31cd-4ff9-b6f3-bae707469e7c.msgpack rename to GameData/NameFile/Germany.msgpack diff --git a/GameData/NameFile/95c298ae-d7b4-4481-9fff-deb3eb5872e9.msgpack b/GameData/NameFile/India.msgpack similarity index 100% rename from GameData/NameFile/95c298ae-d7b4-4481-9fff-deb3eb5872e9.msgpack rename to GameData/NameFile/India.msgpack diff --git a/GameData/NameFile/ecffecc1-d0b9-4014-be4d-442f72382721.msgpack b/GameData/NameFile/Iran.msgpack similarity index 100% rename from GameData/NameFile/ecffecc1-d0b9-4014-be4d-442f72382721.msgpack rename to GameData/NameFile/Iran.msgpack diff --git a/GameData/NameFile/43872e8e-df2f-4e03-81bb-e1d71f39b696.msgpack b/GameData/NameFile/Japan.msgpack similarity index 100% rename from GameData/NameFile/43872e8e-df2f-4e03-81bb-e1d71f39b696.msgpack rename to GameData/NameFile/Japan.msgpack diff --git a/GameData/NameFile/350eac1f-ecca-4439-9a86-7bcef44f780c.msgpack b/GameData/NameFile/Mexico.msgpack similarity index 100% rename from GameData/NameFile/350eac1f-ecca-4439-9a86-7bcef44f780c.msgpack rename to GameData/NameFile/Mexico.msgpack diff --git a/GameData/NameFile/5fb6de6e-616e-478c-9323-58f197af51b9.msgpack b/GameData/NameFile/Russia.msgpack similarity index 100% rename from GameData/NameFile/5fb6de6e-616e-478c-9323-58f197af51b9.msgpack rename to GameData/NameFile/Russia.msgpack diff --git a/GameData/NameFile/fc790c9c-8b47-4519-8f2c-2486185f9064.msgpack b/GameData/NameFile/Swahili.msgpack similarity index 100% rename from GameData/NameFile/fc790c9c-8b47-4519-8f2c-2486185f9064.msgpack rename to GameData/NameFile/Swahili.msgpack diff --git a/GameData/NameFile/d0959e52-7726-4510-bdaa-c267c58f2855.msgpack b/GameData/NameFile/Thailand.msgpack similarity index 100% rename from GameData/NameFile/d0959e52-7726-4510-bdaa-c267c58f2855.msgpack rename to GameData/NameFile/Thailand.msgpack diff --git a/GameData/NameFile/cfbb1969-2a8c-40dd-9f5d-c1b9e69d356d.msgpack b/GameData/NameFile/USA.msgpack similarity index 100% rename from GameData/NameFile/cfbb1969-2a8c-40dd-9f5d-c1b9e69d356d.msgpack rename to GameData/NameFile/USA.msgpack diff --git a/GameData/NameFile/86257ba5-2c68-4b6f-a269-7f02ff7372c3.msgpack b/GameData/NameFile/pleiades.msgpack similarity index 100% rename from GameData/NameFile/86257ba5-2c68-4b6f-a269-7f02ff7372c3.msgpack rename to GameData/NameFile/pleiades.msgpack diff --git a/GameData/PersonalityAttribute/Agreeableness.json b/GameData/PersonalityAttribute/Agreeableness.json new file mode 100644 index 000000000..52062e076 --- /dev/null +++ b/GameData/PersonalityAttribute/Agreeableness.json @@ -0,0 +1 @@ +{"name":"Agreeableness","low":"challenging/detached","high":"friendly/compassionate","id":"0e91c198-d6c6-4d28-a7e0-d5316db3b7d0","$type":"PersonalityAttribute"} \ No newline at end of file diff --git a/GameData/PersonalityAttribute/Extraversion.json b/GameData/PersonalityAttribute/Extraversion.json new file mode 100644 index 000000000..5facf56a9 --- /dev/null +++ b/GameData/PersonalityAttribute/Extraversion.json @@ -0,0 +1 @@ +{"name":"Extraversion","low":"solitary/reserved","high":"outgoing/energetic","id":"2103d2d5-bf5c-4dd9-9381-c90f1e39496f","$type":"PersonalityAttribute"} \ No newline at end of file diff --git a/GameData/PersonalityAttribute/Openness.json b/GameData/PersonalityAttribute/Openness.json new file mode 100644 index 000000000..cf427539a --- /dev/null +++ b/GameData/PersonalityAttribute/Openness.json @@ -0,0 +1 @@ +{"name":"Openness","low":"consistent/cautious","high":"inventive/curious","id":"3f608054-8e4a-43fb-926c-261da4cc92d9","$type":"PersonalityAttribute"} \ No newline at end of file diff --git a/GameData/PlayerSettings.msgpack b/GameData/PlayerSettings.msgpack index 774b7c881..4a928cd16 100644 --- a/GameData/PlayerSettings.msgpack +++ b/GameData/PlayerSettings.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:eb59659d0706f53d82adbe4c1e65cf806a6c749dbb9b1dd37d063d334794f249 -size 66094 +oid sha256:9c20f21772ea7ff1422048212eebe3b3dfddb441a83902e35f8623f9c9c1a739 +size 156286 diff --git a/GameData/SimpleCommodityData/Algae.json b/GameData/SimpleCommodityData/Algae.json new file mode 100644 index 000000000..18d2c4ba5 --- /dev/null +++ b/GameData/SimpleCommodityData/Algae.json @@ -0,0 +1 @@ +{"maxStackSize":10,"category":4,"name":"Algae","description":null,"creator":"00000000-0000-0000-0000-000000000000","mass":1.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"2e08445d-c130-497c-9fb3-8d752a24e654","$type":"SimpleCommodityData"} \ No newline at end of file diff --git a/GameData/SimpleCommodityData/Animal Products.json b/GameData/SimpleCommodityData/Animal Products.json new file mode 100644 index 000000000..90adc5e69 --- /dev/null +++ b/GameData/SimpleCommodityData/Animal Products.json @@ -0,0 +1 @@ +{"maxStackSize":10,"category":4,"name":"Animal Products","description":null,"creator":"00000000-0000-0000-0000-000000000000","mass":1.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"7e9783b7-ab6c-4c50-bb99-4f1f3a3e240d","$type":"SimpleCommodityData"} \ No newline at end of file diff --git a/GameData/SimpleCommodityData/Autocannon Ammo.json b/GameData/SimpleCommodityData/Autocannon Ammo.json new file mode 100644 index 000000000..ad972d5c7 --- /dev/null +++ b/GameData/SimpleCommodityData/Autocannon Ammo.json @@ -0,0 +1 @@ +{"maxStackSize":5,"category":5,"name":"Autocannon Ammo","description":null,"creator":"00000000-0000-0000-0000-000000000000","mass":1.0,"shape":{"name":[[true]]},"specificHeat":1.0,"conductivity":1.0,"price":1000,"id":"3085fc8a-ec0d-4f6f-a339-ea43edb573e6","$type":"SimpleCommodityData"} \ No newline at end of file diff --git a/GameData/SimpleCommodityData/Bacteria.json b/GameData/SimpleCommodityData/Bacteria.json new file mode 100644 index 000000000..afbb92324 --- /dev/null +++ b/GameData/SimpleCommodityData/Bacteria.json @@ -0,0 +1 @@ +{"maxStackSize":10,"category":4,"name":"Bacteria","description":null,"creator":"00000000-0000-0000-0000-000000000000","mass":1.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"3c6bb1cc-70d8-400b-8d69-9c81339758f3","$type":"SimpleCommodityData"} \ No newline at end of file diff --git a/GameData/SimpleCommodityData/Fungi.json b/GameData/SimpleCommodityData/Fungi.json new file mode 100644 index 000000000..a064a2b55 --- /dev/null +++ b/GameData/SimpleCommodityData/Fungi.json @@ -0,0 +1 @@ +{"maxStackSize":10,"category":4,"name":"Fungi","description":"Uses:\nRecyclers\nFood Source","creator":"00000000-0000-0000-0000-000000000000","mass":1.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"64bccb57-3aa8-4e5f-829d-07e62295b0c7","$type":"SimpleCommodityData"} \ No newline at end of file diff --git a/GameData/SimpleCommodityData/Gold.json b/GameData/SimpleCommodityData/Gold.json new file mode 100644 index 000000000..9fdd20b57 --- /dev/null +++ b/GameData/SimpleCommodityData/Gold.json @@ -0,0 +1 @@ +{"maxStackSize":10,"category":1,"name":"Gold","description":null,"creator":"00000000-0000-0000-0000-000000000000","mass":1.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"36746041-a5bd-4b95-aa18-294acaaeae62","$type":"SimpleCommodityData"} \ No newline at end of file diff --git a/GameData/SimpleCommodityData/Hydrogen.json b/GameData/SimpleCommodityData/Hydrogen.json new file mode 100644 index 000000000..0e4c33f0d --- /dev/null +++ b/GameData/SimpleCommodityData/Hydrogen.json @@ -0,0 +1 @@ +{"maxStackSize":10,"category":0,"name":"Hydrogen","description":null,"creator":"00000000-0000-0000-0000-000000000000","mass":0.25,"shape":null,"specificHeat":0.05,"conductivity":1.0,"price":0,"id":"4486cfad-3063-4667-80ae-5e4d615ee501","$type":"SimpleCommodityData"} \ No newline at end of file diff --git a/GameData/SimpleCommodityData/Methane.json b/GameData/SimpleCommodityData/Methane.json new file mode 100644 index 000000000..37a119eaa --- /dev/null +++ b/GameData/SimpleCommodityData/Methane.json @@ -0,0 +1 @@ +{"maxStackSize":10,"category":3,"name":"Methane","description":"Potential Fuel Source","creator":"00000000-0000-0000-0000-000000000000","mass":2.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"214fe497-cda4-4cdb-a7c4-fe656e5ff61c","$type":"SimpleCommodityData"} \ No newline at end of file diff --git a/GameData/SimpleCommodityData/New Metals.json b/GameData/SimpleCommodityData/New Metals.json new file mode 100644 index 000000000..741d47485 --- /dev/null +++ b/GameData/SimpleCommodityData/New Metals.json @@ -0,0 +1 @@ +{"maxStackSize":10,"category":1,"name":"New Metals","description":null,"creator":"00000000-0000-0000-0000-000000000000","mass":0.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"00b5b3b2-2fc5-4adb-a1d7-c1a35d19afd3","$type":"SimpleCommodityData"} \ No newline at end of file diff --git a/GameData/SimpleCommodityData/Potassium.json b/GameData/SimpleCommodityData/Potassium.json new file mode 100644 index 000000000..503215f40 --- /dev/null +++ b/GameData/SimpleCommodityData/Potassium.json @@ -0,0 +1 @@ +{"maxStackSize":10,"category":0,"name":"Potassium","description":"A relatively common simple element used primarily for weapons production. \r\n","creator":"00000000-0000-0000-0000-000000000000","mass":1.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"a8e259fc-fbf1-477a-8248-0277611f1859","$type":"SimpleCommodityData"} \ No newline at end of file diff --git a/GameData/SimpleCommodityData/Rock.json b/GameData/SimpleCommodityData/Rock.json new file mode 100644 index 000000000..a6e6f86e7 --- /dev/null +++ b/GameData/SimpleCommodityData/Rock.json @@ -0,0 +1 @@ +{"maxStackSize":10,"category":0,"name":"Rock","description":null,"creator":"00000000-0000-0000-0000-000000000000","mass":1.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"043997a8-0661-4206-ab8a-10215ecf4efc","$type":"SimpleCommodityData"} \ No newline at end of file diff --git a/GameData/SimpleCommodityData/Uranium.json b/GameData/SimpleCommodityData/Uranium.json new file mode 100644 index 000000000..2d25d5dc3 --- /dev/null +++ b/GameData/SimpleCommodityData/Uranium.json @@ -0,0 +1 @@ +{"maxStackSize":10,"category":1,"name":"Uranium","description":"Fuel Source","creator":"00000000-0000-0000-0000-000000000000","mass":3.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"08c07793-bc06-48dc-adc2-c7e61ef2cb2b","$type":"SimpleCommodityData"} \ No newline at end of file diff --git a/GameData/SimpleCommodityData/Water.json b/GameData/SimpleCommodityData/Water.json new file mode 100644 index 000000000..05a1d143e --- /dev/null +++ b/GameData/SimpleCommodityData/Water.json @@ -0,0 +1 @@ +{"maxStackSize":10,"category":3,"name":"Water","description":null,"creator":"00000000-0000-0000-0000-000000000000","mass":1.0,"shape":null,"specificHeat":1.0,"conductivity":1.0,"price":0,"id":"3acbb2bf-19fb-4591-bef1-dc9d5dde7e7a","$type":"SimpleCommodityData"} \ No newline at end of file diff --git a/GameData/WeaponItemData/6k Shooter.json b/GameData/WeaponItemData/6k Shooter.json new file mode 100644 index 000000000..5bb283a5e --- /dev/null +++ b/GameData/WeaponItemData/6k Shooter.json @@ -0,0 +1 @@ +{"range":2,"caliber":0,"weaponType":1,"fireTypes":0,"modifiers":16,"hardpointType":10,"schematic":"","behaviors":[{"count":{"min":1.0,"max":1.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"burstTime":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"cooldown":{"min":0.01,"max":0.01,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"ammoInterval":false,"damageType":0,"damage":{"min":4.0,"max":30.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.5,"qualityExponent":2.0},"penetration":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"damageSpread":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"minRange":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"range":{"min":1000.0,"max":2000.0,"heatExponentMultiplier":0.5,"durabilityExponentMultiplier":0.5,"qualityExponent":1.5},"damageCurve":{"keys":[[0.0,1.0,0.0,0.0],[1.0,0.0,-1.76562428,-1.76562428]]},"effect":"Assets/Resources/Prefabs/Weapons/ColferV/6k Shooter.prefab","energy":{"min":5.0,"max":5.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"heat":{"min":250.0,"max":500.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.0},"visibility":{"min":1000.0,"max":500.0,"heatExponentMultiplier":0.5,"durabilityExponentMultiplier":0.5,"qualityExponent":0.75},"ammo":"00000000-0000-0000-0000-000000000000","magSize":6,"reloadTime":2.0,"spread":{"min":0.5,"max":0.1,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.5,"qualityExponent":1.0},"velocity":{"min":500.0,"max":1250.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"group":0,"$type":"InstantWeaponData"}],"durability":50.0,"minTemp":173.15,"maxTemp":473.15,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":5.0,"actionIcon":"","soundBank":3678545986,"audioStats":[],"name":"6k Shooter","description":"The fastest gun in Elysium","creator":"16bad4f9-7fb5-41c5-8da0-dc76709eb7d3","mass":95.0,"shape":{"name":[[true,true]]},"specificHeat":1.0,"conductivity":1.0,"price":125000,"id":"679fb6a1-cefb-4adc-a49c-71942602196b","$type":"WeaponItemData"} \ No newline at end of file diff --git a/GameData/WeaponItemData/Autocannon.json b/GameData/WeaponItemData/Autocannon.json new file mode 100644 index 000000000..dbd5d6340 --- /dev/null +++ b/GameData/WeaponItemData/Autocannon.json @@ -0,0 +1 @@ +{"range":2,"caliber":1,"weaponType":1,"fireTypes":0,"modifiers":0,"hardpointType":10,"schematic":"","behaviors":[{"count":{"min":1.0,"max":1.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"burstTime":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"cooldown":{"min":0.5,"max":0.5,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"ammoInterval":false,"damageType":0,"damage":{"min":3.0,"max":3.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"penetration":{"min":0.25,"max":0.25,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"damageSpread":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"minRange":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"range":{"min":1000.0,"max":1000.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"damageCurve":null,"effect":"Assets/Resources/Prefabs/Weapons/AC5.prefab","energy":{"min":5.0,"max":5.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"heat":{"min":250.0,"max":250.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"visibility":{"min":1000.0,"max":1000.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"ammo":"3085fc8a-ec0d-4f6f-a339-ea43edb573e6","magSize":50,"reloadTime":3.0,"spread":{"min":0.5,"max":0.5,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"velocity":{"min":500.0,"max":500.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"group":0,"$type":"AutoWeaponData"}],"durability":100.0,"minTemp":173.15,"maxTemp":473.15,"heatCurve":null,"resilience":1.0,"actionIcon":null,"soundBank":0,"audioStats":[],"name":"Autocannon","description":"","creator":"00000000-0000-0000-0000-000000000000","mass":75.0,"shape":{"name":[[true,true],[true,true]]},"specificHeat":1.0,"conductivity":1.0,"price":250000,"id":"13116166-f0c8-43cf-a35f-8fd448bc630c","$type":"WeaponItemData"} \ No newline at end of file diff --git a/GameData/WeaponItemData/CShot RainbowLite Lazer.json b/GameData/WeaponItemData/CShot RainbowLite Lazer.json new file mode 100644 index 000000000..e3d7b594e --- /dev/null +++ b/GameData/WeaponItemData/CShot RainbowLite Lazer.json @@ -0,0 +1 @@ +{"range":2,"caliber":0,"weaponType":2,"fireTypes":0,"modifiers":0,"hardpointType":9,"schematic":"","behaviors":[{"count":{"min":1.0,"max":1.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"burstTime":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"cooldown":{"min":3.0,"max":1.0,"heatExponentMultiplier":0.2,"durabilityExponentMultiplier":0.4,"qualityExponent":2.0},"ammoInterval":false,"damageType":4,"damage":{"min":100.0,"max":600.0,"heatExponentMultiplier":0.5,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"penetration":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"damageSpread":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"minRange":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"range":{"min":1000.0,"max":3000.0,"heatExponentMultiplier":0.5,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"damageCurve":{"keys":[[0.0,1.0,0.0,0.0],[1.0,0.0,-1.76562428,-1.76562428]]},"effect":"Assets/Resources/Prefabs/Weapons/Lucent/RainbowLite.prefab","energy":{"min":50.0,"max":150.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.5},"heat":{"min":1000.0,"max":5000.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.5},"visibility":{"min":2000.0,"max":3000.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.25},"ammo":"00000000-0000-0000-0000-000000000000","magSize":1,"reloadTime":1.0,"spread":{"min":0.15,"max":0.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"velocity":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"group":0,"$type":"AutoWeaponData"}],"durability":150.0,"minTemp":250.0,"maxTemp":400.0,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":1.0,"actionIcon":"","soundBank":3364802794,"audioStats":[],"name":"CShot RainbowLite Lazer","description":"Light up the cold, infinite void with more than your smile! Our precision full spectrum lasers are both combat and concert ready.","creator":"a012e0f4-4b22-47b7-8b24-ff3e1439c949","mass":500.0,"shape":{"name":[[true,true,true],[true,true,true],[true,true,true]]},"specificHeat":1.0,"conductivity":1.0,"price":125000,"id":"03a842b2-295e-4cf7-9faa-ecc4bc54eb76","$type":"WeaponItemData"} \ No newline at end of file diff --git a/GameData/WeaponItemData/ChargeBlast SG.json b/GameData/WeaponItemData/ChargeBlast SG.json new file mode 100644 index 000000000..2ab9ff29f --- /dev/null +++ b/GameData/WeaponItemData/ChargeBlast SG.json @@ -0,0 +1 @@ +{"range":2,"caliber":1,"weaponType":4,"fireTypes":16,"modifiers":64,"hardpointType":9,"schematic":"","behaviors":[{"chargeTime":{"min":2.0,"max":1.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"chargeEnergy":{"min":75.0,"max":75.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"chargeHeat":{"min":2500.0,"max":2000.0,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.25,"qualityExponent":1.0},"canFireEarly":true,"failureCharge":4.0,"failureDamage":25.0,"chargeDamage":3.0,"chargeSpread":0.333,"chargeBurstCount":2.0,"chargeVisibility":5.0,"chargeVelocity":1.5,"chargeHeatMul":5.0,"count":{"min":5.0,"max":5.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"burstTime":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"cooldown":{"min":0.75,"max":0.4,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"ammoInterval":true,"damageType":2,"damage":{"min":50.0,"max":175.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.125,"qualityExponent":2.0},"penetration":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"damageSpread":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"minRange":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"range":{"min":450.0,"max":950.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"damageCurve":{"keys":[[0.0,1.0,0.0,0.0],[1.0,0.0,-1.76562428,-1.76562428]]},"effect":"Assets/Resources/Prefabs/Weapons/NiteLife/ChargeBlast SG.prefab","energy":{"min":25.0,"max":25.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"heat":{"min":250.0,"max":250.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"visibility":{"min":5000.0,"max":1000.0,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"ammo":"00000000-0000-0000-0000-000000000000","magSize":0,"reloadTime":2.0,"spread":{"min":3.0,"max":1.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.5,"qualityExponent":2.0},"velocity":{"min":250.0,"max":750.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"group":0,"$type":"ChargedWeaponData"}],"durability":150.0,"minTemp":223.15,"maxTemp":473.15,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":1.0,"actionIcon":"","soundBank":3364802794,"audioStats":[],"name":"ChargeBlast SG","description":"For those days when you really want to spread the pain around.","creator":"73d368dd-58a8-4431-b9ba-2d44754d36a1","mass":250.0,"shape":{"name":[[true,true],[true,true]]},"specificHeat":1.0,"conductivity":1.0,"price":350000,"id":"0d499d62-3b92-454b-9498-37d12616167f","$type":"WeaponItemData"} \ No newline at end of file diff --git a/GameData/WeaponItemData/ChargeBlast+-.json b/GameData/WeaponItemData/ChargeBlast+-.json new file mode 100644 index 000000000..ba97bb1fa --- /dev/null +++ b/GameData/WeaponItemData/ChargeBlast+-.json @@ -0,0 +1 @@ +{"range":2,"caliber":1,"weaponType":4,"fireTypes":16,"modifiers":0,"hardpointType":9,"schematic":"","behaviors":[{"chargeTime":{"min":2.0,"max":1.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"chargeEnergy":{"min":75.0,"max":75.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"chargeHeat":{"min":2500.0,"max":2000.0,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.25,"qualityExponent":1.0},"canFireEarly":true,"failureCharge":4.0,"failureDamage":25.0,"chargeDamage":3.0,"chargeSpread":0.333,"chargeBurstCount":2.0,"chargeVisibility":5.0,"chargeVelocity":1.5,"chargeHeatMul":5.0,"count":{"min":1.0,"max":1.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"burstTime":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"cooldown":{"min":0.75,"max":0.4,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"ammoInterval":true,"damageType":2,"damage":{"min":25.0,"max":110.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.125,"qualityExponent":2.0},"penetration":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"damageSpread":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"minRange":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"range":{"min":800.0,"max":1900.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"damageCurve":{"keys":[[0.0,1.0,0.0,0.0],[1.0,0.0,-1.76562428,-1.76562428]]},"effect":"Assets/Resources/Prefabs/Weapons/NiteLife/ChargeBlast+-.prefab","energy":{"min":25.0,"max":25.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"heat":{"min":250.0,"max":250.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"visibility":{"min":5000.0,"max":1000.0,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"ammo":"00000000-0000-0000-0000-000000000000","magSize":0,"reloadTime":2.0,"spread":{"min":1.0,"max":0.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.5,"qualityExponent":2.0},"velocity":{"min":250.0,"max":750.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"group":0,"$type":"ChargedWeaponData"}],"durability":185.0,"minTemp":223.15,"maxTemp":473.15,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":1.0,"actionIcon":"","soundBank":3364802794,"audioStats":[],"name":"ChargeBlast+-","description":"A knockout weapon, the arms equivalent of downing 9 shots of Tollgan Swamp liquor.","creator":"73d368dd-58a8-4431-b9ba-2d44754d36a1","mass":225.0,"shape":{"name":[[true,true],[true,true]]},"specificHeat":1.0,"conductivity":1.0,"price":275000,"id":"499f7891-c5df-4cbe-8431-9db7108102ec","$type":"WeaponItemData"} \ No newline at end of file diff --git a/GameData/WeaponItemData/ClearPath.json b/GameData/WeaponItemData/ClearPath.json new file mode 100644 index 000000000..4d21a70ef --- /dev/null +++ b/GameData/WeaponItemData/ClearPath.json @@ -0,0 +1 @@ +{"range":1,"caliber":0,"weaponType":1,"fireTypes":0,"modifiers":16,"hardpointType":10,"schematic":"","behaviors":[{"count":{"min":1.0,"max":1.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"burstTime":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"cooldown":{"min":0.1,"max":0.033,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"ammoInterval":false,"damageType":0,"damage":{"min":2.0,"max":6.0,"heatExponentMultiplier":0.0625,"durabilityExponentMultiplier":0.125,"qualityExponent":2.0},"penetration":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"damageSpread":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"minRange":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"range":{"min":250.0,"max":600.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"damageCurve":{"keys":[[0.0,1.0,0.0,0.0],[1.0,0.0,-1.76562428,-1.76562428]]},"effect":"Assets/Resources/Prefabs/Weapons/Lightsail/ClearPath.prefab","energy":{"min":1.0,"max":0.5,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.25,"qualityExponent":1.25},"heat":{"min":50.0,"max":10.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.5,"qualityExponent":1.5},"visibility":{"min":500.0,"max":100.0,"heatExponentMultiplier":0.5,"durabilityExponentMultiplier":0.125,"qualityExponent":1.5},"ammo":"00000000-0000-0000-0000-000000000000","magSize":0,"reloadTime":1.0,"spread":{"min":1.25,"max":0.25,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.5,"qualityExponent":1.25},"velocity":{"min":700.0,"max":1250.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.25,"qualityExponent":1.75},"group":0,"$type":"AutoWeaponData"}],"durability":75.0,"minTemp":223.15,"maxTemp":473.15,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":4.0,"actionIcon":"","soundBank":3678545986,"audioStats":[],"name":"ClearPath","description":"Defend your precious cargo and have fun doing it. Comes with optional sound effects.","creator":"2f74e6b4-d268-48a9-b2a8-24591c680e84","mass":50.0,"shape":{"name":[[true,true]]},"specificHeat":1.0,"conductivity":1.0,"price":50000,"id":"0271bb97-4ce8-4d64-97c3-8bfd3f76b2c6","$type":"WeaponItemData"} \ No newline at end of file diff --git a/GameData/WeaponItemData/ColdFire.json b/GameData/WeaponItemData/ColdFire.json new file mode 100644 index 000000000..6308ee466 --- /dev/null +++ b/GameData/WeaponItemData/ColdFire.json @@ -0,0 +1 @@ +{"range":2,"caliber":0,"weaponType":2,"fireTypes":0,"modifiers":0,"hardpointType":9,"schematic":"","behaviors":[{"count":{"min":1.0,"max":1.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"burstTime":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"cooldown":{"min":2.5,"max":1.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"ammoInterval":false,"damageType":4,"damage":{"min":40.0,"max":160.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"penetration":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"damageSpread":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"minRange":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"range":{"min":750.0,"max":2250.0,"heatExponentMultiplier":0.5,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"damageCurve":{"keys":[[0.0,1.0,0.0,0.0],[1.0,0.0,-1.76562428,-1.76562428]]},"effect":"Assets/Resources/Prefabs/Weapons/Adrasteia/ColdFire.prefab","energy":{"min":20.0,"max":50.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.5},"heat":{"min":500.0,"max":0.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.125,"qualityExponent":1.5},"visibility":{"min":300.0,"max":0.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.125,"qualityExponent":2.0},"ammo":"00000000-0000-0000-0000-000000000000","magSize":1,"reloadTime":1.0,"spread":{"min":0.05,"max":0.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.125,"qualityExponent":1.75},"velocity":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"group":0,"$type":"AutoWeaponData"}],"durability":25.0,"minTemp":263.15,"maxTemp":398.15,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":2.0,"actionIcon":"","soundBank":3364802794,"audioStats":[],"name":"ColdFire","description":"Operates by taking advantage of the wave/particle duality in a way that has other scientist tearing their hair out. Fact: Adrasteia's R&D department is the reason Einstein's hair looked like that.","creator":"bbd619ed-76c1-464c-829d-3f419cdc2525","mass":150.0,"shape":{"name":[[true,true]]},"specificHeat":1.0,"conductivity":1.0,"price":400000,"id":"2933c4ce-bf41-459c-b0d6-9583466b393d","$type":"WeaponItemData"} \ No newline at end of file diff --git a/GameData/WeaponItemData/DeathCluster.json b/GameData/WeaponItemData/DeathCluster.json new file mode 100644 index 000000000..a2eac4b24 --- /dev/null +++ b/GameData/WeaponItemData/DeathCluster.json @@ -0,0 +1 @@ +{"range":1,"caliber":1,"weaponType":1,"fireTypes":0,"modifiers":64,"hardpointType":10,"schematic":"","behaviors":[{"count":{"min":12.0,"max":15.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.0},"burstTime":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"cooldown":{"min":1.0,"max":0.25,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"ammoInterval":true,"damageType":0,"damage":{"min":100.0,"max":250.0,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.5,"qualityExponent":2.0},"penetration":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"damageSpread":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"minRange":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"range":{"min":500.0,"max":1000.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"damageCurve":{"keys":[[0.0,1.0,0.0,0.0],[1.0,0.0,-1.76562428,-1.76562428]]},"effect":"Assets/Resources/Prefabs/Weapons/ColferV/DeathCluster.prefab","energy":{"min":25.0,"max":5.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.25,"qualityExponent":1.0},"heat":{"min":1500.0,"max":500.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":1.5,"qualityExponent":0.25},"visibility":{"min":1000.0,"max":250.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.5,"qualityExponent":2.0},"ammo":"878112d9-180a-4038-85e9-a015191bd8ed","magSize":8,"reloadTime":4.0,"spread":{"min":3.0,"max":0.5,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.5,"qualityExponent":2.0},"velocity":{"min":750.0,"max":1500.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"group":0,"$type":"AutoWeaponData"}],"durability":50.0,"minTemp":223.15,"maxTemp":473.15,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":4.0,"actionIcon":"","soundBank":2393348022,"audioStats":[],"name":"DeathCluster","description":"Because why kill two birds with one stone when you could annihilate them with one hundred?","creator":"16bad4f9-7fb5-41c5-8da0-dc76709eb7d3","mass":250.0,"shape":{"name":[[true,true],[true,true]]},"specificHeat":1.0,"conductivity":1.0,"price":450000,"id":"8ac84e31-f0cf-43b2-8611-3316adfa4010","$type":"WeaponItemData"} \ No newline at end of file diff --git a/GameData/WeaponItemData/Earp.json b/GameData/WeaponItemData/Earp.json new file mode 100644 index 000000000..52e8816eb --- /dev/null +++ b/GameData/WeaponItemData/Earp.json @@ -0,0 +1 @@ +{"range":2,"caliber":0,"weaponType":1,"fireTypes":0,"modifiers":16,"hardpointType":10,"schematic":"","behaviors":[{"count":{"min":1.0,"max":1.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"burstTime":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"cooldown":{"min":0.01,"max":0.01,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"ammoInterval":false,"damageType":0,"damage":{"min":5.0,"max":25.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.5,"qualityExponent":2.25},"penetration":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"damageSpread":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"minRange":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"range":{"min":1000.0,"max":2500.0,"heatExponentMultiplier":0.5,"durabilityExponentMultiplier":0.5,"qualityExponent":1.75},"damageCurve":{"keys":[[0.0,1.0,0.0,0.0],[1.0,0.0,-1.76562428,-1.76562428]]},"effect":"Assets/Resources/Prefabs/Weapons/ColferV/6k Shooter.prefab","energy":{"min":5.0,"max":5.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"heat":{"min":250.0,"max":500.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.0},"visibility":{"min":1000.0,"max":500.0,"heatExponentMultiplier":0.5,"durabilityExponentMultiplier":0.5,"qualityExponent":0.75},"ammo":"00000000-0000-0000-0000-000000000000","magSize":6,"reloadTime":3.0,"spread":{"min":0.5,"max":0.0,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.5,"qualityExponent":2.0},"velocity":{"min":600.0,"max":1600.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"group":0,"$type":"InstantWeaponData"}],"durability":35.0,"minTemp":175.0,"maxTemp":475.0,"heatCurve":{"keys":[[0.0,1.0,0.0,0.0],[1.0,0.0,-1.76562428,-1.76562428]]},"resilience":5.0,"actionIcon":"","soundBank":3678545986,"audioStats":[],"name":"Earp","description":"Bringing the Wild West to the New Frontier","creator":"8443f966-0d88-4ec7-a20e-8edf73fa62f6","mass":75.0,"shape":{"name":[[true,true]]},"specificHeat":1.0,"conductivity":1.0,"price":145000,"id":"2fd0d88b-f565-4021-85b4-02d9eae7be58","$type":"WeaponItemData"} \ No newline at end of file diff --git a/GameData/WeaponItemData/FastBlast+-.json b/GameData/WeaponItemData/FastBlast+-.json new file mode 100644 index 000000000..d6b08b223 --- /dev/null +++ b/GameData/WeaponItemData/FastBlast+-.json @@ -0,0 +1 @@ +{"range":1,"caliber":0,"weaponType":4,"fireTypes":0,"modifiers":80,"hardpointType":9,"schematic":"","behaviors":[{"count":{"min":12.0,"max":12.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"burstTime":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"cooldown":{"min":0.333,"max":0.1,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.125,"qualityExponent":2.0},"ammoInterval":true,"damageType":2,"damage":{"min":20.0,"max":80.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.125,"qualityExponent":2.0},"penetration":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"damageSpread":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"minRange":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"range":{"min":500.0,"max":1250.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"damageCurve":{"keys":[[0.0,1.0,0.0,0.0],[1.0,0.0,-1.76562428,-1.76562428]]},"effect":"Assets/Resources/Prefabs/Weapons/NiteLife/FastBlast+-.prefab","energy":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"heat":{"min":500.0,"max":1000.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.25},"visibility":{"min":500.0,"max":100.0,"heatExponentMultiplier":0.5,"durabilityExponentMultiplier":0.25,"qualityExponent":1.5},"ammo":"878112d9-180a-4038-85e9-a015191bd8ed","magSize":12,"reloadTime":3.0,"spread":{"min":3.0,"max":1.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.125,"qualityExponent":2.0},"velocity":{"min":400.0,"max":900.0,"heatExponentMultiplier":0.5,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"group":0,"$type":"AutoWeaponData"}],"durability":30.0,"minTemp":223.15,"maxTemp":473.15,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":5.0,"actionIcon":"","soundBank":3364802794,"audioStats":[],"name":"FastBlast+-","description":"Do less damage, faster!","creator":"73d368dd-58a8-4431-b9ba-2d44754d36a1","mass":125.0,"shape":{"name":[[true,true]]},"specificHeat":1.0,"conductivity":1.0,"price":150000,"id":"457ac901-aa54-4ba7-9df6-fbacdfb40b3f","$type":"WeaponItemData"} \ No newline at end of file diff --git a/GameData/WeaponItemData/GT 3K.json b/GameData/WeaponItemData/GT 3K.json new file mode 100644 index 000000000..027c7e4b1 --- /dev/null +++ b/GameData/WeaponItemData/GT 3K.json @@ -0,0 +1 @@ +{"range":3,"caliber":1,"weaponType":5,"fireTypes":4,"modifiers":0,"hardpointType":11,"schematic":"","behaviors":[{"guidance":[[0.0,0.9593412,0.0,0.0],[0.186046138,0.9699189,0.0,0.0],[0.245504111,0.561182439,0.0,0.0],[0.305781841,0.9728476,0.0,0.0],[0.452824175,0.9863649,0.0,0.0],[0.514968336,0.72557956,0.0,0.0],[0.582879245,0.986441553,0.0,0.0],[0.740852237,0.990967453,0.0,0.0],[0.8113701,0.8454359,0.0,0.0],[0.8819307,1.0,0.0,0.0],[1.0,1.0,0.0,0.0]],"thrustCurve":[[0.0,0.0,0.0,0.0],[0.0170422811,0.3977728,51.60958,51.60958],[0.0497766957,0.07809481,0.205703467,0.205703467],[0.4783637,0.4762412,1.43706155,1.43706155],[0.4969261,0.832028151,1.427726,1.427726],[0.9812975,0.9989637,0.110116482,0.110116482],[1.0,0.0,0.0,0.0]],"liftCurve":[[0.0,0.09374851,-0.282933772,-0.282933772],[0.0793687,0.287501574,0.0,0.0],[0.485981524,0.0558143854,-0.309884,-0.309884],[1.0,0.0,0.0,0.0]],"thrust":{"min":135.0,"max":325.0,"heatExponentMultiplier":0.0625,"durabilityExponentMultiplier":0.125,"qualityExponent":2.0},"frequency":0.25,"missileSpeed":{"min":150.0,"max":300.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":2.25},"speed":{"min":0.15,"max":0.25,"heatExponentMultiplier":0.0625,"durabilityExponentMultiplier":0.125,"qualityExponent":1.5},"sensorImpact":{"min":1.5,"max":0.5,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.125,"qualityExponent":1.75},"threshold":{"min":15.0,"max":35.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.125,"qualityExponent":2.0},"directionImpact":{"min":2.0,"max":1.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.125,"qualityExponent":2.0},"decay":{"min":0.25,"max":0.1,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.125,"qualityExponent":2.25},"count":{"min":1.0,"max":1.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"burstTime":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"cooldown":{"min":15.0,"max":8.0,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.25,"qualityExponent":1.5},"ammoInterval":false,"damageType":0,"damage":{"min":14.0,"max":48.0,"heatExponentMultiplier":0.03125,"durabilityExponentMultiplier":0.0625,"qualityExponent":2.0},"penetration":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"damageSpread":{"min":1.0,"max":3.25,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.5},"minRange":{"min":500.0,"max":50.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.75},"range":{"min":1650.0,"max":3500.0,"heatExponentMultiplier":0.03125,"durabilityExponentMultiplier":0.125,"qualityExponent":1.75},"damageCurve":{"keys":[[0.0,1.0,0.0,0.0],[1.0,0.0,-1.76562428,-1.76562428]]},"effect":"Assets/Resources/Prefabs/Weapons/Regular Missile.prefab","energy":{"min":5.0,"max":1.0,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.25,"qualityExponent":1.5},"heat":{"min":1500.0,"max":500.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.125,"qualityExponent":1.5},"visibility":{"min":1000.0,"max":250.0,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.125,"qualityExponent":1.75},"ammo":"00000000-0000-0000-0000-000000000000","magSize":2,"reloadTime":1.0,"spread":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"velocity":{"min":100.0,"max":175.0,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.25,"qualityExponent":1.0},"group":0,"$type":"LauncherData"}],"durability":60.0,"minTemp":223.15,"maxTemp":473.15,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":1.0,"actionIcon":"","soundBank":2393348022,"audioStats":[],"name":"GT 3K","description":"Smaller, faster, and more determined than ever. The little missile that could!","creator":"adfb9b08-aabc-45c6-9586-915698a9c4b0","mass":100.0,"shape":{"name":[[true,true,true]]},"specificHeat":1.0,"conductivity":1.0,"price":225000,"id":"5ee2ff03-0ac4-4cdd-89bc-81e29223900b","$type":"WeaponItemData"} \ No newline at end of file diff --git a/GameData/WeaponItemData/LRMM72.json b/GameData/WeaponItemData/LRMM72.json new file mode 100644 index 000000000..886c84121 --- /dev/null +++ b/GameData/WeaponItemData/LRMM72.json @@ -0,0 +1 @@ +{"range":3,"caliber":2,"weaponType":6,"fireTypes":4,"modifiers":0,"hardpointType":11,"schematic":"","behaviors":[{"guidance":[[0.0,0.5062485,0.0,0.0],[1.0,1.0,0.0,0.0]],"thrustCurve":[[0.0,0.5,0.0,0.0],[0.9812975,0.9989637,0.110116482,0.110116482],[1.0,0.0,0.0,0.0]],"liftCurve":[[0.0,0.818747,-0.282933772,-0.282933772],[0.15127635,0.9625015,0.0,0.0],[0.358333349,0.299992323,-0.104599796,-0.104599796],[0.7237745,0.299558282,-0.309884,-0.309884],[1.0,0.0,0.0,0.0]],"thrust":{"min":500.0,"max":500.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"frequency":0.25,"missileSpeed":{"min":250.0,"max":250.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"speed":{"min":0.1,"max":0.1,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"sensorImpact":{"min":1.0,"max":1.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"threshold":{"min":30.0,"max":30.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"directionImpact":{"min":2.0,"max":2.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"decay":{"min":0.25,"max":0.25,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"count":{"min":72.0,"max":72.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"burstTime":{"min":2.0,"max":2.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"cooldown":{"min":10.0,"max":10.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"ammoInterval":false,"damageType":0,"damage":{"min":256.0,"max":256.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"penetration":{"min":0.25,"max":0.25,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"damageSpread":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"minRange":{"min":500.0,"max":500.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"range":{"min":2000.0,"max":2000.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"damageCurve":null,"effect":"Assets/Resources/Prefabs/Weapons/Micromissile.prefab","energy":{"min":0.1,"max":0.1,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"heat":{"min":500.0,"max":500.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"visibility":{"min":1000.0,"max":1000.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"ammo":"00000000-0000-0000-0000-000000000000","magSize":144,"reloadTime":1.0,"spread":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"velocity":{"min":150.0,"max":150.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"group":0,"$type":"LauncherData"}],"durability":100.0,"minTemp":223.15,"maxTemp":473.15,"heatCurve":null,"resilience":5.0,"actionIcon":null,"soundBank":0,"audioStats":[],"name":"LRMM72","description":null,"creator":"00000000-0000-0000-0000-000000000000","mass":100.0,"shape":{"name":[[true,true],[true,true],[true,true]]},"specificHeat":1.0,"conductivity":1.0,"price":2500000,"id":"32157982-b015-461e-ba4e-d321a23c2748","$type":"WeaponItemData"} \ No newline at end of file diff --git a/GameData/WeaponItemData/SRMM72.json b/GameData/WeaponItemData/SRMM72.json new file mode 100644 index 000000000..79a697c49 --- /dev/null +++ b/GameData/WeaponItemData/SRMM72.json @@ -0,0 +1 @@ +{"range":1,"caliber":3,"weaponType":6,"fireTypes":2,"modifiers":0,"hardpointType":11,"schematic":"","behaviors":[{"guidance":[[0.0,0.8499985,0.0,0.0],[1.0,1.0,0.0,0.0]],"thrustCurve":[[0.00061,0.0,22.0190086,22.0190086],[0.150437117,1.0,0.0,0.0],[0.358333349,0.299992323,-1.61195123,-1.61195123],[1.0,0.0,0.0,0.0]],"liftCurve":[[0.0,0.0,0.0,0.0],[1.0,0.0,0.0,0.0]],"thrust":{"min":2000.0,"max":2000.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"frequency":1.0,"missileSpeed":{"min":500.0,"max":500.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"count":{"min":72.0,"max":72.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"burstTime":{"min":0.333,"max":0.333,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"cooldown":{"min":5.0,"max":5.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"ammoInterval":false,"damageType":0,"damage":{"min":128.0,"max":128.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"penetration":{"min":0.25,"max":0.25,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"damageSpread":{"min":0.5,"max":0.5,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"minRange":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"range":{"min":750.0,"max":750.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"damageCurve":null,"effect":"Assets/Resources/Prefabs/Weapons/SRM.prefab","energy":{"min":25.0,"max":25.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"heat":{"min":500.0,"max":500.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"visibility":{"min":1250.0,"max":1250.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"ammo":"00000000-0000-0000-0000-000000000000","magSize":288,"reloadTime":10.0,"spread":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"velocity":{"min":50.0,"max":50.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"group":0,"$type":"GuidedWeaponData"}],"durability":100.0,"minTemp":223.15,"maxTemp":473.15,"heatCurve":null,"resilience":1.0,"actionIcon":null,"soundBank":0,"audioStats":[],"name":"SRMM72","description":null,"creator":"00000000-0000-0000-0000-000000000000","mass":100.0,"shape":{"name":[[true,true],[true,true],[true,true]]},"specificHeat":1.0,"conductivity":1.0,"price":1250000,"id":"1c0cff5d-8668-45ea-9726-8b08c81d0267","$type":"WeaponItemData"} \ No newline at end of file diff --git a/GameData/WeaponItemData/Spectra.json b/GameData/WeaponItemData/Spectra.json new file mode 100644 index 000000000..3cec5ae1f --- /dev/null +++ b/GameData/WeaponItemData/Spectra.json @@ -0,0 +1 @@ +{"range":2,"caliber":0,"weaponType":2,"fireTypes":0,"modifiers":0,"hardpointType":9,"schematic":"","behaviors":[{"count":{"min":1.0,"max":1.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"burstTime":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"cooldown":{"min":0.5,"max":0.25,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"ammoInterval":false,"damageType":4,"damage":{"min":20.0,"max":85.0,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"penetration":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"damageSpread":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"minRange":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"range":{"min":800.0,"max":1750.0,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.5,"qualityExponent":2.0},"damageCurve":{"keys":[[0.0,1.0,0.0,0.0],[1.0,0.0,-1.76562428,-1.76562428]]},"effect":"Assets/Resources/Prefabs/Weapons/Alakrita/Spectra.prefab","energy":{"min":20.0,"max":40.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.5},"heat":{"min":1000.0,"max":500.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.75},"visibility":{"min":550.0,"max":150.0,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"ammo":"00000000-0000-0000-0000-000000000000","magSize":1,"reloadTime":1.0,"spread":{"min":0.1,"max":0.0,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"velocity":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"group":0,"$type":"AutoWeaponData"}],"durability":30.0,"minTemp":263.15,"maxTemp":398.15,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":1.0,"actionIcon":"","soundBank":3364802794,"audioStats":[],"name":"Spectra","description":"Travelling light, for those travelling light. Take out the competition without slowing down with Spectra.","creator":"a1f76631-d6d1-443a-9be1-c9b1267d6ca2","mass":25.0,"shape":{"name":[[true,true]]},"specificHeat":1.0,"conductivity":1.0,"price":125000,"id":"4a41dec8-6b65-46ee-b578-ba805f112c0c","$type":"WeaponItemData"} \ No newline at end of file diff --git a/GameData/WeaponItemData/plight.json b/GameData/WeaponItemData/plight.json new file mode 100644 index 000000000..0f699cd59 --- /dev/null +++ b/GameData/WeaponItemData/plight.json @@ -0,0 +1 @@ +{"range":2,"caliber":2,"weaponType":3,"fireTypes":0,"modifiers":0,"hardpointType":9,"schematic":"","behaviors":[{"chargeTime":{"min":3.0,"max":2.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.5},"chargeEnergy":{"min":25.0,"max":125.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.5},"chargeHeat":{"min":1250.0,"max":4500.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.5},"canFireEarly":true,"failureCharge":2.5,"failureDamage":15.0,"chargeDamage":3.0,"chargeSpread":1.0,"chargeBurstCount":1.0,"chargeVisibility":1.5,"chargeVelocity":1.0,"chargeHeatMul":1.5,"count":{"min":1.0,"max":1.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"burstTime":{"min":0.0,"max":0.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"cooldown":{"min":4.0,"max":2.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.125,"qualityExponent":1.75},"ammoInterval":false,"damageType":0,"damage":{"min":75.0,"max":400.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.125,"qualityExponent":2.0},"penetration":{"min":0.0,"max":0.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"damageSpread":{"min":1.0,"max":3.3,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.25},"minRange":{"min":0.0,"max":0.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"range":{"min":500.0,"max":2000.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.125,"qualityExponent":2.0},"damageCurve":null,"effect":"Assets/Resources/Prefabs/Weapons/Lucent/TaranisLG.prefab","energy":{"min":0.0,"max":0.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.5},"heat":{"min":250.0,"max":1000.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.5},"visibility":{"min":3000.0,"max":1000.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.75},"ammo":"00000000-0000-0000-0000-000000000000","magSize":0,"reloadTime":1.0,"spread":{"min":0.0,"max":0.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"velocity":{"min":0.0,"max":0.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"group":0,"$type":"ChargedWeaponData"}],"durability":100.0,"minTemp":263.15,"maxTemp":398.15,"heatCurve":null,"resilience":1.0,"actionIcon":null,"soundBank":0,"audioStats":[],"name":"plight","description":"Chain lightning has your enemies chain smoking while you enjoy a relaxing DragOnBreath vapepop, now available in 17! flavours (manufactured by DragOnBreath, a subsidary of Lucent Media)","creator":"00000000-0000-0000-0000-000000000000","mass":100.0,"shape":{"name":[[true]]},"specificHeat":1.0,"conductivity":1.0,"price":800000,"id":"632420a6-4419-4647-a92b-5e22ea289025","$type":"WeaponItemData"} \ No newline at end of file diff --git a/GameData/WeaponItemData/pretty pretty bang bang.json b/GameData/WeaponItemData/pretty pretty bang bang.json new file mode 100644 index 000000000..48336fe4a --- /dev/null +++ b/GameData/WeaponItemData/pretty pretty bang bang.json @@ -0,0 +1 @@ +{"range":1,"caliber":1,"weaponType":1,"fireTypes":16,"modifiers":66,"hardpointType":10,"schematic":"","behaviors":[{"chargeTime":{"min":1.0,"max":1.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"chargeEnergy":{"min":50.0,"max":50.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"chargeHeat":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"canFireEarly":true,"failureCharge":3.0,"failureDamage":25.0,"chargeDamage":5.0,"chargeSpread":0.5,"chargeBurstCount":3.0,"chargeVisibility":5.0,"chargeVelocity":1.5,"chargeHeatMul":5.0,"count":{"min":5.0,"max":5.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"burstTime":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"cooldown":{"min":0.666,"max":0.333,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"ammoInterval":true,"damageType":3,"damage":{"min":64.0,"max":256.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"penetration":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"damageSpread":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"minRange":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"range":{"min":500.0,"max":1250.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"damageCurve":{"keys":[[0.0,1.0,0.0,0.0],[1.0,0.0,-1.76562428,-1.76562428]]},"effect":"Assets/Resources/Prefabs/Weapons/DME/prettypretty.prefab","energy":{"min":25.0,"max":50.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.25,"qualityExponent":1.5},"heat":{"min":500.0,"max":1000.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.25,"qualityExponent":1.5},"visibility":{"min":1750.0,"max":600.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.5,"qualityExponent":2.25},"ammo":"7e6c1910-005f-4ce9-b9bd-481e8cae5cdf","magSize":8,"reloadTime":3.0,"spread":{"min":4.0,"max":1.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.25,"qualityExponent":1.5},"velocity":{"min":250.0,"max":750.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.25,"qualityExponent":2.0},"group":0,"$type":"ChargedWeaponData"}],"durability":250.0,"minTemp":223.15,"maxTemp":473.15,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":1.0,"actionIcon":"","soundBank":639519169,"audioStats":[],"name":"pretty pretty bang bang","description":"make your last stand/ it's a pretty pretty mess you've got us into/ it's a pretty pretty pretty day to die/ locked and loaded we're going out with a bang","creator":"8419f9bc-0167-46ec-86c3-3265d2905fbc","mass":250.0,"shape":{"name":[[true,true],[true,true]]},"specificHeat":1.0,"conductivity":1.0,"price":1500000,"id":"3aa1ac05-6d55-4569-8a4b-e1c3c6e07c61","$type":"WeaponItemData"} \ No newline at end of file diff --git a/GameData/WeaponItemData/pswarm.json b/GameData/WeaponItemData/pswarm.json new file mode 100644 index 000000000..e9a4f710a --- /dev/null +++ b/GameData/WeaponItemData/pswarm.json @@ -0,0 +1 @@ +{"range":1,"caliber":1,"weaponType":6,"fireTypes":2,"modifiers":2,"hardpointType":11,"schematic":"","behaviors":[{"guidance":[[0.0,0.9620285,0.0,0.0],[1.0,1.0,0.0,0.0]],"thrustCurve":[[0.00061,0.0,22.0190086,22.0190086],[0.0855567455,0.983402252,0.0,0.0],[0.320836753,0.154407173,-0.727946758,-0.727946758],[1.0,0.0,0.0,0.0]],"liftCurve":[[0.0,0.0,0.0,0.0],[1.0,0.0,0.0,0.0]],"thrust":{"min":500.0,"max":2000.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.25,"qualityExponent":1.25},"frequency":1.0,"missileSpeed":{"min":400.0,"max":600.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.5},"count":{"min":9.0,"max":9.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"burstTime":{"min":0.333,"max":0.333,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"cooldown":{"min":8.0,"max":4.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.25,"qualityExponent":1.5},"ammoInterval":false,"damageType":3,"damage":{"min":128.0,"max":512.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.125,"qualityExponent":2.0},"penetration":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"damageSpread":{"min":0.9,"max":1.5,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.0},"minRange":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"range":{"min":500.0,"max":1250.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":2.0},"damageCurve":null,"effect":"Assets/Resources/Prefabs/Weapons/DME/scorchedvoid.prefab","energy":{"min":25.0,"max":50.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.0},"heat":{"min":500.0,"max":1000.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.0},"visibility":{"min":1250.0,"max":250.0,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.125,"qualityExponent":1.5},"ammo":"00000000-0000-0000-0000-000000000000","magSize":72,"reloadTime":6.0,"spread":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"velocity":{"min":50.0,"max":100.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":2.0},"group":0,"$type":"GuidedWeaponData"}],"durability":100.0,"minTemp":223.15,"maxTemp":473.15,"heatCurve":null,"resilience":1.0,"actionIcon":null,"soundBank":0,"audioStats":[],"name":"pswarm","description":"let's set the stars on fire/ there's nothing left on earth to burn/ we're just killing time while we're filling space/ and catacombs in turn","creator":"00000000-0000-0000-0000-000000000000","mass":100.0,"shape":{"name":[[true]]},"specificHeat":1.0,"conductivity":1.0,"price":750000,"id":"a0478430-3ec5-445d-94a7-f30e61b2b8d3","$type":"WeaponItemData"} \ No newline at end of file diff --git a/GameData/WeaponItemData/scorched void policy.json b/GameData/WeaponItemData/scorched void policy.json new file mode 100644 index 000000000..c06a9e75d --- /dev/null +++ b/GameData/WeaponItemData/scorched void policy.json @@ -0,0 +1 @@ +{"range":1,"caliber":1,"weaponType":6,"fireTypes":2,"modifiers":2,"hardpointType":11,"schematic":"","behaviors":[{"guidance":[[0.0,0.9620285,0.0,0.0],[1.0,1.0,0.0,0.0]],"thrustCurve":[[0.00061,0.0,22.0190086,22.0190086],[0.0855567455,0.983402252,0.0,0.0],[0.320836753,0.154407173,-0.727946758,-0.727946758],[1.0,0.0,0.0,0.0]],"liftCurve":[[0.0,0.0,0.0,0.0],[1.0,0.0,0.0,0.0]],"thrust":{"min":500.0,"max":2000.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.25,"qualityExponent":1.25},"frequency":1.0,"missileSpeed":{"min":400.0,"max":600.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.5},"count":{"min":9.0,"max":9.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"burstTime":{"min":0.333,"max":0.333,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"cooldown":{"min":8.0,"max":4.0,"heatExponentMultiplier":0.125,"durabilityExponentMultiplier":0.25,"qualityExponent":1.5},"ammoInterval":false,"damageType":3,"damage":{"min":128.0,"max":512.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.125,"qualityExponent":2.0},"penetration":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"damageSpread":{"min":0.9,"max":1.5,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.0},"minRange":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"range":{"min":500.0,"max":1250.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":2.0},"damageCurve":{"keys":[[0.0,1.0,0.0,0.0],[1.0,0.0,-1.76562428,-1.76562428]]},"effect":"Assets/Resources/Prefabs/Weapons/DME/scorchedvoid.prefab","energy":{"min":25.0,"max":50.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.0},"heat":{"min":500.0,"max":1000.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":1.0},"visibility":{"min":1250.0,"max":250.0,"heatExponentMultiplier":0.25,"durabilityExponentMultiplier":0.125,"qualityExponent":1.5},"ammo":"00000000-0000-0000-0000-000000000000","magSize":72,"reloadTime":6.0,"spread":{"min":0.0,"max":0.0,"heatExponentMultiplier":1.0,"durabilityExponentMultiplier":0.0,"qualityExponent":0.0},"velocity":{"min":50.0,"max":100.0,"heatExponentMultiplier":0.0,"durabilityExponentMultiplier":0.0,"qualityExponent":2.0},"group":0,"$type":"GuidedWeaponData"}],"durability":100.0,"minTemp":223.15,"maxTemp":473.15,"heatCurve":{"keys":[[0.0,0.0,8.389394,8.389394],[0.357228935,0.8660065,-2.46956825,-2.46956825],[1.0,0.0,-0.6179685,-0.6179685]]},"resilience":1.0,"actionIcon":"","soundBank":3678545986,"audioStats":[],"name":"scorched void policy","description":"let's set the stars on fire/ there's nothing left on earth to burn/ we're just killing time while we're filling space/ and catacombs in turn","creator":"8419f9bc-0167-46ec-86c3-3265d2905fbc","mass":100.0,"shape":{"name":[[true],[true],[true]]},"specificHeat":1.0,"conductivity":1.0,"price":750000,"id":"2e5193aa-3703-4ecc-911d-4d8394ce4c2f","$type":"WeaponItemData"} \ No newline at end of file