Skip to content

Commit 542a402

Browse files
committed
Handle hegemony rank titles in common/landed_titles
1 parent f5dfccf commit 542a402

File tree

6 files changed

+17
-12
lines changed

6 files changed

+17
-12
lines changed

ImperatorToCK3.UnitTests/CK3/Titles/TitleRankUtilsTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ namespace ImperatorToCK3.UnitTests.CK3.Titles;
66

77
public class TitleRankUtilsTests {
88
[Theory]
9+
[InlineData('h', TitleRank.hegemony)]
910
[InlineData('e', TitleRank.empire)]
1011
[InlineData('k', TitleRank.kingdom)]
1112
[InlineData('d', TitleRank.duchy)]

ImperatorToCK3/CK3/Regexes.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@ namespace ImperatorToCK3.CK3;
55
public static partial class Regexes {
66
public static Regex TitleId => TitleIdRegex();
77

8-
[GeneratedRegex(@"^(e|k|d|c|b)_[A-Za-z0-9_\-\']+$")]
8+
[GeneratedRegex(@"^(h|e|k|d|c|b)_[A-Za-z0-9_\-\']+$")]
99
private static partial Regex TitleIdRegex();
1010
}

ImperatorToCK3/CK3/Titles/Title.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1004,7 +1004,7 @@ public void SetDeFactoLiege(Title? newLiege, Date date) {
10041004
private readonly TitleCollection deJureVassals = [];
10051005
[SerializeOnlyValue] public IReadOnlyTitleCollection DeJureVassals => deJureVassals; // DIRECT de jure vassals
10061006
public Dictionary<string, Title> GetDeJureVassalsAndBelow() {
1007-
return GetDeJureVassalsAndBelow("bcdke");
1007+
return GetDeJureVassalsAndBelow("bcdkeh");
10081008
}
10091009
public Dictionary<string, Title> GetDeJureVassalsAndBelow(string rankFilter) {
10101010
var rankFilterAsArray = rankFilter.ToCharArray();
@@ -1031,7 +1031,7 @@ public Dictionary<string, Title> GetDeFactoVassals(Date date) { // DIRECT de fac
10311031
.ToDictionary(t => t.Id, t => t);
10321032
}
10331033
public Dictionary<string, Title> GetDeFactoVassalsAndBelow(Date date) {
1034-
return GetDeFactoVassalsAndBelow(date, "bcdke");
1034+
return GetDeFactoVassalsAndBelow(date, "bcdkeh");
10351035
}
10361036
public Dictionary<string, Title> GetDeFactoVassalsAndBelow(Date date, string rankFilter) {
10371037
var rankFilterAsArray = rankFilter.ToCharArray();
@@ -1354,6 +1354,7 @@ public static TitleRank GetRankForId(string titleId) {
13541354
'd' => TitleRank.duchy,
13551355
'k' => TitleRank.kingdom,
13561356
'e' => TitleRank.empire,
1357+
'h' => TitleRank.hegemony,
13571358
_ => throw new FormatException($"Title {titleId}: unknown rank!")
13581359
};
13591360
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
namespace ImperatorToCK3.CK3.Titles;
22

3-
public enum TitleRank { barony, county, duchy, kingdom, empire }
3+
public enum TitleRank { barony, county, duchy, kingdom, empire, hegemony }

ImperatorToCK3/CK3/Titles/TitleRankUtils.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@ namespace ImperatorToCK3.CK3.Titles;
55
public static class TitleRankUtils {
66
public static TitleRank CharToTitleRank(char rankChar) {
77
return rankChar switch {
8-
'e' => TitleRank.empire,
9-
'k' => TitleRank.kingdom,
10-
'd' => TitleRank.duchy,
11-
'c' => TitleRank.county,
128
'b' => TitleRank.barony,
9+
'c' => TitleRank.county,
10+
'd' => TitleRank.duchy,
11+
'k' => TitleRank.kingdom,
12+
'e' => TitleRank.empire,
13+
'h' => TitleRank.hegemony,
1314
_ => throw new ArgumentOutOfRangeException(nameof(rankChar), $"Unknown title rank character: {rankChar}")
1415
};
1516
}

ImperatorToCK3/Mappers/TagTitle/TagTitleMapper.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,7 @@ private static TitleRank GetCK3GovernorshipRank(string ck3LiegeTitleId) {
226226
var ck3LiegeRank = Title.GetRankForId(ck3LiegeTitleId);
227227

228228
return ck3LiegeRank switch {
229+
TitleRank.hegemony => TitleRank.kingdom,
229230
TitleRank.empire => TitleRank.kingdom,
230231
TitleRank.kingdom => TitleRank.duchy,
231232
TitleRank.duchy => TitleRank.county,
@@ -271,11 +272,12 @@ private static string GenerateNewTitleId(string imperatorRegion, string imperato
271272

272273
private static string GetTitlePrefixForRank(TitleRank titleRank) {
273274
return titleRank switch {
274-
TitleRank.empire => "e_",
275-
TitleRank.kingdom => "k_",
276-
TitleRank.duchy => "d_",
277-
TitleRank.county => "c_",
278275
TitleRank.barony => "b_",
276+
TitleRank.county => "c_",
277+
TitleRank.duchy => "d_",
278+
TitleRank.kingdom => "k_",
279+
TitleRank.empire => "e_",
280+
TitleRank.hegemony => "h_",
279281
_ => throw new ArgumentOutOfRangeException(nameof(titleRank))
280282
};
281283
}

0 commit comments

Comments
 (0)