コード例 #1
1
        public CulturalDna GetVanillaCulture(CulturalDna not)
        {
            String culture = dnaTypes[Rand.Next(dnaTypes.Count)];

            while (this.dna[culture] == not)
            {
                culture = dnaTypes[Rand.Next(dnaTypes.Count)];
            }
            return(this.dna[culture]);;
        }
コード例 #2
0
        public CulturalDna GetVanillaCulture(CulturalDna not)
        {
            String culture = dnaTypes[Rand.Next(dnaTypes.Count)];

            while (this.dna[culture] == not)
            {
                culture = dnaTypes[Rand.Next(dnaTypes.Count)];
            }
            return this.dna[culture]; ;
        }
コード例 #3
0
ファイル: CultureManager.cs プロジェクト: worriedfish/ck2gen
        public void LoadVanilla()
        {
            SaveCultures = false;
            var files = ModManager.instance.GetFileKeys("common\\cultures");

            foreach (var file in files)
            {
                Script s = ScriptLoader.instance.LoadKey(file);
                foreach (var rootChild in s.Root.Children)
                {
                    CultureGroupParser p = new CultureGroupParser(rootChild as ScriptScope);

                    AllCultureGroups.Add(p);
                    CultureGroupMap[p.Name] = p;
                    foreach (var scopeChild in p.Scope.Children)
                    {
                        if (scopeChild is ScriptScope)
                        {
                            var sc = scopeChild as ScriptScope;

                            if (sc.Name == "graphical_cultures")
                            {
                                continue;
                            }

                            CultureParser r = new CultureParser(sc, p);
                            AllCultures.Add(r);
                            CultureMap[r.Name] = r;
                            p.Cultures.Add(r);
                            r.Group        = p;
                            r.LanguageName = LanguageManager.instance.Get(r.Name);
                            CulturalDna dna = new CulturalDna();
                            foreach (var scope in r.Scope.Scopes)
                            {
                                if (scope.Name == "male_names" || scope.Name == "female_names")
                                {
                                    String[] male_names = scope.Data.Split(new[] { ' ', '_', '\t' });
                                    foreach (var maleName in male_names)
                                    {
                                        var mName = maleName.Trim();
                                        if (mName.Length > 0)
                                        {
                                            dna.Cannibalize(mName);
                                        }
                                    }
                                }
                            }

                            r.dna = dna;
                        }
                    }
                }
            }
        }
コード例 #4
0
        public CulturalDna GetNewFromVanillaCulture(String culture = null)
        {
            if (culture == null)
            {
                culture = dnaTypes[Rand.Next(dnaTypes.Count)];
            }
            CulturalDna dna = this.dna[culture];

            dna.culture = null;
            CulturalDna dna2 = dna.Mutate(256);

            dna2.DoRandom();
            return(dna2);
        }
コード例 #5
0
        public void Init()
        {
         
            Script s = ScriptLoader.instance.Load(Globals.GameDir+"common\\cultures\\00_cultures.txt");
            foreach (var child in s.Root.Children)
            {
                if (child is ScriptScope)
                {
                    ScriptScope cc = (ScriptScope) child;

                    foreach (var scriptScope in cc.Scopes)
                    {
                        if (scriptScope.Name == "graphical_cultures")
                            continue;

                        CulturalDna dna = new CulturalDna();
                        foreach (var scope in scriptScope.Scopes)
                        {
                            if (scope.Name == "male_names" || scope.Name == "female_names")
                            {
                              
                                String[] male_names = scope.Data.Split(new []{' ', '_', '\t'});
                                foreach (var maleName in male_names)
                                {
                                    var mName = maleName.Trim();
                                    if (mName.Length > 0)
                                        dna.Cannibalize(mName);

                                }

                            }
                           
                        }

                        this.dna[scriptScope.Name] = dna;
                        dnaTypes.Add(scriptScope.Name);
                       
                        {
                            
                        }
                       
                        dna.Name = scriptScope.Name;
                        dna.ShortenWordCounts();
                    }

                
                }
            }
        }
