diff --git a/Aetheria.Shared.Unity.csproj b/Aetheria.Shared.Unity.csproj
index bc862db88..6c2d70788 100644
--- a/Aetheria.Shared.Unity.csproj
+++ b/Aetheria.Shared.Unity.csproj
@@ -126,7 +126,6 @@
-
diff --git a/Assets/Materials/UI/Map Gravity Lines.mat b/Assets/Materials/UI/Map Gravity Lines.mat
index 749d876be..2036ba98e 100644
--- a/Assets/Materials/UI/Map Gravity Lines.mat
+++ b/Assets/Materials/UI/Map Gravity Lines.mat
@@ -86,7 +86,7 @@ Material:
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- - _Scale: 0.5
+ - _Scale: 1.2708329
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
diff --git a/Assets/Prefabs/UI/Main Menu Canvas.prefab b/Assets/Prefabs/UI/Main Menu Canvas.prefab
index 20b8ada9e..4dbe54f95 100644
--- a/Assets/Prefabs/UI/Main Menu Canvas.prefab
+++ b/Assets/Prefabs/UI/Main Menu Canvas.prefab
@@ -564,6 +564,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 83488dc4b5e58cd40b4d1c4ee98207b5, type: 3}
m_Name:
m_EditorClassIdentifier:
+ Spacer: {fileID: 0}
Dropdown: {fileID: 0}
Title: {fileID: 4533226043829246278}
Section: {fileID: 1026668114703092140, guid: 3a149ea40b43fbf47b51ec165cb04e5f, type: 3}
@@ -1126,6 +1127,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 8c2bf4a7080061d42a87046c37bf0c60, type: 3}
m_Name:
m_EditorClassIdentifier:
+ Spacer: {fileID: 7041706416206723741, guid: 4638d28139b15b34fac8dae056f7d5fd, type: 3}
Dropdown: {fileID: 0}
Title: {fileID: 7329274283166941237}
Section: {fileID: 1026668114703092140, guid: 3a149ea40b43fbf47b51ec165cb04e5f, type: 3}
diff --git a/Assets/Prefabs/UI/Properties Panel/Properties Panel.prefab b/Assets/Prefabs/UI/Properties Panel/Properties Panel.prefab
deleted file mode 100644
index e82037b66..000000000
--- a/Assets/Prefabs/UI/Properties Panel/Properties Panel.prefab
+++ /dev/null
@@ -1,788 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!1 &2378632238049155249
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 2378632238049155248}
- - component: {fileID: 2378632238049155251}
- - component: {fileID: 2378632238049155250}
- - component: {fileID: 2378632238049155148}
- m_Layer: 5
- m_Name: Content
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &2378632238049155248
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2378632238049155249}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children:
- - {fileID: 5116519198747529736}
- m_Father: {fileID: 2378632238683789172}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 1, y: 1}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 0}
- m_Pivot: {x: 0, y: 1}
---- !u!114 &2378632238049155251
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2378632238049155249}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Padding:
- m_Left: 32
- m_Right: 32
- m_Top: 32
- m_Bottom: 32
- m_ChildAlignment: 0
- m_Spacing: 12
- m_ChildForceExpandWidth: 0
- m_ChildForceExpandHeight: 0
- m_ChildControlWidth: 1
- m_ChildControlHeight: 1
- m_ChildScaleWidth: 0
- m_ChildScaleHeight: 0
- m_ReverseArrangement: 0
---- !u!114 &2378632238049155250
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2378632238049155249}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_HorizontalFit: 0
- m_VerticalFit: 2
---- !u!114 &2378632238049155148
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2378632238049155249}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 8c2bf4a7080061d42a87046c37bf0c60, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- Dropdown: {fileID: 0}
- Title: {fileID: 5116519198747529738}
- SectionPrefab: {fileID: 1026668114703092140, guid: 3a149ea40b43fbf47b51ec165cb04e5f,
- type: 3}
- ListPrefab: {fileID: 6914334813923144328, guid: 93e63e3a8b352a04897123288d70f04b,
- type: 3}
- PropertyPrefab: {fileID: 9159917045172241898, guid: be88722a74d512d45a454fe91327a389,
- type: 3}
- PropertyLabelPrefab: {fileID: 279061376544739623, guid: 5b8c5126640066e4fabe6e65b7225b3b,
- type: 3}
- AttributePrefab: {fileID: 4447025208748278043, guid: 5e3a258a5b91c8246b20962ba6eccb09,
- type: 3}
- InputField: {fileID: 6586910564433979167, guid: fb49ef180533e3e488fa39d80cc2423a,
- type: 3}
- RangedFloatField: {fileID: 1663396771457720812, guid: c214f62d8f2188140b96ed12798034c8,
- type: 3}
- ProgressField: {fileID: 256436433275418348, guid: e6524d59d9bc67545b0eb1304bfb9d4b,
- type: 3}
- EnumField: {fileID: 1444953514731475975, guid: f19a14cd178d48f49ace9ad217bea2ed,
- type: 3}
- BoolField: {fileID: 7661950293931311388, guid: 001ad6a15f0d582458d359c0ae4405ed,
- type: 3}
- PropertyButton: {fileID: 1613450655389604799, guid: 99bde06e2f0ca504bb95f2a4e3429462,
- type: 3}
- ButtonField: {fileID: 6566784227922820057, guid: 6db1feb4cda7b8c419384cd42c85a5c4,
- type: 3}
- IncrementField: {fileID: 5486709585343280439, guid: 9c14c92a1a08b0a4fb4f6aa6f8504082,
- type: 3}
- SelectedChild: {fileID: 0}
---- !u!1 &2378632238144827086
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 2378632238144827081}
- - component: {fileID: 2378632238144827083}
- - component: {fileID: 2378632238144827080}
- m_Layer: 5
- m_Name: Handle
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &2378632238144827081
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2378632238144827086}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children:
- - {fileID: 2378632239835291325}
- m_Father: {fileID: 2378632239203440075}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0, y: 0}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 20, y: 20}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!222 &2378632238144827083
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2378632238144827086}
- m_CullTransparentMesh: 0
---- !u!114 &2378632238144827080
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2378632238144827086}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 0.44583336, b: 0.050000012, a: 0.65882355}
- m_RaycastTarget: 1
- m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
- m_Maskable: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_Sprite: {fileID: 21300000, guid: 84d126f984de5fd42ac66361c00f830c, type: 3}
- m_Type: 1
- m_PreserveAspect: 0
- m_FillCenter: 1
- m_FillMethod: 4
- m_FillAmount: 1
- m_FillClockwise: 1
- m_FillOrigin: 0
- m_UseSpriteMesh: 0
- m_PixelsPerUnitMultiplier: 1
---- !u!1 &2378632238683789173
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 2378632238683789172}
- - component: {fileID: 2378632238683789169}
- - component: {fileID: 2378632238683789174}
- - component: {fileID: 2378632238683789175}
- m_Layer: 5
- m_Name: Viewport
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &2378632238683789172
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2378632238683789173}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children:
- - {fileID: 2378632238049155248}
- m_Father: {fileID: 2378632240158519326}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0, y: 0}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 0}
- m_Pivot: {x: 0, y: 1}
---- !u!114 &2378632238683789169
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2378632238683789173}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_ShowMaskGraphic: 0
---- !u!222 &2378632238683789174
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2378632238683789173}
- m_CullTransparentMesh: 0
---- !u!114 &2378632238683789175
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2378632238683789173}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_RaycastTarget: 1
- m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
- m_Maskable: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_Sprite: {fileID: 10917, guid: 0000000000000000f000000000000000, type: 0}
- m_Type: 1
- m_PreserveAspect: 0
- m_FillCenter: 1
- m_FillMethod: 4
- m_FillAmount: 1
- m_FillClockwise: 1
- m_FillOrigin: 0
- m_UseSpriteMesh: 0
- m_PixelsPerUnitMultiplier: 1
---- !u!1 &2378632239203440072
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 2378632239203440075}
- m_Layer: 5
- m_Name: Sliding Area
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &2378632239203440075
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2378632239203440072}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children:
- - {fileID: 2378632238144827081}
- m_Father: {fileID: 2378632240161980831}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 1, y: 1}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: -20, y: -20}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!1 &2378632239835291314
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 2378632239835291325}
- - component: {fileID: 2378632239835291327}
- - component: {fileID: 2378632239835291324}
- m_Layer: 5
- m_Name: Outline
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &2378632239835291325
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2378632239835291314}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children: []
- m_Father: {fileID: 2378632238144827081}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 1, y: 1}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 0}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!222 &2378632239835291327
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2378632239835291314}
- m_CullTransparentMesh: 0
---- !u!114 &2378632239835291324
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2378632239835291314}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 0.8, g: 0.9333333, b: 1, a: 1}
- m_RaycastTarget: 1
- m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
- m_Maskable: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_Sprite: {fileID: 21300000, guid: b412943088786454c9bf10b1f7e1e94b, type: 3}
- m_Type: 1
- m_PreserveAspect: 0
- m_FillCenter: 1
- m_FillMethod: 4
- m_FillAmount: 1
- m_FillClockwise: 1
- m_FillOrigin: 0
- m_UseSpriteMesh: 0
- m_PixelsPerUnitMultiplier: 1
---- !u!1 &2378632240158519327
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 2378632240158519326}
- - component: {fileID: 2378632240158519323}
- - component: {fileID: 2378632240158519321}
- - component: {fileID: 2378632240158519320}
- m_Layer: 5
- m_Name: Properties Panel
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &2378632240158519326
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2378632240158519327}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children:
- - {fileID: 2378632238683789172}
- - {fileID: 2378632240161980831}
- m_Father: {fileID: 0}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0, y: 1}
- m_AnchoredPosition: {x: 0, y: -2}
- m_SizeDelta: {x: 500, y: -4}
- m_Pivot: {x: 0, y: 0.5}
---- !u!114 &2378632240158519323
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2378632240158519327}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Content: {fileID: 2378632238049155248}
- m_Horizontal: 0
- m_Vertical: 1
- m_MovementType: 2
- m_Elasticity: 0.1
- m_Inertia: 1
- m_DecelerationRate: 0.135
- m_ScrollSensitivity: 10
- m_Viewport: {fileID: 2378632238683789172}
- m_HorizontalScrollbar: {fileID: 0}
- m_VerticalScrollbar: {fileID: 2378632240161980830}
- m_HorizontalScrollbarVisibility: 0
- m_VerticalScrollbarVisibility: 2
- m_HorizontalScrollbarSpacing: -3
- m_VerticalScrollbarSpacing: -3
- m_OnValueChanged:
- m_PersistentCalls:
- m_Calls: []
---- !u!222 &2378632240158519321
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2378632240158519327}
- m_CullTransparentMesh: 0
---- !u!114 &2378632240158519320
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2378632240158519327}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 0, g: 0.064619616, b: 0.154, a: 1}
- m_RaycastTarget: 1
- m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
- m_Maskable: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_Sprite: {fileID: 21300000, guid: e63fd14753d0f4943a54d9c382aa8cb1, type: 3}
- m_Type: 0
- m_PreserveAspect: 0
- m_FillCenter: 1
- m_FillMethod: 4
- m_FillAmount: 1
- m_FillClockwise: 1
- m_FillOrigin: 0
- m_UseSpriteMesh: 0
- m_PixelsPerUnitMultiplier: 1
---- !u!1 &2378632240161980828
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 2378632240161980831}
- - component: {fileID: 2378632240161980824}
- - component: {fileID: 2378632240161980825}
- - component: {fileID: 2378632240161980830}
- m_Layer: 5
- m_Name: Scrollbar Vertical
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &2378632240161980831
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2378632240161980828}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children:
- - {fileID: 2378632239203440075}
- m_Father: {fileID: 2378632240158519326}
- m_RootOrder: 1
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 1, y: 0}
- m_AnchorMax: {x: 1, y: 1}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 20, y: 0}
- m_Pivot: {x: 1, y: 1}
---- !u!222 &2378632240161980824
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2378632240161980828}
- m_CullTransparentMesh: 0
---- !u!114 &2378632240161980825
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2378632240161980828}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 0.8, g: 0.9333333, b: 1, a: 1}
- m_RaycastTarget: 1
- m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
- m_Maskable: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_Sprite: {fileID: 21300000, guid: b412943088786454c9bf10b1f7e1e94b, type: 3}
- m_Type: 1
- m_PreserveAspect: 0
- m_FillCenter: 1
- m_FillMethod: 4
- m_FillAmount: 1
- m_FillClockwise: 1
- m_FillOrigin: 0
- m_UseSpriteMesh: 0
- m_PixelsPerUnitMultiplier: 1
---- !u!114 &2378632240161980830
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2378632240161980828}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Navigation:
- m_Mode: 3
- m_SelectOnUp: {fileID: 0}
- m_SelectOnDown: {fileID: 0}
- m_SelectOnLeft: {fileID: 0}
- m_SelectOnRight: {fileID: 0}
- m_Transition: 1
- m_Colors:
- m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
- m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
- m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
- m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
- m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
- m_ColorMultiplier: 1
- m_FadeDuration: 0.1
- m_SpriteState:
- m_HighlightedSprite: {fileID: 0}
- m_PressedSprite: {fileID: 0}
- m_SelectedSprite: {fileID: 0}
- m_DisabledSprite: {fileID: 0}
- m_AnimationTriggers:
- m_NormalTrigger: Normal
- m_HighlightedTrigger: Highlighted
- m_PressedTrigger: Pressed
- m_SelectedTrigger: Highlighted
- m_DisabledTrigger: Disabled
- m_Interactable: 1
- m_TargetGraphic: {fileID: 2378632238144827080}
- m_HandleRect: {fileID: 2378632238144827081}
- m_Direction: 2
- m_Value: 0
- m_Size: 0.9999999
- m_NumberOfSteps: 0
- m_OnValueChanged:
- m_PersistentCalls:
- m_Calls: []
---- !u!1 &5116519198747529743
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 5116519198747529736}
- - component: {fileID: 5116519198747529739}
- - component: {fileID: 5116519198747529738}
- - component: {fileID: 5116519198747529737}
- m_Layer: 5
- m_Name: Title
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &5116519198747529736
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 5116519198747529743}
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children: []
- m_Father: {fileID: 2378632238049155248}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0, y: 0}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 0}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!222 &5116519198747529739
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 5116519198747529743}
- m_CullTransparentMesh: 0
---- !u!114 &5116519198747529738
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 5116519198747529743}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_RaycastTarget: 1
- m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
- m_Maskable: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_text: Kreacher's Comfort
- m_isRightToLeft: 0
- m_fontAsset: {fileID: 11400000, guid: f65e20c70af9671428dd62c7c635e417, type: 2}
- m_sharedMaterial: {fileID: 21790448164444372, guid: f65e20c70af9671428dd62c7c635e417,
- type: 2}
- m_fontSharedMaterials: []
- m_fontMaterial: {fileID: 0}
- m_fontMaterials: []
- m_fontColor32:
- serializedVersion: 2
- rgba: 4294967295
- m_fontColor: {r: 1, g: 1, b: 1, a: 1}
- m_enableVertexGradient: 0
- m_colorMode: 3
- m_fontColorGradient:
- topLeft: {r: 1, g: 1, b: 1, a: 1}
- topRight: {r: 1, g: 1, b: 1, a: 1}
- bottomLeft: {r: 1, g: 1, b: 1, a: 1}
- bottomRight: {r: 1, g: 1, b: 1, a: 1}
- m_fontColorGradientPreset: {fileID: 0}
- m_spriteAsset: {fileID: 0}
- m_tintAllSprites: 0
- m_StyleSheet: {fileID: 0}
- m_TextStyleHashCode: 0
- m_overrideHtmlColors: 0
- m_faceColor:
- serializedVersion: 2
- rgba: 4294967295
- m_fontSize: 72
- m_fontSizeBase: 72
- m_fontWeight: 400
- m_enableAutoSizing: 0
- m_fontSizeMin: 18
- m_fontSizeMax: 72
- m_fontStyle: 0
- m_HorizontalAlignment: 1
- m_VerticalAlignment: 256
- m_textAlignment: 513
- m_characterSpacing: 0
- m_wordSpacing: 0
- m_lineSpacing: 0
- m_lineSpacingMax: 0
- m_paragraphSpacing: 0
- m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
- m_wordWrappingRatios: 0.4
- m_overflowMode: 0
- m_linkedTextComponent: {fileID: 0}
- parentLinkedComponent: {fileID: 0}
- m_enableKerning: 1
- m_enableExtraPadding: 0
- checkPaddingRequired: 0
- m_isRichText: 1
- m_parseCtrlCharacters: 1
- m_isOrthographic: 1
- m_isCullingEnabled: 0
- m_horizontalMapping: 0
- m_verticalMapping: 0
- m_uvLineOffset: 0
- m_geometrySortingOrder: 0
- m_IsTextObjectScaleStatic: 0
- m_VertexBufferAutoSizeReduction: 1
- m_useMaxVisibleDescender: 1
- m_pageToDisplay: 1
- m_margin: {x: 0, y: 0, z: 0, w: 0}
- m_isUsingLegacyAnimationComponent: 0
- m_isVolumetricText: 0
- m_hasFontAssetChanged: 0
- m_baseMaterial: {fileID: 0}
- m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
---- !u!114 &5116519198747529737
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 5116519198747529743}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_IgnoreLayout: 0
- m_MinWidth: -1
- m_MinHeight: -1
- m_PreferredWidth: -1
- m_PreferredHeight: -1
- m_FlexibleWidth: 1
- m_FlexibleHeight: -1
- m_LayoutPriority: 1
diff --git a/Assets/Prefabs/UI/Properties Panel/Properties.prefab b/Assets/Prefabs/UI/Properties Panel/Properties.prefab
index ba4f78793..ab3559cc6 100644
--- a/Assets/Prefabs/UI/Properties Panel/Properties.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Properties.prefab
@@ -755,6 +755,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 8c2bf4a7080061d42a87046c37bf0c60, type: 3}
m_Name:
m_EditorClassIdentifier:
+ Spacer: {fileID: 7041706416206723741, guid: 4638d28139b15b34fac8dae056f7d5fd, type: 3}
Dropdown: {fileID: 0}
Title: {fileID: 7131821417072393581}
Section: {fileID: 1026668114703092140, guid: 3a149ea40b43fbf47b51ec165cb04e5f, type: 3}
diff --git a/Assets/Prefabs/UI/Properties Panel/Property List 1.prefab b/Assets/Prefabs/UI/Properties Panel/Property List 1.prefab
index 92ca7a91e..f776c2be8 100644
--- a/Assets/Prefabs/UI/Properties Panel/Property List 1.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Property List 1.prefab
@@ -256,6 +256,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 2544c9c8b6358c54ea58c5fb33bb48b7, type: 3}
m_Name:
m_EditorClassIdentifier:
+ Spacer: {fileID: 7041706416206723741, guid: 4638d28139b15b34fac8dae056f7d5fd, type: 3}
Dropdown: {fileID: 0}
Title: {fileID: 2088721703192714100}
Section: {fileID: 1026668114703092140, guid: 3a149ea40b43fbf47b51ec165cb04e5f, type: 3}
@@ -282,6 +283,7 @@ MonoBehaviour:
type: 3}
IncrementField: {fileID: 5486709585343280439, guid: 9c14c92a1a08b0a4fb4f6aa6f8504082,
type: 3}
+ Content: {fileID: 0}
SelectedChild: {fileID: 0}
FoldoutIcon: {fileID: 6485458701090981364}
FoldoutRotationDamping: 10
@@ -303,6 +305,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
+ m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
diff --git a/Assets/Prefabs/UI/Properties Panel/Property List.prefab b/Assets/Prefabs/UI/Properties Panel/Property List.prefab
index 0beb58de8..a9a55945f 100644
--- a/Assets/Prefabs/UI/Properties Panel/Property List.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Property List.prefab
@@ -256,6 +256,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 2544c9c8b6358c54ea58c5fb33bb48b7, type: 3}
m_Name:
m_EditorClassIdentifier:
+ Spacer: {fileID: 7041706416206723741, guid: 4638d28139b15b34fac8dae056f7d5fd, type: 3}
Dropdown: {fileID: 0}
Title: {fileID: 2088721703192714100}
Section: {fileID: 1026668114703092140, guid: 3a149ea40b43fbf47b51ec165cb04e5f, type: 3}
@@ -282,6 +283,7 @@ MonoBehaviour:
type: 3}
IncrementField: {fileID: 5486709585343280439, guid: 9c14c92a1a08b0a4fb4f6aa6f8504082,
type: 3}
+ Content: {fileID: 0}
SelectedChild: {fileID: 0}
FoldoutIcon: {fileID: 6485458701090981364}
FoldoutRotationDamping: 10
@@ -303,6 +305,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
+ m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
diff --git a/Assets/Prefabs/UI/Properties Panel/Spacer.prefab b/Assets/Prefabs/UI/Properties Panel/Spacer.prefab
new file mode 100644
index 000000000..6722fbaec
--- /dev/null
+++ b/Assets/Prefabs/UI/Properties Panel/Spacer.prefab
@@ -0,0 +1,58 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &821022499500612761
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 7041706416206723741}
+ - component: {fileID: 7134468039738757772}
+ m_Layer: 5
+ m_Name: Spacer
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &7041706416206723741
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 821022499500612761}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &7134468039738757772
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 821022499500612761}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_IgnoreLayout: 0
+ m_MinWidth: -1
+ m_MinHeight: -1
+ m_PreferredWidth: -1
+ m_PreferredHeight: 16
+ m_FlexibleWidth: 1
+ m_FlexibleHeight: -1
+ m_LayoutPriority: 1
diff --git a/Assets/Prefabs/UI/Properties Panel/Properties Panel.prefab.meta b/Assets/Prefabs/UI/Properties Panel/Spacer.prefab.meta
similarity index 74%
rename from Assets/Prefabs/UI/Properties Panel/Properties Panel.prefab.meta
rename to Assets/Prefabs/UI/Properties Panel/Spacer.prefab.meta
index 85cb42bb3..63eb64a3e 100644
--- a/Assets/Prefabs/UI/Properties Panel/Properties Panel.prefab.meta
+++ b/Assets/Prefabs/UI/Properties Panel/Spacer.prefab.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 4fca44e21a27a6d48916d2cc4b6e2df0
+guid: 4638d28139b15b34fac8dae056f7d5fd
PrefabImporter:
externalObjects: {}
userData:
diff --git a/Assets/Scenes/ARPG.unity b/Assets/Scenes/ARPG.unity
index 94136e1bb..b8557f8a0 100644
--- a/Assets/Scenes/ARPG.unity
+++ b/Assets/Scenes/ARPG.unity
@@ -810,10 +810,10 @@ RectTransform:
m_Father: {fileID: 1783772015}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0, y: 0}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 0}
+ m_AnchorMin: {x: 0, y: 1}
+ m_AnchorMax: {x: 0, y: 1}
+ m_AnchoredPosition: {x: 527.51, y: -40}
+ m_SizeDelta: {x: 329.91, y: 56}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &101395091
MonoBehaviour:
@@ -9514,6 +9514,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 83488dc4b5e58cd40b4d1c4ee98207b5, type: 3}
m_Name:
m_EditorClassIdentifier:
+ Spacer: {fileID: 0}
Dropdown: {fileID: 178733681}
Title: {fileID: 738229278}
Section: {fileID: 1026668114703092140, guid: 3a149ea40b43fbf47b51ec165cb04e5f, type: 3}
@@ -9671,12 +9672,12 @@ PrefabInstance:
- target: {fileID: 2279630452592903581, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchorMax.x
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2279630452592903581, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchorMax.y
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2279630452592903581, guid: aac073da6df367d499834c926930dd84,
type: 3}
@@ -9686,82 +9687,82 @@ PrefabInstance:
- target: {fileID: 2279630452912159027, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchorMax.x
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2279630452912159027, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchorMax.y
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2279630452951644481, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchorMax.x
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2279630452951644481, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchorMax.y
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2279630452951644481, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_SizeDelta.x
- value: 0
+ value: -10
objectReference: {fileID: 0}
- target: {fileID: 2279630452951644481, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_SizeDelta.y
- value: 0
+ value: -10
objectReference: {fileID: 0}
- target: {fileID: 2279630453233804081, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchorMax.x
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2279630453233804081, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_SizeDelta.x
- value: 0
+ value: -10
objectReference: {fileID: 0}
- target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchorMax.y
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchorMin.y
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_SizeDelta.x
- value: 0
+ value: 107.76
objectReference: {fileID: 0}
- target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_SizeDelta.y
- value: 0
+ value: 24
objectReference: {fileID: 0}
- target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchoredPosition.x
- value: 0
+ value: 210.12
objectReference: {fileID: 0}
- target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchoredPosition.y
- value: 0
+ value: -8
objectReference: {fileID: 0}
- target: {fileID: 2279630453710142155, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_SizeDelta.x
- value: 0
+ value: -396
objectReference: {fileID: 0}
- target: {fileID: 2279630453710142155, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_SizeDelta.y
- value: 0
+ value: -545
objectReference: {fileID: 0}
- target: {fileID: 2279630453886260052, guid: aac073da6df367d499834c926930dd84,
type: 3}
@@ -9912,72 +9913,72 @@ PrefabInstance:
- target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchorMax.y
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchorMin.y
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_SizeDelta.x
- value: 0
+ value: 32
objectReference: {fileID: 0}
- target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_SizeDelta.y
- value: 0
+ value: 32
objectReference: {fileID: 0}
- target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchoredPosition.x
- value: 0
+ value: 72
objectReference: {fileID: 0}
- target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchoredPosition.y
- value: 0
+ value: -24
objectReference: {fileID: 0}
- target: {fileID: 2279630454002795611, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchorMax.y
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2279630454002795611, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_SizeDelta.y
- value: 0
+ value: -10
objectReference: {fileID: 0}
- target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchorMax.y
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchorMin.y
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_SizeDelta.x
- value: 0
+ value: 22
objectReference: {fileID: 0}
- target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_SizeDelta.y
- value: 0
+ value: 24
objectReference: {fileID: 0}
- target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchoredPosition.x
- value: 0
+ value: 336.88
objectReference: {fileID: 0}
- target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchoredPosition.y
- value: 0
+ value: -20
objectReference: {fileID: 0}
- target: {fileID: 4075091371340814903, guid: aac073da6df367d499834c926930dd84,
type: 3}
@@ -10002,7 +10003,7 @@ PrefabInstance:
- target: {fileID: 4397116930423727094, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_SizeDelta.y
- value: 0
+ value: 16
objectReference: {fileID: 0}
- target: {fileID: 4397116930423727094, guid: aac073da6df367d499834c926930dd84,
type: 3}
@@ -10022,7 +10023,7 @@ PrefabInstance:
- target: {fileID: 8871154407653395989, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_SizeDelta.y
- value: 0
+ value: -2
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: aac073da6df367d499834c926930dd84, type: 3}
@@ -13888,10 +13889,10 @@ RectTransform:
m_Father: {fileID: 1783772015}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0, y: 0}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 0}
+ m_AnchorMin: {x: 0, y: 1}
+ m_AnchorMax: {x: 0, y: 1}
+ m_AnchoredPosition: {x: 960.13495, y: -40}
+ m_SizeDelta: {x: 146.84, y: 56}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &931657852
MonoBehaviour:
@@ -19867,10 +19868,10 @@ RectTransform:
m_Father: {fileID: 1783772015}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0, y: 0}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 0}
+ m_AnchorMin: {x: 0, y: 1}
+ m_AnchorMax: {x: 0, y: 1}
+ m_AnchoredPosition: {x: 1145.4999, y: -40}
+ m_SizeDelta: {x: 223.89, y: 56}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1399108419
MonoBehaviour:
@@ -20912,10 +20913,10 @@ RectTransform:
m_Father: {fileID: 1783772015}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0, y: 0}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 0}
+ m_AnchorMin: {x: 0, y: 1}
+ m_AnchorMax: {x: 0, y: 1}
+ m_AnchoredPosition: {x: 789.58997, y: -40}
+ m_SizeDelta: {x: 194.25, y: 56}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1464157086
MonoBehaviour:
@@ -22116,7 +22117,7 @@ PrefabInstance:
- target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e,
type: 3}
propertyPath: m_AnchoredPosition.x
- value: 0
+ value: 55.675
objectReference: {fileID: 0}
- target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e,
type: 3}
@@ -23285,7 +23286,7 @@ PrefabInstance:
- target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e,
type: 3}
propertyPath: m_AnchoredPosition.x
- value: 0
+ value: 60.98
objectReference: {fileID: 0}
- target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e,
type: 3}
@@ -24689,7 +24690,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
- m_IsActive: 1
+ m_IsActive: 0
--- !u!224 &1726632265
RectTransform:
m_ObjectHideFlags: 0
@@ -27494,7 +27495,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
- m_IsActive: 1
+ m_IsActive: 0
--- !u!224 &1997243493
RectTransform:
m_ObjectHideFlags: 0
@@ -29685,17 +29686,17 @@ PrefabInstance:
- target: {fileID: 257019179550429270, guid: 426f9dcb510530d4dbfa678c9f727ec1,
type: 3}
propertyPath: m_AnchorMax.x
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 257019179550429270, guid: 426f9dcb510530d4dbfa678c9f727ec1,
type: 3}
propertyPath: m_AnchorMax.y
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 257019179596293679, guid: 426f9dcb510530d4dbfa678c9f727ec1,
type: 3}
propertyPath: m_SizeDelta.y
- value: 0
+ value: -583
objectReference: {fileID: 0}
- target: {fileID: 257019179596293679, guid: 426f9dcb510530d4dbfa678c9f727ec1,
type: 3}
@@ -29705,17 +29706,17 @@ PrefabInstance:
- target: {fileID: 257019180101986795, guid: 426f9dcb510530d4dbfa678c9f727ec1,
type: 3}
propertyPath: m_AnchorMax.x
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 257019180101986795, guid: 426f9dcb510530d4dbfa678c9f727ec1,
type: 3}
propertyPath: m_AnchorMax.y
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 257019180101986795, guid: 426f9dcb510530d4dbfa678c9f727ec1,
type: 3}
propertyPath: m_SizeDelta.x
- value: 0
+ value: -7
objectReference: {fileID: 0}
- target: {fileID: 7131821417165215475, guid: 426f9dcb510530d4dbfa678c9f727ec1,
type: 3}
@@ -29975,12 +29976,12 @@ PrefabInstance:
- target: {fileID: 2279630452592903581, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchorMax.x
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2279630452592903581, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchorMax.y
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2279630452592903581, guid: aac073da6df367d499834c926930dd84,
type: 3}
@@ -29990,82 +29991,82 @@ PrefabInstance:
- target: {fileID: 2279630452912159027, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchorMax.x
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2279630452912159027, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchorMax.y
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2279630452951644481, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchorMax.x
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2279630452951644481, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchorMax.y
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2279630452951644481, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_SizeDelta.x
- value: 0
+ value: -10
objectReference: {fileID: 0}
- target: {fileID: 2279630452951644481, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_SizeDelta.y
- value: 0
+ value: -10
objectReference: {fileID: 0}
- target: {fileID: 2279630453233804081, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchorMax.x
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2279630453233804081, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_SizeDelta.x
- value: 0
+ value: -10
objectReference: {fileID: 0}
- target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchorMax.y
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchorMin.y
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_SizeDelta.x
- value: 0
+ value: 107.76
objectReference: {fileID: 0}
- target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_SizeDelta.y
- value: 0
+ value: 24
objectReference: {fileID: 0}
- target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchoredPosition.x
- value: 0
+ value: 210.12
objectReference: {fileID: 0}
- target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchoredPosition.y
- value: 0
+ value: -8
objectReference: {fileID: 0}
- target: {fileID: 2279630453710142155, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_SizeDelta.x
- value: 0
+ value: -396
objectReference: {fileID: 0}
- target: {fileID: 2279630453710142155, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_SizeDelta.y
- value: 0
+ value: -545
objectReference: {fileID: 0}
- target: {fileID: 2279630453886260052, guid: aac073da6df367d499834c926930dd84,
type: 3}
@@ -30201,72 +30202,72 @@ PrefabInstance:
- target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchorMax.y
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchorMin.y
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_SizeDelta.x
- value: 0
+ value: 32
objectReference: {fileID: 0}
- target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_SizeDelta.y
- value: 0
+ value: 32
objectReference: {fileID: 0}
- target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchoredPosition.x
- value: 0
+ value: 72
objectReference: {fileID: 0}
- target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchoredPosition.y
- value: 0
+ value: -24
objectReference: {fileID: 0}
- target: {fileID: 2279630454002795611, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchorMax.y
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2279630454002795611, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_SizeDelta.y
- value: 0
+ value: -10
objectReference: {fileID: 0}
- target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchorMax.y
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchorMin.y
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_SizeDelta.x
- value: 0
+ value: 22
objectReference: {fileID: 0}
- target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_SizeDelta.y
- value: 0
+ value: 24
objectReference: {fileID: 0}
- target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchoredPosition.x
- value: 0
+ value: 336.88
objectReference: {fileID: 0}
- target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_AnchoredPosition.y
- value: 0
+ value: -20
objectReference: {fileID: 0}
- target: {fileID: 4075091371340814903, guid: aac073da6df367d499834c926930dd84,
type: 3}
@@ -30296,7 +30297,7 @@ PrefabInstance:
- target: {fileID: 4397116930423727094, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_SizeDelta.y
- value: 0
+ value: 16
objectReference: {fileID: 0}
- target: {fileID: 4397116930423727094, guid: aac073da6df367d499834c926930dd84,
type: 3}
@@ -30316,7 +30317,7 @@ PrefabInstance:
- target: {fileID: 8871154407653395989, guid: aac073da6df367d499834c926930dd84,
type: 3}
propertyPath: m_SizeDelta.y
- value: 0
+ value: -2
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: aac073da6df367d499834c926930dd84, type: 3}
@@ -33721,6 +33722,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 8c2bf4a7080061d42a87046c37bf0c60, type: 3}
m_Name:
m_EditorClassIdentifier:
+ Spacer: {fileID: 0}
Dropdown: {fileID: 178733681}
Title: {fileID: 5496444666933891210}
Section: {fileID: 1026668114703092140, guid: 3a149ea40b43fbf47b51ec165cb04e5f, type: 3}
diff --git a/Assets/Scenes/Main Menu.unity b/Assets/Scenes/Main Menu.unity
index 17e2927a7..36f734ef9 100644
--- a/Assets/Scenes/Main Menu.unity
+++ b/Assets/Scenes/Main Menu.unity
@@ -802,8 +802,8 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 741153267}
- m_LocalRotation: {x: 0.015506903, y: 0.9502416, z: -0.30741313, w: 0.047933225}
- m_LocalPosition: {x: -117.51999, y: -77.08743, z: 149.09026}
+ m_LocalRotation: {x: 0.0155069195, y: 0.9502416, z: -0.30741316, w: 0.047933277}
+ m_LocalPosition: {x: -117.52002, y: -77.087425, z: 149.09026}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 412917866}
@@ -1220,8 +1220,8 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 965376321}
- m_LocalRotation: {x: 0.015506903, y: 0.9502416, z: -0.30741313, w: 0.047933225}
- m_LocalPosition: {x: -117.51999, y: -77.08743, z: 149.09026}
+ m_LocalRotation: {x: 0.0155069195, y: 0.9502416, z: -0.30741316, w: 0.047933277}
+ m_LocalPosition: {x: -117.52002, y: -77.087425, z: 149.09026}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
@@ -2159,6 +2159,11 @@ PrefabInstance:
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
+ - target: {fileID: 350889891057474423, guid: 3d8d9cbf10b12214e98891c1f03c1e99,
+ type: 3}
+ propertyPath: m_AnchoredPosition.y
+ value: 0
+ objectReference: {fileID: 0}
- target: {fileID: 350889891632477145, guid: 3d8d9cbf10b12214e98891c1f03c1e99,
type: 3}
propertyPath: m_AnchorMax.y
@@ -2307,7 +2312,7 @@ PrefabInstance:
- target: {fileID: 3664209305474245377, guid: 3d8d9cbf10b12214e98891c1f03c1e99,
type: 3}
propertyPath: m_AnchoredPosition.x
- value: 0
+ value: 60.98
objectReference: {fileID: 0}
- target: {fileID: 3664209305474245377, guid: 3d8d9cbf10b12214e98891c1f03c1e99,
type: 3}
@@ -2332,7 +2337,7 @@ PrefabInstance:
- target: {fileID: 3664209306888449100, guid: 3d8d9cbf10b12214e98891c1f03c1e99,
type: 3}
propertyPath: m_AnchoredPosition.x
- value: 0
+ value: 55.675
objectReference: {fileID: 0}
- target: {fileID: 3664209306888449100, guid: 3d8d9cbf10b12214e98891c1f03c1e99,
type: 3}
diff --git a/Assets/Scripts/Gameplay/ActionGameManager.cs b/Assets/Scripts/Gameplay/ActionGameManager.cs
index 0fe6f02c8..8602ab7ea 100644
--- a/Assets/Scripts/Gameplay/ActionGameManager.cs
+++ b/Assets/Scripts/Gameplay/ActionGameManager.cs
@@ -26,6 +26,7 @@ using Random = UnityEngine.Random;
public class ActionGameManager : MonoBehaviour
{
+ public static ActionGameManager Instance { get; private set; }
private static DirectoryInfo _gameDataDirectory;
public static DirectoryInfo GameDataDirectory
{
@@ -182,6 +183,7 @@ public class ActionGameManager : MonoBehaviour
void Start()
{
+ Instance = this;
EntityInstance.EffectManagerParent = EffectManagerParent;
AkSoundEngine.RegisterGameObj(gameObject);
ConsoleController.MessageReceiver = this;
@@ -996,11 +998,16 @@ public class ActionGameManager : MonoBehaviour
{
indicator.Value.gameObject.SetActive(indicator.Key!=CurrentEntity.Target.Value);
indicator.Value.Place.Target = indicator.Key.Position;
- indicator.Value.Fill.fillAmount =
- saturate(indicator.Key.EntityInfoGathered[CurrentEntity] / Settings.GameplaySettings.TargetDetectionInfoThreshold);
- indicator.Value.Fill.enabled =
- !(indicator.Key.EntityInfoGathered[CurrentEntity] > Settings.GameplaySettings.TargetDetectionInfoThreshold) ||
- sin(TargetSpottedBlinkFrequency * Time.time) + TargetSpottedBlinkOffset > 0;
+ if (!indicator.Key.Active)
+ indicator.Value.Fill.enabled = false;
+ else
+ {
+ indicator.Value.Fill.fillAmount =
+ saturate(indicator.Key.EntityInfoGathered[CurrentEntity] / Settings.GameplaySettings.TargetDetectionInfoThreshold);
+ indicator.Value.Fill.enabled =
+ !(indicator.Key.EntityInfoGathered[CurrentEntity] > Settings.GameplaySettings.TargetDetectionInfoThreshold) ||
+ sin(TargetSpottedBlinkFrequency * Time.time) + TargetSpottedBlinkOffset > 0;
+ }
}
var look = Input.Player.Look.ReadValue();
_entityYawPitch = float2(_entityYawPitch.x + look.x * Sensitivity.x, clamp(_entityYawPitch.y + look.y * Sensitivity.y, -.45f * PI, .45f * PI));
diff --git a/Assets/Scripts/Gameplay/ShipInstance.cs b/Assets/Scripts/Gameplay/ShipInstance.cs
index 956fa85f9..8fbd7189f 100644
--- a/Assets/Scripts/Gameplay/ShipInstance.cs
+++ b/Assets/Scripts/Gameplay/ShipInstance.cs
@@ -33,7 +33,7 @@ public class ShipInstance : EntityInstance
var particles = Instantiate(UnityHelpers.LoadAsset(effectData.ParticlesPrefab), transform, false);
var particlesShape = particles.shape;
var thrusterHardpoint = ThrusterHardpoints
- .FirstOrDefault(t => t.name == thruster.Entity.Hardpoints[thruster.Item.Position.x, thruster.Item.Position.y].Transform);
+ .FirstOrDefault(t => t.name == ship.Hardpoints[thruster.Item.Position.x, thruster.Item.Position.y].Transform);
particlesShape.meshRenderer = thrusterHardpoint?.Emitter;
// if (!string.IsNullOrEmpty(thruster.Item.Data.SoundEffectTrigger) && thrusterHardpoint != null)
// {
diff --git a/Assets/Scripts/ServerShared/AetheriaMath.cs b/Assets/Scripts/ServerShared/AetheriaMath.cs
index 72bc642a1..0080b3a80 100644
--- a/Assets/Scripts/ServerShared/AetheriaMath.cs
+++ b/Assets/Scripts/ServerShared/AetheriaMath.cs
@@ -7,6 +7,16 @@ public static class AetheriaMath
{
public const float Deg2Rad = 0.01745329f;
public const float Rad2Deg = 57.29578f;
+
+ public static float Decay(float source, float lambda, float dt)
+ {
+ return source * exp(-lambda * dt);
+ }
+
+ public static float Damp(float a, float b, float lambda, float dt)
+ {
+ return lerp(a, b, 1 - exp(-lambda * dt));
+ }
//first-order intercept using absolute target position
public static float3 FirstOrderIntercept
diff --git a/Assets/Scripts/ServerShared/Behaviors/AutoWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/AutoWeapon.cs
index 99ecf3097..1d744209b 100644
--- a/Assets/Scripts/ServerShared/Behaviors/AutoWeapon.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/AutoWeapon.cs
@@ -9,16 +9,16 @@ using static Unity.Mathematics.math;
[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable]
public class AutoWeaponData : InstantWeaponData
{
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
+ public override IBehavior CreateInstance(EquippedItem item)
{
- return new AutoWeapon(context, this, entity, item);
+ return new AutoWeapon(this, item);
}
}
public class AutoWeapon : InstantWeapon
{
- public AutoWeapon(ItemManager context, InstantWeaponData data, Entity entity, EquippedItem item) : base(context, data, entity, item)
+ public AutoWeapon(InstantWeaponData data, EquippedItem item) : base(data, item)
{
}
diff --git a/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs b/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs
index 225a9e0d1..d79d9c3fd 100644
--- a/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs
@@ -102,7 +102,7 @@ public abstract class PersistentBehaviorData
Union(16, typeof(HeatData)),
// Union(17, typeof(HitscanData)),
Union(18, typeof(ItemUsageData)),
- Union(19, typeof(RadianceData)),
+ //Union(19, typeof(RadianceData)),
Union(20, typeof(SwitchData)),
Union(21, typeof(TriggerData)),
Union(22, typeof(VisibilityData)),
@@ -128,7 +128,7 @@ public abstract class BehaviorData
[Inspectable, JsonProperty("group"), Key(0)]
public int Group;
- public abstract IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item);
+ public abstract IBehavior CreateInstance(EquippedItem item);
public override string ToString()
{
diff --git a/Assets/Scripts/ServerShared/Behaviors/Capacitor.cs b/Assets/Scripts/ServerShared/Behaviors/Capacitor.cs
index 4a17e5481..a75a53105 100644
--- a/Assets/Scripts/ServerShared/Behaviors/Capacitor.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/Capacitor.cs
@@ -17,9 +17,9 @@ public class CapacitorData : BehaviorData
[Inspectable, JsonProperty("efficiency"), Key(2), RuntimeInspectable]
public PerformanceStat Efficiency = new PerformanceStat();
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
+ public override IBehavior CreateInstance(EquippedItem item)
{
- return new Capacitor(context, this, entity, item);
+ return new Capacitor(this, item);
}
}
@@ -27,9 +27,7 @@ public class Capacitor : IBehavior
{
private CapacitorData _data;
- public Entity Entity { get; }
public EquippedItem Item { get; }
- public ItemManager Context { get; }
public BehaviorData Data => _data;
@@ -43,11 +41,9 @@ public class Capacitor : IBehavior
Item.AddHeat(abs(charge) * (1-Efficiency));
}
- public Capacitor(ItemManager context, CapacitorData data, Entity entity, EquippedItem item)
+ public Capacitor(CapacitorData data, EquippedItem item)
{
- Context = context;
_data = data;
- Entity = entity;
Item = item;
}
diff --git a/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs
index 912e20053..8ddd997e9 100644
--- a/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs
@@ -45,9 +45,9 @@ public class ChargedWeaponData : InstantWeaponData
[Inspectable, JsonProperty("chargeHeatMul"), Key(32)]
public float ChargeFiringHeatMultiplier = 1;
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
+ public override IBehavior CreateInstance(EquippedItem item)
{
- return new ChargedWeapon(context, this, entity, item);
+ return new ChargedWeapon(this, item);
}
}
@@ -93,7 +93,7 @@ public class ChargedWeapon : InstantWeapon, IEventBehavior
get => _charge;
}
- public ChargedWeapon(ItemManager context, ChargedWeaponData data, Entity entity, EquippedItem item) : base(context, data, entity, item)
+ public ChargedWeapon(ChargedWeaponData data, EquippedItem item) : base(data, item)
{
_data = data;
}
diff --git a/Assets/Scripts/ServerShared/Behaviors/Cockpit.cs b/Assets/Scripts/ServerShared/Behaviors/Cockpit.cs
index abf21ceca..528e664d9 100644
--- a/Assets/Scripts/ServerShared/Behaviors/Cockpit.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/Cockpit.cs
@@ -11,9 +11,9 @@ using static Unity.Mathematics.math;
[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable]
public class CockpitData : BehaviorData
{
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
+ public override IBehavior CreateInstance(EquippedItem item)
{
- return new Cockpit(context, this, entity, item);
+ return new Cockpit(this, item);
}
}
@@ -21,18 +21,14 @@ public class Cockpit : IBehavior
{
private CockpitData _data;
- public Entity Entity { get; }
public EquippedItem Item { get; }
- public ItemManager Context { get; }
public BehaviorData Data => _data;
- public Cockpit(ItemManager context, CockpitData data, Entity entity, EquippedItem item)
+ public Cockpit(CockpitData data, EquippedItem item)
{
- Context = context;
_data = data;
- Entity = entity;
Item = item;
}
diff --git a/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs
index b80be7845..2300c5d32 100644
--- a/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs
@@ -14,9 +14,9 @@ public class ConstantWeaponData : WeaponData
[InspectablePrefab, JsonProperty("ammoInterval"), Key(17)]
public float AmmoInterval = 1;
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
+ public override IBehavior CreateInstance(EquippedItem item)
{
- return new ConstantWeapon(context, this, entity, item);
+ return new ConstantWeapon(this, item);
}
}
@@ -57,7 +57,7 @@ public class ConstantWeapon : Weapon, IProgressBehavior, IEventBehavior
OnStopFiring = null;
}
- public ConstantWeapon(ItemManager context, ConstantWeaponData data, Entity entity, EquippedItem item) : base(context, data, entity, item)
+ public ConstantWeapon(ConstantWeaponData data, EquippedItem item) : base(data, item)
{
_data = data;
}
@@ -67,7 +67,7 @@ public class ConstantWeapon : Weapon, IProgressBehavior, IEventBehavior
base.Execute(delta);
if (_firing)
{
- if (!Entity.TryConsumeEnergy(Item.Evaluate(_data.Energy) * delta))
+ if (!Item.Entity.TryConsumeEnergy(Item.Evaluate(_data.Energy) * delta))
{
_firing = false;
OnStopFiring?.Invoke();
@@ -93,7 +93,7 @@ public class ConstantWeapon : Weapon, IProgressBehavior, IEventBehavior
if (_data.MagazineSize > 1 && _ammo > 0) _ammo--;
else
{
- var cargo = Entity.FindItemInCargo(_data.AmmoType);
+ var cargo = Item.Entity.FindItemInCargo(_data.AmmoType);
if (cargo != null)
{
var item = cargo.ItemsOfType[_data.AmmoType][0];
@@ -117,7 +117,7 @@ public class ConstantWeapon : Weapon, IProgressBehavior, IEventBehavior
Item.EquippableItem.Durability -= Item.Wear * delta;
Item.AddHeat(Item.Evaluate(_data.Heat) * delta);
- Entity.VisibilitySources[this] = Item.Evaluate(_data.Visibility);
+ Item.Entity.VisibilitySources[this] = Item.Evaluate(_data.Visibility);
}
return true;
}
diff --git a/Assets/Scripts/ServerShared/Behaviors/Cooldown.cs b/Assets/Scripts/ServerShared/Behaviors/Cooldown.cs
index 6b82be8b5..0b63b2f79 100644
--- a/Assets/Scripts/ServerShared/Behaviors/Cooldown.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/Cooldown.cs
@@ -15,9 +15,9 @@ public class CooldownData : BehaviorData
[Inspectable, JsonProperty("cooldown"), Key(1), RuntimeInspectable]
public PerformanceStat Cooldown = new PerformanceStat();
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
+ public override IBehavior CreateInstance(EquippedItem item)
{
- return new Cooldown(context, this, entity, item);
+ return new Cooldown(this, item);
}
}
@@ -26,20 +26,16 @@ public class Cooldown : IBehavior, IAlwaysUpdatedBehavior, IProgressBehavior
private CooldownData _data;
public BehaviorData Data => _data;
- private Entity Entity { get; }
private EquippedItem Item { get; }
- private ItemManager Context { get; }
private float _cooldown; // Normalized
public float Progress => saturate(_cooldown);
- public Cooldown(ItemManager context, CooldownData data, Entity entity, EquippedItem item)
+ public Cooldown(CooldownData data, EquippedItem item)
{
_data = data;
- Entity = entity;
Item = item;
- Context = context;
}
public bool Execute(float delta)
diff --git a/Assets/Scripts/ServerShared/Behaviors/EnergyDraw.cs b/Assets/Scripts/ServerShared/Behaviors/EnergyDraw.cs
index ea70804c9..909c7e9d1 100644
--- a/Assets/Scripts/ServerShared/Behaviors/EnergyDraw.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/EnergyDraw.cs
@@ -16,9 +16,9 @@ public class EnergyDrawData : BehaviorData
[Inspectable, JsonProperty("perSecond"), Key(2)]
public bool PerSecond;
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
+ public override IBehavior CreateInstance(EquippedItem item)
{
- return new EnergyDraw(context, this, entity, item);
+ return new EnergyDraw(this, item);
}
}
@@ -26,22 +26,18 @@ public class EnergyDraw : IBehavior
{
private EnergyDrawData _data;
- private Entity Entity { get; }
private EquippedItem Item { get; }
- private ItemManager Context { get; }
public BehaviorData Data => _data;
- public EnergyDraw(ItemManager context, EnergyDrawData data, Entity entity, EquippedItem item)
+ public EnergyDraw(EnergyDrawData data, EquippedItem item)
{
_data = data;
- Entity = entity;
Item = item;
- Context = context;
}
public bool Execute(float delta)
{
- return Entity.TryConsumeEnergy(Item.Evaluate(_data.EnergyDraw) * (_data.PerSecond ? delta : 1));
+ return Item.Entity.TryConsumeEnergy(Item.Evaluate(_data.EnergyDraw) * (_data.PerSecond ? delta : 1));
}
}
\ No newline at end of file
diff --git a/Assets/Scripts/ServerShared/Behaviors/Heat.cs b/Assets/Scripts/ServerShared/Behaviors/Heat.cs
index 2d4478434..7bcd353bb 100644
--- a/Assets/Scripts/ServerShared/Behaviors/Heat.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/Heat.cs
@@ -16,9 +16,9 @@ public class HeatData : BehaviorData
[Inspectable, JsonProperty("perSecond"), Key(2)]
public bool PerSecond;
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
+ public override IBehavior CreateInstance(EquippedItem item)
{
- return new Heat(context, this, entity, item);
+ return new Heat(this, item);
}
}
@@ -26,18 +26,14 @@ public class Heat : IBehavior
{
private HeatData _data;
- private Entity Entity { get; }
private EquippedItem Item { get; }
- private ItemManager Context { get; }
public BehaviorData Data => _data;
- public Heat(ItemManager context, HeatData data, Entity entity, EquippedItem item)
+ public Heat(HeatData data, EquippedItem item)
{
_data = data;
- Entity = entity;
Item = item;
- Context = context;
}
public bool Execute(float delta)
diff --git a/Assets/Scripts/ServerShared/Behaviors/HeatStorage.cs b/Assets/Scripts/ServerShared/Behaviors/HeatStorage.cs
index 2d579ffee..ba19424f2 100644
--- a/Assets/Scripts/ServerShared/Behaviors/HeatStorage.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/HeatStorage.cs
@@ -11,9 +11,9 @@ using static Unity.Mathematics.math;
[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable]
public class HeatStorageData : BehaviorData
{
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
+ public override IBehavior CreateInstance(EquippedItem item)
{
- return new HeatStorage(context, this, entity, item);
+ return new HeatStorage(this, item);
}
}
@@ -21,17 +21,13 @@ public class HeatStorage : IBehavior
{
private HeatStorageData _data;
- public Entity Entity { get; }
public EquippedItem Item { get; }
- public ItemManager Context { get; }
public BehaviorData Data => _data;
- public HeatStorage(ItemManager context, HeatStorageData data, Entity entity, EquippedItem item)
+ public HeatStorage(HeatStorageData data, EquippedItem item)
{
- Context = context;
_data = data;
- Entity = entity;
Item = item;
}
diff --git a/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs
index f0c36fa33..203ca440e 100644
--- a/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs
@@ -21,9 +21,9 @@ public class InstantWeaponData : WeaponData
[InspectablePrefab, JsonProperty("ammoInterval"), Key(20)]
public bool SingleAmmoBurst;
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
+ public override IBehavior CreateInstance(EquippedItem item)
{
- return new InstantWeapon(context, this, entity, item);
+ return new InstantWeapon(this, item);
}
}
@@ -71,7 +71,7 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior
OnFire = null;
}
- public InstantWeapon(ItemManager context, InstantWeaponData data, Entity entity, EquippedItem item) : base(context,data,entity,item)
+ public InstantWeapon(InstantWeaponData data, EquippedItem item) : base(data, item)
{
_data = data;
_ammo = data.MagazineSize;
@@ -81,7 +81,7 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior
{
// If 1 ammo is consumed per burst, perform ammo and energy consumption here
// UseAmmo returns false when triggering reload; cancel firing if that is the case
- if(_data.SingleAmmoBurst && (!Entity.TryConsumeEnergy(Energy) || !UseAmmo())) return;
+ if(_data.SingleAmmoBurst && (!Item.Entity.TryConsumeEnergy(Energy) || !UseAmmo())) return;
_burstRemaining = (int) BurstCount;
_burstInterval = BurstTime / _burstRemaining;
@@ -115,7 +115,7 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior
var hasAmmo = true;
if (_data.AmmoType != Guid.Empty)
{
- var cargo = Entity.FindItemInCargo(_data.AmmoType);
+ var cargo = Item.Entity.FindItemInCargo(_data.AmmoType);
if (cargo != null)
{
var item = cargo.ItemsOfType[_data.AmmoType][0];
@@ -160,7 +160,7 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior
{
// If multiple ammo is consumed per burst, perform ammo and energy consumption here
// UseAmmo returns false when triggering reload; cancel firing if that is the case
- if (!_data.SingleAmmoBurst && (!Entity.TryConsumeEnergy(Energy) || !UseAmmo()))
+ if (!_data.SingleAmmoBurst && (!Item.Entity.TryConsumeEnergy(Energy) || !UseAmmo()))
{
_burstRemaining = 0;
return false;
@@ -171,7 +171,7 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior
OnFire?.Invoke();
Item.EquippableItem.Durability -= Item.Wear;
Item.AddHeat(Heat);
- Entity.VisibilitySources[this] = Visibility;
+ Item.Entity.VisibilitySources[this] = Visibility;
}
return true;
}
diff --git a/Assets/Scripts/ServerShared/Behaviors/ItemUsage.cs b/Assets/Scripts/ServerShared/Behaviors/ItemUsage.cs
index 7087f3241..8c29be978 100644
--- a/Assets/Scripts/ServerShared/Behaviors/ItemUsage.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/ItemUsage.cs
@@ -13,9 +13,9 @@ public class ItemUsageData : BehaviorData
[InspectableDatabaseLink(typeof(SimpleCommodityData)), JsonProperty("item"), Key(1), RuntimeInspectable]
public Guid Item;
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
+ public override IBehavior CreateInstance(EquippedItem item)
{
- return new ItemUsage(context, this, entity, item);
+ return new ItemUsage(this, item);
}
}
@@ -23,23 +23,19 @@ public class ItemUsage : IBehavior
{
private ItemUsageData _data;
- private Entity Entity { get; }
private EquippedItem Item { get; }
- private ItemManager Context { get; }
public BehaviorData Data => _data;
- public ItemUsage(ItemManager context, ItemUsageData data, Entity entity, EquippedItem item)
+ public ItemUsage(ItemUsageData data, EquippedItem item)
{
_data = data;
- Entity = entity;
Item = item;
- Context = context;
}
public bool Execute(float delta)
{
- var cargo = Entity.FindItemInCargo(_data.Item);
+ var cargo = Item.Entity.FindItemInCargo(_data.Item);
if (cargo == null) return false;
var item = cargo.ItemsOfType[_data.Item][0];
diff --git a/Assets/Scripts/ServerShared/Behaviors/Launcher.cs b/Assets/Scripts/ServerShared/Behaviors/Launcher.cs
index 557b94507..f5aca298e 100644
--- a/Assets/Scripts/ServerShared/Behaviors/Launcher.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/Launcher.cs
@@ -27,9 +27,9 @@ public class LauncherData : LockWeaponData
[Inspectable, JsonProperty("missileSpeed"), Key(31), RuntimeInspectable]
public PerformanceStat MissileVelocity = new PerformanceStat();
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
+ public override IBehavior CreateInstance(EquippedItem item)
{
- return new LockWeapon(context, this, entity, item);
+ return new LockWeapon(this, item);
}
}
@@ -54,8 +54,8 @@ public class GuidedWeaponData : InstantWeaponData
[Inspectable, JsonProperty("missileSpeed"), Key(26), RuntimeInspectable]
public PerformanceStat MissileVelocity = new PerformanceStat();
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
+ public override IBehavior CreateInstance(EquippedItem item)
{
- return new InstantWeapon(context, this, entity, item);
+ return new InstantWeapon(this, item);
}
}
\ No newline at end of file
diff --git a/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs
index c20f94c78..46a6bc5fa 100644
--- a/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs
@@ -24,9 +24,9 @@ public class LockWeaponData : InstantWeaponData
[Inspectable, JsonProperty("decay"), Key(25)]
public PerformanceStat Decay = new PerformanceStat();
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
+ public override IBehavior CreateInstance(EquippedItem item)
{
- return new LockWeapon(context, this, entity, item);
+ return new LockWeapon(this, item);
}
}
@@ -49,27 +49,27 @@ public class LockWeapon : InstantWeapon
public override float Progress => saturate(_cooldown > 0 ? _cooldown : _lock);
- public override bool CanFire => base.CanFire && _lock > .99f && Entity.TargetRange > MinRange && Entity.TargetRange < Range;
+ public override bool CanFire => base.CanFire && _lock > .99f && Item.Entity.TargetRange > MinRange && Item.Entity.TargetRange < Range;
public float Lock
{
get => saturate(_lock);
}
- public LockWeapon(ItemManager context, LockWeaponData data, Entity entity, EquippedItem item) : base(context, data, entity, item)
+ public LockWeapon(LockWeaponData data, EquippedItem item) : base(data, item)
{
_data = data;
}
public override bool Execute(float delta)
{
- if (_target != Entity.Target.Value)
+ if (_target != Item.Entity.Target.Value)
{
_lock = 0;
- _target = Entity.Target.Value;
+ _target = Item.Entity.Target.Value;
}
- if (Entity.Target.Value != null && Entity.Target.Value.IsHostileTo(Entity))
+ if (Item.Entity.Target.Value != null && Item.Entity.Target.Value.IsHostileTo(Item.Entity))
{
LockSpeed = Item.Evaluate(_data.LockSpeed);
SensorImpact = Item.Evaluate(_data.SensorImpact);
@@ -77,11 +77,11 @@ public class LockWeapon : InstantWeapon
DirectionImpact = Item.Evaluate(_data.DirectionImpact);
Decay = Item.Evaluate(_data.Decay);
- var degrees = acos(dot(normalize(Entity.Target.Value.Position - Entity.Position), normalize(Entity.LookDirection))) * 57.2958f;
+ var degrees = acos(dot(normalize(Item.Entity.Target.Value.Position - Item.Entity.Position), normalize(Item.Entity.LookDirection))) * 57.2958f;
if (degrees < LockAngle)
{
var lerp = 1 - unlerp(0, 90, degrees);
- _lock = saturate(_lock + pow(lerp, DirectionImpact) * delta * LockSpeed * pow(Entity.EntityInfoGathered[Entity.Target.Value], SensorImpact));
+ _lock = saturate(_lock + pow(lerp, DirectionImpact) * delta * LockSpeed * pow(Item.Entity.EntityInfoGathered[Item.Entity.Target.Value], SensorImpact));
}
else _lock = saturate(_lock - delta * Decay);
}
diff --git a/Assets/Scripts/ServerShared/Behaviors/MiningTool.cs b/Assets/Scripts/ServerShared/Behaviors/MiningTool.cs
index 9bfc3eaf4..413c11ac4 100644
--- a/Assets/Scripts/ServerShared/Behaviors/MiningTool.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/MiningTool.cs
@@ -24,9 +24,9 @@ public class MiningToolData : BehaviorData
[Inspectable, JsonProperty("range"), Key(4)]
public PerformanceStat Range = new PerformanceStat();
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
+ public override IBehavior CreateInstance(EquippedItem item)
{
- return new MiningTool(context, this, entity, item);
+ return new MiningTool(this, item);
}
}
@@ -37,31 +37,27 @@ public class MiningTool : IBehavior
private MiningToolData _data;
- private Entity Entity { get; }
private EquippedItem Item { get; }
- private ItemManager Context { get; }
public BehaviorData Data => _data;
public float Range { get; private set; }
- public MiningTool(ItemManager context, MiningToolData data, Entity entity, EquippedItem item)
+ public MiningTool(MiningToolData data, EquippedItem item)
{
_data = data;
- Entity = entity;
Item = item;
- Context = context;
}
public bool Execute(float delta)
{
Range = Item.Evaluate(_data.Range);
- var belt = Entity.Zone.AsteroidBelts[AsteroidBelt];
+ var belt = Item.Entity.Zone.AsteroidBelts[AsteroidBelt];
if (AsteroidBelt != Guid.Empty &&
- Entity.Zone.AsteroidExists(AsteroidBelt, Asteroid) &&
- length(Entity.Position.xz - belt.Positions[Asteroid].xz) - belt.Scales[Asteroid] < Range)
+ Item.Entity.Zone.AsteroidExists(AsteroidBelt, Asteroid) &&
+ length(Item.Entity.Position.xz - belt.Positions[Asteroid].xz) - belt.Scales[Asteroid] < Range)
{
- Entity.Zone.MineAsteroid(
- Entity,
+ Item.Entity.Zone.MineAsteroid(
+ Item.Entity,
AsteroidBelt,
Asteroid,
Item.Evaluate(_data.DamagePerSecond) * delta,
diff --git a/Assets/Scripts/ServerShared/Behaviors/Radiance.cs b/Assets/Scripts/ServerShared/Behaviors/Radiance.cs
deleted file mode 100644
index b3113d670..000000000
--- a/Assets/Scripts/ServerShared/Behaviors/Radiance.cs
+++ /dev/null
@@ -1,45 +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;
-using System.Linq;
-using MessagePack;
-using Newtonsoft.Json;
-
-[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable]
-public class RadianceData : BehaviorData
-{
- [Inspectable, JsonProperty("radiance"), Key(1), RuntimeInspectable]
- public PerformanceStat Radiance = new PerformanceStat();
-
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
- {
- return new Radiance(context, this, entity, item);
- }
-}
-
-public class Radiance : IBehavior
-{
- private RadianceData _data;
-
- private Entity Entity { get; }
- private EquippedItem Item { get; }
- private ItemManager Context { get; }
-
- public BehaviorData Data => _data;
-
- public Radiance(ItemManager context, RadianceData data, Entity entity, EquippedItem item)
- {
- _data = data;
- Entity = entity;
- Item = item;
- Context = context;
- }
-
- public bool Execute(float delta)
- {
- // TODO: Light system!
- return true;
- }
-}
\ No newline at end of file
diff --git a/Assets/Scripts/ServerShared/Behaviors/Radiance.cs.meta b/Assets/Scripts/ServerShared/Behaviors/Radiance.cs.meta
deleted file mode 100644
index 94acbd584..000000000
--- a/Assets/Scripts/ServerShared/Behaviors/Radiance.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 1fbf8a3d31de89a4aa53d43e015536c7
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/Scripts/ServerShared/Behaviors/Radiator.cs b/Assets/Scripts/ServerShared/Behaviors/Radiator.cs
index 69472fb7c..164bf4175 100644
--- a/Assets/Scripts/ServerShared/Behaviors/Radiator.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/Radiator.cs
@@ -25,17 +25,15 @@ public class RadiatorData : BehaviorData
[Inspectable, JsonProperty("energyUsage"), Key(5), RuntimeInspectable]
public PerformanceStat EnergyUsage = new PerformanceStat();
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
+ public override IBehavior CreateInstance(EquippedItem item)
{
- return new Radiator(context, this, entity, item);
+ return new Radiator(this, item);
}
}
public class Radiator : IBehavior, IAlwaysUpdatedBehavior, IInitializableBehavior
{
- public Entity Entity { get; }
public EquippedItem Item { get; }
- public ItemManager Context { get; }
public float Temperature { get; private set; }
public BehaviorData Data => _data;
@@ -47,11 +45,9 @@ public class Radiator : IBehavior, IAlwaysUpdatedBehavior, IInitializableBehavio
private RadiatorData _data;
- public Radiator(ItemManager context, RadiatorData data, Entity entity, EquippedItem item)
+ public Radiator(RadiatorData data, EquippedItem item)
{
- Context = context;
_data = data;
- Entity = entity;
Item = item;
}
@@ -67,7 +63,7 @@ public class Radiator : IBehavior, IAlwaysUpdatedBehavior, IInitializableBehavio
// Temperature ratio would cause more waste heat than pump capacity, stop executing
if (tempRatio > PumpedHeat / WasteHeat) return true;
- if (!Entity.TryConsumeEnergy(EnergyUsage * tempRatio * delta)) return false;
+ if (!Item.Entity.TryConsumeEnergy(EnergyUsage * tempRatio * delta)) return false;
var pumpedHeat = PumpedHeat * max(itemTemperature - _data.TemperatureFloor, 0);
@@ -77,7 +73,7 @@ public class Radiator : IBehavior, IAlwaysUpdatedBehavior, IInitializableBehavio
var wasteHeat = WasteHeat * tempRatio;
Item.AddHeat((wasteHeat - pumpedHeat) * delta);
- Temperature += pumpedHeat / Context.GetThermalMass(Item.EquippableItem) * delta;
+ Temperature += pumpedHeat / Item.ItemManager.GetThermalMass(Item.EquippableItem) * delta;
return true;
}
@@ -85,9 +81,9 @@ public class Radiator : IBehavior, IAlwaysUpdatedBehavior, IInitializableBehavio
public void Update(float delta)
{
Emissivity = Item.Evaluate(_data.Emissivity);
- var rad = pow(Temperature, Context.GameplaySettings.HeatRadiationExponent) * Context.GameplaySettings.HeatRadiationMultiplier * Emissivity;
+ var rad = pow(Temperature, Item.ItemManager.GameplaySettings.HeatRadiationExponent) * Item.ItemManager.GameplaySettings.HeatRadiationMultiplier * Emissivity;
Temperature -= rad * delta;
- Entity.VisibilitySources[this] = rad;
+ Item.Entity.VisibilitySources[this] = rad;
}
public void Initialize()
diff --git a/Assets/Scripts/ServerShared/Behaviors/Reactor.cs b/Assets/Scripts/ServerShared/Behaviors/Reactor.cs
index 79d227deb..ca7859a6b 100644
--- a/Assets/Scripts/ServerShared/Behaviors/Reactor.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/Reactor.cs
@@ -25,9 +25,9 @@ public class ReactorData : BehaviorData
[Inspectable, JsonProperty("underload"), Key(4), RuntimeInspectable]
public PerformanceStat ThrottlingFactor = new PerformanceStat();
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
+ public override IBehavior CreateInstance(EquippedItem item)
{
- return new Reactor(context, this, entity, item);
+ return new Reactor(this, item);
}
}
@@ -49,19 +49,17 @@ public class Reactor : IBehavior, IOrderedBehavior
private List _capacitors;
- public Reactor(ItemManager context, ReactorData data, Entity entity, EquippedItem item)
+ public Reactor(ReactorData data, EquippedItem item)
{
- Context = context;
_data = data;
- Entity = entity;
Item = item;
- _capacitors = entity.GetBehaviors().ToList();
- entity.Equipment.ObserveAdd().Subscribe(onAdd =>
+ _capacitors = Item.Entity.GetBehaviors().ToList();
+ Item.Entity.Equipment.ObserveAdd().Subscribe(onAdd =>
{
var capacitor = onAdd.Value.GetBehavior();
if (capacitor != null) _capacitors.Add(capacitor);
});
- entity.Equipment.ObserveRemove().Subscribe(onRemove =>
+ Item.Entity.Equipment.ObserveRemove().Subscribe(onRemove =>
{
var capacitor = onRemove.Value.GetBehavior();
if (capacitor != null) _capacitors.Remove(capacitor);
diff --git a/Assets/Scripts/ServerShared/Behaviors/Reflector.cs b/Assets/Scripts/ServerShared/Behaviors/Reflector.cs
index 35a1689e4..01482a022 100644
--- a/Assets/Scripts/ServerShared/Behaviors/Reflector.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/Reflector.cs
@@ -7,7 +7,7 @@ using Newtonsoft.Json;
using Unity.Mathematics;
using static Unity.Mathematics.math;
-[MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable]
+[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable]
public class ReflectorData : BehaviorData
{
[Inspectable, JsonProperty("crossSection"), Key(1), RuntimeInspectable]
@@ -16,33 +16,30 @@ public class ReflectorData : BehaviorData
// [InspectableAnimationCurve, JsonProperty("visibility"), Key(1)]
// public float4[] VisibilityCurve;
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
+ public override IBehavior CreateInstance(EquippedItem item)
{
- return new Reflector(context, this, entity, item);
+ return new Reflector(this, item);
}
}
public class Reflector : IBehavior
{
- public Entity Entity { get; }
public EquippedItem Item { get; }
- public ItemManager Context { get; }
public BehaviorData Data => _data;
private ReflectorData _data;
- public Reflector(ItemManager context, ReflectorData data, Entity entity, EquippedItem item)
+ public Reflector(ReflectorData data, EquippedItem item)
{
- Context = context;
_data = data;
- Entity = entity;
Item = item;
}
public bool Execute(float delta)
{
- // TODO: Light system!
+ Item.Entity.VisibilitySources[this] = Item.Evaluate(_data.CrossSection) * Item.Entity.Zone.GetLight(Item.Entity.Position.xz);
+
return true;
}
}
\ No newline at end of file
diff --git a/Assets/Scripts/ServerShared/Behaviors/ResourceScanner.cs b/Assets/Scripts/ServerShared/Behaviors/ResourceScanner.cs
index 29dbde551..571cf52fe 100644
--- a/Assets/Scripts/ServerShared/Behaviors/ResourceScanner.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/ResourceScanner.cs
@@ -21,9 +21,9 @@ public class ResourceScannerData : BehaviorData
[Inspectable, JsonProperty("scanDuration"), Key(3), RuntimeInspectable]
public PerformanceStat ScanDuration = new PerformanceStat();
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
+ public override IBehavior CreateInstance(EquippedItem item)
{
- return new ResourceScanner(context, this, entity, item);
+ return new ResourceScanner(this, item);
}
}
@@ -35,9 +35,7 @@ public class ResourceScanner : IBehavior, IAlwaysUpdatedBehavior
private float _scanTime;
private Guid _scanTarget;
- private Entity Entity { get; }
private EquippedItem Item { get; }
- private ItemManager Context { get; }
public BehaviorData Data => _data;
public float Range { get; private set; }
@@ -57,24 +55,22 @@ public class ResourceScanner : IBehavior, IAlwaysUpdatedBehavior
}
}
- public ResourceScanner(ItemManager context, ResourceScannerData data, Entity entity, EquippedItem item)
+ public ResourceScanner(ResourceScannerData data, EquippedItem item)
{
_data = data;
- Entity = entity;
Item = item;
- Context = context;
}
public bool Execute(float delta)
{
- var planetData = Context.ItemData.Get(ScanTarget);
+ var planetData = Item.Entity.Zone.Planets[ScanTarget];
if (planetData != null)
{
if (planetData is AsteroidBeltData beltData)
{
if(Asteroid > -1 &&
Asteroid < beltData.Asteroids.Length &&
- length(Entity.Position.xz - Entity.Zone.AsteroidBelts[ScanTarget].Positions[Asteroid].xz) < Range)
+ length(Item.Entity.Position.xz - Item.Entity.Zone.AsteroidBelts[ScanTarget].Positions[Asteroid].xz) < Range)
{
_scanTime += delta;
if (_scanTime > ScanDuration)
@@ -88,7 +84,7 @@ public class ResourceScanner : IBehavior, IAlwaysUpdatedBehavior
}
else
{
- if(length(Entity.Position.xz - Entity.Zone.GetOrbitPosition(planetData.Orbit)) < Range)
+ if(length(Item.Entity.Position.xz - Item.Entity.Zone.GetOrbitPosition(planetData.Orbit)) < Range)
{
_scanTime += delta;
if (_scanTime > ScanDuration)
diff --git a/Assets/Scripts/ServerShared/Behaviors/Sensor.cs b/Assets/Scripts/ServerShared/Behaviors/Sensor.cs
index d79a9a454..2bf78c9a0 100644
--- a/Assets/Scripts/ServerShared/Behaviors/Sensor.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/Sensor.cs
@@ -39,9 +39,9 @@ public class SensorData : BehaviorData
[Inspectable, JsonProperty("pingRadiusExponent"), Key(11)]
public float PingRadiusExponent = .5f;
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
+ public override IBehavior CreateInstance(EquippedItem item)
{
- return new Sensor(context, this, entity, item);
+ return new Sensor(this, item);
}
}
@@ -54,9 +54,7 @@ public class Sensor : IBehavior, IEventBehavior
private float _pingRadius;
private HashSet _pingedEntities = new HashSet();
- private Entity Entity { get; }
private EquippedItem Item { get; }
- private ItemManager Context { get; }
public BehaviorData Data => _data;
@@ -95,12 +93,10 @@ public class Sensor : IBehavior, IEventBehavior
}
}
- public Sensor(ItemManager context, SensorData data, Entity entity, EquippedItem item)
+ public Sensor(SensorData data, EquippedItem item)
{
_data = data;
- Entity = entity;
Item = item;
- Context = context;
}
public bool Execute(float delta)
@@ -119,42 +115,41 @@ public class Sensor : IBehavior, IEventBehavior
_pingCooldown -= delta / Item.Evaluate(_data.PingCooldown);
// TODO: Handle Active Detection / Visibility From Reflected Radiance
- var hardpoint = Entity.Hardpoints[Item.Position.x, Item.Position.y];
- var forward = hardpoint != null && Entity.HardpointTransforms.ContainsKey(hardpoint) ?
- normalize(Entity.HardpointTransforms[hardpoint].direction.xz) :
- Entity.Direction;
- foreach (var entity in Entity.Zone.Entities)
+ var hardpoint = Item.Entity.Hardpoints[Item.Position.x, Item.Position.y];
+ var forward = hardpoint != null && Item.Entity.HardpointTransforms.ContainsKey(hardpoint) ?
+ normalize(Item.Entity.HardpointTransforms[hardpoint].direction.xz) :
+ Item.Entity.Direction;
+ foreach (var entity in Item.Entity.Zone.Entities)
{
- if(entity != Entity)
+ if (entity == Item.Entity) continue;
+
+ var diff = entity.Position.xz - Item.Entity.Position.xz;
+ var angle = acos(dot(forward, normalize(diff)));
+ var dist = length(diff);
+ float previous, next;
+ Item.Entity.EntityInfoGathered.TryGetValue(entity, out previous);
+ if (!_pingedEntities.Contains(entity) && dist < _pingRadius)
{
- var diff = entity.Position.xz - Entity.Position.xz;
- var angle = acos(dot(forward, normalize(diff)));
- var dist = length(diff);
- float previous, next;
- Entity.EntityInfoGathered.TryGetValue(entity, out previous);
- if (!_pingedEntities.Contains(entity) && dist < _pingRadius)
- {
- _pingedEntities.Add(entity);
- next = saturate(
- previous +
- entity.Visibility *
- Item.Evaluate(_data.Sensitivity) *
- Item.Evaluate(_data.PingBoost) *
- dist);
- }
- else
- {
- next = saturate(
- previous +
- entity.Visibility *
- Item.Evaluate(_data.Sensitivity) *
- _data.SensitivityCurve.Evaluate(angle / PI) *
- delta / dist);
- }
- next *= 1 - Context.GameplaySettings.TargetInfoDecay * delta;
- //Context.Log($"{entity.Name} visibility {(int)(previous * 100)}% -> {(int)(next * 100)}%");
- Entity.EntityInfoGathered[entity] = next;
+ _pingedEntities.Add(entity);
+ next = saturate(
+ previous +
+ entity.Visibility *
+ Item.Evaluate(_data.Sensitivity) *
+ Item.Evaluate(_data.PingBoost) *
+ dist);
}
+ else
+ {
+ next = saturate(
+ previous +
+ entity.Visibility *
+ Item.Evaluate(_data.Sensitivity) *
+ _data.SensitivityCurve.Evaluate(angle / PI) *
+ delta / dist);
+ }
+ next *= 1 - Item.ItemManager.GameplaySettings.TargetInfoDecay * delta;
+ //Context.Log($"{entity.Name} visibility {(int)(previous * 100)}% -> {(int)(next * 100)}%");
+ Item.Entity.EntityInfoGathered[entity] = next;
}
return true;
}
diff --git a/Assets/Scripts/ServerShared/Behaviors/Shield.cs b/Assets/Scripts/ServerShared/Behaviors/Shield.cs
index 1b2c1abc8..0ef02801c 100644
--- a/Assets/Scripts/ServerShared/Behaviors/Shield.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/Shield.cs
@@ -16,17 +16,15 @@ public class ShieldData : BehaviorData
[Inspectable, JsonProperty("energy"), Key(2), RuntimeInspectable]
public PerformanceStat EnergyUsage = new PerformanceStat();
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
+ public override IBehavior CreateInstance(EquippedItem item)
{
- return new Shield(context, this, entity, item);
+ return new Shield(this, item);
}
}
public class Shield : IBehavior
{
- public Entity Entity { get; }
public EquippedItem Item { get; }
- public ItemManager Context { get; }
public float Efficiency { get; private set; }
public float EnergyUsage { get; private set; }
@@ -35,11 +33,9 @@ public class Shield : IBehavior
private ShieldData _data;
- public Shield(ItemManager context, ShieldData data, Entity entity, EquippedItem item)
+ public Shield(ShieldData data, EquippedItem item)
{
- Context = context;
_data = data;
- Entity = entity;
Item = item;
}
@@ -52,12 +48,12 @@ public class Shield : IBehavior
public bool CanTakeHit(DamageType type, float damage)
{
- return Entity.CanConsumeEnergy(damage * EnergyUsage);
+ return Item.Entity.CanConsumeEnergy(damage * EnergyUsage);
}
public void TakeHit(DamageType type, float damage)
{
- Entity.TryConsumeEnergy(damage * EnergyUsage);
+ Item.Entity.TryConsumeEnergy(damage * EnergyUsage);
Item.AddHeat(damage / Efficiency);
}
}
\ No newline at end of file
diff --git a/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs b/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs
index 35e0115d8..e40dd3b44 100644
--- a/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs
@@ -22,9 +22,9 @@ public class StatModifierData : BehaviorData
[InspectableType(typeof(BehaviorData)), JsonProperty("requireBehavior"), Key(4)]
public Type RequireBehavior;
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
+ public override IBehavior CreateInstance(EquippedItem item)
{
- return new StatModifier(context, this, entity, item);
+ return new StatModifier(this, item);
}
}
@@ -32,9 +32,7 @@ public class StatModifierData : BehaviorData
public class StatModifier : IBehavior, IInitializableBehavior, IDisposableBehavior
{
private StatModifierData _data;
- private Entity Entity { get; }
private EquippedItem Item { get; }
- private ItemManager Context { get; }
public BehaviorData Data => _data;
@@ -45,12 +43,10 @@ public class StatModifier : IBehavior, IInitializableBehavior, IDisposableBehavi
private static Type[] StatObjects => _statObjects = _statObjects ?? typeof(BehaviorData).GetAllChildClasses()
.Concat(typeof(EquippableItemData).GetAllChildClasses()).ToArray();
- public StatModifier(ItemManager context, StatModifierData data, Entity entity, EquippedItem item)
+ public StatModifier(StatModifierData data, EquippedItem item)
{
_data = data;
- Entity = entity;
Item = item;
- Context = context;
}
public void Initialize()
@@ -63,17 +59,17 @@ public class StatModifier : IBehavior, IInitializableBehavior, IDisposableBehavi
if (statField != null)
{
if (typeof(EquippableItemData).IsAssignableFrom(targetType))
- _stats = Entity.Equipment
+ _stats = Item.Entity.Equipment
.Select(hp => hp.EquippableItem)
- .Where(gear => _data.RequireBehavior == null || Context.GetData(gear).Behaviors.Any(behavior => behavior.GetType() == _data.RequireBehavior))
- .Where(gear => Context.GetData(gear).GetType() == targetType)
- .Select(gear => statField.GetValue(Context.GetData(gear)) as PerformanceStat)
+ .Where(gear => _data.RequireBehavior == null || Item.ItemManager.GetData(gear).Behaviors.Any(behavior => behavior.GetType() == _data.RequireBehavior))
+ .Where(gear => Item.ItemManager.GetData(gear).GetType() == targetType)
+ .Select(gear => statField.GetValue(Item.ItemManager.GetData(gear)) as PerformanceStat)
.ToArray();
else
- _stats = Entity.Equipment
+ _stats = Item.Entity.Equipment
.Select(hp => hp.EquippableItem)
- .Where(gear => _data.RequireBehavior == null || Context.GetData(gear).Behaviors.Any(behavior => behavior.GetType() == _data.RequireBehavior))
- .SelectMany(gear => Context.GetData(gear).Behaviors)
+ .Where(gear => _data.RequireBehavior == null || Item.ItemManager.GetData(gear).Behaviors.Any(behavior => behavior.GetType() == _data.RequireBehavior))
+ .SelectMany(gear => Item.ItemManager.GetData(gear).Behaviors)
.Where(behaviorData => behaviorData.GetType() == targetType)
.Select(behaviorData => statField.GetValue(behaviorData) as PerformanceStat)
.ToArray();
@@ -85,15 +81,15 @@ public class StatModifier : IBehavior, IInitializableBehavior, IDisposableBehavi
{
foreach (var stat in _stats)
(_data.Type == StatModifierType.Constant
- ? stat.GetConstantModifiers(Entity)
- : stat.GetScaleModifiers(Entity))[this] = Item.Evaluate(_data.Modifier);
+ ? stat.GetConstantModifiers(Item.Entity)
+ : stat.GetScaleModifiers(Item.Entity))[this] = Item.Evaluate(_data.Modifier);
return true;
}
public void Dispose()
{
foreach (var stat in _stats)
- (_data.Type == StatModifierType.Constant ? stat.GetConstantModifiers(Entity) : stat.GetScaleModifiers(Entity)).Remove(this);
+ (_data.Type == StatModifierType.Constant ? stat.GetConstantModifiers(Item.Entity) : stat.GetScaleModifiers(Item.Entity)).Remove(this);
}
}
diff --git a/Assets/Scripts/ServerShared/Behaviors/Switch.cs b/Assets/Scripts/ServerShared/Behaviors/Switch.cs
index ccf07bb7d..9d5686ae4 100644
--- a/Assets/Scripts/ServerShared/Behaviors/Switch.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/Switch.cs
@@ -10,9 +10,9 @@ using Newtonsoft.Json;
[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), Order(-25)]
public class SwitchData : BehaviorData
{
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
+ public override IBehavior CreateInstance(EquippedItem item)
{
- return new Switch(context, this, entity, item);
+ return new Switch(this, item);
}
}
@@ -20,20 +20,16 @@ public class Switch : IBehavior
{
private SwitchData _data;
- private Entity Entity { get; }
private EquippedItem Item { get; }
- private ItemManager Context { get; }
public BehaviorData Data => _data;
public bool Activated { get; set; }
- public Switch(ItemManager context, SwitchData data, Entity entity, EquippedItem item)
+ public Switch(SwitchData data, EquippedItem item)
{
_data = data;
- Entity = entity;
Item = item;
- Context = context;
}
public bool Execute(float delta)
diff --git a/Assets/Scripts/ServerShared/Behaviors/Thermotoggle.cs b/Assets/Scripts/ServerShared/Behaviors/Thermotoggle.cs
index 4df055a9c..4fe226352 100644
--- a/Assets/Scripts/ServerShared/Behaviors/Thermotoggle.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/Thermotoggle.cs
@@ -15,10 +15,13 @@ public class ThermotoggleData : BehaviorData
[Inspectable, JsonProperty("highPass"), Key(2)]
public bool HighPass;
+
+ [Inspectable, JsonProperty("adjustable"), Key(3)]
+ public bool Adjustable;
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
+ public override IBehavior CreateInstance(EquippedItem item)
{
- return new Thermotoggle(context, this, entity, item);
+ return new Thermotoggle(this, item);
}
}
@@ -27,18 +30,15 @@ public class Thermotoggle : IBehavior
public float TargetTemperature;
private ThermotoggleData _data;
- private Entity Entity { get; }
private EquippedItem Item { get; }
- private ItemManager Context { get; }
public BehaviorData Data => _data;
+ public ThermotoggleData ThermotoggleData => _data;
- public Thermotoggle(ItemManager context, ThermotoggleData data, Entity entity, EquippedItem item)
+ public Thermotoggle(ThermotoggleData data, EquippedItem item)
{
_data = data;
- Entity = entity;
Item = item;
- Context = context;
TargetTemperature = data.TargetTemperature;
}
diff --git a/Assets/Scripts/ServerShared/Behaviors/Thruster.cs b/Assets/Scripts/ServerShared/Behaviors/Thruster.cs
index 5d1026809..ab3e68f87 100644
--- a/Assets/Scripts/ServerShared/Behaviors/Thruster.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/Thruster.cs
@@ -25,17 +25,15 @@ public class ThrusterData : BehaviorData
[InspectablePrefab, JsonProperty("Particles"), Key(5)]
public string ParticlesPrefab;
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
+ public override IBehavior CreateInstance(EquippedItem item)
{
- return new Thruster(context, this, entity, item);
+ return new Thruster(this, item);
}
}
public class Thruster : IAnalogBehavior
{
- public Entity Entity { get; }
public EquippedItem Item { get; }
- public ItemManager Context { get; }
public float Thrust { get; private set; }
public float Torque { get; }
@@ -52,15 +50,13 @@ public class Thruster : IAnalogBehavior
private float _input;
- public Thruster(ItemManager context, ThrusterData data, Entity entity, EquippedItem item)
+ public Thruster(ThrusterData data, EquippedItem item)
{
- Context = context;
_data = data;
- Entity = entity;
Item = item;
- var hullData = context.GetData(entity.Hull) as HullData;
+ var hullData = Item.ItemManager.GetData(Item.Entity.Hull) as HullData;
var hullCenter = hullData.Shape.CenterOfMass;
- var itemData = context.GetData(item.EquippableItem);
+ var itemData = Item.ItemManager.GetData(item.EquippableItem);
var itemCenter = hullData.Shape.Inset(itemData.Shape, item.Position, item.EquippableItem.Rotation).CenterOfMass;
var toCenter = hullCenter - itemCenter;
Torque = -dot(normalize(toCenter), float2(1, 0).Rotate(item.EquippableItem.Rotation));
@@ -72,13 +68,13 @@ public class Thruster : IAnalogBehavior
if(_input > .01f && Item.Entity.TryConsumeEnergy(_input * Item.Evaluate(_data.EnergyUsage)))
{
Thrust = Item.Evaluate(_data.Thrust);
- 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.Entity.Velocity -= Item.Entity.Direction.Rotate(Item.EquippableItem.Rotation) * _input * Thrust / Item.Entity.Mass * delta;
+ Item.Entity.Direction = mul(Item.Entity.Direction,
+ Unity.Mathematics.float2x2.Rotate(_input * Torque * Thrust * Item.ItemManager.GameplaySettings.TorqueMultiplier / Item.Entity.Mass * delta));
Item.AddHeat(_input * Item.Evaluate(_data.Heat) * delta);
var vis = _input * Item.Evaluate(_data.Visibility);
- if (!Entity.VisibilitySources.ContainsKey(this) || vis > Entity.VisibilitySources[this])
- Entity.VisibilitySources[this] = vis;
+ if (!Item.Entity.VisibilitySources.ContainsKey(this) || vis > Item.Entity.VisibilitySources[this])
+ Item.Entity.VisibilitySources[this] = vis;
return true;
}
return false;
diff --git a/Assets/Scripts/ServerShared/Behaviors/Trigger.cs b/Assets/Scripts/ServerShared/Behaviors/Trigger.cs
index 10c30163d..007588214 100644
--- a/Assets/Scripts/ServerShared/Behaviors/Trigger.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/Trigger.cs
@@ -10,9 +10,9 @@ using Newtonsoft.Json;
[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), Order(-20)]
public class TriggerData : BehaviorData
{
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
+ public override IBehavior CreateInstance(EquippedItem item)
{
- return new Trigger(context, this, entity, item);
+ return new Trigger(this, item);
}
}
@@ -20,24 +20,16 @@ public class Trigger : IBehavior, IActivatedBehavior
{
private TriggerData _data;
- public Entity Entity { get; }
public EquippedItem Item { get; }
- public ItemManager Context { get; }
public BehaviorData Data => _data;
public bool _pulled;
- public Trigger(ItemManager context, TriggerData data, Entity entity, EquippedItem item)
+ public Trigger(TriggerData data, EquippedItem item)
{
_data = data;
- Entity = entity;
Item = item;
- Context = context;
- }
-
- public void Initialize()
- {
}
public bool Execute(float delta)
diff --git a/Assets/Scripts/ServerShared/Behaviors/TurretController.cs b/Assets/Scripts/ServerShared/Behaviors/TurretController.cs
index f9496e49a..c13ea7df8 100644
--- a/Assets/Scripts/ServerShared/Behaviors/TurretController.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/TurretController.cs
@@ -14,9 +14,9 @@ using float3 = Unity.Mathematics.float3;
[MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable]
public class TurretControllerData : BehaviorData
{
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
+ public override IBehavior CreateInstance(EquippedItem item)
{
- return new TurretController(context, this, entity, item);
+ return new TurretController(this, item);
}
}
@@ -27,26 +27,22 @@ public class TurretController : IBehavior
private float _shotSpeed;
private bool _predictShots;
- public Entity EquippedEntity { get; }
public EquippedItem Item { get; }
- public ItemManager Context { get; }
public BehaviorData Data => _data;
- public TurretController(ItemManager context, TurretControllerData data, Entity equippedEntity, EquippedItem item)
+ public TurretController(TurretControllerData data, EquippedItem item)
{
- Context = context;
_data = data;
- EquippedEntity = equippedEntity;
Item = item;
- var weapons = equippedEntity.Equipment.Where(e => e.Behaviors.Any(b => b.Data is WeaponData));
+ var weapons = Item.Entity.Equipment.Where(e => e.Behaviors.Any(b => b.Data is WeaponData));
foreach (var weapon in weapons)
{
CheckWeapon(weapon);
}
- equippedEntity.Equipment.ObserveAdd().Subscribe(add => CheckWeapon(add.Value));
- equippedEntity.Equipment.ObserveRemove().Subscribe(remove =>
+ Item.Entity.Equipment.ObserveAdd().Subscribe(add => CheckWeapon(add.Value));
+ Item.Entity.Equipment.ObserveRemove().Subscribe(remove =>
{
foreach (var b in remove.Value.Behaviors)
if (b is Weapon weapon)
@@ -71,30 +67,30 @@ public class TurretController : IBehavior
public bool Execute(float delta)
{
- if (EquippedEntity.Target.Value != null)
+ if (Item.Entity.Target.Value != null)
{
- var diff = EquippedEntity.Target.Value.Position - EquippedEntity.Position;
+ var diff = Item.Entity.Target.Value.Position - Item.Entity.Position;
if (_predictShots)
{
- var targetHullData = EquippedEntity.ItemManager.GetData(EquippedEntity.Target.Value.Hull) as HullData;
- var targetVelocity = float3(EquippedEntity.Target.Value.Velocity.x, 0, EquippedEntity.Target.Value.Velocity.y);
+ var targetHullData = Item.Entity.ItemManager.GetData(Item.Entity.Target.Value.Hull) as HullData;
+ var targetVelocity = float3(Item.Entity.Target.Value.Velocity.x, 0, Item.Entity.Target.Value.Velocity.y);
var predictedPosition = AetheriaMath.FirstOrderIntercept(
- EquippedEntity.Position, float3.zero, _shotSpeed,
- EquippedEntity.Target.Value.Position, targetVelocity
+ Item.Entity.Position, float3.zero, _shotSpeed,
+ Item.Entity.Target.Value.Position, targetVelocity
);
- predictedPosition.y = EquippedEntity.Zone.GetHeight(predictedPosition.xz) + targetHullData.GridOffset;
- EquippedEntity.LookDirection = normalize(predictedPosition - EquippedEntity.Position);
+ predictedPosition.y = Item.Entity.Zone.GetHeight(predictedPosition.xz) + targetHullData.GridOffset;
+ Item.Entity.LookDirection = normalize(predictedPosition - Item.Entity.Position);
}
else
- EquippedEntity.LookDirection = normalize(diff);
+ Item.Entity.LookDirection = normalize(diff);
var dist = length(diff);
foreach (var x in _weapons)
{
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;
+ Item.Entity.HardpointTransforms[Item.Entity.Hardpoints[x.Item.Position.x, x.Item.Position.y]].direction,
+ Item.Entity.LookDirection) > .99f;
if (x.Item.Evaluate(data.Range) > dist && fire)
{
x.Activate();
@@ -110,7 +106,7 @@ public class TurretController : IBehavior
if (x.Firing)
x.Deactivate();
}
- EquippedEntity.Target.Value = EquippedEntity.VisibleHostiles.FirstOrDefault(e => e is Ship);
+ Item.Entity.Target.Value = Item.Entity.VisibleHostiles.FirstOrDefault(e => e is Ship);
}
return true;
}
diff --git a/Assets/Scripts/ServerShared/Behaviors/VelocityConversion.cs b/Assets/Scripts/ServerShared/Behaviors/VelocityConversion.cs
index fef52068f..4214c7955 100644
--- a/Assets/Scripts/ServerShared/Behaviors/VelocityConversion.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/VelocityConversion.cs
@@ -13,40 +13,28 @@ public class VelocityConversionData : BehaviorData
[Inspectable, JsonProperty("traction"), Key(1), RuntimeInspectable]
public PerformanceStat Traction = new PerformanceStat();
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
+ public override IBehavior CreateInstance(EquippedItem item)
{
- return new VelocityConversion(context, this, entity, item);
+ return new VelocityConversion(this, item);
}
}
public class VelocityConversion : IBehavior
{
- public Entity Entity { get; }
public EquippedItem Item { get; }
- public ItemManager Context { get; }
public BehaviorData Data => _data;
private VelocityConversionData _data;
- public VelocityConversion(ItemManager context, VelocityConversionData data, Entity entity, EquippedItem item)
+ public VelocityConversion(VelocityConversionData data, EquippedItem item)
{
- Context = context;
_data = data;
- Entity = entity;
Item = item;
}
- public void Initialize()
- {
- }
-
public bool Execute(float delta)
{
return true;
}
-
- public void Remove()
- {
- }
}
\ No newline at end of file
diff --git a/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs b/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs
index 09b948e75..72e9cdaf1 100644
--- a/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs
@@ -7,24 +7,22 @@ using Newtonsoft.Json;
using Unity.Mathematics;
using static Unity.Mathematics.math;
-[MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable]
+[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable]
public class VelocityLimitData : BehaviorData
{
[Inspectable, JsonProperty("topSpeed"), Key(1), RuntimeInspectable]
public PerformanceStat TopSpeed = new PerformanceStat();
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
+ public override IBehavior CreateInstance(EquippedItem item)
{
- return new VelocityLimit(context, this, entity, item);
+ return new VelocityLimit(this, item);
}
}
[Order(100)]
public class VelocityLimit : IBehavior
{
- public Entity Entity { get; }
public EquippedItem Item { get; }
- public ItemManager Context { get; }
public float Limit { get; private set; }
@@ -32,28 +30,18 @@ public class VelocityLimit : IBehavior
private VelocityLimitData _data;
- public VelocityLimit(ItemManager context, VelocityLimitData data, Entity entity, EquippedItem item)
+ public VelocityLimit(VelocityLimitData data, EquippedItem item)
{
- Context = context;
_data = data;
- Entity = entity;
Item = item;
Limit = Item.Evaluate(_data.TopSpeed);
}
- public void Initialize()
- {
- }
-
public bool Execute(float delta)
{
Limit = Item.Evaluate(_data.TopSpeed);
- if (length(Entity.Velocity) > Limit)
- Entity.Velocity = normalize(Entity.Velocity) * Limit;
+ if (length(Item.Entity.Velocity) > Limit)
+ Item.Entity.Velocity = normalize(Item.Entity.Velocity) * Limit;
return true;
}
-
- public void Remove()
- {
- }
}
\ No newline at end of file
diff --git a/Assets/Scripts/ServerShared/Behaviors/Visibility.cs b/Assets/Scripts/ServerShared/Behaviors/Visibility.cs
index 1e5359869..c075e4ee6 100644
--- a/Assets/Scripts/ServerShared/Behaviors/Visibility.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/Visibility.cs
@@ -16,44 +16,31 @@ public class VisibilityData : BehaviorData
[Inspectable, JsonProperty("visibilityDecay"), Key(2)]
public PerformanceStat VisibilityDecay = new PerformanceStat();
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
+ public override IBehavior CreateInstance(EquippedItem item)
{
- return new Visibility(context, this, entity, item);
+ return new Visibility(this, item);
}
}
-public class Visibility : IBehavior, IAlwaysUpdatedBehavior
+public class Visibility : IBehavior
{
private VisibilityData _data;
- private Entity Entity { get; }
private EquippedItem Item { get; }
- private ItemManager Context { get; }
public BehaviorData Data => _data;
private float _cooldown; // Normalized
- public Visibility(ItemManager context, VisibilityData data, Entity entity, EquippedItem item)
+ public Visibility(VisibilityData data, EquippedItem item)
{
_data = data;
- Entity = entity;
Item = item;
- Context = context;
}
public bool Execute(float delta)
{
- Entity.VisibilitySources[this] = Item.Evaluate(_data.Visibility);
+ Item.Entity.VisibilitySources[this] = Item.Evaluate(_data.Visibility);
return true;
}
-
- public void Update(float delta)
- {
- // TODO: Time independent decay?
- if(Entity.VisibilitySources.ContainsKey(this))
- {
- Entity.VisibilitySources[this] *= Item.Evaluate(_data.VisibilityDecay);
- }
- }
}
\ No newline at end of file
diff --git a/Assets/Scripts/ServerShared/Behaviors/Weapon.cs b/Assets/Scripts/ServerShared/Behaviors/Weapon.cs
index 4cec8bb67..48f194e31 100644
--- a/Assets/Scripts/ServerShared/Behaviors/Weapon.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/Weapon.cs
@@ -70,11 +70,8 @@ public abstract class WeaponData : BehaviorData
public abstract class Weapon : IActivatedBehavior
{
private WeaponData _data;
- private EquippableItemData _itemData;
- public Entity Entity { get; }
public EquippedItem Item { get; }
- public ItemManager Context { get; }
public abstract float DamagePerSecond { get; }
public abstract float RangeDamagePerSecond(float range);
@@ -101,13 +98,10 @@ public abstract class Weapon : IActivatedBehavior
}
- public Weapon(ItemManager context, WeaponData data, Entity entity, EquippedItem item)
+ public Weapon(WeaponData data, EquippedItem item)
{
- Context = context;
- Entity = entity;
Item = item;
_data = data;
- _itemData = context.GetData(item.EquippableItem);
}
protected virtual void UpdateStats()
diff --git a/Assets/Scripts/ServerShared/Behaviors/Wear.cs b/Assets/Scripts/ServerShared/Behaviors/Wear.cs
index 675ebccbb..91aa6749b 100644
--- a/Assets/Scripts/ServerShared/Behaviors/Wear.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/Wear.cs
@@ -14,30 +14,24 @@ public class WearData : BehaviorData
[InspectableTemperature, JsonProperty("perSecond"), Key(1)]
public bool PerSecond = true;
- public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item)
+ public override IBehavior CreateInstance(EquippedItem item)
{
- return new Wear(context, this, entity, item);
+ return new Wear(this, item);
}
}
public class Wear : IBehavior
{
private WearData _data;
- private EquippableItemData _itemData;
- public Entity Entity { get; }
public EquippedItem Item { get; }
- public ItemManager Context { get; }
public BehaviorData Data => _data;
- public Wear(ItemManager context, WearData data, Entity entity, EquippedItem item)
+ public Wear(WearData data, EquippedItem item)
{
- Context = context;
_data = data;
- Entity = entity;
Item = item;
- _itemData = context.GetData(item.EquippableItem);
}
public bool Execute(float delta)
diff --git a/Assets/Scripts/ServerShared/Entity.cs b/Assets/Scripts/ServerShared/Entity.cs
index e034b1bca..45f26a83c 100644
--- a/Assets/Scripts/ServerShared/Entity.cs
+++ b/Assets/Scripts/ServerShared/Entity.cs
@@ -764,9 +764,9 @@ public abstract class Entity
foreach (var v in VisibilitySources.Keys.ToArray())
{
- VisibilitySources[v] *= max(1 - ItemManager.GameplaySettings.VisibilityDecay * delta, 0);
+ VisibilitySources[v] = AetheriaMath.Decay(VisibilitySources[v], ItemManager.GameplaySettings.VisibilityDecay, delta);
- if (VisibilitySources[v] < 0.01f) VisibilitySources.Remove(v);
+ if (VisibilitySources[v] < 0.1f) VisibilitySources.Remove(v);
}
UpdateTemperature(delta);
@@ -998,7 +998,7 @@ public class EquippedItem
Behaviors = Data.Behaviors
- .Select(bd => bd.CreateInstance(itemManager, entity, this))
+ .Select(bd => bd.CreateInstance(this))
.ToArray();
BehaviorGroups = Behaviors
diff --git a/Assets/Scripts/ServerShared/Settings.cs b/Assets/Scripts/ServerShared/Settings.cs
index 8d64821e5..0b07f9252 100644
--- a/Assets/Scripts/ServerShared/Settings.cs
+++ b/Assets/Scripts/ServerShared/Settings.cs
@@ -23,7 +23,6 @@ public class PlanetSettings
public ExponentialCurve WaveRadius;
public ExponentialCurve WaveFrequency;
public ExponentialCurve WaveSpeed;
- public ExponentialCurve FogTintRadius;
public ExponentialCurve LightRadius;
public ExponentialCurve BodyRadius;
public float AsteroidVerticalOffset = -5f;
diff --git a/Assets/Scripts/ServerShared/Zone.cs b/Assets/Scripts/ServerShared/Zone.cs
index ae1993e7f..8dcf78310 100644
--- a/Assets/Scripts/ServerShared/Zone.cs
+++ b/Assets/Scripts/ServerShared/Zone.cs
@@ -65,6 +65,9 @@ public class Zone
case AsteroidBeltData belt:
AsteroidBelts[belt.ID] = new AsteroidBelt(belt);
break;
+ case SunData sun:
+ PlanetInstances.Add(sun.ID, new Sun(settings, sun, Orbits[planet.Orbit]));
+ break;
case GasGiantData gas:
PlanetInstances.Add(gas.ID, new GasGiant(settings, gas, Orbits[planet.Orbit]));
break;
@@ -305,7 +308,7 @@ public class Zone
}
public float GetHeight(float2 position)
{
- float result = -PowerPulse(length(position)/(Pack.Radius*2), Settings.ZoneDepthExponent) * Settings.ZoneDepth;
+ var result = -PowerPulse(length(position)/(Pack.Radius*2), Settings.ZoneDepthExponent) * Settings.ZoneDepth;
foreach (var body in PlanetInstances.Values)
{
var p = position - body.Orbit.Position; //GetOrbitPosition(body.BodyData.Orbit)
@@ -333,6 +336,26 @@ public class Zone
return result;
}
+ public float GetLight(float2 position)
+ {
+ var light = 0f;
+ foreach (var body in PlanetInstances.Values)
+ {
+ if (body is Sun sun)
+ {
+ var p = position - body.Orbit.Position;
+ var distSqr = lengthsq(p);
+ var lightRadius = sun.LightRadius.Value;
+ if (distSqr < lightRadius * lightRadius)
+ {
+ light += PowerPulse(sqrt(distSqr) / lightRadius, 8);
+ }
+ }
+ }
+
+ return light;
+ }
+
public float2 GetForce(float2 position)
{
var normal = GetNormal(position);
@@ -412,10 +435,17 @@ public class GasGiant : Planet
}
}
-// public class Sun : GasGiant
-// {
-//
-// }
+public class Sun : GasGiant
+{
+ public ReadOnlyReactiveProperty LightRadius;
+
+ public Sun(PlanetSettings settings, SunData data, Orbit orbit) : base(settings, data, orbit)
+ {
+ LightRadius = new ReadOnlyReactiveProperty(
+ data.Mass.CombineLatest(data.LightRadiusMultiplier,
+ (mass, radius) => settings.LightRadius.Evaluate(mass) * radius));
+ }
+}
public class AsteroidBelt
{
diff --git a/Assets/Scripts/ServerShared/ZoneData.cs b/Assets/Scripts/ServerShared/ZoneData.cs
index c06046a01..f0eeffcdc 100644
--- a/Assets/Scripts/ServerShared/ZoneData.cs
+++ b/Assets/Scripts/ServerShared/ZoneData.cs
@@ -163,6 +163,9 @@ public class SunData : GasGiantData
[JsonProperty("fogTintColor"), Key(21)]
public ReactiveProperty FogTintColor = new ReactiveProperty(float3.zero);
+
+ [JsonProperty("lightRadiusMul")] [Key(22)]
+ public ReactiveProperty LightRadiusMultiplier = new ReactiveProperty(1);
}
[MessagePackObject, JsonObject(MemberSerialization.OptIn)]
diff --git a/Assets/Scripts/UI/InventoryMenu.cs b/Assets/Scripts/UI/InventoryMenu.cs
index d1c486517..d01e89e7a 100644
--- a/Assets/Scripts/UI/InventoryMenu.cs
+++ b/Assets/Scripts/UI/InventoryMenu.cs
@@ -321,8 +321,7 @@ public class InventoryMenu : MonoBehaviour
}
_selectedPanel = panel;
_selectedPosition = cargoEvent.Position;
- PropertiesPanel.Clear();
- PropertiesPanel.AddItemProperties(item);
+ PropertiesPanel.Inspect(item);
_selectedPanel = panel;
_selectedPosition = cargoEvent.CargoBay.Cargo[item];
_selectedItem = item;
@@ -374,7 +373,7 @@ public class InventoryMenu : MonoBehaviour
}
}
- PropertiesPanel.Inspect(entityEvent.Entity, item);
+ PropertiesPanel.Inspect(item);
_selectedPanel = panel;
_selectedPosition = item.Position;
_selectedItem = item.EquippableItem;
diff --git a/Assets/Scripts/UI/PropertiesPanel.cs b/Assets/Scripts/UI/PropertiesPanel.cs
index fdc4cc252..b546b0959 100644
--- a/Assets/Scripts/UI/PropertiesPanel.cs
+++ b/Assets/Scripts/UI/PropertiesPanel.cs
@@ -18,6 +18,7 @@ using static Unity.Mathematics.math;
public class PropertiesPanel : MonoBehaviour
{
+ public RectTransform Spacer;
public DropdownMenu Dropdown;
public TextMeshProUGUI Title;
public RectTransform Section;
@@ -86,6 +87,14 @@ public class PropertiesPanel : MonoBehaviour
SelectedChild = null;
}
+ public RectTransform AddSpacer()
+ {
+ var spacer = Instantiate(Spacer, Content ?? transform);
+ Properties.Add(spacer.gameObject);
+ OnPropertyAdded?.Invoke(spacer.gameObject);
+ return spacer;
+ }
+
public RectTransform AddSection(string name)
{
var section = Instantiate(Section, Content ?? transform);
@@ -352,68 +361,116 @@ public class PropertiesPanel : MonoBehaviour
RefreshValues();
}
- public void AddEntityProperties(Entity entity)
+ private void AddEntityProperties(Entity entity)
{
AddField("Name", () => entity.Name, name => entity.Name = name);
AddProperty("Mass", () => $"{entity.Mass.SignificantDigits(Context.GameplaySettings.SignificantDigits)}");
}
- public void AddItemProperties(Entity entity, ItemInstance item)
+ private void AddItemProperties(ItemInstance item)
{
var data = Context.ItemData.Get(item.Data);
- AddProperty(data.Description);//.Label.fontStyle = FontStyles.Normal;
+
+ AddProperty(data.Description);
+
var manufacturer = Context.ItemData.Get(data.Manufacturer);
- if (manufacturer != null)
- {
- AddProperty("Manufacturer", () => manufacturer.Name);
- }
- else
- {
- AddProperty("Manufacturer", () => "GameCult");
- }
+ AddProperty("Manufacturer", () => manufacturer?.Name ?? "GameCult");
+
if (item is SimpleCommodity simpleCommodity)
AddProperty("Quantity", () => simpleCommodity.Quantity.ToString());
+
AddProperty("Mass", () => Context.GetMass(item).SignificantDigits(Context.GameplaySettings.SignificantDigits));
- AddProperty("Thermal Mass", () => Context.GetThermalMass(item).SignificantDigits(Context.GameplaySettings.SignificantDigits));
- if (item is EquippableItem gear)
+ //AddProperty("Thermal Mass", () => Context.GetThermalMass(item).SignificantDigits(Context.GameplaySettings.SignificantDigits));
+ }
+
+ private void AddEquippableItemProperties(EquippableItem item, Func statValueFunction)
+ {
+ if (item.Durability < .01f)
{
- var (tier, upgrades) = entity.ItemManager.GetTier(gear);
- Title.text =
- $"{data.Name} ({tier.Name}{new string('+', upgrades)})";
- if (gear.Durability < .01f)
+ AddProperty("Item destroyed!");
+ return;
+ }
+
+ var gearData = Context.GetData(item);
+ AddProperty("Durability", () => $"{(int)(item.Durability / gearData.Durability * 100)}%");
+ foreach (var behavior in gearData.Behaviors)
+ {
+ var type = behavior.GetType();
+ if (type.GetCustomAttribute(typeof(RuntimeInspectable)) != null)
{
- AddProperty("Item destroyed!");
- }
- else
- {
- var gearData = Context.GetData(gear);
- AddProperty("Durability", () =>
- $"{gear.Durability.SignificantDigits(Context.GameplaySettings.SignificantDigits)}/{gearData.Durability.SignificantDigits(Context.GameplaySettings.SignificantDigits)}");
- foreach (var behavior in gearData.Behaviors)
+ foreach (var field in type.GetFields().Where(f => f.GetCustomAttribute() != null))
{
- var type = behavior.GetType();
- if (type.GetCustomAttribute(typeof(RuntimeInspectable)) != null)
+ var fieldType = field.FieldType;
+ if (fieldType == typeof(float))
+ AddProperty(field.Name, () => $"{((float) field.GetValue(behavior)).SignificantDigits(Context.GameplaySettings.SignificantDigits)}");
+ else if (fieldType == typeof(int))
+ AddProperty(field.Name, () => $"{(int) field.GetValue(behavior)}");
+ else if (fieldType == typeof(PerformanceStat))
{
- foreach (var field in type.GetFields().Where(f => f.GetCustomAttribute() != null))
- {
- var fieldType = field.FieldType;
- if (fieldType == typeof(float))
- AddProperty(field.Name, () => $"{((float) field.GetValue(behavior)).SignificantDigits(Context.GameplaySettings.SignificantDigits)}");
- else if (fieldType == typeof(int))
- AddProperty(field.Name, () => $"{(int) field.GetValue(behavior)}");
- else if (fieldType == typeof(PerformanceStat))
- {
- var stat = (PerformanceStat) field.GetValue(behavior);
- AddProperty(field.Name, () => $"{Context.Evaluate(stat, gear).SignificantDigits(Context.GameplaySettings.SignificantDigits)}");
- }
- }
+ var stat = (PerformanceStat) field.GetValue(behavior);
+ AddProperty(field.Name, () => $"{statValueFunction(stat).SignificantDigits(Context.GameplaySettings.SignificantDigits)}");
}
}
}
}
}
- public void AddItemDataProperties(ItemData data)
+ private string GetTitle(EquippableItem item)
+ {
+ var data = Context.ItemData.Get(item.Data);
+ var (tier, upgrades) = Context.GetTier(item);
+ return
+ $"{data.Name} ({tier.Name}{new string('+', upgrades)})";
+ }
+
+ public void Inspect(EquippedItem item)
+ {
+ Clear();
+ if (item?.EquippableItem == null) return;
+
+ Title.text = GetTitle(item.EquippableItem);
+
+ AddItemProperties(item.EquippableItem);
+ AddSpacer();
+
+ AddEquippableItemProperties(item.EquippableItem, item.Evaluate);
+ AddSpacer();
+
+ AddField("Override Shutdown", () => item.EquippableItem.OverrideShutdown, b => item.EquippableItem.OverrideShutdown = b);
+ AddProperty("Temperature", () => (item.Temperature - 273.15f).SignificantDigits(Context.GameplaySettings.SignificantDigits));
+
+ foreach (var behavior in item.Behaviors)
+ {
+ switch (behavior)
+ {
+ case Thermotoggle thermotoggle when thermotoggle.ThermotoggleData.Adjustable:
+ AddField("Target Temperature",
+ () => thermotoggle.TargetTemperature,
+ temp => thermotoggle.TargetTemperature = temp);
+ break;
+ }
+ }
+
+ RefreshValues();
+ }
+
+ public void Inspect(ItemInstance item)
+ {
+ Clear();
+
+ AddItemProperties(item);
+
+ if (item is EquippableItem gear)
+ {
+ Title.text = GetTitle(gear);
+ AddSpacer();
+ AddEquippableItemProperties(gear, stat => Context.Evaluate(stat, gear));
+ }
+
+ RefreshValues();
+ }
+
+ public void Inspect(ItemData data)
{
AddProperty("Type", () => data.Name);
AddProperty(data.Description).Label.fontStyle = FontStyles.Normal;
@@ -453,60 +510,6 @@ public class PropertiesPanel : MonoBehaviour
}
}
- public void AddItemProperties(ItemInstance item)
- {
- var data = Context.ItemData.Get(item.Data);
- AddItemDataProperties(data);
- AddProperty("Mass", () => Context.GetMass(item).SignificantDigits(Context.GameplaySettings.SignificantDigits));
- AddProperty("Thermal Mass", () => Context.GetThermalMass(item).SignificantDigits(Context.GameplaySettings.SignificantDigits));
- if (item is EquippableItem gear)
- {
- var gearData = Context.GetData(gear);
- AddProperty("Durability", () =>
- $"{gear.Durability.SignificantDigits(Context.GameplaySettings.SignificantDigits)}/{gearData.Durability.SignificantDigits(Context.GameplaySettings.SignificantDigits)}");
-
- }
- }
-
- public void Inspect(Entity entity, EquippedItem item)
- {
- if (this is PropertiesList list)
- {
- if (list.Expanded)
- InspectGearInternal();
- else
- list.OnExpand += b =>
- {
- if (b) InspectGearInternal();
- };
- }
- else
- InspectGearInternal();
-
- void InspectGearInternal()
- {
- //Debug.Log($"Refreshing {hardpoint.Gear.Name} properties");
- Clear();
- if (item.EquippableItem != null)
- {
- AddField("Override Shutdown", () => item.EquippableItem.OverrideShutdown, b => item.EquippableItem.OverrideShutdown = b);
- AddProperty("Temperature", () => (item.Temperature - 273.15f).SignificantDigits(Context.GameplaySettings.SignificantDigits));
- AddItemProperties(entity, item.EquippableItem);
- foreach (var behavior in item.Behaviors)
- {
- if(behavior is IPopulationAssignment populationAssignment)
- AddIncrementField("Assigned Population",
- () => populationAssignment.AssignedPopulation,
- p => populationAssignment.AssignedPopulation = p,
- () => 0, () => entity.Population - entity.AssignedPopulation + populationAssignment.AssignedPopulation);
- if (behavior is Thermotoggle thermotoggle)
- AddField("Target Temperature", () => thermotoggle.TargetTemperature, temp => thermotoggle.TargetTemperature = temp);
- }
- }
- RefreshValues();
- }
- }
-
// public void Inspect(object obj, bool inspectablesOnly = false, bool readWrite = false, bool topLevel = true)
// {
// if(topLevel)
diff --git a/Assets/Scripts/UI/TradeMenu.cs b/Assets/Scripts/UI/TradeMenu.cs
index c2b7214d2..aba71b3be 100644
--- a/Assets/Scripts/UI/TradeMenu.cs
+++ b/Assets/Scripts/UI/TradeMenu.cs
@@ -311,11 +311,7 @@ public class TradeMenu : MonoBehaviour
Output = x.output(i),
SortKey = x.sortKey(i.data)
}).ToArray(),
- OnClick = () =>
- {
- Properties.Clear();
- Properties.AddItemProperties(i.item);
- },
+ OnClick = () => Properties.Inspect(i.item),
OnDoubleClick = () =>
{
switch (i.item)
diff --git a/Assets/Scripts/UI/TradeMenuDebug.cs b/Assets/Scripts/UI/TradeMenuDebug.cs
index d73f2d0a7..8494b0876 100644
--- a/Assets/Scripts/UI/TradeMenuDebug.cs
+++ b/Assets/Scripts/UI/TradeMenuDebug.cs
@@ -298,8 +298,7 @@ public class TradeMenuDebug : MonoBehaviour
}).ToArray(),
OnClick = () =>
{
- Properties.Clear();
- Properties.AddItemDataProperties(i);
+ Properties.Inspect(i);
},
OnDoubleClick = () =>
{
diff --git a/Assets/Scripts/Zone Display/ZoneRenderer.cs b/Assets/Scripts/Zone Display/ZoneRenderer.cs
index 70f95c982..e48337f39 100644
--- a/Assets/Scripts/Zone Display/ZoneRenderer.cs
+++ b/Assets/Scripts/Zone Display/ZoneRenderer.cs
@@ -310,11 +310,15 @@ public class ZoneRenderer : MonoBehaviour
if (planetData is SunData sunData)
{
planet = Instantiate(Sun, ZoneRoot);
- var sun = (SunObject) planet;
- sunData.LightColor.Subscribe(c => sun.Light.color = c.ToColor());
- sunData.Mass.Subscribe(m => sun.Light.range = Settings.PlanetSettings.LightRadius.Evaluate(m));
- sunData.FogTintColor.Subscribe(c => sun.FogTint.material.SetColor("_Color", c.ToColor()));
- sunData.Mass.Subscribe(m => sun.FogTint.transform.localScale = Settings.PlanetSettings.FogTintRadius.Evaluate(m) * Vector3.one);
+ var sunObject = (SunObject) planet;
+ var sun = Zone.PlanetInstances[planetData.ID] as Sun;
+ sunData.LightColor.Subscribe(c => sunObject.Light.color = c.ToColor());
+ sun.LightRadius.Subscribe(r =>
+ {
+ sunObject.Light.range = r;
+ sunObject.FogTint.transform.localScale = r * Vector3.one;
+ });
+ sunData.FogTintColor.Subscribe(c => sunObject.FogTint.material.SetColor("_Color", c.ToColor()));
}
else planet = Instantiate(GasGiant, ZoneRoot);
diff --git a/GameData/AetherDB.msgpack b/GameData/AetherDB.msgpack
index 8b380c6b4..b06527dc5 100644
--- a/GameData/AetherDB.msgpack
+++ b/GameData/AetherDB.msgpack
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:40889924e8287dccd631a518b45c3855af7725464c1774db02461315586a517d
-size 75100
+oid sha256:6998b1baab572766bf9a35358b7ba34f6d53d67c85ed8eb388dfc334b52c72fe
+size 75109
diff --git a/GameData/PlayerSettings.msgpack b/GameData/PlayerSettings.msgpack
index 88b51a111..dbb8704e1 100644
--- a/GameData/PlayerSettings.msgpack
+++ b/GameData/PlayerSettings.msgpack
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:34b510af124f286e371cd12eae04c9b4d688582976472cac2008c5b691e0d67e
-size 16955
+oid sha256:584243d86e7507e91e8a2c9b652ff15aa00500cc4fdfa2655be5573b6a26a885
+size 18864