From a51c402fc504c7f7b6632211237ec0cc10024ec3 Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Mon, 12 Apr 2021 04:20:52 +0100 Subject: [PATCH] Reflected Visibility Ships are now more visible in lit areas (depending on cross section stat in Reflector behavior) Refactored all behaviors to remove context & entity references (can get them from equipped item reference if needed) Fixed crash when enemy dies of heatstroke while targeted Exponential decay for visibility now uses correct time-independent formula Refactored item inspection in properties panel (now consistent between equipped items vs. inventory and store items, shows effect of heat on stats) Reordered item properties and added spacing between groups --- Aetheria.Shared.Unity.csproj | 1 - Assets/Materials/UI/Map Gravity Lines.mat | 2 +- Assets/Prefabs/UI/Main Menu Canvas.prefab | 2 + .../Properties Panel/Properties Panel.prefab | 788 ------------------ .../UI/Properties Panel/Properties.prefab | 1 + .../Properties Panel/Property List 1.prefab | 3 + .../UI/Properties Panel/Property List.prefab | 3 + .../Prefabs/UI/Properties Panel/Spacer.prefab | 58 ++ ...s Panel.prefab.meta => Spacer.prefab.meta} | 2 +- Assets/Scenes/ARPG.unity | 190 ++--- Assets/Scenes/Main Menu.unity | 17 +- Assets/Scripts/Gameplay/ActionGameManager.cs | 17 +- Assets/Scripts/Gameplay/ShipInstance.cs | 2 +- Assets/Scripts/ServerShared/AetheriaMath.cs | 10 + .../ServerShared/Behaviors/AutoWeapon.cs | 6 +- .../ServerShared/Behaviors/Behaviors.cs | 4 +- .../ServerShared/Behaviors/Capacitor.cs | 10 +- .../ServerShared/Behaviors/ChargedWeapon.cs | 6 +- .../Scripts/ServerShared/Behaviors/Cockpit.cs | 10 +- .../ServerShared/Behaviors/ConstantWeapon.cs | 12 +- .../ServerShared/Behaviors/Cooldown.cs | 10 +- .../ServerShared/Behaviors/EnergyDraw.cs | 12 +- Assets/Scripts/ServerShared/Behaviors/Heat.cs | 10 +- .../ServerShared/Behaviors/HeatStorage.cs | 10 +- .../ServerShared/Behaviors/InstantWeapon.cs | 14 +- .../ServerShared/Behaviors/ItemUsage.cs | 12 +- .../ServerShared/Behaviors/Launcher.cs | 8 +- .../ServerShared/Behaviors/LockWeapon.cs | 18 +- .../ServerShared/Behaviors/MiningTool.cs | 20 +- .../ServerShared/Behaviors/Radiance.cs | 45 - .../ServerShared/Behaviors/Radiance.cs.meta | 11 - .../ServerShared/Behaviors/Radiator.cs | 18 +- .../Scripts/ServerShared/Behaviors/Reactor.cs | 14 +- .../ServerShared/Behaviors/Reflector.cs | 15 +- .../ServerShared/Behaviors/ResourceScanner.cs | 16 +- .../Scripts/ServerShared/Behaviors/Sensor.cs | 75 +- .../Scripts/ServerShared/Behaviors/Shield.cs | 14 +- .../ServerShared/Behaviors/StatModifier.cs | 30 +- .../Scripts/ServerShared/Behaviors/Switch.cs | 10 +- .../ServerShared/Behaviors/Thermotoggle.cs | 14 +- .../ServerShared/Behaviors/Thruster.cs | 24 +- .../Scripts/ServerShared/Behaviors/Trigger.cs | 14 +- .../Behaviors/TurretController.cs | 40 +- .../Behaviors/VelocityConversion.cs | 18 +- .../ServerShared/Behaviors/VelocityLimit.cs | 24 +- .../ServerShared/Behaviors/Visibility.cs | 23 +- .../Scripts/ServerShared/Behaviors/Weapon.cs | 8 +- Assets/Scripts/ServerShared/Behaviors/Wear.cs | 12 +- Assets/Scripts/ServerShared/Entity.cs | 6 +- Assets/Scripts/ServerShared/Settings.cs | 1 - Assets/Scripts/ServerShared/Zone.cs | 40 +- Assets/Scripts/ServerShared/ZoneData.cs | 3 + Assets/Scripts/UI/InventoryMenu.cs | 5 +- Assets/Scripts/UI/PropertiesPanel.cs | 193 ++--- Assets/Scripts/UI/TradeMenu.cs | 6 +- Assets/Scripts/UI/TradeMenuDebug.cs | 3 +- Assets/Scripts/Zone Display/ZoneRenderer.cs | 14 +- GameData/AetherDB.msgpack | 4 +- GameData/PlayerSettings.msgpack | 4 +- 59 files changed, 557 insertions(+), 1405 deletions(-) delete mode 100644 Assets/Prefabs/UI/Properties Panel/Properties Panel.prefab create mode 100644 Assets/Prefabs/UI/Properties Panel/Spacer.prefab rename Assets/Prefabs/UI/Properties Panel/{Properties Panel.prefab.meta => Spacer.prefab.meta} (74%) delete mode 100644 Assets/Scripts/ServerShared/Behaviors/Radiance.cs delete mode 100644 Assets/Scripts/ServerShared/Behaviors/Radiance.cs.meta 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