Compare commits

...

39 Commits

Author SHA1 Message Date
ae15daed75 Handled pause logic + fixed a bug found while testing the changes. 2026-02-04 21:47:34 +05:30
84c48d4adc Merge branch 'Gameplay/main-gameplay' into Gameplay/ashby-gameplay 2026-02-04 16:08:49 +05:30
8cace14a90 Restart button and background changes. 2026-02-04 16:08:34 +05:30
0c0850a862 Added Pause menu restart button 2026-02-04 16:07:34 +05:30
d465293ad7 Feedback-fixes. 2026-02-04 12:32:18 +05:30
f26dd14108 Expanded BG, Proj settings changes 2026-02-04 12:09:04 +05:30
565ec07c65 Removed debug checks 2026-02-02 21:36:31 +05:30
6291eaa46e Added bgm calls for game, home, and game over. 2026-02-02 21:26:39 +05:30
29a97a53f6 Disabled showing of counter in finishing point. 2026-02-02 21:22:39 +05:30
10a6f27a2a Created new allocation for game data. 2026-02-02 21:20:41 +05:30
8132704374 Refactoring + fixes for game over. 2026-02-02 20:12:00 +05:30
5afd8972fc Fix: Data when reaching finishing point. 2026-02-02 19:49:16 +05:30
f93ba98ef3 Merge branch 'Gameplay/main-gameplay' into Gameplay/ashby-gameplay 2026-02-02 19:27:52 +05:30
828fecad57 Fixed Data reset issues. 2026-02-02 19:27:17 +05:30
f9618cce71 Merge branch 'Gameplay/siva-gameplay' of https://fexteamsc.com/Ashby/Ludo-3D into Gameplay/siva-gameplay
# Conflicts:
#	Assets/Prefabs/UI/Player V Player Popup.prefab
2026-02-02 18:12:31 +05:30
2dfd5ac1c0 Updated Modes prefab for better mobile visuals 2026-02-02 18:10:54 +05:30
1269d7e6aa Updated Modes prefab for better mobile visuals 2026-02-02 18:00:50 +05:30
0d1db5152e Refactored UI scripts. 2026-02-02 17:45:34 +05:30
d11c7dfe39 Pause panel bindings. 2026-02-02 17:37:11 +05:30
ec87b47d61 Added menu flow in game over popup. 2026-02-02 17:30:03 +05:30
318a34e192 Fix : gameflow logic 2026-02-02 17:21:38 +05:30
1897a36a88 Refactored changes + fixes for indicator. 2026-02-02 16:43:43 +05:30
7dc4cb5478 Merge remote-tracking branch 'origin/Gameplay/main-gameplay' into Gameplay/ashby-gameplay 2026-02-02 16:39:43 +05:30
f1e88fe0f3 Added player rotation logic when entering finishing tiles
- refactor code (GetComponentInChildren -> ref from serialized object)
2026-02-02 16:37:43 +05:30
d07951dabf Refactored FindPossibleTileData function. 2026-02-02 16:07:27 +05:30
57787ecc4e Refactored FindPossibleTileData function. 2026-02-02 16:06:29 +05:30
4530c474e9 Fix: indicator values. 2026-02-02 15:10:51 +05:30
273c86d5b9 Merge remote-tracking branch 'origin/Gameplay/siva-gameplay' into Gameplay/main-gameplay 2026-02-02 12:33:09 +05:30
77edc7197e Fix: Player switching when one of the players have finished their characters. 2026-02-02 12:31:26 +05:30
f12bd32c55 Fix : Player count update and visual
- increased treasure size
2026-02-02 11:19:44 +05:30
6b5dd5d0f0 Bug fixes + Refactored/Restructurd changes + Dice roll logical changes.
Remove event deallocation function call in DiceView due to flow breakage because of timer in delay.
Added a debug test bool inside GameplayManager for testing dice logic without dice animation.
Fixed issue with additional steps being kept track for player (PlayerPawn.cs)
Bound restart logic for the Game over popup alone.
Added a maxDiceSixRollCounter for keeping track of how many times 6 can be rolled.
Fixed issue with wrong player being selected while restart is clicked.
Fixed indexing logical errors while finding possible tile data.
Fixed issue with player attacking another player and moving constantly.
Fixed issue with player not switching when there is no option for dice roll.
Handled dice roll logic when pawns are in finishing path.
Fixed indexing issue with availPlayers collection where wrong indexes were being selected for removing from the collection.
Fixed issue with tile data not resetting on restart.
Restructured logic for showing winners inside Game Over popup.
Restructured GameOverPopup and GameOverScreen with respect to showing/hiding screens/popups.
2026-01-31 20:33:50 +05:30
76659bc964 Addressed all pawns in finishing path scenarios. 2026-01-31 01:05:28 +05:30
ffabbf808f Fix: GameOver text. 2026-01-31 00:05:18 +05:30
2a348436d3 Fix : Finishing tile index issue 2026-01-30 23:55:59 +05:30
e069dd4755 Added music manager in scene. 2026-01-30 23:39:43 +05:30
4bec2bc8fa Updated Hud screen type. 2026-01-30 23:30:45 +05:30
9d6d2599e1 Updated Main Menu screen type. 2026-01-30 23:29:49 +05:30
d1836cf10c Updated Finishing tiles logic. 2026-01-30 23:27:56 +05:30
afb05e4116 Added Music Manager to play BGM 2026-01-30 23:24:57 +05:30
46 changed files with 3164 additions and 1363 deletions

Binary file not shown.

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 44a099190c52447f7a3254e3679ecfd8
guid: 25dd9172f3ed8497bb638d649e5309f0
AudioImporter:
externalObjects: {}
serializedVersion: 6

Binary file not shown.

View File

@ -0,0 +1,48 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &8621343442563501342
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8621343442563501343}
- component: {fileID: 8621343442563501340}
m_Layer: 0
m_Name: FinishingPathWaypoint
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &8621343442563501343
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8621343442563501342}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -0.12, y: 0, z: -14.976}
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 &8621343442563501340
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8621343442563501342}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: be69a8cfb3b2940308cbac570565e629, type: 3}
m_Name:
m_EditorClassIdentifier:
isSafeZone: 0
centeredPoint: {fileID: 8621343442563501343}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: b9f6f4c66b5a34d7eb7286e772505389
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 KiB

View File

@ -0,0 +1,257 @@
fileFormatVersion: 2
guid: 1467c87c1b60f4707b78abdf2804ec02
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: freepik__background__31280_0
rect:
serializedVersion: 2
x: 11
y: 213
width: 162
height: 165
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 0e61687d955b941e7a4f62c491534b65
internalID: -2015733309
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: freepik__background__31280_1
rect:
serializedVersion: 2
x: 221
y: 213
width: 161
height: 165
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 7101dc76534ac462bb42109e5723fbb2
internalID: 374418284
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: freepik__background__31280_2
rect:
serializedVersion: 2
x: 431
y: 213
width: 162
height: 165
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: eeb10897644484d0a83063b474759149
internalID: 243614357
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: freepik__background__31280_3
rect:
serializedVersion: 2
x: 642
y: 213
width: 161
height: 165
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 282372b64a41d4d748216f551701076b
internalID: 420986955
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: freepik__background__31280_4
rect:
serializedVersion: 2
x: 850
y: 213
width: 160
height: 165
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 9fa66a57d26bd4c04900e8bfd6003c78
internalID: 652690593
vertices: []
indices:
edges: []
weights: []
outline: []
physicsShape: []
bones: []
spriteID: c86037367307f431082dee1f4ca3f63d
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable:
freepik__background__31280_0: -2015733309
freepik__background__31280_1: 374418284
freepik__background__31280_2: 243614357
freepik__background__31280_3: 420986955
freepik__background__31280_4: 652690593
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 MiB

