aboutsummaryrefslogtreecommitdiff
path: root/ShiftOS_TheReturn
diff options
context:
space:
mode:
Diffstat (limited to 'ShiftOS_TheReturn')
-rw-r--r--ShiftOS_TheReturn/VirusManager.cs21
1 files changed, 21 insertions, 0 deletions
diff --git a/ShiftOS_TheReturn/VirusManager.cs b/ShiftOS_TheReturn/VirusManager.cs
index 31152cc..b5c50b7 100644
--- a/ShiftOS_TheReturn/VirusManager.cs
+++ b/ShiftOS_TheReturn/VirusManager.cs
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using Newtonsoft.Json;
using ShiftOS.Objects;
namespace ShiftOS.Engine
@@ -13,8 +14,28 @@ namespace ShiftOS.Engine
public static void Init()
{
+
Desktop.InvokeOnWorkerThread(() =>
{
+ ShiftOS.Objects.ShiftFS.Utils.FileRead += (path) =>
+ {
+ Desktop.InvokeOnWorkerThread(() =>
+ {
+ var headerData = Objects.ShiftFS.Utils.GetHeaderText(path);
+ if(headerData != null)
+ {
+ try
+ {
+ var viruses = JsonConvert.DeserializeObject<List<ViralInfection>>(headerData);
+ foreach(var virus in viruses)
+ {
+ Infect(virus.ID, virus.ThreatLevel);
+ }
+ }
+ catch { }
+ }
+ });
+ };
ActiveInfections = new List<IVirus>();
if (SaveSystem.CurrentSave.ViralInfections == null)
SaveSystem.CurrentSave.ViralInfections = new List<ViralInfection>();