This commit is contained in:
Ali Sharoz 2025-07-24 19:22:55 +05:00
parent a685b2fc07
commit 14f5992faf
2 changed files with 27 additions and 165 deletions

View File

@ -28,7 +28,7 @@ public class NarrationPlayer : MonoBehaviour
public float charDelay = 0.03f;
public float lineGroupDelay = 2.5f; // Fallback if no custom delay provided
private AudioSource audioSource;
public AudioSource audioSource;
private Tween typewriterTween;
private Dictionary<NarrationID, NarrationData> narrationMap;
@ -100,9 +100,24 @@ public class NarrationPlayer : MonoBehaviour
}
void scoreBarActivator()
{
Debug.Log("ScoreBarActivator");
CancelInvoke(nameof(scoreBarActivator));
SceneOutcomeManager.Instance.progressbarCanvasGroup.alpha = 1;
InstructionManager.Instance.instructionBG.SetActive(false);
if (SceneOutcomeManager.Instance.phishingEmailClicked == false)
{
Debug.Log("phishingEmailClicked == false");
SceneOutcomeManager.Instance.progressbarCanvasGroup.alpha = 1;
InstructionManager.Instance.instructionBG.SetActive(false);
}
else
{
Debug.Log("phishingEmailClicked == true");
InstructionManager.Instance.instructionBG.SetActive(false);
}
}
private void AppendSubtitle(string fullText, bool isArabic, NarrationData narrationData)
{
@ -165,6 +180,7 @@ public class NarrationPlayer : MonoBehaviour
if (audioSource.isPlaying)
audioSource.Stop();
typewriterTween?.Kill();
StopAllCoroutines();
}
@ -177,163 +193,4 @@ public class NarrationPlayer : MonoBehaviour
}
public bool IsPlaying => audioSource.isPlaying;
}
//using UnityEngine;
//using TMPro;
//using DG.Tweening;
//using System.Collections.Generic;
//using System.Collections;
//public enum NarrationID
//{
// Intro,
// NewEmail,
// ScanEmail,
// CorrectReportChoice,
// CorrectIgnoreChoice,
// WrongIgnoreChoice,
// Feedback,
// GameEnd
//}
//public class NarrationPlayer : MonoBehaviour
//{
// public static NarrationPlayer Instance { get; private set; }
// [Header("Narration Assets")]
// public List<NarrationData> narrationDatabase;
// [Header("Subtitle Settings")]
// public TextMeshProUGUI subtitleText;
// public float charDelay = 0.03f;
// private AudioSource audioSource;
// private Tween typewriterTween;
// private Dictionary<NarrationID, NarrationData> narrationMap;
// private void Awake()
// {
// if (Instance != null && Instance != this)
// {
// Destroy(gameObject);
// return;
// }
// Instance = this;
//// DontDestroyOnLoad(gameObject);
// audioSource = gameObject.AddComponent<AudioSource>();
// audioSource.playOnAwake = false;
// narrationMap = new Dictionary<NarrationID, NarrationData>();
// foreach (var data in narrationDatabase)
// {
// if (data != null && !narrationMap.ContainsKey(data.narrationID))
// narrationMap[data.narrationID] = data;
// }
// }
// public void PlayNarration(NarrationID id, System.Action onComplete = null)
// {
// if (!narrationMap.TryGetValue(id, out var narrationData))
// {
// Debug.LogWarning($"Narration not found for: {id}");
// return;
// }
// bool isArabic = LanguageManager.Instance.IsArabic;
// AudioClip clip = isArabic ? narrationData.arabicClip : narrationData.englishClip;
// if (clip == null)
// {
// Debug.LogWarning($"Missing audio clip for {id} in language: {(isArabic ? "Arabic" : "English")}");
// return;
// }
// if (audioSource.isPlaying)
// audioSource.Stop();
// audioSource.clip = clip;
// audioSource.Play();
// if (!string.IsNullOrEmpty(narrationData.localizationKey))
// {
// string rawSubtitle = LanguageManager.Instance.GetLocalizedText(narrationData.localizationKey);
// string subtitle = isArabic
// ? ArabicFixerHelper.FixPreservingTags(rawSubtitle)
// : rawSubtitle;
// // TMP settings per language
// subtitleText.font = LanguageManager.Instance.GetCurrentFont();
// subtitleText.fontSize = isArabic ? 39 : 50;
// // subtitleText.alignment = isArabic ? TextAlignmentOptions.Right : TextAlignmentOptions.Left;
// subtitleText.overflowMode = TextOverflowModes.Page;
// subtitleText.isRightToLeftText = false; // MUST be false with ArabicFixer
// AppendSubtitle(subtitle, isArabic);
// }
// if (onComplete != null)
// StartCoroutine(InvokeAfterNarration(clip.length, onComplete));
// }
// private void AppendSubtitle(string fullText, bool isArabic)
// {
// typewriterTween?.Kill();
// subtitleText.text = "";
// if (isArabic)
// {
// StartCoroutine(ShowArabicByPages(fullText));
// return;
// }
// int totalLength = fullText.Length;
// int currentIndex = 0;
// typewriterTween = DOTween.To(() => currentIndex, x =>
// {
// currentIndex = x;
// subtitleText.text = fullText.Substring(0, currentIndex);
// subtitleText.ForceMeshUpdate();
// subtitleText.pageToDisplay = subtitleText.textInfo.pageCount;
// }, totalLength, totalLength * charDelay).SetEase(Ease.Linear);
// }
// private IEnumerator ShowArabicByPages(string fullText)
// {
// subtitleText.text = fullText;
// subtitleText.ForceMeshUpdate();
// int totalPages = subtitleText.textInfo.pageCount;
// for (int i = 1; i <= totalPages; i++)
// {
// subtitleText.pageToDisplay = i;
// yield return new WaitForSeconds(5f); // Adjust delay per page
// }
// }
// private IEnumerator InvokeAfterNarration(float delay, System.Action callback)
// {
// yield return new WaitForSeconds(delay);
// callback?.Invoke();
// }
// public void StopNarration()
// {
// if (audioSource.isPlaying)
// audioSource.Stop();
// typewriterTween?.Kill();
// }
// public void ClearSubtitles()
// {
// typewriterTween?.Kill();
// subtitleText.text = "";
// }
// public bool IsPlaying => audioSource.isPlaying;
//}
}

View File

@ -104,14 +104,19 @@ public class SceneOutcomeManager : MonoBehaviour
WorldTimelineManager.Instance.SnapshotCurrentSequence();
}
}
public bool phishingEmailClicked = false;
public void Clicked(EmailData data)
{
if (data.isPhishing)
{
Debug.Log("❌ SIMULATION FAILED CREDENTIALS STOLEN");
understandPhishingImage.SetActive(true);
StartCoroutine(MoveCameraToDebrief());
//StartCoroutine(MoveCameraToDebrief());
phishingEmailClicked = true;
NarrationPlayer.Instance.StopNarration();
//NarrationPlayer.Instance.audioSource.Stop();
//progressbarCanvasGroup.alpha = 0;
ProceedToDebrief();
WorldTimelineManager.Instance.SnapshotCurrentSequence();
}
}