コード例 #6
0
        public void Init()
        {
            Script s = ScriptLoader.instance.Load(Globals.GameDir + "common\\cultures\\00_cultures.txt");

            foreach (var child in s.Root.Children)
            {
                if (child is ScriptScope)
                {
                    ScriptScope cc = (ScriptScope)child;

                    foreach (var scriptScope in cc.Scopes)
                    {
                        if (scriptScope.Name == "graphical_cultures")
                        {
                            continue;
                        }

                        CulturalDna dna = new CulturalDna();
                        foreach (var scope in scriptScope.Scopes)
                        {
                            if (scope.Name == "male_names" || scope.Name == "female_names")
                            {
                                String[] male_names = scope.Data.Split(new [] { ' ', '_', '\t' });
                                foreach (var maleName in male_names)
                                {
                                    var mName = maleName.Trim();
                                    if (mName.Length > 0)
                                    {
                                        dna.Cannibalize(mName);
                                    }
                                }
                            }
                        }

                        this.dna[scriptScope.Name] = dna;
                        dnaTypes.Add(scriptScope.Name);

                        {
                        }

                        dna.Name = scriptScope.Name;
                        dna.ShortenWordCounts();
                    }
                }
            }
        }
コード例 #7
0
ファイル: CulturalDna.cs プロジェクト: worriedfish/ck2gen
        public CulturalDna Mutate(int numChanges, CultureParser rel)
        {
            this.culture = rel;
            var c = new CulturalDna();

            c.empTitle   = empTitle;
            c.kingTitle  = kingTitle;
            c.dukeTitle  = dukeTitle;
            c.countTitle = countTitle;
            c.baronTitle = baronTitle;
            c.mayorTitle = mayorTitle;

            c.tribal = tribal;
            c.wordsForLand.AddRange(wordsForLand);
            //c.cons.AddRange(cons);
            //   c.vowels.AddRange(vowels);
            c.CommonStartNames.AddRange(CommonStartNames);
            c.CommonMiddleNames.AddRange(CommonMiddleNames);
            c.CommonEndNames.AddRange(CommonEndNames);
            c.WordFormats.AddRange(CommonWordFormats);
            c.portraitPool.AddRange(portraitPool);
            c.placeFormat = placeFormat;
            c.firstLetters.AddRange(firstLetters);
            c.wordLengthBias          = wordLengthBias;
            c.from_dynasty_prefix     = from_dynasty_prefix;
            c.count_titles_hidden     = count_titles_hidden;
            c.baron_titles_hidden     = baron_titles_hidden;
            c.allow_looting           = allow_looting;
            c.female_patronym         = female_patronym;
            c.male_patronym           = male_patronym;
            c.founder_named_dynasties = founder_named_dynasties;
            c.dynasty_title_names     = dynasty_title_names;
            c.horde    = horde;
            c.culture  = culture;
            c.seafarer = seafarer;
            for (int n = 0; n < numChanges; n++)
            {
                c.DoRandomChange(rel);
            }



            return(c);
        }
コード例 #8
0
        private int AddRandomMiddleNames(int count)
        {
            int         c   = count;
            CulturalDna dna = CulturalDnaManager.instance.GetVanillaCulture((string)null);

            if (dna.CommonMiddleNames.Count == 0)
            {
                return(0);
            }
            List <String> choices = new List <string>();
            int           added   = 0;

            for (int n = 0; n < c; n++)
            {
                String str = dna.CommonMiddleNames[Rand.Next(dna.CommonMiddleNames.Count)];
                if (CommonMiddleNames.Contains(str))
                {
                }
                else
                {
                    choices.Add(str);
                }
            }


            if (choices.Count > 0)
            {
                c = Math.Min(choices.Count, c);
                for (int n = 0; n < c; n++)
                {
                    var cc = choices[Rand.Next(choices.Count)];
                    CommonMiddleNames.Add(cc);
                    choices.Remove(cc);
                    n--;
                    c = Math.Min(choices.Count, c);
                    added++;
                }
            }


            return(added);
        }
