From 45b5fe9dd50a2dd35c9dc3e834fa1dcebc99cec4 Mon Sep 17 00:00:00 2001 From: Ashby Issac Date: Thu, 22 Jan 2026 20:50:41 +0530 Subject: [PATCH 1/5] Bug fixes, added logic for multiple pawns in safe node. --- Assets/Prefabs/Characters/Player1Mesh.prefab | 3 +- Assets/Prefabs/Characters/Player2Mesh.prefab | 2 +- Assets/Prefabs/Characters/Player3Mesh.prefab | 2 +- Assets/Prefabs/Characters/Player4Mesh.prefab | 2 +- Assets/Prefabs/Tile/Tile (1).prefab | 64 +++-- Assets/Scenes/Game.unity | 81 ++++++ Assets/Scripts/Gameplay/GameplayManager.cs | 269 +++++++++++++++---- Assets/Scripts/Gameplay/Player/PlayerPawn.cs | 9 +- Assets/Scripts/Input/DiceRoller.cs | 13 +- Assets/Scripts/Tile/Tile.cs | 93 ++++++- Assets/Scripts/Tile/TilesManager.cs | 15 +- 11 files changed, 466 insertions(+), 87 deletions(-) diff --git a/Assets/Prefabs/Characters/Player1Mesh.prefab b/Assets/Prefabs/Characters/Player1Mesh.prefab index a99f20b..e1bfd6a 100644 --- a/Assets/Prefabs/Characters/Player1Mesh.prefab +++ b/Assets/Prefabs/Characters/Player1Mesh.prefab @@ -29,7 +29,7 @@ Transform: m_GameObject: {fileID: 7993275380040288456} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 18.7, y: 3.76, z: -10.59} - m_LocalScale: {x: 2.1844, y: 2.1844, z: 2.1844} + m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} @@ -110,3 +110,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: da493b8dbb3aa475abf11f31549b9293, type: 3} m_Name: m_EditorClassIdentifier: + playerState: 0 diff --git a/Assets/Prefabs/Characters/Player2Mesh.prefab b/Assets/Prefabs/Characters/Player2Mesh.prefab index b53b369..e1258a1 100644 --- a/Assets/Prefabs/Characters/Player2Mesh.prefab +++ b/Assets/Prefabs/Characters/Player2Mesh.prefab @@ -29,7 +29,7 @@ Transform: m_GameObject: {fileID: 7993275380040288456} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 18.7, y: 3.76, z: -10.59} - m_LocalScale: {x: 2.1844, y: 2.1844, z: 2.1844} + m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} diff --git a/Assets/Prefabs/Characters/Player3Mesh.prefab b/Assets/Prefabs/Characters/Player3Mesh.prefab index e39badd..60b2fed 100644 --- a/Assets/Prefabs/Characters/Player3Mesh.prefab +++ b/Assets/Prefabs/Characters/Player3Mesh.prefab @@ -29,7 +29,7 @@ Transform: m_GameObject: {fileID: 7993275380040288456} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 18.7, y: 3.76, z: -10.59} - m_LocalScale: {x: 2.1844, y: 2.1844, z: 2.1844} + m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} diff --git a/Assets/Prefabs/Characters/Player4Mesh.prefab b/Assets/Prefabs/Characters/Player4Mesh.prefab index 09ab5fb..35a7abf 100644 --- a/Assets/Prefabs/Characters/Player4Mesh.prefab +++ b/Assets/Prefabs/Characters/Player4Mesh.prefab @@ -29,7 +29,7 @@ Transform: m_GameObject: {fileID: 7993275380040288456} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 18.7, y: 3.76, z: -10.59} - m_LocalScale: {x: 2.1844, y: 2.1844, z: 2.1844} + m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} diff --git a/Assets/Prefabs/Tile/Tile (1).prefab b/Assets/Prefabs/Tile/Tile (1).prefab index 1255fcc..f079fc6 100644 --- a/Assets/Prefabs/Tile/Tile (1).prefab +++ b/Assets/Prefabs/Tile/Tile (1).prefab @@ -10,7 +10,7 @@ GameObject: m_Component: - component: {fileID: 340880581} m_Layer: 0 - m_Name: GameObject + m_Name: Placement (1) m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -24,12 +24,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 340880580} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -1.09, y: 0, z: -1.01} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_LocalPosition: {x: -0.93, y: 0, z: -0.73} + m_LocalScale: {x: 0.74999994, y: 0.74999994, z: 0.74999994} m_ConstrainProportionsScale: 1 m_Children: [] m_Father: {fileID: 2960581183699728426} - m_RootOrder: 0 + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &489080435 GameObject: @@ -41,7 +41,7 @@ GameObject: m_Component: - component: {fileID: 489080436} m_Layer: 0 - m_Name: GameObject (1) + m_Name: Placement (3) m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -55,12 +55,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 489080435} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -1.11, y: 0, z: 1.2} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_LocalPosition: {x: -0.93, y: 0, z: 0.97} + m_LocalScale: {x: 0.74999994, y: 0.74999994, z: 0.74999994} m_ConstrainProportionsScale: 1 m_Children: [] m_Father: {fileID: 2960581183699728426} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &575231063 GameObject: @@ -72,7 +72,7 @@ GameObject: m_Component: - component: {fileID: 575231064} m_Layer: 0 - m_Name: GameObject (3) + m_Name: Placement (4) m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -86,12 +86,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 575231063} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0.89, y: 0, z: -1.05} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_LocalPosition: {x: 0.8, y: 0, z: -0.73} + m_LocalScale: {x: 0.74999994, y: 0.74999994, z: 0.74999994} m_ConstrainProportionsScale: 1 m_Children: [] m_Father: {fileID: 2960581183699728426} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1493812672 GameObject: @@ -103,7 +103,7 @@ GameObject: m_Component: - component: {fileID: 1493812673} m_Layer: 0 - m_Name: GameObject (2) + m_Name: Placement (2) m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -118,11 +118,11 @@ Transform: m_GameObject: {fileID: 1493812672} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0.8, y: 0, z: 0.97} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_LocalScale: {x: 0.74999994, y: 0.74999994, z: 0.74999994} m_ConstrainProportionsScale: 1 m_Children: [] m_Father: {fileID: 2960581183699728426} - m_RootOrder: 1 + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2960581183699728427 GameObject: @@ -153,6 +153,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: + - {fileID: 4090225931849457574} - {fileID: 340880581} - {fileID: 1493812673} - {fileID: 489080436} @@ -172,4 +173,35 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: be69a8cfb3b2940308cbac570565e629, type: 3} m_Name: m_EditorClassIdentifier: - isSafeZone: 0 + isSafeZone: 1 +--- !u!1 &7673046030148000875 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4090225931849457574} + m_Layer: 0 + m_Name: CenterPlacement + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4090225931849457574 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7673046030148000875} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2960581183699728426} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/Scenes/Game.unity b/Assets/Scenes/Game.unity index bf96e40..72ba135 100644 --- a/Assets/Scenes/Game.unity +++ b/Assets/Scenes/Game.unity @@ -326,6 +326,10 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 868479585} m_Modifications: + - target: {fileID: 2960581183699728421, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} + propertyPath: isSafeZone + value: 1 + objectReference: {fileID: 0} - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} propertyPath: m_RootOrder value: 12 @@ -472,6 +476,10 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 868479585} m_Modifications: + - target: {fileID: 2960581183699728421, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} + propertyPath: isSafeZone + value: 1 + objectReference: {fileID: 0} - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} propertyPath: m_RootOrder value: 8 @@ -1284,6 +1292,10 @@ PrefabInstance: propertyPath: m_Name value: Player1Mesh (2) objectReference: {fileID: 0} + - target: {fileID: 7993275380040288456, guid: 9ae10e3fa7db64f47af31a5f0ebbecdc, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 7993275380040288459, guid: 9ae10e3fa7db64f47af31a5f0ebbecdc, type: 3} propertyPath: m_RootOrder value: 2 @@ -1346,6 +1358,10 @@ PrefabInstance: propertyPath: m_Name value: Player1Mesh (1) objectReference: {fileID: 0} + - target: {fileID: 7993275380040288456, guid: 9ae10e3fa7db64f47af31a5f0ebbecdc, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 7993275380040288459, guid: 9ae10e3fa7db64f47af31a5f0ebbecdc, type: 3} propertyPath: m_RootOrder value: 1 @@ -2097,6 +2113,10 @@ PrefabInstance: propertyPath: m_Name value: Player3Mesh (2) objectReference: {fileID: 0} + - target: {fileID: 7993275380040288456, guid: 195e8a45a36974637bff1dab6791e632, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 7993275380040288459, guid: 195e8a45a36974637bff1dab6791e632, type: 3} propertyPath: m_RootOrder value: 2 @@ -2278,6 +2298,10 @@ PrefabInstance: propertyPath: m_Name value: Player3Mesh (3) objectReference: {fileID: 0} + - target: {fileID: 7993275380040288456, guid: 195e8a45a36974637bff1dab6791e632, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 7993275380040288459, guid: 195e8a45a36974637bff1dab6791e632, type: 3} propertyPath: m_RootOrder value: 3 @@ -2431,6 +2455,10 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 868479585} m_Modifications: + - target: {fileID: 2960581183699728421, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} + propertyPath: isSafeZone + value: 1 + objectReference: {fileID: 0} - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} propertyPath: m_RootOrder value: 24 @@ -2903,6 +2931,10 @@ PrefabInstance: propertyPath: m_Name value: Player2Mesh (2) objectReference: {fileID: 0} + - target: {fileID: 7993275380040288456, guid: 81ea53750af48479785425335304fdc7, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 7993275380040288459, guid: 81ea53750af48479785425335304fdc7, type: 3} propertyPath: m_RootOrder value: 2 @@ -3250,6 +3282,10 @@ PrefabInstance: propertyPath: m_Name value: Player3Mesh (1) objectReference: {fileID: 0} + - target: {fileID: 7993275380040288456, guid: 195e8a45a36974637bff1dab6791e632, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 7993275380040288459, guid: 195e8a45a36974637bff1dab6791e632, type: 3} propertyPath: m_RootOrder value: 1 @@ -3614,24 +3650,28 @@ MonoBehaviour: endIndex: 46 playersParent: {fileID: 1373272158} playerPawns: [] + totalPawnsFinished: 0 - playerType: 1 playerCornerEntity: {fileID: 241691679} startIndex: 12 endIndex: 10 playersParent: {fileID: 1841959051} playerPawns: [] + totalPawnsFinished: 0 - playerType: 2 playerCornerEntity: {fileID: 987201643} startIndex: 24 endIndex: 22 playersParent: {fileID: 1934858463} playerPawns: [] + totalPawnsFinished: 0 - playerType: 3 playerCornerEntity: {fileID: 1251876826} startIndex: 36 endIndex: 34 playersParent: {fileID: 1094154913} playerPawns: [] + totalPawnsFinished: 0 --- !u!1001 &923111009 PrefabInstance: m_ObjectHideFlags: 0 @@ -3767,6 +3807,10 @@ PrefabInstance: propertyPath: m_Name value: Player1Mesh (3) objectReference: {fileID: 0} + - target: {fileID: 7993275380040288456, guid: 9ae10e3fa7db64f47af31a5f0ebbecdc, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 7993275380040288459, guid: 9ae10e3fa7db64f47af31a5f0ebbecdc, type: 3} propertyPath: m_RootOrder value: 3 @@ -4504,6 +4548,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: f06aabb5d8a9f441e99482ccf020f10c, type: 3} m_Name: m_EditorClassIdentifier: + diceTestValue: 6 --- !u!1001 &1041368837 PrefabInstance: m_ObjectHideFlags: 0 @@ -4573,6 +4618,10 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 868479585} m_Modifications: + - target: {fileID: 2960581183699728421, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} + propertyPath: isSafeZone + value: 1 + objectReference: {fileID: 0} - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} propertyPath: m_RootOrder value: 36 @@ -5011,6 +5060,10 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 868479585} m_Modifications: + - target: {fileID: 2960581183699728421, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} + propertyPath: isSafeZone + value: 1 + objectReference: {fileID: 0} - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} propertyPath: m_RootOrder value: 19 @@ -5800,6 +5853,10 @@ PrefabInstance: propertyPath: m_Name value: Player4Mesh (1) objectReference: {fileID: 0} + - target: {fileID: 7993275380040288456, guid: 28a2e17f2aa28459099c180350293bf6, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 7993275380040288459, guid: 28a2e17f2aa28459099c180350293bf6, type: 3} propertyPath: m_RootOrder value: 1 @@ -5862,6 +5919,10 @@ PrefabInstance: propertyPath: m_Name value: Player2Mesh (1) objectReference: {fileID: 0} + - target: {fileID: 7993275380040288456, guid: 81ea53750af48479785425335304fdc7, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 7993275380040288459, guid: 81ea53750af48479785425335304fdc7, type: 3} propertyPath: m_RootOrder value: 1 @@ -6715,6 +6776,10 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 868479585} m_Modifications: + - target: {fileID: 2960581183699728421, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} + propertyPath: isSafeZone + value: 1 + objectReference: {fileID: 0} - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} propertyPath: m_RootOrder value: 31 @@ -6792,6 +6857,10 @@ PrefabInstance: propertyPath: m_Name value: Player4Mesh (2) objectReference: {fileID: 0} + - target: {fileID: 7993275380040288456, guid: 28a2e17f2aa28459099c180350293bf6, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 7993275380040288459, guid: 28a2e17f2aa28459099c180350293bf6, type: 3} propertyPath: m_RootOrder value: 2 @@ -7176,6 +7245,10 @@ PrefabInstance: propertyPath: m_Name value: Player2Mesh (3) objectReference: {fileID: 0} + - target: {fileID: 7993275380040288456, guid: 81ea53750af48479785425335304fdc7, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 7993275380040288459, guid: 81ea53750af48479785425335304fdc7, type: 3} propertyPath: m_RootOrder value: 3 @@ -7234,6 +7307,10 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 868479585} m_Modifications: + - target: {fileID: 2960581183699728421, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} + propertyPath: isSafeZone + value: 1 + objectReference: {fileID: 0} - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} propertyPath: m_RootOrder value: 43 @@ -7521,6 +7598,10 @@ PrefabInstance: propertyPath: m_Name value: Player4Mesh (3) objectReference: {fileID: 0} + - target: {fileID: 7993275380040288456, guid: 28a2e17f2aa28459099c180350293bf6, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 7993275380040288459, guid: 28a2e17f2aa28459099c180350293bf6, type: 3} propertyPath: m_RootOrder value: 3 diff --git a/Assets/Scripts/Gameplay/GameplayManager.cs b/Assets/Scripts/Gameplay/GameplayManager.cs index 299eb3c..3bb80c2 100644 --- a/Assets/Scripts/Gameplay/GameplayManager.cs +++ b/Assets/Scripts/Gameplay/GameplayManager.cs @@ -1,3 +1,4 @@ +using System; using System.Collections.Generic; using System.Linq; using UnityEngine; @@ -19,6 +20,7 @@ public class PlayerGameData public int endIndex; public Transform playersParent; public List playerPawns; + public int totalPawnsFinished = 0; } public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader @@ -30,7 +32,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader [SerializeField] private PlayerGameData[] playerGameDatas; - private PlayerTypes currentPlayerTurn; + private PlayerTypes currentPlayerTypeTurn; private int currentPlayerTurnIndex = 0; private List playerTypes = new List(); @@ -47,7 +49,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader get; private set; } - private bool HasRolledSix = false; + private bool CanRollDiceAgain = false; // used for when you get a 6 or when you reach the finish point public void Initialize() { @@ -60,14 +62,14 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader CanRollDice = true; InitCurrentGamePlayerInfo( - new List { PlayerTypes.Player1, PlayerTypes.Player2, PlayerTypes.Player3, PlayerTypes.Player4 }); + new List { PlayerTypes.Player1, PlayerTypes.Player3 }); } // TODO :: Call based on 2P/3P/4P public void InitCurrentGamePlayerInfo(List playerTypes) { this.playerTypes = playerTypes; - currentPlayerTurn = playerTypes[currentPlayerTurnIndex]; + currentPlayerTypeTurn = playerTypes[currentPlayerTurnIndex]; // initialize the board based on the player types foreach (PlayerGameData playerGameData in playerGameDatas) @@ -83,6 +85,8 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader playerGameDatasDict[playerGameData.playerType].playerPawns = new List(); foreach (Transform playerPawnChild in playerGameData.playersParent) { + if (!playerPawnChild.gameObject.activeInHierarchy) continue; + playerGameDatasDict[playerGameData.playerType].playerPawns.Add(playerPawnChild.GetComponent()); } } @@ -91,7 +95,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader public void EnablePlayerSelectionStates(bool state) { - foreach (PlayerPawn playerPawn in playerGameDatasDict[currentPlayerTurn].playerPawns) + foreach (PlayerPawn playerPawn in playerGameDatasDict[currentPlayerTypeTurn].playerPawns) { if (playerPawn.GetPlayerState() == PlayerState.InFinishingPath) continue; @@ -104,7 +108,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader CanRollDice = false; // add core dice logic here - Debug.Log($"LUDO :: rolledVal: {rolledVal}"); + Debug.Log($"Tile Index :: LUDO :: rolledVal: {rolledVal} :: {currentPlayerTypeTurn}"); diceRolledValue = rolledVal; if (rolledVal == Ludo_3D_Constants.Max_Dice_Rolls) @@ -113,7 +117,23 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader // also play a simple animation before selecting EnablePlayerSelectionStates(true); - HasRolledSix = true; + CanRollDiceAgain = true; + + bool AreAllPawnsInFinishingPath = false; + foreach (var pawn in playerGameDatasDict[currentPlayerTypeTurn].playerPawns) + { + if (pawn.GetPlayerState() == PlayerState.InFinishingPath && pawn.GetPlayerState() != PlayerState.HasFinished) + { + AreAllPawnsInFinishingPath = true; + continue; + } + + AreAllPawnsInFinishingPath = false; + break; + } + + if (AreAllPawnsInFinishingPath) + CanRollDice = true; pointerMeshRend.material = selectMat; // pointerMeshRend.materials[0] = selectMat; @@ -121,33 +141,41 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader else // if there are any other pawns that are in safe or moving state { // for player's logic - IEnumerable availPlayers = playerGameDatasDict[currentPlayerTurn].playerPawns.Select(pawn => pawn) + IEnumerable availPlayers = playerGameDatasDict[currentPlayerTypeTurn].playerPawns.Select(pawn => pawn) .Where(pawn => pawn.GetPlayerState() == PlayerState.InSafeZone || pawn.GetPlayerState() == PlayerState.Moving || pawn.GetPlayerState() == PlayerState.InFinishingPath); - + int customAvailPlayers = availPlayers.Count(); + foreach (PlayerPawn playerPawn in availPlayers) { Debug.Log($"## playerPawn.GetPlayerState(): {playerPawn.GetPlayerState()}"); if (playerPawn.GetPlayerState() == PlayerState.InFinishingPath) { - // TODO :: if rolled dice value <= rem tiles to complete in finishing path - // TODO :: playerPawn.SetPlayerSelectionState(true); - // if (diceRolledValue < 6 - playerPawn.CurrentTileIndex) // TODO :: Change hardcoded value - } - else - { - playerPawn.SetPlayerSelectionState(true); + if (diceRolledValue <= tilesManager.GetFinishingTileDataLength(currentPlayerTypeTurn) - (playerPawn.CurrentTileIndex + 1)) + { + playerPawn.SetPlayerSelectionState(true); + } + else + { + customAvailPlayers--; + } + + continue; } + + playerPawn.SetPlayerSelectionState(true); } - if (availPlayers.Count() < 1) + // if (availPlayers.Count() < 1) + Debug.Log($"CustomAvailablePlayers: {customAvailPlayers}"); + if (customAvailPlayers < 1) { SwitchPlayer(); CanRollDice = true; } - HasRolledSix = false; + CanRollDiceAgain = false; } } @@ -155,7 +183,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader { EnablePlayerSelectionStates(false); - PlayerGameData playerGameData = playerGameDatasDict[currentPlayerTurn]; + PlayerGameData playerGameData = playerGameDatasDict[currentPlayerTypeTurn]; if (playerPawn.GetPlayerState() == PlayerState.InHome) { @@ -169,90 +197,221 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader return; } - else if (playerPawn.GetPlayerState() == PlayerState.InSafeZone || playerPawn.GetPlayerState() == PlayerState.Moving - || playerPawn.GetPlayerState() == PlayerState.InFinishingPath) + else if (playerPawn.GetPlayerState() == PlayerState.InFinishingPath + || playerPawn.CurrentTileIndex == playerGameDatasDict[currentPlayerTypeTurn].endIndex) + { + int finishingPathIndex = GetNextFinishingTileIndex(playerPawn); + int targetIdx = finishingPathIndex + diceRolledValue > tilesManager.GetFinishingTileDataLength(currentPlayerTypeTurn) - 1 ? + tilesManager.GetFinishingTileDataLength(currentPlayerTypeTurn) - 1 : finishingPathIndex + diceRolledValue; + + Debug.Log($"TargetIdx: {targetIdx}"); + MoveThroughFinishingPath(playerPawn, finishingPathIndex, targetIdx); + } + else if (playerPawn.GetPlayerState() == PlayerState.InSafeZone || playerPawn.GetPlayerState() == PlayerState.Moving) { // move based on the dice value + Debug.Log($"Tile Index :: currentTileIndex: {playerPawn.CurrentTileIndex}"); + int nextTileIdx = GetNextGeneralTileIndex(playerPawn); + int targetIdx = playerPawn.CurrentTileIndex + diceRolledValue; - MoveThroughTiles(playerPawn, playerPawn.CurrentTileIndex + 1, targetIndex: playerPawn.CurrentTileIndex + diceRolledValue); + if (nextTileIdx == 0) + targetIdx = targetIdx - playerPawn.CurrentTileIndex; + + Tile currentSittingTile = tilesManager.RetrieveTileBasedOnIndex(playerPawn.CurrentTileIndex); + if (currentSittingTile.IsSafeZone) + { + currentSittingTile.UpdateSafeZonePlayerData(currentPlayerTypeTurn); + } + + MoveThroughTiles(playerPawn, nextTileIdx, targetIndex: targetIdx); } } - private void SwitchPlayer() + private int GetNextGeneralTileIndex(PlayerPawn playerPawn) { - if (!HasRolledSix) + return playerPawn.CurrentTileIndex == tilesManager.GetGeneralTilesLength() - 1 ? 0 : playerPawn.CurrentTileIndex + 1; + } + + private int GetNextFinishingTileIndex(PlayerPawn playerPawn) + { + return playerPawn.CurrentTileIndex > tilesManager.GetFinishingTileDataLength(currentPlayerTypeTurn) - 1 ? 0 : playerPawn.CurrentTileIndex + 1; + } + + private void SwitchPlayer(PlayerPawn playerPawn = null) + { + if (!CanRollDiceAgain) { - if (currentPlayerTurn == playerTypes[playerTypes.Count - 1]) + Debug.Log($"currentPlayerTurn: {currentPlayerTypeTurn}"); + Debug.Log($"currentPlayerTurnIndex: {currentPlayerTurnIndex}"); + + if (playerTypes.Count == 1) + { + Debug.LogError($"GAME IS OVER"); + return; + } + + if (currentPlayerTypeTurn == playerTypes[playerTypes.Count - 1]) { currentPlayerTurnIndex = 0; - currentPlayerTurn = playerTypes[currentPlayerTurnIndex]; + currentPlayerTypeTurn = playerTypes[currentPlayerTurnIndex]; } else { currentPlayerTurnIndex++; - currentPlayerTurn = playerTypes[currentPlayerTurnIndex]; - Debug.Log($"currentPlayerTurn: {currentPlayerTurn}"); - Debug.Log($"currentPlayerTurnIndex: {currentPlayerTurnIndex}"); + currentPlayerTypeTurn = playerTypes[currentPlayerTurnIndex]; } } - var tempPos = playerGameDatasDict[currentPlayerTurn].playerCornerEntity.transform.position; + var tempPos = playerGameDatasDict[currentPlayerTypeTurn].playerCornerEntity.transform.position; pointerDebug.position = new Vector3(tempPos.x, 3f, tempPos.z); pointerMeshRend.material = turnMat; // pointerMeshRend.materials[0] = turnMat; + + if (playerPawn) + playerPawn.SetPlayerState(tilesManager.RetrieveTileBasedOnIndex(playerPawn.CurrentTileIndex).IsSafeZone ? PlayerState.InSafeZone : PlayerState.Moving); } private void MoveThroughTiles(PlayerPawn playerPawn, int index, int targetIndex) { - Tile tile = tilesManager.RetrieveTileBasedOnIndex(index); - playerPawn.MoveToTile( - tilesManager.RetrieveTileBasedOnIndex(index).transform.position, - onComplete: () => + Debug.Log($"Tile Index :: nextIndex: {index}, targetIndex: {targetIndex}"); + + Tile nextTile = tilesManager.RetrieveTileBasedOnIndex(index); + Vector3 targetPosition = tilesManager.RetrieveTileBasedOnIndex(index).CenterPlacementPosition; + + if (index == targetIndex) // is next index the targetIndex + { + Tile targetTile = tilesManager.RetrieveTileBasedOnIndex(targetIndex); + if (targetTile.IsSafeZone) { - if (playerPawn.GetPlayerState() == PlayerState.InFinishingPath || index == playerGameDatasDict[currentPlayerTurn].endIndex) + if (targetTile.PlayerTypesCount == 1) { - // MoveThroughTiles(playerPawn, index, targetIndex); - Debug.Log($"IsMovingThroughFinishingPath({currentPlayerTurn}): {index + 1} :: {playerGameDatasDict[currentPlayerTurn].endIndex}"); - MoveThroughFinishingPath(playerPawn, 0, targetIndex - index); - } - else if (index + 1 <= targetIndex) - { - MoveThroughTiles(playerPawn, index + 1, targetIndex); + if (!targetTile.ContainsPlayerType(currentPlayerTypeTurn)) // means it is a new player type, the second one + { + PlayerTypes initialPlayerType = targetTile.GetFirstPlayerType(); + var playerPawnsCount = targetTile.GetPlayerPawnsCountInTile(initialPlayerType); + + // rearrange already existing player from center position to it's saved transform + for (int idx = 0; idx < playerPawnsCount; idx++) + { + targetTile.IterateAndGetPlayerPawn(initialPlayerType, idx).MoveToTileSubPosition(targetTile.GetPlacementPoint(initialPlayerType).position); + } + + targetTile.InitPlayerPawn(playerPawn, currentPlayerTypeTurn); + targetPosition = targetTile.GetPlacementPoint(currentPlayerTypeTurn).position; + } + else + { + targetPosition = targetTile.CenterPlacementPosition; + } } else { - if (tile.PlayerPawn != null) + // TODO :: Check the data if it's consistent + if (!targetTile.ContainsPlayerType(currentPlayerTypeTurn)) { - // send this pawn back to base + targetTile.InitPlayerPawn(playerPawn, currentPlayerTypeTurn); + targetPosition = targetTile.GetPlacementPoint(currentPlayerTypeTurn).position; } + else + { + targetPosition = targetTile.GetPlacementPoint(currentPlayerTypeTurn).position; + } + } - tile.InitPlayerPawn(playerPawn); - SwitchPlayer(); + // TODO :: Introduce a swapping mechanism + } + else + { + // TODO :: Move code to onComplete callback + if (targetTile.PlayerPawn != null) // TODO :: Improve this logic, use a collection + { + // TODO :: send this pawn back to base + } + } + } + + playerPawn.MoveToTile( + targetPosition, + onComplete: () => + { + diceRolledValue--; + if (diceRolledValue > 0) + { + int nextTileIndex = GetNextGeneralTileIndex(playerPawn); + + if (playerPawn.GetPlayerState() == PlayerState.InFinishingPath || index == playerGameDatasDict[currentPlayerTypeTurn].endIndex) + { + // MoveThroughTiles(playerPawn, index, targetIndex); + Debug.Log($"TargetIdx: {targetIndex - index}"); + MoveThroughFinishingPath(playerPawn, 0, targetIndex - index); + } + else if (nextTileIndex <= targetIndex) + { + if (nextTileIndex == 0) + targetIndex = targetIndex - playerPawn.CurrentTileIndex; + + MoveThroughTiles(playerPawn, nextTileIndex, targetIndex); + } + } + else + { + nextTile.InitPlayerPawn(playerPawn, currentPlayerTypeTurn); + SwitchPlayer(playerPawn); + CanRollDice = true; } }, index); - - CanRollDice = true; - playerPawn.SetPlayerState(tilesManager.RetrieveTileBasedOnIndex(playerPawn.CurrentTileIndex).IsSafeZone ? PlayerState.InSafeZone : PlayerState.Moving); } private void MoveThroughFinishingPath(PlayerPawn playerPawn, int index, int targetIndex) { playerPawn.SetPlayerState(PlayerState.InFinishingPath); playerPawn.MoveToTile( - tilesManager.RetrievePositionForFinishingTile(currentPlayerTurn, index).position, + tilesManager.RetrievePositionForFinishingTile(currentPlayerTypeTurn, index).position, onComplete: () => { - Debug.Log($"index: {index}, targetIndex: {targetIndex}"); - if (index + 1 < targetIndex) + diceRolledValue--; + + Debug.Log($"DiceRolledValue: {diceRolledValue}"); + if (diceRolledValue > 0) { - // MoveThroughTiles(playerPawn, index, targetIndex); - MoveThroughFinishingPath(playerPawn, index + 1, targetIndex); + int tileIndex = GetNextFinishingTileIndex(playerPawn); + Debug.Log($"tileIndex: {tileIndex}, targetIndex: {targetIndex}"); + if (tileIndex <= targetIndex) + { + // MoveThroughTiles(playerPawn, index, targetIndex); + MoveThroughFinishingPath(playerPawn, tileIndex, targetIndex); + } } else { - SwitchPlayer(); + if (playerPawn.CurrentTileIndex == tilesManager.GetFinishingTileDataLength(currentPlayerTypeTurn) - 1) + { + playerPawn.SetPlayerState(PlayerState.HasFinished); + playerGameDatasDict[currentPlayerTypeTurn].totalPawnsFinished++; + + if (playerGameDatasDict[currentPlayerTypeTurn].totalPawnsFinished == playerGameDatasDict[currentPlayerTypeTurn].playerPawns.Count) + { + CanRollDiceAgain = false; + + SwitchPlayer(); + if (playerTypes.Contains(currentPlayerTypeTurn)) + playerTypes.Remove(currentPlayerTypeTurn); + + Debug.Log($"PlayerTypes: {playerTypes.Count}"); + } + else + { + CanRollDiceAgain = true; + } + } + else + { + SwitchPlayer(); + } + + CanRollDice = true; } }, index); diff --git a/Assets/Scripts/Gameplay/Player/PlayerPawn.cs b/Assets/Scripts/Gameplay/Player/PlayerPawn.cs index a78335c..a07a045 100644 --- a/Assets/Scripts/Gameplay/Player/PlayerPawn.cs +++ b/Assets/Scripts/Gameplay/Player/PlayerPawn.cs @@ -32,9 +32,9 @@ public class PlayerPawn : MonoBehaviour } } - public void CheckCurrentTileIndex(int maxTiles) + public void SetCurrentTileIndex(int tileIndex) { - CurrentTileIndex = CurrentTileIndex == maxTiles ? 0 : CurrentTileIndex; + CurrentTileIndex = tileIndex; } public void MoveToTile(Vector3 startingPoint, Action onComplete, int tileIndex) @@ -43,6 +43,11 @@ public class PlayerPawn : MonoBehaviour transform.DOMove(startingPoint, 0.1f).onComplete = () => onComplete?.Invoke(); } + public void MoveToTileSubPosition(Vector3 targetPoint) + { + transform.DOMove(targetPoint, 0.1f); + } + // when he is defeated public void MoveBackToHome() { diff --git a/Assets/Scripts/Input/DiceRoller.cs b/Assets/Scripts/Input/DiceRoller.cs index 175bc93..886feeb 100644 --- a/Assets/Scripts/Input/DiceRoller.cs +++ b/Assets/Scripts/Input/DiceRoller.cs @@ -4,6 +4,8 @@ using UnityEngine; public class DiceRoller : MonoBehaviour { + [SerializeField] private int diceTestValue = 0; + private InputManager inputManager; private void OnMouseDown() @@ -14,9 +16,18 @@ public class DiceRoller : MonoBehaviour OnDiceRolled(); } + private void Update() + { + inputManager = inputManager == null ? InterfaceManager.Instance?.GetInterfaceInstance() : inputManager; + if (!inputManager.GameplayManager.CanRollDice) return; + + if (Input.GetKeyDown(KeyCode.Space)) + OnDiceRolled(); + } + private void OnDiceRolled() { - int currentRolledVal = Random.Range(1, Ludo_3D_Constants.Max_Dice_Rolls + 1); + int currentRolledVal = diceTestValue != 0 ? diceTestValue : Random.Range(1, Ludo_3D_Constants.Max_Dice_Rolls + 1); inputManager.SetDiceRollValue(currentRolledVal); } } diff --git a/Assets/Scripts/Tile/Tile.cs b/Assets/Scripts/Tile/Tile.cs index e381473..50ca995 100644 --- a/Assets/Scripts/Tile/Tile.cs +++ b/Assets/Scripts/Tile/Tile.cs @@ -1,17 +1,106 @@ +using System.Collections.Generic; +using System.Linq; using UnityEngine; +[System.Serializable] +public class PlayerTileData +{ + public int playerCount; + public Transform placementTransform; + public List playerPawns; +} + public class Tile : MonoBehaviour { [SerializeField] private bool isSafeZone = false; - public PlayerPawn PlayerPawn + [SerializeField] private Transform centerPlacementPoint; + [SerializeField] private Transform[] placementPoints; + + private int lastOccupiedIndex = 0; + + public PlayerPawn PlayerPawn // Change implementation { get; private set; } + private Queue placementQueue = new Queue(); + private Dictionary playerTypesDict; + + public int PlayerTypesCount => playerTypesDict.Count; + public bool HasMoreThanOnePlayerType => playerTypesDict.Count > 1; public bool IsSafeZone => isSafeZone; - public void InitPlayerPawn(PlayerPawn playerPawn) + public Vector3 CenterPlacementPosition => centerPlacementPoint.position; + + public bool ContainsPlayerType(PlayerTypes playerType) => playerTypesDict.ContainsKey(playerType); + + public void Init(int playerTypesCount) + { + if (isSafeZone) + { + playerTypesDict = new Dictionary(); + foreach (var placement in placementPoints) + { + placementQueue.Enqueue(placement); + } + } + } + + public void InitPlayerPawn(PlayerPawn playerPawn, PlayerTypes playerType) { PlayerPawn = playerPawn; + if (isSafeZone) + { + if (!playerTypesDict.ContainsKey(playerType)) + { + playerTypesDict.Add( + playerType, + new PlayerTileData { playerCount = 1, placementTransform = placementQueue.Dequeue(), // TODO :: Change indexing logic + playerPawns = new List { playerPawn } + }); + } + else + { + playerTypesDict[playerType].playerCount++; + playerTypesDict[playerType].playerPawns.Add(playerPawn); + } + } + } + + public void UpdateSafeZonePlayerData(PlayerTypes playerType) + { + if (!IsSafeZone) return; + + if (playerTypesDict.ContainsKey(playerType)) + { + if (playerTypesDict[playerType].playerCount > 0) + { + playerTypesDict[playerType].playerCount--; + playerTypesDict[playerType].playerPawns.RemoveAt(playerTypesDict[playerType].playerPawns.Count - 1); + if (playerTypesDict[playerType].playerCount == 0) + { + placementQueue.Enqueue(playerTypesDict[playerType].placementTransform); + playerTypesDict.Remove(playerType); + lastOccupiedIndex--; + } + } + } + } + + public PlayerTypes GetFirstPlayerType() => playerTypesDict.Keys.FirstOrDefault(); + + public int GetPlayerPawnsCountInTile(PlayerTypes playerType) + { + return playerTypesDict[playerType].playerPawns.Count; + } + + public PlayerPawn IterateAndGetPlayerPawn(PlayerTypes playerType, int index) + { + return playerTypesDict[playerType].playerPawns[index]; + } + + public Transform GetPlacementPoint(PlayerTypes playerType) + { + return playerTypesDict[playerType].placementTransform; } } diff --git a/Assets/Scripts/Tile/TilesManager.cs b/Assets/Scripts/Tile/TilesManager.cs index e0cc9e6..af6d5dd 100644 --- a/Assets/Scripts/Tile/TilesManager.cs +++ b/Assets/Scripts/Tile/TilesManager.cs @@ -17,10 +17,6 @@ public class TilesManager : MonoBehaviour, IBootLoader, IDataLoader, IBase [SerializeField] private TileData[] tileDatas; private GameplayManager gameplayManager; - public int FinishingTileDataLength - { - get; private set; - } private Dictionary> finishingTileDataPairs = new Dictionary>(); @@ -42,15 +38,20 @@ public class TilesManager : MonoBehaviour, IBootLoader, IDataLoader, IBase finishingTileDataPairs[tileData.playerType].Add(child); } } - - // FinishingTileDataLength = finishingTileDataPairs.FirstOrDefault().Value.Count; + + foreach (var tile in generalTiles) + { + tile.Init(gameplayManager.PlayerTypesCollection.Count); + } } + public int GetFinishingTileDataLength(PlayerTypes playerType) => finishingTileDataPairs[playerType].Count; + public int GetGeneralTilesLength() => generalTiles.Length; public Tile RetrieveTileBasedOnIndex(int index) { - + Debug.Log($"RetrieveTileBasedOnIndex: Index: {index}"); return index == generalTiles.Length ? generalTiles[0] : generalTiles[index]; } From 9b1c4f14b06c1bb8f2e3226b0f0440389bf16566 Mon Sep 17 00:00:00 2001 From: Ashby Issac Date: Fri, 23 Jan 2026 12:46:59 +0530 Subject: [PATCH 2/5] Bug fixes for safe mode edge cases. --- .../Tile/{Tile (1).prefab => SafeTile.prefab} | 230 +-- Assets/Prefabs/Tile/SafeTile.prefab.meta | 7 + Assets/Prefabs/Tile/Tile.prefab | 47 + ...{Tile (1).prefab.meta => Tile.prefab.meta} | 0 Assets/Scenes/Game.unity | 1240 ++++++++--------- Assets/Scripts/Gameplay/GameplayManager.cs | 173 ++- Assets/Scripts/Gameplay/Player/PlayerPawn.cs | 10 + Assets/Scripts/Tile/SafeTile.cs | 89 ++ Assets/Scripts/Tile/SafeTile.cs.meta | 11 + Assets/Scripts/Tile/Tile.cs | 102 +- Assets/Scripts/Tile/TilesManager.cs | 14 +- 11 files changed, 1041 insertions(+), 882 deletions(-) rename Assets/Prefabs/Tile/{Tile (1).prefab => SafeTile.prefab} (62%) create mode 100644 Assets/Prefabs/Tile/SafeTile.prefab.meta create mode 100644 Assets/Prefabs/Tile/Tile.prefab rename Assets/Prefabs/Tile/{Tile (1).prefab.meta => Tile.prefab.meta} (100%) create mode 100644 Assets/Scripts/Tile/SafeTile.cs create mode 100644 Assets/Scripts/Tile/SafeTile.cs.meta diff --git a/Assets/Prefabs/Tile/Tile (1).prefab b/Assets/Prefabs/Tile/SafeTile.prefab similarity index 62% rename from Assets/Prefabs/Tile/Tile (1).prefab rename to Assets/Prefabs/Tile/SafeTile.prefab index f079fc6..6fad481 100644 --- a/Assets/Prefabs/Tile/Tile (1).prefab +++ b/Assets/Prefabs/Tile/SafeTile.prefab @@ -1,6 +1,6 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &340880580 +--- !u!1 &141183527 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8,7 +8,7 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 340880581} + - component: {fileID: 141183528} m_Layer: 0 m_Name: Placement (1) m_TagString: Untagged @@ -16,22 +16,22 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &340880581 +--- !u!4 &141183528 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 340880580} + m_GameObject: {fileID: 141183527} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -0.93, y: 0, z: -0.73} - m_LocalScale: {x: 0.74999994, y: 0.74999994, z: 0.74999994} - m_ConstrainProportionsScale: 1 + m_LocalPosition: {x: -1.06, y: 0, z: -1.03} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 2960581183699728426} - m_RootOrder: 1 + m_Father: {fileID: 1216908670} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &489080435 +--- !u!1 &165064736 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -39,38 +39,7 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 489080436} - m_Layer: 0 - m_Name: Placement (3) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &489080436 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 489080435} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -0.93, y: 0, z: 0.97} - m_LocalScale: {x: 0.74999994, y: 0.74999994, z: 0.74999994} - m_ConstrainProportionsScale: 1 - m_Children: [] - m_Father: {fileID: 2960581183699728426} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &575231063 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 575231064} + - component: {fileID: 165064737} m_Layer: 0 m_Name: Placement (4) m_TagString: Untagged @@ -78,22 +47,22 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &575231064 +--- !u!4 &165064737 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 575231063} + m_GameObject: {fileID: 165064736} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0.8, y: 0, z: -0.73} - m_LocalScale: {x: 0.74999994, y: 0.74999994, z: 0.74999994} - m_ConstrainProportionsScale: 1 + m_LocalPosition: {x: 0.89, y: 0, z: -0.92} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 2960581183699728426} - m_RootOrder: 4 + m_Father: {fileID: 1216908670} + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1493812672 +--- !u!1 &172566720 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -101,7 +70,7 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1493812673} + - component: {fileID: 172566721} m_Layer: 0 m_Name: Placement (2) m_TagString: Untagged @@ -109,19 +78,116 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1493812673 +--- !u!4 &172566721 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1493812672} + m_GameObject: {fileID: 172566720} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0.8, y: 0, z: 0.97} - m_LocalScale: {x: 0.74999994, y: 0.74999994, z: 0.74999994} - m_ConstrainProportionsScale: 1 + m_LocalPosition: {x: 0.88, y: 0, z: 1.12} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1216908670} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1216908669 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1216908670} + m_Layer: 0 + m_Name: Placements + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1216908670 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1216908669} + 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: + - {fileID: 141183528} + - {fileID: 172566721} + - {fileID: 1619171259} + - {fileID: 165064737} + m_Father: {fileID: 2960581183699728426} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1221159069 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1221159070} + m_Layer: 0 + m_Name: CenteredPoint + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1221159070 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1221159069} + 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: 2960581183699728426} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1619171258 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1619171259} + m_Layer: 0 + m_Name: Placement (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1619171259 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1619171258} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -1.09, y: 0, z: 1.26} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1216908670} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2960581183699728427 @@ -133,9 +199,9 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 2960581183699728426} - - component: {fileID: 2960581183699728421} + - component: {fileID: 5376650559335035371} m_Layer: 0 - m_Name: Tile (1) + m_Name: SafeTile m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -153,15 +219,12 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 4090225931849457574} - - {fileID: 340880581} - - {fileID: 1493812673} - - {fileID: 489080436} - - {fileID: 575231064} + - {fileID: 1221159070} + - {fileID: 1216908670} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &2960581183699728421 +--- !u!114 &5376650559335035371 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -170,38 +233,13 @@ MonoBehaviour: m_GameObject: {fileID: 2960581183699728427} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: be69a8cfb3b2940308cbac570565e629, type: 3} + m_Script: {fileID: 11500000, guid: 114033ff484fb492290f3118615ad4d8, type: 3} m_Name: m_EditorClassIdentifier: isSafeZone: 1 ---- !u!1 &7673046030148000875 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4090225931849457574} - m_Layer: 0 - m_Name: CenterPlacement - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4090225931849457574 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7673046030148000875} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 2960581183699728426} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + centerPlacementPoint: {fileID: 1221159070} + placementPoints: + - {fileID: 141183528} + - {fileID: 172566721} + - {fileID: 1619171259} + - {fileID: 165064737} diff --git a/Assets/Prefabs/Tile/SafeTile.prefab.meta b/Assets/Prefabs/Tile/SafeTile.prefab.meta new file mode 100644 index 0000000..806ea47 --- /dev/null +++ b/Assets/Prefabs/Tile/SafeTile.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 13346690e7c8b414cb171f800c32ec57 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Tile/Tile.prefab b/Assets/Prefabs/Tile/Tile.prefab new file mode 100644 index 0000000..4171d8f --- /dev/null +++ b/Assets/Prefabs/Tile/Tile.prefab @@ -0,0 +1,47 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2960581183699728427 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2960581183699728426} + - component: {fileID: 2960581183699728421} + m_Layer: 0 + m_Name: Tile + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2960581183699728426 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2960581183699728427} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 18.83, y: 0, z: -3.42} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2960581183699728421 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2960581183699728427} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: be69a8cfb3b2940308cbac570565e629, type: 3} + m_Name: + m_EditorClassIdentifier: + isSafeZone: 0 diff --git a/Assets/Prefabs/Tile/Tile (1).prefab.meta b/Assets/Prefabs/Tile/Tile.prefab.meta similarity index 100% rename from Assets/Prefabs/Tile/Tile (1).prefab.meta rename to Assets/Prefabs/Tile/Tile.prefab.meta diff --git a/Assets/Scenes/Game.unity b/Assets/Scenes/Game.unity index 72ba135..1762a60 100644 --- a/Assets/Scenes/Game.unity +++ b/Assets/Scenes/Game.unity @@ -319,83 +319,6 @@ Transform: m_CorrespondingSourceObject: {fileID: 2960581183699728426, guid: 094ea6ce63e654b22964fec2f6344c8a, type: 3} m_PrefabInstance: {fileID: 77922092} m_PrefabAsset: {fileID: 0} ---- !u!1001 &78677764 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 868479585} - m_Modifications: - - target: {fileID: 2960581183699728421, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: isSafeZone - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_RootOrder - value: 12 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalPosition.x - value: -3.87 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalPosition.z - value: -19.45 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728427, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_Name - value: Tile (13) - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} ---- !u!4 &78677765 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - m_PrefabInstance: {fileID: 78677764} - m_PrefabAsset: {fileID: 0} ---- !u!114 &78677766 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 2960581183699728421, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - m_PrefabInstance: {fileID: 78677764} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: be69a8cfb3b2940308cbac570565e629, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!1001 &101156877 PrefabInstance: m_ObjectHideFlags: 0 @@ -469,83 +392,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: be69a8cfb3b2940308cbac570565e629, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!1001 &101689198 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 868479585} - m_Modifications: - - target: {fileID: 2960581183699728421, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: isSafeZone - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_RootOrder - value: 8 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalPosition.x - value: 3.78 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalPosition.z - value: -19.67 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728427, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_Name - value: Tile (9) - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} ---- !u!4 &101689199 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - m_PrefabInstance: {fileID: 101689198} - m_PrefabAsset: {fileID: 0} ---- !u!114 &101689200 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 2960581183699728421, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - m_PrefabInstance: {fileID: 101689198} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: be69a8cfb3b2940308cbac570565e629, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!1 &102349499 GameObject: m_ObjectHideFlags: 0 @@ -1111,6 +957,79 @@ Transform: m_CorrespondingSourceObject: {fileID: 2960581183699728426, guid: 094ea6ce63e654b22964fec2f6344c8a, type: 3} m_PrefabInstance: {fileID: 184681510} m_PrefabAsset: {fileID: 0} +--- !u!1001 &209365733 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 868479585} + m_Modifications: + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_RootOrder + value: 36 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalPosition.x + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalPosition.z + value: 20.58 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728427, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_Name + value: SafeTile (37) + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} +--- !u!4 &209365734 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + m_PrefabInstance: {fileID: 209365733} + m_PrefabAsset: {fileID: 0} +--- !u!114 &209365735 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 5376650559335035371, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + m_PrefabInstance: {fileID: 209365733} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 114033ff484fb492290f3118615ad4d8, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &241691679 GameObject: m_ObjectHideFlags: 0 @@ -1294,7 +1213,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7993275380040288456, guid: 9ae10e3fa7db64f47af31a5f0ebbecdc, type: 3} propertyPath: m_IsActive - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7993275380040288459, guid: 9ae10e3fa7db64f47af31a5f0ebbecdc, type: 3} propertyPath: m_RootOrder @@ -1347,6 +1266,79 @@ Transform: m_CorrespondingSourceObject: {fileID: 7993275380040288459, guid: 9ae10e3fa7db64f47af31a5f0ebbecdc, type: 3} m_PrefabInstance: {fileID: 285587083} m_PrefabAsset: {fileID: 0} +--- !u!1001 &320946490 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 868479585} + m_Modifications: + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_RootOrder + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalPosition.x + value: -3.87 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalPosition.z + value: -19.45 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728427, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_Name + value: SafeTile (13) + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} +--- !u!4 &320946491 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + m_PrefabInstance: {fileID: 320946490} + m_PrefabAsset: {fileID: 0} +--- !u!114 &320946492 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 5376650559335035371, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + m_PrefabInstance: {fileID: 320946490} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 114033ff484fb492290f3118615ad4d8, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1001 &332604772 PrefabInstance: m_ObjectHideFlags: 0 @@ -1360,7 +1352,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7993275380040288456, guid: 9ae10e3fa7db64f47af31a5f0ebbecdc, type: 3} propertyPath: m_IsActive - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7993275380040288459, guid: 9ae10e3fa7db64f47af31a5f0ebbecdc, type: 3} propertyPath: m_RootOrder @@ -2115,7 +2107,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7993275380040288456, guid: 195e8a45a36974637bff1dab6791e632, type: 3} propertyPath: m_IsActive - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7993275380040288459, guid: 195e8a45a36974637bff1dab6791e632, type: 3} propertyPath: m_RootOrder @@ -2300,7 +2292,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7993275380040288456, guid: 195e8a45a36974637bff1dab6791e632, type: 3} propertyPath: m_IsActive - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7993275380040288459, guid: 195e8a45a36974637bff1dab6791e632, type: 3} propertyPath: m_RootOrder @@ -2448,83 +2440,6 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 12 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &588510567 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 868479585} - m_Modifications: - - target: {fileID: 2960581183699728421, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: isSafeZone - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_RootOrder - value: 24 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalPosition.x - value: -18.5 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalPosition.z - value: 4.17 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728427, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_Name - value: Tile (25) - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} ---- !u!4 &588510568 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - m_PrefabInstance: {fileID: 588510567} - m_PrefabAsset: {fileID: 0} ---- !u!114 &588510569 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 2960581183699728421, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - m_PrefabInstance: {fileID: 588510567} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: be69a8cfb3b2940308cbac570565e629, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!1001 &589480314 PrefabInstance: m_ObjectHideFlags: 0 @@ -2753,6 +2668,152 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &633028659 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 868479585} + m_Modifications: + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_RootOrder + value: 31 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalPosition.x + value: -3.57 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalPosition.z + value: 17.51 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728427, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_Name + value: SafeTile (32) + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} +--- !u!4 &633028660 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + m_PrefabInstance: {fileID: 633028659} + m_PrefabAsset: {fileID: 0} +--- !u!114 &633028661 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 5376650559335035371, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + m_PrefabInstance: {fileID: 633028659} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 114033ff484fb492290f3118615ad4d8, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &685821224 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 868479585} + m_Modifications: + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_RootOrder + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalPosition.x + value: 3.78 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalPosition.z + value: -19.67 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728427, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_Name + value: SafeTile (9) + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} +--- !u!4 &685821225 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + m_PrefabInstance: {fileID: 685821224} + m_PrefabAsset: {fileID: 0} +--- !u!114 &685821226 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 5376650559335035371, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + m_PrefabInstance: {fileID: 685821224} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 114033ff484fb492290f3118615ad4d8, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &705507993 GameObject: m_ObjectHideFlags: 0 @@ -3284,7 +3345,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7993275380040288456, guid: 195e8a45a36974637bff1dab6791e632, type: 3} propertyPath: m_IsActive - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7993275380040288459, guid: 195e8a45a36974637bff1dab6791e632, type: 3} propertyPath: m_RootOrder @@ -3427,7 +3488,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1111717751} + - {fileID: 1783132120} - {fileID: 574642923} - {fileID: 2104728855} - {fileID: 1967942859} @@ -3435,42 +3496,42 @@ Transform: - {fileID: 592417911} - {fileID: 422715582} - {fileID: 1150102938} - - {fileID: 101689199} + - {fileID: 685821225} - {fileID: 101156878} - {fileID: 987559891} - {fileID: 2140650221} - - {fileID: 78677765} + - {fileID: 320946491} - {fileID: 1189037852} - {fileID: 392842369} - {fileID: 1603574048} - {fileID: 1161887154} - {fileID: 885830940} - {fileID: 1521635478} - - {fileID: 1113264821} + - {fileID: 1357001625} - {fileID: 2028020625} - {fileID: 1155878567} - {fileID: 1097540418} - {fileID: 980422151} - - {fileID: 588510568} + - {fileID: 2053009712} - {fileID: 1467637301} - {fileID: 1299632836} - {fileID: 752268679} - {fileID: 972663953} - {fileID: 2022458187} - {fileID: 333337581} - - {fileID: 1675545742} + - {fileID: 633028660} - {fileID: 1079000208} - {fileID: 2070027127} - {fileID: 154086394} - {fileID: 508018014} - - {fileID: 1057001765} + - {fileID: 209365734} - {fileID: 130985509} - {fileID: 1235999367} - {fileID: 1175256389} - {fileID: 1178589473} - {fileID: 5889602} - {fileID: 177256213} - - {fileID: 1934520237} + - {fileID: 1615634420} - {fileID: 819908558} - {fileID: 2090781613} - {fileID: 707424673} @@ -3809,7 +3870,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7993275380040288456, guid: 9ae10e3fa7db64f47af31a5f0ebbecdc, type: 3} propertyPath: m_IsActive - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7993275380040288459, guid: 9ae10e3fa7db64f47af31a5f0ebbecdc, type: 3} propertyPath: m_RootOrder @@ -4611,83 +4672,6 @@ Transform: m_CorrespondingSourceObject: {fileID: 2960581183699728426, guid: 094ea6ce63e654b22964fec2f6344c8a, type: 3} m_PrefabInstance: {fileID: 1041368837} m_PrefabAsset: {fileID: 0} ---- !u!1001 &1057001764 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 868479585} - m_Modifications: - - target: {fileID: 2960581183699728421, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: isSafeZone - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_RootOrder - value: 36 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalPosition.x - value: 4 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalPosition.z - value: 20.58 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728427, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_Name - value: Tile (37) - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} ---- !u!4 &1057001765 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - m_PrefabInstance: {fileID: 1057001764} - m_PrefabAsset: {fileID: 0} ---- !u!114 &1057001766 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 2960581183699728421, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - m_PrefabInstance: {fileID: 1057001764} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: be69a8cfb3b2940308cbac570565e629, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!1 &1070491403 GameObject: m_ObjectHideFlags: 0 @@ -5037,99 +5021,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 21bc1be624c3645a2a713aa5171fc9aa, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!4 &1111717751 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - m_PrefabInstance: {fileID: 2960581184744312669} - m_PrefabAsset: {fileID: 0} ---- !u!114 &1111717752 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 2960581183699728421, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - m_PrefabInstance: {fileID: 2960581184744312669} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: be69a8cfb3b2940308cbac570565e629, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!1001 &1113264820 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 868479585} - m_Modifications: - - target: {fileID: 2960581183699728421, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: isSafeZone - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_RootOrder - value: 19 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalPosition.x - value: -15.03 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalPosition.z - value: -3.48 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728427, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_Name - value: Tile (20) - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} ---- !u!4 &1113264821 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - m_PrefabInstance: {fileID: 1113264820} - m_PrefabAsset: {fileID: 0} ---- !u!114 &1113264822 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 2960581183699728421, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - m_PrefabInstance: {fileID: 1113264820} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: be69a8cfb3b2940308cbac570565e629, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!1001 &1118588830 PrefabInstance: m_ObjectHideFlags: 0 @@ -6159,6 +6050,79 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1357001624 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 868479585} + m_Modifications: + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_RootOrder + value: 19 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalPosition.x + value: -15.03 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalPosition.z + value: -3.48 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728427, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_Name + value: SafeTile (20) + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} +--- !u!4 &1357001625 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + m_PrefabInstance: {fileID: 1357001624} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1357001626 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 5376650559335035371, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + m_PrefabInstance: {fileID: 1357001624} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 114033ff484fb492290f3118615ad4d8, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &1373272157 GameObject: m_ObjectHideFlags: 0 @@ -6707,6 +6671,79 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: be69a8cfb3b2940308cbac570565e629, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1001 &1615634419 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 868479585} + m_Modifications: + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_RootOrder + value: 43 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalPosition.x + value: 15.16 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalPosition.z + value: 4.01 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728427, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_Name + value: SafeTile (44) + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} +--- !u!4 &1615634420 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + m_PrefabInstance: {fileID: 1615634419} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1615634421 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 5376650559335035371, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + m_PrefabInstance: {fileID: 1615634419} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 114033ff484fb492290f3118615ad4d8, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1001 &1665297693 PrefabInstance: m_ObjectHideFlags: 0 @@ -6769,83 +6806,6 @@ Transform: m_CorrespondingSourceObject: {fileID: 7993275380040288459, guid: 28a2e17f2aa28459099c180350293bf6, type: 3} m_PrefabInstance: {fileID: 1665297693} m_PrefabAsset: {fileID: 0} ---- !u!1001 &1675545741 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 868479585} - m_Modifications: - - target: {fileID: 2960581183699728421, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: isSafeZone - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_RootOrder - value: 31 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalPosition.x - value: -3.57 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalPosition.z - value: 17.51 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728427, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_Name - value: Tile (32) - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} ---- !u!4 &1675545742 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - m_PrefabInstance: {fileID: 1675545741} - m_PrefabAsset: {fileID: 0} ---- !u!114 &1675545743 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 2960581183699728421, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - m_PrefabInstance: {fileID: 1675545741} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: be69a8cfb3b2940308cbac570565e629, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!1001 &1691461916 PrefabInstance: m_ObjectHideFlags: 0 @@ -7133,6 +7093,79 @@ Transform: m_Father: {fileID: 1251876827} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1783132119 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 868479585} + m_Modifications: + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalPosition.x + value: 18.83 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalPosition.z + value: -3.42 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728427, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_Name + value: SafeTile (1) + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} +--- !u!4 &1783132120 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + m_PrefabInstance: {fileID: 1783132119} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1783132121 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 5376650559335035371, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + m_PrefabInstance: {fileID: 1783132119} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 114033ff484fb492290f3118615ad4d8, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &1795608036 GameObject: m_ObjectHideFlags: 0 @@ -7300,83 +7333,6 @@ Transform: m_CorrespondingSourceObject: {fileID: 7993275380040288459, guid: 81ea53750af48479785425335304fdc7, type: 3} m_PrefabInstance: {fileID: 1900156992} m_PrefabAsset: {fileID: 0} ---- !u!1001 &1934520236 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 868479585} - m_Modifications: - - target: {fileID: 2960581183699728421, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: isSafeZone - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_RootOrder - value: 43 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalPosition.x - value: 15.16 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalPosition.z - value: 4.01 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728427, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_Name - value: Tile (44) - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} ---- !u!4 &1934520237 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - m_PrefabInstance: {fileID: 1934520236} - m_PrefabAsset: {fileID: 0} ---- !u!114 &1934520238 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 2960581183699728421, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - m_PrefabInstance: {fileID: 1934520236} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: be69a8cfb3b2940308cbac570565e629, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!1 &1934858462 GameObject: m_ObjectHideFlags: 0 @@ -7457,7 +7413,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: generalTiles: - - {fileID: 1111717752} + - {fileID: 1783132121} - {fileID: 574642924} - {fileID: 2104728856} - {fileID: 1967942860} @@ -7465,42 +7421,42 @@ MonoBehaviour: - {fileID: 592417912} - {fileID: 422715583} - {fileID: 1150102939} - - {fileID: 101689200} + - {fileID: 685821226} - {fileID: 101156879} - {fileID: 987559892} - {fileID: 2140650222} - - {fileID: 78677766} + - {fileID: 320946492} - {fileID: 1189037853} - {fileID: 392842370} - {fileID: 1603574049} - {fileID: 1161887155} - {fileID: 885830941} - {fileID: 1521635479} - - {fileID: 1113264822} + - {fileID: 1357001626} - {fileID: 2028020626} - {fileID: 1155878568} - {fileID: 1097540419} - {fileID: 980422152} - - {fileID: 588510569} + - {fileID: 2053009713} - {fileID: 1467637302} - {fileID: 1299632837} - {fileID: 752268680} - {fileID: 972663954} - {fileID: 2022458188} - {fileID: 333337582} - - {fileID: 1675545743} + - {fileID: 633028661} - {fileID: 1079000209} - {fileID: 2070027128} - {fileID: 154086395} - {fileID: 508018015} - - {fileID: 1057001766} + - {fileID: 209365735} - {fileID: 130985510} - {fileID: 1235999368} - {fileID: 1175256390} - {fileID: 1178589474} - {fileID: 5889603} - {fileID: 177256214} - - {fileID: 1934520238} + - {fileID: 1615634421} - {fileID: 819908559} - {fileID: 2090781614} - {fileID: 707424674} @@ -7892,6 +7848,79 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: be69a8cfb3b2940308cbac570565e629, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1001 &2053009711 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 868479585} + m_Modifications: + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_RootOrder + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalPosition.x + value: -18.5 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalPosition.z + value: 4.17 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2960581183699728427, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + propertyPath: m_Name + value: SafeTile (25) + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} +--- !u!4 &2053009712 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2960581183699728426, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + m_PrefabInstance: {fileID: 2053009711} + m_PrefabAsset: {fileID: 0} +--- !u!114 &2053009713 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 5376650559335035371, guid: 13346690e7c8b414cb171f800c32ec57, type: 3} + m_PrefabInstance: {fileID: 2053009711} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 114033ff484fb492290f3118615ad4d8, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1001 &2070027126 PrefabInstance: m_ObjectHideFlags: 0 @@ -8184,60 +8213,3 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: be69a8cfb3b2940308cbac570565e629, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!1001 &2960581184744312669 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 868479585} - m_Modifications: - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalPosition.x - value: 18.83 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalPosition.z - value: -3.42 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728426, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2960581183699728427, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} - propertyPath: m_Name - value: Tile (1) - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: bc986262997c641d9b5bcff22bd100c1, type: 3} diff --git a/Assets/Scripts/Gameplay/GameplayManager.cs b/Assets/Scripts/Gameplay/GameplayManager.cs index 3bb80c2..c14be1d 100644 --- a/Assets/Scripts/Gameplay/GameplayManager.cs +++ b/Assets/Scripts/Gameplay/GameplayManager.cs @@ -19,7 +19,7 @@ public class PlayerGameData public int startIndex; public int endIndex; public Transform playersParent; - public List playerPawns; + public List playerPawnsDict; public int totalPawnsFinished = 0; } @@ -62,7 +62,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader CanRollDice = true; InitCurrentGamePlayerInfo( - new List { PlayerTypes.Player1, PlayerTypes.Player3 }); + new List { PlayerTypes.Player1, PlayerTypes.Player2, PlayerTypes.Player3, PlayerTypes.Player4 }); } // TODO :: Call based on 2P/3P/4P @@ -81,13 +81,18 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader else { playerGameDatasDict.Add(playerGameData.playerType, playerGameData); + playerGameDatasDict[playerGameData.playerType].playerPawnsDict = new List(); + PlayerPawn playerPawn = null; + int indexer = 0; - playerGameDatasDict[playerGameData.playerType].playerPawns = new List(); foreach (Transform playerPawnChild in playerGameData.playersParent) { if (!playerPawnChild.gameObject.activeInHierarchy) continue; - - playerGameDatasDict[playerGameData.playerType].playerPawns.Add(playerPawnChild.GetComponent()); + + playerPawn = playerPawnChild.GetComponent(); + indexer++; + playerPawn.InitId(indexer); + playerGameDatasDict[playerGameData.playerType].playerPawnsDict.Add(playerPawn); } } } @@ -95,7 +100,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader public void EnablePlayerSelectionStates(bool state) { - foreach (PlayerPawn playerPawn in playerGameDatasDict[currentPlayerTypeTurn].playerPawns) + foreach (var playerPawn in playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict) { if (playerPawn.GetPlayerState() == PlayerState.InFinishingPath) continue; @@ -120,7 +125,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader CanRollDiceAgain = true; bool AreAllPawnsInFinishingPath = false; - foreach (var pawn in playerGameDatasDict[currentPlayerTypeTurn].playerPawns) + foreach (var pawn in playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict) { if (pawn.GetPlayerState() == PlayerState.InFinishingPath && pawn.GetPlayerState() != PlayerState.HasFinished) { @@ -141,7 +146,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader else // if there are any other pawns that are in safe or moving state { // for player's logic - IEnumerable availPlayers = playerGameDatasDict[currentPlayerTypeTurn].playerPawns.Select(pawn => pawn) + IEnumerable availPlayers = playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict.Select(pawn => pawn) .Where(pawn => pawn.GetPlayerState() == PlayerState.InSafeZone || pawn.GetPlayerState() == PlayerState.Moving || pawn.GetPlayerState() == PlayerState.InFinishingPath); @@ -187,8 +192,10 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader if (playerPawn.GetPlayerState() == PlayerState.InHome) { + Tile targetTile = tilesManager.RetrieveTileBasedOnIndex(playerGameData.startIndex); + playerPawn.MoveToTile( - tilesManager.RetrieveTileBasedOnIndex(playerGameData.startIndex).transform.position, + GetPositionInsideSafeZone(playerPawn, targetTile), onComplete: () => { CanRollDice = true; @@ -220,7 +227,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader Tile currentSittingTile = tilesManager.RetrieveTileBasedOnIndex(playerPawn.CurrentTileIndex); if (currentSittingTile.IsSafeZone) { - currentSittingTile.UpdateSafeZonePlayerData(currentPlayerTypeTurn); + ((SafeTile)currentSittingTile).UpdateSafeZonePlayerData(currentPlayerTypeTurn, playerPawn); } MoveThroughTiles(playerPawn, nextTileIdx, targetIndex: targetIdx); @@ -274,71 +281,32 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader private void MoveThroughTiles(PlayerPawn playerPawn, int index, int targetIndex) { - Debug.Log($"Tile Index :: nextIndex: {index}, targetIndex: {targetIndex}"); - Tile nextTile = tilesManager.RetrieveTileBasedOnIndex(index); - Vector3 targetPosition = tilesManager.RetrieveTileBasedOnIndex(index).CenterPlacementPosition; + Vector3 targetPosition = nextTile.CenterPlacementPosition; - if (index == targetIndex) // is next index the targetIndex + Debug.Log($"Tile Index :: nextIndex: {index}, targetIndex: {targetIndex}, nextTileName: {nextTile.name}"); + + if (index == targetIndex) // if the target index is the safe zone only then apply the logic for rearranging pawns { Tile targetTile = tilesManager.RetrieveTileBasedOnIndex(targetIndex); if (targetTile.IsSafeZone) { - if (targetTile.PlayerTypesCount == 1) - { - if (!targetTile.ContainsPlayerType(currentPlayerTypeTurn)) // means it is a new player type, the second one - { - PlayerTypes initialPlayerType = targetTile.GetFirstPlayerType(); - var playerPawnsCount = targetTile.GetPlayerPawnsCountInTile(initialPlayerType); - - // rearrange already existing player from center position to it's saved transform - for (int idx = 0; idx < playerPawnsCount; idx++) - { - targetTile.IterateAndGetPlayerPawn(initialPlayerType, idx).MoveToTileSubPosition(targetTile.GetPlacementPoint(initialPlayerType).position); - } - - targetTile.InitPlayerPawn(playerPawn, currentPlayerTypeTurn); - targetPosition = targetTile.GetPlacementPoint(currentPlayerTypeTurn).position; - } - else - { - targetPosition = targetTile.CenterPlacementPosition; - } - } - else - { - // TODO :: Check the data if it's consistent - if (!targetTile.ContainsPlayerType(currentPlayerTypeTurn)) - { - targetTile.InitPlayerPawn(playerPawn, currentPlayerTypeTurn); - targetPosition = targetTile.GetPlacementPoint(currentPlayerTypeTurn).position; - } - else - { - targetPosition = targetTile.GetPlacementPoint(currentPlayerTypeTurn).position; - } - } - - // TODO :: Introduce a swapping mechanism - } - else - { - // TODO :: Move code to onComplete callback - if (targetTile.PlayerPawn != null) // TODO :: Improve this logic, use a collection - { - // TODO :: send this pawn back to base - } + targetPosition = GetPositionInsideSafeZone(playerPawn, targetTile); } } + Debug.Log($"tile targetPosition: {targetPosition}"); + playerPawn.MoveToTile( targetPosition, onComplete: () => { diceRolledValue--; + Debug.Log($"DiceRolledValue: {diceRolledValue}"); if (diceRolledValue > 0) { int nextTileIndex = GetNextGeneralTileIndex(playerPawn); + Debug.Log($"currentTileIndex: {playerPawn.CurrentTileIndex}, nextTileIndex: {nextTileIndex}, targetIndex: {targetIndex}"); if (playerPawn.GetPlayerState() == PlayerState.InFinishingPath || index == playerGameDatasDict[currentPlayerTypeTurn].endIndex) { @@ -349,14 +317,29 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader else if (nextTileIndex <= targetIndex) { if (nextTileIndex == 0) - targetIndex = targetIndex - playerPawn.CurrentTileIndex; + targetIndex = (targetIndex - playerPawn.CurrentTileIndex) - 1; MoveThroughTiles(playerPawn, nextTileIndex, targetIndex); } } else { - nextTile.InitPlayerPawn(playerPawn, currentPlayerTypeTurn); + // TODO :: Improve this logic, use a collection + if (!nextTile.IsSafeZone) + { + if (nextTile.PlayerPawn != null) + { + // TODO :: Send existing pawn back to base. + // means there's already a pawn there, move him back to the base. + } + + nextTile.InitPlayerPawn(playerPawn, currentPlayerTypeTurn); + } + // else + // { + // ((SafeTile)nextTile).InitPlayerPawn(playerPawn, currentPlayerTypeTurn); + // } + SwitchPlayer(playerPawn); CanRollDice = true; } @@ -364,6 +347,74 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader index); } + private Vector3 GetPositionInsideSafeZone(PlayerPawn playerPawn, Tile targetTile) + { + Vector3 targetPosition; + SafeTile targetSafeTile = (SafeTile)targetTile; + Debug.Log($"targetSafeTile.PlayerTypesCount: {targetSafeTile.PlayerTypesCount}"); + if (targetSafeTile.PlayerTypesCount == 1) + { + Debug.Log($"targetSafeTile.ContainsPlayerType(currentPlayerTypeTurn): {targetSafeTile.ContainsPlayerType(currentPlayerTypeTurn)}"); + if (!targetSafeTile.ContainsPlayerType(currentPlayerTypeTurn)) // means it is a new player type, the second one + { + Debug.Log($"Logging data"); + PlayerTypes initialPlayerType = targetSafeTile.GetFirstPlayerType(); + Debug.Log($"initialPlayerType: {initialPlayerType}"); + int playerPawnsCount = targetSafeTile.GetPlayerPawnsCountInTile(initialPlayerType); + Debug.Log($"playerPawnsCount: {playerPawnsCount}"); + + // rearrange already existing player from center position to it's saved transform + var playerPawns = targetSafeTile.GetPlayerPawns(initialPlayerType); + Debug.Log($"playerPawns: {playerPawns.Count}"); + foreach (var pawn in playerPawns) + { + Debug.Log($"Getting placement data"); + var placementPoint = targetSafeTile.GetPlacementPoint(initialPlayerType); + Debug.Log($"PlacementPoint: {placementPoint.name}"); + pawn.MoveToTileSubPosition(placementPoint.position); + } + // for (int idx = 0; idx < playerPawnsCount; idx++) + // { + // targetSafeTile.IterateAndGetPlayerPawn(initialPlayerType, idx).MoveToTileSubPosition(targetSafeTile.GetPlacementPoint(initialPlayerType).position); + // } + + targetSafeTile.InitPlayerPawn(playerPawn, currentPlayerTypeTurn); + targetPosition = targetSafeTile.GetPlacementPoint(currentPlayerTypeTurn).position; + } + else + { + targetSafeTile.InitPlayerPawn(playerPawn, currentPlayerTypeTurn); + targetPosition = targetTile.CenterPlacementPosition; + } + } + else + { + // TODO :: Check the data if it's consistent + Debug.Log($"targetSafeTile.ContainsPlayerType(currentPlayerTypeTurn): {targetSafeTile.ContainsPlayerType(currentPlayerTypeTurn)}"); + if (!targetSafeTile.ContainsPlayerType(currentPlayerTypeTurn)) + { + 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); + targetPosition = targetTile.CenterPlacementPosition; + } + else + { + targetSafeTile.InitPlayerPawn(playerPawn, currentPlayerTypeTurn); + targetPosition = targetSafeTile.GetPlacementPoint(currentPlayerTypeTurn).position; + } + } + else + { + targetSafeTile.InitPlayerPawn(playerPawn, currentPlayerTypeTurn); + targetPosition = targetSafeTile.GetPlacementPoint(currentPlayerTypeTurn).position; + } + } + + return targetPosition; + } + private void MoveThroughFinishingPath(PlayerPawn playerPawn, int index, int targetIndex) { playerPawn.SetPlayerState(PlayerState.InFinishingPath); @@ -391,7 +442,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader playerPawn.SetPlayerState(PlayerState.HasFinished); playerGameDatasDict[currentPlayerTypeTurn].totalPawnsFinished++; - if (playerGameDatasDict[currentPlayerTypeTurn].totalPawnsFinished == playerGameDatasDict[currentPlayerTypeTurn].playerPawns.Count) + if (playerGameDatasDict[currentPlayerTypeTurn].totalPawnsFinished == playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict.Count) { CanRollDiceAgain = false; diff --git a/Assets/Scripts/Gameplay/Player/PlayerPawn.cs b/Assets/Scripts/Gameplay/Player/PlayerPawn.cs index a07a045..eba2146 100644 --- a/Assets/Scripts/Gameplay/Player/PlayerPawn.cs +++ b/Assets/Scripts/Gameplay/Player/PlayerPawn.cs @@ -21,6 +21,11 @@ public class PlayerPawn : MonoBehaviour get; private set; } + public int PlayerId + { + get; private set; + } + private GameplayManager gameplayManager; public void SetPlayerSelectionState(bool state) @@ -73,4 +78,9 @@ public class PlayerPawn : MonoBehaviour { gameplayManager = gameplayManager ?? InterfaceManager.Instance.GetInterfaceInstance(); } + + public void InitId(int id) + { + PlayerId = id; + } } diff --git a/Assets/Scripts/Tile/SafeTile.cs b/Assets/Scripts/Tile/SafeTile.cs new file mode 100644 index 0000000..939c93e --- /dev/null +++ b/Assets/Scripts/Tile/SafeTile.cs @@ -0,0 +1,89 @@ +using UnityEngine; +using System.Linq; +using System.Collections.Generic; + +public class SafeTile : Tile +{ + [SerializeField] private Transform centerPlacementPoint; + [SerializeField] private Transform[] placementPoints; + + protected Queue placementQueue = new Queue(); + protected Dictionary playerTypesDict = new Dictionary(); + + public int PlayerTypesCount => playerTypesDict.Count; + public bool HasMoreThanOnePlayerType => playerTypesDict.Count > 1; + public List GetPlayerPawns(PlayerTypes playerType) => playerTypesDict[playerType].playerPawns.Values.ToList(); + + public bool ContainsPlayerType(PlayerTypes playerType) => playerTypesDict.ContainsKey(playerType); + + private void Awake() + { + foreach (var placement in placementPoints) + { + placementQueue.Enqueue(placement); + } + } + + public override void InitPlayerPawn(PlayerPawn playerPawn, PlayerTypes playerType) + { + // PlayerPawn = playerPawn; + if (!playerTypesDict.ContainsKey(playerType)) + { + playerTypesDict.Add( + playerType, + new PlayerTileData { playerCount = 1, + playerPawns = new Dictionary() + }); + + playerTypesDict[playerType].playerPawns.Add(playerPawn.PlayerId, playerPawn); + playerTypesDict[playerType].commonPlacementTransform = placementQueue.Dequeue(); + + Debug.Log($"targetSafeTile. Adding player {playerType} {playerTypesDict[playerType].playerCount} tileName: {name}"); + } + else + { + playerTypesDict[playerType].playerCount++; + Debug.Log($"targetSafeTile. Adding player {playerType} {playerTypesDict[playerType].playerCount}, tileName: {name}"); + playerTypesDict[playerType].playerPawns.Add(playerPawn.PlayerId, playerPawn); + } + } + + public void UpdateSafeZonePlayerData(PlayerTypes playerType, PlayerPawn playerPawn) + { + if (playerTypesDict.ContainsKey(playerType)) + { + if (playerTypesDict[playerType].playerCount > 0) + { + Debug.Log($"targetSafeTile. Removing player {playerType} {playerTypesDict[playerType].playerCount}, tileName: {name}"); + playerTypesDict[playerType].playerCount--; + Debug.Log($"targetSafeTile. Removing player {playerType} after: {playerTypesDict[playerType].playerCount}"); + playerTypesDict[playerType].playerPawns.Remove(playerPawn.PlayerId); + + if (playerTypesDict[playerType].playerCount == 0) + { + placementQueue.Enqueue(playerTypesDict[playerType].commonPlacementTransform); + playerTypesDict.Remove(playerType); + Debug.Log($"targetSafeTile. Removing player {playerType}"); + lastOccupiedIndex--; + } + } + } + } + + public PlayerTypes GetFirstPlayerType() => playerTypesDict.Keys.FirstOrDefault(); + + public int GetPlayerPawnsCountInTile(PlayerTypes playerType) + { + return playerTypesDict[playerType].playerPawns.Count; + } + + public PlayerPawn IterateAndGetPlayerPawn(PlayerTypes playerType, int index) + { + return playerTypesDict[playerType].playerPawns[index + 1]; + } + + public Transform GetPlacementPoint(PlayerTypes playerType) + { + return playerTypesDict[playerType].commonPlacementTransform; + } +} diff --git a/Assets/Scripts/Tile/SafeTile.cs.meta b/Assets/Scripts/Tile/SafeTile.cs.meta new file mode 100644 index 0000000..cd827bc --- /dev/null +++ b/Assets/Scripts/Tile/SafeTile.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 114033ff484fb492290f3118615ad4d8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Tile/Tile.cs b/Assets/Scripts/Tile/Tile.cs index 50ca995..fd84884 100644 --- a/Assets/Scripts/Tile/Tile.cs +++ b/Assets/Scripts/Tile/Tile.cs @@ -1,106 +1,38 @@ -using System.Collections.Generic; -using System.Linq; using UnityEngine; +using System.Collections.Generic; + +[System.Serializable] +public class PlayerPlacementData +{ + public PlayerPawn pawn; + +} [System.Serializable] public class PlayerTileData { public int playerCount; - public Transform placementTransform; - public List playerPawns; + public Transform commonPlacementTransform; + public Dictionary playerPawns; } public class Tile : MonoBehaviour { - [SerializeField] private bool isSafeZone = false; - [SerializeField] private Transform centerPlacementPoint; - [SerializeField] private Transform[] placementPoints; + [SerializeField] protected bool isSafeZone = false; - private int lastOccupiedIndex = 0; + public bool IsSafeZone => isSafeZone; + + public Vector3 CenterPlacementPosition => transform.position; + + protected int lastOccupiedIndex = 0; public PlayerPawn PlayerPawn // Change implementation { get; private set; } - private Queue placementQueue = new Queue(); - private Dictionary playerTypesDict; - - public int PlayerTypesCount => playerTypesDict.Count; - public bool HasMoreThanOnePlayerType => playerTypesDict.Count > 1; - public bool IsSafeZone => isSafeZone; - - public Vector3 CenterPlacementPosition => centerPlacementPoint.position; - - public bool ContainsPlayerType(PlayerTypes playerType) => playerTypesDict.ContainsKey(playerType); - - public void Init(int playerTypesCount) - { - if (isSafeZone) - { - playerTypesDict = new Dictionary(); - foreach (var placement in placementPoints) - { - placementQueue.Enqueue(placement); - } - } - } - - public void InitPlayerPawn(PlayerPawn playerPawn, PlayerTypes playerType) + public virtual void InitPlayerPawn(PlayerPawn playerPawn, PlayerTypes playerType) { PlayerPawn = playerPawn; - if (isSafeZone) - { - if (!playerTypesDict.ContainsKey(playerType)) - { - playerTypesDict.Add( - playerType, - new PlayerTileData { playerCount = 1, placementTransform = placementQueue.Dequeue(), // TODO :: Change indexing logic - playerPawns = new List { playerPawn } - }); - } - else - { - playerTypesDict[playerType].playerCount++; - playerTypesDict[playerType].playerPawns.Add(playerPawn); - } - } - } - - public void UpdateSafeZonePlayerData(PlayerTypes playerType) - { - if (!IsSafeZone) return; - - if (playerTypesDict.ContainsKey(playerType)) - { - if (playerTypesDict[playerType].playerCount > 0) - { - playerTypesDict[playerType].playerCount--; - playerTypesDict[playerType].playerPawns.RemoveAt(playerTypesDict[playerType].playerPawns.Count - 1); - if (playerTypesDict[playerType].playerCount == 0) - { - placementQueue.Enqueue(playerTypesDict[playerType].placementTransform); - playerTypesDict.Remove(playerType); - lastOccupiedIndex--; - } - } - } - } - - public PlayerTypes GetFirstPlayerType() => playerTypesDict.Keys.FirstOrDefault(); - - public int GetPlayerPawnsCountInTile(PlayerTypes playerType) - { - return playerTypesDict[playerType].playerPawns.Count; - } - - public PlayerPawn IterateAndGetPlayerPawn(PlayerTypes playerType, int index) - { - return playerTypesDict[playerType].playerPawns[index]; - } - - public Transform GetPlacementPoint(PlayerTypes playerType) - { - return playerTypesDict[playerType].placementTransform; } } diff --git a/Assets/Scripts/Tile/TilesManager.cs b/Assets/Scripts/Tile/TilesManager.cs index af6d5dd..935455b 100644 --- a/Assets/Scripts/Tile/TilesManager.cs +++ b/Assets/Scripts/Tile/TilesManager.cs @@ -38,11 +38,6 @@ public class TilesManager : MonoBehaviour, IBootLoader, IDataLoader, IBase finishingTileDataPairs[tileData.playerType].Add(child); } } - - foreach (var tile in generalTiles) - { - tile.Init(gameplayManager.PlayerTypesCollection.Count); - } } public int GetFinishingTileDataLength(PlayerTypes playerType) => finishingTileDataPairs[playerType].Count; @@ -52,7 +47,14 @@ public class TilesManager : MonoBehaviour, IBootLoader, IDataLoader, IBase public Tile RetrieveTileBasedOnIndex(int index) { Debug.Log($"RetrieveTileBasedOnIndex: Index: {index}"); - return index == generalTiles.Length ? generalTiles[0] : generalTiles[index]; + + Tile tile = index == generalTiles.Length ? generalTiles[0] : generalTiles[index]; + // if (tile.IsSafeZone) + // { + // return (SafeTile)tile; + // } + + return tile; } public Transform RetrievePositionForFinishingTile(PlayerTypes playerType, int index) From 151823eb3610612a64f79e6aad591931daa04c59 Mon Sep 17 00:00:00 2001 From: Ashby Issac Date: Fri, 23 Jan 2026 13:33:16 +0530 Subject: [PATCH 3/5] Visual gameplay bug fixes. --- Assets/Scripts/Gameplay/GameplayManager.cs | 35 +++++++++----------- Assets/Scripts/Gameplay/Player/PlayerPawn.cs | 2 +- 2 files changed, 16 insertions(+), 21 deletions(-) diff --git a/Assets/Scripts/Gameplay/GameplayManager.cs b/Assets/Scripts/Gameplay/GameplayManager.cs index c14be1d..e5c6146 100644 --- a/Assets/Scripts/Gameplay/GameplayManager.cs +++ b/Assets/Scripts/Gameplay/GameplayManager.cs @@ -195,7 +195,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader Tile targetTile = tilesManager.RetrieveTileBasedOnIndex(playerGameData.startIndex); playerPawn.MoveToTile( - GetPositionInsideSafeZone(playerPawn, targetTile), + GetAndInitPositionInsideSafeZone(playerPawn, targetTile), onComplete: () => { CanRollDice = true; @@ -227,7 +227,17 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader Tile currentSittingTile = tilesManager.RetrieveTileBasedOnIndex(playerPawn.CurrentTileIndex); if (currentSittingTile.IsSafeZone) { - ((SafeTile)currentSittingTile).UpdateSafeZonePlayerData(currentPlayerTypeTurn, playerPawn); + SafeTile safeTile = (SafeTile)currentSittingTile; + safeTile.UpdateSafeZonePlayerData(currentPlayerTypeTurn, playerPawn); + + if (safeTile.PlayerTypesCount == 1) + { + PlayerTypes playerType = safeTile.GetFirstPlayerType(); + + var playerPawns = safeTile.GetPlayerPawns(playerType); + foreach (var pawn in playerPawns) + pawn.MoveToCustomTilePosition(safeTile.CenterPlacementPosition); + } } MoveThroughTiles(playerPawn, nextTileIdx, targetIndex: targetIdx); @@ -291,7 +301,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader Tile targetTile = tilesManager.RetrieveTileBasedOnIndex(targetIndex); if (targetTile.IsSafeZone) { - targetPosition = GetPositionInsideSafeZone(playerPawn, targetTile); + targetPosition = GetAndInitPositionInsideSafeZone(playerPawn, targetTile); } } @@ -335,10 +345,6 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader nextTile.InitPlayerPawn(playerPawn, currentPlayerTypeTurn); } - // else - // { - // ((SafeTile)nextTile).InitPlayerPawn(playerPawn, currentPlayerTypeTurn); - // } SwitchPlayer(playerPawn); CanRollDice = true; @@ -347,7 +353,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader index); } - private Vector3 GetPositionInsideSafeZone(PlayerPawn playerPawn, Tile targetTile) + private Vector3 GetAndInitPositionInsideSafeZone(PlayerPawn playerPawn, Tile targetTile) { Vector3 targetPosition; SafeTile targetSafeTile = (SafeTile)targetTile; @@ -357,26 +363,15 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader Debug.Log($"targetSafeTile.ContainsPlayerType(currentPlayerTypeTurn): {targetSafeTile.ContainsPlayerType(currentPlayerTypeTurn)}"); if (!targetSafeTile.ContainsPlayerType(currentPlayerTypeTurn)) // means it is a new player type, the second one { - Debug.Log($"Logging data"); PlayerTypes initialPlayerType = targetSafeTile.GetFirstPlayerType(); - Debug.Log($"initialPlayerType: {initialPlayerType}"); - int playerPawnsCount = targetSafeTile.GetPlayerPawnsCountInTile(initialPlayerType); - Debug.Log($"playerPawnsCount: {playerPawnsCount}"); // rearrange already existing player from center position to it's saved transform var playerPawns = targetSafeTile.GetPlayerPawns(initialPlayerType); - Debug.Log($"playerPawns: {playerPawns.Count}"); foreach (var pawn in playerPawns) { - Debug.Log($"Getting placement data"); var placementPoint = targetSafeTile.GetPlacementPoint(initialPlayerType); - Debug.Log($"PlacementPoint: {placementPoint.name}"); - pawn.MoveToTileSubPosition(placementPoint.position); + pawn.MoveToCustomTilePosition(placementPoint.position); } - // for (int idx = 0; idx < playerPawnsCount; idx++) - // { - // targetSafeTile.IterateAndGetPlayerPawn(initialPlayerType, idx).MoveToTileSubPosition(targetSafeTile.GetPlacementPoint(initialPlayerType).position); - // } targetSafeTile.InitPlayerPawn(playerPawn, currentPlayerTypeTurn); targetPosition = targetSafeTile.GetPlacementPoint(currentPlayerTypeTurn).position; diff --git a/Assets/Scripts/Gameplay/Player/PlayerPawn.cs b/Assets/Scripts/Gameplay/Player/PlayerPawn.cs index eba2146..c10a15b 100644 --- a/Assets/Scripts/Gameplay/Player/PlayerPawn.cs +++ b/Assets/Scripts/Gameplay/Player/PlayerPawn.cs @@ -48,7 +48,7 @@ public class PlayerPawn : MonoBehaviour transform.DOMove(startingPoint, 0.1f).onComplete = () => onComplete?.Invoke(); } - public void MoveToTileSubPosition(Vector3 targetPoint) + public void MoveToCustomTilePosition(Vector3 targetPoint) { transform.DOMove(targetPoint, 0.1f); } From d6036999815cc794ae2f46ca1daeff067fff1c5b Mon Sep 17 00:00:00 2001 From: Ashby Issac Date: Fri, 23 Jan 2026 15:32:48 +0530 Subject: [PATCH 4/5] Changes for moving player back to base. --- Assets/PlayerBaseHandler.cs | 36 ++++++++++++++++++ Assets/PlayerBaseHandler.cs.meta | 11 ++++++ Assets/Scenes/Game.unity | 30 ++++++++++----- Assets/Scripts/Gameplay/GameplayManager.cs | 40 ++++++++------------ Assets/Scripts/Gameplay/Player/PlayerBase.cs | 25 +++++++++--- Assets/Scripts/Gameplay/Player/PlayerPawn.cs | 5 +++ 6 files changed, 109 insertions(+), 38 deletions(-) create mode 100644 Assets/PlayerBaseHandler.cs create mode 100644 Assets/PlayerBaseHandler.cs.meta diff --git a/Assets/PlayerBaseHandler.cs b/Assets/PlayerBaseHandler.cs new file mode 100644 index 0000000..52f95a5 --- /dev/null +++ b/Assets/PlayerBaseHandler.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +[System.Serializable] +public class PlayerBaseData +{ + public PlayerTypes playerType; + public PlayerBase playerBase; +} + +public class PlayerBaseHandler : MonoBehaviour +{ + [SerializeField] private PlayerBase[] playerBases; + + public void InitPlayerTypes(List playerTypes) + { + foreach (PlayerBase playerBase in playerBases) + { + if (playerTypes.Contains(playerBase.GetPlayerType())) + { + playerBase.InitPlayerIds(); + playerBase.gameObject.SetActive(true); + } + else + { + playerBase.gameObject.SetActive(false); + } + } + } + + public void GetPlayerBase() + { + + } +} diff --git a/Assets/PlayerBaseHandler.cs.meta b/Assets/PlayerBaseHandler.cs.meta new file mode 100644 index 0000000..2c68233 --- /dev/null +++ b/Assets/PlayerBaseHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 647207b7c72d24ccaaebc10900c23d2b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Game.unity b/Assets/Scenes/Game.unity index 1762a60..9595249 100644 --- a/Assets/Scenes/Game.unity +++ b/Assets/Scenes/Game.unity @@ -1041,7 +1041,7 @@ GameObject: - component: {fileID: 241691680} - component: {fileID: 241691681} m_Layer: 0 - m_Name: Player2 + m_Name: Player2Base m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -1076,6 +1076,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 789d50d84a2014dedb8aa0bb22261a7e, type: 3} m_Name: m_EditorClassIdentifier: + basePlacementDatas: [] --- !u!1 &257080519 GameObject: m_ObjectHideFlags: 0 @@ -1795,7 +1796,7 @@ GameObject: m_Component: - component: {fileID: 433034050} m_Layer: 0 - m_Name: Pawns/Characters + m_Name: PlayerBases m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -2171,7 +2172,7 @@ GameObject: - component: {fileID: 574007535} - component: {fileID: 574007536} m_Layer: 0 - m_Name: Player1 + m_Name: Player1Base m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -2206,6 +2207,15 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 789d50d84a2014dedb8aa0bb22261a7e, type: 3} m_Name: m_EditorClassIdentifier: + basePlacementDatas: + - baseId: 1 + placementTransform: {fileID: 0} + - baseId: 2 + placementTransform: {fileID: 0} + - baseId: 3 + placementTransform: {fileID: 0} + - baseId: 4 + placementTransform: {fileID: 0} --- !u!1001 &574642922 PrefabInstance: m_ObjectHideFlags: 0 @@ -3710,28 +3720,28 @@ MonoBehaviour: startIndex: 0 endIndex: 46 playersParent: {fileID: 1373272158} - playerPawns: [] + playerPawnsDict: [] totalPawnsFinished: 0 - playerType: 1 playerCornerEntity: {fileID: 241691679} startIndex: 12 endIndex: 10 playersParent: {fileID: 1841959051} - playerPawns: [] + playerPawnsDict: [] totalPawnsFinished: 0 - playerType: 2 playerCornerEntity: {fileID: 987201643} startIndex: 24 endIndex: 22 playersParent: {fileID: 1934858463} - playerPawns: [] + playerPawnsDict: [] totalPawnsFinished: 0 - playerType: 3 playerCornerEntity: {fileID: 1251876826} startIndex: 36 endIndex: 34 playersParent: {fileID: 1094154913} - playerPawns: [] + playerPawnsDict: [] totalPawnsFinished: 0 --- !u!1001 &923111009 PrefabInstance: @@ -4257,7 +4267,7 @@ GameObject: - component: {fileID: 987201644} - component: {fileID: 987201645} m_Layer: 0 - m_Name: Player3 + m_Name: Player3Base m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -4292,6 +4302,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 789d50d84a2014dedb8aa0bb22261a7e, type: 3} m_Name: m_EditorClassIdentifier: + basePlacementDatas: [] --- !u!1001 &987559890 PrefabInstance: m_ObjectHideFlags: 0 @@ -5698,7 +5709,7 @@ GameObject: - component: {fileID: 1251876827} - component: {fileID: 1251876828} m_Layer: 0 - m_Name: Player4 + m_Name: Player4Base m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -5733,6 +5744,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 789d50d84a2014dedb8aa0bb22261a7e, type: 3} m_Name: m_EditorClassIdentifier: + basePlacementDatas: [] --- !u!1001 &1266600967 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Gameplay/GameplayManager.cs b/Assets/Scripts/Gameplay/GameplayManager.cs index e5c6146..3ef5cb6 100644 --- a/Assets/Scripts/Gameplay/GameplayManager.cs +++ b/Assets/Scripts/Gameplay/GameplayManager.cs @@ -15,7 +15,6 @@ public enum PlayerTypes public class PlayerGameData { public PlayerTypes playerType; - public GameObject playerCornerEntity; public int startIndex; public int endIndex; public Transform playersParent; @@ -31,6 +30,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader [SerializeField] private Material selectMat; [SerializeField] private PlayerGameData[] playerGameDatas; + [SerializeField] private PlayerBaseHandler playerBaseHandler; private PlayerTypes currentPlayerTypeTurn; private int currentPlayerTurnIndex = 0; @@ -61,39 +61,31 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader tilesManager = InterfaceManager.Instance.GetInterfaceInstance(); CanRollDice = true; - InitCurrentGamePlayerInfo( - new List { PlayerTypes.Player1, PlayerTypes.Player2, PlayerTypes.Player3, PlayerTypes.Player4 }); + playerTypes = new List { PlayerTypes.Player1, PlayerTypes.Player2, PlayerTypes.Player3, PlayerTypes.Player4 }; + + playerBaseHandler.InitPlayerTypes(playerTypes); + InitCurrentGamePlayerInfo(); } // TODO :: Call based on 2P/3P/4P - public void InitCurrentGamePlayerInfo(List playerTypes) + public void InitCurrentGamePlayerInfo() { - this.playerTypes = playerTypes; currentPlayerTypeTurn = playerTypes[currentPlayerTurnIndex]; // initialize the board based on the player types foreach (PlayerGameData playerGameData in playerGameDatas) { if (!playerTypes.Contains(playerGameData.playerType)) - { - playerGameData.playerCornerEntity.SetActive(false); - } - else - { - playerGameDatasDict.Add(playerGameData.playerType, playerGameData); - playerGameDatasDict[playerGameData.playerType].playerPawnsDict = new List(); - PlayerPawn playerPawn = null; - int indexer = 0; + continue; - foreach (Transform playerPawnChild in playerGameData.playersParent) - { - if (!playerPawnChild.gameObject.activeInHierarchy) continue; - - playerPawn = playerPawnChild.GetComponent(); - indexer++; - playerPawn.InitId(indexer); - playerGameDatasDict[playerGameData.playerType].playerPawnsDict.Add(playerPawn); - } + playerGameDatasDict.Add(playerGameData.playerType, playerGameData); + playerGameDatasDict[playerGameData.playerType].playerPawnsDict = new List(); + + foreach (Transform playerPawnChild in playerGameData.playersParent) + { + if (!playerPawnChild.gameObject.activeInHierarchy) continue; + + playerGameDatasDict[playerGameData.playerType].playerPawnsDict.Add(playerPawnChild.GetComponent()); } } } @@ -233,7 +225,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader if (safeTile.PlayerTypesCount == 1) { PlayerTypes playerType = safeTile.GetFirstPlayerType(); - + var playerPawns = safeTile.GetPlayerPawns(playerType); foreach (var pawn in playerPawns) pawn.MoveToCustomTilePosition(safeTile.CenterPlacementPosition); diff --git a/Assets/Scripts/Gameplay/Player/PlayerBase.cs b/Assets/Scripts/Gameplay/Player/PlayerBase.cs index b935406..4bf0da6 100644 --- a/Assets/Scripts/Gameplay/Player/PlayerBase.cs +++ b/Assets/Scripts/Gameplay/Player/PlayerBase.cs @@ -1,15 +1,30 @@ using UnityEngine; +[System.Serializable] +public class BasePlacementData +{ + public int playerBaseId; + public Transform placementTransform; +} + public class PlayerBase : MonoBehaviour { - void Start() + [SerializeField] private PlayerTypes playerType; + [SerializeField] private BasePlacementData[] basePlacementDatas; + [SerializeField] private PlayerPawn[] playerPawns; + + public PlayerTypes GetPlayerType() => playerType; + + public void InitPlayerIds() { - + for (int idx = 0; idx < basePlacementDatas.Length; idx++) + { + playerPawns[idx].InitId(basePlacementDatas[idx].playerBaseId); + } } - // Update is called once per frame - void Update() + public BasePlacementData GetBasePlacementData(int idx) { - + return basePlacementDatas[idx]; } } diff --git a/Assets/Scripts/Gameplay/Player/PlayerPawn.cs b/Assets/Scripts/Gameplay/Player/PlayerPawn.cs index c10a15b..0587042 100644 --- a/Assets/Scripts/Gameplay/Player/PlayerPawn.cs +++ b/Assets/Scripts/Gameplay/Player/PlayerPawn.cs @@ -26,6 +26,11 @@ public class PlayerPawn : MonoBehaviour get; private set; } + public int BaseId + { + get; private set; + } + private GameplayManager gameplayManager; public void SetPlayerSelectionState(bool state) From 141eef7aef3767f8b7c7dc6d68f0e8a347a22faa Mon Sep 17 00:00:00 2001 From: Ashby Issac Date: Fri, 23 Jan 2026 15:33:56 +0530 Subject: [PATCH 5/5] Disabled debug code. --- Assets/Scripts/Gameplay/GameplayManager.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Assets/Scripts/Gameplay/GameplayManager.cs b/Assets/Scripts/Gameplay/GameplayManager.cs index 3ef5cb6..42b75d7 100644 --- a/Assets/Scripts/Gameplay/GameplayManager.cs +++ b/Assets/Scripts/Gameplay/GameplayManager.cs @@ -271,8 +271,8 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader } } - var tempPos = playerGameDatasDict[currentPlayerTypeTurn].playerCornerEntity.transform.position; - pointerDebug.position = new Vector3(tempPos.x, 3f, tempPos.z); + // var tempPos = playerGameDatasDict[currentPlayerTypeTurn].playerCornerEntity.transform.position; + // pointerDebug.position = new Vector3(tempPos.x, 3f, tempPos.z); pointerMeshRend.material = turnMat; // pointerMeshRend.materials[0] = turnMat;