View File

@ -0,0 +1,169 @@
fileFormatVersion: 2
guid: 2e91ac215ecbd49a083f05cb08fa714a
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: freepik__talk__90404_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 2976
height: 1248
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 21c672aa9945347a38173ee28daae4ac
internalID: 417020444
vertices: []
indices:
edges: []
weights: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable:
freepik__talk__90404_0: 417020444
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -9,6 +9,7 @@ public class DiceView : MonoBehaviour, IBase
[SerializeField] private DiceSide[] diceSides;
[SerializeField] private float sideValueTime = 1.2f;
[SerializeField] private Vector3 startPos = new Vector3(0, 20, 0);
[Header("Physics Randomness")]
[SerializeField] private float baseSpinForce = 900f;
@ -22,11 +23,13 @@ public class DiceView : MonoBehaviour, IBase
{
rb = GetComponent<Rigidbody>();
rb.useGravity = false;
transform.localPosition = new Vector3(0, 20, 0);
transform.localPosition = startPos;
}
public void Roll(Action<int> onComplete, bool isBot)
{
Debug.Log($"Start rolling: {rolling}");
if (!rolling)
{
Debug.Log($"isBot: {isBot}");
@ -74,9 +77,8 @@ public class DiceView : MonoBehaviour, IBase
//TODO: Use the dice value as needed
Debug.Log($"Dice rolled: {value}");
onRollingComplete?.Invoke(value);
ResetDice();
onRollingComplete?.Invoke(value);
}
int GetDiceValue()
@ -95,10 +97,10 @@ public class DiceView : MonoBehaviour, IBase
rb.useGravity = false;
rb.velocity = Vector3.zero;
rb.angularVelocity = Vector3.zero;
transform.localPosition = new Vector3(0, 20, 0);
transform.localPosition = startPos;
rolling = false;
Invoke(nameof(ResetEvent), 0.5f);
// Invoke(nameof(ResetEvent), 0.1f);
}
private void ResetEvent()

View File

@ -630,6 +630,7 @@ MonoBehaviour:
playerState: 0
animator: {fileID: 5526766409186502679}
playerCountCanvasPrefab: {fileID: 9029553984926861784}
playerCountCanvas: {fileID: 5728752331380905399}
--- !u!1 &4818123989977612668
GameObject:
m_ObjectHideFlags: 0
@ -1622,6 +1623,17 @@ RectTransform:
m_CorrespondingSourceObject: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
m_PrefabInstance: {fileID: 4537709141704337870}
m_PrefabAsset: {fileID: 0}
--- !u!114 &5728752331380905399 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 8176763997504289913, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
m_PrefabInstance: {fileID: 4537709141704337870}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9029553984926861784}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 12325a6692b2349b5992ec00a2cf8162, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &9029553984926861784 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 4879164135252893718, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}

View File

@ -630,6 +630,7 @@ MonoBehaviour:
playerState: 0
animator: {fileID: 5274388487207906813}
playerCountCanvasPrefab: {fileID: 6862258105288866118}
playerCountCanvas: {fileID: 7923051124467737897}
--- !u!1 &5059623752267150313
GameObject:
m_ObjectHideFlags: 0
@ -1671,3 +1672,14 @@ GameObject:
m_CorrespondingSourceObject: {fileID: 4879164135252893718, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
m_PrefabInstance: {fileID: 2057554100330600784}
m_PrefabAsset: {fileID: 0}
--- !u!114 &7923051124467737897 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 8176763997504289913, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
m_PrefabInstance: {fileID: 2057554100330600784}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6862258105288866118}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 12325a6692b2349b5992ec00a2cf8162, type: 3}
m_Name:
m_EditorClassIdentifier:

View File

@ -202,6 +202,7 @@ MonoBehaviour:
playerState: 0
animator: {fileID: 232863433340697214}
playerCountCanvasPrefab: {fileID: 2911420982173280738}
playerCountCanvas: {fileID: 1920934309388072333}
--- !u!136 &1627116187348267135
CapsuleCollider:
m_ObjectHideFlags: 0
@ -1661,6 +1662,17 @@ PrefabInstance:
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
--- !u!114 &1920934309388072333 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 8176763997504289913, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
m_PrefabInstance: {fileID: 7769048123306772980}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2911420982173280738}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 12325a6692b2349b5992ec00a2cf8162, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &2911420982173280738 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 4879164135252893718, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}

View File

@ -1259,6 +1259,7 @@ MonoBehaviour:
playerState: 0
animator: {fileID: 7800412279828783518}
playerCountCanvasPrefab: {fileID: 4593694095142779203}
playerCountCanvas: {fileID: 941219433310479660}
--- !u!1 &7074820051352815849
GameObject:
m_ObjectHideFlags: 0
@ -1661,6 +1662,17 @@ PrefabInstance:
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
--- !u!114 &941219433310479660 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 8176763997504289913, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
m_PrefabInstance: {fileID: 8968445451050703189}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4593694095142779203}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 12325a6692b2349b5992ec00a2cf8162, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &4593694095142779203 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 4879164135252893718, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}

View File

@ -215,7 +215,7 @@ Canvas:
m_VertexColorAlwaysGammaSpace: 0
m_AdditionalShaderChannelsFlag: 25
m_SortingLayerID: 0
m_SortingOrder: 0
m_SortingOrder: 5
m_TargetDisplay: 0
--- !u!114 &1334714064113256010
MonoBehaviour:

View File