コード例 #9
0
ファイル: CulturalDna.cs プロジェクト: rquinio/ck2storygen
        public CulturalDna MutateSmall(int numChanges)
        {
            var c = new CulturalDna();

            c.empTitle = empTitle;
            c.kingTitle = kingTitle;
            c.dukeTitle = dukeTitle;
            c.countTitle = countTitle;
            c.baronTitle = baronTitle;
            c.mayorTitle = mayorTitle;
 
            c.tribal = tribal;
            c.wordsForLand.AddRange(wordsForLand);
            //c.cons.AddRange(cons);
            c.WordFormats.AddRange(CommonWordFormats);
          //  c.vowels.Clear();
            //c.vowels.AddRange(vowels);
            c.CommonStartNames.AddRange(CommonStartNames);
            c.CommonMiddleNames.AddRange(CommonMiddleNames);
            c.CommonEndNames.AddRange(CommonEndNames);
            c.portraitPool.AddRange(portraitPool);
            c.placeFormat = placeFormat;
            c.firstLetters.AddRange(firstLetters);
            c.wordLengthBias = wordLengthBias;
            c.from_dynasty_prefix = from_dynasty_prefix;
            c.count_titles_hidden = count_titles_hidden;
            c.baron_titles_hidden = baron_titles_hidden;
            c.allow_looting = allow_looting;
            c.female_patronym = female_patronym;
            c.male_patronym = male_patronym;
            c.founder_named_dynasties = founder_named_dynasties;
            c.dynasty_title_names = dynasty_title_names;
            c.horde = horde;
            c.culture = culture;
            for (int n = 0; n < numChanges; n++)
            {
                c.DoRandomSmallChange();
            }

            return c;
        }
コード例 #10
0
        public void CreateRandomReligion(ReligionGroupParser group)
        {
            String      culture = "";
            CulturalDna dna     = null;

            if (this.capital == null)
            {
                dna = CulturalDnaManager.instance.GetVanillaCulture((string)null);
            }
            else
            {
                culture = capital.Title.Holder.culture;
                dna     = CultureManager.instance.CultureMap[culture].dna;
            }
            RandomReligionProperties();
            //     Modern = true;
            int    r      = Rand.Next(255);
            int    g      = Rand.Next(255);
            int    b      = Rand.Next(255);
            string god    = dna.GetGodName();
            string devil  = dna.GetPlaceName();
            string priest = dna.GetPlaceName();

            this.priest   = priest;
            high_god_name = dna.GetGodName();
            string scripture_name = dna.GetPlaceName();
            string crusade_name   = dna.GetPlaceName();

            this.high_god_name = god;

            this.devil          = devil;
            this.priest         = priest;
            this.scripture_name = scripture_name;
            this.crusade_name   = crusade_name;
            if (Name == "sanappa")
            {
                int gfdgdf = 0;
            }
            DoReligionScope(god, devil, priest, scripture_name, crusade_name, dna, r, g, b);
        }
コード例 #11
0
ファイル: ReligionParser.cs プロジェクト: sedyer/ck2gen
        public void CreateNewReligion()
        {
            String culture = "";

            CulturalDna dna = null;

            if (Capitol == null)
            {
                dna = CulturalDnaManager.instance.GetVanillaCulture((string)null);
            }

            else
            {
                culture = Capitol.Title.Holder.culture;

                dna = CultureManager.instance.CultureMap[culture].dna;
            }

            NewReligionProperties();

            int r = Rand.Next(255);
            int g = Rand.Next(255);
            int b = Rand.Next(255);

            string god            = dna.GetGodName();
            string devil          = dna.GetPlaceName();
            string priest         = dna.GetPlaceName();
            string scripture_name = dna.GetPlaceName();
            string crusade_name   = dna.GetPlaceName();

            high_god_name = god;

            this.devil          = devil;
            this.priest         = priest;
            this.scripture_name = scripture_name;
            this.crusade_name   = crusade_name;

            DoReligionScope(god, devil, priest, scripture_name, crusade_name, dna, r, g, b);
        }
