From d20503fd9bed0fddf2f3f8c867771b9127025332 Mon Sep 17 00:00:00 2001 From: alantrix0012 Date: Fri, 30 Jan 2026 19:04:14 +0530 Subject: [PATCH] Added player count visual updates --- .../Prefabs/Characters/Pirate (Blue).prefab | 113 +++++++++++++ .../Prefabs/Characters/Pirate (Green).prefab | 157 ++++++++++++++++++ .../Prefabs/Characters/Pirate (Grey).prefab | 157 ++++++++++++++++++ Assets/Prefabs/Characters/Pirate (Red).prefab | 157 ++++++++++++++++++ Assets/Prefabs/UI/Canvas - World.prefab | 24 ++- Assets/Scripts/Gameplay/GameplayManager.cs | 105 +++++++++--- Assets/Scripts/Gameplay/Player/PlayerPawn.cs | 11 ++ Assets/Scripts/Input/DiceRollHandler.cs | 18 +- Assets/Scripts/UI/Player Count.meta | 8 + .../UI/Player Count/PlayerCountCanvas.cs | 21 +++ .../UI/Player Count/PlayerCountCanvas.cs.meta | 11 ++ 11 files changed, 752 insertions(+), 30 deletions(-) create mode 100644 Assets/Scripts/UI/Player Count.meta create mode 100644 Assets/Scripts/UI/Player Count/PlayerCountCanvas.cs create mode 100644 Assets/Scripts/UI/Player Count/PlayerCountCanvas.cs.meta diff --git a/Assets/Prefabs/Characters/Pirate (Blue).prefab b/Assets/Prefabs/Characters/Pirate (Blue).prefab index aa6df19..4685476 100644 --- a/Assets/Prefabs/Characters/Pirate (Blue).prefab +++ b/Assets/Prefabs/Characters/Pirate (Blue).prefab @@ -576,6 +576,7 @@ Transform: m_Children: - {fileID: 4424967554755073335} - {fileID: 534221319385673590} + - {fileID: 3729843840315893126} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -628,6 +629,7 @@ MonoBehaviour: m_EditorClassIdentifier: playerState: 0 animator: {fileID: 5526766409186502679} + playerCountCanvasPrefab: {fileID: 9029553984926861784} --- !u!1 &4818123989977612668 GameObject: m_ObjectHideFlags: 0 @@ -1514,3 +1516,114 @@ Transform: m_Father: {fileID: 724652835177063243} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &4537709141704337870 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5420572229297639394} + m_Modifications: + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_SizeDelta.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_SizeDelta.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_AnchoredPosition.y + value: 2.239 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4879164135252893718, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_Name + value: Canvas - World + objectReference: {fileID: 0} + - target: {fileID: 4879164135252893718, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} +--- !u!224 &3729843840315893126 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + m_PrefabInstance: {fileID: 4537709141704337870} + m_PrefabAsset: {fileID: 0} +--- !u!1 &9029553984926861784 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 4879164135252893718, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + m_PrefabInstance: {fileID: 4537709141704337870} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Prefabs/Characters/Pirate (Green).prefab b/Assets/Prefabs/Characters/Pirate (Green).prefab index 5fec3a4..ca65991 100644 --- a/Assets/Prefabs/Characters/Pirate (Green).prefab +++ b/Assets/Prefabs/Characters/Pirate (Green).prefab @@ -576,6 +576,7 @@ Transform: m_Children: - {fileID: 4101024636752269533} - {fileID: 209575521726294684} + - {fileID: 1276728539856229656} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -628,6 +629,7 @@ MonoBehaviour: m_EditorClassIdentifier: playerState: 0 animator: {fileID: 5274388487207906813} + playerCountCanvasPrefab: {fileID: 6862258105288866118} --- !u!1 &5059623752267150313 GameObject: m_ObjectHideFlags: 0 @@ -1514,3 +1516,158 @@ Transform: m_Father: {fileID: 1832908541896867547} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &2057554100330600784 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5672526856521419272} + m_Modifications: + - target: {fileID: 65645560966781747, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 65645560966781747, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 65645560966781747, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 65645560966781747, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 65645560966781747, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_SizeDelta.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_SizeDelta.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_AnchoredPosition.y + value: 2.239 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4879164135252893718, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_Name + value: Canvas - World + objectReference: {fileID: 0} + - target: {fileID: 4879164135252893718, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8752947010238866161, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_Color.b + value: 0.1882353 + objectReference: {fileID: 0} + - target: {fileID: 8752947010238866161, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_Color.g + value: 0.52156866 + objectReference: {fileID: 0} + - target: {fileID: 8752947010238866161, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_Color.r + value: 0.13333334 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} +--- !u!224 &1276728539856229656 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + m_PrefabInstance: {fileID: 2057554100330600784} + m_PrefabAsset: {fileID: 0} +--- !u!1 &6862258105288866118 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 4879164135252893718, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + m_PrefabInstance: {fileID: 2057554100330600784} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Prefabs/Characters/Pirate (Grey).prefab b/Assets/Prefabs/Characters/Pirate (Grey).prefab index 6a19187..cd964e9 100644 --- a/Assets/Prefabs/Characters/Pirate (Grey).prefab +++ b/Assets/Prefabs/Characters/Pirate (Grey).prefab @@ -162,6 +162,7 @@ Transform: m_Children: - {fileID: 8277875877323360066} - {fileID: 5251663078533119235} + - {fileID: 7416033585674372540} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -200,6 +201,7 @@ MonoBehaviour: m_EditorClassIdentifier: playerState: 0 animator: {fileID: 232863433340697214} + playerCountCanvasPrefab: {fileID: 2911420982173280738} --- !u!136 &1627116187348267135 CapsuleCollider: m_ObjectHideFlags: 0 @@ -1514,3 +1516,158 @@ Transform: m_Father: {fileID: 8503180080140070530} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &7769048123306772980 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 338321318880370071} + m_Modifications: + - target: {fileID: 65645560966781747, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 65645560966781747, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 65645560966781747, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 65645560966781747, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 65645560966781747, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_SizeDelta.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_SizeDelta.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_AnchoredPosition.y + value: 2.239 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4879164135252893718, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_Name + value: Canvas - World + objectReference: {fileID: 0} + - target: {fileID: 4879164135252893718, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8752947010238866161, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_Color.b + value: 0.7294118 + objectReference: {fileID: 0} + - target: {fileID: 8752947010238866161, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_Color.g + value: 0.6666667 + objectReference: {fileID: 0} + - target: {fileID: 8752947010238866161, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_Color.r + value: 0.6313726 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} +--- !u!1 &2911420982173280738 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 4879164135252893718, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + m_PrefabInstance: {fileID: 7769048123306772980} + m_PrefabAsset: {fileID: 0} +--- !u!224 &7416033585674372540 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + m_PrefabInstance: {fileID: 7769048123306772980} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Prefabs/Characters/Pirate (Red).prefab b/Assets/Prefabs/Characters/Pirate (Red).prefab index 3c33f82..351a27c 100644 --- a/Assets/Prefabs/Characters/Pirate (Red).prefab +++ b/Assets/Prefabs/Characters/Pirate (Red).prefab @@ -1205,6 +1205,7 @@ Transform: m_Children: - {fileID: 2133300963410926754} - {fileID: 2853674755695388387} + - {fileID: 8164022016059970845} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -1257,6 +1258,7 @@ MonoBehaviour: m_EditorClassIdentifier: playerState: 0 animator: {fileID: 7800412279828783518} + playerCountCanvasPrefab: {fileID: 4593694095142779203} --- !u!1 &7074820051352815849 GameObject: m_ObjectHideFlags: 0 @@ -1514,3 +1516,158 @@ Transform: m_Father: {fileID: 5537228651064754093} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &8968445451050703189 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7767047851774264951} + m_Modifications: + - target: {fileID: 65645560966781747, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 65645560966781747, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 65645560966781747, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 65645560966781747, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 65645560966781747, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_SizeDelta.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_SizeDelta.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_AnchoredPosition.y + value: 2.239 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4879164135252893718, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_Name + value: Canvas - World + objectReference: {fileID: 0} + - target: {fileID: 4879164135252893718, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8752947010238866161, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_Color.b + value: 0.19607843 + objectReference: {fileID: 0} + - target: {fileID: 8752947010238866161, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_Color.g + value: 0.17254902 + objectReference: {fileID: 0} + - target: {fileID: 8752947010238866161, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + propertyPath: m_Color.r + value: 0.46666667 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} +--- !u!1 &4593694095142779203 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 4879164135252893718, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + m_PrefabInstance: {fileID: 8968445451050703189} + m_PrefabAsset: {fileID: 0} +--- !u!224 &8164022016059970845 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} + m_PrefabInstance: {fileID: 8968445451050703189} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Prefabs/UI/Canvas - World.prefab b/Assets/Prefabs/UI/Canvas - World.prefab index 252f00c..afb8a07 100644 --- a/Assets/Prefabs/UI/Canvas - World.prefab +++ b/Assets/Prefabs/UI/Canvas - World.prefab @@ -25,7 +25,7 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1950433650452808236} - m_LocalRotation: {x: -0, y: -0.40670383, z: -0, w: 0.91356015} + 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 @@ -34,7 +34,7 @@ RectTransform: - {fileID: 6813413954384782979} m_Father: {fileID: 953143927943285832} m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: -47.996, z: 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} @@ -61,7 +61,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Color: {r: 0.1254902, g: 0.42352942, b: 0.75686276, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -166,6 +166,7 @@ GameObject: - component: {fileID: 5587250865659051320} - component: {fileID: 1334714064113256010} - component: {fileID: 2739169735767897497} + - component: {fileID: 8176763997504289913} m_Layer: 5 m_Name: Canvas - World m_TagString: Untagged @@ -182,7 +183,7 @@ RectTransform: m_GameObject: {fileID: 4879164135252893718} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 3, y: 3, z: 3} + m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - {fileID: 65645560966781747} @@ -238,7 +239,7 @@ MonoBehaviour: m_FallbackScreenDPI: 96 m_DefaultSpriteDPI: 96 m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 1 + m_PresetInfoIsWorld: 0 --- !u!114 &2739169735767897497 MonoBehaviour: m_ObjectHideFlags: 0 @@ -256,6 +257,19 @@ MonoBehaviour: m_BlockingMask: serializedVersion: 2 m_Bits: 4294967295 +--- !u!114 &8176763997504289913 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4879164135252893718} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 12325a6692b2349b5992ec00a2cf8162, type: 3} + m_Name: + m_EditorClassIdentifier: + playerCountText: {fileID: 5414082930131347236} --- !u!1 &8183529856602442984 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Gameplay/GameplayManager.cs b/Assets/Scripts/Gameplay/GameplayManager.cs index 1620f86..32d5d98 100644 --- a/Assets/Scripts/Gameplay/GameplayManager.cs +++ b/Assets/Scripts/Gameplay/GameplayManager.cs @@ -68,7 +68,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader private Dictionary playerGameDatasDict = new Dictionary(); // botRuntimeMovementData: where can the bot move if a particular dice value is thrown, and based on the value set the bot move for each using a predictive approach and select based on the the priority - private Dictionary> botRuntimeMovementData = new Dictionary>(); + private Dictionary> botRuntimeMovementData = new Dictionary>(); private TilesManager tilesManager; @@ -85,7 +85,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader get; private set; } public List PlayerTypesCollection => allPlayerTypes; - + public void Initialize() { InterfaceManager.Instance?.RegisterInterface(this); @@ -96,7 +96,8 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader { tilesManager = InterfaceManager.Instance.GetInterfaceInstance(); - InitPlayerTypesForBotMatch(PlayerType.Player1, 3); + // InitPlayerTypesForBotMatch(PlayerType.Player1, 3); + InitPlayerTypesForPVP(new List { PlayerType.Player1, PlayerType.Player2, PlayerType.Player3, PlayerType.Player4 }); } // TODO :: Call when the UI selection is made and game starts @@ -124,7 +125,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader InitCurrentGamePlayerInfo(); InitBotRuntimeData(); AssignPlayerAndBotStates(selectedPlayerType); - + SetCanRollDiceForUser(!botTypesInGame.Contains(selectedPlayerType)); } @@ -209,7 +210,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader foreach (Transform playerPawnChild in playerGameData.playersParent) { if (!playerPawnChild.gameObject.activeInHierarchy) continue; - + var pawn = playerPawnChild.GetComponent(); playerGameDatasDict[playerGameData.playerType].playerPawnsDict.Add(pawn.PlayerId, pawn); } @@ -277,7 +278,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader // What happens when you get a 6 private void SelectPawnFromBotBase() { - if (canSwitchPlayer || availPlayers.Count() < 1 && !CanRollDiceAgain || !botTypesInGame.Contains(currentPlayerTypeTurn)) + if (canSwitchPlayer || availPlayers.Count() < 1 && !CanRollDiceAgain || !botTypesInGame.Contains(currentPlayerTypeTurn)) { Debug.Log($"returning from SelectPawnFromBotBase"); return; // Have a better check here @@ -285,7 +286,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader Debug.Log($"CallTest: SelectPawnFromBotBase: {currentPlayerTypeTurn}"); var botPawnsDictForCurrentPlayer = botRuntimeMovementData[currentPlayerTypeTurn]; // set the data inside this dict - + // check the data from the playerGameDataDict // change playerPawnsDict to list @@ -310,7 +311,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader return; } - + // TODO :: Double check foreach (var key in botPawnsDictForCurrentPlayer.Keys) { @@ -440,7 +441,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader diceRolledValue = rolledVal; diceText.text = $"{diceRolledValue}"; availPlayers.Clear(); - + if (rolledVal == Ludo_3D_Constants.Max_Dice_Rolls) { canSwitchPlayer = false; @@ -518,6 +519,16 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader .Where(pawn => pawn.GetPlayerState() == PlayerState.InSafeZone || pawn.GetPlayerState() == PlayerState.Moving || pawn.GetPlayerState() == PlayerState.InFinishingPath).ToList(); + + Debug.Log($"#### UpdatePlayerState in InitActivePlayers "); + foreach (var pawn in playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict.Values) + { + Debug.Log($"pawn: {pawn.name}, state: {pawn.GetPlayerState()}"); + } + foreach (var player in availPlayers) // TODO :: Move from here + { + DisplayPlayerCountOnTile(player, true); + } } private bool AreAllPawnsInFinishingPath() @@ -542,6 +553,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader private void UpdatePlayerState(PlayerPawn playerPawn, PlayerState playerState) { + Debug.Log($"#### UpdatePlayerState "); playerGameDatasDict[playerPawn.PlayerType].playerPawnsDict[playerPawn.PlayerId] = playerPawn; playerGameDatasDict[playerPawn.PlayerType].playerPawnsDict[playerPawn.PlayerId].SetPlayerState(playerState); playerPawn.SetPlayerState(playerState); @@ -557,7 +569,8 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader private void HandleDiceRoll() { - diceRollHandler.HandleDiceViewForBot((rollVal) => RollDiceForBot(rollVal)); + // diceRollHandler.HandleDiceViewForBot((rollVal) => RollDiceForBot(rollVal)); + diceRollHandler.HandleDiceViewForBot((rollVal) => RollDiceForBot(rollVal), diceValue == 0 ? UnityEngine.Random.Range(1, Ludo_3D_Constants.Max_Dice_Rolls + 1) : diceValue); } public void OnPawnSelected(PlayerPawn playerPawn) @@ -567,16 +580,19 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader PlayerGameData playerGameData = playerGameDatasDict[currentPlayerTypeTurn]; Debug.Log($"playerPawn.GetPlayerState(): {playerPawn.GetPlayerState()}"); + if (playerPawn.GetPlayerState() == PlayerState.InHome) { Tile targetTile = tilesManager.RetrieveTileBasedOnIndex(playerGameData.startIndex); + DisplayPlayerCountOnTile(playerPawn, false); playerPawn.MoveToTile( GetAndInitPositionInsideSafeZone(playerPawn, targetTile), onComplete: () => { playerGameDatasDict[playerGameData.playerType].totalPawnsInHome--; UpdatePlayerState(playerPawn, PlayerState.InSafeZone); + DisplayPlayerCountOnTile(playerPawn, true); if (CheckForMaxDiceRollAttempt()) { return; @@ -609,12 +625,19 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader if (nextTileIdx == 0) targetIdx = (targetIdx - playerPawn.CurrentTileIndex) - 1; - + Tile currentSittingTile = tilesManager.RetrieveTileBasedOnIndex(playerPawn.CurrentTileIndex); if (currentSittingTile.IsSafeZone) { SafeTile safeTile = (SafeTile)currentSittingTile; safeTile.UpdateSafeZonePlayerData(currentPlayerTypeTurn, playerPawn); + // DisplayPlayerCountOnTile(playerPawn, false); + // if (safeTile.PlayerTypesCount > 0) + // { + // var pawns = safeTile.GetPlayerPawns(playerPawn.PlayerType); + // foreach (var pawn in pawns) + // DisplayPlayerCountOnTile(pawn, true); + // } if (safeTile.PlayerTypesCount == 1) { @@ -658,12 +681,24 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader private void SwitchPlayer(PlayerPawn playerPawn = null) { Debug.Log($"CallTest: SwitchPlayer"); + if (playerPawn) + UpdatePlayerState(playerPawn, tilesManager.RetrieveTileBasedOnIndex(playerPawn.CurrentTileIndex).IsSafeZone ? PlayerState.InSafeZone : PlayerState.Moving); if (!CanRollDiceAgain) { Debug.Log($"currentPlayerTurn: {currentPlayerTypeTurn}"); Debug.Log($"currentPlayerTurnIndex: {currentPlayerTurnIndex}"); + Debug.Log($"before SwitchPlayer availPlayers: {availPlayers.Count}, playerPawn: {playerPawn}"); + if (availPlayers.Count < 1) + InitActivePlayers(); + + Debug.Log($"after SwitchPlayer availPlayers: {availPlayers.Count}, playerPawn: {playerPawn}"); + foreach (var pawn in availPlayers) + { + DisplayPlayerCountOnTile(pawn, false); + } + if (allPlayerTypes.Count == 1) { Debug.LogError($"GAME IS OVER"); @@ -683,6 +718,12 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader diceSixRollCounter = 0; diceText.text = $"{0}"; + + InitActivePlayers(); + foreach (var pawn in availPlayers) + { + DisplayPlayerCountOnTile(pawn, true); + } } SetCanRollDiceForUser(!botTypesInGame.Contains(currentPlayerTypeTurn)); @@ -693,9 +734,6 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader pointerMeshRend.material = turnMat; // pointerMeshRend.materials[0] = turnMat; - if (playerPawn) - UpdatePlayerState(playerPawn, tilesManager.RetrieveTileBasedOnIndex(playerPawn.CurrentTileIndex).IsSafeZone ? PlayerState.InSafeZone : PlayerState.Moving); - Debug.Log($"botTypesInGame.Contains(currentPlayerTypeTurn): {botTypesInGame.Contains(currentPlayerTypeTurn)}"); if (botTypesInGame.Contains(currentPlayerTypeTurn)) // TODO :: Double check calling of the function @@ -722,6 +760,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader } Debug.Log($"tile targetPosition: {targetPosition}"); + DisplayPlayerCountOnTile(playerPawn, false); playerPawn.MoveToTile( targetPosition, @@ -750,8 +789,12 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader } else { - // TODO :: Improve this logic, use a collection + // TODO :: Improve this logic, use a collection Debug.Log($"nextTile.IsSafeZone: {nextTile.IsSafeZone}"); + + if (CanRollDiceAgain) + DisplayPlayerCountOnTile(playerPawn, true); + if (!nextTile.IsSafeZone) { Debug.Log($"nextTile.HasPawnsAvailable: {nextTile.HasPawnsAvailable}"); @@ -768,7 +811,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader var pawn = nextTile.GetPlayerPawn(); Debug.Log($"pawn: {pawn}"); Debug.Log($"playerBase: {playerBaseHandler}"); - + var playerBasePos = playerBaseHandler.GetPlayerBase(pawn.PlayerType) .GetBasePlacementDataPosition(pawn.PlayerId - 1); Debug.Log($"playerBasePos: {playerBasePos}"); @@ -806,7 +849,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader SwitchPlayer(playerPawn); } - }, + }, index); } @@ -845,7 +888,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader Debug.Log($"targetSafeTile.ContainsPlayerType(currentPlayerTypeTurn): {targetSafeTile.ContainsPlayerType(currentPlayerTypeTurn)}"); if (!targetSafeTile.ContainsPlayerType(currentPlayerTypeTurn)) { - Debug.Log($"targetSafeTile.PlayerTypesCount: {targetSafeTile.PlayerTypesCount}"); + Debug.Log($"targetSafeTile.PlayerTypesCount: {targetSafeTile.PlayerTypesCount}"); if (targetSafeTile.PlayerTypesCount < 1) // he is the only player that is being added to the safe zone { targetSafeTile.InitPlayerPawn(playerPawn, currentPlayerTypeTurn); @@ -926,7 +969,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader CanRollDiceAgain = true; if (playerPawn.IsBotPlayer) CheckDiceRollForBot(playerPawn); - else + else SetCanRollDiceForUser(true); } } @@ -940,7 +983,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader SwitchPlayer(); } } - }, + }, index); } @@ -949,4 +992,26 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader CanRollDiceForUser = state; Debug.Log($"CAnRollDiceForUser: {CanRollDiceForUser}"); } + + private void DisplayPlayerCountOnTile(PlayerPawn playerPawn, bool show) + { + Tile tile = tilesManager.RetrieveTileBasedOnIndex(playerPawn.CurrentTileIndex); + Debug.Log($"Displaycount: {playerPawn.name} on tile: {tile.name}, show: {show}"); + playerPawn.ShowPlayerCountCanvas(show); + if (!show) return; + + int count = 0; + if (tile.IsSafeZone) + { + count = (tile as SafeTile).GetPlayerPawnsCountInTile(playerPawn.PlayerType); + } + else + { + count = tile.TotalPawnsInTile; + } + + playerPawn.GetComponentInChildren().SetPlayerCount(count); + } + + } diff --git a/Assets/Scripts/Gameplay/Player/PlayerPawn.cs b/Assets/Scripts/Gameplay/Player/PlayerPawn.cs index a55cff7..8d97dfb 100644 --- a/Assets/Scripts/Gameplay/Player/PlayerPawn.cs +++ b/Assets/Scripts/Gameplay/Player/PlayerPawn.cs @@ -21,6 +21,10 @@ public class PlayerPawn : MonoBehaviour { [SerializeField] private PlayerState playerState; [SerializeField] private Animator animator; + [SerializeField] private GameObject playerCountCanvasPrefab; + [SerializeField] private PlayerCountCanvas playerCountCanvas; + + public PlayerCountCanvas PlayerCountCanvas => playerCountCanvas; public bool CanSelectPlayer { @@ -136,4 +140,11 @@ public class PlayerPawn : MonoBehaviour PlayerId = id; PlayerType = playerType; } + + public void ShowPlayerCountCanvas(bool show) + { + if (playerCountCanvasPrefab == null) return; + + playerCountCanvasPrefab.SetActive(show); + } } diff --git a/Assets/Scripts/Input/DiceRollHandler.cs b/Assets/Scripts/Input/DiceRollHandler.cs index cb9661f..10f4c7b 100644 --- a/Assets/Scripts/Input/DiceRollHandler.cs +++ b/Assets/Scripts/Input/DiceRollHandler.cs @@ -9,7 +9,7 @@ public class DiceRollHandler : MonoBehaviour [SerializeField] private int diceTestValue = 0; private InputManager inputManager; - + private void OnMouseDown() { inputManager = inputManager == null ? InterfaceManager.Instance?.GetInterfaceInstance() : inputManager; @@ -24,9 +24,6 @@ public class DiceRollHandler : MonoBehaviour public void OnUserDiceRollComplete(int rolledVal) { - SoundManager soundManager = InterfaceManager.Instance?.GetInterfaceInstance(); - soundManager?.PlayGameSoundClip(SoundType.Dice); - inputManager.SetDiceRollValue(rolledVal); } @@ -34,11 +31,22 @@ public class DiceRollHandler : MonoBehaviour { if (!inputManager.GameplayManager.CanRollDiceForUser) return; - diceView.Roll(onComplete: (rolledVal) => OnUserDiceRollComplete(rolledVal), false); + SoundManager soundManager = InterfaceManager.Instance?.GetInterfaceInstance(); + soundManager?.PlayGameSoundClip(SoundType.Dice); + + OnUserDiceRollComplete(GetDiceTestVal()); + // diceView.Roll(onComplete: (rolledVal) => OnUserDiceRollComplete(rolledVal), false); } public void HandleDiceViewForBot(Action onComplete) { diceView.Roll(onComplete: (val) => onComplete?.Invoke(val), true); } + + public void HandleDiceViewForBot(Action onComplete, int val) + { + onComplete?.Invoke(val); + } + + private int GetDiceTestVal() => diceTestValue == 0 ? UnityEngine.Random.Range(1, Ludo_3D_Constants.Max_Dice_Rolls + 1) : diceTestValue; } diff --git a/Assets/Scripts/UI/Player Count.meta b/Assets/Scripts/UI/Player Count.meta new file mode 100644 index 0000000..ddb73ac --- /dev/null +++ b/Assets/Scripts/UI/Player Count.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cbe9ff41df8934561963daf6b67cd147 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/UI/Player Count/PlayerCountCanvas.cs b/Assets/Scripts/UI/Player Count/PlayerCountCanvas.cs new file mode 100644 index 0000000..19bdf73 --- /dev/null +++ b/Assets/Scripts/UI/Player Count/PlayerCountCanvas.cs @@ -0,0 +1,21 @@ +using TMPro; +using UnityEngine; + +public class PlayerCountCanvas : MonoBehaviour +{ + Transform cam; + [SerializeField] private TMP_Text playerCountText; + + void Start() + { + cam = GameObject.FindGameObjectWithTag("MainCamera").transform; + } + void LateUpdate() + { + transform.LookAt(cam.forward + transform.position); + } + public void SetPlayerCount(int count) + { + playerCountText.text = count.ToString(); + } +} \ No newline at end of file diff --git a/Assets/Scripts/UI/Player Count/PlayerCountCanvas.cs.meta b/Assets/Scripts/UI/Player Count/PlayerCountCanvas.cs.meta new file mode 100644 index 0000000..149ecf7 --- /dev/null +++ b/Assets/Scripts/UI/Player Count/PlayerCountCanvas.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 12325a6692b2349b5992ec00a2cf8162 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: