diff --git a/Assembly-CSharp.csproj b/Assembly-CSharp.csproj
index c56f181..7594f02 100644
--- a/Assembly-CSharp.csproj
+++ b/Assembly-CSharp.csproj
@@ -64,6 +64,7 @@
+
@@ -74,10 +75,15 @@
+
+
+
+
+
diff --git a/Assets/Prefabs/Player.prefab b/Assets/Prefabs/Player.prefab
index 60f70e5..1c89edd 100644
--- a/Assets/Prefabs/Player.prefab
+++ b/Assets/Prefabs/Player.prefab
@@ -229,8 +229,10 @@ MonoBehaviour:
throwChargeTime: 0.75
throwUpwardForce: 0
throwTriggerThreshold: 0.6
+ dropClearance: 0.2
holdPoint: {fileID: 5569302833446856119}
pickupRange: 1
+ heldObject: {fileID: 0}
--- !u!114 &9133098163257611752
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -243,9 +245,12 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: b88e05c37f07ccf48bcc436a9d7def5d, type: 3}
m_Name:
m_EditorClassIdentifier: '::'
- pickupController: {fileID: 0}
+ pickupController: {fileID: 3659140714710275197}
currentStress: 0
maxStress: 100
+ isPanicking: 0
+ isParalyzed: 0
+ paralyseDuration: 1.2
--- !u!1 &6898135930931977916
GameObject:
m_ObjectHideFlags: 0
@@ -272,7 +277,7 @@ Transform:
m_GameObject: {fileID: 6898135930931977916}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: -0.18, y: 1.58, z: 0}
+ m_LocalPosition: {x: -0.18, y: 1.95, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
diff --git a/Assets/ProgressBar.uss b/Assets/ProgressBar.uss
new file mode 100644
index 0000000..b52cb3d
--- /dev/null
+++ b/Assets/ProgressBar.uss
@@ -0,0 +1,3 @@
+:root {
+
+}
\ No newline at end of file
diff --git a/Assets/ProgressBar.uss.meta b/Assets/ProgressBar.uss.meta
new file mode 100644
index 0000000..f789b00
--- /dev/null
+++ b/Assets/ProgressBar.uss.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 71c3121e1dfba1d4996a4dbee8b00bf3
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
+ disableValidation: 0
+ unsupportedSelectorAction: 0
diff --git a/Assets/Scenes/Experiment.unity b/Assets/Scenes/Experiment.unity
index 4c658e4..605cf57 100644
--- a/Assets/Scenes/Experiment.unity
+++ b/Assets/Scenes/Experiment.unity
@@ -185,7 +185,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 3937090937419967315, guid: 414ae949bae840c4589b38dd91c715e0, type: 3}
propertyPath: m_Name
- value: Player (4)
+ value: Player3 (4)
objectReference: {fileID: 0}
- target: {fileID: 7763498473808654306, guid: 414ae949bae840c4589b38dd91c715e0, type: 3}
propertyPath: moveSpeed
@@ -211,6 +211,18 @@ PrefabInstance:
propertyPath: m_GravityScale
value: 2
objectReference: {fileID: 0}
+ - target: {fileID: 8870760143677714522, guid: 414ae949bae840c4589b38dd91c715e0, type: 3}
+ propertyPath: m_Color.b
+ value: 0.5896226
+ objectReference: {fileID: 0}
+ - target: {fileID: 8870760143677714522, guid: 414ae949bae840c4589b38dd91c715e0, type: 3}
+ propertyPath: m_Color.g
+ value: 0.99573493
+ objectReference: {fileID: 0}
+ - target: {fileID: 8870760143677714522, guid: 414ae949bae840c4589b38dd91c715e0, type: 3}
+ propertyPath: m_Color.r
+ value: 1
+ objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
@@ -227,6 +239,7 @@ GameObject:
- component: {fileID: 375061916}
- component: {fileID: 375061915}
- component: {fileID: 375061917}
+ - component: {fileID: 375061918}
m_Layer: 5
m_Name: GameGUI
m_TagString: Untagged
@@ -285,6 +298,24 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::ScoreManager
Score: 0
+--- !u!114 &375061918
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 375061914}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 09397b12132be4248998c82e96a8b7c4, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: '::'
+ images:
+ - {fileID: 21300000, guid: 03a067405c8cfa945a9ed2e8ff6a71dd, type: 3}
+ - {fileID: 21300000, guid: 4dca6d41e377b4b47ab35b821674514c, type: 3}
+ - {fileID: 21300000, guid: 8abb37071992fbc449fda9db6b2d86f4, type: 3}
+ - {fileID: 21300000, guid: 4b346aed0900f3c469fd51c6fa693e49, type: 3}
+ - {fileID: 21300000, guid: 33f209566f1f6ca44a4c7ae3f01d9bf5, type: 3}
--- !u!1001 &377513953
PrefabInstance:
m_ObjectHideFlags: 0
@@ -377,6 +408,18 @@ PrefabInstance:
propertyPath: m_GravityScale
value: 2
objectReference: {fileID: 0}
+ - target: {fileID: 8870760143677714522, guid: 414ae949bae840c4589b38dd91c715e0, type: 3}
+ propertyPath: m_Color.b
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 8870760143677714522, guid: 414ae949bae840c4589b38dd91c715e0, type: 3}
+ propertyPath: m_Color.g
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 8870760143677714522, guid: 414ae949bae840c4589b38dd91c715e0, type: 3}
+ propertyPath: m_Color.r
+ value: 0.654902
+ objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
@@ -722,8 +765,8 @@ Camera:
m_GameObject: {fileID: 486463122}
m_Enabled: 1
serializedVersion: 2
- m_ClearFlags: 1
- m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+ m_ClearFlags: 2
+ m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
@@ -833,8 +876,9 @@ GameObject:
m_Component:
- component: {fileID: 491328828}
- component: {fileID: 491328827}
+ - component: {fileID: 491328829}
m_Layer: 0
- m_Name: WinManager
+ m_Name: GameManager
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -868,6 +912,18 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &491328829
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 491328826}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f5cdb566677d77e438cdf195197a5b85, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::LoseScreenController
--- !u!1 &495541363
GameObject:
m_ObjectHideFlags: 0
@@ -1196,6 +1252,18 @@ PrefabInstance:
propertyPath: m_Name
value: Player (1)
objectReference: {fileID: 0}
+ - target: {fileID: 8870760143677714522, guid: 414ae949bae840c4589b38dd91c715e0, type: 3}
+ propertyPath: m_Color.b
+ value: 0.6462264
+ objectReference: {fileID: 0}
+ - target: {fileID: 8870760143677714522, guid: 414ae949bae840c4589b38dd91c715e0, type: 3}
+ propertyPath: m_Color.g
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 8870760143677714522, guid: 414ae949bae840c4589b38dd91c715e0, type: 3}
+ propertyPath: m_Color.r
+ value: 0.71244085
+ objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
@@ -1529,120 +1597,6 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &1063739947
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1063739950}
- - component: {fileID: 1063739949}
- - component: {fileID: 1063739948}
- m_Layer: 0
- m_Name: P_Run01
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!95 &1063739948
-Animator:
- serializedVersion: 7
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1063739947}
- m_Enabled: 1
- m_Avatar: {fileID: 0}
- m_Controller: {fileID: 9100000, guid: 86632cb6b3835a44e87fb6f039478d61, type: 2}
- m_CullingMode: 0
- m_UpdateMode: 0
- m_ApplyRootMotion: 0
- m_LinearVelocityBlending: 0
- m_StabilizeFeet: 0
- m_AnimatePhysics: 0
- m_WarningMessage:
- m_HasTransformHierarchy: 1
- m_AllowConstantClipSamplingOptimization: 1
- m_KeepAnimatorStateOnDisable: 0
- m_WriteDefaultValuesOnDisable: 0
---- !u!212 &1063739949
-SpriteRenderer:
- serializedVersion: 2
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1063739947}
- m_Enabled: 1
- m_CastShadows: 0
- m_ReceiveShadows: 0
- m_DynamicOccludee: 1
- m_StaticShadowCaster: 0
- m_MotionVectors: 1
- m_LightProbeUsage: 1
- m_ReflectionProbeUsage: 1
- m_RayTracingMode: 0
- m_RayTraceProcedural: 0
- m_RayTracingAccelStructBuildFlagsOverride: 0
- m_RayTracingAccelStructBuildFlags: 1
- m_SmallMeshCulling: 1
- m_ForceMeshLod: -1
- m_MeshLodSelectionBias: 0
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, 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: 0
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_GlobalIlluminationMeshLod: 0
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: 0
- m_MaskInteraction: 0
- m_Sprite: {fileID: 21300000, guid: c28a83d936216af40976803e59feffac, type: 3}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_FlipX: 0
- m_FlipY: 0
- m_DrawMode: 0
- m_Size: {x: 2.87, y: 3.58}
- m_AdaptiveModeThreshold: 0.5
- m_SpriteTileMode: 0
- m_WasSpriteAssigned: 1
- m_SpriteSortPoint: 0
---- !u!4 &1063739950
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1063739947}
- serializedVersion: 2
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 8.13, y: 0.17, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 0}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1118230342
GameObject:
m_ObjectHideFlags: 0
@@ -2262,6 +2216,18 @@ PrefabInstance:
propertyPath: m_GravityScale
value: 2
objectReference: {fileID: 0}
+ - target: {fileID: 8870760143677714522, guid: 414ae949bae840c4589b38dd91c715e0, type: 3}
+ propertyPath: m_Color.b
+ value: 0.7791217
+ objectReference: {fileID: 0}
+ - target: {fileID: 8870760143677714522, guid: 414ae949bae840c4589b38dd91c715e0, type: 3}
+ propertyPath: m_Color.g
+ value: 0.69411767
+ objectReference: {fileID: 0}
+ - target: {fileID: 8870760143677714522, guid: 414ae949bae840c4589b38dd91c715e0, type: 3}
+ propertyPath: m_Color.r
+ value: 1
+ objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
@@ -2916,5 +2882,4 @@ SceneRoots:
- {fileID: 2100000001}
- {fileID: 2100000101}
- {fileID: 2200000001}
- - {fileID: 1063739950}
- {fileID: 491328828}
diff --git a/Assets/Scenes/Lose.unity b/Assets/Scenes/Lose.unity
index 9e0df59..cd62a73 100644
--- a/Assets/Scenes/Lose.unity
+++ b/Assets/Scenes/Lose.unity
@@ -129,6 +129,7 @@ GameObject:
m_Component:
- component: {fileID: 159786491}
- component: {fileID: 159786490}
+ - component: {fileID: 159786492}
m_Layer: 5
m_Name: UIdocument
m_TagString: Untagged
@@ -174,6 +175,18 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &159786492
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 159786489}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 9c38ae32eef77b54bb36b487e11c7422, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: '::'
--- !u!1 &168139977
GameObject:
m_ObjectHideFlags: 0
@@ -185,6 +198,7 @@ GameObject:
- component: {fileID: 168139980}
- component: {fileID: 168139979}
- component: {fileID: 168139978}
+ - component: {fileID: 168139981}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
@@ -266,6 +280,50 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &168139981
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 168139977}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalCameraData
+ m_RenderShadows: 1
+ m_RequiresDepthTextureOption: 2
+ m_RequiresOpaqueTextureOption: 2
+ m_CameraType: 0
+ m_Cameras: []
+ m_RendererIndex: -1
+ m_VolumeLayerMask:
+ serializedVersion: 2
+ m_Bits: 1
+ m_VolumeTrigger: {fileID: 0}
+ m_VolumeFrameworkUpdateModeOption: 2
+ m_RenderPostProcessing: 0
+ m_Antialiasing: 0
+ m_AntialiasingQuality: 2
+ m_StopNaN: 0
+ m_Dithering: 0
+ m_ClearDepth: 1
+ m_AllowXRRendering: 1
+ m_AllowHDROutput: 1
+ m_UseScreenCoordOverride: 0
+ m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0}
+ m_RequiresDepthTexture: 0
+ m_RequiresColorTexture: 0
+ m_TaaSettings:
+ m_Quality: 3
+ m_FrameInfluence: 0.1
+ m_JitterScale: 1
+ m_MipBias: 0
+ m_VarianceClampScale: 0.9
+ m_ContrastAdaptiveSharpening: 0
+ m_Version: 2
--- !u!1660057539 &9223372036854775807
SceneRoots:
m_ObjectHideFlags: 0
diff --git a/Assets/Scripts/HealthGUIController.cs b/Assets/Scripts/HealthGUIController.cs
new file mode 100644
index 0000000..60d1a16
--- /dev/null
+++ b/Assets/Scripts/HealthGUIController.cs
@@ -0,0 +1,84 @@
+using System.Collections.Generic;
+using System.Linq;
+using UnityEngine;
+using UnityEngine.UIElements;
+using static UnityEditor.Experimental.GraphView.GraphView;
+
+public class HealthGUIController : MonoBehaviour
+{
+ private List players;
+
+ public List images;
+
+ private UIDocument uiDocument;
+ private List playerLifeList;
+ private List playerStressBarList;
+
+ void Awake()
+ {
+ players = Object.FindObjectsByType(FindObjectsSortMode.InstanceID).ToList();
+
+ uiDocument ??= GetComponent();
+ if (uiDocument == null)
+ {
+ return;
+ }
+
+ var root = uiDocument.rootVisualElement;
+ if (root == null)
+ {
+ return;
+ }
+
+ playerLifeList = new List() { new Image(), new Image(), new Image(), new Image() };
+ playerStressBarList = new List() { new ProgressBar(), new ProgressBar(), new ProgressBar(), new ProgressBar() };
+
+ playerLifeList[0] = root.Q("Player1Life");
+ playerLifeList[1] = root.Q("Player2Life");
+ playerLifeList[2] = root.Q("Player3Life");
+ playerLifeList[3] = root.Q("Player4Life");
+
+ playerLifeList[0].tintColor = players[0].gameObject.GetComponent() ? players[0].gameObject.GetComponent().color : Color.white;
+ playerLifeList[1].tintColor = players[1].gameObject.GetComponent() ? players[1].gameObject.GetComponent().color : Color.white;
+ playerLifeList[2].tintColor = players[2].gameObject.GetComponent() ? players[2].gameObject.GetComponent().color : Color.white;
+ playerLifeList[3].tintColor = players[3].gameObject.GetComponent() ? players[3].gameObject.GetComponent().color : Color.white;
+
+ playerStressBarList[0] = root.Q("Player1StressBar");
+ playerStressBarList[1] = root.Q("Player2StressBar");
+ playerStressBarList[2] = root.Q("Player3StressBar");
+ playerStressBarList[3] = root.Q("Player4StressBar");
+ }
+
+
+ // Update is called once per frame
+ void Update()
+ {
+ for (int i = 0; i < players.Count; i++)
+ {
+ //update stress bar
+ float ratio = Mathf.Clamp01(players[i].currentStress / players[i].maxStress);
+
+ // Update the bar's value (0-100)
+ playerStressBarList[i].value = ratio * 100f;
+
+
+ //update sprite
+ playerLifeList[i].sprite = players[i].currentStress switch
+ {
+ >= 0 and <= 33 => images[0],
+ > 33 and <= 66 => images[1],
+ > 66 and <= 99 => images[2],
+ _ => images[0]
+ };
+
+ if (players[i].isParalyzed)
+ {
+ playerLifeList[i].sprite = images[3];
+ }
+ else if (players[i].isPanicking)
+ {
+ playerLifeList[i].sprite = images[4];
+ }
+ }
+ }
+}
diff --git a/Assets/Scripts/HealthGUIController.cs.meta b/Assets/Scripts/HealthGUIController.cs.meta
new file mode 100644
index 0000000..112e912
--- /dev/null
+++ b/Assets/Scripts/HealthGUIController.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 09397b12132be4248998c82e96a8b7c4
\ No newline at end of file
diff --git a/Assets/Scripts/LoseGuiController.cs b/Assets/Scripts/LoseGuiController.cs
new file mode 100644
index 0000000..288339e
--- /dev/null
+++ b/Assets/Scripts/LoseGuiController.cs
@@ -0,0 +1,37 @@
+using UnityEngine;
+using UnityEngine.SceneManagement;
+using UnityEngine.UIElements;
+
+public class LoseGuiController : MonoBehaviour
+{
+ private UIDocument uiDocument;
+ private Button button;
+
+ // Start is called once before the first execution of Update after the MonoBehaviour is created
+ private void OnEnable()
+ {
+ uiDocument ??= GetComponent();
+ if (uiDocument == null)
+ {
+ return;
+ }
+
+ var root = uiDocument.rootVisualElement;
+ if (root == null)
+ {
+ return;
+ }
+
+ button = root.Q