From 352f132e10c500a629f4f5d76f42d076163d97b6 Mon Sep 17 00:00:00 2001 From: Mark Joshwel Date: Sun, 16 Feb 2025 23:04:51 +0800 Subject: [PATCH] game: interim to proper build --- Game/Assets/Scenes/BadEnding.meta | 8 ++ Game/Assets/Scenes/EndingChoice.meta | 8 ++ Game/Assets/Scenes/GoodEnding.meta | 8 ++ Game/Assets/Scenes/Town.unity | 122 +++++++++++++++++- Game/Assets/Scripts/GameManager.cs | 3 +- Game/Assets/Scripts/GoToSchool.cs | 54 +++++--- .../ProjectSettings/EditorBuildSettings.asset | 3 + 7 files changed, 182 insertions(+), 24 deletions(-) create mode 100644 Game/Assets/Scenes/BadEnding.meta create mode 100644 Game/Assets/Scenes/EndingChoice.meta create mode 100644 Game/Assets/Scenes/GoodEnding.meta diff --git a/Game/Assets/Scenes/BadEnding.meta b/Game/Assets/Scenes/BadEnding.meta new file mode 100644 index 0000000..da7a96b --- /dev/null +++ b/Game/Assets/Scenes/BadEnding.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ee1b5b3903862ef4ab785cf76d783c06 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Scenes/EndingChoice.meta b/Game/Assets/Scenes/EndingChoice.meta new file mode 100644 index 0000000..a9138a2 --- /dev/null +++ b/Game/Assets/Scenes/EndingChoice.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4f3faeefa6b829c41a2965c61b927bb7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Scenes/GoodEnding.meta b/Game/Assets/Scenes/GoodEnding.meta new file mode 100644 index 0000000..4f2375b --- /dev/null +++ b/Game/Assets/Scenes/GoodEnding.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6fa6ea06e7b38214ba03759420d3edcd +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/Scenes/Town.unity b/Game/Assets/Scenes/Town.unity index fd02228..47797d4 100644 --- a/Game/Assets/Scenes/Town.unity +++ b/Game/Assets/Scenes/Town.unity @@ -151139,6 +151139,11 @@ Mesh: offset: 0 size: 0 path: +--- !u!4 &759094359 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4454017066184696028, guid: a4a4b6738cb4ba34bb94baa14bd938f0, type: 3} + m_PrefabInstance: {fileID: 960695709} + m_PrefabAsset: {fileID: 0} --- !u!43 &759686539 Mesh: m_ObjectHideFlags: 0 @@ -192769,7 +192774,10 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] - m_AddedGameObjects: [] + m_AddedGameObjects: + - targetCorrespondingSourceObject: {fileID: 6045648537344725186, guid: a4a4b6738cb4ba34bb94baa14bd938f0, type: 3} + insertIndex: -1 + addedObject: {fileID: 1353338154} m_AddedComponents: - targetCorrespondingSourceObject: {fileID: 7277165443329672351, guid: a4a4b6738cb4ba34bb94baa14bd938f0, type: 3} insertIndex: -1 @@ -266473,6 +266481,103 @@ Mesh: offset: 0 size: 0 path: +--- !u!1 &1353338153 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1353338154} + - component: {fileID: 1353338157} + - component: {fileID: 1353338156} + - component: {fileID: 1353338155} + m_Layer: 2 + m_Name: ColliderProxy + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1353338154 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1353338153} + serializedVersion: 2 + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1988509986} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!54 &1353338155 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1353338153} + serializedVersion: 4 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_CenterOfMass: {x: 0, y: 0, z: 0} + m_InertiaTensor: {x: 1, y: 1, z: 1} + m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ImplicitCom: 1 + m_ImplicitTensor: 1 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!114 &1353338156 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1353338153} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 27b115b1b7297054cabb4ec1e403b751, type: 3} + m_Name: + m_EditorClassIdentifier: + xrCamera: {fileID: 759094359} +--- !u!136 &1353338157 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1353338153} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.30148697 + m_Height: 1.214138 + m_Direction: 1 + m_Center: {x: -0.018772125, y: 0.6834488, z: 0} --- !u!1 &1357420348 GameObject: m_ObjectHideFlags: 0 @@ -266552,7 +266657,7 @@ MonoBehaviour: rainAudioSource: {fileID: 684358111} storyPanelUI: {fileID: 1431178180} storyText: {fileID: 1809346053} - parkPondTrigger: {fileID: 1801320667} + parkPondTrigger: {fileID: 1801320666} schoolTrigger: {fileID: 1357420349} xrRig: {fileID: 1988509987} --- !u!43 &1359399347 @@ -351992,6 +352097,7 @@ GameObject: m_Component: - component: {fileID: 1801320668} - component: {fileID: 1801320667} + - component: {fileID: 1801320669} m_Layer: 0 m_Name: GoToPond m_TagString: Untagged @@ -352035,6 +352141,18 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: -42.967, z: 0} +--- !u!114 &1801320669 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1801320666} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 396d8c6bf380c7241bc652343cbf11f6, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!43 &1801863514 Mesh: m_ObjectHideFlags: 0 diff --git a/Game/Assets/Scripts/GameManager.cs b/Game/Assets/Scripts/GameManager.cs index d49284f..cb84eab 100644 --- a/Game/Assets/Scripts/GameManager.cs +++ b/Game/Assets/Scripts/GameManager.cs @@ -195,7 +195,8 @@ public class GameManager : MonoBehaviour private void LoadCallingScene() { Debug.Log("Loading Calling Scene: callingChoice"); - Debug.LogError("not ready yet"); + // Debug.LogError("not ready yet"); // FIXME: SceneManager.LoadScene("CallingChoice"); + SceneManager.LoadScene("EndingChoice"); } } \ No newline at end of file diff --git a/Game/Assets/Scripts/GoToSchool.cs b/Game/Assets/Scripts/GoToSchool.cs index d7a75a3..4a7effc 100644 --- a/Game/Assets/Scripts/GoToSchool.cs +++ b/Game/Assets/Scripts/GoToSchool.cs @@ -30,7 +30,8 @@ public class GoToSchool : MonoBehaviour public TMP_Text storyText; - [Header("Triggers")] public Collider parkPondTrigger; // Assign in Inspector + [Header("Triggers")] + public GameObject parkPondTrigger; // Assign in Inspector public Collider schoolTrigger; // Assign in Inspector @@ -93,29 +94,40 @@ public class GoToSchool : MonoBehaviour } } + private void Start() + { + // override the park pond trigger collider's OnTriggerEnter method + // very hacky, beware! + if (!parkPondTrigger) + throw new System.Exception("park pond trigger not assigned in inspector"); + + // get the TriggerFunctionRemapper component + var triggerFunctionRemapper = parkPondTrigger.GetComponent(); + if (triggerFunctionRemapper == null) + throw new System.Exception("TriggerFunctionRemapper not found on park pond trigger"); + + // // get the Collider component of the park pond trigger + // var parkPondTriggerCollider = parkPondTrigger.GetComponent(); + + // then override the OnTriggerEnter method + triggerFunctionRemapper.Remap((other) => + { + // if not day 2, don't do anything + if (_gameManager.CurrentDay != 2) return; + + Debug.Log("Triggered by: " + other.gameObject.name); + _atPond = true; + StartCoroutine(StayAtPond()); + }); + } + private void OnTriggerEnter(Collider other) { Debug.Log("Triggered by: " + other.gameObject.name); - switch (_gameManager.CurrentDay) - { - // Player arrives at the pond first - // if (!atPond && other == parkPondTrigger) - case 2 when !_atPond && other == parkPondTrigger: - _atPond = true; - StartCoroutine(StayAtPond()); - break; - // if (atPond && other == schoolTrigger) - // Normal case for Day 1 - case 2 when _atPond && other == schoolTrigger: - case 1: - { - _hasTriggered = true; - StartCoroutine(FadeInAndLoadScene()); - _gameManager.GoToSchoolTaskComplete(); - _gameManager.IncrementDay(); - break; - } - } + _hasTriggered = true; + StartCoroutine(FadeInAndLoadScene()); + _gameManager.GoToSchoolTaskComplete(); + _gameManager.IncrementDay(); } private IEnumerator ClearMessageAfterSeconds(float delay) diff --git a/Game/ProjectSettings/EditorBuildSettings.asset b/Game/ProjectSettings/EditorBuildSettings.asset index 5c29060..2ea778c 100644 --- a/Game/ProjectSettings/EditorBuildSettings.asset +++ b/Game/ProjectSettings/EditorBuildSettings.asset @@ -41,6 +41,9 @@ EditorBuildSettings: - enabled: 1 path: Assets/Scenes/BadEnding.unity guid: 0b49410f1606e7c4494b9bdd0df77c9f + - enabled: 1 + path: Assets/Scenes/EndingChoice.unity + guid: 36f01b4c41bd0d64bac998a4c5af9385 m_configObjects: Unity.XR.Oculus.Settings: {fileID: 11400000, guid: bfa1182bd221b4ca89619141f66f1260, type: 2} Unity.XR.WindowsMR.Settings: {fileID: 11400000, guid: dc5a169419fa04987b057f65238cf3ba, type: 2}