Fixed issues with ReplaceBotHostility

This commit is contained in:
Chomp
2025-06-05 15:04:52 +01:00
parent 304adab743
commit 2eb7b798c3
2 changed files with 8 additions and 11 deletions
@@ -510,5 +510,5 @@
"63a898a328e385334e0640a5",
"634959225289190e5e773b3b"
],
"nonMaps": ["base", "develop", "hideout", "privatearea", "suburbs", "terminal", "town"]
"nonMaps": ["Base", "Develop", "Hideout", "PrivateArea", "Suburbs", "Terminal", "Town"]
}
@@ -587,29 +587,26 @@ public class SeasonalEventService(
private void ReplaceBotHostility(Dictionary<string, List<AdditionalHostilitySettings>> hostilitySettings)
{
var locations = _databaseService.GetLocations();
var locations = _databaseService.GetLocations().GetDictionary();
var ignoreList = _locationConfig.NonMaps;
var props = locations.GetType().GetProperties();
foreach (var locationProp in props)
foreach (var (locationName, locationBase) in locations)
{
if (ignoreList.Contains(locationProp.Name))
if (ignoreList.Contains(locationName))
{
continue;
}
var location = (Location) locationProp.GetValue(locations);
if (location?.Base?.BotLocationModifier?.AdditionalHostilitySettings is null)
if (locationBase?.Base?.BotLocationModifier?.AdditionalHostilitySettings is null)
{
continue;
}
// Try to get map 'default' first if it exists
if (!hostilitySettings.TryGetValue("Default", out var newHostilitySettings))
if (!hostilitySettings.TryGetValue("default", out var newHostilitySettings))
{
// No 'default', try for location name
if (!hostilitySettings.TryGetValue(locationProp.Name, out newHostilitySettings))
if (!hostilitySettings.TryGetValue(locationName, out newHostilitySettings))
{
// no settings for map by name, skip map
continue;
@@ -618,7 +615,7 @@ public class SeasonalEventService(
foreach (var settings in newHostilitySettings)
{
var matchingBaseSettings = location.Base.BotLocationModifier.AdditionalHostilitySettings.FirstOrDefault(x => x.BotRole == settings.BotRole);
var matchingBaseSettings = locationBase.Base.BotLocationModifier.AdditionalHostilitySettings.FirstOrDefault(x => x.BotRole == settings.BotRole);
if (matchingBaseSettings is null)
{
continue;