コード例 #12
0
        public void Mutate(ReligionParser rel, CultureParser culture, int nChanges)
        {
            this.dna = culture.dna;
            this.ai_convert_other_group = rel.ai_convert_other_group;

            this.max_consorts              = rel.max_consorts;
            this.max_wives                 = rel.max_wives;
            this.religious_clothing_head   = rel.religious_clothing_head;
            this.religious_clothing_priest = rel.religious_clothing_priest;
            this.allow_looting             = rel.allow_looting;
            this.allow_rivermovement       = rel.allow_rivermovement;
            this.allow_viking_invasion     = rel.allow_viking_invasion;
            this.autocephaly               = rel.autocephaly;
            this.bs_marriage               = rel.bs_marriage;
            this.can_call_crusade          = rel.can_call_crusade;
            this.can_excommunicate         = rel.can_excommunicate;
            this.can_grant_claim           = rel.can_grant_claim;
            this.can_grant_divorce         = rel.can_grant_divorce;
            this.can_have_antipopes        = rel.can_have_antipopes;
            this.can_hold_temples          = rel.can_hold_temples;
            this.can_retire_to_monastery   = rel.can_retire_to_monastery;
            this.divine_blood              = rel.divine_blood;
            this.female_temple_holders     = rel.female_temple_holders;
            this.hasLeader                 = rel.hasLeader;
            this.has_heir_designation      = rel.has_heir_designation;
            this.investiture               = rel.investiture;
            this.matrilineal_marriages     = rel.matrilineal_marriages;
            this.pacifist            = rel.pacifist;
            this.pc_marriage         = rel.pc_marriage;
            this.peace_prestige_loss = rel.peace_prestige_loss;
            this.polytheism          = rel.polytheism;
            this.priests_can_inherit = rel.priests_can_inherit;
            this.psc_marriage        = rel.psc_marriage;

            high_god_name = rel.high_god_name;
            devil         = rel.devil;
            priest        = rel.priest;

            gods.AddRange(rel.gods);


            int r = Rand.Next(255);
            int g = Rand.Next(255);
            int b = Rand.Next(255);

            r = rel.r;
            g = rel.g;
            b = rel.b;
            switch (Rand.Next(3))
            {
            case 0:
                r += Rand.Next(-45, 45);
                g += Rand.Next(-25, 25);
                b += Rand.Next(-15, 15);

                break;

            case 1:
                g += Rand.Next(-45, 45);
                r += Rand.Next(-25, 25);
                b += Rand.Next(-15, 15);

                break;

            case 2:
                b += Rand.Next(-45, 45);
                g += Rand.Next(-25, 25);
                r += Rand.Next(-15, 15);

                break;
            }
            if (r > 255)
            {
                r = 255;
            }
            if (g > 255)
            {
                g = 255;
            }
            if (b > 255)
            {
                b = 255;
            }

            if (r < 0)
            {
                r = 0;
            }
            if (g < 0)
            {
                g = 0;
            }
            if (b < 0)
            {
                b = 0;
            }

            for (int n = 0; n < nChanges; n++)
            {
                MakeChange();
            }

            DoReligionScope(high_god_name, devil, priest, scripture_name, crusade_name, culture.dna, r, g, b);
        }
