Skip to content

Commit e858713

Browse files
committed
fix: skip campaigns with skipped planets
1 parent da1b653 commit e858713

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

src/Helldivers-2-Core/Mapping/V1/CampaignMapper.cs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,25 @@ public class CampaignMapper
1414
public IEnumerable<Campaign> MapToV1(MappingContext context, List<Planet> planets)
1515
{
1616
foreach (var campaign in context.InvariantWarStatus.Campaigns)
17-
yield return MapToV1(campaign, planets);
17+
{
18+
var result = MapToV1(campaign, planets);
19+
20+
if (result is not null)
21+
yield return result;
22+
}
1823
}
1924

2025
/// <summary>
2126
/// Maps ArrowHead's <see cref="Models.ArrowHead.Status.Campaign" /> onto V1's.
2227
/// </summary>
23-
private Campaign MapToV1(Models.ArrowHead.Status.Campaign campaign, List<Planet> planets)
28+
private Campaign? MapToV1(Models.ArrowHead.Status.Campaign campaign, List<Planet> planets)
2429
{
25-
var planet = planets.First(p => p.Index == campaign.PlanetIndex);
30+
var planet = planets.FirstOrDefault(p => p.Index == campaign.PlanetIndex);
2631
Static.Factions.TryGetValue(campaign.Race, out var currentOwner);
2732

33+
if (planet is null)
34+
return null;
35+
2836
return new Campaign(
2937
Id: campaign.Id,
3038
Planet: planet,

src/Helldivers-2-Core/Mapping/V1/PlanetMapper.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public IEnumerable<Planet> MapToV1(MappingContext context)
5050
.ToList();
5151

5252
var (name, sector, biomeKey, environmentals) = planet;
53-
if (string.IsNullOrWhiteSpace(name) || string.IsNullOrWhiteSpace(sector))
53+
if (name is null || string.IsNullOrWhiteSpace(sector))
5454
return null;
5555

5656
Static.Biomes.TryGetValue(biomeKey, out var biome);

0 commit comments

Comments
 (0)