Compare commits

...

5 Commits

22 changed files with 2778 additions and 2130 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 MiB

View File

@ -0,0 +1,169 @@
fileFormatVersion: 2
guid: ba663284666654b1abb477ac5ccb8f3d
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: Logo_GO88 1_0
rect:
serializedVersion: 2
x: 88
y: 152
width: 2444
height: 1104
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 281a1393ddc5148d79a719ca7cd0f112
internalID: 2023667419
vertices: []
indices:
edges: []
weights: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable:
Logo_GO88 1_0: 2023667419
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 MiB

View File

@ -0,0 +1,147 @@
fileFormatVersion: 2
guid: 1cfb151daad2e4e719892a83a58ce545
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -29,9 +29,11 @@ public class DiceView : MonoBehaviour, IBase
[SerializeField] private Image diceImage;
[SerializeField] private Sprite defaultSprite;
[SerializeField] private Button diceButton;
[SerializeField] private RectTransform diceRectTransform;
[SerializeField] private int diceVal;
private Animator animator;
private List<int> probabilityValues = new List<int>() { 3, 4, 5 };
private List<int> probabilityValues = new List<int>() { 2, 3, 4 };
private Action<int> onRollingComplete = null;
private IRollBase rollBase = null;
@ -43,7 +45,6 @@ public class DiceView : MonoBehaviour, IBase
private void Awake()
{
animator = GetComponent<Animator>();
Debug.Log($"Dice roll test: StartRollingAction: animator: {animator}");
}
public void Roll(Action<int> onComplete, bool isBot)
@ -61,7 +62,6 @@ public class DiceView : MonoBehaviour, IBase
private void StartRollingAction()
{
Debug.Log($"Dice roll test: StartRollingAction: animator: {animator}, {gameObject.name}");
rolling = true;
rolledVal = 0;
// start animation
@ -81,6 +81,8 @@ public class DiceView : MonoBehaviour, IBase
{
rolledVal = GetDiceValue();
}
if (diceVal != 0) rolledVal = diceVal;
}
/*
@ -90,30 +92,27 @@ public class DiceView : MonoBehaviour, IBase
public void OnDiceRollingCompleted()
{
animator.ResetTrigger(Ludo_3D_Constants.RollDiceTriggerString);
Debug.Log($"Dice roll test: OnDiceRollingCompleted");
if (rolledVal == Ludo_3D_Constants.Max_Dice_Rolls)
ResetRollData();
ResetData();
Debug.Log($"Dice roll test: Dice rolled: {rolledVal}");
onRollingComplete?.Invoke(rolledVal);
}
public void OnReturnedToIdle()
{
Debug.Log($"Dice roll test: OnReturnedToIdle: rolled: {rolledVal}");
Debug.Log($"DiceView :: OnReturnedToIdle: {rolledVal}");
animator.enabled = false;
if (rolledVal == 0)
{
diceImage.sprite = defaultSprite;
Debug.Log($"Dice roll test: OnReturnedToIdle: setting default sprite");
ShowDefaultSprite();
}
else
{
diceImage.sprite = diceSideDatas[rolledVal - 1].sprite;
}
Debug.Log($"Dice roll test: OnReturnedToIdle: diceImage.sprite: {diceImage.sprite.name}");
}
private int GetDiceValue()
@ -135,12 +134,17 @@ public class DiceView : MonoBehaviour, IBase
public void SetDiceButtonInteraction(bool status)
{
diceButton.interactable = status;
}
public void ResetOnSessionEnd()
{
ResetData();
rolledVal = 0;
OnReturnedToIdle();
diceRectTransform.rotation = Quaternion.identity;
diceRectTransform.localScale = Vector3.one;
onRollingComplete = null;
}
@ -152,4 +156,10 @@ public class DiceView : MonoBehaviour, IBase
this.rollBase = rollBase;
}
public void ShowDefaultSprite()
{
Debug.Log($"DiceView :: ShowDefaultSprite");
diceImage.sprite = defaultSprite;
}
}

View File

@ -629,7 +629,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
playerState: 0
animator: {fileID: 5526766409186502679}
playerCountCanvas: {fileID: 5728752331380905399}
playerIndicatorCanvas: {fileID: 5728752331380905399}
--- !u!1 &4818123989977612668
GameObject:
m_ObjectHideFlags: 0

View File

@ -629,7 +629,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
playerState: 0
animator: {fileID: 5274388487207906813}
playerCountCanvas: {fileID: 7923051124467737897}
playerIndicatorCanvas: {fileID: 7923051124467737897}
--- !u!1 &5059623752267150313
GameObject:
m_ObjectHideFlags: 0

View File

@ -201,7 +201,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
playerState: 0
animator: {fileID: 232863433340697214}
playerCountCanvas: {fileID: 1920934309388072333}
playerIndicatorCanvas: {fileID: 1920934309388072333}
--- !u!136 &1627116187348267135
CapsuleCollider:
m_ObjectHideFlags: 0

View File

@ -1258,7 +1258,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
playerState: 0
animator: {fileID: 7800412279828783518}
playerCountCanvas: {fileID: 941219433310479660}
playerIndicatorCanvas: {fileID: 941219433310479660}
--- !u!1 &7074820051352815849
GameObject:
m_ObjectHideFlags: 0

View File

@ -248,3 +248,6 @@ MonoBehaviour:
sprite: {fileID: -387705599, guid: bbe0ebcb7b6854733a0dd63492c4d57d, type: 3}
diceImage: {fileID: 3592825875980183606}
defaultSprite: {fileID: 1572130339, guid: 2c0526d99bc3843a4b73e6eb2f3b1376, type: 3}
diceButton: {fileID: 1882416428171655661}
diceRectTransform: {fileID: 4547155689416384467}
diceVal: 0

File diff suppressed because it is too large Load Diff

View File

@ -4,6 +4,8 @@ using System.Linq;
using DG.Tweening;
using UnityEngine;
using System.Collections.Generic;
using System.Threading;
using UnityEngine.Serialization;
public enum BotMove
{
@ -25,10 +27,12 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
[SerializeField] DiceRollHandler diceRollHandler;
[SerializeField] private int diceValue = 0;
[SerializeField] private float botDiceRollDelay = 0.25f;
[SerializeField] private float diceRollDelayForBot = 0.5f;
[SerializeField] private float diceRollDelayForUser = 0.5f;
[SerializeField] private int maxDiceSixRollCounter = 2;
[SerializeField] private int totalStepsForCharacter = 57;
[SerializeField] private int currentPlayerTurnMaxTime = 5;
[SerializeField] private int currentPlayerSelectionMaxTime = 5;
[SerializeField] private TextMeshProUGUI diceText;
@ -42,7 +46,6 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
[SerializeField] private PlayerGameData[] playerGameDatas;
[SerializeField] private PlayerBaseHandler playerBaseHandler;
public PlayerType CurrentPlayerTypeTurn => currentPlayerTypeTurn;
public PlayerBaseHandler PlayerBaseHandler => playerBaseHandler;
private PlayerType currentPlayerTypeTurn;
@ -129,8 +132,6 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
playerBaseHandler.InitPlayerTypes(allPlayerTypes);
InitCurrentGamePlayerInfo();
// SetCanRollDiceForUser(true);
}
public void InitPlayerTypesForBotMatch(PlayerData selectedPlayerData, int botCount)
@ -169,7 +170,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
private void HandleDiceRollWithDelay()
{
Invoke(nameof(RollDiceForBot), botDiceRollDelay);
Invoke(nameof(RollDiceForBot), diceRollDelayForBot);
}
private void InitBotRuntimeData()
@ -240,38 +241,49 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
playerBaseHandler.ShowSelectedPlayerBase(currentPlayerTypeTurn, false);
currentPlayerTypeTurn = playerType;
playerBaseHandler.ShowSelectedPlayerBase(currentPlayerTypeTurn, true);
diceRollHandler.DiceView.SetDiceButtonInteraction(true);
UpdateTurnTimer();
}
private void UpdateTurnTimer()
private void UpdateDiceView()
{
diceRollHandler.DiceView.SetDiceButtonInteraction(true);
diceRollHandler.DiceView.ShowDefaultSprite();
UpdateResponseTimerForUser(currentPlayerMaxTime: currentPlayerTurnMaxTime, () => RollDiceForUser());
}
private void UpdateDiceViewForBot()
{
UpdateDiceView();
HandleDiceRollWithDelay();
}
private void UpdateResponseTimerForUser(int currentPlayerMaxTime, Action onComplete)
{
if (gameModeHandler.CurrentGameModeType == GameModeType.Bot)
{
bool isBotTurn = botTypesInGame.Contains(currentPlayerTypeTurn);
SetCanRollDiceForUser(!isBotTurn);
// SetCanRollDiceForUser(!isBotTurn); // TODO :: Need to change
if (isBotTurn)
{
currentPlayerTurnTimer.KillTimer();
uIManager.UpdatePlayerTurnText(currentPlayerTypeTurn);
return;
}
}
else
SetCanRollDiceForUser(true);
// else
// SetCanRollDiceForUser(true); // TODO :: Need to change
uIManager.UpdatePlayerTurnText(currentPlayerTypeTurn, currentPlayerTurnMaxTime);
uIManager.UpdatePlayerTurnText(currentPlayerTypeTurn, currentPlayerMaxTime);
if (currentPlayerTurnTimer == null)
currentPlayerTurnTimer = new TimerSystem();
currentPlayerTurnTimer.Init(currentPlayerTurnMaxTime, onComplete: () =>
currentPlayerTurnTimer.Init(currentPlayerMaxTime, onComplete: () =>
{
Debug.Log($"currentPlayerTurnTimer: HandleDiceViewForUser");
RollDiceForUser();
onComplete?.Invoke();
}, inProgress: (remTime) =>
{
uIManager.UpdatePlayerTurnText(currentPlayerTypeTurn, currentPlayerTurnMaxTime - (int)remTime);
uIManager.UpdatePlayerTurnText(currentPlayerTypeTurn, currentPlayerMaxTime - (int)remTime);
});
}
@ -296,6 +308,8 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
public void InitCurrentGamePlayerInfo()
{
UpdateCurrentPlayerTurn(allPlayerTypes[currentPlayerTurnIndex]);
SetCanRollDiceForUser(IsUsersTurn());
UpdateDiceView();
Debug.Log($"currentPlayerTypeTurn: {currentPlayerTypeTurn}");
#if UNITY_EDITOR
@ -337,11 +351,15 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
}
}
public void EnablePlayerSelectionStates(bool state)
public void SetPlayerSelectionStates(bool state, Predicate<PlayerState> skipPredicate = null)
{
foreach (var playerPawn in playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict)
{
if (playerPawn.Value.GetPlayerState() == PlayerState.InFinishingPath) continue;
if (skipPredicate != null && skipPredicate.Invoke(playerPawn.Value.GetPlayerState()))
{
playerPawn.Value.SetPlayerSelectionState(false);
continue;
}
playerPawn.Value.SetPlayerSelectionState(state);
}
@ -349,7 +367,6 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
public void OnDiceInteracted()
{
ResetCurrentPlayerTurnTimer();
RollDiceForUser();
}
@ -411,10 +428,13 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
Debug.Log($"SelectPawnFromBotBase: availPlayers.Count(): {availPlayersToMove.Count()}, CanRollDiceAgain: {CanRollDiceAgain}");
InitActivePlayers();
#if UNITY_EDITOR
if (playerGameDatasDict[currentPlayerTypeTurn].totalPawnsInHome == 0)
{
UpdateActivePlayersAndSetDisplay(true);
SetDisplayCountForAllAvailPlayers(true);
}
#endif
if (CanRollDiceAgain) // got a 6 roll value
{
@ -516,7 +536,9 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
}
if (CanRollDiceAgain)
{
RollDiceForBot();
}
else
SwitchPlayer();
}
@ -573,21 +595,26 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
private bool HasNoPlayersTravelling() => Mathf.Abs(availPlayersToMove.Count - playerGameDatasDict[currentPlayerTypeTurn].totalPawnsInFinishingPath) < 1;
private bool IsUsersTurn() => gameModeHandler.CurrentGameModeType != GameModeType.Bot ||
!botTypesInGame.Contains(currentPlayerTypeTurn);
public void OnDiceRolled(int rolledVal)
{
SetCanRollDiceForUser(false);
diceRollHandler.DiceView.SetDiceButtonInteraction(false);
// add core dice logic here
Debug.Log($"Tile Index :: LUDO :: rolledVal: {rolledVal} :: {currentPlayerTypeTurn}");
diceRolledValue = rolledVal;
diceText.text = $"{diceRolledValue}";
if (!CanRollDiceAgain)
if (!CanRollDiceAgain) // remove this check for showing arrow logic
{
#if UNITY_EDITOR
SetDisplayCountForAllAvailPlayers(true);
#endif
}
FilterAvailablePlayersToMove();
if (rolledVal == Ludo_3D_Constants.Max_Dice_Rolls)
{
canSwitchPlayer = false;
@ -596,8 +623,9 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
CanRollDiceAgain = true;
diceSixRollCounter++;
if (botTypesInGame != null && !botTypesInGame.Contains(currentPlayerTypeTurn))
if (IsUsersTurn())
{
Debug.Log($"availPlayersToMove.Count < 1: {availPlayersToMove.Count < 1} || HasNoPlayersTravelling(): {HasNoPlayersTravelling()}");
if (availPlayersToMove.Count < 1 || HasNoPlayersTravelling())
{
if (playerGameDatasDict[currentPlayerTypeTurn].totalPawnsInHome > 0)
@ -610,78 +638,108 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
else
{
if (playerGameDatasDict[currentPlayerTypeTurn].totalPawnsInHome < 1 && CanMoveSoloPlayer())
{
SetPlayerSelectionStates(false);
OnPawnSelected(availPlayersToMove[0]);
return;
}
}
}
#if UNITY_EDITOR
pointerMeshRend.material = selectMat;
#endif
foreach (var playerPawn in playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict)
if (playerPawn.Value.GetPlayerState() == PlayerState.InFinishingPath)
playerPawn.Value.SetPlayerSelectionState(false);
Debug.Log($"### AreAllPawnsInFinishingPath");
if (AreAllPawnsInFinishingPath())
{
SetCanRollDiceForUser(gameModeHandler.CurrentGameModeType != GameModeType.Bot || !botTypesInGame.Contains(currentPlayerTypeTurn));
SetCanRollDiceForUser(IsUsersTurn());
UpdateResponseTimerForUser(currentPlayerSelectionMaxTime, () => RollDiceForUser());
CheckForMaxDiceRollAttempt();
return;
}
Debug.Log($"### EnablePlayerSelectionStates");
EnablePlayerSelectionStates(true);
// pointerMeshRend.materials[0] = selectMat;
SetPlayerSelectionStates(true, (state) => state == PlayerState.InFinishingPath || state == PlayerState.HasFinished);
}
else // if there are any other pawns that are in safe or moving state
else
{
Debug.Log($"before CustomAvailablePlayers: {availPlayersToMove.Count}");
List<int> indexesToRemove = new List<int>();
for (int i = 0; i < availPlayersToMove.Count; i++)
{
Debug.Log($"## playerPawn.GetPlayerState(): {availPlayersToMove[i].GetPlayerState()}");
if (availPlayersToMove[i].GetPlayerState() == PlayerState.InFinishingPath)
{
Debug.Log($"diceRolledValue: {diceRolledValue}, FinishingDataLen: {TilesManager.GetFinishingTileDataLength(currentPlayerTypeTurn)}, playerPawn.CurrentTileIndex: {availPlayersToMove[i].CurrentTileIndex}");
if (diceRolledValue <= TilesManager.GetFinishingTileDataLength(currentPlayerTypeTurn) - (availPlayersToMove[i].CurrentTileIndex + 1))
{
availPlayersToMove[i].SetPlayerSelectionState(true);
}
else
{
indexesToRemove.Add(i);
availPlayersToMove[i].SetPlayerSelectionState(false);
availPlayersToMove[i].ShowPlayerCountCanvas(false);
}
continue;
}
availPlayersToMove[i].SetPlayerSelectionState(true);
}
for (int idx = indexesToRemove.Count - 1; idx >= 0; idx--)
availPlayersToMove.RemoveAt(idx);
Debug.Log($"CustomAvailablePlayers: {availPlayersToMove.Count}");
canSwitchPlayer = availPlayersToMove.Count < 1;
CanRollDiceAgain = false;
if (botTypesInGame != null && !botTypesInGame.Contains(currentPlayerTypeTurn) &&
availPlayersToMove.Count > 0)
{
if (CanMoveSoloPlayer())
{
EnablePlayerSelectionStates(false);
OnPawnSelected(availPlayersToMove[0]);
}
}
}
diceRollHandler.DiceView.SetDiceButtonInteraction(CanRollDiceAgain);
Debug.Log($"CanRollDiceAgain: {CanRollDiceAgain}, canSwitchPlayer: {canSwitchPlayer}");
if (IsUsersTurn())
{
Action onComplete = null;
if (CanRollDiceAgain && availPlayersToMove.Count < 1 &&
playerGameDatasDict[currentPlayerTypeTurn].totalPawnsInHome > 0)
{
onComplete = () => OnPawnSelected(playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict.Values
.FirstOrDefault(pawn => pawn.GetPlayerState() == PlayerState.InHome));
UpdateResponseTimerForUser(currentPlayerSelectionMaxTime, () => onComplete?.Invoke());
}
else if (availPlayersToMove.Count > 0)
{
if (CanRollDiceAgain && playerGameDatasDict[currentPlayerTypeTurn].totalPawnsInHome > 0)
{
onComplete = () => OnPawnSelected(playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict.Values
.FirstOrDefault(pawn => pawn.GetPlayerState() == PlayerState.InHome));
UpdateResponseTimerForUser(currentPlayerSelectionMaxTime, () => onComplete?.Invoke());
return;
}
if (CanMoveSoloPlayer())
{
SetPlayerSelectionStates(false);
OnPawnSelected(availPlayersToMove[0]);
return;
}
onComplete = () => OnPawnSelected(availPlayersToMove.OrderByDescending(pawn => pawn.StepsTaken).FirstOrDefault());
UpdateResponseTimerForUser(currentPlayerSelectionMaxTime, () => onComplete?.Invoke());
}
}
}
private void FilterAvailablePlayersToMove()
{
List<int> indexesToRemove = new List<int>();
for (int i = 0; i < availPlayersToMove.Count; i++)
{
Debug.Log($"## playerPawn.GetPlayerState(): {availPlayersToMove[i].GetPlayerState()}");
if (availPlayersToMove[i].GetPlayerState() == PlayerState.InFinishingPath)
{
Debug.Log($"diceRolledValue: {diceRolledValue}, FinishingDataLen: {TilesManager.GetFinishingTileDataLength(currentPlayerTypeTurn)}, playerPawn.CurrentTileIndex: {availPlayersToMove[i].CurrentTileIndex}");
if (diceRolledValue <= TilesManager.GetFinishingTileDataLength(currentPlayerTypeTurn) - (availPlayersToMove[i].CurrentTileIndex + 1))
{
availPlayersToMove[i].SetPlayerSelectionState(true);
}
else
{
indexesToRemove.Add(i);
availPlayersToMove[i].SetPlayerSelectionState(false);
#if UNITY_EDITOR
availPlayersToMove[i].ShowPlayerCountCanvas(false);
#endif
}
continue;
}
availPlayersToMove[i].SetPlayerSelectionState(true);
}
for (int idx = indexesToRemove.Count - 1; idx >= 0; idx--)
availPlayersToMove.RemoveAt(idx);
}
private bool CanMoveSoloPlayer()
@ -699,12 +757,6 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
return false;
}
private void UpdateActivePlayersAndSetDisplay(bool state)
{
InitActivePlayers();
SetDisplayCountForAllAvailPlayers(state);
}
private void InitActivePlayers()
{
availPlayersToMove = new List<PlayerPawn>();
@ -736,6 +788,12 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
private void UpdatePlayerState(PlayerPawn playerPawn, PlayerState playerState)
{
if (!playerPawn)
{
// Debug.LogError($"Player pawn is null");
return;
}
Debug.Log($"#### UpdatePlayerState ");
playerGameDatasDict[playerPawn.PlayerType].playerPawnsDict[playerPawn.PlayerId] = playerPawn;
playerGameDatasDict[playerPawn.PlayerType].playerPawnsDict[playerPawn.PlayerId].SetPlayerState(playerState);
@ -752,6 +810,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
private void RollDiceForUser()
{
ResetCurrentPlayerTurnTimer();
InitActivePlayers();
bool canUsePawnsFromHome = CanUsePawnsFromHome();
diceRollHandler.HandleDiceViewForUser(
@ -761,6 +820,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
private void RollDiceForBot()
{
ResetCurrentPlayerTurnTimer();
InitActivePlayers();
HandleDiceRollForBot();
}
@ -792,23 +852,29 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
public void OnPawnSelected(PlayerPawn selectedPawn)
{
EnablePlayerSelectionStates(false);
// TODO :: Hide the selectable characters indicator here
SetPlayerSelectionStates(false);
if (IsUsersTurn()) currentPlayerTurnTimer.KillTimer();
PlayerGameData playerGameData = playerGameDatasDict[currentPlayerTypeTurn];
Debug.Log($"playerPawn.GetPlayerState(): {selectedPawn.GetPlayerState()}");
#if UNITY_EDITOR
selectedPawn.ShowPlayerCountCanvas(false);
#endif
if (selectedPawn.GetPlayerState() == PlayerState.InHome)
{
Tile targetTile = TilesManager.RetrieveTileBasedOnIndex(playerGameData.startIndex);
selectedPawn.ShowPlayerCountCanvas(false);
selectedPawn.MoveToTile(
TilesManager.GetAndInitPositionInsideSafeZone(selectedPawn, targetTile, currentPlayerTypeTurn),
onComplete: () =>
{
playerGameDatasDict[playerGameData.playerType].totalPawnsInHome--;
UpdatePlayerState(selectedPawn, PlayerState.InSafeZone);
#if UNITY_EDITOR
ShowUpdatedPlayerCountOnTile(selectedPawn);
#endif
if (CheckForMaxDiceRollAttempt())
{
return;
@ -817,7 +883,10 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
if (selectedPawn.IsBotPlayer)
CheckDiceRollForBot();
else
UpdateTurnTimer();
{
SetCanRollDiceForUser(IsUsersTurn());
UpdateResponseTimerForUser(currentPlayerMaxTime: currentPlayerTurnMaxTime, () => RollDiceForUser());
}
}, playerGameData.startIndex);
@ -828,12 +897,14 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
Tile currentSittingTile = TilesManager.RetrieveFinishingTileBasedOnIndex(selectedPawn.PlayerType, selectedPawn.CurrentTileIndex);
currentSittingTile.ResetPlayerPawn(selectedPawn);
#if UNITY_EDITOR
if (currentSittingTile.HasPawnsAvailable)
{
var playerPawns = currentSittingTile.GetPlayerPawns();
foreach (var pawn in playerPawns)
ShowUpdatedPlayerCountOnTile(pawn);
}
#endif
ApplyFinishingPathLogic(selectedPawn);
}
@ -866,22 +937,26 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
pawn.MoveToCustomTilePosition(currentSittingSafeTile.CenterPlacementPosition);
}
#if UNITY_EDITOR
if (currentSittingSafeTile.ContainsPlayerType(currentPlayerTypeTurn))
{
var playerPawns = currentSittingSafeTile.GetPlayerPawns(currentPlayerTypeTurn);
foreach (var pawn in playerPawns)
ShowUpdatedPlayerCountOnTile(pawn);
}
#endif
}
else
{
currentSittingTile.ResetPlayerPawn(selectedPawn);
#if UNITY_EDITOR
if (currentSittingTile.HasPawnsAvailable)
{
var playerPawns = currentSittingTile.GetPlayerPawns();
foreach (var pawn in playerPawns)
ShowUpdatedPlayerCountOnTile(pawn);
}
#endif
}
MoveThroughTiles(selectedPawn, nextTileIdx, targetIndex: targetIdx);
@ -896,7 +971,6 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
Debug.Log($"TargetIdx: {targetIdx}, finishingPathIndex: {finishingPathIndex}");
playerPawn.ShowPlayerCountCanvas(false);
MoveThroughFinishingPath(playerPawn, finishingPathIndex, targetIdx);
}
@ -916,7 +990,10 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
Debug.Log($"before SwitchPlayer availPlayers: {availPlayersToMove.Count}, playerPawn: {playerPawn}");
UpdateActivePlayersAndSetDisplay(false);
InitActivePlayers();
#if UNITY_EDITOR
SetDisplayCountForAllAvailPlayers(false);
#endif
Debug.Log($"after SwitchPlayer availPlayers: {availPlayersToMove.Count}, playerPawn: {playerPawn}");
Debug.Log($"after allPlayerTypes.Count: {allPlayerTypes.Count}");
@ -939,13 +1016,32 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
soundManager.PlayGameSoundClip(SoundType.Turn);
UpdateCurrentPlayerTurn(allPlayerTypes[currentPlayerTurnIndex]);
Debug.Log($"IsUsersTurn: {IsUsersTurn()}");
if (IsUsersTurn())
{
SetCanRollDiceForUser(true);
Invoke(nameof(UpdateDiceView), diceRollDelayForUser);
}
else
{
SetCanRollDiceForUser(false);
currentPlayerTurnTimer.KillTimer();
Invoke(nameof(UpdateDiceViewForBot), diceRollDelayForBot);
}
diceSixRollCounter = 0;
diceText.text = $"{0}";
}
else
{
UpdateTurnTimer();
}
// else
// {
// UpdateResponseTimerForUser(currentPlayerMaxTime: currentPlayerTurnMaxTime, () => RollDiceForUser());
//
// if (gameModeHandler.CurrentGameModeType == GameModeType.Bot && botTypesInGame.Contains(currentPlayerTypeTurn)) // TODO :: Double check calling of the function
// {
// Debug.Log($"Invoking RollDiceForBot");
// HandleDiceRollWithDelay();
// }
// }
Debug.Log($"currentPlayerTurnIndex: {currentPlayerTurnIndex}");
Debug.Log($"CurrentPlayerTurn: {currentPlayerTypeTurn}");
@ -955,8 +1051,14 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
pointerMeshRend.material = turnMat;
// pointerMeshRend.materials[0] = turnMat;
#endif
}
// Debug.Log($"botTypesInGame.Contains(currentPlayerTypeTurn): {botTypesInGame.Contains(currentPlayerTypeTurn)}");
private void OnCanRollDiceAgain(PlayerPawn playerPawn = null)
{
if (playerPawn)
UpdatePlayerState(playerPawn, TilesManager.RetrieveTileBasedOnIndex(playerPawn.CurrentTileIndex).IsSafeZone ? PlayerState.InSafeZone : PlayerState.Moving);
UpdateResponseTimerForUser(currentPlayerMaxTime: currentPlayerTurnMaxTime, () => RollDiceForUser());
if (gameModeHandler.CurrentGameModeType == GameModeType.Bot && botTypesInGame.Contains(currentPlayerTypeTurn)) // TODO :: Double check calling of the function
{
@ -965,26 +1067,6 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
}
}
#if UNITY_EDITOR
private void SetCurrentSelectedPointer()
{
var tempPos = playerBaseHandler.GetPlayerBase(currentPlayerTypeTurn).transform.position;
pointerDebug.position = new Vector3(tempPos.x, 3f, tempPos.z);
}
#endif
public void SetDisplayCountForAllAvailPlayers(bool state)
{
if (state)
{
availPlayersToMove.ForEach(pawn => ShowUpdatedPlayerCountOnTile(pawn));
}
else
{
availPlayersToMove.ForEach(pawn => pawn.ShowPlayerCountCanvas(false));
}
}
private void MoveThroughTiles(PlayerPawn playerPawn, int index, int targetIndex)
{
Tile nextTile = TilesManager.RetrieveTileBasedOnIndex(index);
@ -1002,7 +1084,9 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
}
Debug.Log($"tile targetPosition: {targetPosition}");
playerPawn.ShowPlayerCountCanvas(false);
#if UNITY_EDITOR
playerPawn.ShowPlayerCountCanvas(false); // TODO :: Check if call can be removed
#endif
playerPawn.MoveToTile(
targetPosition,
@ -1038,7 +1122,11 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
Debug.Log($"nextTile.IsSafeZone: {nextTile.IsSafeZone}");
if (CanRollDiceAgain)
{
#if UNITY_EDITOR
ShowUpdatedPlayerCountOnTile(playerPawn);
#endif
}
if (!nextTile.IsSafeZone)
{
@ -1067,14 +1155,12 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
}
CanRollDiceAgain = true;
if (!playerPawn.IsBotPlayer)
{
UpdateTurnTimer();
}
}
nextTile.InitPlayerPawn(playerPawn, currentPlayerTypeTurn);
#if UNITY_EDITOR
ShowUpdatedPlayerCountOnTile(playerPawn);
#endif
if (CheckForMaxDiceRollAttempt())
{
@ -1089,7 +1175,18 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
}
}
SwitchPlayer(playerPawn);
if (!CanRollDiceAgain) SwitchPlayer(playerPawn);
else
{
if (IsUsersTurn())
{
UpdateResponseTimerForUser(currentPlayerMaxTime: currentPlayerTurnMaxTime, () => RollDiceForUser());
SetCanRollDiceForUser(IsUsersTurn());
}
OnCanRollDiceAgain(playerPawn);
diceRollHandler.DiceView.SetDiceButtonInteraction(true);
}
}
},
index);
@ -1098,8 +1195,8 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
public void CheckForGamePause(Action onComplete)
{
Debug.Log($"CheckForGamePause: {GameManager.CurrentGameState == GameState.IsPaused}");
if (gameModeHandler.CurrentGameModeType == GameModeType.Bot && !botTypesInGame.Contains(currentPlayerTypeTurn)
&& GameManager.CurrentGameState == GameState.IsPaused)
if ((botTypesInGame == null || !botTypesInGame.Contains(currentPlayerTypeTurn)) &&
GameManager.CurrentGameState == GameState.IsPaused)
{
OnGameResumed = onComplete;
}
@ -1139,6 +1236,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
// ShowUpdatedPlayerCountOnTile(playerPawn);
UpdatePlayerState(playerPawn, PlayerState.HasFinished);
playerPawn.SetPlayerSelectionState(false);
playerGameDatasDict[currentPlayerTypeTurn].totalPawnsFinished++;
playerGameDatasDict[currentPlayerTypeTurn].totalPawnsInFinishingPath--;
@ -1180,8 +1278,11 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
CheckDiceRollForBot();
else
{
UpdateTurnTimer();
SetCanRollDiceForUser(true);
UpdateResponseTimerForUser(currentPlayerMaxTime: currentPlayerTurnMaxTime, () => RollDiceForUser());
}
diceRollHandler.DiceView.SetDiceButtonInteraction(CanRollDiceAgain);
}
}
else
@ -1195,9 +1296,15 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
}
if (CanRollDiceAgain)
{
SetCanRollDiceForUser(IsUsersTurn());
OnCanRollDiceAgain();
#if UNITY_EDITOR
ShowUpdatedPlayerCountOnTile(playerPawn);
SwitchPlayer();
#endif
}
else
SwitchPlayer();
}
}
},
@ -1210,6 +1317,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
Debug.Log($"CAnRollDiceForUser: {CanRollDiceForUser}");
}
#if UNITY_EDITOR
private void ShowUpdatedPlayerCountOnTile(PlayerPawn playerPawn)
{
Tile tile = playerPawn.GetPlayerState() == PlayerState.InFinishingPath ?
@ -1230,22 +1338,44 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
Debug.Log($"ShowUpdatedPlayerCountOnTile: {count}");
playerPawn.PlayerCountCanvas.SetPlayerCount(count);
playerPawn.PlayerIndicatorCanvas.SetPlayerCount(count);
}
private void SetCurrentSelectedPointer()
{
var tempPos = playerBaseHandler.GetPlayerBase(currentPlayerTypeTurn).transform.position;
pointerDebug.position = new Vector3(tempPos.x, 3f, tempPos.z);
}
public void SetDisplayCountForAllAvailPlayers(bool state)
{
if (state)
{
availPlayersToMove.ForEach(pawn => ShowUpdatedPlayerCountOnTile(pawn));
}
else
{
availPlayersToMove.ForEach(pawn => pawn.ShowPlayerCountCanvas(false));
}
}
#endif
public void ResetTileDatasForPlayers()
{
foreach (PlayerData data in playerDatas)
{
var pawns = playerGameDatasDict[data.playerType].playerPawnsDict.Values;
// causes null ref cast exception while player is moving.
// foreach (PlayerData data in playerDatas)
// {
// var pawns = playerGameDatasDict[data.playerType].playerPawnsDict.Values;
//
// foreach (var pawn in pawns)
// {
// if (pawn.GetPlayerState() == PlayerState.InHome) continue;
//
// TilesManager.ResetTileData(pawn.PlayerType, pawn.CurrentTileIndex, pawn.GetPlayerState());
// }
// }
foreach (var pawn in pawns)
{
if (pawn.GetPlayerState() == PlayerState.InHome) continue;
TilesManager.ResetTileData(pawn.PlayerType, pawn.CurrentTileIndex, pawn.GetPlayerState());
}
}
TilesManager.ResetTileDatas();
}
public void ResetData()
@ -1255,6 +1385,8 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
ResetGameRestartData();
currentPlayerTurnTimer.KillTimer();
currentPlayerTurnTimer = null;
OnGameResumed = null;
playerDatas = null;
allPlayerTypes = null;

View File

@ -1,6 +1,7 @@
using System;
using DG.Tweening;
using UnityEngine;
using UnityEngine.Serialization;
public enum PlayerState
{
@ -21,12 +22,12 @@ public class PlayerPawn : MonoBehaviour
{
[SerializeField] private PlayerState playerState;
[SerializeField] private Animator animator;
[SerializeField] private PlayerCountCanvas playerCountCanvas;
[SerializeField] private PlayerIndicatorCanvas playerIndicatorCanvas;
private PlayerBase playerBase;
private GameplayManager gameplayManager;
public PlayerCountCanvas PlayerCountCanvas => playerCountCanvas;
public PlayerIndicatorCanvas PlayerIndicatorCanvas => playerIndicatorCanvas;
public int PlayerId { get; private set; }
public int StepsTaken { get; private set; }
@ -43,6 +44,8 @@ public class PlayerPawn : MonoBehaviour
public void SetPlayerSelectionState(bool state)
{
CanSelectPlayer = state;
Debug.Log($"### SetPlayerSelectionState: {name} :: {state}, ");
ShowPlayerSelCanvas(state);
}
public void MoveToTile(Vector3 startingPoint, Action onComplete, int tileIndex)
@ -61,7 +64,7 @@ public class PlayerPawn : MonoBehaviour
// Rotate Player
TilesManager tilesManager = InterfaceManager.Instance.GetInterfaceInstance<TilesManager>();
gameplayManager = gameplayManager ?? InterfaceManager.Instance.GetInterfaceInstance<GameplayManager>();
SetGameplayManager();
Vector3 lookDirection = Vector3.zero;
@ -121,7 +124,7 @@ public class PlayerPawn : MonoBehaviour
transform.position = transformData.position;
transform.rotation = transformData.rotation;
SetPlayerState(PlayerState.InHome);
ShowPlayerCountCanvas(false);
ShowPlayerSelCanvas(false);
StepsTaken = 0;
}
@ -156,7 +159,13 @@ public class PlayerPawn : MonoBehaviour
public void ShowPlayerCountCanvas(bool show)
{
playerCountCanvas.gameObject.SetActive(show);
// add the player count canvas to the object and show from here.
// playerIndicatorCanvas.gameObject.SetActive(show);
}
public void ShowPlayerSelCanvas(bool show)
{
playerIndicatorCanvas.gameObject.SetActive(show);
}
public void ResetData()
@ -164,8 +173,7 @@ public class PlayerPawn : MonoBehaviour
SetPlayerState(PlayerState.InHome);
StepsTaken = 0;
PlayerId = 0;
if (playerCountCanvas.gameObject.activeInHierarchy)
ShowPlayerCountCanvas(false);
if (playerIndicatorCanvas.gameObject.activeInHierarchy)
ShowPlayerSelCanvas(false);
}
}

View File

@ -90,6 +90,7 @@ public class SafeTile : Tile
public override void ResetTileData()
{
Debug.Log($"Resetting tile in safe tile {name}");
if (playerTypesDict != null && playerTypesDict.Count > 0)
{
playerTypesDict.Clear();

View File

@ -56,6 +56,7 @@ public class Tile : MonoBehaviour
public virtual void ResetTileData()
{
Debug.Log($"Resetting tile in parent tile {name}");
if (HasPawnsAvailable)
PlayerPawns.Clear();
}

View File

@ -77,6 +77,8 @@ public class TilesManager : MonoBehaviour, IBootLoader, IDataLoader, IBase
finishingTileDataPairs.Clear();
}
// causes null ref cast exception while player is moving.
/*
public void ResetTileData(PlayerType playerType, int currentTileIndex, PlayerState playerState)
{
if (playerState == PlayerState.InFinishingPath || playerState == PlayerState.HasFinished)
@ -95,6 +97,21 @@ public class TilesManager : MonoBehaviour, IBootLoader, IDataLoader, IBase
tile.ResetTileData();
}
}
*/
public void ResetTileDatas()
{
foreach (var tile in generalTiles)
tile.ResetTileData();
foreach (var pair in finishingTileDataPairs)
{
foreach (var tile in finishingTileDataPairs[pair.Key])
{
tile.ResetTileData();
}
}
}
public Vector3 GetAndInitPositionInsideSafeZone(PlayerPawn playerPawn, Tile targetTile, PlayerType currentPlayerTypeTurn)
{

View File

@ -46,12 +46,12 @@ public class UIManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
public void UpdatePlayerTurnText(PlayerType type, int remSec)
{
screenManager.GetScreen<GameHUDS>(ScreenType.InGameHUDScreen).UpdatePlayerTurnText(type, remSec);
screenManager.GetScreen<GameHUDScreen>(ScreenType.InGameHUDScreen).UpdatePlayerTurnText(type, remSec);
}
public void UpdatePlayerTurnText(PlayerType type)
{
screenManager.GetScreen<GameHUDS>(ScreenType.InGameHUDScreen).UpdateBotTurnText(type);
screenManager.GetScreen<GameHUDScreen>(ScreenType.InGameHUDScreen).UpdateBotTurnText(type);
}
public void OnGameOver()

View File

@ -1,10 +1,10 @@
using UnityEngine;
using UnityEngine.UI;
using TMPro;
using System.Collections;
public class GameHUDS : ScreenBase
public class GameHUDScreen : ScreenBase
{
[Header("Buttons")]
[SerializeField] private Button diceBtn;
[SerializeField] private Button pauseBtn;
@ -55,13 +55,13 @@ public class GameHUDS : ScreenBase
public void UpdatePlayerTurnText(PlayerType playerType, int remSec)
{
Debug.Log($"GameHUDS: UpdatePlayerTurnText: {playerType}");
Debug.Log($"UpdateTurnText: Player Turn :: {(PlayerColorType)((int)playerType)} ({remSec})");
playerTurnText.text = $"Turn : {(PlayerColorType)((int)playerType)} ({remSec})";
}
public void UpdateBotTurnText(PlayerType playerType)
{
Debug.Log($"GameHUDS: UpdatePlayerTurnText: {playerType}");
Debug.Log($"UpdateTurnText: Bot Turn :: {(PlayerColorType)((int)playerType)}");
playerTurnText.text = $"Turn : {(PlayerColorType)((int)playerType)}";
}
}

View File

@ -2,7 +2,7 @@ using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class PlayerCountCanvas : MonoBehaviour
public class PlayerIndicatorCanvas : MonoBehaviour
{
Transform cam;
[SerializeField] private TMP_Text playerCountText;
@ -21,18 +21,22 @@ public class PlayerCountCanvas : MonoBehaviour
indicatorBtn.onClick.RemoveListener(() => OnClickPlayer());
}
void Start()
private void Start()
{
cam = GameObject.FindGameObjectWithTag("MainCamera").transform;
}
void LateUpdate()
private void LateUpdate()
{
transform.LookAt(cam.forward + transform.position);
}
#if UNITY_EDITOR
public void SetPlayerCount(int count)
{
playerCountText.text = count.ToString();
}
#endif
public void OnClickPlayer()
{

View File

@ -42,7 +42,7 @@ PlayerSettings:
m_SplashScreenLogos:
- logo: {fileID: 10404, guid: 0000000000000000e000000000000000, type: 0}
duration: 2
- logo: {fileID: 21300000, guid: e84386e1891df488bae582876f896a36, type: 3}
- logo: {fileID: 21300000, guid: 1cfb151daad2e4e719892a83a58ce545, type: 3}
duration: 2
m_VirtualRealitySplashScreen: {fileID: 2800000, guid: e84386e1891df488bae582876f896a36, type: 3}
m_HolographicTrackingLossScreen: {fileID: 0}