Files
Nitrox/NitroxClient/GameLogic/StoryManager.cs
2025-07-06 00:23:46 +02:00

57 lines
1.9 KiB
C#

using NitroxClient.MonoBehaviours;
using NitroxModel.DataStructures;
using NitroxModel.DataStructures.GameLogic;
using Story;
using UnityEngine;
namespace NitroxClient.GameLogic;
public static class StoryManager
{
public static void ScanCompleted(NitroxId entityId, bool destroy)
{
PDAScanner.cachedProgress.Remove(entityId.ToString());
if (NitroxEntity.TryGetObjectFrom(entityId, out GameObject scanObject))
{
// Copy the SendMessage from PDAScanner.Scan() but we don't care about the EntryData
scanObject.SendMessage("OnScanned", null, SendMessageOptions.DontRequireReceiver);
if (!destroy)
{
PDAScanner.fragments.Add(entityId.ToString(), 1f);
}
else
{
PDAScanner.fragments.Remove(entityId.ToString());
GameObject.Destroy(scanObject);
}
}
}
public static void UpdateAuroraData(AuroraEventData auroraEventData)
{
CrashedShipExploder.main.timeToStartCountdown = auroraEventData.TimeToStartCountdown;
CrashedShipExploder.main.timeToStartWarning = auroraEventData.TimeToStartWarning;
}
public static void RestoreAurora()
{
CleanAuroraEvents();
// Same logic as in OnConsoleCommand_restoreship but without the time recalculation
CrashedShipExploder.main.SwapModels(false);
CrashedShipExploder.main.fxControl.StopAndDestroy(0, 0f);
CrashedShipExploder.main.fxControl.StopAndDestroy(1, 0f);
}
/// <summary>
/// Removes the aurora-related entries from StoryGoalManager's completedEvents and PDALog
/// </summary>
public static void CleanAuroraEvents()
{
foreach (string eventKey in AuroraEventData.GoalNames)
{
StoryGoalManager.main.completedGoals.Remove(eventKey);
PDALog.Remove(eventKey);
}
}
}