@ -870,7 +870,7 @@ RectTransform:
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: -180}
m_SizeDelta: {x: 250, y: 40}
m_SizeDelta: {x: 250, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &4851974413369432202
MonoBehaviour:
@ -936,7 +936,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 250, y: 40}
m_SizeDelta: {x: 250, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4851974413496445146
CanvasRenderer:
@ -1109,8 +1109,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchoredPosition: {x: 7.5, y: 0}
m_SizeDelta: {x: -15, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4851974413524974102
CanvasRenderer:
@ -1142,8 +1142,8 @@ MonoBehaviour:
m_Calls: []
m_text: "\u200B"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontAsset: {fileID: 11400000, guid: 0482bbb9a4bbf48bdbd050f3c6b94af0, type: 2}
m_sharedMaterial: {fileID: 5260989334135036006, guid: 0482bbb9a4bbf48bdbd050f3c6b94af0, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
@ -1245,8 +1245,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -5.457, y: -4}
m_SizeDelta: {x: -55.863, y: -13}
m_AnchoredPosition: {x: -7.3499, y: -6.271304}
m_SizeDelta: {x: -62.677, y: -29.6562}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &4851974413693272400
MonoBehaviour:
@ -1419,8 +1419,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchoredPosition: {x: 7.5, y: 0}
m_SizeDelta: {x: -15, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4851974414219947399
CanvasRenderer:
@ -1452,8 +1452,8 @@ MonoBehaviour:
m_Calls: []
m_text: Player 1
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontAsset: {fileID: 11400000, guid: 0482bbb9a4bbf48bdbd050f3c6b94af0, type: 2}
m_sharedMaterial: {fileID: 5260989334135036006, guid: 0482bbb9a4bbf48bdbd050f3c6b94af0, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
@ -1948,7 +1948,7 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4851974414659941538}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
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
@ -1996,6 +1996,8 @@ MonoBehaviour:
popupScalerType: 1
canvasGroup: {fileID: 0}
fadeDuration: 0
playerBtnNormalColor: {r: 1, g: 1, b: 1, a: 0.78431374}
playerBtnSelectedColor: {r: 1, g: 1, b: 1, a: 1}
twoPlayerBtn: {fileID: 4851974412826801781}
threePlayerBtn: {fileID: 4851974413821998362}
fourPlayerBtn: {fileID: 4851974412818057105}

View File

@ -154,10 +154,10 @@ RectTransform:
m_Father: {fileID: 8065952317557671492}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.075, y: 0}
m_AnchorMax: {x: 0.8895791, y: 0.74074084}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 7.5, y: 0}
m_SizeDelta: {x: -15, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8065952316381639394
CanvasRenderer:
@ -222,7 +222,7 @@ MonoBehaviour:
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 256
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 10
m_wordSpacing: 5
@ -290,10 +290,10 @@ RectTransform:
m_Father: {fileID: 8065952318230211716}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.075, y: 0}
m_AnchorMax: {x: 0.8895791, y: 0.74074084}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 7.5, y: 0}
m_SizeDelta: {x: -15, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8065952316393416988
CanvasRenderer:
@ -358,7 +358,7 @@ MonoBehaviour:
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 256
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 10
m_wordSpacing: 5
@ -448,8 +448,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: -152}
m_SizeDelta: {x: 560, y: 90.7286}
m_AnchoredPosition: {x: 0, y: -136.96222}
m_SizeDelta: {x: 560, y: 120.8041}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &8065952316424197285
MonoBehaviour:
@ -566,11 +566,11 @@ MonoBehaviour:
playerTwoPlaceholder: {fileID: 8065952316393416991}
playerThreePlaceholder: {fileID: 8065952317200164017}
playerFourPlaceholder: {fileID: 8065952318180437444}
rows:
- {fileID: 8065952316585861709}
- {fileID: 8065952316852223932}
- {fileID: 8065952317184179899}
- {fileID: 8065952318019617086}
inputFields:
- {fileID: 8065952316677608095}
- {fileID: 8065952316882128052}
- {fileID: 8065952317181319405}
- {fileID: 8065952316906327149}
--- !u!1 &8065952316512053289
GameObject:
m_ObjectHideFlags: 0
@ -684,8 +684,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -0.5}
m_SizeDelta: {x: -20, y: -13}
m_AnchoredPosition: {x: -6.435402, y: -5.587503}
m_SizeDelta: {x: -52.5552, y: -29.2317}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &8065952316553408492
MonoBehaviour:
@ -738,7 +738,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 250, y: 30}
m_SizeDelta: {x: 250, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &8065952316585861699
MonoBehaviour:
@ -925,7 +925,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 210, y: 40}
m_SizeDelta: {x: 210, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8065952316677608093
CanvasRenderer:
@ -1099,7 +1099,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 30, y: 30}
m_SizeDelta: {x: 40, y: 40}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8065952316688146259
CanvasRenderer:
@ -1175,7 +1175,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 30, y: 30}
m_SizeDelta: {x: 40, y: 40}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8065952316742462309
CanvasRenderer:
@ -1373,7 +1373,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 250, y: 30}
m_SizeDelta: {x: 250, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &8065952316852223922
MonoBehaviour:
@ -1439,7 +1439,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 210, y: 40}
m_SizeDelta: {x: 210, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8065952316882128042
CanvasRenderer:
@ -1615,7 +1615,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 210, y: 40}
m_SizeDelta: {x: 210, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8065952316906327139
CanvasRenderer:
@ -1934,7 +1934,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 210, y: 40}
m_SizeDelta: {x: 210, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8065952317181319395
CanvasRenderer:
@ -2109,7 +2109,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 250, y: 30}
m_SizeDelta: {x: 250, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &8065952317184179897
MonoBehaviour:
@ -2248,10 +2248,10 @@ RectTransform:
m_Father: {fileID: 8065952317367001092}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.075, y: 0}
m_AnchorMax: {x: 0.8895791, y: 0.74074084}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 7.5, y: 0}
m_SizeDelta: {x: -15, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8065952317200164022
CanvasRenderer:
@ -2316,7 +2316,7 @@ MonoBehaviour:
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 256
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 10
m_wordSpacing: 5
@ -2543,8 +2543,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -0.5}
m_SizeDelta: {x: -20, y: -13}
m_AnchoredPosition: {x: -5.2997, y: -5.6334}
m_SizeDelta: {x: -50.2838, y: -28.4746}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &8065952317367001093
MonoBehaviour:
@ -2790,10 +2790,10 @@ RectTransform:
m_Father: {fileID: 8065952318230211716}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.075, y: 0}
m_AnchorMax: {x: 0.8895791, y: 0.74074084}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 7.5, y: 0}
m_SizeDelta: {x: -15, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8065952317479054003
CanvasRenderer:
@ -2858,7 +2858,7 @@ MonoBehaviour:
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 256
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 10
m_wordSpacing: 5
@ -2929,7 +2929,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 560, y: 30}
m_SizeDelta: {x: 560, y: 50.40205}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &8065952317550618935
MonoBehaviour:
@ -2993,8 +2993,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -0.5}
m_SizeDelta: {x: -20, y: -13}
m_AnchoredPosition: {x: -7.1925, y: -6.390499}
m_SizeDelta: {x: -51.041, y: -26.9604}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &8065952317557671493
MonoBehaviour:
@ -3046,7 +3046,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 30, y: 30}
m_SizeDelta: {x: 40, y: 40}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8065952317611268384
CanvasRenderer:
@ -3257,7 +3257,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 30, y: 30}
m_SizeDelta: {x: 40, y: 40}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8065952317875960123
CanvasRenderer:
@ -3590,7 +3590,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 250, y: 30}
m_SizeDelta: {x: 250, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &8065952318019617084
MonoBehaviour:
@ -3651,10 +3651,10 @@ RectTransform:
m_Father: {fileID: 8065952316553408495}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.075, y: 0}
m_AnchorMax: {x: 0.8895791, y: 0.74074084}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 7.5, y: 0}
m_SizeDelta: {x: -15, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8065952318084561725
CanvasRenderer:
@ -3719,7 +3719,7 @@ MonoBehaviour:
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 256
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 10
m_wordSpacing: 5
@ -3786,10 +3786,10 @@ RectTransform:
m_Father: {fileID: 8065952317367001092}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.075, y: 0}
m_AnchorMax: {x: 0.8895791, y: 0.74074084}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 7.5, y: 0}
m_SizeDelta: {x: -15, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8065952318100279455
CanvasRenderer:
@ -3854,7 +3854,7 @@ MonoBehaviour:
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 256
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 10
m_wordSpacing: 5
@ -3922,10 +3922,10 @@ RectTransform:
m_Father: {fileID: 8065952316553408495}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.075, y: 0}
m_AnchorMax: {x: 0.8895791, y: 0.74074084}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 7.5, y: 0}
m_SizeDelta: {x: -15, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8065952318180437445
CanvasRenderer:
@ -3990,7 +3990,7 @@ MonoBehaviour:
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 256
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 10
m_wordSpacing: 5
@ -4080,8 +4080,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -0.5}
m_SizeDelta: {x: -20, y: -13}
m_AnchoredPosition: {x: -6.814, y: -6.3446016}
m_SizeDelta: {x: -53.3123, y: -27.7175}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &8065952318230211717
MonoBehaviour:
@ -4134,7 +4134,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 560, y: 30}
m_SizeDelta: {x: 560, y: 70.402054}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &8065952318264672222
MonoBehaviour:
@ -4196,10 +4196,10 @@ RectTransform:
m_Father: {fileID: 8065952317557671492}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.075, y: 0}
m_AnchorMax: {x: 0.8895791, y: 0.74074084}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 7.5, y: 0}
m_SizeDelta: {x: -15, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8065952318280379820
CanvasRenderer:
@ -4264,7 +4264,7 @@ MonoBehaviour:
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 256
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 10
m_wordSpacing: 5

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 6e82d850a90884a54a07beff74d9a324
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,68 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public enum MusicType
{
HomeMusic,
GameMusic,
GameOverMusic
}
[System.Serializable]
public class MusicData
{
public MusicType musicType;
public int priority;
public AudioClip musicClip;
}
public class MusicManager : MonoBehaviour, IBootLoader, IBase, IDataLoader
{
[SerializeField] AudioSource audioSource;
[SerializeField] private MusicData[] musicDatas;
public bool IsGamemusicOn
{
get;
private set;
}
private Dictionary<MusicType, MusicData> musicDataDict = new Dictionary<MusicType, MusicData>();
public void Initialize()
{
InterfaceManager.Instance?.RegisterInterface<MusicManager>(this);
}
public void InitializeData()
{
audioSource.priority = 0;
for (int idx = 0; idx < musicDatas.Length; idx++)
{
if (musicDataDict.ContainsKey(musicDatas[idx].musicType))
musicDataDict[musicDatas[idx].musicType] = musicDatas[idx];
else
musicDataDict.Add(musicDatas[idx].musicType, musicDatas[idx]);
}
}
public void SetGamemusic(bool state)
{
IsGamemusicOn = state;
}
public void PlayMusicClip(MusicType musicType)
{
if (!enabled) return;
MusicData musicData = musicDataDict[musicType];
audioSource.priority = musicData.priority;
audioSource.clip = musicData.musicClip;
if (audioSource.isPlaying) audioSource.Stop();
audioSource.Play();
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 6f598c418041d4a9e89aa7a25efc1185
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -24,7 +24,10 @@ public class BotModeData
public class GameModeHandler : MonoBehaviour, IBase, IBootLoader, IDataLoader
{
private GameplayManager gameplayManager;
public GameplayManager GameplayManager
{
get; private set;
}
private PVPModeData pvpModeData;
private BotModeData botModeData;
@ -34,6 +37,11 @@ public class GameModeHandler : MonoBehaviour, IBase, IBootLoader, IDataLoader
get; private set;
}
public GameManager GameManager
{
get; private set;
}
public void Initialize()
{
InterfaceManager.Instance.RegisterInterface<GameModeHandler>(this);
@ -41,7 +49,8 @@ public class GameModeHandler : MonoBehaviour, IBase, IBootLoader, IDataLoader
public void InitializeData()
{
gameplayManager = InterfaceManager.Instance.GetInterfaceInstance<GameplayManager>();
GameManager = InterfaceManager.Instance.GetInterfaceInstance<GameManager>();
GameplayManager = InterfaceManager.Instance.GetInterfaceInstance<GameplayManager>();
}
public void InitPVPModeData(List<PlayerType> types, List<string> names)
@ -52,7 +61,7 @@ public class GameModeHandler : MonoBehaviour, IBase, IBootLoader, IDataLoader
};
CurrentGameModeType = GameModeType.PVP;
gameplayManager.InitPlayerTypesForPVP(types, names);
GameplayManager.InitPlayerTypesForPVP(types, names);
}
public void InitBotModeData(PlayerData playerData, int botCount)
@ -64,11 +73,14 @@ public class GameModeHandler : MonoBehaviour, IBase, IBootLoader, IDataLoader
};
CurrentGameModeType = GameModeType.Bot;
gameplayManager.InitPlayerTypesForBotMatch(playerData, botCount);
GameplayManager.InitPlayerTypesForBotMatch(playerData, botCount);
}
public void OnGameRestarted()
{
GameManager.OnGameStateChanged(GameState.InGame);
GameManager.ResetGameDatas();
switch (CurrentGameModeType)
{
case GameModeType.PVP:

File diff suppressed because it is too large Load Diff

View File

@ -42,4 +42,12 @@ public class PlayerBase : MonoBehaviour
Debug.Log($"Index: {idx}, basePlacementDatas[idx]: {basePlacementDatas[idx]}");
return basePlacementDatas[idx].placementTransform;
}
public void ResetPlayerDatas()
{
for (int idx = 0; idx < playerPawns.Length; idx++)
{
playerPawns[idx].ResetData();
}
}
}

