Browse Source

Start adding voting to the client

new_protocol
KeyKoder 5 years ago
parent
commit
efe3f130e3
  1. 2
      unity/Assets/Resources/ListElements/DiscordUser.prefab
  2. 420
      unity/Assets/Scenes/MainMenu.unity
  3. 67
      unity/Assets/Scripts/Client.cs
  4. 71
      unity/Assets/Scripts/MainMenuController.cs

2
unity/Assets/Resources/ListElements/DiscordUser.prefab

@ -289,6 +289,6 @@ MonoBehaviour:
m_GameObject: {fileID: 7307195437051520398}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5030a557c7968c4e6bb3716620eb9a0d, type: 3}
m_Script: {fileID: 11500000, guid: 3bf7c180e77c80e4487e7ef2d20e372f, type: 3}
m_Name:
m_EditorClassIdentifier:

420
unity/Assets/Scenes/MainMenu.unity

@ -920,8 +920,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
m_AnchoredPosition: {x: 45, y: -10}
m_SizeDelta: {x: 200, y: 25}
m_AnchoredPosition: {x: 59.79, y: -10}
m_SizeDelta: {x: 185.21094, y: 25}
m_Pivot: {x: 0, y: 0.5}
--- !u!114 &462409823
MonoBehaviour:
@ -1359,6 +1359,194 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 603105757}
m_CullTransparentMesh: 0
--- !u!1 &657502031
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 657502032}
- component: {fileID: 657502034}
- component: {fileID: 657502033}
m_Layer: 5
m_Name: Votes
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &657502032
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 657502031}
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: 1783333716}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
m_AnchoredPosition: {x: 154.99998, y: 11.99999}
m_SizeDelta: {x: 95.000015, y: 18.999996}
m_Pivot: {x: 0, y: 0.5}
--- !u!114 &657502033
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 657502031}
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: 102
m_Alignment: 5
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: '## votes'
--- !u!222 &657502034
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 657502031}
m_CullTransparentMesh: 0
--- !u!1 &665096228
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 665096229}
- component: {fileID: 665096231}
- component: {fileID: 665096230}
m_Layer: 5
m_Name: Text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &665096229
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 665096228}
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: 2072964505}
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!114 &665096230
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 665096228}
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: 14
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Ready
--- !u!222 &665096231
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 665096228}
m_CullTransparentMesh: 0
--- !u!1 &700798141
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 700798142}
m_Layer: 0
m_Name: GameObject
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &700798142
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 700798141}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 354.69717, y: 174.50136, z: -13.586394}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 8
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &735549588
GameObject:
m_ObjectHideFlags: 0
@ -1754,7 +1942,7 @@ MonoBehaviour:
m_GameObject: {fileID: 924830818}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: be4c17fe36a7a91fcb64147c5e222242, type: 3}
m_Script: {fileID: 11500000, guid: 417dad0f3302e6242964f2348e906d9d, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!4 &924830820
@ -3442,6 +3630,85 @@ Transform:
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
--- !u!1 &1687485368
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1687485369}
- component: {fileID: 1687485371}
- component: {fileID: 1687485370}
m_Layer: 5
m_Name: GameID
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1687485369
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1687485368}
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: 1783333716}
m_RootOrder: 4
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_SizeDelta: {x: 160, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1687485370
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1687485368}
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: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0}
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: 14
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 0
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: New Text
--- !u!222 &1687485371
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1687485368}
m_CullTransparentMesh: 0
--- !u!1 &1695705189
GameObject:
m_ObjectHideFlags: 0
@ -3805,7 +4072,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
m_AnchoredPosition: {x: 5, y: 8}
m_AnchoredPosition: {x: 5, y: 11}
m_SizeDelta: {x: 150, y: 25}
m_Pivot: {x: 0, y: 0.5}
--- !u!114 &1751519030
@ -3884,7 +4151,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
m_AnchoredPosition: {x: 5, y: -6}
m_AnchoredPosition: {x: 5, y: -2.9999974}
m_SizeDelta: {x: 150, y: 25}
m_Pivot: {x: 0, y: 0.5}
--- !u!114 &1771254982
@ -3962,6 +4229,8 @@ RectTransform:
- {fileID: 1751519029}
- {fileID: 1771254981}
- {fileID: 462409822}
- {fileID: 657502032}
- {fileID: 1687485369}
m_Father: {fileID: 513979424}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -4015,10 +4284,10 @@ MonoBehaviour:
m_Calls:
- m_Target: {fileID: 963550926}
m_TargetAssemblyTypeName: MainMenuController, Assembly-CSharp
m_MethodName: ConnectLobby
m_MethodName: Vote
m_Mode: 2
m_Arguments:
m_ObjectArgument: {fileID: 1751519030}
m_ObjectArgument: {fileID: 1687485370}
m_ObjectArgumentAssemblyTypeName: UnityEngine.UI.Text, UnityEngine.UI
m_IntArgument: 0
m_FloatArgument: 0
@ -4078,7 +4347,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
m_IsActive: 1
--- !u!114 &1785051993
MonoBehaviour:
m_ObjectHideFlags: 0
@ -4157,6 +4426,7 @@ RectTransform:
- {fileID: 1002690558}
- {fileID: 1221064085}
- {fileID: 211623664}
- {fileID: 2072964505}
m_Father: {fileID: 0}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -4262,7 +4532,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!114 &1849231261
MonoBehaviour:
m_ObjectHideFlags: 0
@ -4899,6 +5169,138 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2007855046}
m_CullTransparentMesh: 0
--- !u!1 &2072964504
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2072964505}
- component: {fileID: 2072964508}
- component: {fileID: 2072964507}
- component: {fileID: 2072964506}
m_Layer: 5
m_Name: ReadyButton
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2072964505
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2072964504}
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: 665096229}
m_Father: {fileID: 1785051996}
m_RootOrder: 7
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: 204.22, y: 50.8}
m_SizeDelta: {x: 123.79576, y: 28.873802}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &2072964506
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2072964504}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 0.39607844}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 0.4}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.4}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 0.4}
m_DisabledColor: {r: 0.31132078, g: 0.31132078, b: 0.31132078, a: 0.4}
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: 2072964507}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 963550926}
m_TargetAssemblyTypeName: MainMenuController, Assembly-CSharp
m_MethodName: SetReady
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
--- !u!114 &2072964507
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2072964504}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, 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_Sprite: {fileID: 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 &2072964508
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2072964504}
m_CullTransparentMesh: 0
--- !u!1 &2074064734
GameObject:
m_ObjectHideFlags: 0

