diff --git a/protobuf/game.proto b/protobuf/game.proto index 6e39cda..5d9d811 100644 --- a/protobuf/game.proto +++ b/protobuf/game.proto @@ -53,6 +53,7 @@ message GameStatus { message Pile { repeated Card cards = 1; bool faceDown = 2; + bool visible = 3; } message Piles { map piles = 1; diff --git a/unity/Assets/Prefabs/CardPrefab.prefab b/unity/Assets/Prefabs/CardPrefab.prefab index d3ff94c..c3daef3 100644 --- a/unity/Assets/Prefabs/CardPrefab.prefab +++ b/unity/Assets/Prefabs/CardPrefab.prefab @@ -233,9 +233,9 @@ RectTransform: m_Father: {fileID: 8916404675478908300} m_RootOrder: 1 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: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 256} m_SizeDelta: {x: 315, y: 512} m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &5108287406604012127 @@ -342,9 +342,9 @@ RectTransform: m_Father: {fileID: 8916404675478908300} m_RootOrder: 0 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: 319} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -50} m_SizeDelta: {x: 260.18, y: 100} m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &8422737351199122008 @@ -514,7 +514,7 @@ RectTransform: m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 341, y: 512} + m_SizeDelta: {x: 341, y: 615.3398} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &8916404675478908298 CanvasRenderer: @@ -582,7 +582,7 @@ MonoBehaviour: m_EditorClassIdentifier: cardCanvas: {fileID: 5463950459347836262, guid: fc20f9d5ae7f3364d8425ba33a8d0c81, type: 3} preparedCard: 0 - thrown: 0 inPileName: isInCommonPile: 0 idx: 0 + uuid: diff --git a/unity/Assets/Prefabs/PileTabPrefab.prefab b/unity/Assets/Prefabs/PileTabPrefab.prefab new file mode 100644 index 0000000..07ef8b5 --- /dev/null +++ b/unity/Assets/Prefabs/PileTabPrefab.prefab @@ -0,0 +1,224 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1453524004781862126 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 766830767079279377} + - component: {fileID: 6438667386866863046} + - component: {fileID: 6719346029598240872} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &766830767079279377 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1453524004781862126} + 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_Children: [] + m_Father: {fileID: 3730972655610087185} + m_RootOrder: 0 + 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_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6438667386866863046 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1453524004781862126} + m_CullTransparentMesh: 1 +--- !u!114 &6719346029598240872 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1453524004781862126} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 12 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: TAB +--- !u!1 &2876124894227890079 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3730972655610087185} + - component: {fileID: 3146476948125121136} + - component: {fileID: 6803291711984472185} + - component: {fileID: 2077330009026235338} + - component: {fileID: 2070581928926025396} + m_Layer: 5 + m_Name: PileTabPrefab + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3730972655610087185 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2876124894227890079} + 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_Children: + - {fileID: 766830767079279377} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3146476948125121136 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2876124894227890079} + m_CullTransparentMesh: 1 +--- !u!114 &6803291711984472185 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2876124894227890079} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.21960784} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Texture: {fileID: 0} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!114 &2077330009026235338 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2876124894227890079} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c991982f2288ab14bbd64730b183a011, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &2070581928926025396 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2876124894227890079} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 0.21960784} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 0.30980393} + m_PressedColor: {r: 1, g: 1, b: 1, a: 0.101960786} + m_SelectedColor: {r: 1, g: 1, b: 1, a: 0.3137255} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 0} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2077330009026235338} + m_TargetAssemblyTypeName: PileTab, Assembly-CSharp + m_MethodName: OnClick + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 diff --git a/unity/Assets/Prefabs/PileTabPrefab.prefab.meta b/unity/Assets/Prefabs/PileTabPrefab.prefab.meta new file mode 100644 index 0000000..884fdd8 --- /dev/null +++ b/unity/Assets/Prefabs/PileTabPrefab.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4faba1a57c7f52747b8a0834cf86d0fe +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Prefabs/PlayerPilePrefab.prefab b/unity/Assets/Prefabs/PlayerPilePrefab.prefab new file mode 100644 index 0000000..d68cb4d --- /dev/null +++ b/unity/Assets/Prefabs/PlayerPilePrefab.prefab @@ -0,0 +1,134 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1873188279137158919 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1873188279137158918} + - component: {fileID: 1873188279137158922} + - component: {fileID: 1873188279137158923} + - component: {fileID: 1873188279137158917} + - component: {fileID: 1873188279137158916} + - component: {fileID: 1873188279137158921} + m_Layer: 5 + m_Name: PlayerPilePrefab + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1873188279137158918 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1873188279137158919} + 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_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + 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_Pivot: {x: 0, y: 0.5} +--- !u!222 &1873188279137158922 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1873188279137158919} + m_CullTransparentMesh: 0 +--- !u!114 &1873188279137158923 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1873188279137158919} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0.6, b: 0.8000001, a: 0.392} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &1873188279137158917 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1873188279137158919} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc417d59709b83f40a9f4f9541441269, type: 3} + m_Name: + m_EditorClassIdentifier: + ignoreElements: 0 + horizontal: 1 +--- !u!114 &1873188279137158916 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1873188279137158919} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 3 + m_Spacing: 5 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 1 + m_ChildScaleHeight: 1 + m_ReverseArrangement: 0 +--- !u!114 &1873188279137158921 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1873188279137158919} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 diff --git a/unity/Assets/Prefabs/PlayerPilePrefab.prefab.meta b/unity/Assets/Prefabs/PlayerPilePrefab.prefab.meta new file mode 100644 index 0000000..987ef07 --- /dev/null +++ b/unity/Assets/Prefabs/PlayerPilePrefab.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0f9678f4f3df6a84ea85cea1f8b69dfd +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Scenes/SampleScene.unity b/unity/Assets/Scenes/SampleScene.unity index 931f056..b203f93 100644 --- a/unity/Assets/Scenes/SampleScene.unity +++ b/unity/Assets/Scenes/SampleScene.unity @@ -186,7 +186,7 @@ MonoBehaviour: table: {fileID: 2096914955} playerCube: {fileID: 8814123643998376407, guid: 40e67af67f670694ea8e8d6963cdcc64, type: 3} myIndex: 0 - playerCount: 20 + playerCount: 4 playerColors: - {r: 0, g: 0, b: 0, a: 1} - {r: 1, g: 0, b: 0.009498596, a: 1} @@ -208,9 +208,12 @@ MonoBehaviour: - {r: 1, g: 0.4009434, b: 0.5127752, a: 1} - {r: 0.5613208, g: 0.6479967, b: 1, a: 1} - {r: 0.41706753, g: 0.12615702, b: 0.5943396, a: 1} + playerPiles: {fileID: 6542147783086280325} + playerPilePrefab: {fileID: 1873188279137158919, guid: 0f9678f4f3df6a84ea85cea1f8b69dfd, type: 3} + pileTabs: {fileID: 1463870837} + pileTabPrefab: {fileID: 2876124894227890079, guid: 4faba1a57c7f52747b8a0834cf86d0fe, type: 3} cardPrefab: {fileID: 8916404675478908303, guid: 5a10ceea9da08e942b8e357fed3ca916, type: 3} cardCanvas: {fileID: 5463950459347836262, guid: fc20f9d5ae7f3364d8425ba33a8d0c81, type: 3} - handUI: {fileID: 1854025636} deck: {fileID: 378514925} thrownCards: {fileID: 171776933} --- !u!1 &139238895 @@ -518,17 +521,17 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 395183494} - 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_Children: [] m_Father: {fileID: 1259467752} m_RootOrder: 1 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: 90, y: -77} - m_SizeDelta: {x: 280, y: 100} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 129} + m_SizeDelta: {x: 0, y: 15} m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &705507993 GameObject: @@ -623,139 +626,6 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} ---- !u!1 &717906688 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 717906693} - - component: {fileID: 717906692} - - component: {fileID: 717906691} - - component: {fileID: 717906690} - - component: {fileID: 717906689} - - component: {fileID: 717906694} - m_Layer: 5 - m_Name: NewDeck - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &717906689 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 717906688} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Content: {fileID: 1854025637} - m_Horizontal: 1 - m_Vertical: 0 - m_MovementType: 1 - m_Elasticity: 0.1 - m_Inertia: 1 - m_DecelerationRate: 0.135 - m_ScrollSensitivity: 10 - m_Viewport: {fileID: 0} - m_HorizontalScrollbar: {fileID: 0} - m_VerticalScrollbar: {fileID: 0} - m_HorizontalScrollbarVisibility: 0 - m_VerticalScrollbarVisibility: 0 - m_HorizontalScrollbarSpacing: 0 - m_VerticalScrollbarSpacing: 0 - m_OnValueChanged: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &717906690 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 717906688} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} - m_Name: - m_EditorClassIdentifier: - m_ShowMaskGraphic: 1 ---- !u!114 &717906691 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 717906688} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 0.21960784} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Texture: {fileID: 0} - m_UVRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 ---- !u!222 &717906692 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 717906688} - m_CullTransparentMesh: 0 ---- !u!224 &717906693 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 717906688} - 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_Children: - - {fileID: 1854025637} - m_Father: {fileID: 1259467752} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 0} - m_AnchoredPosition: {x: 0, y: 60.692688} - m_SizeDelta: {x: 0, y: 121.38538} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &717906694 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 717906688} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 0 - m_VerticalFit: 0 --- !u!1 &963194225 GameObject: m_ObjectHideFlags: 0 @@ -932,7 +802,8 @@ RectTransform: m_Children: - {fileID: 8916404676799443715} - {fileID: 395183496} - - {fileID: 717906693} + - {fileID: 1463870838} + - {fileID: 6542147783086280320} m_Father: {fileID: 0} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -941,7 +812,7 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0, y: 0} ---- !u!1 &1854025636 +--- !u!1 &1463870837 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -949,130 +820,97 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1854025637} - - component: {fileID: 1854025641} - - component: {fileID: 1854025640} - - component: {fileID: 1854025638} - - component: {fileID: 1854025639} - - component: {fileID: 1854025642} + - component: {fileID: 1463870838} + - component: {fileID: 1463870840} + - component: {fileID: 1463870839} + - component: {fileID: 1463870841} m_Layer: 5 - m_Name: Content + m_Name: PileTabs m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &1854025637 +--- !u!224 &1463870838 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1854025636} + m_GameObject: {fileID: 1463870837} 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_Children: [] - m_Father: {fileID: 717906693} - m_RootOrder: 0 + m_Father: {fileID: 1259467752} + m_RootOrder: 2 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_Pivot: {x: 0, y: 0.5} ---- !u!114 &1854025638 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1854025636} - m_Enabled: 0 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc417d59709b83f40a9f4f9541441269, type: 3} - m_Name: - m_EditorClassIdentifier: - ignoreElements: 0 - horizontal: 1 ---- !u!114 &1854025639 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1854025636} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 0 - m_Bottom: 0 - m_ChildAlignment: 3 - m_Spacing: 5 - m_ChildForceExpandWidth: 0 - m_ChildForceExpandHeight: 0 - m_ChildControlWidth: 0 - m_ChildControlHeight: 0 - m_ChildScaleWidth: 1 - m_ChildScaleHeight: 1 - m_ReverseArrangement: 0 ---- !u!114 &1854025640 + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 129} + m_SizeDelta: {x: 0, y: 15} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1463870839 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1854025636} + m_GameObject: {fileID: 1463870837} m_Enabled: 0 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0, g: 0.6, b: 0.8000001, a: 0.392} + m_Color: {r: 0, g: 0.55484986, b: 1, a: 0.21960784} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 0 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1854025641 + m_Texture: {fileID: 0} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &1463870840 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1854025636} - m_CullTransparentMesh: 0 ---- !u!114 &1854025642 + m_GameObject: {fileID: 1463870837} + m_CullTransparentMesh: 1 +--- !u!114 &1463870841 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1854025636} + m_GameObject: {fileID: 1463870837} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} m_Name: m_EditorClassIdentifier: - m_HorizontalFit: 2 - m_VerticalFit: 2 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 3 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 --- !u!1 &2017521284 GameObject: m_ObjectHideFlags: 0 @@ -1234,6 +1072,138 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!224 &6542147783086280320 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6542147783086280325} + 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_Children: [] + m_Father: {fileID: 1259467752} + m_RootOrder: 3 + 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: -70.30731} + m_SizeDelta: {x: 0, y: -140.61462} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6542147783086280321 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6542147783086280325} + m_CullTransparentMesh: 0 +--- !u!114 &6542147783086280323 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6542147783086280325} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 0 +--- !u!114 &6542147783086280324 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6542147783086280325} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 0} + m_Horizontal: 1 + m_Vertical: 0 + m_MovementType: 1 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 10 + m_Viewport: {fileID: 0} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 0} + m_HorizontalScrollbarVisibility: 0 + m_VerticalScrollbarVisibility: 0 + m_HorizontalScrollbarSpacing: 0 + m_VerticalScrollbarSpacing: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &6542147783086280325 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6542147783086280320} + - component: {fileID: 6542147783086280321} + - component: {fileID: 6542147783086280326} + - component: {fileID: 6542147783086280327} + - component: {fileID: 6542147783086280324} + - component: {fileID: 6542147783086280323} + m_Layer: 5 + m_Name: PlayerPiles + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &6542147783086280326 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6542147783086280325} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.21960784} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Texture: {fileID: 0} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!114 &6542147783086280327 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6542147783086280325} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 1 --- !u!1 &8916404676799443712 GameObject: m_ObjectHideFlags: 0 @@ -1251,7 +1221,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!114 &8916404676799443714 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/unity/Assets/Scripts/Card.cs b/unity/Assets/Scripts/Card.cs index 665c1e9..bfb72d2 100644 --- a/unity/Assets/Scripts/Card.cs +++ b/unity/Assets/Scripts/Card.cs @@ -26,7 +26,7 @@ public class Card : MonoBehaviour {//, IPointerEnterHandler, IPointerExitHandler void Start() { currentRotation = Quaternion.identity; mmc = GameLoader.mmc; - cardPreview = GameObject.FindGameObjectsWithTag("CardPreview")[0]; + //cardPreview = GameObject.FindGameObjectsWithTag("CardPreview")[0]; thrownCards = GameObject.Find("ThrownCards"); actionMenu = transform.Find("ActionMenu").gameObject; actionMenu.SetActive(false); diff --git a/unity/Assets/Scripts/GameLoader.cs b/unity/Assets/Scripts/GameLoader.cs index b95fa36..65fccd5 100644 --- a/unity/Assets/Scripts/GameLoader.cs +++ b/unity/Assets/Scripts/GameLoader.cs @@ -11,6 +11,7 @@ public class PileProperties { public string owner; public Game.GameStatus.Types.Card[] cards; public bool faceDown; + public GameObject tab; public GameObject gameObject; } @@ -28,21 +29,25 @@ public class GameLoader : MonoBehaviour { public int myIndex; public int playerCount; public Color[] playerColors; + public GameObject playerPiles; + public GameObject playerPilePrefab; + public GameObject pileTabs; + public GameObject pileTabPrefab; public GameObject cardPrefab; public GameObject cardCanvas; - public GameObject handUI; public GameObject deck; public GameObject thrownCards; + public bool firstReload = true; private static float yOffsetTable = 0.51f / 2; public static MainMenuController mmc; - public static GameLoader myself; + public static GameLoader instance; public Dictionary cardImages = new Dictionary(); public static Dictionary cardRegistry = new Dictionary(); public static Dictionary pileRegistry = new Dictionary(); private Client.ConnectionImpl conn; void Awake() { - myself = this; + instance = this; } void Start() { conn = Client.GetConnection(); @@ -54,14 +59,12 @@ public class GameLoader : MonoBehaviour { var angleDelta = 180f / (playerCount - 1); var dst = 15; var angleOffset = angleDelta / (2f / (playerCount - 2)); - for (int i = 0; i < playerCount; i++) { - if (i == myIndex) - continue; - var offsetMult = (i - myIndex) > 0 ? 1 : -1; - var angle = angleOffset + angleDelta * (i - myIndex) * offsetMult; + + for (int i = 1; i < playerCount; i++) { + var angle = angleOffset + angleDelta * i; Vector3 pos = new Vector3(dst * Mathf.Sin(angle * Mathf.Deg2Rad), 2.6f, -dst * Mathf.Cos(angle * Mathf.Deg2Rad)); var player = Instantiate(playerCube, pos, Quaternion.AngleAxis(-angle, Vector3.up)); - player.GetComponent().material.color = playerColors[i % playerColors.Length]; + player.GetComponent().material.color = playerColors[(i + myIndex) % playerCount]; } } } @@ -173,28 +176,44 @@ public class GameLoader : MonoBehaviour { } } public static void ReloadPiles() { - if (myself == null) return; + if (instance == null) return; + var piles = instance.conn.GetPlayerPiles(mmc.currentUsername); - // Hardcoded values for pile gameobjects - var piles = myself.conn.GetPlayerPiles(mmc.currentUsername); - foreach(var pair in piles.Keys.Zip(piles.Values, (key, value) => new dynamic[] { key, value })) { + foreach (var pair in piles.Keys.Zip(piles.Values, (key, value) => new dynamic[] { key, value })) { string key = (string)pair[0]; Game.GameStatus.Types.Pile value = (Game.GameStatus.Types.Pile)pair[1]; - if(GetPile(key+mmc.currentUsername) == null) RegisterPile(key + mmc.currentUsername, new PileProperties { name = key, owner = mmc.currentUsername, cards = value.Cards.ToArray(), gameObject = myself.handUI, faceDown = value.FaceDown }); - else UpdatePile(key + mmc.currentUsername, new PileProperties { name = key, owner = mmc.currentUsername, cards = value.Cards.ToArray(), gameObject = myself.handUI, faceDown = value.FaceDown }); + + var pileEntry = GetPile(key + mmc.currentUsername); + if (pileEntry == null) { + var pile = Instantiate(instance.playerPilePrefab, instance.playerPiles.transform); + + var tab = Instantiate(instance.pileTabPrefab, instance.pileTabs.transform); + tab.GetComponentInChildren().text = key; + + RegisterPile(key + mmc.currentUsername, new PileProperties { name = key, owner = mmc.currentUsername, cards = value.Cards.ToArray(), gameObject = pile, tab = tab, faceDown = value.FaceDown }); + } else UpdatePile(key + mmc.currentUsername, new PileProperties { name = key, owner = mmc.currentUsername, cards = value.Cards.ToArray(), gameObject = pileEntry.gameObject, tab = pileEntry.tab, faceDown = value.FaceDown }); + + pileEntry = GetPile(key + mmc.currentUsername); + pileEntry.tab.SetActive(value.Visible); + pileEntry.gameObject.SetActive(value.Visible); } - piles = myself.conn.GetCommonPiles(); + if(instance.firstReload && instance.pileTabs.GetComponentInChildren