View File

@ -40,4 +40,18 @@ public class PlayerBaseHandler : MonoBehaviour
{
return playerBasesDict[playerType];
}
public void ResetPlayerBaseData()
{
foreach (var playerBasePair in playerBasesDict)
{
playerBasePair.Value.ResetPlayerDatas();
}
}
public void SendPlayerToHome(PlayerPawn pawn)
{
var playerBasePos = GetPlayerBase(pawn.PlayerType).GetBasePlacementDataPosition(pawn.PlayerId - 1);
pawn.MoveBackToHome(playerBasePos);
}
}

View File

@ -21,7 +21,6 @@ public class PlayerPawn : MonoBehaviour
{
[SerializeField] private PlayerState playerState;
[SerializeField] private Animator animator;
[SerializeField] private GameObject playerCountCanvasPrefab;
[SerializeField] private PlayerCountCanvas playerCountCanvas;
public PlayerCountCanvas PlayerCountCanvas => playerCountCanvas;
@ -66,10 +65,6 @@ public class PlayerPawn : MonoBehaviour
public void SetPlayerSelectionState(bool state)
{
CanSelectPlayer = state;
if (CanSelectPlayer)
{
// TODO :: Play animation for selecting any of the players
}
}
public void MoveToTile(Vector3 startingPoint, Action onComplete, int tileIndex)
@ -90,10 +85,41 @@ public class PlayerPawn : MonoBehaviour
TilesManager tilesManager = InterfaceManager.Instance.GetInterfaceInstance<TilesManager>();
gameplayManager = gameplayManager ?? InterfaceManager.Instance.GetInterfaceInstance<GameplayManager>();
int nextTileIndex = gameplayManager.GetNextGeneralTileIndex(this);
Vector3 lookDirection = tilesManager.RetrieveTileBasedOnIndex(nextTileIndex).transform.position - transform.position;
Vector3 lookDirection = Vector3.zero;
Debug.Log($"nextIndex :: playerState: {playerState}");
if (playerState == PlayerState.InFinishingPath)
{
int nextIndex = CurrentTileIndex + 1;
int maxIndex = tilesManager.GetFinishingTileDataLength(PlayerType) - 1;
if (nextIndex <= maxIndex)
{
lookDirection = tilesManager.RetrieveFinishingTileBasedOnIndex(PlayerType, nextIndex).transform.position - transform.position;
}
}
else
{
if (gameplayManager.IsGoingInsideFinishingPath(this, out int possibleSteps))
{
lookDirection = tilesManager.RetrieveFinishingTileBasedOnIndex(PlayerType, 0).transform.position - transform.position;
}
else
{
int nextIndex = gameplayManager.TilesManager.GetNextGeneralTileIndex(CurrentTileIndex);
Debug.Log($"nextIndex :: {nextIndex}, currentIndex: {CurrentTileIndex}");
lookDirection = tilesManager.RetrieveTileBasedOnIndex(nextIndex).transform.position - transform.position;
}
}
lookDirection = lookDirection.normalized;
lookDirection.y = 0;
if (lookDirection != Vector3.zero)
{
// transform.LookAt(transform.position + lookDirection);
transform.DOLookAt(transform.position + lookDirection, 0.2f);
}
onComplete?.Invoke();
};
@ -101,7 +127,6 @@ public class PlayerPawn : MonoBehaviour
public void MoveToCustomTilePosition(Vector3 targetPoint)
{
StepsTaken++;
transform.DOMove(targetPoint, 1f);
}
@ -124,9 +149,9 @@ public class PlayerPawn : MonoBehaviour
private void OnMouseDown()
{
if (IsBotPlayer || !CanSelectPlayer) return;
SetGameplayManager();
if (gameplayManager.GameManager.CurrentGameState == GameState.IsPaused || IsBotPlayer || !CanSelectPlayer) return;
gameplayManager.OnPawnSelected(this);
}
@ -145,8 +170,16 @@ public class PlayerPawn : MonoBehaviour
public void ShowPlayerCountCanvas(bool show)
{
if (playerCountCanvasPrefab == null) return;
playerCountCanvas.gameObject.SetActive(show);
}
public void ResetData()
{
SetPlayerState(PlayerState.InHome);
StepsTaken = 0;
PlayerId = 0;
if (playerCountCanvas.gameObject.activeInHierarchy)
ShowPlayerCountCanvas(false);
playerCountCanvasPrefab.SetActive(show);
}
}

