Browse Source

Add support for multiple piles per player on the client

main
KeyKoder 5 years ago
parent
commit
8fb04348b7
  1. 1
      protobuf/game.proto
  2. 16
      unity/Assets/Prefabs/CardPrefab.prefab
  3. 224
      unity/Assets/Prefabs/PileTabPrefab.prefab
  4. 7
      unity/Assets/Prefabs/PileTabPrefab.prefab.meta
  5. 134
      unity/Assets/Prefabs/PlayerPilePrefab.prefab
  6. 7
      unity/Assets/Prefabs/PlayerPilePrefab.prefab.meta
  7. 412
      unity/Assets/Scenes/SampleScene.unity
  8. 2
      unity/Assets/Scripts/Card.cs
  9. 59
      unity/Assets/Scripts/GameLoader.cs
  10. 16
      unity/Assets/Scripts/PileTab.cs
  11. 11
      unity/Assets/Scripts/PileTab.cs.meta
  12. 50
      unity/Assets/Scripts/grpc/Game.cs

1
protobuf/game.proto

@ -53,6 +53,7 @@ message GameStatus {
message Pile {
repeated Card cards = 1;
bool faceDown = 2;
bool visible = 3;
}
message Piles {
map<string, Pile> piles = 1;

16
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:

224
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

7
unity/Assets/Prefabs/PileTabPrefab.prefab.meta

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

134
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

7
unity/Assets/Prefabs/PlayerPilePrefab.prefab.meta

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

412
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

2
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);

59
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<string, Texture2D[]> cardImages = new Dictionary<string, Texture2D[]>();
public static Dictionary<string, CardProperties> cardRegistry = new Dictionary<string, CardProperties>();
public static Dictionary<string, PileProperties> pileRegistry = new Dictionary<string, PileProperties>();
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<Renderer>().material.color = playerColors[i % playerColors.Length];
player.GetComponent<Renderer>().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>().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<Button>() != null) instance.pileTabs.GetComponentInChildren<Button>().onClick.Invoke();
// Hardcoded values for pile gameobjects
piles = instance.conn.GetCommonPiles();
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 + "_common") == null) RegisterPile(key + "_common", new PileProperties { name = key, owner = "", cards = value.Cards.ToArray(), gameObject = key == "placed" ? myself.thrownCards : myself.deck, faceDown = value.FaceDown });
else UpdatePile(key+"_common", new PileProperties { name = key, owner = "", cards = value.Cards.ToArray(), gameObject = key == "placed" ? myself.thrownCards : myself.deck, faceDown = value.FaceDown });
if (GetPile(key + "_common") == null) RegisterPile(key + "_common", new PileProperties { name = key, owner = "", cards = value.Cards.ToArray(), gameObject = key == "placed" ? instance.thrownCards : instance.deck, faceDown = value.FaceDown });
else UpdatePile(key+"_common", new PileProperties { name = key, owner = "", cards = value.Cards.ToArray(), gameObject = key == "placed" ? instance.thrownCards : instance.deck, faceDown = value.FaceDown });
}
var cards = FindObjectsOfType<Card>();
var cards = FindObjectsOfType<Card>(true);
foreach (Card card in cards) {
if (card.IsThrown()) Destroy(card.transform.parent.gameObject);
else Destroy(card.gameObject);
}
myself.SpawnCards();
instance.SpawnCards();
instance.firstReload = false;
}
}

16
unity/Assets/Scripts/PileTab.cs

@ -0,0 +1,16 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class PileTab : MonoBehaviour {
public void OnClick() {
var tabs = GameLoader.instance.pileTabs.transform;
var piles = GameLoader.instance.playerPiles.transform;
var self = transform.GetSiblingIndex();
for (int i = 0; i < tabs.childCount; i++) {
tabs.GetChild(i).GetComponent<RawImage>().color = i == self ? new Color32(255, 255, 255, 100) : new Color32(255, 255, 255, 22);
piles.GetChild(i).gameObject.SetActive(i == self);
}
}
}

11
unity/Assets/Scripts/PileTab.cs.meta

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

50
unity/Assets/Scripts/grpc/Game.cs

