コード例 #1
0
        static AMOMain()
        {
            List <string> blackTags = new List <string>()
            {
                "I", "C"
            };
            List <ResearchProjectDef> blackProjects = new List <ResearchProjectDef>();

            blackProjects.AddRange(ArmouryMain.ReseachImperial);
            blackProjects.AddRange(ArmouryMain.ReseachChaos);

            List <ResearchProjectDef> whiteProjects = new List <ResearchProjectDef>(OrkReseach);

            AlienRace.ThingDef_AlienRace Cybork = DefDatabase <ThingDef> .GetNamedSilentFail("OG_Alien_Cybork") as AlienRace.ThingDef_AlienRace;

            List <ThingDef> races = new List <ThingDef>()
            {
                AdeptusThingDefOf.OG_Alien_Ork, AdeptusThingDefOf.OG_Alien_Grot, AdeptusThingDefOf.OG_Snotling
            };

            if (Cybork != null)
            {
                races.Add(Cybork);
            }
            List <ThingDef> animals = DefDatabase <ThingDef> .AllDefsListForReading.Where(x => x.race != null && x.race.Animal && x.isOrkoid()).ToList();

            List <ThingDef> plants = new List <ThingDef>()
            {
                AdeptusThingDefOf.OG_Plant_Orkoid_Fungus,
                AdeptusThingDefOf.OG_Plant_Orkoid_Cocoon
            };

            AlienRaceUtility.DoRacialRestrictionsFor(races, "O", blackTags, whiteProjects, blackProjects, whitePlants: plants, whiteAnimals: animals);
        }
コード例 #2
0
        static AMEMain()
        {
            List <string> blackTags = new List <string>()
            {
                "I", "C", "AM"
            };
            List <ResearchProjectDef> blackProjects = new List <ResearchProjectDef>();

            blackProjects.AddRange(ArmouryMain.ReseachImperial);
            blackProjects.AddRange(ArmouryMain.ReseachChaos);

            List <ResearchProjectDef> whiteProjects = EldarResearch;
            List <string>             whiteTags     = new List <string>()
            {
                "E"
            };
            List <ThingDef> whiteApparel = DefDatabase <ThingDef> .AllDefsListForReading.FindAll(x => x.defName.Contains("OGE_Apparel_"));

            whiteProjects.AddRange(AeldariResearch);
            if (AdeptusThingDefOf.OG_Alien_DarkEldar == null)
            {
                whiteProjects.AddRange(DarkEldarResearch);
                whiteApparel.AddRange(DefDatabase <ThingDef> .AllDefsListForReading.FindAll(x => x.IsApparel && x.defName.Contains("OGDE_Apparel_")));
                whiteTags.Add("DE");
            }

            AlienRaceUtility.DoRacialRestrictionsFor(AdeptusThingDefOf.OG_Alien_Eldar, whiteTags, blackTags, whiteProjects, blackProjects, whiteApparel, Logging: AMAMod.Dev);
        }
コード例 #3
0
        static AMTMain()
        {
            List <string> blackTags = new List <string>()
            {
                "I", "C"
            };
            List <ResearchProjectDef> blackProjects = new List <ResearchProjectDef>();

            blackProjects.AddRange(ArmouryMain.ReseachImperial);
            blackProjects.AddRange(ArmouryMain.ReseachChaos);

            List <ResearchProjectDef> whiteProjects = new List <ResearchProjectDef>(TauReseach);

            AlienRaceUtility.DoRacialRestrictionsFor(AdeptusThingDefOf.OG_Alien_Tau, "T", blackTags, whiteProjects, blackProjects);
        }
コード例 #4
0
        static AMVMain()
        {
            List <string> blackTags = new List <string>()
            {
                "I", "C"
            };
            List <ResearchProjectDef> blackProjects = new List <ResearchProjectDef>();

            blackProjects.AddRange(ArmouryMain.ReseachImperial);
            blackProjects.AddRange(ArmouryMain.ReseachChaos);

            List <ResearchProjectDef> whiteProjects = new List <ResearchProjectDef>(VespidReseach);

            AlienRace.ThingDef_AlienRace vespid = AdeptusThingDefOf.OG_Alien_Vespid as AlienRace.ThingDef_AlienRace;
            AlienRaceUtility.DoRacialRestrictionsFor(vespid, "V", blackTags, whiteProjects, blackProjects);
            //    ArmouryMain.DoRacialRestrictionsFor(vespid, "T", TauReseach);
        }
