diff options
Diffstat (limited to 'ShiftOS_TheReturn/VirusManager.cs')
| -rw-r--r-- | ShiftOS_TheReturn/VirusManager.cs | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/ShiftOS_TheReturn/VirusManager.cs b/ShiftOS_TheReturn/VirusManager.cs index 74d0e80..56767e6 100644 --- a/ShiftOS_TheReturn/VirusManager.cs +++ b/ShiftOS_TheReturn/VirusManager.cs @@ -13,24 +13,27 @@ namespace ShiftOS.Engine public static void Init() { - ActiveInfections = new List<IVirus>(); - if (SaveSystem.CurrentSave.ViralInfections == null) - SaveSystem.CurrentSave.ViralInfections = new List<ViralInfection>(); - foreach(var virusdata in SaveSystem.CurrentSave.ViralInfections) + Desktop.InvokeOnWorkerThread(() => { - var virus = CreateVirus(virusdata.ID, virusdata.ThreatLevel); - var existing = ActiveInfections.FirstOrDefault(x => x.GetType() == virus.GetType()); - if(existing != null) + ActiveInfections = new List<IVirus>(); + if (SaveSystem.CurrentSave.ViralInfections == null) + SaveSystem.CurrentSave.ViralInfections = new List<ViralInfection>(); + foreach (var virusdata in SaveSystem.CurrentSave.ViralInfections) { - var eIndex = ActiveInfections.IndexOf(existing); - ActiveInfections[eIndex] = virus; - existing.Disinfect(); - } - else - { - ActiveInfections.Add(virus); + var virus = CreateVirus(virusdata.ID, virusdata.ThreatLevel); + var existing = ActiveInfections.FirstOrDefault(x => x.GetType() == virus.GetType()); + if (existing != null) + { + var eIndex = ActiveInfections.IndexOf(existing); + ActiveInfections[eIndex] = virus; + existing.Disinfect(); + } + else + { + ActiveInfections.Add(virus); + } } - } + }); } public static void Infect(string id, int threatlevel) @@ -90,9 +93,6 @@ namespace ShiftOS.Engine } } } - { - - } throw new Exception("Cannot create virus."); } |
