From 351cb9f2afbbf3a41a34d0c37fa6162c2772f022 Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Thu, 18 Mar 2021 22:48:33 +0000 Subject: [PATCH] Sector & Loadout Generation Fixes Adjusted sector generation to improve sample elimination performance and better preserve density map Added unit tests for item shape rotation and fit functions + fixed those (required for correct loadout generation)! Fixed faction hostility by marking player ship Added faction to entity serialization Generating starting loadout for player ship --- Assets/Materials/Fog Marching Main Menu.mat | 2 +- Assets/Materials/UI/Map Gravity Lines.mat | 2 +- Assets/Scenes/ARPG.unity | 3 +- Assets/Scenes/Main Menu.unity | 10 +- Assets/Scripts/Gameplay/ActionGameManager.cs | 55 +- Assets/Scripts/Gameplay/EntityInstance.cs | 3 + .../Scripts/ServerShared/EntitySerializer.cs | 13 +- Assets/Scripts/ServerShared/ItemData.cs | 22 +- .../Scripts/ServerShared/LoadoutGenerator.cs | 17 +- .../Scripts/ServerShared/SampleElimination.cs | 73 +- Assets/Scripts/ServerShared/Sector.cs | 36 +- Assets/Scripts/Tests.meta | 8 + Assets/Scripts/Tests/ShapeTestScript.cs | 43 ++ Assets/Scripts/Tests/ShapeTestScript.cs.meta | 11 + Assets/Scripts/Tests/Tests.asmdef | 25 + Assets/Scripts/Tests/Tests.asmdef.meta | 7 + .../Shaders/Raymarching/VolumeRender.shader | 4 +- GameData/AetherDB.msgpack | 2 +- GameData/Loadouts/Longinus.loadout | Bin 6087 -> 0 bytes GameData/PlayerSettings.msgpack | 4 +- Packages/manifest.json | 2 +- Packages/packages-lock.json | 2 +- Tests.csproj | 663 ++++++++++++++++++ 23 files changed, 879 insertions(+), 128 deletions(-) create mode 100644 Assets/Scripts/Tests.meta create mode 100644 Assets/Scripts/Tests/ShapeTestScript.cs create mode 100644 Assets/Scripts/Tests/ShapeTestScript.cs.meta create mode 100644 Assets/Scripts/Tests/Tests.asmdef create mode 100644 Assets/Scripts/Tests/Tests.asmdef.meta delete mode 100644 GameData/Loadouts/Longinus.loadout create mode 100644 Tests.csproj diff --git a/Assets/Materials/Fog Marching Main Menu.mat b/Assets/Materials/Fog Marching Main Menu.mat index 27b23cd61..3d074e6ae 100644 --- a/Assets/Materials/Fog Marching Main Menu.mat +++ b/Assets/Materials/Fog Marching Main Menu.mat @@ -61,5 +61,5 @@ Material: - _StepExponent: 2 - _TintExponent: 8 m_Colors: - - _Tint: {r: 0.34, g: 0.34, b: 0.34, a: 1} + - _Tint: {r: 0.59599996, g: 0.59599996, b: 0.59599996, a: 1} m_BuildTextureStacks: [] diff --git a/Assets/Materials/UI/Map Gravity Lines.mat b/Assets/Materials/UI/Map Gravity Lines.mat index 23aa9e9de..a45e9acba 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: 2.0349123 + - _Scale: 2.4224877 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 diff --git a/Assets/Scenes/ARPG.unity b/Assets/Scenes/ARPG.unity index 604b7cd15..b0c2acaaf 100644 --- a/Assets/Scenes/ARPG.unity +++ b/Assets/Scenes/ARPG.unity @@ -15148,7 +15148,6 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Settings: {fileID: 11400000, guid: cd2344e2001a37544aab0960c164d4ff, type: 2} - StarterShipTemplate: Longinus Sensitivity: x: -0.001 y: 0.001 @@ -25173,7 +25172,7 @@ Transform: m_GameObject: {fileID: 1857285684} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 4} - m_LocalScale: {x: 2, y: 2, z: 2} + m_LocalScale: {x: 3, y: 3, z: 3} m_Children: [] m_Father: {fileID: 1511875452} m_RootOrder: 1 diff --git a/Assets/Scenes/Main Menu.unity b/Assets/Scenes/Main Menu.unity index ec91eb7c1..975f66e73 100644 --- a/Assets/Scenes/Main Menu.unity +++ b/Assets/Scenes/Main Menu.unity @@ -1302,8 +1302,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 741153267} - m_LocalRotation: {x: 0.015506926, y: 0.9502416, z: -0.30741316, w: 0.047933295} - m_LocalPosition: {x: -117.52003, y: -77.08742, z: 149.09026} + m_LocalRotation: {x: 0.015506903, y: 0.9502416, z: -0.30741313, w: 0.047933225} + m_LocalPosition: {x: -117.51999, y: -77.08743, z: 149.09026} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 412917866} @@ -1773,8 +1773,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 965376321} - m_LocalRotation: {x: 0.015506926, y: 0.9502416, z: -0.30741316, w: 0.047933295} - m_LocalPosition: {x: -117.52003, y: -77.08742, z: 149.09026} + m_LocalRotation: {x: 0.015506903, y: 0.9502416, z: -0.30741313, w: 0.047933225} + m_LocalPosition: {x: -117.51999, y: -77.08743, z: 149.09026} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} @@ -2012,7 +2012,7 @@ MonoBehaviour: m_EditorClassIdentifier: Settings: LinkDensity: 0.5 - ZoneCount: 128 + ZoneCount: 196 NameGeneratorMinLength: 5 NameGeneratorMaxLength: 10 NameGeneratorOrder: 3 diff --git a/Assets/Scripts/Gameplay/ActionGameManager.cs b/Assets/Scripts/Gameplay/ActionGameManager.cs index ff264d20a..07d94943f 100644 --- a/Assets/Scripts/Gameplay/ActionGameManager.cs +++ b/Assets/Scripts/Gameplay/ActionGameManager.cs @@ -62,7 +62,7 @@ public class ActionGameManager : MonoBehaviour public static Sector CurrentSector; public GameSettings Settings; - public string StarterShipTemplate = "Longinus"; + //public string StarterShipTemplate = "Longinus"; public float2 Sensitivity; public int Credits = 15000000; public float TargetSpottedBlinkFrequency = 20; @@ -171,9 +171,9 @@ public class ActionGameManager : MonoBehaviour ItemManager = new ItemManager(Database, Settings.GameplaySettings, Debug.Log); ZoneRenderer.ItemManager = ItemManager; - _loadoutPath = GameDataDirectory.CreateSubdirectory("Loadouts"); - Loadouts.AddRange(_loadoutPath.EnumerateFiles("*.loadout") - .Select(fi => MessagePackSerializer.Deserialize(File.ReadAllBytes(fi.FullName)))); + // _loadoutPath = GameDataDirectory.CreateSubdirectory("Loadouts"); + // Loadouts.AddRange(_loadoutPath.EnumerateFiles("*.loadout") + // .Select(fi => MessagePackSerializer.Deserialize(File.ReadAllBytes(fi.FullName)))); #region Input Handling @@ -266,6 +266,7 @@ public class ActionGameManager : MonoBehaviour ship.ExitWormhole(ZoneRenderer.WormholeInstances.Keys.First(w=>w.Target==oldZone.SectorZone).Position, Settings.GameplaySettings.WormholeExitVelocity * ItemManager.Random.NextFloat2Direction()); CurrentEntity.Zone = Zone; + SaveState(); }; } } @@ -483,38 +484,6 @@ public class ActionGameManager : MonoBehaviour UnbindEntity(); BindToEntity(CurrentEntity); } - - GenerateZoneEntities(Zone); - } - - private void GenerateZoneEntities(Zone zone) - { - // - // var turretLoadout = Loadouts.First(x => x.Name == "Turret"); - // - // for(int i=0; i<3; i++) - // { - // var planet = zone.PlanetInstances.Values.OrderByDescending(p => p.BodyData.Mass.Value).ElementAt(4+i); - // var planetOrbit = planet.Orbit.Data.ID; - // var planetPos = zone.GetOrbitPosition(planetOrbit); - // for (int j = 0; j < 2; j++) - // { - // var pos = planetPos + ItemManager.Random.NextFloat2Direction() * planet.GravityWellRadius.Value * (.1f + .1f * j); - // var orbit = zone.CreateOrbit(planetOrbit, pos); - // var turret = EntityPack.Unpack(ItemManager, Zone, turretLoadout, orbit.ID, true); - // turret.Activate(); - // turret.Name = $"Turret {i}-{(char) ('A' + j)}"; - // turret.Faction = testCorp; - // zone.Entities.Add(turret); - // } - // } - // - // var enemyShipLoadout = Loadouts.First(x => ((HullData) ItemManager.GetData(x.Hull)).HullType == HullType.Ship); - // var enemyShip = EntityPack.Unpack(ItemManager, Zone, enemyShipLoadout, true); - // enemyShip.Faction = testCorp; - // enemyShip.Activate(); - // zone.Entities.Add(enemyShip); - // zone.Agents.Add(CreateAgent(enemyShip)); } private void StartGame() @@ -524,7 +493,10 @@ public class ActionGameManager : MonoBehaviour if (PlayerSettings.CurrentRun == null) { GenerateLevel(CurrentSector.Entrance); - var ship = EntitySerializer.Unpack(ItemManager, Zone, Loadouts.First(x => x.Name == StarterShipTemplate), true); + var loadoutGenerator = new LoadoutGenerator(ref ItemManager.Random, ItemManager, CurrentSector, Zone.SectorZone, null, 2); + var ship = EntitySerializer.Unpack(ItemManager, Zone, loadoutGenerator.GenerateShipLoadout(), true); + // EntitySerializer.Unpack(ItemManager, Zone, Loadouts.First(x => x.Name == StarterShipTemplate), true); + ((Ship) ship).IsPlayerShip = true; ship.Position = float3.zero; ship.Zone = Zone; Zone.Entities.Add(ship); @@ -742,8 +714,13 @@ public class ActionGameManager : MonoBehaviour CurrentEntity = null; Dialog.Clear(); Dialog.Title.text = "You have died!"; - Dialog.Show(StartGame, null, "Try again!"); - Dialog.MoveToCursor(); + Dialog.Show(() => + { + PlayerSettings.CurrentRun = null; + StartGame(); + }, null, "Try again!"); + Dialog.transform.position = new Vector3(Screen.width / 2, Screen.height / 2); + //Dialog.MoveToCursor(); Observable.EveryUpdate() .Select(_ => (Time.time - deathTime) / DeathPPTransitionTime) .Where(t => t < 1) diff --git a/Assets/Scripts/Gameplay/EntityInstance.cs b/Assets/Scripts/Gameplay/EntityInstance.cs index e64e082ac..910e31c0d 100644 --- a/Assets/Scripts/Gameplay/EntityInstance.cs +++ b/Assets/Scripts/Gameplay/EntityInstance.cs @@ -36,6 +36,7 @@ public class EntityInstance : MonoBehaviour private bool _fadedElementsVisible = false; private bool _unfadedElementsVisible = false; private float _fadeTime; + private bool _destroyed; private (Reactor reactor, GameObject sfxSource) _reactor; private Dictionary _radiatorSfx = new Dictionary(); @@ -390,6 +391,8 @@ public class EntityInstance : MonoBehaviour { if (Entity.Hull.Durability < .01f) { + if (!this) return; + _destroyed = true; if (DestroyEffect != null) { var t = Instantiate(DestroyEffect).transform; diff --git a/Assets/Scripts/ServerShared/EntitySerializer.cs b/Assets/Scripts/ServerShared/EntitySerializer.cs index 7cf6a3701..83c83032e 100644 --- a/Assets/Scripts/ServerShared/EntitySerializer.cs +++ b/Assets/Scripts/ServerShared/EntitySerializer.cs @@ -39,6 +39,7 @@ public static class EntitySerializer pack.Hull = entity.Hull; pack.Name = entity.Name; + pack.Faction = entity.Faction?.ID ?? Guid.Empty; pack.Equipment = entity.Equipment.Select(e => (e.Position, e.EquippableItem)).ToArray(); pack.CargoBays = entity.CargoBays.Select(e => (e.Position, e.EquippableItem)).ToArray(); pack.DockingBays = entity.DockingBays.Select(e => (e.Position, e.EquippableItem)).ToArray(); @@ -86,6 +87,7 @@ public static class EntitySerializer private static void Restore(ItemManager itemManager, Zone zone, EntityPack pack, Entity entity, bool instantiate = false) { entity.Name = pack.Name; + entity.Faction = itemManager.ItemData.Get(pack.Faction); entity.Children = pack.Children.Select(c => { var child = Unpack(itemManager, zone, c, instantiate); @@ -138,15 +140,15 @@ public static class EntitySerializer [MessagePackObject] public class ShipPack : EntityPack { - [Key(15)] public float3 Position; - [Key(16)] public float2 Direction; - [Key(17)] public bool IsPlayerShip; + [Key(16)] public float3 Position; + [Key(17)] public float2 Direction; + [Key(18)] public bool IsPlayerShip; } [MessagePackObject] public class OrbitalEntityPack : EntityPack { - [Key(15)] + [Key(16)] public Guid Orbit; } @@ -197,6 +199,9 @@ public abstract class EntityPack [Key(14)] public EntitySettings Settings; + [Key(15)] + public Guid Faction; + private int _price; public int Price(ItemManager itemManager) diff --git a/Assets/Scripts/ServerShared/ItemData.cs b/Assets/Scripts/ServerShared/ItemData.cs index 96288301c..6a5de3d33 100644 --- a/Assets/Scripts/ServerShared/ItemData.cs +++ b/Assets/Scripts/ServerShared/ItemData.cs @@ -68,17 +68,13 @@ public class Shape public int2 Rotate(int2 position, ItemRotation rotation) { - switch (rotation) + return rotation switch { - case ItemRotation.Clockwise: - return int2(position.y, Width - 1 - position.x); - case ItemRotation.Reversed: - return int2(Width - 1 - position.x, Height - 1 - position.y); - case ItemRotation.CounterClockwise: - return int2(Height - 1 - position.y, position.x); - default: - return int2(position.x, position.y); - } + ItemRotation.Clockwise => int2(position.y, Width - 1 - position.x), + ItemRotation.Reversed => int2(Width - 1 - position.x, Height - 1 - position.y), + ItemRotation.CounterClockwise => int2(Height - 1 - position.y, position.x), + _ => int2(position.x, position.y) + }; } private int2[] _cachedShapeCoordinates; @@ -199,10 +195,12 @@ public class Shape // Try to find a position with which a shape can be placed to fit within another shape public bool FitsWithin(Shape other, ItemRotation rotation, out int2 position) { + var width = rotation == ItemRotation.Clockwise || rotation == ItemRotation.CounterClockwise ? Height : Width; + var height = rotation == ItemRotation.Clockwise || rotation == ItemRotation.CounterClockwise ? Width : Height; // Try every item position that could possibly fit - for(int x = 0; x < other.Width - Width + 1; x++) + for(int x = 0; x < other.Width - width + 1; x++) { - for (int y = 0; y < other.Height - Height + 1; y++) + for (int y = 0; y < other.Height - height + 1; y++) { position = int2(x, y); var fits = true; diff --git a/Assets/Scripts/ServerShared/LoadoutGenerator.cs b/Assets/Scripts/ServerShared/LoadoutGenerator.cs index 4af414449..bff4f2d91 100644 --- a/Assets/Scripts/ServerShared/LoadoutGenerator.cs +++ b/Assets/Scripts/ServerShared/LoadoutGenerator.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Linq; using Unity.Mathematics; using static Unity.Mathematics.math; @@ -50,10 +51,10 @@ public class LoadoutGenerator public HullData RandomHull(HullType type) { return ItemManager.ItemData.GetAll() - .Where(item => item.HullType == type && (item.Manufacturer == Faction.ID || Faction.Allegiance.ContainsKey(item.Manufacturer))) + .Where(item => item.HullType == type && (Faction == null || item.Manufacturer == Faction.ID || Faction.Allegiance.ContainsKey(item.Manufacturer))) .WeightedRandomElements(ref Random, item => - (item.Manufacturer == Faction.ID ? 1 : Faction.Allegiance[item.Manufacturer]) / // Prioritize items from allied manufacturers + (Faction == null || item.Manufacturer == Faction.ID ? 1 : Faction.Allegiance[item.Manufacturer]) / // Prioritize items from allied manufacturers Zone.Distance[Sector.HomeZones[ItemManager.ItemData.Get(item.Manufacturer)]] / // Penalize distance to manufacturer headquarters pow(item.Price, PriceExponent), // Penalize item price to a controllable degree 1 @@ -64,10 +65,10 @@ public class LoadoutGenerator { return ItemManager.ItemData.GetAll() .Where(item => Sector.ContainsFaction(item.Manufacturer) && - (item.Manufacturer == Faction.ID || Faction.Allegiance.ContainsKey(item.Manufacturer)) && + (Faction == null || item.Manufacturer == Faction.ID || Faction.Allegiance.ContainsKey(item.Manufacturer)) && (filter?.Invoke(item) ?? true)) .WeightedRandomElements(ref Random, item => - (item.Manufacturer == Faction.ID ? 1 : Faction.Allegiance[item.Manufacturer]) * // Prioritize items from allied manufacturers + (Faction == null || item.Manufacturer == Faction.ID ? 1 : Faction.Allegiance[item.Manufacturer]) * // Prioritize items from allied manufacturers item.Shape.Coordinates.Length / // Prioritize items that fill more of the hardpoint's slots Zone.Distance[Sector.HomeZones[ItemManager.ItemData.Get(item.Manufacturer)]] / // Penalize distance to manufacturer headquarters pow(item.Price, PriceExponent), // Penalize item price to a controllable degree @@ -85,6 +86,8 @@ public class LoadoutGenerator private void OutfitEntity(Entity entity) { var hullData = ItemManager.GetData(entity.Hull) as HullData; + foreach (var v in hullData.Shape.Coordinates) entity.HullConductivity[v.x, v.y] = true; + var previousItems = new List(); foreach (var hardpoint in hullData.Hardpoints) { if (hardpoint.Type == HardpointType.ControlModule) @@ -100,7 +103,10 @@ public class LoadoutGenerator } else { - var itemData = RandomItem(hardpoint); + // If a previously selected item fits, use that one + var itemData = previousItems + .FirstOrDefault(i => i.HardpointType == hardpoint.Type && i.Shape.FitsWithin(hardpoint.Shape, hardpoint.Rotation, out _)); + itemData ??= RandomItem(hardpoint); if (itemData == null) ItemManager.Log($"No compatible item found for entity {Enum.GetName(typeof(HardpointType), hardpoint.Type)} hardpoint!"); else { @@ -110,6 +116,7 @@ public class LoadoutGenerator { throw new InvalidLoadoutException($"Failed to equip selected {Enum.GetName(typeof(HardpointType), hardpoint.Type)}!"); } + previousItems.Add(itemData); } } } diff --git a/Assets/Scripts/ServerShared/SampleElimination.cs b/Assets/Scripts/ServerShared/SampleElimination.cs index e72fdb954..00eadff71 100644 --- a/Assets/Scripts/ServerShared/SampleElimination.cs +++ b/Assets/Scripts/ServerShared/SampleElimination.cs @@ -37,7 +37,7 @@ public static class WeightedSampleElimination // of a sample point based on the placement of its neighbors within d_max radius. The weight function // must have the following form: // - // float weightFunction( float2 p0, float2 p1, float dist2, float dmax ) + // float weightFunction( float2 p0, float2 p1, float dist2, float dmax, float density ) // // The arguments p0 and p1 are the two neighboring points, dist2 is the square of the Euclidean distance // between these two points, and d_max is the current radius for the weight function. @@ -45,44 +45,46 @@ public static class WeightedSampleElimination // different than the d_max value passed to this method. public static void Eliminate ( float2[] inputPoints, - float2[] outputPoints, - Func weightFunction, + float2[] outputPoints, + Func weightFunction, + Func densityFunction, float d_max = 0) { if ( d_max < .001f ) d_max = 2 * GetMaxPoissonDiskRadius( outputPoints.Length ); - DoEliminate( inputPoints, outputPoints, d_max, weightFunction ); + DoEliminate( inputPoints, outputPoints, d_max, weightFunction, densityFunction ); } - public static void Eliminate( - float2[] inputPoints, - float2[] outputPoints, - float d_max = 0, - float alpha = 8, - float beta = 0.65f, - float gamma = 1.5f) - { - if ( d_max < .001f ) d_max = 2 * GetMaxPoissonDiskRadius( outputPoints.Length ); - float d_min = d_max * GetWeightLimitFraction( inputPoints.Length, outputPoints.Length, beta, gamma ); - Eliminate( inputPoints, outputPoints, (p0, p1, d2, dmax) => - { - float d = sqrt(d2); - if ( d < d_min ) d = d_min; - return pow( 1f / (d / dmax + .01f), alpha ); - }, d_max); - } + // public static void Eliminate( + // float2[] inputPoints, + // float2[] outputPoints, + // float d_max = 0, + // float alpha = 8, + // float beta = 0.65f, + // float gamma = 1.5f) + // { + // if ( d_max < .001f ) d_max = 2 * GetMaxPoissonDiskRadius( outputPoints.Length ); + // float d_min = d_max * GetWeightLimitFraction( inputPoints.Length, outputPoints.Length, beta, gamma ); + // Eliminate( inputPoints, outputPoints, (p0, p1, d2, dmax, density) => + // { + // float d = sqrt(d2); + // if ( d < d_min ) d = d_min; + // return pow( 1f / (d / dmax + .01f), alpha ); + // }, v => 1, d_max); + // } public static void Eliminate( float2[] inputPoints, float2[] outputPoints, - Func density = null, + Func densityFunc = null, float d_max = 0) { + if (densityFunc == null) densityFunc = v => 1; if ( d_max < .001f ) d_max = 2 * GetMaxPoissonDiskRadius( outputPoints.Length ); - Eliminate( inputPoints, outputPoints, (p0, p1, d2, dmax) => + Eliminate( inputPoints, outputPoints, (p0, p1, d2, dmax, density) => { float d = sqrt(d2); - return pow( 1 - (d / dmax), 5 + 6 * saturate((density ?? (v => .5f))((p0 + p1) / 2)) ); - }, d_max); + return pow( 1 - d / dmax, 5 + 6 * density ); + }, densityFunc, d_max); } public static float2[] GeneratePoints(int count, Func density = null, Func envelope = null, Action progressCallback = null, uint seed = 1337) @@ -127,7 +129,8 @@ public static class WeightedSampleElimination float2[] inputPoints, float2[] outputPoints, float d_max, - Func weightFunction + Func weightFunction, + Func density ) { // Build a k-d tree for samples @@ -137,13 +140,15 @@ public static class WeightedSampleElimination var dmax2 = d_max * d_max; // Assign weights to each sample float[] weights = new float[inputPoints.Length]; + float[] densities = new float[inputPoints.Length]; for (int i = 0; i < inputPoints.Length; i++) { - var p = inputPoints[i]; + var point = inputPoints[i]; + densities[i] += density(point); foreach (var (qi, d2) in query.Radius(kdtree, inputPoints[i], d_max)) { - var p2 = inputPoints[qi]; - weights[i] += weightFunction(p, p2, d2, d_max); + var otherPoint = inputPoints[qi]; + weights[i] += weightFunction(point, otherPoint, d2, d_max, densities[i]); } } @@ -157,13 +162,13 @@ public static class WeightedSampleElimination while (sampleCount > outputPoints.Length) { // Pull the top sample from heap - var i = heap.PopObj(); - var p = inputPoints[i]; + var elim = heap.PopObj(); + var pElim = inputPoints[elim]; // For each sample around it, remove its weight contribution and update the heap - foreach (var (qi, d2) in query.Radius(kdtree, p, d_max)) + foreach (var (qi, d2) in query.Radius(kdtree, pElim, d_max)) { - var p2 = inputPoints[qi]; - weights[qi] -= weightFunction(p, p2, d2, d_max); + var point = inputPoints[qi]; + weights[qi] -= weightFunction(point, pElim, d2, d_max, densities[qi]); heap.SetValue(qi, weights[qi]); } sampleCount--; diff --git a/Assets/Scripts/ServerShared/Sector.cs b/Assets/Scripts/ServerShared/Sector.cs index 77dfa7326..8d8d93eed 100644 --- a/Assets/Scripts/ServerShared/Sector.cs +++ b/Assets/Scripts/ServerShared/Sector.cs @@ -87,7 +87,7 @@ public class Sector // Create a delaunay triangulation to connect adjacent sectors var triangulation = DelaunayTriangulation, Cell2> - .Create(Zones.Select(z => new Vertex2(z.Position, z)).ToList(), 1e-5f); + .Create(Zones.Select(z => new Vertex2(z.Position, z)).ToList(), 1e-7f); var links = new HashSet<(SectorZone, SectorZone)>(); foreach(var cell in triangulation.Cells) { @@ -104,22 +104,22 @@ public class Sector progressCallback?.Invoke("Eliminating Zone Links"); if(progressCallback!=null) Thread.Sleep(500); // Inserting Delay to make it seem like it's doing more work lmao - foreach (var link in links.ToArray()) - { - foreach (var zone in Zones) - { - if(zone != link.Item1 && zone != link.Item2) - if (AetheriaMath.FindDistanceToSegment(zone.Position, link.Item1.Position, link.Item2.Position, out _) < minLineSeparation) - links.Remove(link); - } - } + // foreach (var link in links.ToArray()) + // { + // foreach (var zone in Zones) + // { + // if(zone != link.Item1 && zone != link.Item2) + // if (AetheriaMath.FindDistanceToSegment(zone.Position, link.Item1.Position, link.Item2.Position, out _) < minLineSeparation) + // links.Remove(link); + // } + // } foreach (var link in links) { link.Item1.AdjacentZones.Add(link.Item2); link.Item2.AdjacentZones.Add(link.Item1); } - + float LinkWeight((SectorZone, SectorZone) link) { return 1 / saturate(settings.CloudDensity((link.Item1.Position + link.Item2.Position) / 2)) * @@ -158,12 +158,12 @@ public class Sector progressCallback?.Invoke("Finding Chokepoints"); if(progressCallback!=null) Thread.Sleep(500); // Inserting Delay to make it seem like it's doing more work lmao - - // Entrance is the most isolated zone (highest total distance to all other zones - Entrance = Zones.MaxBy(z => z.Isolation); - // Exit is the zone furthest from the entrance - Exit = Zones.MaxBy(z => Entrance.Distance[z]); + // Exit is the most isolated zone (highest total distance to all other zones) + Exit = Zones.MaxBy(z => z.Isolation); + + // Entrance is the zone furthest from the exit + Entrance = Zones.MaxBy(z => Exit.Distance[z]); // Find all zones on the exit path where removing that zone would disconnect the entrance from the exit // Disregard "corridor" zones with only two adjacent zones @@ -226,7 +226,7 @@ public class Sector for (var i = 0; i < Factions.Length; i++) { - progressCallback?.Invoke($"Feeding Markov Chains: {i} / {Factions.Length}"); + progressCallback?.Invoke($"Feeding Markov Chains: {i+1} / {Factions.Length}"); //if(progressCallback!=null) Thread.Sleep(250); // Inserting Delay to make it seem like it's doing more work lmao var faction = Factions[i]; _nameGenerators[faction] = new MarkovNameGenerator(ref random, database.Get(faction.GeonameFile).Names, settings); @@ -241,7 +241,7 @@ public class Sector } else { - zone.Name = $"EAC-{random.NextInt(99999).ToString()}"; + zone.Name = $"EAC-{random.NextInt(9999).ToString()}"; } } diff --git a/Assets/Scripts/Tests.meta b/Assets/Scripts/Tests.meta new file mode 100644 index 000000000..dbd4a67c3 --- /dev/null +++ b/Assets/Scripts/Tests.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5af627def3db08544ae725f539d9bb85 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Tests/ShapeTestScript.cs b/Assets/Scripts/Tests/ShapeTestScript.cs new file mode 100644 index 000000000..65d24e8a5 --- /dev/null +++ b/Assets/Scripts/Tests/ShapeTestScript.cs @@ -0,0 +1,43 @@ +using System.Collections; +using System.Collections.Generic; +using NUnit.Framework; +using UnityEngine; +using UnityEngine.TestTools; +using Unity.Mathematics; +using static Unity.Mathematics.math; +using int2 = Unity.Mathematics.int2; + + +public class ShapeTestScript +{ + [Test] + public void ShapeRotation() + { + // Use the Assert class to test conditions + var verticalShape = new Shape(1, 2); + foreach (var v in verticalShape.AllCoordinates) verticalShape[v] = true; + + Assert.True(verticalShape.Rotate(int2.zero, ItemRotation.None).Equals(int2.zero), "verticalShape.Rotate(int2.zero, ItemRotation.None).Equals(int2.zero)"); + Assert.True(verticalShape.Rotate(int2(0,1), ItemRotation.Reversed).Equals(int2.zero), "verticalShape.Rotate(int2(0,1), ItemRotation.Reversed).Equals(int2.zero)"); + Assert.True(verticalShape.Rotate(int2(0,1), ItemRotation.CounterClockwise).Equals(int2.zero), "verticalShape.Rotate(int2(0,1), ItemRotation.CounterClockwise).Equals(int2.zero)"); + Assert.True(verticalShape.Rotate(int2(0,1), ItemRotation.Clockwise).Equals(int2(1,0)), "verticalShape.Rotate(int2(0,1), ItemRotation.Clockwise).Equals(int2(1,0))"); + } + + [Test] + public void ShapeFitsWithin() + { + // Use the Assert class to test conditions + var verticalShape = new Shape(1, 2); + foreach (var v in verticalShape.AllCoordinates) verticalShape[v] = true; + + Assert.True(verticalShape.FitsWithin(verticalShape, ItemRotation.None, out _), "verticalShape.FitsWithin(verticalShape, ItemRotation.None, out _)"); + + var horizontalShape = new Shape(2, 1); + foreach (var v in horizontalShape.AllCoordinates) horizontalShape[v] = true; + + Assert.True(horizontalShape.FitsWithin(verticalShape, ItemRotation.Clockwise, out _), "horizontalShape.FitsWithin(verticalShape, ItemRotation.Clockwise, out _)"); + + Assert.True(horizontalShape.FitsWithin(verticalShape, out var rotation, out _), "horizontalShape.FitsWithin(horizontalShape, out rotation, out _)"); + Assert.True(rotation == ItemRotation.Clockwise || rotation == ItemRotation.CounterClockwise, "rotation == ItemRotation.Clockwise || rotation == ItemRotation.CounterClockwise"); + } +} diff --git a/Assets/Scripts/Tests/ShapeTestScript.cs.meta b/Assets/Scripts/Tests/ShapeTestScript.cs.meta new file mode 100644 index 000000000..d063488a5 --- /dev/null +++ b/Assets/Scripts/Tests/ShapeTestScript.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 931f464e9597e104a8c9b6fa0763fb57 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Tests/Tests.asmdef b/Assets/Scripts/Tests/Tests.asmdef new file mode 100644 index 000000000..2b1bad83f --- /dev/null +++ b/Assets/Scripts/Tests/Tests.asmdef @@ -0,0 +1,25 @@ +{ + "name": "Tests", + "rootNamespace": "", + "references": [ + "UnityEngine.TestRunner", + "UnityEditor.TestRunner", + "Economy.Shared.Unity", + "Unity.Mathematics" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": true, + "precompiledReferences": [ + "nunit.framework.dll" + ], + "autoReferenced": false, + "defineConstraints": [ + "UNITY_INCLUDE_TESTS" + ], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Scripts/Tests/Tests.asmdef.meta b/Assets/Scripts/Tests/Tests.asmdef.meta new file mode 100644 index 000000000..93d2e6c68 --- /dev/null +++ b/Assets/Scripts/Tests/Tests.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 92d0b2b5224d7474a9067650a2ea50d4 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Shaders/Raymarching/VolumeRender.shader b/Assets/Shaders/Raymarching/VolumeRender.shader index 512f9197c..33271124d 100644 --- a/Assets/Shaders/Raymarching/VolumeRender.shader +++ b/Assets/Shaders/Raymarching/VolumeRender.shader @@ -124,11 +124,11 @@ float noise = pow(triNoise3d(pos*_NoiseFrequency),2);// + triNoise3d(pos*_NoiseFrequency*2, _NoiseSpeed * 2) * .5; pos.y += noise * _NoiseStrength; float patchDensity = saturate((-abs(pos.y+displacement)+patch)/_GridPatchBlend)*_GridPatchDensity; - float floorDist = -pos.y-(surface)+_GridFloorOffset; + float floorDist = -pos.y-surface+_GridFloorOffset; float floorDensity = floorDist/_GridFloorBlend*_GridFloorDensity; float fogDensity = patchDensity + max(0,floorDensity); float alpha = min(max(max(fogDensity, 0) + fillDensity, _AlphaFloor), .99); - float albedo = (pow(1-alpha, _TintExponent)) * smoothstep(0,-50,pos.y); + float albedo = pow(1-alpha, _TintExponent) * smoothstep(0,-250,pos.y); return float4((albedo*_Tint*lightTint).rgb, alpha); } diff --git a/GameData/AetherDB.msgpack b/GameData/AetherDB.msgpack index 9476e2a06..8e686316b 100644 --- a/GameData/AetherDB.msgpack +++ b/GameData/AetherDB.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:83493f0dc43a3abbac28741a23acd703e8061d55e79f7ee53c1d82b49595ba18 +oid sha256:5509ded28940d4741b3a6c5811b3af746c1e231302ce486f14095d79ba9e2e09 size 67563 diff --git a/GameData/Loadouts/Longinus.loadout b/GameData/Loadouts/Longinus.loadout deleted file mode 100644 index 0219f396c50a386810bca29337df80f245859c21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6087 zcmbQlc!xo7g-?E7dS+f}@ysIvQWIlc0%tCEX!ql;d9gWAli`%znKNf691(bQ8v>Xx^kr3=C8?andAakb!rZZp84tXLjD(eweev zD9@Ye6v%#{6E|*6FtxbH?ltw%H-_G~PbaVTNi0fFRd6ZFEK9}WN~aS*S5BJ5h}}%6 zx5+b;i3RA+RsSzKrF>8I+QsaA#xMWU9$--VfP+#l$)aFcwW{;($Y|5`e`T{*Ip-Ip zDg@-0rxxLMCKDUbNZS}ALvz+Q4)fv~Ci5*2nFcp|3keDLNPL+do}_Dh^|TLi_w ztaMH+NKDQw$;awS4{%_zU^fx!adJ##<^sC0b4qJbRr(V5bu6KL5!#F9LHs>)6617W zm}qy~NS%szn3jLcEoqsH1OwRplfiQ3n?Ec!c6;dE^i=AkzPscHNNNTq%*jUtp5@+O zZ2ahjdpE~h?kQg;hcYmNwVbP~+LrlB#Iwuu^}Q_3DlLdrIJ9tqO`0op?RTcIvg5MZ zjmFL`2fY|rj|lv0tT4Hgaoc168v&8l<^O&z56I7{%*7VLM+8jGI}(>|i1JwBIKSkl z^^Jh#0Xd1qC7H>X5eK%;@|3}j!vg89ll3)IR>@fg104?X569Q2tN(6%^Xq=oWVLYJ zmN^WJM+7{}H3IlqSGa9D=U3jV<*TvQIkPCa6qqcW@)L_vu$YfMK<(Ai(r^VRDDUA2 zozVbgAR~p21}GUR6clKoQSVYQrW8%}huc3JElf z;)V%(p~rGWK>Q2C_6URNUh5XEs+``hBev8XSdbOtC}uG2L_`#=?4(M4FqjetsJzDF zDbiCsBJ45hMY^YWs(A`jZ{f)K^!C&df%%JF9F-2Nahc}qr?fP*>ifC?VBP?>OcjDt z^NR7cshIeIEg+%8!V~I0uW*|8$2N0%2&^9J@%!2fJ zNHh!73R`==%_Z3&-K}9=oNr>>Q$_|6u-BK(bNM>MzQUn>^Y=$ftDQDMygm_JlImv3 z?%LFEd}-)dXfi~`-3ATGBE+m#B~K0dkp*DxX!#;66KWiy$fD;TRqXA zxBk*}zn(WO&)%(?(zp&%b_XS8t?;pre7y))4*dnO$6F}xo0ue0eCd1tF7i7RMR03um*klY(V>1*ME>K@$GZdTm z!P*c$NAo@;{Sgzoh!6*Qm7<8klLj0WfJQr^5@0a~ARxw-jvs*PAOy%1uwJYLSRGsm z0}$Xg9?8%JAVa}~0?c@)0w4=aIKstnvlhU#kzpvvBCIB3GgJYWVz2}$-e&*;^uTch znLkGT62gG%f^xBH1RD!i4>TOa2C9Tvhs=OT zK@sHPz+fU>bV3|SD_Ok{Bs_JIi#Crp@dVDhP>3xCf&b@(~Q Swo^w}`)Evp#E*Rg0|Nlc>EEjW diff --git a/GameData/PlayerSettings.msgpack b/GameData/PlayerSettings.msgpack index e4ecf11bc..d1c7c411a 100644 --- a/GameData/PlayerSettings.msgpack +++ b/GameData/PlayerSettings.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3e24b91666460697a5f6c8c2291e21dacf606e737b4758fec7df6d784e62ca9e -size 33545 +oid sha256:c261e749c7fa3969bf785293ee6cc0cf9a3cb2b999aaa7d75e0ce6a5ec64bf0a +size 93251 diff --git a/Packages/manifest.json b/Packages/manifest.json index 664fafadc..9d55e64c5 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -11,7 +11,7 @@ "com.unity.mathematics": "1.2.1", "com.unity.postprocessing": "2.3.0", "com.unity.recorder": "2.5.2", - "com.unity.test-framework": "1.1.22", + "com.unity.test-framework": "1.1.24", "com.unity.textmeshpro": "3.0.1", "com.unity.timeline": "1.4.6", "com.unity.ugui": "1.0.0", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index fcfa36107..560cade70 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -89,7 +89,7 @@ "url": "https://packages.unity.com" }, "com.unity.test-framework": { - "version": "1.1.22", + "version": "1.1.24", "depth": 0, "source": "registry", "dependencies": { diff --git a/Tests.csproj b/Tests.csproj new file mode 100644 index 000000000..1e54be14d --- /dev/null +++ b/Tests.csproj @@ -0,0 +1,663 @@ + + + + latest + <_TargetFrameworkDirectories>non_empty_path_generated_by_unity.rider.package + <_FullFrameworkReferenceAssemblyPaths>non_empty_path_generated_by_unity.rider.package + true + + + + Debug + AnyCPU + 10.0.20506 + 2.0 + + {e63acb9a-7e63-149e-cd20-7526567487ec} + {E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Properties + Tests + v4.7.1 + 512 + . + + + true + full + false + Temp\Bin\Debug\ + DEBUG;TRACE;UNITY_2020_2_6;UNITY_2020_2;UNITY_2020;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2017_4_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_2_OR_NEWER;UNITY_2018_3_OR_NEWER;UNITY_2018_4_OR_NEWER;UNITY_2019_1_OR_NEWER;UNITY_2019_2_OR_NEWER;UNITY_2019_3_OR_NEWER;UNITY_2019_4_OR_NEWER;UNITY_2020_1_OR_NEWER;UNITY_2020_2_OR_NEWER;PLATFORM_ARCH_64;UNITY_64;UNITY_INCLUDE_TESTS;USE_SEARCH_ENGINE_API;SCENE_TEMPLATE_MODULE;ENABLE_AR;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_EVENT_QUEUE;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_TEXTURE_STREAMING;ENABLE_VIRTUALTEXTURING;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_UNITYWEBREQUEST;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;ENABLE_MANAGED_ANIMATION_JOBS;ENABLE_MANAGED_AUDIO_JOBS;INCLUDE_DYNAMIC_GI;ENABLE_MONO_BDWGC;ENABLE_SCRIPTING_GC_WBARRIERS;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_VIDEO;PLATFORM_STANDALONE;PLATFORM_STANDALONE_WIN;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_OUT_OF_PROCESS_CRASH_HANDLER;ENABLE_CLUSTER_SYNC;ENABLE_CLUSTERINPUT;PLATFORM_UPDATES_TIME_OUTSIDE_OF_PLAYER_LOOP;GFXDEVICE_WAITFOREVENT_MESSAGEPUMP;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_4_6;ENABLE_PROFILER;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_UNITY_COLLECTIONS_CHECKS;ENABLE_BURST_AOT;UNITY_TEAM_LICENSE;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_DIRECTOR;ENABLE_LOCALIZATION;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_TILEMAP;ENABLE_TIMELINE;ENABLE_INPUT_SYSTEM;UNITY_POST_PROCESSING_STACK_V2;TEST_MSAGL;REPORTING;PERSISTENCE;SUBSTANCE_PLUGIN_ENABLED;CSHARP_7_OR_LATER;CSHARP_7_3_OR_NEWER + prompt + 4 + + False + False + + + pdbonly + true + Temp\bin\Release\ + prompt + 4 + + False + False + + + true + true + false + false + false + + + + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ARModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AccessibilityModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AndroidJNIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AnimationModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AssetBundleModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AudioModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClothModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterInputModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterRendererModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.CoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.CrashReportingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.DSPGraphModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.DirectorModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.GIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.GameCenterModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.GridModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.HotReloadModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.IMGUIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ImageConversionModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.InputModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.InputLegacyModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.JSONSerializeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.LocalizationModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ParticleSystemModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.PerformanceReportingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.PhysicsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.Physics2DModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ProfilerModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.RuntimeInitializeOnLoadManagerInitializerModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ScreenCaptureModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.SharedInternalsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteMaskModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteShapeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.StreamingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.SubstanceModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.SubsystemsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TLSModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainPhysicsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TextCoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TextRenderingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TilemapModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIElementsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIElementsNativeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UNETModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UmbraModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityAnalyticsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityConnectModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityCurlModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityTestProtocolModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAssetBundleModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAudioModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestTextureModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestWWWModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.VFXModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.VRModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.VehiclesModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.VideoModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.VirtualTexturingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.WindModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.XRModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.CoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.GraphViewModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.PackageManagerUIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.SceneTemplateModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.UIElementsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.UIElementsSamplesModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.UIServiceModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.UnityConnectModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEditor.Graphs.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/PlaybackEngines/WindowsStandaloneSupport/UnityEditor.WindowsStandalone.Extensions.dll + + + E:/Projects/Aetheria-Economy/Library/PackageCache/com.unity.ext.nunit@1.0.6/net35/unity-custom/nunit.framework.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/mscorlib.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Core.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Runtime.Serialization.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Xml.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Xml.Linq.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Numerics.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Numerics.Vectors.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Net.Http.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Microsoft.CSharp.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Data.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/Microsoft.Win32.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/netstandard.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.AppContext.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.Concurrent.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.NonGeneric.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.Specialized.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.Annotations.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.EventBasedAsync.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.TypeConverter.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Console.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Data.Common.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Contracts.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Debug.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.FileVersionInfo.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Process.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.StackTrace.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.TextWriterTraceListener.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Tools.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.TraceSource.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Drawing.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Dynamic.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.Calendars.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.Compression.ZipFile.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.DriveInfo.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.Watcher.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.IsolatedStorage.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.MemoryMappedFiles.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.Pipes.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.UnmanagedMemoryStream.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Expressions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Parallel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Queryable.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Http.Rtc.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.NameResolution.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.NetworkInformation.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Ping.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Requests.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Security.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Sockets.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebHeaderCollection.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebSockets.Client.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebSockets.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ObjectModel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.ILGeneration.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.Lightweight.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.Reader.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.ResourceManager.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.Writer.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.CompilerServices.VisualC.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Handles.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.RuntimeInformation.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.WindowsRuntime.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Numerics.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Formatters.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Json.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Xml.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Claims.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Algorithms.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Csp.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Encoding.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.X509Certificates.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Principal.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.SecureString.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Duplex.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Http.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.NetTcp.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Security.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.Encoding.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.Encoding.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.RegularExpressions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Overlapped.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Tasks.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Tasks.Parallel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Thread.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.ThreadPool.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Timer.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ValueTuple.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.ReaderWriter.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XmlDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XmlSerializer.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XPath.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XPath.XDocument.dll + + + E:/Projects/Aetheria-Economy/Library/ScriptAssemblies/UnityEngine.TestRunner.dll + + + E:/Projects/Aetheria-Economy/Library/ScriptAssemblies/UnityEditor.TestRunner.dll + + + E:/Projects/Aetheria-Economy/Library/ScriptAssemblies/Unity.Mathematics.dll + + + E:/Projects/Aetheria-Economy/Library/ScriptAssemblies/UnityEditor.UI.dll + + + E:/Projects/Aetheria-Economy/Library/ScriptAssemblies/UnityEngine.UI.dll + + + + + {c2362ba6-dee9-92b9-0779-f5fcf5968986} + Economy.Shared.Unity + + + + +