@ -33,17 +33,17 @@ namespace Game {
"CgVvd25lZBgBIAEoDUgAEigKBmNvbW1vbhgCIAEoCzIWLmdvb2dsZS5wcm90",
"b2J1Zi5FbXB0eUgAQgYKBGtpbmQiYAoGQ2FyZElkEiAKCHBpbGVLaW5kGAEg",
"ASgLMg4uZ2FtZS5QaWxlS2luZBIQCghwaWxlTmFtZRgCIAEoCRIiCgljYXJk",
"SW5kZXgYAyABKAsyDy5nYW1lLkNhcmRJbmRleCKdAwoKR2FtZVN0YXR1cxIr",
"SW5kZXgYAyABKAsyDy5nYW1lLkNhcmRJbmRleCKuAwoKR2FtZVN0YXR1cxIr",
"Cgtjb21tb25QaWxlcxgBIAEoCzIWLmdhbWUuR2FtZVN0YXR1cy5QaWxlcxIr",
"CgtwbGF5ZXJQaWxlcxgCIAMoCzIWLmdhbWUuR2FtZVN0YXR1cy5QaWxlcxIb",
"CgVuYW1lcxgDIAMoCzIMLmNvbW1vbi5OYW1lEhMKC2N1cnJlbnRUdXJuGAQg",
"ASgNGkMKBENhcmQSHAoEa2luZBgBIAEoCzIOLmdhbWUuQ2FyZEtpbmQSDwoH",
"dmlzaWJsZRgCIAEoCBIMCgR1dWlkGAMgASgJGj4KBFBpbGUSJAoFY2FyZHMY",
"dmlzaWJsZRgCIAEoCBIMCgR1dWlkGAMgASgJGk8KBFBpbGUSJAoFY2FyZHMY",
"ASADKAsyFS5nYW1lLkdhbWVTdGF0dXMuQ2FyZBIQCghmYWNlRG93bhgCIAEo",
"CBp+CgVQaWxlcxIwCgVwaWxlcxgBIAMoCzIhLmdhbWUuR2FtZVN0YXR1cy5Q",
"aWxlcy5QaWxlc0VudHJ5GkMKClBpbGVzRW50cnkSCwoDa2V5GAEgASgJEiQK",
"BXZhbHVlGAIgASgLMhUuZ2FtZS5HYW1lU3RhdHVzLlBpbGU6AjgBYgZwcm90",
"bzM="));
"CBIPCgd2aXNpYmxlGAMgASgIGn4KBVBpbGVzEjAKBXBpbGVzGAEgAygLMiEu",
"Z2FtZS5HYW1lU3RhdHVzLlBpbGVzLlBpbGVzRW50cnkaQwoKUGlsZXNFbnRy",
"eRILCgNrZXkYASABKAkSJAoFdmFsdWUYAiABKAsyFS5nYW1lLkdhbWVTdGF0",
"dXMuUGlsZToCOAFiBnByb3RvMw=="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::Google.Protobuf.WellKnownTypes.EmptyReflection.Descriptor, global::Common.CommonReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
@ -53,7 +53,7 @@ namespace Game {
new pbr::GeneratedClrTypeInfo(typeof(global::Game.PileKind), global::Game.PileKind.Parser, new[]{ "Owned", "Common" }, new[]{ "Kind" }, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Game.CardId), global::Game.CardId.Parser, new[]{ "PileKind", "PileName", "CardIndex" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Game.GameStatus), global::Game.GameStatus.Parser, new[]{ "CommonPiles", "PlayerPiles", "Names", "CurrentTurn" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Game.GameStatus.Types.Card), global::Game.GameStatus.Types.Card.Parser, new[]{ "Kind", "Visible", "Uuid" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Game.GameStatus.Types.Pile), global::Game.GameStatus.Types.Pile.Parser, new[]{ "Cards", "FaceDown" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Game.GameStatus.Types.Pile), global::Game.GameStatus.Types.Pile.Parser, new[]{ "Cards", "FaceDown", "Visible" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Game.GameStatus.Types.Piles), global::Game.GameStatus.Types.Piles.Parser, new[]{ "Piles_" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, })})
}));
}
@ -1854,6 +1854,7 @@ namespace Game {
public Pile(Pile other) : this() {
cards_ = other.cards_.Clone();
faceDown_ = other.faceDown_;
visible_ = other.visible_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
@ -1883,6 +1884,17 @@ namespace Game {
}
}
/// <summary>Field number for the "visible" field.</summary>
public const int VisibleFieldNumber = 3;
private bool visible_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public bool Visible {
get { return visible_; }
set {
visible_ = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as Pile);
@ -1898,6 +1910,7 @@ namespace Game {
}
if(!cards_.Equals(other.cards_)) return false;
if (FaceDown != other.FaceDown) return false;
if (Visible != other.Visible) return false;
return Equals(_unknownFields, other._unknownFields);
}
@ -1906,6 +1919,7 @@ namespace Game {
int hash = 1;
hash ^= cards_.GetHashCode();
if (FaceDown != false) hash ^= FaceDown.GetHashCode();
if (Visible != false) hash ^= Visible.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@ -1927,6 +1941,10 @@ namespace Game {
output.WriteRawTag(16);
output.WriteBool(FaceDown);
}
if (Visible != false) {
output.WriteRawTag(24);
output.WriteBool(Visible);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@ -1941,6 +1959,10 @@ namespace Game {
output.WriteRawTag(16);
output.WriteBool(FaceDown);
}
if (Visible != false) {
output.WriteRawTag(24);
output.WriteBool(Visible);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
@ -1954,6 +1976,9 @@ namespace Game {
if (FaceDown != false) {
size += 1 + 1;
}
if (Visible != false) {
size += 1 + 1;
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@ -1969,6 +1994,9 @@ namespace Game {
if (other.FaceDown != false) {
FaceDown = other.FaceDown;
}
if (other.Visible != false) {
Visible = other.Visible;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
@ -1991,6 +2019,10 @@ namespace Game {
FaceDown = input.ReadBool();
break;
}
case 24: {
Visible = input.ReadBool();
break;
}
}
}
#endif
@ -2013,6 +2045,10 @@ namespace Game {
FaceDown = input.ReadBool();
break;
}
case 24: {
Visible = input.ReadBool();
break;
}
}
}
}

Loading…
Cancel
Save