Compare commits

..

3 Commits

Author SHA1 Message Date
f7c2f4c612 Merge remote-tracking branch 'origin/Gameplay/main-gameplay' into Gameplay/siva-gameplay 2026-01-30 13:33:07 +05:30
9eef3eb04c Merge branch 'Gameplay/ashby-gameplay' into Gameplay/main-gameplay
# Conflicts:
#	Assets/External-Assets/packages/Project/Scripts/Gameplay/Snake and Ladder/DiceView.cs
#	Assets/Scripts/Gameplay/GameplayManager.cs
#	Assets/Scripts/Input/DiceRollHandler.cs
2026-01-30 12:57:17 +05:30
14d4a562a4 New dice logic + fixes. 2026-01-30 12:54:43 +05:30
3 changed files with 25 additions and 18 deletions

View File

@ -25,10 +25,11 @@ public class DiceView : MonoBehaviour, IBase
transform.localPosition = new Vector3(0, 20, 0); transform.localPosition = new Vector3(0, 20, 0);
} }
public void Roll(Action<int> onComplete) public void Roll(Action<int> onComplete, bool isBot)
{ {
if (!rolling) if (!rolling)
{ {
Debug.Log($"isBot: {isBot}");
onRollingComplete = onComplete; onRollingComplete = onComplete;
StartCoroutine(RollRoutine()); StartCoroutine(RollRoutine());
} }
@ -96,5 +97,12 @@ public class DiceView : MonoBehaviour, IBase
rb.angularVelocity = Vector3.zero; rb.angularVelocity = Vector3.zero;
transform.localPosition = new Vector3(0, 20, 0); transform.localPosition = new Vector3(0, 20, 0);
rolling = false; rolling = false;
Invoke(nameof(ResetEvent), 0.5f);
}
private void ResetEvent()
{
onRollingComplete = null;
} }
} }

View File

@ -96,8 +96,6 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
{ {
tilesManager = InterfaceManager.Instance.GetInterfaceInstance<TilesManager>(); tilesManager = InterfaceManager.Instance.GetInterfaceInstance<TilesManager>();
CanRollDiceForUser = true;
InitPlayerTypesForBotMatch(PlayerType.Player1, 3); InitPlayerTypesForBotMatch(PlayerType.Player1, 3);
} }
@ -109,6 +107,8 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
playerBaseHandler.InitPlayerTypes(allPlayerTypes); playerBaseHandler.InitPlayerTypes(allPlayerTypes);
InitCurrentGamePlayerInfo(); InitCurrentGamePlayerInfo();
SetCanRollDiceForUser(true);
} }
public void InitPlayerTypesForBotMatch(PlayerType selectedPlayerType, int botCount) public void InitPlayerTypesForBotMatch(PlayerType selectedPlayerType, int botCount)
@ -124,6 +124,8 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
InitCurrentGamePlayerInfo(); InitCurrentGamePlayerInfo();
InitBotRuntimeData(); InitBotRuntimeData();
AssignPlayerAndBotStates(selectedPlayerType); AssignPlayerAndBotStates(selectedPlayerType);
SetCanRollDiceForUser(!botTypesInGame.Contains(selectedPlayerType));
} }
private void InitBotRuntimeData() private void InitBotRuntimeData()
@ -244,7 +246,6 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
{ {
Debug.Log($"Switching player"); Debug.Log($"Switching player");
SwitchPlayer(); SwitchPlayer();
SetCanRollDiceForUser(true);
} }
} }
@ -276,7 +277,11 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
// What happens when you get a 6 // What happens when you get a 6
private void SelectPawnFromBotBase() private void SelectPawnFromBotBase()
{ {
if (canSwitchPlayer || availPlayers.Count() < 1 && !CanRollDiceAgain || !botTypesInGame.Contains(currentPlayerTypeTurn)) return; // Have a better check here if (canSwitchPlayer || availPlayers.Count() < 1 && !CanRollDiceAgain || !botTypesInGame.Contains(currentPlayerTypeTurn))
{
Debug.Log($"returning from SelectPawnFromBotBase");
return; // Have a better check here
}
Debug.Log($"CallTest: SelectPawnFromBotBase: {currentPlayerTypeTurn}"); Debug.Log($"CallTest: SelectPawnFromBotBase: {currentPlayerTypeTurn}");
var botPawnsDictForCurrentPlayer = botRuntimeMovementData[currentPlayerTypeTurn]; // set the data inside this dict var botPawnsDictForCurrentPlayer = botRuntimeMovementData[currentPlayerTypeTurn]; // set the data inside this dict
@ -452,7 +457,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
Debug.Log($"### AreAllPawnsInFinishingPath"); Debug.Log($"### AreAllPawnsInFinishingPath");
if (AreAllPawnsInFinishingPath()) if (AreAllPawnsInFinishingPath())
{ {
SetCanRollDiceForUser(true); SetCanRollDiceForUser(!botTypesInGame.Contains(currentPlayerTypeTurn));
return; return;
} }
@ -800,10 +805,6 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
} }
SwitchPlayer(playerPawn); SwitchPlayer(playerPawn);
if (!CanRollDiceAgain)
{
SetCanRollDiceForUser(true);
}
} }
}, },
index); index);
@ -924,21 +925,20 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
{ {
CanRollDiceAgain = true; CanRollDiceAgain = true;
if (playerPawn.IsBotPlayer) if (playerPawn.IsBotPlayer)
CheckDiceRollForBot(playerPawn); CheckDiceRollForBot(playerPawn);
else
SetCanRollDiceForUser(true);
} }
} }
else else
{ {
if (CheckForMaxDiceRollAttempt()) if (CheckForMaxDiceRollAttempt())
{ {
SetCanRollDiceForUser(true);
return; return;
} }
SwitchPlayer(); SwitchPlayer();
} }
SetCanRollDiceForUser(true);
} }
}, },
index); index);
@ -946,8 +946,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
private void SetCanRollDiceForUser(bool state) private void SetCanRollDiceForUser(bool state)
{ {
// if (botTypesInGame.Contains(playerType)) return;
CanRollDiceForUser = state; CanRollDiceForUser = state;
Debug.Log($"CAnRollDiceForUser: {CanRollDiceForUser}");
} }
} }

View File

@ -34,11 +34,11 @@ public class DiceRollHandler : MonoBehaviour
{ {
if (!inputManager.GameplayManager.CanRollDiceForUser) return; if (!inputManager.GameplayManager.CanRollDiceForUser) return;
diceView.Roll(onComplete: (rolledVal) => OnUserDiceRollComplete(rolledVal)); diceView.Roll(onComplete: (rolledVal) => OnUserDiceRollComplete(rolledVal), false);
} }
public void HandleDiceViewForBot(Action<int> onComplete) public void HandleDiceViewForBot(Action<int> onComplete)
{ {
diceView.Roll(onComplete: onComplete); diceView.Roll(onComplete: (val) => onComplete?.Invoke(val), true);
} }
} }