diff --git a/Libraries/SPTarkov.DI/Annotations/Injectable.cs b/Libraries/SPTarkov.DI/Annotations/Injectable.cs
index 1017dc43..3b4c7fb9 100644
--- a/Libraries/SPTarkov.DI/Annotations/Injectable.cs
+++ b/Libraries/SPTarkov.DI/Annotations/Injectable.cs
@@ -1,6 +1,9 @@
-namespace SPTarkov.DI.Annotations;
+using JetBrains.Annotations;
+
+namespace SPTarkov.DI.Annotations;
[AttributeUsage(AttributeTargets.Class, Inherited = false)]
+[MeansImplicitUse]
public class Injectable(InjectionType injectionType = InjectionType.Scoped, Type? typeOverride = null, int typePriority = int.MaxValue)
: Attribute
{
diff --git a/Libraries/SPTarkov.DI/SPTarkov.DI.csproj b/Libraries/SPTarkov.DI/SPTarkov.DI.csproj
index 862630b6..bc264fd0 100644
--- a/Libraries/SPTarkov.DI/SPTarkov.DI.csproj
+++ b/Libraries/SPTarkov.DI/SPTarkov.DI.csproj
@@ -15,6 +15,7 @@
true
+
diff --git a/Libraries/SPTarkov.Reflection/Patching/Attributes.cs b/Libraries/SPTarkov.Reflection/Patching/Attributes.cs
index c38dac99..cef98bb1 100644
--- a/Libraries/SPTarkov.Reflection/Patching/Attributes.cs
+++ b/Libraries/SPTarkov.Reflection/Patching/Attributes.cs
@@ -1,18 +1,25 @@
-namespace SPTarkov.Reflection.Patching;
+using JetBrains.Annotations;
+
+namespace SPTarkov.Reflection.Patching;
[AttributeUsage(AttributeTargets.Method)]
+[MeansImplicitUse]
public class PatchPrefixAttribute : Attribute { }
[AttributeUsage(AttributeTargets.Method)]
+[MeansImplicitUse]
public class PatchPostfixAttribute : Attribute { }
[AttributeUsage(AttributeTargets.Method)]
+[MeansImplicitUse]
public class PatchTranspilerAttribute : Attribute { }
[AttributeUsage(AttributeTargets.Method)]
+[MeansImplicitUse]
public class PatchFinalizerAttribute : Attribute { }
[AttributeUsage(AttributeTargets.Method)]
+[MeansImplicitUse]
public class PatchIlManipulatorAttribute : Attribute { }
///
diff --git a/Libraries/SPTarkov.Reflection/SPTarkov.Reflection.csproj b/Libraries/SPTarkov.Reflection/SPTarkov.Reflection.csproj
index 9615c7e4..d9f08b18 100644
--- a/Libraries/SPTarkov.Reflection/SPTarkov.Reflection.csproj
+++ b/Libraries/SPTarkov.Reflection/SPTarkov.Reflection.csproj
@@ -18,6 +18,7 @@
+
diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Globals.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Globals.cs
index 4ca9e157..704fbb77 100644
--- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Globals.cs
+++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Globals.cs
@@ -12,7 +12,7 @@ public record Globals
public required Config Configuration { get; init; }
[JsonPropertyName("LocationInfection")]
- public required LocationInfection LocationInfection { get; init; }
+ public required Dictionary LocationInfection { get; init; }
[JsonPropertyName("bot_presets")]
public required IEnumerable BotPresets { get; init; }
@@ -85,39 +85,6 @@ public record RadioStation
public RadioStationType Station { get; set; }
}
-public record LocationInfection
-{
- [JsonPropertyName("Interchange")]
- public double Interchange { get; set; }
-
- [JsonPropertyName("Lighthouse")]
- public double Lighthouse { get; set; }
-
- [JsonPropertyName("RezervBase")]
- public double RezervBase { get; set; }
-
- [JsonPropertyName("Sandbox")]
- public double Sandbox { get; set; }
-
- [JsonPropertyName("Shoreline")]
- public double Shoreline { get; set; }
-
- [JsonPropertyName("TarkovStreets")]
- public double TarkovStreets { get; set; }
-
- [JsonPropertyName("Woods")]
- public double Woods { get; set; }
-
- [JsonPropertyName("bigmap")]
- public double BigMap { get; set; }
-
- [JsonPropertyName("factory4")]
- public double Factory4 { get; set; }
-
- [JsonPropertyName("laboratory")]
- public double Laboratory { get; set; }
-}
-
public record ArtilleryShelling
{
[JsonPropertyName("ArtilleryMapsConfigs")]
diff --git a/Libraries/SPTarkov.Server.Core/Services/SeasonalEventService.cs b/Libraries/SPTarkov.Server.Core/Services/SeasonalEventService.cs
index acba63b6..3236c6c7 100644
--- a/Libraries/SPTarkov.Server.Core/Services/SeasonalEventService.cs
+++ b/Libraries/SPTarkov.Server.Core/Services/SeasonalEventService.cs
@@ -738,7 +738,7 @@ public class SeasonalEventService(
infectionHalloween.DisplayUIEnabled = true;
infectionHalloween.Enabled = true;
- var globalInfectionDict = globals.LocationInfection.GetAllPropertiesAsDictionary();
+ var globalInfectionDict = globals.LocationInfection;
foreach (var (locationId, infectionPercentage) in zombieSettings.MapInfectionAmount)
{
// calculate a random value unless the rate is 100
@@ -758,7 +758,7 @@ public class SeasonalEventService(
}
// Globals data needs value updated too
- globalInfectionDict[locationId] = randomInfectionPercentage;
+ globalInfectionDict[locationId] = Convert.ToInt32(randomInfectionPercentage);
}
foreach (var locationId in zombieSettings.DisableBosses)