diff --git a/.idea/.idea.Aetheria-Economy/.idea/contentModel.xml b/.idea/.idea.Aetheria-Economy/.idea/contentModel.xml index 885dda6c0..d7dac84a0 100644 --- a/.idea/.idea.Aetheria-Economy/.idea/contentModel.xml +++ b/.idea/.idea.Aetheria-Economy/.idea/contentModel.xml @@ -210,9 +210,7 @@ - - @@ -224,19 +222,31 @@ - + + + + + + + + + + + + + + + + + + - - - - - @@ -1420,15 +1430,10 @@ - - - - - @@ -1459,8 +1464,10 @@ + + @@ -1470,11 +1477,13 @@ - + + + @@ -1487,12 +1496,10 @@ - - @@ -1971,12 +1978,7 @@ - - - - - @@ -2000,6 +2002,8 @@ + + @@ -2012,6 +2016,13 @@ + + + + + + + @@ -2025,7 +2036,6 @@ - diff --git a/Assembly-CSharp.csproj b/Assembly-CSharp.csproj index 5bc773f3f..9b5c13314 100644 --- a/Assembly-CSharp.csproj +++ b/Assembly-CSharp.csproj @@ -64,10 +64,10 @@ - + - + @@ -77,7 +77,7 @@ - + @@ -88,7 +88,7 @@ - + @@ -116,7 +116,7 @@ - + @@ -197,10 +197,10 @@ - + - + @@ -270,7 +270,7 @@ - + @@ -315,7 +315,7 @@ - + @@ -338,7 +338,7 @@ - + @@ -407,7 +407,7 @@ - + @@ -462,7 +462,7 @@ - + @@ -513,7 +513,7 @@ - + @@ -549,7 +549,7 @@ - + @@ -572,7 +572,7 @@ - + @@ -647,13 +647,13 @@ - + - + @@ -706,10 +706,10 @@ - + - + @@ -719,6 +719,10 @@ + + + + diff --git a/Assets/Resources/Settings.asset b/Assets/Resources/Settings.asset index 1bb95f38c..3d7b6693f 100644 --- a/Assets/Resources/Settings.asset +++ b/Assets/Resources/Settings.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8db7fda01edf4958994e9baeaf1c8b0d1edf33e5bead1eb095ca1367bf6f20ba -size 7243 +oid sha256:857de56a7b8e100fc786f72a2de30b7819fb54b486db4e21d4fd17a1a8daee76 +size 7266 diff --git a/Assets/Scenes/ARPG.unity b/Assets/Scenes/ARPG.unity index 985f806fc..6fc673e14 100644 --- a/Assets/Scenes/ARPG.unity +++ b/Assets/Scenes/ARPG.unity @@ -1586,7 +1586,7 @@ MonoBehaviour: m_EditorClassIdentifier: NoiseAmplitude: 0 NoiseFrequency: 0 - CanvasRectTransform: {fileID: 761574181} + Canvas: {fileID: 0} BorderPixels: 10 Target: {x: 0, y: 0, z: 0} --- !u!1 &166261016 @@ -9668,7 +9668,7 @@ MonoBehaviour: m_EditorClassIdentifier: NoiseAmplitude: 0 NoiseFrequency: 0 - CanvasRectTransform: {fileID: 761574181} + Canvas: {fileID: 761574180} BorderPixels: 10 Target: {x: 0, y: 0, z: 0} --- !u!114 &776416426 @@ -14877,7 +14877,7 @@ MonoBehaviour: m_EditorClassIdentifier: NoiseAmplitude: 0 NoiseFrequency: 0 - CanvasRectTransform: {fileID: 761574181} + Canvas: {fileID: 761574180} BorderPixels: 10 Target: {x: 0, y: 0, z: 0} --- !u!114 &1284802340 @@ -17253,12 +17253,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} @@ -17273,12 +17273,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} @@ -17608,7 +17608,7 @@ MonoBehaviour: m_EditorClassIdentifier: NoiseAmplitude: 0 NoiseFrequency: 0 - CanvasRectTransform: {fileID: 761574181} + Canvas: {fileID: 761574180} BorderPixels: 10 Target: {x: 0, y: 0, z: 0} --- !u!1 &1558520821 @@ -18109,12 +18109,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} @@ -18129,12 +18129,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} @@ -18501,7 +18501,7 @@ MonoBehaviour: m_EditorClassIdentifier: NoiseAmplitude: 0 NoiseFrequency: 0 - CanvasRectTransform: {fileID: 761574181} + Canvas: {fileID: 761574180} BorderPixels: 10 Target: {x: 0, y: 0, z: 0} --- !u!114 &1631662980 @@ -19785,7 +19785,7 @@ MonoBehaviour: m_EditorClassIdentifier: NoiseAmplitude: 0 NoiseFrequency: 0 - CanvasRectTransform: {fileID: 761574181} + Canvas: {fileID: 761574180} BorderPixels: 10 Target: {x: 0, y: 0, z: 0} --- !u!114 &1771741751 @@ -20663,7 +20663,7 @@ MonoBehaviour: m_EditorClassIdentifier: NoiseAmplitude: 0 NoiseFrequency: 0 - CanvasRectTransform: {fileID: 761574181} + Canvas: {fileID: 761574180} BorderPixels: 10 Target: {x: 0, y: 0, z: 0} --- !u!114 &1876420642 @@ -20888,7 +20888,7 @@ MonoBehaviour: m_EditorClassIdentifier: NoiseAmplitude: 0 NoiseFrequency: 0 - CanvasRectTransform: {fileID: 761574181} + Canvas: {fileID: 761574180} BorderPixels: 10 Target: {x: 0, y: 0, z: 0} --- !u!114 &1914685584 diff --git a/Assets/Scripts/Editor/DatabaseInspector.cs b/Assets/Scripts/Editor/DatabaseInspector.cs index 5219e17bb..85c4c0dd1 100644 --- a/Assets/Scripts/Editor/DatabaseInspector.cs +++ b/Assets/Scripts/Editor/DatabaseInspector.cs @@ -330,33 +330,38 @@ public class DatabaseInspector : EditorWindow field.SetValue(obj, list); GUI.changed = true; } - else - { - var sorted = true; - var order = int.MinValue; - foreach(var element in list) - { - var elementType = element.GetType(); - var elementOrder = elementType.GetCustomAttribute()?.Order ?? 0; - if (elementOrder < order) - sorted = false; - order = elementOrder; - } - - if (!sorted) - { - var sortedList = list - .Cast() - .OrderBy(o => o.GetType().GetCustomAttribute()?.Order ?? 0); - list = (IList) Activator.CreateInstance(type); - foreach (var o in sortedList) - list.Add(o); - field.SetValue(obj, list); - GUI.changed = true; - } - } + // else + // { + // var sorted = true; + // var order = int.MinValue; + // foreach(var element in list) + // { + // var elementType = element.GetType(); + // var elementOrder = elementType.GetCustomAttribute()?.Order ?? 0; + // if (elementOrder < order) + // sorted = false; + // order = elementOrder; + // } + // + // if (!sorted) + // { + // var sortedList = list + // .Cast() + // .OrderBy(o => o.GetType().GetCustomAttribute()?.Order ?? 0); + // list = (IList) Activator.CreateInstance(type); + // foreach (var o in sortedList) + // list.Add(o); + // field.SetValue(obj, list); + // GUI.changed = true; + // } + // } foreach (var o in list) { + if (o == null) + { + list.Remove(o); + break; + } bool _tinted = false; var originalColor = GUI.backgroundColor; if (o is ITintInspector tint) diff --git a/Assets/Scripts/Gameplay.meta b/Assets/Scripts/Gameplay.meta new file mode 100644 index 000000000..3eba50499 --- /dev/null +++ b/Assets/Scripts/Gameplay.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 65a07df7be49d8a46adc474abc4277d9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ActionGameManager.cs b/Assets/Scripts/Gameplay/ActionGameManager.cs similarity index 86% rename from Assets/Scripts/ActionGameManager.cs rename to Assets/Scripts/Gameplay/ActionGameManager.cs index 356481601..b47dcebc0 100644 --- a/Assets/Scripts/ActionGameManager.cs +++ b/Assets/Scripts/Gameplay/ActionGameManager.cs @@ -59,7 +59,7 @@ public class ActionGameManager : MonoBehaviour private float2 _shipYawPitch; private float3 _viewDirection; private (HardpointData[] hardpoints, Transform[] barrels, PlaceUIElementWorldspace crosshair)[] _articulationGroups; - private (TargetLock targetLock, PlaceUIElementWorldspace indicator, Rotate spin)[] _lockingIndicators; + private (LockWeapon targetLock, PlaceUIElementWorldspace indicator, Rotate spin)[] _lockingIndicators; public List PlayerShips { get; } = new List(); public EquippedDockingBay DockingBay { get; private set; } @@ -234,172 +234,92 @@ public class ActionGameManager : MonoBehaviour { if (CurrentShip.Parent != null) return; var item = SchematicDisplay.SchematicItems[SchematicDisplay.SelectedItemIndex]; - if (CurrentShip.TriggerGroups[SchematicDisplay.SelectedGroupIndex].Contains(item.Item)) - CurrentShip.TriggerGroups[SchematicDisplay.SelectedGroupIndex].Remove(item.Item); - else CurrentShip.TriggerGroups[SchematicDisplay.SelectedGroupIndex].Add(item.Item); + if (CurrentShip.TriggerGroups[SchematicDisplay.SelectedGroupIndex].items.Contains(item.Item)) + CurrentShip.TriggerGroups[SchematicDisplay.SelectedGroupIndex].items.Remove(item.Item); + else CurrentShip.TriggerGroups[SchematicDisplay.SelectedGroupIndex].items.Add(item.Item); + foreach (var group in item.Item.BehaviorGroups.Values) + { + var behavior = group.GetBehavior(); + if(behavior != null) + { + if (CurrentShip.TriggerGroups[SchematicDisplay.SelectedGroupIndex].behaviors.Contains(behavior)) + CurrentShip.TriggerGroups[SchematicDisplay.SelectedGroupIndex].behaviors.Remove(behavior); + else CurrentShip.TriggerGroups[SchematicDisplay.SelectedGroupIndex].behaviors.Add(behavior); + } + } SchematicDisplay.UpdateTriggerGroups(); }; _input.Player.FireGroup1.started += context => { if (CurrentShip.Parent != null) return; - foreach (var item in CurrentShip.TriggerGroups[0]) - { - foreach (var behaviors in item.BehaviorGroups) - { - if (behaviors.Switch != null) - behaviors.Switch.Activated = true; - behaviors.Trigger?.Pull(); - } - } + foreach (var s in CurrentShip.TriggerGroups[0].behaviors) s.Activate(); }; _input.Player.FireGroup1.canceled += context => { if (CurrentShip.Parent != null) return; - foreach (var item in CurrentShip.TriggerGroups[0]) - { - foreach (var behaviors in item.BehaviorGroups) - { - if (behaviors.Switch != null) - behaviors.Switch.Activated = false; - } - } + foreach (var s in CurrentShip.TriggerGroups[0].behaviors) s.Deactivate(); }; _input.Player.FireGroup2.started += context => { if (CurrentShip.Parent != null) return; - foreach (var item in CurrentShip.TriggerGroups[1]) - { - foreach (var behaviors in item.BehaviorGroups) - { - if (behaviors.Switch != null) - behaviors.Switch.Activated = true; - behaviors.Trigger?.Pull(); - } - } + foreach (var s in CurrentShip.TriggerGroups[1].behaviors) s.Activate(); }; _input.Player.FireGroup2.canceled += context => { if (CurrentShip.Parent != null) return; - foreach (var item in CurrentShip.TriggerGroups[1]) - { - foreach (var behaviors in item.BehaviorGroups) - { - if (behaviors.Switch != null) - behaviors.Switch.Activated = false; - } - } + foreach (var s in CurrentShip.TriggerGroups[1].behaviors) s.Deactivate(); }; _input.Player.FireGroup3.started += context => { if (CurrentShip.Parent != null) return; - foreach (var item in CurrentShip.TriggerGroups[2]) - { - foreach (var behaviors in item.BehaviorGroups) - { - if (behaviors.Switch != null) - behaviors.Switch.Activated = true; - behaviors.Trigger?.Pull(); - } - } + foreach (var s in CurrentShip.TriggerGroups[2].behaviors) s.Activate(); }; _input.Player.FireGroup3.canceled += context => { if (CurrentShip.Parent != null) return; - foreach (var item in CurrentShip.TriggerGroups[2]) - { - foreach (var behaviors in item.BehaviorGroups) - { - if (behaviors.Switch != null) - behaviors.Switch.Activated = false; - } - } + foreach (var s in CurrentShip.TriggerGroups[2].behaviors) s.Deactivate(); }; _input.Player.FireGroup4.started += context => { if (CurrentShip.Parent != null) return; - foreach (var item in CurrentShip.TriggerGroups[3]) - { - foreach (var behaviors in item.BehaviorGroups) - { - if (behaviors.Switch != null) - behaviors.Switch.Activated = true; - behaviors.Trigger?.Pull(); - } - } + foreach (var s in CurrentShip.TriggerGroups[3].behaviors) s.Activate(); }; _input.Player.FireGroup4.canceled += context => { if (CurrentShip.Parent != null) return; - foreach (var item in CurrentShip.TriggerGroups[3]) - { - foreach (var behaviors in item.BehaviorGroups) - { - if (behaviors.Switch != null) - behaviors.Switch.Activated = false; - } - } + foreach (var s in CurrentShip.TriggerGroups[3].behaviors) s.Deactivate(); }; _input.Player.FireGroup5.started += context => { if (CurrentShip.Parent != null) return; - foreach (var item in CurrentShip.TriggerGroups[4]) - { - foreach (var behaviors in item.BehaviorGroups) - { - if (behaviors.Switch != null) - behaviors.Switch.Activated = true; - behaviors.Trigger?.Pull(); - } - } + foreach (var s in CurrentShip.TriggerGroups[4].behaviors) s.Activate(); }; _input.Player.FireGroup5.canceled += context => { if (CurrentShip.Parent != null) return; - foreach (var item in CurrentShip.TriggerGroups[4]) - { - foreach (var behaviors in item.BehaviorGroups) - { - if (behaviors.Switch != null) - behaviors.Switch.Activated = false; - } - } + foreach (var s in CurrentShip.TriggerGroups[4].behaviors) s.Deactivate(); }; _input.Player.FireGroup6.started += context => { if (CurrentShip.Parent != null) return; - foreach (var item in CurrentShip.TriggerGroups[5]) - { - foreach (var behaviors in item.BehaviorGroups) - { - if (behaviors.Switch != null) - behaviors.Switch.Activated = true; - behaviors.Trigger?.Pull(); - } - } + foreach (var s in CurrentShip.TriggerGroups[5].behaviors) s.Activate(); }; _input.Player.FireGroup6.canceled += context => { if (CurrentShip.Parent != null) return; - foreach (var item in CurrentShip.TriggerGroups[5]) - { - foreach (var behaviors in item.BehaviorGroups) - { - if (behaviors.Switch != null) - behaviors.Switch.Activated = false; - } - } + foreach (var s in CurrentShip.TriggerGroups[5].behaviors) s.Deactivate(); }; #endregion @@ -604,7 +524,7 @@ public class ActionGameManager : MonoBehaviour foreach (var group in _articulationGroups) group.crosshair.gameObject.SetActive(true); - _lockingIndicators = CurrentShip.GetBehaviors().Select(x => + _lockingIndicators = CurrentShip.GetBehaviors().Select(x => { var i = LockIndicator.Instantiate(); return (x, i, i.GetComponent()); diff --git a/Assets/Scripts/ActionGameManager.cs.meta b/Assets/Scripts/Gameplay/ActionGameManager.cs.meta similarity index 100% rename from Assets/Scripts/ActionGameManager.cs.meta rename to Assets/Scripts/Gameplay/ActionGameManager.cs.meta diff --git a/Assets/Scripts/ArticulationPoint.cs b/Assets/Scripts/Gameplay/ArticulationPoint.cs similarity index 100% rename from Assets/Scripts/ArticulationPoint.cs rename to Assets/Scripts/Gameplay/ArticulationPoint.cs diff --git a/Assets/Scripts/ArticulationPoint.cs.meta b/Assets/Scripts/Gameplay/ArticulationPoint.cs.meta similarity index 100% rename from Assets/Scripts/ArticulationPoint.cs.meta rename to Assets/Scripts/Gameplay/ArticulationPoint.cs.meta diff --git a/Assets/Scripts/EntityPrefab.cs b/Assets/Scripts/Gameplay/EntityPrefab.cs similarity index 100% rename from Assets/Scripts/EntityPrefab.cs rename to Assets/Scripts/Gameplay/EntityPrefab.cs diff --git a/Assets/Scripts/EntityPrefab.cs.meta b/Assets/Scripts/Gameplay/EntityPrefab.cs.meta similarity index 100% rename from Assets/Scripts/EntityPrefab.cs.meta rename to Assets/Scripts/Gameplay/EntityPrefab.cs.meta diff --git a/Assets/Scripts/HullCollider.cs b/Assets/Scripts/Gameplay/HullCollider.cs similarity index 100% rename from Assets/Scripts/HullCollider.cs rename to Assets/Scripts/Gameplay/HullCollider.cs diff --git a/Assets/Scripts/HullCollider.cs.meta b/Assets/Scripts/Gameplay/HullCollider.cs.meta similarity index 100% rename from Assets/Scripts/HullCollider.cs.meta rename to Assets/Scripts/Gameplay/HullCollider.cs.meta diff --git a/Assets/Scripts/ThrusterHardpoint.cs b/Assets/Scripts/Gameplay/ThrusterHardpoint.cs similarity index 100% rename from Assets/Scripts/ThrusterHardpoint.cs rename to Assets/Scripts/Gameplay/ThrusterHardpoint.cs diff --git a/Assets/Scripts/ThrusterHardpoint.cs.meta b/Assets/Scripts/Gameplay/ThrusterHardpoint.cs.meta similarity index 100% rename from Assets/Scripts/ThrusterHardpoint.cs.meta rename to Assets/Scripts/Gameplay/ThrusterHardpoint.cs.meta diff --git a/Assets/Scripts/WeaponHardpoint.cs b/Assets/Scripts/Gameplay/WeaponHardpoint.cs similarity index 100% rename from Assets/Scripts/WeaponHardpoint.cs rename to Assets/Scripts/Gameplay/WeaponHardpoint.cs diff --git a/Assets/Scripts/WeaponHardpoint.cs.meta b/Assets/Scripts/Gameplay/WeaponHardpoint.cs.meta similarity index 100% rename from Assets/Scripts/WeaponHardpoint.cs.meta rename to Assets/Scripts/Gameplay/WeaponHardpoint.cs.meta diff --git a/Assets/Scripts/Gameplay/Weapons.meta b/Assets/Scripts/Gameplay/Weapons.meta new file mode 100644 index 000000000..269c870d2 --- /dev/null +++ b/Assets/Scripts/Gameplay/Weapons.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 89bd1fe14443ac841ba3ad78301769f5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Gameplay/Weapons/ConstantWeaponEffectManager.cs b/Assets/Scripts/Gameplay/Weapons/ConstantWeaponEffectManager.cs new file mode 100644 index 000000000..fc8b0f185 --- /dev/null +++ b/Assets/Scripts/Gameplay/Weapons/ConstantWeaponEffectManager.cs @@ -0,0 +1,9 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public abstract class ConstantWeaponEffectManager : MonoBehaviour +{ + public abstract void Start(WeaponData data, EquippedItem item, EntityInstance source, EntityInstance target); + public abstract void Stop(WeaponData data, EquippedItem item, EntityInstance source, EntityInstance target); +} diff --git a/Assets/Scripts/ServerShared/Behaviors/TargetLock.cs.meta b/Assets/Scripts/Gameplay/Weapons/ConstantWeaponEffectManager.cs.meta similarity index 83% rename from Assets/Scripts/ServerShared/Behaviors/TargetLock.cs.meta rename to Assets/Scripts/Gameplay/Weapons/ConstantWeaponEffectManager.cs.meta index 3704a92b1..22d1e2c7b 100644 --- a/Assets/Scripts/ServerShared/Behaviors/TargetLock.cs.meta +++ b/Assets/Scripts/Gameplay/Weapons/ConstantWeaponEffectManager.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 7d1880b94a9e9f74e9c13be8d5fd8dee +guid: 38df809a0cf4b7748bad88620bb7b3ab MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/Scripts/GuidedProjectile.cs b/Assets/Scripts/Gameplay/Weapons/GuidedProjectile.cs similarity index 100% rename from Assets/Scripts/GuidedProjectile.cs rename to Assets/Scripts/Gameplay/Weapons/GuidedProjectile.cs diff --git a/Assets/Scripts/GuidedProjectile.cs.meta b/Assets/Scripts/Gameplay/Weapons/GuidedProjectile.cs.meta similarity index 100% rename from Assets/Scripts/GuidedProjectile.cs.meta rename to Assets/Scripts/Gameplay/Weapons/GuidedProjectile.cs.meta diff --git a/Assets/Scripts/Gameplay/Weapons/GuidedProjectileManager.cs b/Assets/Scripts/Gameplay/Weapons/GuidedProjectileManager.cs new file mode 100644 index 000000000..d920df3f3 --- /dev/null +++ b/Assets/Scripts/Gameplay/Weapons/GuidedProjectileManager.cs @@ -0,0 +1,35 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class GuidedProjectileManager : InstantWeaponEffectManager +{ + public Prototype ProjectilePrototype; + + public override void Fire(WeaponData data, EquippedItem item, EntityInstance source, EntityInstance target) + { + if(data is LauncherData launcher) + { + var p = ProjectilePrototype.Instantiate(); + p.Source = source.Transform; + p.SourceEntity = source.Entity; + p.Target = target.Transform; + p.Frequency = launcher.DodgeFrequency; + p.Thrust = source.Entity.ItemManager.Evaluate(launcher.Thrust, item.EquippableItem, source.Entity); + var hp = source.Entity.Hardpoints[item.Position.x, item.Position.y]; + var barrel = source.GetBarrel(hp); + p.transform.position = barrel.position; + p.Velocity = barrel.forward * source.Entity.ItemManager.Evaluate(launcher.LaunchSpeed, item.EquippableItem, source.Entity); + p.Damage = source.Entity.ItemManager.Evaluate(data.Damage, item.EquippableItem, source.Entity); + p.Penetration = source.Entity.ItemManager.Evaluate(data.Penetration, item.EquippableItem, source.Entity); + p.Spread = source.Entity.ItemManager.Evaluate(data.DamageSpread, item.EquippableItem, source.Entity); + p.DamageType = data.DamageType; + p.GuidanceCurve = launcher.GuidanceCurve.ToCurve(); + p.LiftCurve = launcher.LiftCurve.ToCurve(); + p.ThrustCurve = launcher.ThrustCurve.ToCurve(); + p.Thrust = source.Entity.ItemManager.Evaluate(launcher.Thrust, item.EquippableItem, source.Entity); + p.TopSpeed = source.Entity.ItemManager.Evaluate(launcher.Velocity, item.EquippableItem, source.Entity); + } + else Debug.LogError($"Weapon {item.EquippableItem.Name} linked to {name} effect, but is not a Launcher!"); + } +} diff --git a/Assets/Scripts/GuidedProjectileManager.cs.meta b/Assets/Scripts/Gameplay/Weapons/GuidedProjectileManager.cs.meta similarity index 100% rename from Assets/Scripts/GuidedProjectileManager.cs.meta rename to Assets/Scripts/Gameplay/Weapons/GuidedProjectileManager.cs.meta diff --git a/Assets/Scripts/Gameplay/Weapons/InstantWeaponEffectManager.cs b/Assets/Scripts/Gameplay/Weapons/InstantWeaponEffectManager.cs new file mode 100644 index 000000000..7dfb4697d --- /dev/null +++ b/Assets/Scripts/Gameplay/Weapons/InstantWeaponEffectManager.cs @@ -0,0 +1,8 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public abstract class InstantWeaponEffectManager : MonoBehaviour +{ + public abstract void Fire(WeaponData data, EquippedItem item, EntityInstance source, EntityInstance target); +} diff --git a/Assets/Scripts/ServerShared/Behaviors/Hitscan.cs.meta b/Assets/Scripts/Gameplay/Weapons/InstantWeaponEffectManager.cs.meta similarity index 83% rename from Assets/Scripts/ServerShared/Behaviors/Hitscan.cs.meta rename to Assets/Scripts/Gameplay/Weapons/InstantWeaponEffectManager.cs.meta index 35ab6aea4..dba49d578 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Hitscan.cs.meta +++ b/Assets/Scripts/Gameplay/Weapons/InstantWeaponEffectManager.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 215516570484dc343ab90cae7a8ec175 +guid: 947a7d0e9469d724daed03d35a0c1f4e MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/Scripts/Gameplay/Weapons/Laser.cs b/Assets/Scripts/Gameplay/Weapons/Laser.cs new file mode 100644 index 000000000..9b9f4f8e1 --- /dev/null +++ b/Assets/Scripts/Gameplay/Weapons/Laser.cs @@ -0,0 +1,13 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Laser : MonoBehaviour +{ + public float Damage { get; set; } + public float Penetration { get; set; } + public float Spread { get; set; } + public DamageType DamageType { get; set; } + public Entity SourceEntity { get; set; } + public float Range { get; set; } +} diff --git a/Assets/Scripts/Gameplay/Weapons/Laser.cs.meta b/Assets/Scripts/Gameplay/Weapons/Laser.cs.meta new file mode 100644 index 000000000..baabea93b --- /dev/null +++ b/Assets/Scripts/Gameplay/Weapons/Laser.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 166b726996e49bd4b87608739a5af815 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ProjectileManager.cs b/Assets/Scripts/Gameplay/Weapons/LaserManager.cs similarity index 62% rename from Assets/Scripts/ProjectileManager.cs rename to Assets/Scripts/Gameplay/Weapons/LaserManager.cs index 770d05a88..5e9d2212b 100644 --- a/Assets/Scripts/ProjectileManager.cs +++ b/Assets/Scripts/Gameplay/Weapons/LaserManager.cs @@ -2,24 +2,24 @@ using System.Collections.Generic; using UnityEngine; -public class ProjectileManager : MonoBehaviour +public class LaserManager : InstantWeaponEffectManager { public Prototype ProjectilePrototype; - public void Launch(ProjectileWeaponData data, EquippedItem item, EntityInstance source) + public override void Fire(WeaponData data, EquippedItem item, EntityInstance source, EntityInstance target) { - var p = ProjectilePrototype.Instantiate(); + var p = ProjectilePrototype.Instantiate(); p.SourceEntity = source.Entity; var hp = source.Entity.Hardpoints[item.Position.x, item.Position.y]; var barrel = source.GetBarrel(hp); p.Range = source.Entity.ItemManager.Evaluate(data.Range, item.EquippableItem, source.Entity); - p.StartPosition = p.transform.position = barrel.position; - p.Velocity = barrel.forward * source.Entity.ItemManager.Evaluate(data.Velocity, item.EquippableItem, source.Entity); + var t = p.transform; + t.SetParent(barrel); + t.forward = barrel.forward; + t.position = barrel.position; p.Damage = source.Entity.ItemManager.Evaluate(data.Damage, item.EquippableItem, source.Entity); p.Penetration = source.Entity.ItemManager.Evaluate(data.Penetration, item.EquippableItem, source.Entity); p.Spread = source.Entity.ItemManager.Evaluate(data.DamageSpread, item.EquippableItem, source.Entity); p.DamageType = data.DamageType; - p.Zone = source.Entity.Zone; - p.Trail.Clear(); } } diff --git a/Assets/Scripts/Gameplay/Weapons/LaserManager.cs.meta b/Assets/Scripts/Gameplay/Weapons/LaserManager.cs.meta new file mode 100644 index 000000000..f3251dcc4 --- /dev/null +++ b/Assets/Scripts/Gameplay/Weapons/LaserManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5745a5be5f0c02b4b88bd094ea609c13 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Projectile.cs b/Assets/Scripts/Gameplay/Weapons/Projectile.cs similarity index 100% rename from Assets/Scripts/Projectile.cs rename to Assets/Scripts/Gameplay/Weapons/Projectile.cs diff --git a/Assets/Scripts/Projectile.cs.meta b/Assets/Scripts/Gameplay/Weapons/Projectile.cs.meta similarity index 100% rename from Assets/Scripts/Projectile.cs.meta rename to Assets/Scripts/Gameplay/Weapons/Projectile.cs.meta diff --git a/Assets/Scripts/Gameplay/Weapons/ProjectileManager.cs b/Assets/Scripts/Gameplay/Weapons/ProjectileManager.cs new file mode 100644 index 000000000..3916c41ac --- /dev/null +++ b/Assets/Scripts/Gameplay/Weapons/ProjectileManager.cs @@ -0,0 +1,31 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ProjectileManager : InstantWeaponEffectManager +{ + public Prototype ProjectilePrototype; + + public override void Fire(WeaponData data, EquippedItem item, EntityInstance source, EntityInstance target) + { + if(data is ProjectileWeaponData projectile) + { + var p = ProjectilePrototype.Instantiate(); + p.SourceEntity = source.Entity; + var hp = source.Entity.Hardpoints[item.Position.x, item.Position.y]; + var barrel = source.GetBarrel(hp); + p.Range = source.Entity.ItemManager.Evaluate(data.Range, item.EquippableItem, source.Entity); + p.StartPosition = p.transform.position = barrel.position; + var angle = source.Entity.ItemManager.Evaluate(projectile.Spread, item.EquippableItem, source.Entity) / 2; + p.Velocity = (Quaternion.Euler(Random.Range(-angle, angle), Random.Range(-angle, angle), Random.Range(-angle, angle)) * barrel.forward) * + source.Entity.ItemManager.Evaluate(projectile.Velocity, item.EquippableItem, source.Entity); + p.Damage = source.Entity.ItemManager.Evaluate(data.Damage, item.EquippableItem, source.Entity); + p.Penetration = source.Entity.ItemManager.Evaluate(data.Penetration, item.EquippableItem, source.Entity); + p.Spread = source.Entity.ItemManager.Evaluate(data.DamageSpread, item.EquippableItem, source.Entity); + p.DamageType = data.DamageType; + p.Zone = source.Entity.Zone; + p.Trail.Clear(); + } + else Debug.LogError($"Weapon {item.EquippableItem.Name} linked to {name} effect, but is not a Projectile Weapon!"); + } +} diff --git a/Assets/Scripts/ProjectileManager.cs.meta b/Assets/Scripts/Gameplay/Weapons/ProjectileManager.cs.meta similarity index 100% rename from Assets/Scripts/ProjectileManager.cs.meta rename to Assets/Scripts/Gameplay/Weapons/ProjectileManager.cs.meta diff --git a/Assets/Scripts/GuidedProjectileManager.cs b/Assets/Scripts/GuidedProjectileManager.cs deleted file mode 100644 index 2b688fec5..000000000 --- a/Assets/Scripts/GuidedProjectileManager.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -public class GuidedProjectileManager : MonoBehaviour -{ - public Prototype ProjectilePrototype; - - public void Launch(LauncherData data, EquippedItem item, EntityInstance source, EntityInstance target) - { - var p = ProjectilePrototype.Instantiate(); - p.Source = source.Transform; - p.SourceEntity = source.Entity; - p.Target = target.Transform; - p.Frequency = data.DodgeFrequency; - p.Thrust = source.Entity.ItemManager.Evaluate(data.Thrust, item.EquippableItem, source.Entity); - var hp = source.Entity.Hardpoints[item.Position.x, item.Position.y]; - var barrel = source.GetBarrel(hp); - p.transform.position = barrel.position; - p.Velocity = barrel.forward * source.Entity.ItemManager.Evaluate(data.LaunchSpeed, item.EquippableItem, source.Entity); - p.Damage = source.Entity.ItemManager.Evaluate(data.Damage, item.EquippableItem, source.Entity); - p.Penetration = source.Entity.ItemManager.Evaluate(data.Penetration, item.EquippableItem, source.Entity); - p.Spread = source.Entity.ItemManager.Evaluate(data.DamageSpread, item.EquippableItem, source.Entity); - p.DamageType = data.DamageType; - p.GuidanceCurve = data.GuidanceCurve.ToCurve(); - p.LiftCurve = data.LiftCurve.ToCurve(); - p.ThrustCurve = data.ThrustCurve.ToCurve(); - p.Thrust = source.Entity.ItemManager.Evaluate(data.Thrust, item.EquippableItem, source.Entity); - p.TopSpeed = source.Entity.ItemManager.Evaluate(data.Velocity, item.EquippableItem, source.Entity); - } -} diff --git a/Assets/Scripts/NIH/MSAGL/Layout/Layered/LayeredLayoutEngine.cs b/Assets/Scripts/NIH/MSAGL/Layout/Layered/LayeredLayoutEngine.cs index c06532ef1..487ca2d79 100644 --- a/Assets/Scripts/NIH/MSAGL/Layout/Layered/LayeredLayoutEngine.cs +++ b/Assets/Scripts/NIH/MSAGL/Layout/Layered/LayeredLayoutEngine.cs @@ -234,10 +234,10 @@ namespace Microsoft.Msagl.Layout.Layered { MessageId = "System.String.Format(System.String,System.Object)")] override protected void RunInternal() { #if REPORTING - Timer t = null; + DebugHelpers.Timer t = null; if (sugiyamaSettings.Reporting) { Report("removing cycles ... "); - t = new Timer(); + t = new DebugHelpers.Timer(); t.Start(); } #endif @@ -262,10 +262,10 @@ namespace Microsoft.Msagl.Layout.Layered { void RunPostLayering() { #if REPORTING - Timer t = null; + DebugHelpers.Timer t = null; if (sugiyamaSettings.Reporting) { Report("Calculating edge splines... "); - t = new Timer(); + t = new DebugHelpers.Timer(); t.Start(); } #endif @@ -448,10 +448,10 @@ namespace Microsoft.Msagl.Layout.Layered { #region reporting #if REPORTING - Timer t = null; + DebugHelpers.Timer t = null; if (sugiyamaSettings.Reporting) { Report("calculating layers ... "); - t = new Timer(); + t = new DebugHelpers.Timer(); t.Start(); } #endif @@ -1050,9 +1050,9 @@ namespace Microsoft.Msagl.Layout.Layered { #region reporting #if REPORTING - Timer t = null; + DebugHelpers.Timer t = null; if (sugiyamaSettings.Reporting) { - t = new Timer(); + t = new DebugHelpers.Timer(); Report("ylayering ... "); t.Start(); } @@ -1250,9 +1250,9 @@ namespace Microsoft.Msagl.Layout.Layered { var routing = new Routing(sugiyamaSettings, originalGraph, database, engineLayerArrays, properLayeredGraph, IntGraph); #if REPORTING - Timer t = null; + DebugHelpers.Timer t = null; if (sugiyamaSettings.Reporting) { - t = new Timer(); + t = new DebugHelpers.Timer(); t.Start(); } #endif diff --git a/Assets/Scripts/NIH/MSAGL/Routing/Spline/Bundling/TimeMeasurer.cs b/Assets/Scripts/NIH/MSAGL/Routing/Spline/Bundling/TimeMeasurer.cs index ae532773f..a5ad38a08 100644 --- a/Assets/Scripts/NIH/MSAGL/Routing/Spline/Bundling/TimeMeasurer.cs +++ b/Assets/Scripts/NIH/MSAGL/Routing/Spline/Bundling/TimeMeasurer.cs @@ -7,9 +7,9 @@ namespace Microsoft.Msagl.Routing.Spline.Bundling { /// internal class TimeMeasurer { #if DEBUG && TEST_MSAGL - static Timer timer; + static DebugHelpers.Timer timer; static TimeMeasurer() { - timer = new Timer(); + timer = new DebugHelpers.Timer(); timer.Start(); } #endif diff --git a/Assets/Scripts/Sector Display/SectorRenderer.cs b/Assets/Scripts/Sector Display/SectorRenderer.cs index 8a8ffb892..8a12c59f3 100644 --- a/Assets/Scripts/Sector Display/SectorRenderer.cs +++ b/Assets/Scripts/Sector Display/SectorRenderer.cs @@ -62,8 +62,8 @@ public class SectorRenderer : MonoBehaviour private Dictionary _beltObjects = new Dictionary(); private Dictionary _beltMeshes = new Dictionary(); private Dictionary _beltMatrices = new Dictionary(); - private Dictionary _projectileManagers = new Dictionary(); - private Dictionary _guidedProjectileManagers = new Dictionary(); + private Dictionary _instantWeaponManagers = new Dictionary(); + private Dictionary _constantWeaponManagers = new Dictionary(); private Zone _zone; private float _viewDistance; private float _maxDepth; @@ -179,19 +179,18 @@ public class SectorRenderer : MonoBehaviour instance.Transform = Instantiate(UnityHelpers.LoadAsset(hullData.Prefab), ZoneRoot).transform; instance.Prefab = instance.Transform.GetComponent(); var shipInstance = (ShipInstance) instance; - shipInstance.Thrusters = ship.GetBehaviors().ToArray(); - shipInstance.ThrusterParticles = shipInstance.Thrusters - .Select(x => + shipInstance.Particles = ship.GetBehaviors() + .Select(x => { - var particles = Instantiate(UnityHelpers.LoadAsset(((ThrusterData) x.Data).ParticlesPrefab), shipInstance.Transform, false); + var effectData = (ThrusterData) x.Data; + var particles = Instantiate(UnityHelpers.LoadAsset(effectData.ParticlesPrefab), shipInstance.Transform, false); var particlesShape = particles.shape; particlesShape.meshRenderer = shipInstance.Prefab.ThrusterHardpoints .FirstOrDefault(t => t.name == x.Entity.Hardpoints[x.Item.Position.x, x.Item.Position.y].Transform) ?.Emitter; - return particles; + return (x, particles, particles.emission.rateOverTimeMultiplier); }) .ToArray(); - shipInstance.ThrusterBaseEmission = shipInstance.ThrusterParticles.Select(x => x.emission.rateOverTimeMultiplier).ToArray(); } else { @@ -208,35 +207,19 @@ public class SectorRenderer : MonoBehaviour { if (behavior is InstantWeapon instantWeapon) { - if (behavior.Data is ProjectileWeaponData projectileWeaponData) + var data = (InstantWeaponData) instantWeapon.Data; + if (!_instantWeaponManagers.ContainsKey(data)) { - if (!_projectileManagers.ContainsKey(projectileWeaponData)) + var managerPrefab = UnityHelpers.LoadAsset(data.EffectPrefab); + if(managerPrefab) { - var managerPrefab = UnityHelpers.LoadAsset(projectileWeaponData.EffectPrefab); - if(managerPrefab) - { - _projectileManagers.Add(projectileWeaponData, Instantiate(managerPrefab, EffectManagerParent)); - } - else Debug.LogError($"No ProjectileManager prefab found at path {projectileWeaponData.EffectPrefab}"); + _instantWeaponManagers.Add(data, Instantiate(managerPrefab, EffectManagerParent)); } - - instantWeapon.OnFire += () => _projectileManagers[projectileWeaponData].Launch(projectileWeaponData, item, instance); + else Debug.LogError($"No InstantWeaponEffectManager prefab found at path {data.EffectPrefab}"); } - else if (behavior.Data is LauncherData launcherData) - { - if (!_guidedProjectileManagers.ContainsKey(launcherData)) - { - var managerPrefab = UnityHelpers.LoadAsset(launcherData.EffectPrefab); - if(managerPrefab) - { - _guidedProjectileManagers.Add(launcherData, Instantiate(managerPrefab, EffectManagerParent)); - } - else Debug.LogError($"No ProjectileManager prefab found at path {launcherData.EffectPrefab}"); - } - instantWeapon.OnFire += () => - _guidedProjectileManagers[launcherData].Launch(launcherData, item, instance, EntityInstances[entity.Target.Value]); - } + instantWeapon.OnFire += () => + _instantWeaponManagers[data].Fire(data, item, instance, entity.Target.Value != null ? EntityInstances[entity.Target.Value] : null); } } } @@ -605,12 +588,12 @@ public class SectorRenderer : MonoBehaviour } if(entity.Value is ShipInstance shipInstance) { - for (int i = 0; i < shipInstance.Thrusters.Length; i++) + foreach (var (effect, system, baseEmission) in shipInstance.Particles) { - var emissionModule = shipInstance.ThrusterParticles[i].emission; - var item = shipInstance.Thrusters[i].Item.EquippableItem; + var emissionModule = system.emission; + var item = effect.Item.EquippableItem; var data = shipInstance.Entity.ItemManager.GetData(item); - emissionModule.rateOverTimeMultiplier = shipInstance.ThrusterBaseEmission[i] * shipInstance.Thrusters[i].Axis * (item.Durability / data.Durability); + emissionModule.rateOverTimeMultiplier = baseEmission * effect.Axis * (item.Durability / data.Durability); } entity.Value.Transform.rotation = ((Ship) entity.Key).Rotation; @@ -672,9 +655,7 @@ public class EntityInstance public class ShipInstance : EntityInstance { - public ParticleSystem[] ThrusterParticles; - public Thruster[] Thrusters; - public float[] ThrusterBaseEmission; + public (Thruster effect, ParticleSystem system, float baseEmission)[] Particles; } [Serializable] diff --git a/Assets/Scripts/ServerShared/Agents/VelocityMatch.cs b/Assets/Scripts/ServerShared/Agents/VelocityMatch.cs index d69a9e82b..25d01bb8a 100644 --- a/Assets/Scripts/ServerShared/Agents/VelocityMatch.cs +++ b/Assets/Scripts/ServerShared/Agents/VelocityMatch.cs @@ -8,13 +8,13 @@ using System.Collections.Generic; using System.Linq; using Unity.Mathematics; using static Unity.Mathematics.math; +using float2 = Unity.Mathematics.float2; public class VelocityMatch : AgentBehavior { public event Action OnMatch; public float2 TargetVelocity; private Thruster _thrust; - private Turning _turning; private const float TargetThreshold = .1f; private ItemManager _context; @@ -23,7 +23,6 @@ public class VelocityMatch : AgentBehavior { _context = context; _thrust = Entity.GetBehavior(); - _turning = Entity.GetBehavior(); } public void Clear() @@ -33,31 +32,32 @@ public class VelocityMatch : AgentBehavior public override void Update(float delta) { - if (_thrust != null && _turning != null) - { - var deltaV = TargetVelocity - Entity.Velocity; - if(length(deltaV) < TargetThreshold) - OnMatch?.Invoke(); - _turning.Axis = TurningInput(deltaV); - _thrust.Axis = ThrustInput(deltaV); - } + // if (_thrust != null && _turning != null) + // { + // var deltaV = TargetVelocity - Entity.Velocity; + // if(length(deltaV) < TargetThreshold) + // OnMatch?.Invoke(); + // _turning.Axis = TurningInput(deltaV); + // _thrust.Axis = ThrustInput(deltaV); + // } } public float2 MatchDistanceTime { get { - var velocity = length(Entity.Velocity); - var deltaV = TargetVelocity - Entity.Velocity; - - var stoppingTime = length(deltaV) / (_thrust.Thrust / Entity.Mass); - var stoppingDistance = stoppingTime * (velocity / 2); - - var angleDiff = Entity.Direction.AngleDiff(deltaV); - var turnaroundTime = angleDiff / (_turning.Torque / Entity.Mass); - var turnaroundDistance = turnaroundTime * velocity; - - return float2(stoppingDistance + turnaroundDistance, stoppingTime + turnaroundTime); + // var velocity = length(Entity.Velocity); + // var deltaV = TargetVelocity - Entity.Velocity; + // + // var stoppingTime = length(deltaV) / (_thrust.Thrust / Entity.Mass); + // var stoppingDistance = stoppingTime * (velocity / 2); + // + // var angleDiff = Entity.Direction.AngleDiff(deltaV); + // var turnaroundTime = angleDiff / (_turning.Torque / Entity.Mass); + // var turnaroundDistance = turnaroundTime * velocity; + // + // return float2(stoppingDistance + turnaroundDistance, stoppingTime + turnaroundTime); + return float2.zero; } } } diff --git a/Assets/Scripts/ServerShared/Attributes.cs b/Assets/Scripts/ServerShared/Attributes.cs index be478a8db..fad27ee30 100644 --- a/Assets/Scripts/ServerShared/Attributes.cs +++ b/Assets/Scripts/ServerShared/Attributes.cs @@ -127,6 +127,23 @@ public class InspectableTypeAttribute : InspectableFieldAttribute [AttributeUsage(AttributeTargets.Field)] public class SimplePerformanceStatAttribute : Attribute { } +/// +/// Specify a tooltip for a field in the Inspector window. +/// +[AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)] +public class TooltipAttribute : Attribute +{ + /// + /// The tooltip text. + /// + public readonly string tooltip; + + /// + /// Specify a tooltip for a field. + /// + /// The tooltip text. + public TooltipAttribute(string tooltip) => this.tooltip = tooltip; +} // public class CategoryAttribute : Attribute // { // public readonly Type Type; diff --git a/Assets/Scripts/ServerShared/Behaviors/AutoWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/AutoWeapon.cs new file mode 100644 index 000000000..a0519af40 --- /dev/null +++ b/Assets/Scripts/ServerShared/Behaviors/AutoWeapon.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using MessagePack; +using Newtonsoft.Json; +using Unity.Mathematics; +using static Unity.Mathematics.math; + +[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] +public class AutoWeaponData : InstantWeaponData +{ + public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + { + return new AutoWeapon(context, this, entity, item); + } +} + +public class AutoWeapon : InstantWeapon +{ + + public AutoWeapon(ItemManager context, InstantWeaponData data, Entity entity, EquippedItem item) : base(context, data, entity, item) + { + } + + public override bool Execute(float delta) + { + if(_firing && _burstRemaining == 0 && _cooldown < 0) + Trigger(); + return base.Execute(delta); + } +} + diff --git a/Assets/Scripts/ServerShared/Behaviors/AutoWeapon.cs.meta b/Assets/Scripts/ServerShared/Behaviors/AutoWeapon.cs.meta new file mode 100644 index 000000000..3591ad629 --- /dev/null +++ b/Assets/Scripts/ServerShared/Behaviors/AutoWeapon.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 9f709e48e6db48bb8214d07fc593f9bd +timeCreated: 1611439063 \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs b/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs index bdd929875..d77363003 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs @@ -19,11 +19,11 @@ public interface IBehavior BehaviorData Data { get; } } -// public interface IActivatedBehavior : IBehavior -// { -// bool Activate(); -// void Deactivate(); -// } +public interface IActivatedBehavior : IBehavior +{ + void Activate(); + void Deactivate(); +} public interface IAnalogBehavior : IBehavior { @@ -40,6 +40,11 @@ public interface IInitializableBehavior void Initialize(); } +public interface IInteractiveBehavior +{ + bool Exposed { get; } +} + public interface IAlwaysUpdatedBehavior { void Update(float delta); @@ -92,7 +97,7 @@ public abstract class PersistentBehaviorData Union(6, typeof(ReflectorData)), Union(7, typeof(ShieldData)), Union(8, typeof(ThrusterData)), - Union(9, typeof(TurningData)), + // Union(9, typeof(TurningData)), Union(10, typeof(VelocityConversionData)), Union(11, typeof(VelocityLimitData)), Union(12, typeof(FactoryData)), @@ -100,7 +105,7 @@ public abstract class PersistentBehaviorData Union(14, typeof(TowingControllerData)), Union(15, typeof(CooldownData)), Union(16, typeof(HeatData)), - Union(17, typeof(HitscanData)), + // Union(17, typeof(HitscanData)), Union(18, typeof(ItemUsageData)), Union(19, typeof(RadianceData)), Union(20, typeof(SwitchData)), @@ -118,7 +123,10 @@ public abstract class PersistentBehaviorData Union(32, typeof(CockpitData)), Union(33, typeof(HeatsinkData)), Union(34, typeof(TurretControllerData)), - Union(35, typeof(TargetLockData)), + Union(35, typeof(InstantWeaponData)), + Union(36, typeof(ConstantWeaponData)), + Union(37, typeof(ChargedWeaponData)), + Union(38, typeof(AutoWeaponData)), JsonConverter(typeof(JsonKnownTypesConverter)), JsonObject(MemberSerialization.OptIn)] public abstract class BehaviorData { diff --git a/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs new file mode 100644 index 000000000..8ecd3e658 --- /dev/null +++ b/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs @@ -0,0 +1,95 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using MessagePack; +using Newtonsoft.Json; +using Unity.Mathematics; +using static Unity.Mathematics.math; + +[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] +public class ChargedWeaponData : InstantWeaponData +{ + [InspectableField, JsonProperty("chargeTime"), Key(13), RuntimeInspectable] + public PerformanceStat ChargeTime = new PerformanceStat(); + + [InspectableField, JsonProperty("chargeEnergy"), Key(14), RuntimeInspectable] + public PerformanceStat ChargeEnergy = new PerformanceStat(); + + [InspectableField, JsonProperty("canFireEarly"), Key(15)] + public bool CanFireEarly; + + [InspectableField, JsonProperty("failureCharge"), Key(16)] + public float FailureCharge; + + [InspectableField, JsonProperty("failureDamage"), Key(17)] + public float FailureDamage; + + public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + { + return new ChargedWeapon(context, this, entity, item); + } +} + +public class ChargedWeapon : InstantWeapon +{ + private ChargedWeaponData _data; + private bool _charging; + private bool _charged; + private float _charge; + private float _progress; + + public event Action OnCharged; + public event Action OnFailed; + + public override float Progress => saturate(_charging ? _charge : _cooldown); + + public float Charge + { + get => _charge; + } + + public ChargedWeapon(ItemManager context, ChargedWeaponData data, Entity entity, EquippedItem item) : base(context, data, entity, item) + { + _data = data; + } + + public override bool Execute(float delta) + { + if (_charging) + { + _charge += delta / Context.Evaluate(_data.ChargeTime, Item.EquippableItem, Entity); + if (!_charged && _charge > 1) + { + _charged = true; + OnCharged?.Invoke(); + } + if (_charge > _data.FailureCharge) + { + _charging = false; + _cooldown = 1; + OnFailed?.Invoke(); + Item.EquippableItem.Durability -= _data.FailureDamage; + } + } + return base.Execute(delta); + } + + public override void Activate() + { + if(_cooldown < 0) + { + _charging = true; + _charged = false; + } + } + + public override void Deactivate() + { + if (_charging && (_data.CanFireEarly || _charge > 1)) + { + Trigger(); + _charge = 0; + } + } +} + diff --git a/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs.meta b/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs.meta new file mode 100644 index 000000000..856d5753d --- /dev/null +++ b/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9dc2759ab65d73c4a8b831f4f23ef48a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs index 0ce45c03a..9f58095cf 100644 --- a/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs @@ -5,67 +5,117 @@ using System; using MessagePack; using Newtonsoft.Json; +using Unity.Mathematics; +using static Unity.Mathematics.math; [InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn)] public class ConstantWeaponData : WeaponData { + [InspectablePrefab, JsonProperty("ammoInterval"), Key(13)] + public float AmmoInterval = 1; + public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) { return new ConstantWeapon(context, this, entity, item); } } -public class ConstantWeapon : IBehavior, IAlwaysUpdatedBehavior +public class ConstantWeapon : Weapon, IProgressBehavior { private ConstantWeaponData _data; + private int _ammo = 1; + private float _ammoInterval; + private float _reload; + private bool _reloading; - private Entity Entity { get; } - private EquippedItem Item { get; } - private ItemManager Context { get; } + public override int Ammo + { + get => _ammo; + } - public BehaviorData Data => _data; + public float Progress + { + get { return saturate(_reload); } + } + public event Action OnReloadBegin; + public event Action OnReloadComplete; public event Action OnStartFiring; public event Action OnStopFiring; - private bool _firing; - private bool _stoppedFiring; - - public ConstantWeapon(ItemManager context, ConstantWeaponData c, Entity entity, EquippedItem item) + public ConstantWeapon(ItemManager context, ConstantWeaponData data, Entity entity, EquippedItem item) : base(context, data, entity, item) { - Context = context; - _data = c; - Entity = entity; - Item = item; + _data = data; } - public bool Execute(float delta) + public override bool Execute(float delta) { - if (!_firing) + if (_firing) + { + if (_data.AmmoType != Guid.Empty) + { + if (_reloading) + { + _reload -= delta / _data.ReloadTime; + if (_reload < 0) + { + _reloading = false; + OnReloadComplete?.Invoke(); + } + return false; + } + + _ammoInterval -= delta / _data.AmmoInterval; + if (_ammoInterval < 0) + { + _ammoInterval = 1; + if (_data.MagazineSize > 1 && _ammo > 0) _ammo--; + else + { + var cargo = Entity.FindItemInCargo(_data.AmmoType); + if (cargo != null) + { + var item = cargo.ItemsOfType[_data.AmmoType][0]; + if (item is SimpleCommodity simpleCommodity) + cargo.Remove(simpleCommodity, 1); + + if(_data.MagazineSize > 1) + { + _reloading = true; + _reload = 1; + OnReloadBegin?.Invoke(); + + _firing = false; + OnStopFiring?.Invoke(); + } + } + return false; + } + } + } + + Item.AddHeat(Context.Evaluate(_data.Heat, Item.EquippableItem, Entity) * delta); + Entity.VisibilitySources[this] = Context.Evaluate(_data.Visibility, Item.EquippableItem, Entity); + Entity.Energy -= Context.Evaluate(_data.Energy, Item.EquippableItem, Entity) * delta; + } + return true; + } + + public override void Activate() + { + if(!_reloading) { _firing = true; OnStartFiring?.Invoke(); } - - _stoppedFiring = false; - return true; } - public void Update(float delta) + public override void Deactivate() { - // Update executes after AlwaysUpdate, - // so if the stop flag didn't get disabled previous frame, - // we know the weapon has stopped firing if (_firing) { - if (_stoppedFiring) - { - _firing = false; - _stoppedFiring = false; - OnStopFiring?.Invoke(); - } - else - _stoppedFiring = true; + _firing = false; + OnStopFiring?.Invoke(); } } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/Hitscan.cs b/Assets/Scripts/ServerShared/Behaviors/Hitscan.cs deleted file mode 100644 index db44ee8f9..000000000 --- a/Assets/Scripts/ServerShared/Behaviors/Hitscan.cs +++ /dev/null @@ -1,48 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - -using MessagePack; -using Newtonsoft.Json; - -[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn)] -public class HitscanData : WeaponData -{ - [InspectableField, JsonProperty("perSecond"), Key(6)] - public bool PerSecond; - - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) - { - return new Hitscan(context, this, entity, item); - } -} - -public class Hitscan : IBehavior -{ - private bool _firing; - private float _cooldown; // normalized - private HitscanData _data; - private Entity Entity { get; } - private EquippedItem Item { get; } - private ItemManager Context { get; } - private float _firingVisibility; - - public BehaviorData Data => _data; - public float Range { get; private set; } - - public Hitscan(ItemManager context, HitscanData c, Entity entity, EquippedItem item) - { - Context = context; - _data = c; - Entity = entity; - Item = item; - } - - public bool Execute(float delta) - { - // TODO: Implement hitscan weapons! - Range = Context.Evaluate(_data.Range, Item.EquippableItem, Entity); - return true; - } - -} \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs new file mode 100644 index 000000000..84558d5e2 --- /dev/null +++ b/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs @@ -0,0 +1,125 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using MessagePack; +using Newtonsoft.Json; +using Unity.Mathematics; +using static Unity.Mathematics.math; + +[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] +public class InstantWeaponData : WeaponData +{ + [InspectableField, JsonProperty("burstCount"), Key(13)] + public int BurstCount; + + [InspectableField, JsonProperty("burstTime"), Key(14)] + public PerformanceStat BurstTime = new PerformanceStat(); + + [InspectableField, JsonProperty("cooldown"), Key(15), RuntimeInspectable] + public PerformanceStat Cooldown = new PerformanceStat(); + + public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + { + return new InstantWeapon(context, this, entity, item); + } +} + +public class InstantWeapon : Weapon, IProgressBehavior +{ + private InstantWeaponData _data; + + protected int _burstRemaining; + private float _burstTimer; + private float _burstInterval; + protected float _cooldown; // Normalized + private int _ammo = 1; + private bool _coolingDown; + + public override int Ammo + { + get => _ammo; + } + public virtual float Progress => saturate(_cooldown); + + public event Action OnReloadBegin; + public event Action OnReloadComplete; + public event Action OnCooldownComplete; + public event Action OnFire; + + public InstantWeapon(ItemManager context, InstantWeaponData data, Entity entity, EquippedItem item) : base(context,data,entity,item) + { + _data = data; + } + + protected void Trigger() + { + _burstRemaining = _data.BurstCount; + _burstInterval = Context.Evaluate(_data.BurstTime, Item.EquippableItem, Entity) / _burstRemaining; + _burstTimer = 0; + _cooldown = 1; + _coolingDown = true; + } + + public override bool Execute(float delta) + { + if (_coolingDown) + { + _cooldown -= delta / (_ammo == 0 ? _data.ReloadTime : Context.Evaluate(_data.Cooldown, Item.EquippableItem, Entity)); + if (_cooldown < 0) + { + _coolingDown = false; + if (_ammo == 0) + { + _ammo = _data.MagazineSize; + OnReloadComplete?.Invoke(); + } + else + OnCooldownComplete?.Invoke(); + } + } + + _burstTimer += delta; + while (_burstRemaining > 0 && _burstTimer > 0) + { + if (_data.AmmoType != Guid.Empty) + { + if (_data.MagazineSize > 1 && _ammo > 0) _ammo--; + else + { + var cargo = Entity.FindItemInCargo(_data.AmmoType); + if (cargo != null) + { + var item = cargo.ItemsOfType[_data.AmmoType][0]; + if (item is SimpleCommodity simpleCommodity) + cargo.Remove(simpleCommodity, 1); + + if(_data.MagazineSize > 1) + { + OnReloadBegin?.Invoke(); + _cooldown = 1; + _coolingDown = true; + _firing = false; + } + } + _burstRemaining = 0; + return false; + } + } + + _burstRemaining--; + _burstTimer -= _burstInterval; + OnFire?.Invoke(); + Item.AddHeat(Context.Evaluate(_data.Heat, Item.EquippableItem, Entity)); + Entity.VisibilitySources[this] = Context.Evaluate(_data.Visibility, Item.EquippableItem, Entity); + Entity.Energy -= Context.Evaluate(_data.Energy, Item.EquippableItem, Entity); + } + return true; + } + + public override void Activate() + { + if(!_coolingDown) + Trigger(); + base.Activate(); + } +} \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs.meta b/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs.meta new file mode 100644 index 000000000..74d980d44 --- /dev/null +++ b/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 47fd83e8ade851c4e9177cd1de58949d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ServerShared/Behaviors/Launcher.cs b/Assets/Scripts/ServerShared/Behaviors/Launcher.cs index 4ade07535..90f0871cd 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Launcher.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Launcher.cs @@ -7,31 +7,31 @@ using Newtonsoft.Json; using Unity.Mathematics; [InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn)] -public class LauncherData : InstantWeaponData +public class LauncherData : LockWeaponData { - [InspectableAnimationCurve, JsonProperty("guidance"), Key(9)] + [InspectableAnimationCurve, JsonProperty("guidance"), Key(21)] public float4[] GuidanceCurve; - [InspectableAnimationCurve, JsonProperty("thrustCurve"), Key(10)] + [InspectableAnimationCurve, JsonProperty("thrustCurve"), Key(22)] public float4[] ThrustCurve; - [InspectableAnimationCurve, JsonProperty("liftCurve"), Key(11)] + [InspectableAnimationCurve, JsonProperty("liftCurve"), Key(23)] public float4[] LiftCurve; - [InspectableField, JsonProperty("thrust"), Key(12)] + [InspectableField, JsonProperty("thrust"), Key(24)] public PerformanceStat Thrust = new PerformanceStat(); - [InspectableField, JsonProperty("frequency"), Key(13)] + [InspectableField, JsonProperty("frequency"), Key(25)] public float DodgeFrequency; - [InspectableField, JsonProperty("launchSpeed"), Key(14)] + [InspectableField, JsonProperty("launchSpeed"), Key(26)] public PerformanceStat LaunchSpeed = new PerformanceStat(); - [InspectableField, JsonProperty("missileSpeed"), Key(15), RuntimeInspectable] + [InspectableField, JsonProperty("missileSpeed"), Key(27), RuntimeInspectable] public PerformanceStat Velocity = new PerformanceStat(); public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) { - return new InstantWeapon(context, this, entity, item); + return new LockWeapon(context, this, entity, item); } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs new file mode 100644 index 000000000..78b026d45 --- /dev/null +++ b/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs @@ -0,0 +1,97 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using MessagePack; +using Newtonsoft.Json; +using Unity.Mathematics; +using static Unity.Mathematics.math; + +[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] +public class LockWeaponData : InstantWeaponData +{ + [InspectableField, JsonProperty("speed"), Key(16), RuntimeInspectable] + public PerformanceStat LockSpeed = new PerformanceStat(); + + [InspectableField, JsonProperty("sensorImpact"), Key(17)] + public PerformanceStat SensorImpact = new PerformanceStat(); + + [InspectableField, JsonProperty("threshold"), Key(18), RuntimeInspectable] + public PerformanceStat LockAngle = new PerformanceStat(); + + [InspectableField, JsonProperty("directionImpact"), Key(19)] + public PerformanceStat DirectionImpact = new PerformanceStat(); + + [InspectableField, JsonProperty("decay"), Key(20)] + public PerformanceStat Decay = new PerformanceStat(); + + public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + { + return new LockWeapon(context, this, entity, item); + } +} + +public class LockWeapon : InstantWeapon +{ + private LockWeaponData _data; + private float _lock; + private bool _locking; + private Entity _target; + + public event Action OnLocked; + public event Action OnBeginLocking; + public event Action OnLockLost; + + public float LockSpeed { get; private set; } + public float SensorImpact { get; private set; } + public float LockAngle { get; private set; } + public float DirectionImpact { get; private set; } + public float Decay { get; private set; } + + public override float Progress => saturate(_cooldown > 0 ? _cooldown : _lock); + + public float Lock + { + get => saturate(_lock); + } + + public LockWeapon(ItemManager context, LockWeaponData data, Entity entity, EquippedItem item) : base(context, data, entity, item) + { + _data = data; + } + + public override bool Execute(float delta) + { + if (_target != Entity.Target.Value) + { + _lock = 0; + _target = Entity.Target.Value; + } + + if (Entity.Target.Value != null) + { + LockSpeed = Context.Evaluate(_data.LockSpeed, Item.EquippableItem, Entity); + SensorImpact = Context.Evaluate(_data.SensorImpact, Item.EquippableItem, Entity); + LockAngle = Context.Evaluate(_data.LockAngle, Item.EquippableItem, Entity); + DirectionImpact = Context.Evaluate(_data.DirectionImpact, Item.EquippableItem, Entity); + Decay = Context.Evaluate(_data.Decay, Item.EquippableItem, Entity); + + var degrees = acos(dot(normalize(Entity.Target.Value.Position - Entity.Position), normalize(Entity.LookDirection))) * 57.2958f; + if (degrees < LockAngle) + { + var lerp = 1 - unlerp(0, 90, degrees); + _lock = saturate(_lock + pow(lerp, DirectionImpact) * delta * LockSpeed); + } + } + + return base.Execute(delta); + } + + public override void Activate() + { + if(_lock > .99f) + { + base.Activate(); + } + } +} + diff --git a/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs.meta b/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs.meta new file mode 100644 index 000000000..a9c04dd0d --- /dev/null +++ b/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 33fa49d85b53444c92c8c0979f2b95f9 +timeCreated: 1611439099 \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/MiningController.cs b/Assets/Scripts/ServerShared/Behaviors/MiningController.cs index 1ab03d7cb..8f6840dd2 100644 --- a/Assets/Scripts/ServerShared/Behaviors/MiningController.cs +++ b/Assets/Scripts/ServerShared/Behaviors/MiningController.cs @@ -38,8 +38,8 @@ public class MiningController : ControllerBase, IBehavior, IPersistentBe public new void Initialize() { - _miningTool = Entity.GetBehavior(); - _toolSwitch = Entity.GetSwitch(); + // _miningTool = Entity.GetBehavior(); + // _toolSwitch = Entity.GetSwitch(); base.Initialize(); } diff --git a/Assets/Scripts/ServerShared/Behaviors/ParticleEffect.cs b/Assets/Scripts/ServerShared/Behaviors/ParticleEffect.cs new file mode 100644 index 000000000..5e77eec4e --- /dev/null +++ b/Assets/Scripts/ServerShared/Behaviors/ParticleEffect.cs @@ -0,0 +1,56 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + +using System.Collections.Generic; +using MessagePack; +using Newtonsoft.Json; +using Unity.Mathematics; +using static Unity.Mathematics.math; + +// [MessagePackObject, JsonObject(MemberSerialization.OptIn)] +// public class ParticleEffectData : BehaviorData +// { +// [InspectablePrefab, JsonProperty("Particles"), Key(1)] +// public string ParticlesPrefab; +// +// [InspectableField, JsonProperty("thrust"), Key(2)] +// public bool AreaEmitter; +// +// public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) +// { +// return new ParticleEffect(context, this, entity, item); +// } +// } +// +// public class ParticleEffect : IBehavior, IAlwaysUpdatedBehavior +// { +// private ParticleEffectData _data; +// +// public Entity Entity { get; } +// public EquippedItem Item { get; } +// public ItemManager Context { get; } +// +// public BehaviorData Data => _data; +// +// public float Emission { get; private set; } +// +// public ParticleEffect(ItemManager context, ParticleEffectData data, Entity entity, EquippedItem item) +// { +// Context = context; +// _data = data; +// Entity = entity; +// Item = item; +// } +// +// public float Execute(float delta, float input) +// { +// Emission = saturate(input); +// return input; +// } +// +// public void Update(float delta) +// { +// Emission = 0; +// } +// } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/ParticleEffect.cs.meta b/Assets/Scripts/ServerShared/Behaviors/ParticleEffect.cs.meta new file mode 100644 index 000000000..418b50d25 --- /dev/null +++ b/Assets/Scripts/ServerShared/Behaviors/ParticleEffect.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3c26dc8102d619a429a178bc6670242d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ServerShared/Behaviors/ProjectileWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/ProjectileWeapon.cs index 992034553..c9750c40e 100644 --- a/Assets/Scripts/ServerShared/Behaviors/ProjectileWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/ProjectileWeapon.cs @@ -9,17 +9,20 @@ using Newtonsoft.Json; [InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn)] public class ProjectileWeaponData : InstantWeaponData { - [InspectableField, JsonProperty("spread"), Key(9), RuntimeInspectable] + [InspectableField, JsonProperty("spread"), Key(16), RuntimeInspectable] public PerformanceStat Spread = new PerformanceStat(); - [InspectableField, JsonProperty("bulletInherit"), Key(10)] + [InspectableField, JsonProperty("bulletInherit"), Key(17)] public float Inherit; - [InspectableField, JsonProperty("bulletVelocity"), Key(11), RuntimeInspectable] + [InspectableField, JsonProperty("bulletVelocity"), Key(18), RuntimeInspectable] public PerformanceStat Velocity = new PerformanceStat(); + + [InspectableField, JsonProperty("auto"), Key(19)] + public bool Auto; public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) { - return new InstantWeapon(context, this, entity, item); + return Auto ? new AutoWeapon(context, this, entity, item) : new InstantWeapon(context, this, entity, item); } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/SurveyController.cs b/Assets/Scripts/ServerShared/Behaviors/SurveyController.cs index 767c45a2d..5ab579dec 100644 --- a/Assets/Scripts/ServerShared/Behaviors/SurveyController.cs +++ b/Assets/Scripts/ServerShared/Behaviors/SurveyController.cs @@ -41,7 +41,7 @@ public class SurveyController : ControllerBase, IBehavior, IPersistentBe public new void Initialize() { _scanningTool = Entity.GetBehavior(); - _toolSwitch = Entity.GetSwitch(); + // _toolSwitch = Entity.GetSwitch(); base.Initialize(); } diff --git a/Assets/Scripts/ServerShared/Behaviors/TargetLock.cs b/Assets/Scripts/ServerShared/Behaviors/TargetLock.cs deleted file mode 100644 index 6291769fa..000000000 --- a/Assets/Scripts/ServerShared/Behaviors/TargetLock.cs +++ /dev/null @@ -1,94 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - -using System.Collections.Generic; -using MessagePack; -using Newtonsoft.Json; -using Unity.Mathematics; -using static Unity.Mathematics.math; - -[MessagePackObject, JsonObject(MemberSerialization.OptIn), Order(-11), RuntimeInspectable] -public class TargetLockData : BehaviorData -{ - [InspectableField, JsonProperty("speed"), Key(1), RuntimeInspectable] - public PerformanceStat LockSpeed = new PerformanceStat(); - - [InspectableField, JsonProperty("sensorImpact"), Key(2)] - public PerformanceStat SensorImpact = new PerformanceStat(); - - [InspectableField, JsonProperty("threshold"), Key(3), RuntimeInspectable] - public PerformanceStat LockAngle = new PerformanceStat(); - - [InspectableField, JsonProperty("directionImpact"), Key(4)] - public PerformanceStat DirectionImpact = new PerformanceStat(); - - [InspectableField, JsonProperty("decay"), Key(5)] - public PerformanceStat Decay = new PerformanceStat(); - - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) - { - return new TargetLock(context, this, entity, item); - } -} - -public class TargetLock : IBehavior, IAlwaysUpdatedBehavior -{ - private TargetLockData _data; - - public Entity Entity { get; } - public EquippedItem Item { get; } - public ItemManager Context { get; } - - public BehaviorData Data => _data; - - public float Lock { get; private set; } - - public float Speed { get; private set; } - public float SensorImpact { get; private set; } - public float Threshold { get; private set; } - public float DirectionImpact { get; private set; } - public float Decay { get; private set; } - - private Entity _target; - - public TargetLock(ItemManager context, TargetLockData data, Entity entity, EquippedItem item) - { - Context = context; - _data = data; - Entity = entity; - Item = item; - } - - public bool Execute(float delta) - { - // TODO: Hook into sensory systems to influence lock speed - return Lock > .99f; - } - - public void Update(float delta) - { - if (_target != Entity.Target.Value) - { - Lock = 0; - _target = Entity.Target.Value; - } - if (Entity.Target.Value != null) - { - Speed = Context.Evaluate(_data.LockSpeed, Item.EquippableItem, Entity); - SensorImpact = Context.Evaluate(_data.SensorImpact, Item.EquippableItem, Entity); - Threshold = Context.Evaluate(_data.LockAngle, Item.EquippableItem, Entity); - DirectionImpact = Context.Evaluate(_data.DirectionImpact, Item.EquippableItem, Entity); - Decay = Context.Evaluate(_data.Decay, Item.EquippableItem, Entity); - - var degrees = acos(dot(normalize(Entity.Target.Value.Position - Entity.Position), normalize(Entity.LookDirection))) * 57.2958f; - if (degrees < Threshold) - { - var lerp = 1 - unlerp(0, 90, degrees); - Lock = saturate(Lock + pow(lerp, DirectionImpact) * delta * Speed); - return; - } - } - Lock = saturate(Lock - Decay * delta); - } -} \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/Thruster.cs b/Assets/Scripts/ServerShared/Behaviors/Thruster.cs index 6bc73ec0c..2f3e0e93d 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Thruster.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Thruster.cs @@ -69,7 +69,9 @@ public class Thruster : IAnalogBehavior Entity.Velocity -= Entity.Direction.Rotate(Item.EquippableItem.Rotation) * _input * Thrust / Entity.Mass * delta; Entity.Direction = mul(Entity.Direction, Unity.Mathematics.float2x2.Rotate(_input * Torque * Thrust * Context.GameplaySettings.TorqueMultiplier / Entity.Mass * delta)); Item.AddHeat(_input * Context.Evaluate(_data.Heat, Item.EquippableItem, Entity) * delta); - Entity.VisibilitySources[this] = _input * Context.Evaluate(_data.Visibility, Item.EquippableItem, Entity); + var vis = _input * Context.Evaluate(_data.Visibility, Item.EquippableItem, Entity); + if(!Entity.VisibilitySources.ContainsKey(this) || vis > Entity.VisibilitySources[this]) + Entity.VisibilitySources[this] = vis; return true; } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/Trigger.cs b/Assets/Scripts/ServerShared/Behaviors/Trigger.cs index 61e2f227a..f54c34358 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Trigger.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Trigger.cs @@ -16,7 +16,7 @@ public class TriggerData : BehaviorData } } -public class Trigger : IBehavior +public class Trigger : IBehavior, IActivatedBehavior { private TriggerData _data; @@ -28,11 +28,6 @@ public class Trigger : IBehavior public bool _pulled; - public void Pull() - { - _pulled = true; - } - public Trigger(ItemManager context, TriggerData data, Entity entity, EquippedItem item) { _data = data; @@ -55,4 +50,13 @@ public class Trigger : IBehavior return false; } + + public void Activate() + { + _pulled = true; + } + + public void Deactivate() + { + } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/Turning.cs b/Assets/Scripts/ServerShared/Behaviors/Turning.cs deleted file mode 100644 index 0a0e03104..000000000 --- a/Assets/Scripts/ServerShared/Behaviors/Turning.cs +++ /dev/null @@ -1,72 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - -using MessagePack; -using Newtonsoft.Json; -using Unity.Mathematics; -using static Unity.Mathematics.math; - -[MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] -public class TurningData : BehaviorData -{ - [InspectableField, JsonProperty("torque"), Key(1), RuntimeInspectable] - public PerformanceStat Torque = new PerformanceStat(); - - [InspectableField, JsonProperty("visibility"), Key(2)] - public PerformanceStat Visibility = new PerformanceStat(); - - [InspectableField, JsonProperty("heat"), Key(3)] - public PerformanceStat Heat = new PerformanceStat(); - - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) - { - return new Turning(context, this, entity, item); - } -} - -public class Turning : IAnalogBehavior -{ - public Entity Entity { get; } - public EquippedItem Item { get; } - public ItemManager Context { get; } - - public float Torque { get; private set; } - - public float Axis - { - get => _input; - set => _input = clamp(value, -1, 1); - } - - public BehaviorData Data => _data; - - private TurningData _data; - - private float _input; - - public Turning(ItemManager context, TurningData data, Entity entity, EquippedItem item) - { - Context = context; - _data = data; - Entity = entity; - Item = item; - } - - public void Initialize() - { - } - - public bool Execute(float delta) - { - Torque = Context.Evaluate(_data.Torque, Item.EquippableItem, Entity); - Entity.Direction = mul(Entity.Direction, Unity.Mathematics.float2x2.Rotate(_input * Torque / Entity.Mass * delta)); - Item.AddHeat(abs(_input) * Context.Evaluate(_data.Heat, Item.EquippableItem, Entity) * delta); - Entity.VisibilitySources[this] = abs(_input) * Context.Evaluate(_data.Visibility, Item.EquippableItem, Entity); - return true; - } - - public void Remove() - { - } -} \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/Turning.cs.meta b/Assets/Scripts/ServerShared/Behaviors/Turning.cs.meta deleted file mode 100644 index 48dc539aa..000000000 --- a/Assets/Scripts/ServerShared/Behaviors/Turning.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 21343037bc4842669c20b0606b03a622 -timeCreated: 1586270198 \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/TurretController.cs b/Assets/Scripts/ServerShared/Behaviors/TurretController.cs index aafa93bf1..35b3d9b85 100644 --- a/Assets/Scripts/ServerShared/Behaviors/TurretController.cs +++ b/Assets/Scripts/ServerShared/Behaviors/TurretController.cs @@ -22,7 +22,7 @@ public class TurretControllerData : BehaviorData public class TurretController : IBehavior { private TurretControllerData _data; - private Dictionary _triggers = new Dictionary(); + private List _weapons = new List(); public Entity EquippedEntity { get; } public EquippedItem Item { get; } @@ -39,31 +39,23 @@ public class TurretController : IBehavior var weapons = equippedEntity.Equipment.Where(e => e.Behaviors.Any(b => b.Data is WeaponData)); foreach (var weapon in weapons) { - CheckWeapon(item); + CheckWeapon(weapon); } equippedEntity.Equipment.ObserveAdd().Subscribe(add => CheckWeapon(add.Value)); equippedEntity.Equipment.ObserveRemove().Subscribe(remove => { - foreach (var bg in remove.Value.BehaviorGroups) - if (_triggers.ContainsKey(bg.Trigger)) - _triggers.Remove(bg.Trigger); + foreach (var b in remove.Value.Behaviors) + if (b is Weapon weapon) + _weapons.Remove(weapon); }); } private void CheckWeapon(EquippedItem item) { - foreach (var bg in item.BehaviorGroups) - { - if (bg.Trigger != null) - { - foreach (var b in bg.Behaviors) - { - if(b.Data is WeaponData weaponData) - _triggers.Add(bg.Trigger, weaponData); - } - } - } + foreach (var b in item.Behaviors) + if (b is Weapon weapon) + _weapons.Add(weapon); } public bool Execute(float delta) @@ -74,14 +66,18 @@ public class TurretController : IBehavior EquippedEntity.LookDirection = normalize(diff); var dist = length(diff); - foreach (var x in _triggers) + foreach (var x in _weapons) { - if (Context.Evaluate(x.Value.Range, x.Key.Item.EquippableItem, EquippedEntity) > dist && - dot(EquippedEntity.HardpointTransforms[EquippedEntity.Hardpoints[x.Key.Item.Position.x, x.Key.Item.Position.y]].direction, - EquippedEntity.LookDirection) > .9f) + var data = x.Data as WeaponData; + var fire = dot( + EquippedEntity.HardpointTransforms[EquippedEntity.Hardpoints[x.Item.Position.x, x.Item.Position.y]].direction, + EquippedEntity.LookDirection) > .99f; + if (Context.Evaluate(data.Range, x.Item.EquippableItem, EquippedEntity) > dist && fire) { - x.Key.Pull(); + x.Activate(); } + else if (x.Firing) + x.Deactivate(); } } else diff --git a/Assets/Scripts/ServerShared/Behaviors/Visibility.cs b/Assets/Scripts/ServerShared/Behaviors/Visibility.cs index f96222f1f..96bd55f13 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Visibility.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Visibility.cs @@ -54,8 +54,6 @@ public class Visibility : IBehavior, IAlwaysUpdatedBehavior if(Entity.VisibilitySources.ContainsKey(this)) { Entity.VisibilitySources[this] *= Context.Evaluate(_data.VisibilityDecay, Item.EquippableItem, Entity); - - if (Entity.VisibilitySources[this] < 0.01f) Entity.VisibilitySources.Remove(this); } } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/Weapon.cs b/Assets/Scripts/ServerShared/Behaviors/Weapon.cs index cc9e53406..d0d9de6ca 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Weapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Weapon.cs @@ -3,6 +3,8 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ using System; +using System.Collections.Generic; +using System.Linq; using MessagePack; using Newtonsoft.Json; @@ -28,66 +30,63 @@ public abstract class WeaponData : BehaviorData [InspectablePrefab, JsonProperty("effect"), Key(6)] public string EffectPrefab; + + [InspectablePrefab, JsonProperty("energy"), Key(7), RuntimeInspectable] + public PerformanceStat Energy = new PerformanceStat(); + + [InspectablePrefab, JsonProperty("heat"), Key(8), RuntimeInspectable] + public PerformanceStat Heat = new PerformanceStat(); + + [InspectablePrefab, JsonProperty("visibility"), Key(9), RuntimeInspectable] + public PerformanceStat Visibility = new PerformanceStat(); + + [InspectableDatabaseLink(typeof(SimpleCommodityData)), JsonProperty("ammo"), Key(10), RuntimeInspectable] + public Guid AmmoType; + + [InspectablePrefab, JsonProperty("magSize"), Key(11)] + public int MagazineSize; + + [InspectablePrefab, JsonProperty("reloadTime"), Key(12)] + public float ReloadTime = 1; } -[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] -public abstract class InstantWeaponData : WeaponData +public abstract class Weapon : IActivatedBehavior { - [InspectableField, JsonProperty("burstCount"), Key(7), RuntimeInspectable] - public int BurstCount; - - [InspectableField, JsonProperty("burstTime"), Key(8)] - public PerformanceStat BurstTime = new PerformanceStat(); -} - -public class InstantWeapon : IBehavior, IAlwaysUpdatedBehavior -{ - private InstantWeaponData _data; - - public int _burstCount; - public float _burstTimer; - - private Entity Entity { get; } - private EquippedItem Item { get; } - private ItemManager Context { get; } + private WeaponData _data; + public Entity Entity { get; } + public EquippedItem Item { get; } + public ItemManager Context { get; } + + public abstract int Ammo { get; } + public WeaponData WeaponData => _data; public BehaviorData Data => _data; - public event Action OnFire; + protected bool _firing; - private float _burstTime; + public bool Firing + { + get => _firing; + } - public InstantWeapon(ItemManager context, InstantWeaponData c, Entity entity, EquippedItem item) + + public Weapon(ItemManager context, WeaponData data, Entity entity, EquippedItem item) { Context = context; - _data = c; Entity = entity; Item = item; + _data = data; } - public bool Execute(float delta) + public abstract bool Execute(float delta); + + public virtual void Activate() { - _burstCount = _data.BurstCount; - _burstTime = Context.Evaluate(_data.BurstTime, Item.EquippableItem, Entity) / _burstCount; - _burstTimer = 0; - Fire(delta); - return true; + _firing = true; } - private void Fire(float delta) + public virtual void Deactivate() { - _burstTimer -= delta; - while (_burstTimer < 0 && _burstCount > 0) - { - _burstCount--; - _burstTimer += _burstTime; - OnFire?.Invoke(); - } + _firing = false; } - - public void Update(float delta) - { - if(_burstCount > 0) - Fire(delta); - } -} \ No newline at end of file +} diff --git a/Assets/Scripts/ServerShared/Entity.cs b/Assets/Scripts/ServerShared/Entity.cs index b6950b840..013a96b3c 100644 --- a/Assets/Scripts/ServerShared/Entity.cs +++ b/Assets/Scripts/ServerShared/Entity.cs @@ -54,7 +54,7 @@ public abstract class Entity new Dictionary(); public Dictionary HardpointArmor; - public readonly List[] TriggerGroups; + public readonly (List behaviors, List items)[] TriggerGroups; public List PopulationAssignments = new List(); @@ -107,9 +107,9 @@ public abstract class Entity Hull = hull; Name = hull.Name; MapEntity(); - TriggerGroups = new List[itemManager.GameplaySettings.TriggerGroupCount]; + TriggerGroups = new (List triggers, List items)[itemManager.GameplaySettings.TriggerGroupCount]; for(int i=0; i(); + TriggerGroups[i] = (new List(), new List()); ItemDestroyed = ItemDamage.Where(x => x.item.EquippableItem.Durability < .01f).Select(x=>x.item); HullArmorDepleted = ArmorDamage.Where(x => Armor[x.pos.x, x.pos.y] < .01f).Select(x => x.pos); @@ -490,29 +490,53 @@ public abstract class Entity yield return b; } - public Switch GetSwitch() where T : class, IBehavior - { - foreach (var equippedItem in Equipment) - foreach (var group in equippedItem.BehaviorGroups) - foreach(var behavior in group.Behaviors) - if (behavior is T) - return group.Switch; - return null; - } - - public Trigger GetTrigger() where T : class, IBehavior - { - foreach (var equippedItem in Equipment) - foreach (var group in equippedItem.BehaviorGroups) - foreach(var behavior in group.Behaviors) - if (behavior is T) - return group.Trigger; - return null; - } + // public IEnumerable<(T t, Switch s)> GetSwitch() where T : class, IBehavior + // { + // foreach (var equippedItem in Equipment) + // foreach (var group in equippedItem.BehaviorGroups.Values) + // foreach(var behavior in group.Behaviors) + // if (behavior is T t) + // { + // var s = group.GetExposed(); + // if (s != null) yield return (t, s); + // } + // } + // + // public IEnumerable<(T behavior, Trigger trigger)> GetTrigger() where T : class, IBehavior + // { + // foreach (var equippedItem in Equipment) + // foreach (var group in equippedItem.BehaviorGroups.Values) + // foreach(var behavior in group.Behaviors) + // if (behavior is T t) + // { + // var s = group.GetExposed(); + // if (s != null) yield return (t, s); + // } + // } + // + // public IEnumerable<(T behavior, Axis axis)> GetAxis() where T : class, IBehavior + // { + // foreach (var equippedItem in Equipment) + // foreach (var group in equippedItem.BehaviorGroups.Values) + // foreach(var behavior in group.Behaviors) + // if (behavior is T t) + // { + // var s = group.GetExposed(); + // if (s != null) yield return (t, s); + // } + // } public virtual void Update(float delta) { var hullData = ItemManager.GetData(Hull) as HullData; + + foreach (var v in VisibilitySources.Keys.ToArray()) + { + VisibilitySources[v] *= max(1 - ItemManager.GameplaySettings.VisibilityDecay * delta, 0); + + if (VisibilitySources[v] < 0.01f) VisibilitySources.Remove(v); + } + //float[,] newTemp = new float[hullData.Shape.Width,hullData.Shape.Height]; var radiation = 0f; foreach (var v in hullData.Shape.Coordinates) @@ -632,7 +656,7 @@ public class EquippedItem public IBehavior[] Behaviors; - public BehaviorGroup[] BehaviorGroups; + public Dictionary BehaviorGroups; public float Conductivity { get; } @@ -670,17 +694,16 @@ public class EquippedItem Behaviors = _data.Behaviors .Select(bd => bd.CreateInstance(itemManager, entity, this)) .ToArray(); - + BehaviorGroups = Behaviors .GroupBy(b => b.Data.Group) - .OrderBy(g=>g.Key) - .Select(g=> new BehaviorGroup { + .OrderBy(g => g.Key) + .ToDictionary(g => g.Key, g => new BehaviorGroup + { Behaviors = g.ToArray(), - //Axis = (IAnalogBehavior) g.FirstOrDefault(b=>b is IAnalogBehavior), - Switch = (Switch) g.FirstOrDefault(b=>b is Switch), - Trigger = (Trigger) g.FirstOrDefault(b=>b is Trigger) - }) - .ToArray(); + // Switch = (Switch) g.FirstOrDefault(b => b is Switch), + // Trigger = (Trigger) g.FirstOrDefault(b => b is Trigger) + }); foreach (var behavior in Behaviors) { @@ -710,7 +733,7 @@ public class EquippedItem if (Online) { - foreach (var group in BehaviorGroups) + foreach (var group in BehaviorGroups.Values) { foreach (var behavior in group.Behaviors) { @@ -1016,7 +1039,28 @@ public class EquippedDockingBay : EquippedCargoBay public class BehaviorGroup { public IBehavior[] Behaviors; - public Trigger Trigger; - public Switch Switch; + + public T GetBehavior() where T : class, IBehavior + { + foreach (var b in Behaviors) + { + if (!(b is T s)) continue; + return s; + } + + return null; + } + + public T GetExposed() where T : class, IBehavior, IInteractiveBehavior + { + foreach (var b in Behaviors) + { + if (!(b is T s) || !((IInteractiveBehavior)b).Exposed) continue; + return s; + } + + return null; + } + //public IAnalogBehavior Axis; } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Extensions.cs b/Assets/Scripts/ServerShared/Extensions.cs index b867cc2fe..09ba7bcab 100644 --- a/Assets/Scripts/ServerShared/Extensions.cs +++ b/Assets/Scripts/ServerShared/Extensions.cs @@ -414,12 +414,6 @@ public static class ObjectExtensions { return (T)Copy((Object)original); } - - public static bool IntersectsWith(this Rect r1, Rect r2) - { - return (r2.x + r2.width >= r1.x && r2.x <= r1.x + r1.width) && - (r2.y + r2.height >= r1.y && r2.y <= r1.y + r1.height); - } } public class ReferenceEqualityComparer : EqualityComparer diff --git a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypesConverter.cs b/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypesConverter.cs index 51b110720..70d332040 100644 --- a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypesConverter.cs +++ b/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypesConverter.cs @@ -34,7 +34,8 @@ namespace JsonKnownTypes if(_typesSettings.DiscriminatorToType.TryGetValue(discriminator, out var typeForObject)) return JsonConvert.DeserializeObject(jo.ToString(), typeForObject, SpecifiedSubclassConversion); - throw new NotImplementedException(); + return null; + //throw new NotImplementedException(); } public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/EpsilonGreedy.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/EpsilonGreedy.cs index 8aea3d1ce..9d785e7e1 100644 --- a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/EpsilonGreedy.cs +++ b/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/EpsilonGreedy.cs @@ -58,7 +58,7 @@ namespace RethinkDb.Driver.Net.Clustering private EpsilonValueCalculator calc; private float[] weights = null; - private Timer timer; + private System.Threading.Timer timer; /// /// Random value generator. @@ -158,7 +158,7 @@ namespace RethinkDb.Driver.Net.Clustering public void StartDecayTimer() { var durationPerBucket = TimeSpan.FromTicks(decayDuration.Ticks / EpsilonBuckets); - this.timer = new Timer(PerformEpsilonGreedyDecay, null, Timeout.Infinite, Timeout.Infinite); + this.timer = new System.Threading.Timer(PerformEpsilonGreedyDecay, null, Timeout.Infinite, Timeout.Infinite); //fire now. this.timer.Change(TimeSpan.Zero, durationPerBucket); diff --git a/Assets/Scripts/ServerShared/Rect.cs b/Assets/Scripts/ServerShared/Rect.cs index d2f1bbfb3..5ace687ef 100644 --- a/Assets/Scripts/ServerShared/Rect.cs +++ b/Assets/Scripts/ServerShared/Rect.cs @@ -1,4 +1,6 @@ using Unity.Mathematics; +using static Unity.Mathematics.math; +using float2 = Unity.Mathematics.float2; namespace Unity.Tiny { @@ -12,23 +14,25 @@ namespace Unity.Tiny /// public static Rect Default { get; } = new Rect() { - x = 0f, - y = 0f, - width = 1f, - height = 1f + position = float2.zero, + size = float2(1,1) }; public Rect(float x, float y, float width, float height) { - this.x = x; - this.y = y; - this.width = width; - this.height = height; + position = float2(x, y); + size = float2(width, height); + } + + public Rect(float2 position, float2 size) + { + this.position = position; + this.size = size; } public bool IsEmpty() { - return !(width > 0.0f && height > 0.0f); + return !(size.x > 0.0f && size.y > 0.0f); } /// @@ -41,7 +45,7 @@ namespace Unity.Tiny /// public bool Contains(float2 pos) { - return pos.x >= x && pos.y >= y && pos.x < x + width && pos.y < y + height; + return pos.x >= position.x && pos.y >= position.y && pos.x < position.x + size.x && pos.y < position.y + size.y; } /// @@ -51,57 +55,46 @@ namespace Unity.Tiny { return new Rect { - x = x + relative.x * width, - y = y + relative.y * height, - width = width * relative.width, - height = height * relative.height + position = float2(position.x + relative.position.x * size.x,position.y + relative.position.y * size.y) , + size = float2(size.x * relative.size.x, size.y * relative.size.y) }; } + + public bool IntersectsWith(Rect r2) + { + return r2.position.x + r2.size.x >= position.x && r2.position.x <= position.x + size.x && + r2.position.y + r2.size.y >= position.y && r2.position.y <= position.y + size.y; + } public void Clamp(Rect r) { - float x2 = x + width; - float y2 = y + height; - float rx2 = r.x + r.width; - float ry2 = r.y + r.height; - if (x < r.x) x = r.x; + float x2 = position.x + size.x; + float y2 = position.y + size.y; + float rx2 = r.position.x + r.size.x; + float ry2 = r.position.y + r.size.y; + if (position.x < r.position.x) position.x = r.position.x; if (x2 > rx2) x2 = rx2; - if (y < r.y) y = r.y; + if (position.y < r.position.y) position.y = r.position.y; if (y2 > ry2) y2 = ry2; - width = x2 - x; - if (width < 0.0f) width = 0.0f; - height = y2 - y; - if (height < 0.0f) height = 0.0f; + size.x = x2 - position.x; + if (size.x < 0.0f) size.x = 0.0f; + size.y = y2 - position.y; + if (size.y < 0.0f) size.y = 0.0f; } - public float x; - public float y; - public float width; - public float height; - - /// - /// The width and height of the rectangle. - /// - public float2 Size - { - get => new float2(width, this.height); - set - { - width = value.x; - height = value.y; - } - } + public float2 position; + public float2 size; /// /// The position of the center of the rectangle. /// public float2 Center { - get => new float2(x + width / 2f, y + height/ 2f); + get => new float2(position.x + size.x / 2f, position.y + size.y/ 2f); set { - x = value.x - width / 2f; - y = value.y - height / 2f; + position.x = value.x - size.x / 2f; + position.y = value.y - size.y / 2f; } } diff --git a/Assets/Scripts/ServerShared/Settings.cs b/Assets/Scripts/ServerShared/Settings.cs index 19dc3a1c3..5026d7f35 100644 --- a/Assets/Scripts/ServerShared/Settings.cs +++ b/Assets/Scripts/ServerShared/Settings.cs @@ -109,4 +109,5 @@ public class GameplaySettings public ExponentialLerp LockSpinSpeed; public float TorqueFloor; public float TorqueMultiplier; + public float VisibilityDecay; } \ No newline at end of file diff --git a/Assets/Scripts/TradeMenu.cs b/Assets/Scripts/TradeMenu.cs index 3143eaa73..be9ee6a2f 100644 --- a/Assets/Scripts/TradeMenu.cs +++ b/Assets/Scripts/TradeMenu.cs @@ -199,7 +199,7 @@ public class TradeMenu : MonoBehaviour data => () => data.Mass.SignificantDigits(3), data => data.Mass)); columns.Add(("Price", 1, - data => () => data.Price.ToString(), + data => () => data.Price.ToString("N0"), data => data.Price)); columns.Add(("Size", 1, data => () => $"{data.Shape.Width}x{data.Shape.Height}", diff --git a/Assets/Scripts/InventoryCell.cs b/Assets/Scripts/UI/InventoryCell.cs similarity index 100% rename from Assets/Scripts/InventoryCell.cs rename to Assets/Scripts/UI/InventoryCell.cs diff --git a/Assets/Scripts/InventoryCell.cs.meta b/Assets/Scripts/UI/InventoryCell.cs.meta similarity index 100% rename from Assets/Scripts/InventoryCell.cs.meta rename to Assets/Scripts/UI/InventoryCell.cs.meta diff --git a/Assets/Scripts/InventoryMenu.cs b/Assets/Scripts/UI/InventoryMenu.cs similarity index 100% rename from Assets/Scripts/InventoryMenu.cs rename to Assets/Scripts/UI/InventoryMenu.cs diff --git a/Assets/Scripts/InventoryMenu.cs.meta b/Assets/Scripts/UI/InventoryMenu.cs.meta similarity index 100% rename from Assets/Scripts/InventoryMenu.cs.meta rename to Assets/Scripts/UI/InventoryMenu.cs.meta diff --git a/Assets/Scripts/UI/PlaceUIElementWorldspace.cs b/Assets/Scripts/UI/PlaceUIElementWorldspace.cs index 0237d7b75..8e43ae97a 100644 --- a/Assets/Scripts/UI/PlaceUIElementWorldspace.cs +++ b/Assets/Scripts/UI/PlaceUIElementWorldspace.cs @@ -12,7 +12,7 @@ public class PlaceUIElementWorldspace : MonoBehaviour { public float NoiseAmplitude; public float NoiseFrequency; - public RectTransform CanvasRectTransform; + public Canvas Canvas; public float BorderPixels = 10; public Vector3 Target; @@ -20,12 +20,14 @@ public class PlaceUIElementWorldspace : MonoBehaviour private RectTransform _rectTransform; private Transform _cameraTransform; private float _noiseOffset; + private RectTransform _canvasRectTransform; void Start() { // Get the rect transform _rectTransform = GetComponent(); _cameraTransform = Camera.main.transform; + _canvasRectTransform = Canvas.GetComponent(); } private void OnEnable() @@ -38,15 +40,12 @@ public class PlaceUIElementWorldspace : MonoBehaviour /// void LateUpdate() { - if (Target == null) - return; - _noiseOffset += Time.deltaTime * NoiseFrequency; Vector2 screenPoint = RectTransformUtility.WorldToScreenPoint(Camera.main, Target); screenPoint *= Mathf.Sign(Vector3.Dot(_cameraTransform.forward, Target - _cameraTransform.position)); screenPoint += new Vector2(noise(_noiseOffset), noise(10 + _noiseOffset)) * NoiseAmplitude; screenPoint = new Vector2(Mathf.Clamp(screenPoint.x, BorderPixels, Screen.width - BorderPixels),Mathf.Clamp(screenPoint.y, BorderPixels, Screen.height - BorderPixels)); - _rectTransform.anchoredPosition = screenPoint - CanvasRectTransform.sizeDelta / 2f; + _rectTransform.anchoredPosition = screenPoint / Canvas.scaleFactor - _canvasRectTransform.sizeDelta / 2f; } } \ No newline at end of file diff --git a/Assets/Scripts/SchematicDisplay.cs b/Assets/Scripts/UI/SchematicDisplay.cs similarity index 90% rename from Assets/Scripts/SchematicDisplay.cs rename to Assets/Scripts/UI/SchematicDisplay.cs index de3e00406..f4310d456 100644 --- a/Assets/Scripts/SchematicDisplay.cs +++ b/Assets/Scripts/UI/SchematicDisplay.cs @@ -1,4 +1,5 @@ -using System.Collections; +using System; +using System.Collections; using System.Collections.Generic; using System.Linq; using TMPro; @@ -83,8 +84,8 @@ public class SchematicDisplay : MonoBehaviour public SchematicListElement ListElement; public SchematicTriggerGroupElement TriggerGroupElement; public IProgressBehavior Cooldown; - public ItemUsage ItemUsage; - public WeaponData WeaponData; + // public ItemUsage ItemUsage; + public Weapon Weapon; } public void ShowShip(Entity entity, Entity player = null) @@ -126,8 +127,8 @@ public class SchematicDisplay : MonoBehaviour ListElement = ListElementPrototype.Instantiate(), TriggerGroupElement = _enemy ? null : TriggerGroupPrototype.Instantiate(), Cooldown = _enemy ? null : (IProgressBehavior) x.Behaviors.FirstOrDefault(b=> b is IProgressBehavior), - ItemUsage = _enemy ? null : (ItemUsage) x.Behaviors.FirstOrDefault(b=> b is ItemUsage), - WeaponData = (WeaponData) x.Behaviors.FirstOrDefault(b=>b.Data is WeaponData)?.Data + // ItemUsage = _enemy ? null : (ItemUsage) x.Behaviors.FirstOrDefault(b=> b is ItemUsage), + Weapon = (Weapon) x.Behaviors.FirstOrDefault(b=>b is Weapon) }) .ToArray(); foreach (var x in _schematicItems) @@ -136,14 +137,14 @@ public class SchematicDisplay : MonoBehaviour x.ListElement.Label.text = x.Item.EquippableItem.Name; if (!_enemy) { - x.ListElement.InfiniteAmmoIcon.gameObject.SetActive(x.ItemUsage == null); - x.ListElement.AmmoLabel.gameObject.SetActive(x.ItemUsage != null); + x.ListElement.InfiniteAmmoIcon.gameObject.SetActive(x.Weapon.WeaponData.AmmoType == Guid.Empty); + x.ListElement.AmmoLabel.gameObject.SetActive(x.Weapon.WeaponData.AmmoType != Guid.Empty); foreach (var group in x.TriggerGroupElement.GroupBackgrounds) group.color = TriggerGroupColor; } } - if (!_enemy) - UpdateTriggerGroups(); + if (!_enemy) + UpdateTriggerGroups(); } public void UpdateTriggerGroups() @@ -166,7 +167,7 @@ public class SchematicDisplay : MonoBehaviour backgroundColor.a *= 2; item.TriggerGroupElement.GroupBackgrounds[groupIndex].color = backgroundColor; item.TriggerGroupElement.GroupLabel[groupIndex].color = - _entity.TriggerGroups[groupIndex].Contains(item.Item) ? Color.white : Color.gray; + _entity.TriggerGroups[groupIndex].items.Contains(item.Item) ? Color.white : Color.gray; } } } @@ -270,15 +271,18 @@ public class SchematicDisplay : MonoBehaviour if (x.Cooldown != null) x.ListElement.CooldownFill.anchorMax = new Vector2(x.Cooldown.Progress, 1); x.ListElement.DurabilityLabel.text = $"{(int)(x.Item.EquippableItem.Durability / itemData.Durability * 100)}%"; - if (x.ItemUsage != null) + if (x.Weapon.WeaponData.AmmoType != Guid.Empty) { - x.ListElement.AmmoLabel.text = _entity.CountItemsInCargo(((ItemUsageData)x.ItemUsage.Data).Item).ToString(); + if(x.Weapon.WeaponData.MagazineSize > 1) + x.ListElement.AmmoLabel.text = x.Weapon.Ammo.ToString(); + else + x.ListElement.AmmoLabel.text = _entity.CountItemsInCargo(x.Weapon.WeaponData.AmmoType).ToString(); } } - if (x.WeaponData != null) + if (x.Weapon.WeaponData != null) { - x.ListElement.RangeLabel.text = ((int) _entity.ItemManager.Evaluate(x.WeaponData.Range, x.Item.EquippableItem, _entity)).ToString(); + x.ListElement.RangeLabel.text = ((int) _entity.ItemManager.Evaluate(x.Weapon.WeaponData.Range, x.Item.EquippableItem, _entity)).ToString(); } } } diff --git a/Assets/Scripts/SchematicDisplay.cs.meta b/Assets/Scripts/UI/SchematicDisplay.cs.meta similarity index 100% rename from Assets/Scripts/SchematicDisplay.cs.meta rename to Assets/Scripts/UI/SchematicDisplay.cs.meta diff --git a/Assets/Scripts/SchematicListElement.cs b/Assets/Scripts/UI/SchematicListElement.cs similarity index 100% rename from Assets/Scripts/SchematicListElement.cs rename to Assets/Scripts/UI/SchematicListElement.cs diff --git a/Assets/Scripts/SchematicListElement.cs.meta b/Assets/Scripts/UI/SchematicListElement.cs.meta similarity index 100% rename from Assets/Scripts/SchematicListElement.cs.meta rename to Assets/Scripts/UI/SchematicListElement.cs.meta diff --git a/Assets/Scripts/SchematicTriggerGroupElement.cs b/Assets/Scripts/UI/SchematicTriggerGroupElement.cs similarity index 100% rename from Assets/Scripts/SchematicTriggerGroupElement.cs rename to Assets/Scripts/UI/SchematicTriggerGroupElement.cs diff --git a/Assets/Scripts/SchematicTriggerGroupElement.cs.meta b/Assets/Scripts/UI/SchematicTriggerGroupElement.cs.meta similarity index 100% rename from Assets/Scripts/SchematicTriggerGroupElement.cs.meta rename to Assets/Scripts/UI/SchematicTriggerGroupElement.cs.meta diff --git a/Assets/Scripts/SizeFilter.cs b/Assets/Scripts/UI/SizeFilter.cs similarity index 100% rename from Assets/Scripts/SizeFilter.cs rename to Assets/Scripts/UI/SizeFilter.cs diff --git a/Assets/Scripts/SizeFilter.cs.meta b/Assets/Scripts/UI/SizeFilter.cs.meta similarity index 100% rename from Assets/Scripts/SizeFilter.cs.meta rename to Assets/Scripts/UI/SizeFilter.cs.meta diff --git a/Assets/Scripts/Spreadsheet.cs b/Assets/Scripts/UI/Spreadsheet.cs similarity index 100% rename from Assets/Scripts/Spreadsheet.cs rename to Assets/Scripts/UI/Spreadsheet.cs diff --git a/Assets/Scripts/Spreadsheet.cs.meta b/Assets/Scripts/UI/Spreadsheet.cs.meta similarity index 100% rename from Assets/Scripts/Spreadsheet.cs.meta rename to Assets/Scripts/UI/Spreadsheet.cs.meta diff --git a/Assets/Scripts/SpreadsheetColumnHeader.cs b/Assets/Scripts/UI/SpreadsheetColumnHeader.cs similarity index 100% rename from Assets/Scripts/SpreadsheetColumnHeader.cs rename to Assets/Scripts/UI/SpreadsheetColumnHeader.cs diff --git a/Assets/Scripts/SpreadsheetColumnHeader.cs.meta b/Assets/Scripts/UI/SpreadsheetColumnHeader.cs.meta similarity index 100% rename from Assets/Scripts/SpreadsheetColumnHeader.cs.meta rename to Assets/Scripts/UI/SpreadsheetColumnHeader.cs.meta diff --git a/Assets/Scripts/SpreadsheetRow.cs b/Assets/Scripts/UI/SpreadsheetRow.cs similarity index 100% rename from Assets/Scripts/SpreadsheetRow.cs rename to Assets/Scripts/UI/SpreadsheetRow.cs diff --git a/Assets/Scripts/SpreadsheetRow.cs.meta b/Assets/Scripts/UI/SpreadsheetRow.cs.meta similarity index 100% rename from Assets/Scripts/SpreadsheetRow.cs.meta rename to Assets/Scripts/UI/SpreadsheetRow.cs.meta diff --git a/Economy.Shared.Unity.csproj b/Economy.Shared.Unity.csproj index 005611bc0..ac7d603c3 100644 --- a/Economy.Shared.Unity.csproj +++ b/Economy.Shared.Unity.csproj @@ -157,7 +157,6 @@ - @@ -284,7 +283,6 @@ - @@ -315,7 +313,6 @@ - @@ -519,6 +516,11 @@ + + + + + diff --git a/com.alelievr.NodeGraphProcessor.Editor.csproj b/com.alelievr.NodeGraphProcessor.Editor.csproj new file mode 100644 index 000000000..d464618a0 --- /dev/null +++ b/com.alelievr.NodeGraphProcessor.Editor.csproj @@ -0,0 +1,740 @@ + + + + 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 + + {a4e83803-35fe-e54d-5974-2af6595e46a5} + {E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Properties + com.alelievr.NodeGraphProcessor.Editor + v4.7.1 + 512 + . + + + true + full + false + Temp\Bin\Debug\ + DEBUG;TRACE;UNITY_2020_2_1;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.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.AIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.ARModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.AccessibilityModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.AndroidJNIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.AnimationModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.AssetBundleModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.AudioModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClothModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterInputModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterRendererModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.CoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.CrashReportingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.DSPGraphModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.DirectorModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.GIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.GameCenterModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.GridModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.HotReloadModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.IMGUIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.ImageConversionModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.InputModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.InputLegacyModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.JSONSerializeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.LocalizationModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.ParticleSystemModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.PerformanceReportingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.PhysicsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.Physics2DModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.ProfilerModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.RuntimeInitializeOnLoadManagerInitializerModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.ScreenCaptureModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.SharedInternalsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteMaskModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteShapeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.StreamingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.SubstanceModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.SubsystemsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.TLSModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainPhysicsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.TextCoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.TextRenderingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.TilemapModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIElementsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIElementsNativeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.UNETModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.UmbraModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityAnalyticsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityConnectModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityCurlModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityTestProtocolModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAssetBundleModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAudioModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestTextureModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestWWWModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.VFXModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.VRModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.VehiclesModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.VideoModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.VirtualTexturingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.WindModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.XRModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEditor.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEditor.CoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEditor.GraphViewModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEditor.PackageManagerUIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEditor.SceneTemplateModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEditor.UIElementsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEditor.UIElementsSamplesModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEditor.UIServiceModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEditor.UnityConnectModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEditor.Graphs.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/PlaybackEngines/WindowsStandaloneSupport/UnityEditor.WindowsStandalone.Extensions.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/System.Threading.Tasks.Extensions.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/Remotion.Linq.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/Newtonsoft.Json.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/System.Memory.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/Microsoft.Extensions.Logging.Abstractions.dll + + + E:/Projects/Aetheria-Economy/Library/PackageCache/com.unity.ext.nunit@1.0.5/net35/unity-custom/nunit.framework.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/Google.Protobuf/lib/net45/Google.Protobuf.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/System.Buffers.dll + + + E:/Projects/Aetheria-Economy/Library/PackageCache/com.unity.burst@1.4.3/Unity.Burst.Unsafe.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/QuickGraph.dll + + + E:/Projects/Aetheria-Economy/Assets/Allegorithmic/Plugins/Substance.Game.dll + + + E:/Projects/Aetheria-Economy/Assets/Allegorithmic/Plugins/Substance/Substance Source/Editor/SourceUnityLib.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/System.Runtime.CompilerServices.Unsafe.dll + + + E:/Projects/Aetheria-Economy/Assets/Allegorithmic/Plugins/Substance/Substance Engine/Editor/Substance.Editor.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/mscorlib.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Core.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Runtime.Serialization.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Xml.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Xml.Linq.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Numerics.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Numerics.Vectors.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Net.Http.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Microsoft.CSharp.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Data.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/Microsoft.Win32.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/netstandard.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.AppContext.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.Concurrent.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.NonGeneric.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.Specialized.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.Annotations.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.EventBasedAsync.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.TypeConverter.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Console.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Data.Common.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Contracts.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Debug.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.FileVersionInfo.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Process.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.StackTrace.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.TextWriterTraceListener.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Tools.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.TraceSource.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Drawing.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Dynamic.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.Calendars.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.Compression.ZipFile.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.DriveInfo.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.Watcher.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.IsolatedStorage.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.MemoryMappedFiles.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.Pipes.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.UnmanagedMemoryStream.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Expressions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Parallel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Queryable.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Http.Rtc.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.NameResolution.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.NetworkInformation.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Ping.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Requests.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Security.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Sockets.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebHeaderCollection.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebSockets.Client.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebSockets.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ObjectModel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.ILGeneration.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.Lightweight.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.Reader.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.ResourceManager.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.Writer.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.CompilerServices.VisualC.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Handles.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.RuntimeInformation.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.WindowsRuntime.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Numerics.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Formatters.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Json.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Xml.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Claims.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Algorithms.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Csp.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Encoding.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.X509Certificates.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Principal.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.SecureString.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Duplex.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Http.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.NetTcp.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Security.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.Encoding.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.Encoding.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.RegularExpressions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Overlapped.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Tasks.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Tasks.Parallel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Thread.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.ThreadPool.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Timer.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ValueTuple.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.ReaderWriter.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XmlDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XmlSerializer.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XPath.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XPath.XDocument.dll + + + E:/Projects/Aetheria-Economy/Library/ScriptAssemblies/UnityEditor.UI.dll + + + E:/Projects/Aetheria-Economy/Library/ScriptAssemblies/UnityEngine.UI.dll + + + E:/Projects/Aetheria-Economy/Library/ScriptAssemblies/UnityEngine.TestRunner.dll + + + E:/Projects/Aetheria-Economy/Library/ScriptAssemblies/UnityEditor.TestRunner.dll + + + + + + + diff --git a/com.alelievr.NodeGraphProcessor.Runtime.csproj b/com.alelievr.NodeGraphProcessor.Runtime.csproj new file mode 100644 index 000000000..e6738b930 --- /dev/null +++ b/com.alelievr.NodeGraphProcessor.Runtime.csproj @@ -0,0 +1,712 @@ + + + + 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 + + {4cc9ece5-0f74-bceb-733d-48f6e84c547b} + {E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Properties + com.alelievr.NodeGraphProcessor.Runtime + v4.7.1 + 512 + . + + + true + full + false + Temp\Bin\Debug\ + DEBUG;TRACE;UNITY_2020_2_1;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.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.AIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.ARModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.AccessibilityModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.AndroidJNIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.AnimationModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.AssetBundleModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.AudioModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClothModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterInputModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterRendererModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.CoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.CrashReportingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.DSPGraphModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.DirectorModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.GIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.GameCenterModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.GridModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.HotReloadModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.IMGUIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.ImageConversionModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.InputModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.InputLegacyModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.JSONSerializeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.LocalizationModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.ParticleSystemModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.PerformanceReportingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.PhysicsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.Physics2DModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.ProfilerModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.RuntimeInitializeOnLoadManagerInitializerModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.ScreenCaptureModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.SharedInternalsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteMaskModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteShapeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.StreamingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.SubstanceModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.SubsystemsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.TLSModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainPhysicsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.TextCoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.TextRenderingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.TilemapModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIElementsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIElementsNativeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.UNETModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.UmbraModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityAnalyticsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityConnectModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityCurlModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityTestProtocolModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAssetBundleModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAudioModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestTextureModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestWWWModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.VFXModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.VRModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.VehiclesModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.VideoModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.VirtualTexturingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.WindModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEngine.XRModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEditor.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEditor.CoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEditor.GraphViewModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEditor.PackageManagerUIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEditor.SceneTemplateModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEditor.UIElementsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEditor.UIElementsSamplesModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEditor.UIServiceModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEngine/UnityEditor.UnityConnectModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Managed/UnityEditor.Graphs.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/PlaybackEngines/WindowsStandaloneSupport/UnityEditor.WindowsStandalone.Extensions.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/System.Threading.Tasks.Extensions.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/Remotion.Linq.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/Newtonsoft.Json.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/System.Memory.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/Microsoft.Extensions.Logging.Abstractions.dll + + + E:/Projects/Aetheria-Economy/Library/PackageCache/com.unity.ext.nunit@1.0.5/net35/unity-custom/nunit.framework.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/Google.Protobuf/lib/net45/Google.Protobuf.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/System.Buffers.dll + + + E:/Projects/Aetheria-Economy/Library/PackageCache/com.unity.burst@1.4.3/Unity.Burst.Unsafe.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/QuickGraph.dll + + + E:/Projects/Aetheria-Economy/Assets/Allegorithmic/Plugins/Substance.Game.dll + + + E:/Projects/Aetheria-Economy/Assets/Allegorithmic/Plugins/Substance/Substance Source/Editor/SourceUnityLib.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/System.Runtime.CompilerServices.Unsafe.dll + + + E:/Projects/Aetheria-Economy/Assets/Allegorithmic/Plugins/Substance/Substance Engine/Editor/Substance.Editor.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/mscorlib.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Core.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Runtime.Serialization.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Xml.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Xml.Linq.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Numerics.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Numerics.Vectors.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Net.Http.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Microsoft.CSharp.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Data.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/Microsoft.Win32.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/netstandard.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.AppContext.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.Concurrent.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.NonGeneric.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.Specialized.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.Annotations.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.EventBasedAsync.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.TypeConverter.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Console.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Data.Common.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Contracts.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Debug.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.FileVersionInfo.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Process.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.StackTrace.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.TextWriterTraceListener.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Tools.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.TraceSource.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Drawing.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Dynamic.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.Calendars.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.Compression.ZipFile.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.DriveInfo.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.Watcher.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.IsolatedStorage.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.MemoryMappedFiles.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.Pipes.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.UnmanagedMemoryStream.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Expressions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Parallel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Queryable.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Http.Rtc.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.NameResolution.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.NetworkInformation.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Ping.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Requests.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Security.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Sockets.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebHeaderCollection.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebSockets.Client.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebSockets.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ObjectModel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.ILGeneration.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.Lightweight.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.Reader.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.ResourceManager.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.Writer.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.CompilerServices.VisualC.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Handles.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.RuntimeInformation.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.WindowsRuntime.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Numerics.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Formatters.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Json.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Xml.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Claims.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Algorithms.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Csp.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Encoding.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.X509Certificates.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Principal.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.SecureString.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Duplex.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Http.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.NetTcp.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Security.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.Encoding.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.Encoding.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.RegularExpressions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Overlapped.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Tasks.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Tasks.Parallel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Thread.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.ThreadPool.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Timer.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ValueTuple.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.ReaderWriter.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XmlDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XmlSerializer.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XPath.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XPath.XDocument.dll + + + E:/Projects/Aetheria-Economy/Library/ScriptAssemblies/UnityEditor.UI.dll + + + E:/Projects/Aetheria-Economy/Library/ScriptAssemblies/UnityEngine.UI.dll + + + + + + +