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/SceneOutcomeManager.cs

87 lines
2.4 KiB
C#

1 month ago
using UnityEngine;
using System.Collections;
1 month ago
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;
1 month ago
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
}
1 month ago
}
public void Clicked(EmailData data)
{
if (data.isPhishing)
{
Debug.Log("❌ SIMULATION FAILED CREDENTIALS STOLEN");
understandPhishingImage.SetActive(true);
StartCoroutine(MoveCameraToDebrief());
WorldTimelineManager.Instance.SnapshotCurrentSequence();
1 month ago
}
else
{
Debug.Log("Clicked safe link.");
// Optional: You can add a "well done" feedback here if desired
1 month ago
}
}
public void Ignored(EmailData data)
1 month ago
{
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.");
}
1 month ago
}
private IEnumerator MoveCameraToDebrief()
1 month ago
{
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;
}
1 month ago
}
}