diff --git a/.idea/.idea.Aetheria-Economy/.idea/contentModel.xml b/.idea/.idea.Aetheria-Economy/.idea/contentModel.xml
index 90aee212e..ee6b5d753 100644
--- a/.idea/.idea.Aetheria-Economy/.idea/contentModel.xml
+++ b/.idea/.idea.Aetheria-Economy/.idea/contentModel.xml
@@ -2088,6 +2088,7 @@
+
diff --git a/Assembly-CSharp.csproj b/Assembly-CSharp.csproj
index 81b735da5..38b512e74 100644
--- a/Assembly-CSharp.csproj
+++ b/Assembly-CSharp.csproj
@@ -395,6 +395,7 @@
+
diff --git a/Asset Sources/clouds.psd b/Asset Sources/clouds.psd
new file mode 100644
index 000000000..6fa053384
--- /dev/null
+++ b/Asset Sources/clouds.psd
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6d0755dea7b5ab43c12bbd843da3e3435c0964e5ee2e89b539cce380707b97ae
+size 2412596
diff --git a/Asset Sources/triangle.psd b/Asset Sources/triangle.psd
new file mode 100644
index 000000000..f0bca5272
--- /dev/null
+++ b/Asset Sources/triangle.psd
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f4445df8ed91cccba81b0dad63b9baea7e130ec9b890f5e203d4c36bb962fd14
+size 50374
diff --git a/Assets/Materials/Aluminium brushed.mat b/Assets/Materials/Aluminium brushed.mat
index 67365ef29..b8ade999f 100644
--- a/Assets/Materials/Aluminium brushed.mat
+++ b/Assets/Materials/Aluminium brushed.mat
@@ -69,7 +69,7 @@ Material:
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- - _Fade: 1
+ - _Fade: 0
- _FadeEdge: 0.05
- _FadeSharpness: 16
- _GlossMapScale: 1
diff --git a/Assets/Materials/UI/Map Gravity Lines.mat b/Assets/Materials/UI/Map Gravity Lines.mat
index 1ae7b17e2..cf592f684 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: 8.4506855
+ - _Scale: 1.2393435
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
diff --git a/Assets/Resources/Sprites/Indicators/triangleFill.png b/Assets/Resources/Sprites/Indicators/triangleFill.png
new file mode 100644
index 000000000..38ac44781
--- /dev/null
+++ b/Assets/Resources/Sprites/Indicators/triangleFill.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:31ac4884ae92ce43febd9cadc184dadf79f628c7db908bcb7aa6db3527f6b6f5
+size 5493
diff --git a/Assets/Resources/Sprites/Indicators/triangleFill.png.meta b/Assets/Resources/Sprites/Indicators/triangleFill.png.meta
new file mode 100644
index 000000000..39e3ac411
--- /dev/null
+++ b/Assets/Resources/Sprites/Indicators/triangleFill.png.meta
@@ -0,0 +1,108 @@
+fileFormatVersion: 2
+guid: 9e87ff4a45e1fff4e8f210c3c26551a0
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 11
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: -1
+ aniso: -1
+ mipBias: -100
+ wrapU: 1
+ wrapV: 1
+ wrapW: -1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 64
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 64
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/Sprites/Indicators/triangleStroke.png b/Assets/Resources/Sprites/Indicators/triangleStroke.png
new file mode 100644
index 000000000..17869cd49
--- /dev/null
+++ b/Assets/Resources/Sprites/Indicators/triangleStroke.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2c5aa581e7932e225b6f760d2fe44dabd3b42489282c92e3d180806859ab39b6
+size 6606
diff --git a/Assets/Resources/Sprites/Indicators/triangleStroke.png.meta b/Assets/Resources/Sprites/Indicators/triangleStroke.png.meta
new file mode 100644
index 000000000..30fdd13aa
--- /dev/null
+++ b/Assets/Resources/Sprites/Indicators/triangleStroke.png.meta
@@ -0,0 +1,108 @@
+fileFormatVersion: 2
+guid: 9fa59801aac390542a1aab396485ab57
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 11
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: -1
+ aniso: -1
+ mipBias: -100
+ wrapU: 1
+ wrapV: 1
+ wrapW: -1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 64
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 64
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scenes/ARPG.unity b/Assets/Scenes/ARPG.unity
index c07bf563b..bdbe4b14f 100644
--- a/Assets/Scenes/ARPG.unity
+++ b/Assets/Scenes/ARPG.unity
@@ -1759,6 +1759,9 @@ MonoBehaviour:
NoiseFrequency: 0
Canvas: {fileID: 0}
BorderPixels: 10
+ PointAtTarget: 0
+ ScreenSpaceOffset: {x: 0, y: 0}
+ EdgeMargin: 0.1
Target: {x: 0, y: 0, z: 0}
--- !u!1 &166261016
GameObject:
@@ -2948,6 +2951,81 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
+--- !u!1 &221986828
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 221986829}
+ - component: {fileID: 221986831}
+ - component: {fileID: 221986830}
+ m_Layer: 5
+ m_Name: Stroke
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &221986829
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 221986828}
+ 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: 1787772780}
+ m_RootOrder: 1
+ 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!114 &221986830
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 221986828}
+ 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, b: 0, 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: 9fa59801aac390542a1aab396485ab57, 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!222 &221986831
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 221986828}
+ m_CullTransparentMesh: 1
--- !u!1 &232470596
GameObject:
m_ObjectHideFlags: 0
@@ -3932,6 +4010,101 @@ Camera:
m_OcclusionCulling: 0
m_StereoConvergence: 10
m_StereoSeparation: 0.022
+--- !u!1 &328187702
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 328187706}
+ - component: {fileID: 328187705}
+ - component: {fileID: 328187704}
+ - component: {fileID: 328187703}
+ m_Layer: 0
+ m_Name: Sphere
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!135 &328187703
+SphereCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 328187702}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Radius: 0.5
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &328187704
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 328187702}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 5acb4b3490cbda04c85ad7cca3b2b325, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &328187705
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 328187702}
+ m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &328187706
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 328187702}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -1.03, y: -0.16, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 9
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &342600466
PrefabInstance:
m_ObjectHideFlags: 0
@@ -4143,6 +4316,7 @@ RectTransform:
- {fileID: 1284802338}
- {fileID: 1631662978}
- {fileID: 146394775}
+ - {fileID: 1787772780}
m_Father: {fileID: 761574181}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -7758,6 +7932,81 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 574005126}
m_CullTransparentMesh: 1
+--- !u!1 &582989120
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 582989121}
+ - component: {fileID: 582989123}
+ - component: {fileID: 582989122}
+ m_Layer: 5
+ m_Name: Fill
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &582989121
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 582989120}
+ 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: 1787772780}
+ 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!114 &582989122
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 582989120}
+ 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: 21300000, guid: 9e87ff4a45e1fff4e8f210c3c26551a0, type: 3}
+ m_Type: 3
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 1
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 1
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &582989123
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 582989120}
+ m_CullTransparentMesh: 1
--- !u!1 &594274405
GameObject:
m_ObjectHideFlags: 0
@@ -10096,6 +10345,9 @@ MonoBehaviour:
NoiseFrequency: 0
Canvas: {fileID: 761574180}
BorderPixels: 10
+ PointAtTarget: 0
+ ScreenSpaceOffset: {x: 0, y: 0}
+ EdgeMargin: 0.1
Target: {x: 0, y: 0, z: 0}
--- !u!114 &776416426
MonoBehaviour:
@@ -13156,8 +13408,11 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 39f95af24dd29a645895a57a75460b0c, type: 3}
m_Name:
m_EditorClassIdentifier:
+ TargetSpottedBlinkFrequency: 20
+ TargetSpottedBlinkOffset: -0.25
HeatstrokePP: {fileID: 1404901906}
SevereHeatstrokePP: {fileID: 837424435}
+ HostileTargetIndicator: {fileID: 1787772783}
ViewDot: {fileID: 146394778}
TargetIndicator: {fileID: 1556666357}
LockIndicator: {fileID: 1876420642}
@@ -15709,6 +15964,9 @@ MonoBehaviour:
NoiseFrequency: 0
Canvas: {fileID: 761574180}
BorderPixels: 10
+ PointAtTarget: 0
+ ScreenSpaceOffset: {x: 0, y: 0}
+ EdgeMargin: 0.1
Target: {x: 0, y: 0, z: 0}
--- !u!114 &1284802340
MonoBehaviour:
@@ -18509,7 +18767,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
- m_IsActive: 0
+ m_IsActive: 1
--- !u!224 &1556666354
RectTransform:
m_ObjectHideFlags: 0
@@ -18583,6 +18841,9 @@ MonoBehaviour:
NoiseFrequency: 0
Canvas: {fileID: 761574180}
BorderPixels: 10
+ PointAtTarget: 0
+ ScreenSpaceOffset: {x: 0, y: 0}
+ EdgeMargin: 0.1
Target: {x: 0, y: 0, z: 0}
--- !u!1 &1558182380
GameObject:
@@ -19647,6 +19908,9 @@ MonoBehaviour:
NoiseFrequency: 0
Canvas: {fileID: 761574180}
BorderPixels: 10
+ PointAtTarget: 0
+ ScreenSpaceOffset: {x: 0, y: 0}
+ EdgeMargin: 0.1
Target: {x: 0, y: 0, z: 0}
--- !u!114 &1631662980
MonoBehaviour:
@@ -21008,6 +21272,9 @@ MonoBehaviour:
NoiseFrequency: 0
Canvas: {fileID: 761574180}
BorderPixels: 10
+ PointAtTarget: 0
+ ScreenSpaceOffset: {x: 0, y: 0}
+ EdgeMargin: 0.1
Target: {x: 0, y: 0, z: 0}
--- !u!114 &1771741751
MonoBehaviour:
@@ -21152,6 +21419,93 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1783772014}
m_CullTransparentMesh: 0
+--- !u!1 &1787772779
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1787772780}
+ - component: {fileID: 1787772783}
+ - component: {fileID: 1787772782}
+ - component: {fileID: 1787772781}
+ m_Layer: 5
+ m_Name: Visible Hostile
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1787772780
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1787772779}
+ m_LocalRotation: {x: 0, y: 0, z: 1, w: 0}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 582989121}
+ - {fileID: 221986829}
+ m_Father: {fileID: 346000247}
+ m_RootOrder: 12
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: 0, y: 26.1}
+ m_SizeDelta: {x: 32, y: 32}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1787772781
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1787772779}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 79e1b49bde6c1c54aa6b5c2256e0e382, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ NoiseAmplitude: 0
+ NoiseFrequency: 0
+ Canvas: {fileID: 761574180}
+ BorderPixels: 10
+ PointAtTarget: 1
+ ScreenSpaceOffset: {x: 0, y: 25}
+ EdgeMargin: 0.001
+ Target: {x: 0, y: 0, z: 0}
+--- !u!114 &1787772782
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1787772779}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e39172b086df1a44c8da6b3962a5ecd3, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Transform: {fileID: 1787772780}
+ Fill: {fileID: 582989122}
+ Place: {fileID: 1787772781}
+--- !u!114 &1787772783
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1787772779}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
--- !u!1 &1803753852
GameObject:
m_ObjectHideFlags: 0
@@ -21886,6 +22240,9 @@ MonoBehaviour:
NoiseFrequency: 0
Canvas: {fileID: 761574180}
BorderPixels: 10
+ PointAtTarget: 0
+ ScreenSpaceOffset: {x: 0, y: 0}
+ EdgeMargin: 0.1
Target: {x: 0, y: 0, z: 0}
--- !u!114 &1876420642
MonoBehaviour:
@@ -22111,6 +22468,9 @@ MonoBehaviour:
NoiseFrequency: 0
Canvas: {fileID: 761574180}
BorderPixels: 10
+ PointAtTarget: 0
+ ScreenSpaceOffset: {x: 0, y: 0}
+ EdgeMargin: 0.1
Target: {x: 0, y: 0, z: 0}
--- !u!114 &1914685584
MonoBehaviour:
@@ -23633,8 +23993,8 @@ Camera:
m_GameObject: {fileID: 2115559087}
m_Enabled: 1
serializedVersion: 2
- m_ClearFlags: 1
- m_BackGroundColor: {r: 0.5, g: 0.5, b: 0.5, a: 0}
+ m_ClearFlags: 2
+ m_BackGroundColor: {r: 0.319, g: 0.319, b: 0.319, a: 1}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
diff --git a/Assets/Scripts/Gameplay/ActionGameManager.cs b/Assets/Scripts/Gameplay/ActionGameManager.cs
index 5c0da767b..500ae5071 100644
--- a/Assets/Scripts/Gameplay/ActionGameManager.cs
+++ b/Assets/Scripts/Gameplay/ActionGameManager.cs
@@ -23,8 +23,11 @@ using Random = UnityEngine.Random;
public class ActionGameManager : MonoBehaviour
{
+ public float TargetSpottedBlinkFrequency = 20;
+ public float TargetSpottedBlinkOffset = -.25f;
public PostProcessVolume HeatstrokePP;
public PostProcessVolume SevereHeatstrokePP;
+ public Prototype HostileTargetIndicator;
public PlaceUIElementWorldspace ViewDot;
public PlaceUIElementWorldspace TargetIndicator;
public Prototype LockIndicator;
@@ -67,6 +70,7 @@ public class ActionGameManager : MonoBehaviour
private float3 _viewDirection;
private (HardpointData[] hardpoints, Transform[] barrels, PlaceUIElementWorldspace crosshair)[] _articulationGroups;
private (LockWeapon targetLock, PlaceUIElementWorldspace indicator, Rotate spin)[] _lockingIndicators;
+ private Dictionary _visibleHostileIndicators = new Dictionary();
private List _shipSubscriptions = new List();
private float _severeHeatstrokePhase;
@@ -576,21 +580,11 @@ public class ActionGameManager : MonoBehaviour
return (x, i, i.GetComponent());
}).ToArray();
- CurrentShip.HullDamage.Subscribe(f =>
- {
- if (float.IsNaN(CurrentShip.Hull.Durability))
- Debug.Log("WTF!");
- });
- _shipSubscriptions.Add(CurrentShip.Target.Subscribe(target =>
- {
- TargetIndicator.gameObject.SetActive(CurrentShip.Target.Value != null);
- TargetShipPanel.gameObject.SetActive(target != null);
- if (target != null)
- {
- TargetShipPanel.Display(target, true);
- TargetSchematicDisplay.ShowShip(target, CurrentShip);
- }
- }));
+ // CurrentShip.HullDamage.Subscribe(f =>
+ // {
+ // if (float.IsNaN(CurrentShip.Hull.Durability))
+ // Debug.Log("WTF!");
+ // });
//_shipSubscriptions.Add(CurrentShip.HeatstrokeRisk.Subscribe(_ => _severeHeatstrokePhase = 0));
@@ -632,6 +626,36 @@ public class ActionGameManager : MonoBehaviour
crosshair.gameObject.SetActive(false);
foreach (var group in _articulationGroups)
group.crosshair.gameObject.SetActive(true);
+
+ foreach(var subscription in _shipSubscriptions) subscription.Dispose();
+ _shipSubscriptions.Clear();
+
+ _shipSubscriptions.Add(CurrentShip.Target.Subscribe(target =>
+ {
+ TargetIndicator.gameObject.SetActive(CurrentShip.Target.Value != null);
+ TargetShipPanel.gameObject.SetActive(target != null);
+ if (target != null)
+ {
+ TargetShipPanel.Display(target, true);
+ TargetSchematicDisplay.ShowShip(target, CurrentShip);
+ }
+ }));
+
+ foreach (var entity in CurrentShip.VisibleHostiles)
+ {
+ var indicator = HostileTargetIndicator.Instantiate();
+ _visibleHostileIndicators.Add(entity, indicator);
+ }
+ _shipSubscriptions.Add(CurrentShip.VisibleHostiles.ObserveAdd().Subscribe(addEvent =>
+ {
+ var indicator = HostileTargetIndicator.Instantiate();
+ _visibleHostileIndicators.Add(addEvent.Value, indicator);
+ }));
+ _shipSubscriptions.Add(CurrentShip.VisibleHostiles.ObserveRemove().Subscribe(removeEvent =>
+ {
+ _visibleHostileIndicators[removeEvent.Value].GetComponent().ReturnToPool();
+ _visibleHostileIndicators.Remove(removeEvent.Value);
+ }));
}
public void SaveZone() => File.WriteAllBytes(
@@ -674,6 +698,16 @@ public class ActionGameManager : MonoBehaviour
ItemManager.Time = Time.time;
if(CurrentShip !=null && CurrentShip.Parent==null)
{
+ foreach (var indicator in _visibleHostileIndicators)
+ {
+ indicator.Value.gameObject.SetActive(indicator.Key!=CurrentShip.Target.Value);
+ indicator.Value.Place.Target = indicator.Key.Position;
+ indicator.Value.Fill.fillAmount =
+ saturate(indicator.Key.EntityInfoGathered[CurrentShip] / Settings.GameplaySettings.TargetDetectionInfoThreshold);
+ indicator.Value.Fill.enabled =
+ !(indicator.Key.EntityInfoGathered[CurrentShip] > Settings.GameplaySettings.TargetDetectionInfoThreshold) ||
+ sin(TargetSpottedBlinkFrequency * Time.time) + TargetSpottedBlinkOffset > 0;
+ }
var look = _input.Player.Look.ReadValue();
_shipYawPitch = float2(_shipYawPitch.x + look.x * Sensitivity.x, clamp(_shipYawPitch.y + look.y * Sensitivity.y, -.45f * PI, .45f * PI));
_viewDirection = mul(float3(0, 0, 1), Unity.Mathematics.float3x3.Euler(float3(_shipYawPitch.yx, 0), RotationOrder.YXZ));
diff --git a/Assets/Scripts/UI/PlaceUIElementWorldspace.cs b/Assets/Scripts/UI/PlaceUIElementWorldspace.cs
index 8e43ae97a..d4874a456 100644
--- a/Assets/Scripts/UI/PlaceUIElementWorldspace.cs
+++ b/Assets/Scripts/UI/PlaceUIElementWorldspace.cs
@@ -14,6 +14,9 @@ public class PlaceUIElementWorldspace : MonoBehaviour
public float NoiseFrequency;
public Canvas Canvas;
public float BorderPixels = 10;
+ public bool PointAtTarget;
+ public Vector2 ScreenSpaceOffset;
+ public float EdgeMargin = .1f;
public Vector3 Target;
@@ -21,6 +24,8 @@ public class PlaceUIElementWorldspace : MonoBehaviour
private Transform _cameraTransform;
private float _noiseOffset;
private RectTransform _canvasRectTransform;
+ private Camera _mainCamera;
+ private Quaternion _startRotation;
void Start()
{
@@ -28,6 +33,8 @@ public class PlaceUIElementWorldspace : MonoBehaviour
_rectTransform = GetComponent();
_cameraTransform = Camera.main.transform;
_canvasRectTransform = Canvas.GetComponent();
+ _mainCamera = Camera.main;
+ _startRotation = transform.rotation;
}
private void OnEnable()
@@ -42,10 +49,23 @@ public class PlaceUIElementWorldspace : MonoBehaviour
{
_noiseOffset += Time.deltaTime * NoiseFrequency;
- Vector2 screenPoint = RectTransformUtility.WorldToScreenPoint(Camera.main, Target);
+ Vector2 screenPoint = RectTransformUtility.WorldToScreenPoint(_mainCamera, Target);
+ var toTarget = (Target - _mainCamera.transform.position).normalized;
+
screenPoint *= Mathf.Sign(Vector3.Dot(_cameraTransform.forward, Target - _cameraTransform.position));
screenPoint += new Vector2(noise(_noiseOffset), noise(10 + _noiseOffset)) * NoiseAmplitude;
- screenPoint = new Vector2(Mathf.Clamp(screenPoint.x, BorderPixels, Screen.width - BorderPixels),Mathf.Clamp(screenPoint.y, BorderPixels, Screen.height - BorderPixels));
- _rectTransform.anchoredPosition = screenPoint / Canvas.scaleFactor - _canvasRectTransform.sizeDelta / 2f;
+ var clampedPoint = new Vector2(
+ Mathf.Clamp(screenPoint.x, BorderPixels, Screen.width - BorderPixels),
+ Mathf.Clamp(screenPoint.y, BorderPixels, Screen.height - BorderPixels));
+ var toEdge = _mainCamera.ScreenPointToRay(clampedPoint);
+ var edgeLerp = smoothstep(1 - EdgeMargin, 1, dot(toEdge.direction, toTarget));
+ if (PointAtTarget)
+ {
+ transform.rotation = Quaternion.Slerp(
+ Quaternion.LookRotation(Vector3.forward, (screenPoint - clampedPoint).normalized),
+ _startRotation, edgeLerp);
+ }
+ clampedPoint += ScreenSpaceOffset * edgeLerp;
+ _rectTransform.anchoredPosition = clampedPoint / Canvas.scaleFactor - _canvasRectTransform.sizeDelta / 2f;
}
}
\ No newline at end of file
diff --git a/Assets/Scripts/UI/VisibleHostileIndicator.cs b/Assets/Scripts/UI/VisibleHostileIndicator.cs
new file mode 100644
index 000000000..0b70fc62f
--- /dev/null
+++ b/Assets/Scripts/UI/VisibleHostileIndicator.cs
@@ -0,0 +1,11 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+public class VisibleHostileIndicator : MonoBehaviour
+{
+ public RectTransform Transform;
+ public Image Fill;
+ public PlaceUIElementWorldspace Place;
+}
diff --git a/Assets/Scripts/UI/VisibleHostileIndicator.cs.meta b/Assets/Scripts/UI/VisibleHostileIndicator.cs.meta
new file mode 100644
index 000000000..9645a46cd
--- /dev/null
+++ b/Assets/Scripts/UI/VisibleHostileIndicator.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e39172b086df1a44c8da6b3962a5ecd3
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Shaders/GlowFade.shader b/Assets/Shaders/GlowFade.shader
index 7a804521a..eb5dbbdde 100644
--- a/Assets/Shaders/GlowFade.shader
+++ b/Assets/Shaders/GlowFade.shader
@@ -67,7 +67,7 @@ Shader "Aetheria/GlowFade"
void surf (Input IN, inout SurfaceOutputStandard o)
{
- half f = tex2D (_FadeTex, IN.uv_FadeTex).r + (1-_Fade);
+ half f = tex2D (_FadeTex, IN.uv_FadeTex).r + (1-_FadeEdge-_Fade);
half3 e = _EdgeColor * smoothstep(1 - _FadeEdge, 1, f);
o.Emission = e;
// Apply screen space dithering
diff --git a/Assets/Textures/clouds.png b/Assets/Textures/clouds.png
index b7fc0f4af..49a3251d4 100644
--- a/Assets/Textures/clouds.png
+++ b/Assets/Textures/clouds.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:d560c4f091b05d85f4c7301566ed825159c4c103ba30455900a491a074a17cd9
-size 94614
+oid sha256:98a467ba6a03d8bea66d2116d56d0c1fac7096edc775cb48883fb4ce0e4cf4c4
+size 310616