67
unity/Assets/Scripts/Client.cs

@ -2,6 +2,7 @@ using Grpc.Core;
using System.Collections.Generic;
using System.Threading.Tasks;
using UnityEngine;
using Utilities;
public static class Client
{
private static Connection reference;
@ -33,6 +34,8 @@ public static class Client
private string connId;
private uint? lobby = null;
private string address;
private Modifiable<Lobby.LobbyStatus> lobby_status = null;
public Connection(string user, string address)
{
channel = new Channel(address, ChannelCredentials.Insecure);
@ -87,6 +90,70 @@ public static class Client
return l;
}
public Lobby.LobbyStatus GetLobbyStatus() {
if (lobby != null) {
if (lobby_status != null) {
var hasNew = lobby_client.hasNewStatus(
new Lobby.LastStatusTimestamp {
Time = Google.Protobuf.WellKnownTypes.Timestamp.FromDateTime(lobby_status.GetLastModfication()),
Lobby = (uint)lobby,
},
new Metadata { new Metadata.Entry("client_id", connId) }
).Value;
Debug.Log("HasNewStatus: " + hasNew);
if (hasNew) {
lobby_status.Set(lobby_client.getStatus(new Google.Protobuf.WellKnownTypes.Empty(), new Metadata { new Metadata.Entry("client_id", connId) }));
}
return lobby_status.Get();
} else {
Debug.Log("Getting status");
lobby_status = new Modifiable<Lobby.LobbyStatus>(lobby_client.getStatus(new Google.Protobuf.WellKnownTypes.Empty(), new Metadata { new Metadata.Entry("client_id", connId) }));
return lobby_status.Get();
}
} else {
return null;
}
}
public List<Lobby.Vote> GetLobbyVotes(uint game) {
Google.Protobuf.Collections.RepeatedField<Lobby.Vote> votes = GetLobbyStatus().Votes;
var gameVotes = new List<Lobby.Vote>();
foreach (Lobby.Vote vote in votes) {
if (vote.Game == game) {
gameVotes.Add(vote);
}
}
return gameVotes;
}
public int GetLobbyVoteCount(uint game) {
Google.Protobuf.Collections.RepeatedField<Lobby.Vote> votes = GetLobbyStatus().Votes;
var gameVotes = new List<Lobby.Vote>();
foreach(Lobby.Vote vote in votes) {
if (vote.Game == game) {
gameVotes.Add(vote);
}
}
return gameVotes.Count;
}
public Lobby.Vote GetSelfVote(string player) {
Google.Protobuf.Collections.RepeatedField<Lobby.Vote> votes = GetLobbyStatus().Votes;
foreach (Lobby.Vote vote in votes) {
Debug.Log(vote);
if (vote.Player == player) {
return vote;
}
}
return null;
}
public void Vote(uint game) {
lobby_client.vote(new Lobby.SingleVote() { Game = game }, new Metadata { new Metadata.Entry("client_id", connId) });
}
public void SetReady() {
lobby_client.ready(new Google.Protobuf.WellKnownTypes.Empty(), new Metadata { new Metadata.Entry("client_id", connId) });
}
public void LeaveLobby() {
lobby_client.leave(new Google.Protobuf.WellKnownTypes.Empty(), new Metadata { new Metadata.Entry("client_id", connId) });
lobby = null;

71
unity/Assets/Scripts/MainMenuController.cs

@ -26,6 +26,8 @@ public class MainMenuController : MonoBehaviour {
private List<string> usersInLobby = new List<string>();
private long discordLobbyId = -1;
private bool ready = false;
void Start() {
for(int i = 5; i < 0; i++){
Debug.Log(i);
@ -127,6 +129,25 @@ public class MainMenuController : MonoBehaviour {
ConnectLobby(codeText.text);
}
public void Vote(uint game) {
var conn = Client.GetConnection();
if (conn != null) {
conn.Vote(game);
ReloadMenu(false);
}
}
public void Vote(Text gameText) {
Vote(uint.Parse(gameText.text));
}
public void SetReady() {
var conn = Client.GetConnection();
if (conn != null) {
conn.SetReady();
ReloadMenu(false);
}
}
public void ExitGame() {
Application.Quit();
}
@ -169,7 +190,7 @@ public class MainMenuController : MonoBehaviour {
}, "Invite a Friend", Resources.Load("ListElements/DiscordUser"), DiscordUtils.GetFriends().ToArray());
}
public void ReloadMenu() {
public void ReloadMenu(bool reloadDiscord = true) {
if(mainMenu.activeSelf) {
DiscordUtils.SetPresence(0, 0, false, "", "");
@ -191,15 +212,18 @@ public class MainMenuController : MonoBehaviour {
}
serverName.text = Client.GetConnection().Name();
serverMenu.GetComponentInChildren<Scrollable>().Reload();
if (discordLobbyId == -1)
DiscordUtils.CreateLobby(10, (lobby) => {
discordLobbyId = lobby.Id;
//DiscordUtils.GetLobbyMetadataKeys(discordLobbyId);
});
else
DiscordUtils.UpdateLobby(discordLobbyId, 10);
Debug.Log(discordLobbyId);
if (reloadDiscord) {
if (discordLobbyId == -1)
DiscordUtils.CreateLobby(10, (lobby) => {
discordLobbyId = lobby.Id;
//DiscordUtils.GetLobbyMetadataKeys(discordLobbyId);
});
else
DiscordUtils.UpdateLobby(discordLobbyId, 10);
Debug.Log(discordLobbyId);
}
}
if (lobbyMenu.activeSelf) {
for (int i = lobbyScroll.transform.childCount-1; i >= 1; i--) {
@ -207,25 +231,38 @@ public class MainMenuController : MonoBehaviour {
}
var conn = Client.GetConnection();
if(conn != null) {
Debug.Log(conn.GetLobby());
var games = conn.GetGames();
foreach(ConnectionService.Game game in games) {
var gameGO = Instantiate(lobbyScroll.transform.GetChild(0), lobbyScroll.transform);
gameGO.GetComponentsInChildren<Text>()[0].text = game.Name;
gameGO.GetComponentsInChildren<Text>()[1].text = game.Version;
gameGO.GetComponentsInChildren<Text>()[2].text = string.Join(", ", game.Authors);
gameGO.GetComponentsInChildren<Text>()[3].text = conn.GetLobbyVoteCount(game.Id) + " votes";
gameGO.GetComponentsInChildren<Text>()[4].text = ""+game.Id;
gameGO.gameObject.SetActive(true);
}
var selfVote = conn.GetSelfVote(username.text);
if (selfVote != null)
ready = selfVote.Ready;
//Debug.Log(selfVote);
lobbyMenu.transform.Find("ReadyButton").GetComponent<Image>().color = ready ? new Color(0, 255, 0) : new Color(255, 255, 255);
var users = conn.GetUsersInSameLobby();
lobbyMenu.FindRecursive("Usercount").GetComponent<Text>().text = "x " + users.Count;
usersInLobby = users;
// conn.Close();
Debug.Log(discordLobbyId);
if (discordLobbyId == -1)
DiscordUtils.CreateLobby(10, (lobby) => {
discordLobbyId = lobby.Id;
});
else
DiscordUtils.UpdateLobby(discordLobbyId, 10);
if (reloadDiscord) {
Debug.Log(discordLobbyId);
if (discordLobbyId == -1)
DiscordUtils.CreateLobby(10, (lobby) => {
discordLobbyId = lobby.Id;
});
else
DiscordUtils.UpdateLobby(discordLobbyId, 10);
}
}
lobbyMenu.GetComponentInChildren<Scrollable>().Reload();

Loading…
Cancel
Save