Skip to content

Commit

Permalink
Stellaris 3.6 support
Browse files Browse the repository at this point in the history
  • Loading branch information
bcssov committed Oct 14, 2022
1 parent 6da1d52 commit ff92452
Show file tree
Hide file tree
Showing 5 changed files with 66 additions and 8 deletions.
34 changes: 32 additions & 2 deletions References/CopyAll/Maps/StellarisParserMap.json
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,9 @@
}, {
"DirectoryPath": "common\\ethics",
"PreferredParser": "StellarisOverwrittenObjectSingleFileParser"
}, {
"DirectoryPath": "common\\ethic_categories",
"PreferredParser": "DefaultParser"
}, {
"DirectoryPath": "common\\event_chains",
"PreferredParser": "DefaultParser"
Expand Down Expand Up @@ -217,6 +220,12 @@
}, {
"DirectoryPath": "common\\inline_scripts\\jobs",
"PreferredParser": "StellarisWholeTextParser"
}, {
"DirectoryPath": "common\\inline_scripts\\pop_categories",
"PreferredParser": "StellarisWholeTextParser"
}, {
"DirectoryPath": "common\\inline_scripts\\traits",
"PreferredParser": "StellarisWholeTextParser"
}, {
"DirectoryPath": "common\\intel_categories",
"PreferredParser": "DefaultParser"
Expand Down Expand Up @@ -356,8 +365,29 @@
"DirectoryPath": "common\\species_names",
"PreferredParser": "StellarisWholeTextParser"
}, {
"DirectoryPath": "common\\species_rights",
"PreferredParser": "DefaultParser"
"DirectoryPath": "common\\species_rights\\citizenship_types",
"PreferredParser": "StellarisOverwrittenParser"
}, {
"DirectoryPath": "common\\species_rights\\colonization_controls",
"PreferredParser": "StellarisOverwrittenParser"
}, {
"DirectoryPath": "common\\species_rights\\living_standards",
"PreferredParser": "StellarisOverwrittenParser"
}, {
"DirectoryPath": "common\\species_rights\\migration_controls",
"PreferredParser": "StellarisOverwrittenParser"
}, {
"DirectoryPath": "common\\species_rights\\military_service_types",
"PreferredParser": "StellarisOverwrittenParser"
}, {
"DirectoryPath": "common\\species_rights\\population_controls",
"PreferredParser": "StellarisOverwrittenParser"
}, {
"DirectoryPath": "common\\species_rights\\purge_types",
"PreferredParser": "StellarisOverwrittenParser"
}, {
"DirectoryPath": "common\\species_rights\\slavery_types",
"PreferredParser": "StellarisOverwrittenParser"
}, {
"DirectoryPath": "common\\starbase_buildings",
"PreferredParser": "DefaultParser"
Expand Down
7 changes: 6 additions & 1 deletion src/IronyModManager.Parser.Common/Constants.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
// Created : 02-16-2020
//
// Last Modified By : Mario
// Last Modified On : 09-27-2022
// Last Modified On : 10-14-2022
// ***********************************************************************
// <copyright file="Constants.cs" company="Mario">
// Mario
Expand Down Expand Up @@ -664,6 +664,11 @@ public static class Stellaris
/// </summary>
public static readonly string SpeciesNames = MergePath(CommonPath, "species_names");

/// <summary>
/// The species rights
/// </summary>
public static readonly string SpeciesRights = MergePath(CommonPath, "species_rights");

/// <summary>
/// The starbase modules
/// </summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
// Created : 05-25-2020
//
// Last Modified By : Mario
// Last Modified On : 10-25-2021
// Last Modified On : 10-14-2022
// ***********************************************************************
// <copyright file="StellarisOverwrittenParserTests.cs" company="Mario">
// Mario
Expand Down Expand Up @@ -272,6 +272,21 @@ public void CanParse_opinion_modifiers_should_be_true()
parser.CanParse(args).Should().BeTrue();
}

/// <summary>
/// Defines the test method CanParse_species_rights_should_be_true.
/// </summary>
[Fact]
public void CanParse_species_rights_should_be_true()
{
var args = new CanParseArgs()
{
File = "common\\species_rights\\test\\test.txt",
GameType = "Stellaris"
};
var parser = new OverwrittenParser(new CodeParser(new Logger()), null);
parser.CanParse(args).Should().BeTrue();
}

/// <summary>
/// Defines the test method Parse_should_yield_results.
/// </summary>
Expand Down
12 changes: 10 additions & 2 deletions src/IronyModManager.Parser/Games/Stellaris/OverwrittenParser.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
// Created : 05-25-2020
//
// Last Modified By : Mario
// Last Modified On : 10-31-2021
// Last Modified On : 10-14-2022
// ***********************************************************************
// <copyright file="OverwrittenParser.cs" company="Mario">
// Mario
Expand Down Expand Up @@ -49,6 +49,14 @@ public class OverwrittenParser : BaseParser, IGameParser
Common.Constants.Stellaris.SectionTemplates
};

/// <summary>
/// The partial directory names
/// </summary>
private static readonly string[] partialDirectoryNames = new string[]
{
Common.Constants.Stellaris.SpeciesRights
};

/// <summary>
/// The key type
/// </summary>
Expand Down Expand Up @@ -140,7 +148,7 @@ public override IEnumerable<IDefinition> Parse(ParserArgs args)
protected virtual bool CanParseStartsWith(CanParseArgs args)
{
var directoryName = System.IO.Path.GetDirectoryName(args.File);
return directoryNames.Any(s => directoryName.Equals(s, StringComparison.OrdinalIgnoreCase));
return directoryNames.Any(s => directoryName.Equals(s, StringComparison.OrdinalIgnoreCase)) || partialDirectoryNames.Any(s => directoryName.StartsWith(s, StringComparison.OrdinalIgnoreCase));
}

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
// Created : 02-12-2020
//
// Last Modified By : Mario
// Last Modified On : 08-20-2022
// Last Modified On : 10-14-2022
// ***********************************************************************
// <copyright file="GameRegistration.cs" company="Mario">
// Mario
Expand Down Expand Up @@ -234,7 +234,7 @@ private IGameType GetStellaris(string baseUserDir)
game.AdvancedFeatures = IronyModManager.Models.Common.GameAdvancedFeatures.Full;
game.ParadoxGameId = Shared.Constants.GamesTypes.Stellaris.ParadoxGameId;
game.GogAppId = Shared.Constants.GamesTypes.Stellaris.GogId;
game.GameIndexCacheVersion = 8;
game.GameIndexCacheVersion = 9;
MapGameSettings(game, GetExecutableSettings(game));
return game;
}
Expand Down

0 comments on commit ff92452

Please sign in to comment.