View File

@ -34,13 +34,15 @@ public class DiceRollHandler : MonoBehaviour
SoundManager soundManager = InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>();
soundManager?.PlayGameSoundClip(SoundType.Dice);
if (inputManager.GameplayManager.IsDebugPlayerTest)
OnUserDiceRollComplete(GetDiceTestVal());
// diceView.Roll(onComplete: (rolledVal) => OnUserDiceRollComplete(rolledVal), false);
else
diceView.Roll(onComplete: (rolledVal) => OnUserDiceRollComplete(rolledVal), false);
}
public void HandleDiceViewForBot(Action<int> onComplete)
{
diceView.Roll(onComplete: (val) => onComplete?.Invoke(val), true);
diceView.Roll(onComplete: onComplete, true);
}
public void HandleDiceViewForBot(Action<int> onComplete, int val)

View File

@ -3,7 +3,7 @@ using UnityEngine;
public class GameBootLoader : BootLoader
{
[SerializeField] private GameObject[] baseObjects;
// [SerializeField] private BaseSO[] scriptables;
[SerializeField] private bool enableLogs = false;
private bool hasInitializedScriptables = false;
@ -21,6 +21,7 @@ public class GameBootLoader : BootLoader
}
protected override void InitializeData()
{
Debug.unityLogger.logEnabled = enableLogs;
Debug.Log($"InitializeData: for loaders");
InitializeScriptablesData();

View File

@ -4,19 +4,24 @@ public enum GameState
{
InMenu,
InGame,
IsPaused,
GameOver,
}
public class GameManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
{
private UIManager uiManager;
private TilesManager tilesManager;
private MusicManager musicManager;
private GameplayManager gameplayManager;
public GameState GameState
public GameState CurrentGameState
{
get; private set;
}
private GameState PrevGameState;
public void Initialize()
{
InterfaceManager.Instance.RegisterInterface<GameManager>(this);
@ -25,26 +30,59 @@ public class GameManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
public void InitializeData()
{
uiManager = InterfaceManager.Instance.GetInterfaceInstance<UIManager>();
tilesManager = InterfaceManager.Instance.GetInterfaceInstance<TilesManager>();
gameplayManager = InterfaceManager.Instance.GetInterfaceInstance<GameplayManager>();
musicManager = InterfaceManager.Instance.GetInterfaceInstance<MusicManager>();
OnGameStateChanged(GameState.InMenu);
}
public void SetGameState(GameState gameState)
{
Debug.Log($"### GameState: {gameState}");
PrevGameState = CurrentGameState;
CurrentGameState = gameState;
}
public void OnGameStateChanged(GameState gameState)
{
GameState = gameState;
SetGameState(gameState);
Debug.Log($"OnGameStateChanged: {gameState}");
switch (gameState)
{
case GameState.InMenu:
gameplayManager.ResetData();
musicManager.PlayMusicClip(MusicType.HomeMusic);
CheckPrevGameState();
uiManager.OnInMenuScreen();
break;
case GameState.InGame:
Debug.Log($"Logging in-game state");
musicManager.PlayMusicClip(MusicType.GameMusic);
uiManager.OnInGameScreen();
break;
case GameState.IsPaused:
break;
case GameState.GameOver:
musicManager.PlayMusicClip(MusicType.GameOverMusic);
uiManager.OnGameOver();
break;
}
}
private void CheckPrevGameState()
{
if (PrevGameState == GameState.InGame) // returning to menu from in-game
{
ResetGameDatas();
}
}
public void ResetGameDatas()
{
gameplayManager.ResetTileDatasForPlayers();
gameplayManager.ResetData();
tilesManager.ResetData();
gameplayManager.PlayerBaseHandler.ResetPlayerBaseData();
}
}

View File

@ -12,6 +12,7 @@ public class SafeTile : Tile
public int PlayerTypesCount => playerTypesDict.Count;
public bool HasMoreThanOnePlayerType => playerTypesDict.Count > 1;
public List<PlayerPawn> GetPlayerPawns(PlayerType playerType) => playerTypesDict[playerType].playerPawns.Values.ToList();
public List<PlayerPawn> GetFirstPlayerPawns() => playerTypesDict.FirstOrDefault().Value.playerPawns.Values.ToList();
public bool ContainsPlayerType(PlayerType playerType) => playerTypesDict.ContainsKey(playerType);
@ -65,7 +66,6 @@ public class SafeTile : Tile
placementQueue.Enqueue(playerTypesDict[playerType].commonPlacementTransform);
playerTypesDict.Remove(playerType);
Debug.Log($"targetSafeTile. tileName: {name} Removing player {playerType}");
lastOccupiedIndex--;
}
}
}
@ -87,4 +87,12 @@ public class SafeTile : Tile
{
return playerTypesDict[playerType].commonPlacementTransform;
}
public override void ResetTileData()
{
if (playerTypesDict != null && playerTypesDict.Count > 0)
{
playerTypesDict.Clear();
}
}
}

