Beispiel #1
0
        public void BrokenLinkAttemptThrowsWarning()
        {
            var reader = new BufferedReader(
                "={\n" +
                "42={ family = 8 }\n" +
                "44={ minor_family = 10 }\n" +                 // no pop 10
                "}\n"
                );
            var countries = new ImperatorToCK3.Imperator.Countries.CountryCollection(reader);

            var reader2 = new BufferedReader(
                "={\n" +
                "8={key=\"Cornelli\" prestige=0 member={ 4479 4480}}\n" +
                "9={key=\"minor_bmb\" prestige=0 minor_family=yes member={ 4479 4480}}\n" +
                "}\n"
                );
            var families = new ImperatorToCK3.Imperator.Families.FamilyCollection();

            families.LoadFamilies(reader2);

            var output = new StringWriter();

            Console.SetOut(output);

            countries.LinkFamilies(families);

            Assert.Contains("[DEBUG] Families without definition: 10", output.ToString());
        }
Beispiel #2
0
        public void CountriesDefaultToEmpty()
        {
            var reader = new BufferedReader(
                "= { }"
                );
            var countries = new ImperatorToCK3.Imperator.Countries.CountryCollection(reader);

            Assert.Empty(countries);
        }
Beispiel #3
0
        public void CountriesCanBeLoaded()
        {
            var reader = new BufferedReader(
                "= {\n" +
                "42={}\n" +
                "43={}\n" +
                "}"
                );
            var countries = new ImperatorToCK3.Imperator.Countries.CountryCollection(reader);

            Assert.Collection(countries,
                              item => Assert.Equal((ulong)42, item.Id),
                              item => Assert.Equal((ulong)43, item.Id));
        }
        public void PreImperatorTermIsCorrectlyConverted()
        {
            var countries     = new ImperatorToCK3.Imperator.Countries.CountryCollection();
            var countryReader = new BufferedReader("= { tag = SPA capital=420 }");
            var sparta        = ImperatorToCK3.Imperator.Countries.Country.Parse(countryReader, 69);

            countries.Add(sparta);

            var preImpTermReader = new BufferedReader("= { name=\"Alexander\"" +
                                                      " birth_date=200.1.1 death_date=300.1.1 throne_date=250.1.1" +
                                                      " nickname=stupid religion=hellenic culture=spartan" +
                                                      " country=SPA }"
                                                      );
            var impRulerTerm = new ImperatorToCK3.Imperator.Countries.RulerTerm(preImpTermReader, countries);

            var govReader      = new BufferedReader("link = {imp=dictatorship ck3=feudal_government }");
            var govMapper      = new GovernmentMapper(govReader);
            var religionMapper = new ReligionMapper(new BufferedReader("link={imp=hellenic ck3=hellenic}"));

            religionMapper.LoadRegionMappers(
                new ImperatorRegionMapper(),
                new CK3RegionMapper()
                );
            var ck3Characters = new ImperatorToCK3.CK3.Characters.CharacterCollection();
            var ck3RulerTerm  = new RulerTerm(impRulerTerm,
                                              ck3Characters,
                                              govMapper,
                                              new LocDB("english"),
                                              religionMapper,
                                              new CultureMapper(new BufferedReader("link = { imp=spartan ck3=greek }")),
                                              new NicknameMapper("TestFiles/configurables/nickname_map.txt"),
                                              new ProvinceMapper()
                                              );

            Assert.Equal("imperatorRegnalSPAAlexander504.1.1BC", ck3RulerTerm.CharacterId);
            Assert.Equal(new Date(250, 1, 1, AUC: true), ck3RulerTerm.StartDate);
            var ruler = ck3RulerTerm.PreImperatorRuler;

            Assert.NotNull(ruler);
            Assert.Equal("Alexander", ruler.Name);

            var ck3Character = ck3Characters["imperatorRegnalSPAAlexander504.1.1BC"];

            Assert.Equal(new Date(0, 1, 1), ck3Character.BirthDate);             // BC dates are not supported by CK3
            Assert.Equal(new Date(0, 1, 30), ck3Character.DeathDate);            // BC dates are not supported by CK3
            Assert.Equal("Alexander", ck3Character.Name);
            Assert.Equal("dull", ck3Character.Nickname);
            Assert.Equal("greek", ck3Character.Culture);
            Assert.Equal("hellenic", ck3Character.Religion);
        }
Beispiel #5
0
        public void FamilyCanBeLinked()
        {
            var reader = new BufferedReader(
                "={42={family=8}}\n"
                );
            var countries = new ImperatorToCK3.Imperator.Countries.CountryCollection(reader);

            var reader2 = new BufferedReader(
                "8={key=\"Cornelli\" prestige=2 member={ 4479 4480}}\n"
                );
            var families = new ImperatorToCK3.Imperator.Families.FamilyCollection();

            families.LoadFamilies(reader2);
            countries.LinkFamilies(families);

            var country = countries[42];
            var family  = country.Families[8];

            Assert.Equal(2, family.Prestige);
        }
Beispiel #6
0
        public void MultipleFamiliesCanBeLinked()
        {
            var reader = new BufferedReader(
                "={\n" +
                "43={ family = 10}\n" +
                "42={family=8}\n" +
                "44={minor_family= 9}\n" +
                "}\n"
                );
            var countries = new ImperatorToCK3.Imperator.Countries.CountryCollection(reader);

            var reader2 = new BufferedReader(
                "={\n" +
                "8={key=\"Cornelli\" prestige=2 member={ 4479 4480} }\n" +
                "9={key=\"minor_bmb\" prestige=69 minor_family=yes member={ 4479 4480} }\n" +
                "10={key=\"minor_rom\" prestige=7 minor_family=yes member={ 69 420} }\n" +
                "}\n"
                );
            var families = new ImperatorToCK3.Imperator.Families.FamilyCollection();

            families.LoadFamilies(reader2);
            countries.LinkFamilies(families);

            var country = countries[42];
            var family  = country.Families[8];

            var country2 = countries[43];
            var family2  = country2.Families[10];

            var country3 = countries[44];
            var family3  = country3.Families[9];

            Assert.Equal(2, family.Prestige);
            Assert.Equal(7, family2.Prestige);
            Assert.Equal(69, family3.Prestige);
        }