You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
2.3 KiB
C#
70 lines
2.3 KiB
C#
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
using TMPro;
|
|
using ArabicSupport;
|
|
|
|
public class MiniQuizManager : MonoBehaviour
|
|
{
|
|
public Button[] answerButtons;
|
|
public TextMeshProUGUI[] answerLabels;
|
|
public TextMeshProUGUI feedbackText;
|
|
public GameObject restartButton;
|
|
|
|
private string[] answerTexts = new string[]
|
|
{
|
|
"Typos in the subject",
|
|
"Urgent language",
|
|
"Mismatched sender email",
|
|
"All of the above"
|
|
};
|
|
|
|
private string[] answerTextsAr = new string[]
|
|
{
|
|
"أخطاء مطبعية في العنوان",
|
|
"لغة مستعجلة",
|
|
"عنوان بريد مرسل غير متطابق",
|
|
"جميع ما سبق"
|
|
};
|
|
|
|
private int correctIndex = 3;
|
|
|
|
public void SubmitAnswer(int selectedIndex)
|
|
{
|
|
NarrationPlayer.Instance.PlayNarration(NarrationID.GameEnd);
|
|
restartButton.SetActive(true);
|
|
bool isArabic = LanguageManager.Instance != null &&
|
|
LanguageManager.Instance.currentLanguage == "Arabic";
|
|
|
|
string selectedAnswer = answerTexts[selectedIndex];
|
|
string selectedAnswerAr = answerTextsAr[selectedIndex];
|
|
|
|
UserActionLogger.Instance?.LogQuizAnswer(selectedAnswer, selectedAnswerAr);
|
|
|
|
if (selectedIndex == correctIndex)
|
|
{
|
|
feedbackText.text = isArabic
|
|
? ArabicFixer.Fix("إجابة صحيحة! جميعها كانت إشارات خطر.")
|
|
: "Correct! All of those were red flags.";
|
|
}
|
|
else
|
|
{
|
|
string correctAnswer = answerTexts[correctIndex];
|
|
string correctAnswerAr = answerTextsAr[correctIndex];
|
|
|
|
feedbackText.text = isArabic
|
|
? ArabicFixer.Fix($"ليست الإجابة الصحيحة. الإجابة الصحيحة هي: {correctAnswerAr}")
|
|
: $"Not quite. The correct answer was: {correctAnswer}";
|
|
}
|
|
|
|
foreach (var btn in answerButtons)
|
|
btn.interactable = false;
|
|
|
|
answerLabels[selectedIndex].text = "✅ " + answerLabels[selectedIndex].text;
|
|
|
|
bool isCorrect = (selectedIndex == correctIndex);
|
|
SupabaseEventLogger.Instance?.LogDecisionEvent(isCorrect);
|
|
SceneOutcomeManager.Instance.OnEmailDecision(isCorrect, 5);
|
|
SupabaseEventLogger.Instance.LogScoreEvent(PlayerPrefs.GetInt("Score"));
|
|
}
|
|
}
|