View File

@ -25,10 +25,10 @@ public class Tile : MonoBehaviour
public Vector3 CenterPlacementPosition => centeredPoint.position;
protected int lastOccupiedIndex = 0;
private List<PlayerPawn> PlayerPawns = new List<PlayerPawn>(); // Change implementation
public List<PlayerPawn> GetPlayerPawns() => PlayerPawns;
public bool HasPawnsAvailable => PlayerPawns.Count > 0;
public PlayerType CurrentHoldingPlayerType => PlayerPawns[0].PlayerType;
public int TotalPawnsInTile => PlayerPawns.Count;
@ -53,4 +53,10 @@ public class Tile : MonoBehaviour
Debug.Log($"Resetting new PlayerPawn {movingPawn.name} {name}");
Debug.Log($"Resetting new PlayerPawn {PlayerPawns.Count} {name}");
}
public virtual void ResetTileData()
{
if (HasPawnsAvailable)
PlayerPawns.Clear();
}
}

View File

@ -18,7 +18,7 @@ public class TilesManager : MonoBehaviour, IBootLoader, IDataLoader, IBase
private GameplayManager gameplayManager;
private Dictionary<PlayerType, List<Transform>> finishingTileDataPairs = new Dictionary<PlayerType, List<Transform>>();
private Dictionary<PlayerType, List<Tile>> finishingTileDataPairs = new Dictionary<PlayerType, List<Tile>>();
public void Initialize()
{
@ -32,13 +32,14 @@ public class TilesManager : MonoBehaviour, IBootLoader, IDataLoader, IBase
public void InitTilesData()
{
finishingTileDataPairs = new Dictionary<PlayerType, List<Tile>>();
foreach (var tileData in tileDatas)
{
if (gameplayManager.PlayerTypesCollection.Contains(tileData.playerType))
{
finishingTileDataPairs.Add(tileData.playerType, new List<Transform>());
finishingTileDataPairs.Add(tileData.playerType, new List<Tile>());
foreach (Transform child in tileData.playerFinishingTileParent)
finishingTileDataPairs[tileData.playerType].Add(child);
finishingTileDataPairs[tileData.playerType].Add(child.GetComponent<Tile>());
}
}
}
@ -52,16 +53,112 @@ public class TilesManager : MonoBehaviour, IBootLoader, IDataLoader, IBase
Debug.Log($"RetrieveTileBasedOnIndex: Index: {index}");
Tile tile = index == generalTiles.Length ? generalTiles[0] : generalTiles[index];
// if (tile.IsSafeZone)
// {
// return (SafeTile)tile;
// }
return tile;
}
public Transform RetrievePositionForFinishingTile(PlayerType playerType, int index)
public Tile RetrieveFinishingTileBasedOnIndex(PlayerType playerType, int index)
{
return finishingTileDataPairs[playerType][index];
}
public int GetNextGeneralTileIndex(int currentTileIndex)
{
return currentTileIndex == GetGeneralTilesLength() - 1 ? 0 : currentTileIndex + 1;
}
public int GetNextFinishingTileIndex(int currentTileIndex, PlayerType currentPlayerTypeTurn)
{
return currentTileIndex > GetFinishingTileDataLength(currentPlayerTypeTurn) - 1 ? 0 : currentTileIndex + 1;
}
public void ResetData()
{
finishingTileDataPairs.Clear();
}
public void ResetTileData(PlayerType playerType, int currentTileIndex, PlayerState playerState)
{
if (playerState == PlayerState.InFinishingPath || playerState == PlayerState.HasFinished)
{
Tile tile = RetrieveFinishingTileBasedOnIndex(playerType, currentTileIndex);
tile.ResetTileData();
}
else if (playerState == PlayerState.Moving)
{
Tile tile = RetrieveTileBasedOnIndex(currentTileIndex);
tile.ResetTileData();
}
else if (playerState == PlayerState.InSafeZone)
{
SafeTile tile = (SafeTile)RetrieveTileBasedOnIndex(currentTileIndex);
tile.ResetTileData();
}
}
public Vector3 GetAndInitPositionInsideSafeZone(PlayerPawn playerPawn, Tile targetTile, PlayerType currentPlayerTypeTurn)
{
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
{
PlayerType initialPlayerType = targetSafeTile.GetFirstPlayerType();
// rearrange already existing player from center position to it's saved transform
Debug.Log($"### GetAndInitPositionInsideSafeZone initialPlayerType: {initialPlayerType}");
var playerPawns = targetSafeTile.GetPlayerPawns(initialPlayerType);
Debug.Log($"### GetAndInitPositionInsideSafeZone playerPawns: {playerPawns.Count}");
foreach (var pawn in playerPawns)
{
var placementPoint = targetSafeTile.GetPlacementPoint(initialPlayerType);
Debug.Log($"### GetAndInitPositionInsideSafeZone placementPoint: {placementPoint.position}");
pawn.MoveToCustomTilePosition(placementPoint.position);
}
Debug.Log($"### GetAndInitPositionInsideSafeZone playerPawn: {playerPawn.name}, {playerPawn.PlayerType}");
Debug.Log($"### GetAndInitPositionInsideSafeZone currentPlayerTypeTurn: {currentPlayerTypeTurn}");
targetSafeTile.InitPlayerPawn(playerPawn, currentPlayerTypeTurn);
targetPosition = targetSafeTile.GetPlacementPoint(currentPlayerTypeTurn).position;
Debug.Log($"### GetAndInitPositionInsideSafeZone targetPosition: {targetPosition}");
}
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;
}
}

View File