コード例 #13
0
        private void DoReligionScope(string god, string devil, string priest, string scripture_name, string crusade_name,
                                     CulturalDna dna, int r, int g, int b)
        {
            string safegod            = StarNames.SafeName(god);
            string safedevil          = StarNames.SafeName(devil);
            string safepriest         = StarNames.SafeName(priest);
            string safehigh_god_name  = StarNames.SafeName(high_god_name);
            string safescripture_name = StarNames.SafeName(scripture_name);
            string safecrusade_name   = StarNames.SafeName(crusade_name);
            String desc = "";

            if (!polytheism)
            {
                desc = "All praise the almighty " + high_god_name + "!";
            }
            else
            {
                desc = "The Gods smile upon you.";
            }

            LanguageManager.instance.Add(this.Name + "_DESC", desc);

            LanguageManager.instance.Add(safegod, god);
            LanguageManager.instance.Add(safedevil, devil);
            LanguageManager.instance.Add(safepriest, priest);
            LanguageManager.instance.Add(safehigh_god_name, high_god_name);
            LanguageManager.instance.Add(safescripture_name, scripture_name);
            LanguageManager.instance.Add(safecrusade_name, crusade_name);

            this.r = r;
            this.g = g;
            this.b = b;

            String gods = "";
            {
                for (int n = 0; n < 10; n++)
                {
                    string go = dna.GetGodName();
                    var    sg = StarNames.SafeName(go);
                    LanguageManager.instance.Add(sg, go);

                    this.gods.Add(sg);
                    gods += sg + " ";
                }
            }

            String egods = "";

            for (int n = 0; n < 5; n++)
            {
                string go = dna.GetGodName();
                var    sg = StarNames.SafeName(go);
                LanguageManager.instance.Add(sg, go);
                this.evilgods.Add(sg);

                egods += sg + " ";
            }


            if (!polytheism)
            {
                gods  = safegod;
                egods = safedevil;
            }
            else
            {
                gods = safehigh_god_name + " " + gods;
            }


            if (max_wives > 1 && max_consorts > 0)
            {
                max_consorts = 0;
            }

            Scope.Do(@"

	            graphical_culture = westerngfx

		            icon = "         + icon + @"
		            heresy_icon = "         + heresy_icon + @"
		         
		            ai_convert_other_group = "         + ai_convert_other_group + @" # always try to convert
	
		            color = { "         + r + " " + g + " " + b + @" }
		
		            crusade_name = "         + safecrusade_name + @"
		            scripture_name = "         + safescripture_name + @"
		            priest_title = "         + safepriest + @"
		
		            high_god_name = "         + safehigh_god_name + @"
		
		            god_names = {
			            "             + gods + @"
		            }
		
		            evil_god_names = {
			           "             + egods + @"
		            }
		
		            investiture = "         + (investiture ? "yes" : "no") + @"
		            can_have_antipopes  = "         + (can_have_antipopes ? "yes" : "no") + @"
		            can_excommunicate  = "         + (can_excommunicate ? "yes" : "no") + @"
		            can_grant_divorce  = "         + (can_grant_divorce ? "yes" : "no") + @"
		            can_grant_claim  = "         + (can_grant_claim ? "yes" : "no") + @"
		            can_call_crusade  = "         + (can_call_crusade ? "yes" : "no") + @"
		            can_retire_to_monastery  = "         + (can_retire_to_monastery ? "yes" : "no") + @"
		            priests_can_inherit  = "         + (priests_can_inherit ? "yes" : "no") + @"
		            can_hold_temples  = "         + (can_hold_temples ? "yes" : "no") + @"
		            pacifist  = "         + (pacifist ? "yes" : "no") + @"
		           
                    bs_marriage  = " + (bs_marriage ? "yes" : "no") + @"
		            pc_marriage  = "         + (pc_marriage ? "yes" : "no") + @"
		            psc_marriage  = "         + (psc_marriage ? "yes" : "no") + @"
		            cousin_marriage  = "         + (psc_marriage ? "yes" : "no") + @"
		            matrilineal_marriages  = "         + (matrilineal_marriages ? "yes" : "no") + @"
		            allow_viking_invasion  = "         + (allow_viking_invasion ? "yes" : "no") + @"
		            allow_looting  = "         + (allow_looting ? "yes" : "no") + @"
		            allow_rivermovement  = "         + (allow_rivermovement ? "yes" : "no") + @"
		            female_temple_holders  = "         + (female_temple_holders ? "yes" : "no") + @"
		            autocephaly  = "         + (autocephaly ? "yes" : "no") + @"
		            divine_blood  = "         + (divine_blood ? "yes" : "no") + @"
		            has_heir_designation  = "         + (has_heir_designation ? "yes" : "no") + @"
		            peace_prestige_loss  = "         + (peace_prestige_loss ? "yes" : "no") + @"
		         
		            "         + (max_consorts > 0 ? ("max_consorts = " + max_consorts.ToString()) : "") + @"
		
                    max_wives  = " + max_wives + @"
		            uses_decadence = "         + (uses_decadence ? "yes" : "no") + @"
                    uses_jizya_tax = " + (uses_jizya_tax ? "yes" : "no") + @"
          
                    can_grant_invasion_cb = invasion
		            
		            religious_clothing_head = "         + religious_clothing_head + @"
		            religious_clothing_priest = "         + religious_clothing_priest + @"
");
        }
コード例 #14
0
ファイル: ReligionParser.cs プロジェクト: rquinio/ck2storygen
        public void Mutate(ReligionParser rel, CultureParser culture, int nChanges)
        {
            this.dna = culture.dna;
            this.ai_convert_other_group = rel.ai_convert_other_group;
            
            this.max_consorts = rel.max_consorts;
            this.max_wives = rel.max_wives;
            this.religious_clothing_head = rel.religious_clothing_head;
            this.religious_clothing_priest = rel.religious_clothing_priest;
            this.allow_looting = rel.allow_looting;
            this.allow_rivermovement = rel.allow_rivermovement;
            this.allow_viking_invasion = rel.allow_viking_invasion;
            this.autocephaly = rel.autocephaly;
            this.bs_marriage = rel.bs_marriage;
            this.can_call_crusade = rel.can_call_crusade;
            this.can_excommunicate = rel.can_excommunicate;
            this.can_grant_claim = rel.can_grant_claim;
            this.can_grant_divorce = rel.can_grant_divorce;
            this.can_have_antipopes = rel.can_have_antipopes;
            this.can_hold_temples = rel.can_hold_temples;
            this.can_retire_to_monastery = rel.can_retire_to_monastery;
            this.divine_blood = rel.divine_blood;
            this.female_temple_holders = rel.female_temple_holders;
            this.hasLeader = rel.hasLeader;
            this.has_heir_designation = rel.has_heir_designation;
            this.investiture = rel.investiture;
            this.matrilineal_marriages = rel.matrilineal_marriages;
            this.pacifist = rel.pacifist;
            this.pc_marriage = rel.pc_marriage;
            this.peace_prestige_loss = rel.peace_prestige_loss;
            this.polytheism = rel.polytheism;
            this.priests_can_inherit = rel.priests_can_inherit;
            this.psc_marriage = rel.psc_marriage;

            high_god_name = rel.high_god_name;
            devil = rel.devil;
            priest = rel.priest;

            gods.AddRange(rel.gods);


            int r = Rand.Next(255);
            int g = Rand.Next(255);
            int b = Rand.Next(255);

            r = rel.r;
            g = rel.g;
            b = rel.b;
            switch (Rand.Next(3))
            {
                case 0:
                    r += Rand.Next(-45, 45);
                    g += Rand.Next(-25, 25);
                    b += Rand.Next(-15, 15);

                    break;
                case 1:
                    g += Rand.Next(-45, 45);
                    r += Rand.Next(-25, 25);
                    b += Rand.Next(-15, 15);

                    break;
                case 2:
                    b += Rand.Next(-45, 45);
                    g += Rand.Next(-25, 25);
                    r += Rand.Next(-15, 15);

                    break;
            }
            if (r > 255)
                r = 255;
            if (g > 255)
                g = 255;
            if (b > 255)
                b = 255;

            if (r < 0)
                r = 0;
            if (g < 0)
                g = 0;
            if (b < 0)
                b = 0;

            for(int n=0;n<nChanges;n++)
                MakeChange();

            DoReligionScope(high_god_name, devil, priest, scripture_name, crusade_name, culture.dna, r, g, b);

        }
コード例 #15
0
ファイル: ReligionParser.cs プロジェクト: rquinio/ck2storygen
        private void DoReligionScope(string god, string devil, string priest, string scripture_name, string crusade_name,
            CulturalDna dna, int r, int g, int b)
        {
            string safegod = StarNames.SafeName(god);
            string safedevil = StarNames.SafeName(devil);
            string safepriest = StarNames.SafeName(priest);
            string safehigh_god_name = StarNames.SafeName(high_god_name);
            string safescripture_name = StarNames.SafeName(scripture_name);
            string safecrusade_name = StarNames.SafeName(crusade_name);
            String desc = "";

            if (!polytheism)
                desc = "All praise the almighty " + high_god_name + "!";
            else
                desc = "The Gods smile upon you.";

            LanguageManager.instance.Add(this.Name + "_DESC", desc);

            LanguageManager.instance.Add(safegod, god);
            LanguageManager.instance.Add(safedevil, devil);
            LanguageManager.instance.Add(safepriest, priest);
            LanguageManager.instance.Add(safehigh_god_name, high_god_name);
            LanguageManager.instance.Add(safescripture_name, scripture_name);
            LanguageManager.instance.Add(safecrusade_name, crusade_name);

            this.r = r;
            this.g = g;
            this.b = b;

            String gods = "";
            {
                for (int n = 0; n < 10; n++)
                {
                    string go = dna.GetGodName();
                    var sg = StarNames.SafeName(go);
                    LanguageManager.instance.Add(sg, go);

                    this.gods.Add(sg);
                    gods += sg + " ";
                }
            }

            String egods = "";

            for (int n = 0; n < 5; n++)
            {
                string go = dna.GetGodName();
                var sg = StarNames.SafeName(go);
                LanguageManager.instance.Add(sg, go);
                this.evilgods.Add(sg);

                egods += sg + " ";
            }


            if (!polytheism)
            {
                gods = safegod;
                egods = safedevil;
            }
            else
            {
                gods = safehigh_god_name + " " + gods;
            }


            if (max_wives > 1 && max_consorts > 0)
                max_consorts = 0;

            Scope.Do(@"

	            graphical_culture = westerngfx

		            icon = " + icon + @"
		            heresy_icon = " + heresy_icon + @"
		         
		            ai_convert_other_group = " + ai_convert_other_group + @" # always try to convert
	
		            color = { " + r + " " + g + " " + b + @" }
		
		            crusade_name = " + safecrusade_name + @"
		            scripture_name = " + safescripture_name + @"
		            priest_title = " + safepriest + @"
		
		            high_god_name = " + safehigh_god_name + @"
		
		            god_names = {
			            " + gods + @"
		            }
		
		            evil_god_names = {
			           " + egods + @"
		            }
		
		            investiture = " + (investiture ? "yes" : "no") + @"
		            can_have_antipopes  = " + (can_have_antipopes ? "yes" : "no") + @"
		            can_excommunicate  = " + (can_excommunicate ? "yes" : "no") + @"
		            can_grant_divorce  = " + (can_grant_divorce ? "yes" : "no") + @"
		            can_grant_claim  = " + (can_grant_claim ? "yes" : "no") + @"
		            can_call_crusade  = " + (can_call_crusade ? "yes" : "no") + @"
		            can_retire_to_monastery  = " + (can_retire_to_monastery ? "yes" : "no") + @"
		            priests_can_inherit  = " + (priests_can_inherit ? "yes" : "no") + @"
		            can_hold_temples  = " + (can_hold_temples ? "yes" : "no") + @"
		            pacifist  = " + (pacifist ? "yes" : "no") + @"
		           
                    bs_marriage  = " + (bs_marriage ? "yes" : "no") + @"
		            pc_marriage  = " + (pc_marriage ? "yes" : "no") + @"
		            psc_marriage  = " + (psc_marriage ? "yes" : "no") + @"
		            cousin_marriage  = " + (psc_marriage ? "yes" : "no") + @"
		            matrilineal_marriages  = " + (matrilineal_marriages ? "yes" : "no") + @"
		            allow_viking_invasion  = " + (allow_viking_invasion ? "yes" : "no") + @"
		            allow_looting  = " + (allow_looting ? "yes" : "no") + @"
		            allow_rivermovement  = " + (allow_rivermovement ? "yes" : "no") + @"
		            female_temple_holders  = " + (female_temple_holders ? "yes" : "no") + @"
		            autocephaly  = " + (autocephaly ? "yes" : "no") + @"
		            divine_blood  = " + (divine_blood ? "yes" : "no") + @"
		            has_heir_designation  = " + (has_heir_designation ? "yes" : "no") + @"
		            peace_prestige_loss  = " + (peace_prestige_loss ? "yes" : "no") + @"
		         
		            " + (max_consorts > 0 ? ("max_consorts = " + max_consorts.ToString()) : "") + @"
		
                    max_wives  = " + max_wives + @"
		            uses_decadence = " + (uses_decadence ? "yes" : "no") + @"
                    uses_jizya_tax = " + (uses_jizya_tax ? "yes" : "no") + @"
          
                    can_grant_invasion_cb = invasion
		            
		            religious_clothing_head = " + religious_clothing_head + @"
		            religious_clothing_priest = " + religious_clothing_priest + @"
");
        }
コード例 #16
0
ファイル: ReligionParser.cs プロジェクト: sedyer/ck2gen
        private void DoReligionScope(string god, string devil, string priest, string scripture_name, string crusade_name, CulturalDna dna, int r, int g, int b, bool bNew = true)
        {
            string safegod            = StarNames.SafeName(god);
            string safedevil          = StarNames.SafeName(devil);
            string safepriest         = StarNames.SafeName(priest);
            string safehigh_god_name  = StarNames.SafeName(high_god_name);
            string safescripture_name = StarNames.SafeName(scripture_name);
            string safecrusade_name   = StarNames.SafeName(crusade_name);

            String desc = "";

            this.god            = god;
            this.devil          = devil;
            this.scripture_name = scripture_name;

            if (!polytheism)
            {
                desc = "All praise the almighty " + high_god_name + "!";
            }
            else
            {
                desc = "The Gods smile upon you.";
            }

            LanguageManager.instance.Add(Name + "_DESC", desc);
            LanguageManager.instance.Add(safegod, god);
            LanguageManager.instance.Add(safedevil, devil);
            LanguageManager.instance.Add(safepriest, priest);
            LanguageManager.instance.Add(safehigh_god_name, high_god_name);
            LanguageManager.instance.Add(safescripture_name, scripture_name);
            LanguageManager.instance.Add(safecrusade_name, crusade_name);

            this.r = r;
            this.g = g;
            this.b = b;

            String gods = "";

            if (bNew)
            {
                for (int n = 0; n < 10; n++)
                {
                    string go = dna.GetGodName();
                    var    sg = StarNames.SafeName(go);
                    LanguageManager.instance.Add(sg, go);

                    this.gods.Add(sg);
                    gods += sg + " ";
                }
            }

            String egods = "";

            if (bNew)
            {
                for (int n = 0; n < 5; n++)
                {
                    string go = dna.GetGodName();
                    var    sg = StarNames.SafeName(go);
                    LanguageManager.instance.Add(sg, go);
                    evilgods.Add(sg);

                    egods += sg + " ";
                }
            }

            if (!polytheism)
            {
                gods  = safegod;
                egods = safedevil;
            }
            else
            {
                gods = safehigh_god_name + " " + gods;
            }

            this.safecrusade_name   = safecrusade_name;
            this.safescripture_name = safescripture_name;
            this.safepriest         = safepriest;
            this.safehigh_god_name  = safehigh_god_name;
            this.egods = egods;

            if (max_wives > 1 && max_consorts > 0)
            {
                max_consorts = 0;
            }

            ScopeReligionDetails();
        }