OnlinePlayerInfoScript.cs 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using UnityEngine;
  5. using UnityEngine.UI;
  6. public class OnlinePlayerInfoScript : MonoBehaviour
  7. {
  8. public Text playerName;
  9. public Text playerStatus;
  10. public Button acceptButton;
  11. public Button declineButton;
  12. public Transform buttonPanel;
  13. public Transform statusPanel;
  14. private int gameId;
  15. private string PENDING = "ONLINE_PLAYER_STATUS_WAITING";
  16. private string ACCEPTED = "ONLINE_PLAYER_STATUS_ACCEPTED";
  17. private string DECLINED = "ONLINE_PLAYER_STATUS_DECLINED";
  18. public int GameId { get => gameId; set => gameId = value; }
  19. private void Start() {
  20. acceptButton.onClick.AddListener(AcceptGame);
  21. declineButton.onClick.AddListener(DeclineGame);
  22. }
  23. private void DeclineGame() {
  24. OnlineDatabase.Instance.DeclineOnlineGame(playerName.text, gameId);
  25. SetPlayerStatus("DECLINED");
  26. HideDecitionButtons();
  27. }
  28. private void AcceptGame() {
  29. OnlineDatabase.Instance.AcceptOnlineGame(playerName.text, gameId);
  30. SetPlayerStatus("ACCEPTED");
  31. HideDecitionButtons();
  32. }
  33. public void SetPlayerName(string name) {
  34. playerName.text = name;
  35. }
  36. public void SetPlayerStatus(string status) {
  37. if ("WAITING".Equals(status)) {
  38. playerStatus.GetComponent<TextLocalization>().key = PENDING;
  39. playerStatus.text = LocalizationManager.Instance.GetText(PENDING);
  40. } else if ("ACCEPTED".Equals(status)) { // Göm status på spelare och visa info om aktivt spel
  41. playerStatus.GetComponent<TextLocalization>().key = ACCEPTED;
  42. playerStatus.text = LocalizationManager.Instance.GetText(ACCEPTED);
  43. } else if ("DECLINED".Equals(status)) {
  44. playerStatus.GetComponent<TextLocalization>().key = DECLINED;
  45. playerStatus.text = LocalizationManager.Instance.GetText(DECLINED);
  46. }
  47. }
  48. internal void ShowDecitionButtons() {
  49. statusPanel.GetComponent<CanvasGroup>().alpha = 0f;
  50. CanvasGroup buttonCanvasGroup = buttonPanel.GetComponent<CanvasGroup>();
  51. buttonCanvasGroup.alpha = 1f;
  52. buttonCanvasGroup.interactable = true;
  53. buttonCanvasGroup.blocksRaycasts = true;
  54. }
  55. internal void HideDecitionButtons() {
  56. statusPanel.GetComponent<CanvasGroup>().alpha = 1f;
  57. CanvasGroup buttonCanvasGroup = buttonPanel.GetComponent<CanvasGroup>();
  58. buttonCanvasGroup.alpha = 0f;
  59. buttonCanvasGroup.interactable = false;
  60. buttonCanvasGroup.blocksRaycasts = false;
  61. }
  62. }