コード例 #5
0
        static AMKMain()
        {
            List <string> blackTags = new List <string>()
            {
                "I", "C"
            };
            List <ResearchProjectDef> blackProjects = new List <ResearchProjectDef>();

            blackProjects.AddRange(ArmouryMain.ReseachImperial);
            blackProjects.AddRange(ArmouryMain.ReseachChaos);

            List <ResearchProjectDef> whiteProjects = new List <ResearchProjectDef>(KrootReseach);

            List <ThingDef> whiteAnimals = DefDatabase <ThingDef> .AllDefsListForReading.Where(x => x.race != null && x.race.Animal && x.isKrootoid()).ToList();

            AlienRaceUtility.DoRacialRestrictionsFor(AdeptusThingDefOf.OG_Alien_Kroot, "K", blackTags, whiteProjects, blackProjects, whiteAnimals: whiteAnimals);
            //    ArmouryMain.DoRacialRestrictionsFor(kroot, "T", TauReseach);
        }
コード例 #6
0
ファイル: ArmouryMain.cs プロジェクト: Ogliss/AdMechArmoury
        static ArmouryMain()
        {
            collapseTex = TexButton.Collapse;
            if (collapseTex == null)
            {
                Log.Error("collapseTex == null");
            }
            expandTex = TexButton.Reveal;
            if (expandTex == null)
            {
                Log.Error("expandTex == null");
            }
            humanRecipes = DefDatabase <RecipeDef> .AllDefs.Where(x => x.AllRecipeUsers.Contains(ThingDefOf.Human));

            TechHediffRecipes = from x in DefDatabase <RecipeDef> .AllDefs
                                where TechHediffItems.Any(z => x.IsIngredient(z)) && x.targetsBodyPart
                                select x;

            TechHediffItems = from x in DefDatabase <ThingDef> .AllDefs
                              where x.isTechHediff && x.BaseMarketValue > 0
                              select x;

            ReseachImperial = DefDatabase <ResearchProjectDef> .AllDefs.Where(x => x.defName.Contains("OG_Imperial_Tech_")).ToList();

            ReseachMechanicus = DefDatabase <ResearchProjectDef> .AllDefs.Where(x => x.defName.Contains("OG_Mechanicus_Tech_")).ToList();

            ReseachChaos = DefDatabase <ResearchProjectDef> .AllDefs.Where(x => x.defName.Contains("OG_Chaos_Tech_")).ToList();

            scenariosTesting = DefDatabase <ScenarioDef> .AllDefs.Where(x => x.defName.StartsWith("OGAM_TestScenario_")).ToList();

            mechanicus = DefDatabase <ThingDef> .GetNamedSilentFail("OG_Human_Mechanicus");

            astartes = DefDatabase <ThingDef> .GetNamedSilentFail("OG_Human_Astartes");

            ogryn = DefDatabase <ThingDef> .GetNamedSilentFail("OG_Abhuman_Ogryn");

            ratlin = DefDatabase <ThingDef> .GetNamedSilentFail("OG_Abhuman_Ratling");

            beastman = DefDatabase <ThingDef> .GetNamedSilentFail("OG_Abhuman_Beastman");

            geneseedAstartes = DefDatabase <ThingDef> .GetNamedSilentFail("AstarteSpaceMarine");

            geneseedCustodes = DefDatabase <ThingDef> .GetNamedSilentFail("AdaptusCustodes");

            factionColours = DefDatabase <FactionDef> .AllDefs.Where(x => x.GetModExtensionFast <FactionDefExtension>()?.factionColor != null || x.GetModExtensionFast <FactionDefExtension>()?.factionColorTwo != null).ToList();

            if (AMAMod.Dev)
            {
                Log.Message("factions with colours: " + factionColours.Count);
            }
            IEnumerable <BackstorySettings> settings = DefDatabase <BackstorySettings> .AllDefs;

            if (!settings.EnumerableNullOrEmpty())
            {
                InsertTags();
            }

            /*
             * Log.Message("AppDomain.CurrentDomain.GetAssemblies():\n" + System.AppDomain.CurrentDomain.GetAssemblies().Join(delimiter: "\n"));
             * Log.Message("GenTypes.AllActiveAssemblies:\n" + Traverse.Create(typeof(GenTypes)).Property<IEnumerable<System.Reflection.Assembly>>("AllActiveAssemblies").Value.Join(delimiter: "\n"));
             */
            //    Log.Message("ArmouryMain ");
            if (AMAMod.Dev && !scenariosTesting.NullOrEmpty())
            {
                TestingScenarioUtility.SetUpTestScenarios(scenariosTesting);
            }
            HumanlikeRecipeUtility.AddHumanlikeRecipes();
            if (AdeptusIntergrationUtility.enabled_AlienRaces)
            {
                AlienRaceUtility.AlienRaces();
            }
        }