Compare commits
No commits in common. "f86216c729b139d8a82c5244c6e421406e4c3099" and "eecba2779b80da007d29813bd737993b45f45126" have entirely different histories.
f86216c729
...
eecba2779b
@ -99,7 +99,6 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
|||||||
{
|
{
|
||||||
// TODO :: 2P, 3P, 4P
|
// TODO :: 2P, 3P, 4P
|
||||||
allPlayerTypes = new List<PlayerType> { PlayerType.Player1, PlayerType.Player2, PlayerType.Player3, PlayerType.Player4 };
|
allPlayerTypes = new List<PlayerType> { PlayerType.Player1, PlayerType.Player2, PlayerType.Player3, PlayerType.Player4 };
|
||||||
// allPlayerTypes = new List<PlayerType> { PlayerType.Player1, PlayerType.Player3 };
|
|
||||||
|
|
||||||
playerBaseHandler.InitPlayerTypes(allPlayerTypes);
|
playerBaseHandler.InitPlayerTypes(allPlayerTypes);
|
||||||
InitCurrentGamePlayerInfo();
|
InitCurrentGamePlayerInfo();
|
||||||
@ -259,7 +258,7 @@ 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 (availPlayers.Count() < 1 && !CanRollDiceAgain || !botTypesInGame.Contains(currentPlayerTypeTurn)) 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
|
||||||
@ -290,22 +289,21 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO :: Double check
|
// TODO :: Double check
|
||||||
foreach (var key in botPawnsDictForCurrentPlayer.Keys)
|
// foreach (var key in botPawnsDictForCurrentPlayer.Keys)
|
||||||
{
|
|
||||||
Debug.Log($"b :: botPawnsDictForCurrentPlayer[key]: {botPawnsDictForCurrentPlayer[key]}");
|
|
||||||
// botPawnsDictForCurrentPlayer[key] = BotMove.NoMoves;
|
// botPawnsDictForCurrentPlayer[key] = BotMove.NoMoves;
|
||||||
Debug.Log($"a :: botPawnsDictForCurrentPlayer[key]: {botPawnsDictForCurrentPlayer[key]}");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Debug.Log($"Before Iterating");
|
|
||||||
foreach (var playerPawn in availPlayers)
|
foreach (var playerPawn in availPlayers)
|
||||||
{
|
{
|
||||||
Debug.Log($"Iterating");
|
|
||||||
var possibleLandingIndex = playerPawn.CurrentTileIndex + diceRolledValue;
|
var possibleLandingIndex = playerPawn.CurrentTileIndex + diceRolledValue;
|
||||||
|
|
||||||
|
if (playerPawn.GetPlayerState() == PlayerState.HasFinished)
|
||||||
|
{
|
||||||
|
botPawnsDictForCurrentPlayer.Remove(playerPawn.PlayerId); // TODO :: Double check logic
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
int lastIndex = tilesManager.GetGeneralTilesLength() - 1;
|
int lastIndex = tilesManager.GetGeneralTilesLength() - 1;
|
||||||
int index = possibleLandingIndex > lastIndex ? possibleLandingIndex - lastIndex - 1 : possibleLandingIndex;
|
int index = possibleLandingIndex > lastIndex ? (possibleLandingIndex - lastIndex) - 1 : possibleLandingIndex;
|
||||||
Tile possibleTileData = tilesManager.RetrieveTileBasedOnIndex(index);
|
Tile possibleTileData = tilesManager.RetrieveTileBasedOnIndex(index);
|
||||||
|
|
||||||
Debug.Log($"AI playerPawn :: {playerPawn.name} :: state: {playerPawn.GetPlayerState()}, possibleLandingIndex: {possibleLandingIndex > playerGameDatasDict[currentPlayerTypeTurn].endIndex}");
|
Debug.Log($"AI playerPawn :: {playerPawn.name} :: state: {playerPawn.GetPlayerState()}, possibleLandingIndex: {possibleLandingIndex > playerGameDatasDict[currentPlayerTypeTurn].endIndex}");
|
||||||
@ -313,41 +311,28 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
|||||||
Debug.Log($"AI playerPawn :: {playerPawn.name} :: possibleTileData.PlayerPawn: {possibleTileData.PlayerPawn}");
|
Debug.Log($"AI playerPawn :: {playerPawn.name} :: possibleTileData.PlayerPawn: {possibleTileData.PlayerPawn}");
|
||||||
|
|
||||||
if (playerPawn.GetPlayerState() == PlayerState.InFinishingPath || possibleLandingIndex > playerGameDatasDict[currentPlayerTypeTurn].endIndex)
|
if (playerPawn.GetPlayerState() == PlayerState.InFinishingPath || possibleLandingIndex > playerGameDatasDict[currentPlayerTypeTurn].endIndex)
|
||||||
{
|
|
||||||
Debug.Log($"AI playerPawn :: {playerPawn.name} :: {playerPawn.PlayerId} :: inFinishingPath :: canSelectPlayer: {playerPawn.CanSelectPlayer}");
|
|
||||||
if (playerPawn.CanSelectPlayer)
|
|
||||||
{
|
{
|
||||||
botPawnsDictForCurrentPlayer[playerPawn.PlayerId] = BotMove.FinishingPathMove;
|
botPawnsDictForCurrentPlayer[playerPawn.PlayerId] = BotMove.FinishingPathMove;
|
||||||
savedPlayerId = playerPawn.PlayerId;
|
savedPlayerId = playerPawn.PlayerId;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else
|
else if (possibleTileData.IsSafeZone || playerPawn.GetPlayerState() == PlayerState.InHome)
|
||||||
{
|
{
|
||||||
botPawnsDictForCurrentPlayer[playerPawn.PlayerId] = BotMove.NoMoves;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (possibleTileData.IsSafeZone)
|
|
||||||
{
|
|
||||||
Debug.Log($"AI playerPawn :: {playerPawn.name} :: {playerPawn.PlayerId} :: safeMove");
|
|
||||||
botPawnsDictForCurrentPlayer[playerPawn.PlayerId] = BotMove.SafeMove;
|
botPawnsDictForCurrentPlayer[playerPawn.PlayerId] = BotMove.SafeMove;
|
||||||
}
|
}
|
||||||
else if (possibleTileData.PlayerPawn != null)
|
else if (possibleTileData.PlayerPawn != null)
|
||||||
{
|
{
|
||||||
Debug.Log($"AI playerPawn :: {playerPawn.name} :: {playerPawn.PlayerId} :: attackMove");
|
|
||||||
botPawnsDictForCurrentPlayer[playerPawn.PlayerId] = BotMove.AttackMove;
|
botPawnsDictForCurrentPlayer[playerPawn.PlayerId] = BotMove.AttackMove;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Debug.Log($"AI playerPawn :: {playerPawn.name} :: {playerPawn.PlayerId} :: normalMove");
|
Debug.Log($"AI playerPawn :: {playerPawn.name} :: normalMove");
|
||||||
botPawnsDictForCurrentPlayer[playerPawn.PlayerId] = BotMove.NormalMove;
|
botPawnsDictForCurrentPlayer[playerPawn.PlayerId] = BotMove.NormalMove;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
List<int> playerIds = new List<int>();
|
List<int> playerIds = new List<int>();
|
||||||
|
if (savedPlayerId != -1 && playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict[savedPlayerId].CanSelectPlayerFromHome)
|
||||||
if (savedPlayerId != -1)
|
|
||||||
Debug.Log($"SavedPlayerId: {savedPlayerId}, CanSelectPlayer: {playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict[savedPlayerId].CanSelectPlayer}");
|
|
||||||
if (savedPlayerId != -1 && playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict[savedPlayerId].CanSelectPlayer)
|
|
||||||
{
|
{
|
||||||
pawn = playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict[savedPlayerId]; // chances are when one of the character reaches towards the finishing point
|
pawn = playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict[savedPlayerId]; // chances are when one of the character reaches towards the finishing point
|
||||||
}
|
}
|
||||||
@ -427,25 +412,13 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
|||||||
canSwitchPlayer = false;
|
canSwitchPlayer = false;
|
||||||
// provide option to select a pawn from the list
|
// provide option to select a pawn from the list
|
||||||
// also play a simple animation before selecting
|
// also play a simple animation before selecting
|
||||||
|
EnablePlayerSelectionStates(true);
|
||||||
CanRollDiceAgain = true;
|
CanRollDiceAgain = true;
|
||||||
pointerMeshRend.material = selectMat;
|
|
||||||
|
|
||||||
foreach (var playerPawn in playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict)
|
|
||||||
if (playerPawn.Value.GetPlayerState() == PlayerState.InFinishingPath)
|
|
||||||
playerPawn.Value.SetPlayerSelectionState(false);
|
|
||||||
|
|
||||||
Debug.Log($"### AreAllPawnsInFinishingPath");
|
|
||||||
if (AreAllPawnsInFinishingPath())
|
if (AreAllPawnsInFinishingPath())
|
||||||
{
|
|
||||||
CanRollDice = true;
|
CanRollDice = true;
|
||||||
|
|
||||||
return;
|
pointerMeshRend.material = selectMat;
|
||||||
}
|
|
||||||
|
|
||||||
Debug.Log($"### EnablePlayerSelectionStates");
|
|
||||||
|
|
||||||
EnablePlayerSelectionStates(true);
|
|
||||||
|
|
||||||
// pointerMeshRend.materials[0] = selectMat;
|
// pointerMeshRend.materials[0] = selectMat;
|
||||||
}
|
}
|
||||||
else // if there are any other pawns that are in safe or moving state
|
else // if there are any other pawns that are in safe or moving state
|
||||||
@ -453,36 +426,31 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
|||||||
// for player's logic
|
// for player's logic
|
||||||
InitActivePlayers();
|
InitActivePlayers();
|
||||||
|
|
||||||
|
Debug.Log($"availPlayers: {playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict.Values.Select(pawn => pawn).Where(pawn => pawn.GetPlayerState() == PlayerState.InHome).ToList().Count}");
|
||||||
int customAvailPlayers = availPlayers.Count();
|
int customAvailPlayers = availPlayers.Count();
|
||||||
Debug.Log($"before CustomAvailablePlayers: {customAvailPlayers}");
|
Debug.Log($"before CustomAvailablePlayers: {customAvailPlayers}");
|
||||||
List<int> indexesToRemove = new List<int>();
|
|
||||||
|
|
||||||
for (int i = 0; i < availPlayers.Count; i++)
|
foreach (PlayerPawn playerPawn in availPlayers)
|
||||||
{
|
{
|
||||||
Debug.Log($"## playerPawn.GetPlayerState(): {availPlayers[i].GetPlayerState()}");
|
Debug.Log($"## playerPawn.GetPlayerState(): {playerPawn.GetPlayerState()}");
|
||||||
|
if (playerPawn.GetPlayerState() == PlayerState.InFinishingPath)
|
||||||
if (availPlayers[i].GetPlayerState() == PlayerState.InFinishingPath)
|
|
||||||
{
|
{
|
||||||
Debug.Log($"diceRolledValue: {diceRolledValue}, FinishingDataLen: {tilesManager.GetFinishingTileDataLength(currentPlayerTypeTurn)}, playerPawn.CurrentTileIndex: {availPlayers[i].CurrentTileIndex}");
|
Debug.Log($"diceRolledValue: {diceRolledValue}, FinishingDataLen: {tilesManager.GetFinishingTileDataLength(currentPlayerTypeTurn)}, playerPawn.CurrentTileIndex: {playerPawn.CurrentTileIndex}");
|
||||||
if (diceRolledValue <= tilesManager.GetFinishingTileDataLength(currentPlayerTypeTurn) - (availPlayers[i].CurrentTileIndex + 1))
|
if (diceRolledValue <= tilesManager.GetFinishingTileDataLength(currentPlayerTypeTurn) - (playerPawn.CurrentTileIndex + 1))
|
||||||
{
|
{
|
||||||
availPlayers[i].SetPlayerSelectionState(true);
|
playerPawn.SetPlayerSelectionState(true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
indexesToRemove.Add(i);
|
|
||||||
availPlayers[i].SetPlayerSelectionState(false);
|
|
||||||
customAvailPlayers--;
|
customAvailPlayers--;
|
||||||
}
|
}
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
availPlayers[i].SetPlayerSelectionState(true);
|
playerPawn.SetPlayerSelectionState(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (int i in indexesToRemove) availPlayers.RemoveAt(i);
|
|
||||||
|
|
||||||
// if (availPlayers.Count() < 1)
|
// if (availPlayers.Count() < 1)
|
||||||
Debug.Log($"CustomAvailablePlayers: {customAvailPlayers}");
|
Debug.Log($"CustomAvailablePlayers: {customAvailPlayers}");
|
||||||
canSwitchPlayer = customAvailPlayers < 1;
|
canSwitchPlayer = customAvailPlayers < 1;
|
||||||
@ -505,9 +473,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
|||||||
bool areAllPawnsInFinishingPath = false;
|
bool areAllPawnsInFinishingPath = false;
|
||||||
foreach (var pawn in playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict)
|
foreach (var pawn in playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict)
|
||||||
{
|
{
|
||||||
if (pawn.Value.GetPlayerState() == PlayerState.HasFinished) continue;
|
if (pawn.Value.GetPlayerState() == PlayerState.InFinishingPath && pawn.Value.GetPlayerState() != PlayerState.HasFinished)
|
||||||
|
|
||||||
if (pawn.Value.GetPlayerState() == PlayerState.InFinishingPath)
|
|
||||||
{
|
{
|
||||||
areAllPawnsInFinishingPath = true;
|
areAllPawnsInFinishingPath = true;
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
@ -22,11 +22,10 @@ public class PlayerPawn : MonoBehaviour
|
|||||||
[SerializeField] private PlayerState playerState;
|
[SerializeField] private PlayerState playerState;
|
||||||
[SerializeField] private Animator animator;
|
[SerializeField] private Animator animator;
|
||||||
|
|
||||||
public bool CanSelectPlayer
|
public bool CanSelectPlayerFromHome
|
||||||
{
|
{
|
||||||
get; private set;
|
get; private set;
|
||||||
}
|
}
|
||||||
|
|
||||||
private GameplayManager gameplayManager;
|
private GameplayManager gameplayManager;
|
||||||
|
|
||||||
public int CurrentTileIndex
|
public int CurrentTileIndex
|
||||||
@ -61,8 +60,8 @@ public class PlayerPawn : MonoBehaviour
|
|||||||
|
|
||||||
public void SetPlayerSelectionState(bool state)
|
public void SetPlayerSelectionState(bool state)
|
||||||
{
|
{
|
||||||
CanSelectPlayer = state;
|
CanSelectPlayerFromHome = state;
|
||||||
if (CanSelectPlayer)
|
if (CanSelectPlayerFromHome)
|
||||||
{
|
{
|
||||||
// TODO :: Play animation for selecting any of the players
|
// TODO :: Play animation for selecting any of the players
|
||||||
}
|
}
|
||||||
@ -113,7 +112,7 @@ public class PlayerPawn : MonoBehaviour
|
|||||||
|
|
||||||
private void OnMouseDown()
|
private void OnMouseDown()
|
||||||
{
|
{
|
||||||
if (IsBotPlayer || !CanSelectPlayer) return;
|
if (IsBotPlayer || !CanSelectPlayerFromHome) return;
|
||||||
|
|
||||||
SetGameplayManager();
|
SetGameplayManager();
|
||||||
gameplayManager.OnPawnSelected(this);
|
gameplayManager.OnPawnSelected(this);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user