@ -1,13 +1,17 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class UIManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
{
private GameplayManager gameplayManager;
private ScreenManager screenManager;
private PopupManager popupManager;
private GameplayManager gameplayManager;
public GameManager GameManager
{
get; private set;
}
public void Initialize()
{
InterfaceManager.Instance.RegisterInterface<UIManager>(this);
@ -15,8 +19,9 @@ public class UIManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
public void InitializeData()
{
gameplayManager = InterfaceManager.Instance.GetInterfaceInstance<GameplayManager>();
GameManager = InterfaceManager.Instance.GetInterfaceInstance<GameManager>();
popupManager = InterfaceManager.Instance.GetInterfaceInstance<PopupManager>();
gameplayManager = InterfaceManager.Instance.GetInterfaceInstance<GameplayManager>();
}
public void OnDiceViewInteracted()

View File

@ -24,7 +24,7 @@ public class ScreenBase : UIBase, IUIBase
public ScreenType ScreenType => screenType;
private ScreenManager screenManager;
protected ScreenManager screenManager;
public void Initialize()
{

View File

@ -1,5 +1,6 @@
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
@ -12,7 +13,26 @@ public class GameOverPopup : PopupBase
[SerializeField] private TextMeshProUGUI[] texts;
private GameModeHandler gameModeHandler;
private ScreenManager screenManager;
public void InitData(List<PlayerData> playerData)
{
for (int idx = 0; idx < texts.Length; idx++)
{
if (idx >= playerData.Count)
{
texts[idx].gameObject.SetActive(false);
continue;
}
if (playerData[idx].ranking == 1)
{
texts[playerData[idx].ranking - 1].text = $"{playerData[idx].playerName} Wins";
continue;
}
texts[playerData[idx].ranking - 1].text = $"{playerData[idx].ranking}. {playerData[idx].playerName}";
}
}
private void OnEnable()
{
@ -30,7 +50,7 @@ public class GameOverPopup : PopupBase
{
HidePopup();
gameModeHandler = gameModeHandler == null ? InterfaceManager.Instance.GetInterfaceInstance<GameModeHandler>() : gameModeHandler;
SetGameModeHandler();
gameModeHandler.OnGameRestarted();
}
@ -43,21 +63,12 @@ public class GameOverPopup : PopupBase
{
HidePopup();
screenManager = screenManager == null ? InterfaceManager.Instance.GetInterfaceInstance<ScreenManager>() : screenManager;
screenManager.ShowScreen(ScreenType.MenuScreen);
SetGameModeHandler();
gameModeHandler.GameManager.OnGameStateChanged(GameState.InMenu);
}
public void InitData(List<PlayerData> playerDatas)
private void SetGameModeHandler()
{
for (int i = 0; i < playerDatas.Count; i++)
{
if (i == 0)
{
texts[i].text = $"{playerDatas[i].playerName} Wins";
continue;
}
texts[i].text = $"{(i + 1)}. {playerDatas[i].playerName}";
}
gameModeHandler = gameModeHandler == null ? InterfaceManager.Instance.GetInterfaceInstance<GameModeHandler>() : gameModeHandler;
}
}

View File

@ -21,7 +21,7 @@ public class InstructionsPopup : PopupBase
private void OnClick_closeBtn()
{
ScreenManager screenManager = InterfaceManager.Instance?.GetInterfaceInstance<ScreenManager>();
screenManager.ShowScreen(ScreenType.MenuScreen);
screenManager.ShowScreen(ScreenType.MainMenuScreen);
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick);

View File

@ -11,27 +11,28 @@ public class OptionsPopup : PopupBase
private void OnEnable()
{
closeBtn.onClick.AddListener(OnClick_closeBtn);
closeBtn.onClick.AddListener(OnClick_CloseButton);
mainVolSlider.onValueChanged.AddListener(OnMainVolChanged);
musicVolSlider.onValueChanged.AddListener(OnBGMVolChanged);
sfxVolSlider.onValueChanged.AddListener(OnSFXVolChanged);
InitializeSliders();
}
private void OnDisable()
{
closeBtn.onClick.RemoveListener(OnClick_closeBtn);
closeBtn.onClick.RemoveListener(OnClick_CloseButton);
mainVolSlider.onValueChanged.RemoveListener(OnMainVolChanged);
musicVolSlider.onValueChanged.RemoveListener(OnBGMVolChanged);
sfxVolSlider.onValueChanged.RemoveListener(OnSFXVolChanged);
}
private void OnClick_closeBtn()
private void OnClick_CloseButton()
{
ScreenManager screenManager = InterfaceManager.Instance?.GetInterfaceInstance<ScreenManager>();
screenManager.ShowScreen(ScreenType.MenuScreen);
popupManager.HidePopup(PopupType);
Hide();
ScreenManager screenManager = InterfaceManager.Instance?.GetInterfaceInstance<ScreenManager>();
screenManager.ShowScreen(ScreenType.MainMenuScreen);
}
public void OnMainVolChanged(float value)
@ -70,7 +71,6 @@ public class OptionsPopup : PopupBase
mainVolSlider.value = mainVol;
musicVolSlider.value = bgmVol;
sfxVolSlider.value = sfxVol;
}
}

View File

@ -6,46 +6,69 @@ public class PauseMenuPopup : PopupBase
[Header("Buttons")]
[SerializeField] private Button homeBtn;
[SerializeField] private Button playBtn;
[SerializeField] private Button exitBtn;
[SerializeField] private Button restartBtn;
SoundManager soundManager;
private UIManager uiManager;
private SoundManager soundManager;
private GameModeHandler gameModeHandler;
private void OnEnable()
{
playBtn.onClick.AddListener(OnClick_playBtn);
homeBtn.onClick.AddListener(OnClick_homeBtn);
exitBtn.onClick.AddListener(OnClick_exitBtn);
playBtn.onClick.AddListener(OnClick_PlayButton);
homeBtn.onClick.AddListener(OnClick_HomeButton);
restartBtn.onClick.AddListener(OnClick_RestartButton);
}
private void OnDisable()
{
playBtn.onClick.RemoveListener(OnClick_playBtn);
homeBtn.onClick.RemoveListener(OnClick_homeBtn);
exitBtn.onClick.RemoveListener(OnClick_exitBtn);
playBtn.onClick.RemoveListener(OnClick_PlayButton);
homeBtn.onClick.RemoveListener(OnClick_HomeButton);
restartBtn.onClick.RemoveListener(OnClick_RestartButton);
}
private void OnClick_playBtn()
private void OnClick_PlayButton()
{
SetUIManager();
uiManager.GameManager.SetGameState(GameState.InGame);
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick);
popupManager.HidePopup(popupType);
ScreenManager screenManager = InterfaceManager.Instance?.GetInterfaceInstance<ScreenManager>();
screenManager.ShowScreen(ScreenType.InGameHUDScreen);
SetGameModeHandler();
gameModeHandler.GameplayManager.OnGameResumed?.Invoke();
}
private void OnClick_HomeButton()
{
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick);
Hide();
popupManager.HidePopup(popupType);
SetUIManager();
uiManager.GameManager.OnGameStateChanged(GameState.InMenu);
}
private void OnClick_homeBtn()
private void SetUIManager()
{
// TODO: Implement Home Button Functionality
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick);
uiManager = uiManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<UIManager>() : uiManager;
}
private void OnClick_exitBtn()
private void OnClick_RestartButton()
{
Application.Quit();
popupManager.HidePopup(popupType);
SetGameModeHandler();
gameModeHandler.OnGameRestarted();
}
private void SetGameModeHandler()
{
gameModeHandler = gameModeHandler == null ? InterfaceManager.Instance.GetInterfaceInstance<GameModeHandler>() : gameModeHandler;
}
}

View File

@ -117,12 +117,13 @@ public class PvAIModePopup : PopupBase
private void OnClick_CloseButton()
{
popupManager.HidePopup(popupType);
screenManager = screenManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<ScreenManager>() : screenManager;
screenManager.ShowScreen(ScreenType.MenuScreen);
screenManager.ShowScreen(ScreenType.MainMenuScreen);
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick);
Hide();
}
private void OnColorSelected(PlayerType type, Button button)

View File

