PhishingAwarenessSimulation/Assets/Scripts/SceneOutcomeManager.cs
2025-05-29 00:19:15 +05:00

87 lines
2.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using UnityEngine;
using System.Collections;
public class SceneOutcomeManager : MonoBehaviour
{
public static SceneOutcomeManager Instance;
[Header("UI Images")]
public GameObject notSuspiciousImage;
public GameObject alwaysReportImage;
public GameObject understandPhishingImage;
[Header("Camera Movement")]
public Transform cameraTarget;
public float cameraMoveSpeed = 1.5f;
public Camera mainCamera;
private void Awake()
{
Instance = this;
}
public void Reported(EmailData data)
{
if (data.isPhishing)
{
understandPhishingImage.SetActive(true);
StartCoroutine(MoveCameraToDebrief());
WorldTimelineManager.Instance.SnapshotCurrentSequence();
}
else
{
notSuspiciousImage.SetActive(true);
// ✅ No camera or timeline
}
}
public void Clicked(EmailData data)
{
if (data.isPhishing)
{
Debug.Log("❌ SIMULATION FAILED CREDENTIALS STOLEN");
understandPhishingImage.SetActive(true);
StartCoroutine(MoveCameraToDebrief());
WorldTimelineManager.Instance.SnapshotCurrentSequence();
}
else
{
Debug.Log("Clicked safe link.");
// Optional: You can add a "well done" feedback here if desired
}
}
public void Ignored(EmailData data)
{
if (data.isPhishing)
{
alwaysReportImage.SetActive(true);
StartCoroutine(MoveCameraToDebrief());
WorldTimelineManager.Instance.SnapshotCurrentSequence();
}
else
{
// ✅ Not phishing + Ignored → Do nothing
Debug.Log("Ignored a safe email. No feedback triggered.");
}
}
private IEnumerator MoveCameraToDebrief()
{
if (mainCamera == null || cameraTarget == null)
yield break;
Vector3 startPos = mainCamera.transform.position;
Quaternion startRot = mainCamera.transform.rotation;
float t = 0;
while (t < 1)
{
t += Time.deltaTime * cameraMoveSpeed;
mainCamera.transform.position = Vector3.Lerp(startPos, cameraTarget.position, t);
mainCamera.transform.rotation = Quaternion.Slerp(startRot, cameraTarget.rotation, t);
yield return null;
}
}
}