NewOnlineGame.cs 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text.RegularExpressions;
  4. using UnityEngine;
  5. using UnityEngine.UI;
  6. public class NewOnlineGame : MonoBehaviour
  7. {
  8. public Button inviteButton;
  9. public Button startButton;
  10. public InputField correctAnswersToWin;
  11. public InputField timeLimitPerQuestion;
  12. public InputField timeLimitPerPlayer;
  13. Text invitedCountText;
  14. InvitePanelScript ips;
  15. // Start is called before the first frame update
  16. void Start()
  17. {
  18. //inviteButton.onClick.AddListener(OpenInvitePanel);
  19. startButton.onClick.AddListener(StartNewGame);
  20. invitedCountText = GameObject.Find("InvitedCountText").GetComponent<Text>();
  21. }
  22. private void Update() {
  23. if (ips == null) {
  24. ips = GameObject.Find("InvitePanel").GetComponent<InvitePanelScript>();
  25. }
  26. if (ips.AreThereInvites()) {
  27. invitedCountText.GetComponent<CanvasGroup>().alpha = 1f;
  28. string text = LocalizationManager.Instance.GetText("INVITE_COUNT_TEXT");
  29. int invitedCount = ips.InvitedCount();
  30. text = String.Format(text, invitedCount.ToString());
  31. invitedCountText.text = text;
  32. startButton.interactable = true;
  33. }
  34. }
  35. private void StartNewGame() {
  36. // Collect all information for new game;
  37. // Send to Database;
  38. int timeLimitQuestion = GetInputFieldValue(timeLimitPerQuestion);
  39. int timeLimitPlayer = GetInputFieldValue(timeLimitPerPlayer);
  40. int correctToWin = GetInputFieldValue(correctAnswersToWin);
  41. List<InviteSearchResult> inviteUsers = ips.GetSelectedUsersForInvite();
  42. int newGameId = OnlineDatabase.Instance.SetupNewOnlineGame(timeLimitQuestion, timeLimitPlayer, correctToWin, inviteUsers);
  43. List<String> invitePlayerNames = new List<String>();
  44. foreach (InviteSearchResult isr in inviteUsers) {
  45. invitePlayerNames.Add(isr.GetName())
  46. }
  47. OnlineDatabase.Instance.SendInviteForNewGame(newGameId, invitePlayerNames, Database.Instance.GetSignedInUser().Value);
  48. }
  49. private int GetInputFieldValue(InputField inputField) {
  50. int returnValue = 0;
  51. if (inputField.text.Equals("")) {
  52. string text = Regex.Match(inputField.placeholder.GetComponent<Text>().text, @"\d+").Value;
  53. Int32.TryParse(text, out returnValue);
  54. } else {
  55. string text = Regex.Match(inputField.text, @"\d+").Value;
  56. Int32.TryParse(text, out returnValue);
  57. }
  58. return returnValue;
  59. }
  60. }