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.
PhishingAwarenessSimulation/Assets/Scripts/MiniQuizManager.cs

69 lines
2.3 KiB
C#

using UnityEngine;
using UnityEngine.UI;
using TMPro;
3 weeks ago
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"
};
3 weeks ago
private string[] answerTextsAr = new string[]
{
"أخطاء مطبعية في العنوان",
"لغة مستعجلة",
"عنوان بريد مرسل غير متطابق",
"جميع ما سبق"
};
private int correctIndex = 3;
public void SubmitAnswer(int selectedIndex)
{
restartButton.SetActive(true);
3 weeks ago
bool isArabic = LanguageManager.Instance != null &&
LanguageManager.Instance.currentLanguage == "Arabic";
string selectedAnswer = answerTexts[selectedIndex];
3 weeks ago
string selectedAnswerAr = answerTextsAr[selectedIndex];
UserActionLogger.Instance?.LogQuizAnswer(selectedAnswer, selectedAnswerAr);
if (selectedIndex == correctIndex)
{
3 weeks ago
feedbackText.text = isArabic
? ArabicFixer.Fix("إجابة صحيحة! جميعها كانت إشارات خطر.")
: "Correct! All of those were red flags.";
}
else
{
3 weeks ago
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;
2 weeks ago
bool isCorrect = (selectedIndex == correctIndex);
SupabaseEventLogger.Instance?.LogDecisionEvent(isCorrect);
SceneOutcomeManager.Instance.OnEmailDecision(isCorrect, 5);
SupabaseEventLogger.Instance.LogScoreEvent(PlayerPrefs.GetInt("Score"));
}
}