@ -39,6 +39,7 @@ public class PvPModePopup : PopupBase
private ScreenManager screenManager;
private SoundManager soundManager;
private GameManager gameManager;
private GameModeHandler gameModeHandler;
private int selectedPlayerCount;
@ -151,6 +152,9 @@ public class PvPModePopup : PopupBase
gameModeHandler = gameModeHandler == null ? InterfaceManager.Instance.GetInterfaceInstance<GameModeHandler>() : gameModeHandler;
gameModeHandler.InitPVPModeData(playerNameMap.Keys.ToList(), playerNameMap.Values.ToList());
gameManager = gameManager == null ? InterfaceManager.Instance.GetInterfaceInstance<GameManager>() : gameManager;
gameManager.OnGameStateChanged(GameState.InGame);
}
private void OnClick_SwitchButton()
@ -243,12 +247,12 @@ public class PvPModePopup : PopupBase
private void OnClick_CloseButton()
{
popupManager.HidePopup(popupType);
screenManager = screenManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<ScreenManager>() : screenManager;
screenManager.ShowScreen(ScreenType.MenuScreen);
screenManager.ShowScreen(ScreenType.MainMenuScreen);
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick);
Hide();
}
}

View File

@ -17,31 +17,40 @@ public class GameHUDS : ScreenBase
private void OnEnable()
{
pauseBtn.onClick.AddListener(OnClick_pauseBtn);
diceBtn.onClick.AddListener(OnClick_DiceBtn);
pauseBtn.onClick.AddListener(OnClick_PauseButton);
diceBtn.onClick.AddListener(OnClick_DiceButton);
}
private void OnDisable()
{
pauseBtn.onClick.RemoveListener(OnClick_pauseBtn);
diceBtn.onClick.RemoveListener(OnClick_DiceBtn);
pauseBtn.onClick.RemoveListener(OnClick_PauseButton);
diceBtn.onClick.RemoveListener(OnClick_DiceButton);
}
private void OnClick_pauseBtn()
private void OnClick_PauseButton()
{
PopupManager popupManager = InterfaceManager.Instance?.GetInterfaceInstance<PopupManager>();
popupManager.ShowPopup(PopupType.PauseMenuPopup);
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick);
Hide();
screenManager.HideScreen(screenType);
PopupManager popupManager = InterfaceManager.Instance?.GetInterfaceInstance<PopupManager>();
popupManager.ShowPopup(PopupType.PauseMenuPopup);
SetUIManager();
uiManager.GameManager.SetGameState(GameState.IsPaused);
}
private void OnClick_DiceBtn()
private void OnClick_DiceButton()
{
SetUIManager();
uiManager.OnDiceViewInteracted();
}
private void SetUIManager()
{
uiManager = uiManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<UIManager>() : uiManager;
uiManager.OnDiceViewInteracted();
}
public void UpdatePlayerTurnText(PlayerType playerType)

View File

@ -1,8 +1,44 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class GameOverScreen : ScreenBase
{
[SerializeField] private Button playAgainBtn;
[SerializeField] private Button mainMenuBtn;
private GameModeHandler gameModeHandler;
private void OnEnable()
{
playAgainBtn.onClick.AddListener(OnPlayAgainClicked);
mainMenuBtn.onClick.AddListener(OnMainMenuClicked);
}
private void OnDisable()
{
playAgainBtn.onClick.RemoveAllListeners();
mainMenuBtn.onClick.RemoveAllListeners();
}
public void OnPlayAgainClicked()
{
HideScreen();
}
private void HideScreen()
{
screenManager.HideScreen(screenType);
}
public void OnMainMenuClicked()
{
HideScreen();
screenManager = screenManager == null ? InterfaceManager.Instance.GetInterfaceInstance<ScreenManager>() : screenManager;
screenManager.ShowScreen(ScreenType.MenuScreen);
screenManager.ShowScreen(ScreenType.MainMenuScreen);
}
}

View File

@ -17,23 +17,23 @@ public class MenuHUDScreen : ScreenBase
private void OnEnable()
{
pvpModeBtn.onClick.AddListener(OnClick_pvpModeBtn);
pvaiModeBtn.onClick.AddListener(OnClick_pvaiModeBtn);
optionsBtn.onClick.AddListener(OnClick_optionsBtn);
instructionsBtn.onClick.AddListener(OnClick_instructionsBtn);
exitBtn.onClick.AddListener(OnClick_exitBtn);
pvpModeBtn.onClick.AddListener(OnClick_PVPModeButton);
pvaiModeBtn.onClick.AddListener(OnClick_PvAIModeButton);
optionsBtn.onClick.AddListener(OnClick_OptionsButton);
instructionsBtn.onClick.AddListener(OnClick_InstructionsButton);
exitBtn.onClick.AddListener(OnClick_ExitButton);
}
private void OnDisable()
{
pvpModeBtn.onClick.RemoveListener(OnClick_pvpModeBtn);
pvaiModeBtn.onClick.RemoveListener(OnClick_pvaiModeBtn);
optionsBtn.onClick.RemoveListener(OnClick_optionsBtn);
instructionsBtn.onClick.RemoveListener(OnClick_instructionsBtn);
exitBtn.onClick.RemoveListener(OnClick_exitBtn);
pvpModeBtn.onClick.RemoveListener(OnClick_PVPModeButton);
pvaiModeBtn.onClick.RemoveListener(OnClick_PvAIModeButton);
optionsBtn.onClick.RemoveListener(OnClick_OptionsButton);
instructionsBtn.onClick.RemoveListener(OnClick_InstructionsButton);
exitBtn.onClick.RemoveListener(OnClick_ExitButton);
}
private void OnClick_pvpModeBtn()
private void OnClick_PVPModeButton()
{
popupManager = popupManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<PopupManager>() : popupManager;
popupManager.ShowPopup(PopupType.PvPModePopup);
@ -41,12 +41,10 @@ public class MenuHUDScreen : ScreenBase
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick);
Hide();
// screenManager = screenManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<ScreenManager>() : screenManager;
// screenManager.HideScreen(ScreenType.MenuHUDScreen);
HideScreen();
}
private void OnClick_pvaiModeBtn()
private void OnClick_PvAIModeButton()
{
popupManager = popupManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<PopupManager>() : popupManager;
popupManager.ShowPopup(PopupType.PvAIModePopup);
@ -54,10 +52,10 @@ public class MenuHUDScreen : ScreenBase
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick);
Hide();
HideScreen();
}
private void OnClick_optionsBtn()
private void OnClick_OptionsButton()
{
popupManager = popupManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<PopupManager>() : popupManager;
popupManager.ShowPopup(PopupType.OptionsPopup);
@ -65,10 +63,10 @@ public class MenuHUDScreen : ScreenBase
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick);
Hide();
HideScreen();
}
private void OnClick_instructionsBtn()
private void OnClick_InstructionsButton()
{
popupManager = popupManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<PopupManager>() : popupManager;
popupManager.ShowPopup(PopupType.InstructionsPopup);
@ -76,10 +74,15 @@ public class MenuHUDScreen : ScreenBase
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick);
Hide();
HideScreen();
}
private void OnClick_exitBtn()
private void HideScreen()
{
screenManager.HideScreen(ScreenType);
}
private void OnClick_ExitButton()
{
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick);

View File

@ -47,7 +47,7 @@ PlayerSettings:
defaultScreenWidthWeb: 960
defaultScreenHeightWeb: 600
m_StereoRenderingPath: 0
m_ActiveColorSpace: 1
m_ActiveColorSpace: 0
unsupportedMSAAFallback: 0
m_MTRendering: 1
mipStripping: 0