NewQuestionsPanel.cs 4.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using UnityEngine;
  5. using UnityEngine.UI;
  6. public class NewQuestionsPanel : MonoBehaviour {
  7. public GameObject QuestionAnswerLine;
  8. public Text AnswerText;
  9. public Text QuestionText;
  10. public Text backCategoryText;
  11. public GameObject QuestioncardBackside;
  12. [SerializeField] Image FrontQuestionCategoryImage;
  13. [SerializeField] Text FrontQuestionCategoryText;
  14. private NewQuestionData questionData;
  15. private GameManagerScript gameManagerScript;
  16. public NewQuestionData QuestionData { get => questionData; set => questionData = value; }
  17. [SerializeField] GameObject gameManager;
  18. // Start is called before the first frame update
  19. void Start() {
  20. gameManagerScript = gameManager.GetComponent<GameManagerScript>();
  21. int gameId = gameManagerScript.GameId;
  22. string gameMode = gameManagerScript.GameMode;
  23. //string gameMode = Database.Instance.GetGameMode(gameId);
  24. string currentPlayer = Database.Instance.GetCurrentPlayer(gameId, gameMode);
  25. if (gameMode.Equals(Constants.ONLINE) &&
  26. currentPlayer.Equals(Database.Instance.GetSignedInUser().Value, StringComparison.InvariantCultureIgnoreCase) &&
  27. Database.Instance.GetRoundValue(gameManagerScript.GameId, gameManagerScript.GameMode) <= 1 ||
  28. (gameMode.Equals(Constants.LOCAL) &&
  29. Database.Instance.GetRoundValue(gameManagerScript.GameId, gameManagerScript.GameMode) <= 1)) {
  30. List<NewQuestionData> usersQuestions = Database.Instance.GetPlayerQuestions(gameId, currentPlayer, gameManagerScript.GameMode);
  31. NewQuestionData qd = usersQuestions[0];
  32. AnswerText.text = qd.Answer;
  33. QuestionText.text = qd.Question;
  34. backCategoryText.text = qd.CategoryName;
  35. FrontQuestionCategoryText.text = qd.CategoryName;
  36. FrontQuestionCategoryImage.color = qd.CategoryColor;
  37. QuestioncardBackside.GetComponent<Image>().color = qd.CategoryColor;
  38. QuestionData = qd;
  39. } else if (gameMode.Equals(Constants.ONLINE) &&
  40. !currentPlayer.Equals(Database.Instance.GetSignedInUser().Value, StringComparison.InvariantCultureIgnoreCase)) {
  41. SetNotYourTurn();
  42. }
  43. }
  44. private void Awake() {
  45. if (gameManagerScript == null) {
  46. gameManagerScript = gameManager.GetComponent<GameManagerScript>();
  47. }
  48. if (Database.Instance.GetRoundValue(gameManagerScript.GameId, gameManagerScript.GameMode) > 1) {
  49. GenerateNewQuestion(true);
  50. }
  51. }
  52. // Update is called once per frame
  53. void Update() {
  54. if (gameManagerScript.GameMode.Equals(Constants.ONLINE) && !GameManagerScript.GetCurrentPlayer().Equals(Database.Instance.GetSignedInUser().Value, StringComparison.InvariantCultureIgnoreCase)) {
  55. SetNotYourTurn();
  56. }
  57. }
  58. public void GenerateNewQuestion(bool setQuestionActive) {
  59. if (setQuestionActive) {
  60. AnswerLineQuestionCard[] answerLineQuestions = QuestionAnswerLine.GetComponentsInChildren<AnswerLineQuestionCard>();
  61. List<int> answerIds = new List<int>();
  62. foreach (var aq in answerLineQuestions) {
  63. answerIds.Add(aq.QuestionId);
  64. }
  65. KeyValuePair<int, String> user = Database.Instance.GetSignedInUser();
  66. QuestionData = Database.Instance.GetNewQuestion(answerIds, user, gameManager.GetComponent<GameManagerScript>().GameMode);
  67. AnswerText.text = "???? - ????";
  68. QuestionText.text = QuestionData.Question;
  69. backCategoryText.text = QuestionData.CategoryName;
  70. QuestioncardBackside.GetComponent<Image>().color = QuestionData.CategoryColor;
  71. FrontQuestionCategoryImage.color = QuestionData.CategoryColor;
  72. FrontQuestionCategoryText.text = QuestionData.CategoryName;
  73. GetComponentInChildren<Button>().interactable = true;
  74. } else {
  75. SetNotYourTurn();
  76. }
  77. }
  78. private void SetNotYourTurn() {
  79. backCategoryText.text = LocalizationManager.Instance.GetText("NOT_YOUR_TURN");
  80. QuestioncardBackside.GetComponent<Image>().color = new Color(130f, 130f, 130f, 255f);
  81. GetComponentInChildren<Button>().interactable = false;
  82. GetComponentInChildren<NewQuestionCardController>().BackClickable = false;
  83. }
  84. }