コード例 #1
0
        public static void Postfix(Type defType, string defName, bool forDefInjections, ref string __result)
        {
            if (GenDefDatabase.GetDefSilentFail(defType, defName, false) == null)
            {
                string newName = string.Empty;
                //    Log.Message(string.Format("Checking for replacement for {0} Type: {1}", defName, defType));
                if (defType == typeof(ThingDef))
                {
                    /*
                     * if (defName.Contains("ChaosDeamon_"))
                     * {
                     *  if (defName.Contains("Corpse_"))
                     *  {
                     *      newName = Regex.Replace(defName, "Corpse_ChaosDeamon_", "Corpse_OG_Chaos_Deamon_");
                     *  }
                     *  else
                     *      newName = Regex.Replace(defName, "ChaosDeamon_", "OG_Chaos_Deamon_");
                     * }
                     */

                    if (defName == "HempFabric")
                    {
                        newName = "HempCloth";
                    }
                }
                if (defType == typeof(FactionDef))
                {
                }
                if (defType == typeof(PawnKindDef))
                {
                }
                if (defType == typeof(ResearchProjectDef))
                {
                }
                if (defType == typeof(HediffDef))
                {
                }
                if (defType == typeof(BodyDef))
                {
                }
                if (defType == typeof(ScenarioDef))
                {
                }
                if (!newName.NullOrEmpty())
                {
                    __result = newName;
                }
                if (defName == __result)
                {
                    //    Log.Warning(string.Format("AMA No replacement found for: {0} T:{1}", defName, defType));
                }
                else
                {
                    //    Log.Message(string.Format("Replacement found: {0} T:{1}", __result, defType));
                }
            }
        }
        public static void BackCompatibleDefName_Postfix(Type defType, string defName, bool forDefInjections, ref string __result)
        {
            if (GenDefDatabase.GetDefSilentFail(defType, defName, false) == null)
            {
                //    Log.Message(string.Format("Checking for replacement for {0} Type: {1}", defName, defType));
                if (defType == typeof(ThingDef))
                {
                }
                if (defType == typeof(FactionDef))
                {
                }
                if (defType == typeof(PawnKindDef))
                {
                }
                if (defType == typeof(ResearchProjectDef))
                {
                }
                if (defType == typeof(HediffDef))
                {
                    if (defName.Contains("RRY_Hediff_Unblooded"))
                    {
                        __result = "HMS_Hediff_Unblooded";
                    }
                    if (defName.Contains("RRY_Hediff_BloodedUM"))
                    {
                        __result = "HMS_Hediff_BloodedUM";
                    }
                    if (defName == ("RRY_Hediff_BloodedM"))
                    {
                        __result = "HMS_Hediff_BloodedM";
                    }
                    else if (defName.Contains("RRY_Hediff_BloodedM"))
                    {
                        // Taking a string
                        String str = defName;

                        String[] spearator = { "_" };
                        Int32    count     = 3;

                        // using the method
                        String[] strlist = str.Split(spearator, count,
                                                     StringSplitOptions.RemoveEmptyEntries);
                        __result = DefDatabase <HediffDef> .AllDefs.Where(x => x.defName.Contains(strlist[2])).First().defName;
                    }
                }
                if (defName == __result)
                {
                    Log.Warning(string.Format("RRY No replacement found for: {0} T:{1}", defName, defType));
                }
                else
                {
                    //    Log.Message(string.Format("Replacement found: {0} T:{1}", __result, defType));
                }
            }
        }
        private static HashSet <string> UpdateAnimalList(string factionDefName, HashSet <string> currentAnimals)
        {
            var additions =
                $@"{GenFilePaths.ConfigFolderPath}{Path.DirectorySeparatorChar}AnimalHusbandryRaids_{factionDefName}.additions";
            var deletions =
                $@"{GenFilePaths.ConfigFolderPath}{Path.DirectorySeparatorChar}AnimalHusbandryRaids_{factionDefName}.deletions";

            try
            {
                if (!File.Exists(additions))
                {
                    File.Create(additions).Dispose();
                }

                if (!File.Exists(deletions))
                {
                    File.Create(deletions).Dispose();
                }

                var animalsToAdd = File.ReadAllLines(additions).ToList();
                currentAnimals.AddRange(animalsToAdd);
                var animalsToRemove = File.ReadAllLines(deletions).ToList();
                foreach (var animalToRemove in animalsToRemove)
                {
                    currentAnimals.Remove(animalToRemove);
                }

                WriteDebug(
                    $"The following animals was found: {currentAnimals.ToCommaList()}, have added {animalsToAdd.ToCommaList()} and removed {animalsToRemove.ToCommaList()}");
            }
            catch (Exception exception)
            {
                WriteDebug($"Failed to create files, {exception}.");
            }

            var returnValue = new HashSet <string>();

            foreach (var animalDef in currentAnimals)
            {
                if (GenDefDatabase.GetDefSilentFail(typeof(ThingDef), animalDef) == null)
                {
                    continue;
                }

                WriteDebug($"Adding, {animalDef} as possible animal.");

                returnValue.Add(animalDef);
            }

            return(returnValue);
        }
コード例 #4
0
        public override string BackCompatibleDefName(Type defType, string defName, bool forDefInjections = false, XmlNode node = null)
        {
            if (GenDefDatabase.GetDefSilentFail(defType, defName, false) == null)
            {
                if (defType == typeof(TraitDef) || defType == typeof(ThoughtDef))
                {
                    var def = GenDefDatabase.GetDefSilentFail(defType, "GAT_" + defName, false);

                    if (def != null)
                    {
                        return(def.defName);
                    }
                }
            }
            return(null);
        }
        public static void BackCompatibleDefName_Postfix(Type defType, string defName, ref string __result)
        {
            if (GenDefDatabase.GetDefSilentFail(defType, defName, false) == null)
            {
                if (defType == typeof(ThingDef))
                {
                    __result = "PerfectlyGenericItem";
                }

                /*
                 * if (defType == typeof(FactionDef) && PGISettings.Instance.replaceFactions)
                 * {
                 *  __result = "OutlanderRough";
                 * }
                 */
            }
        }
コード例 #6
0
 public static void BackCompatibleDefName_Postfix(Type defType, string defName, bool forDefInjections, ref string __result)
 {
     if (GenDefDatabase.GetDefSilentFail(defType, defName, false) == null)
     {
         string newName = string.Empty;
         //    Log.Message(string.Format("Checking for replacement for {0} Type: {1}", defName, defType));
         if (defType == typeof(ThingDef))
         {
         }
         if (defType == typeof(FactionDef))
         {
             if (defName == "TyranidFaction")
             {
                 newName = "OG_Tyranid_Faction";
             }
         }
         if (defType == typeof(PawnKindDef))
         {
         }
         if (defType == typeof(ResearchProjectDef))
         {
         }
         if (defType == typeof(HediffDef))
         {
         }
         if (defType == typeof(BodyDef))
         {
         }
         if (defType == typeof(ScenarioDef))
         {
         }
         if (!newName.NullOrEmpty())
         {
             __result = newName;
         }
         if (defName == __result)
         {
             //    Log.Warning(string.Format("AMA No replacement found for: {0} T:{1}", defName, defType));
         }
         else
         {
             //    Log.Message(string.Format("Replacement found: {0} T:{1}", __result, defType));
         }
     }
 }
コード例 #7
0
        private static List <string> UpdateAnimalList(string factionDefName, List <string> currentAnimals)
        {
            string additions = $@"{GenFilePaths.ConfigFolderPath}{Path.DirectorySeparatorChar}AnimalHusbandryRaids_{factionDefName}.additions";
            string deletions = $@"{GenFilePaths.ConfigFolderPath}{Path.DirectorySeparatorChar}AnimalHusbandryRaids_{factionDefName}.deletions";

            try
            {
                if (!File.Exists(additions))
                {
                    File.Create(additions).Dispose();
                }
                if (!File.Exists(deletions))
                {
                    File.Create(deletions).Dispose();
                }
                var animalsToAdd = File.ReadAllLines(additions).ToList();
                currentAnimals.AddRange(animalsToAdd);
                var animalsToRemove = File.ReadAllLines(deletions).ToList();
                foreach (string animalToRemove in animalsToRemove)
                {
                    currentAnimals.Remove(animalToRemove);
                }
                //if (Prefs.DevMode) Log.Message($"[AnimalHusbandryRaids] The following animals was found: {currentAnimals.ToCommaList()}, have added {animalsToAdd.ToCommaList()} and removed {animalsToRemove.ToCommaList()}");
            }
            catch (Exception exception)
            {
                if (Prefs.DevMode)
                {
                    Log.Message($"[AnimalHusbandryRaids] Failed to create files, {exception.ToString()}.");
                }
            }

            var returnValue = new List <string>();

            foreach (string animalDef in currentAnimals)
            {
                if (GenDefDatabase.GetDefSilentFail(typeof(ThingDef), animalDef) != null)
                {
                    returnValue.Add(animalDef);
                }
            }
            return(returnValue);
        }
        //    [HarmonyPostfix]
        public static void BackCompatibleDefName_Postfix(Type defType, string defName, bool forDefInjections, ref string __result)
        {
            if (GenDefDatabase.GetDefSilentFail(defType, defName, false) == null)
            {
                string newName = string.Empty;
                //    Log.Message(string.Format("Checking for replacement for {0} Type: {1}", defName, defType));
                if (defType == typeof(ThingDef))
                {
                    /*
                     * if (defName.Contains("ChaosDeamon_"))
                     * {
                     *  if (defName.Contains("Corpse_"))
                     *  {
                     *      newName = Regex.Replace(defName, "Corpse_ChaosDeamon_", "Corpse_OG_Chaos_Deamon_");
                     *  }
                     *  else
                     *      newName = Regex.Replace(defName, "ChaosDeamon_", "OG_Chaos_Deamon_");
                     * }
                     */

                    if (defName.Contains("Apparel_Ork"))
                    {
                        newName = Regex.Replace(defName, "Apparel_Ork", "OGO_Apparel_");
                    }
                }
                if (defType == typeof(FactionDef))
                {
                    if (defName == "FeralOrkFaction")
                    {
                        newName = "OG_Ork_Feral_Faction";
                    }
                    if (defName.Contains("Ork") && defName.Contains("Player"))
                    {
                        newName = "OG_Ork_PlayerTribe";
                    }
                }
                if (defType == typeof(PawnKindDef))
                {
                    List <PawnKindDef> list;
                    if (defName.Contains("Ork"))
                    {
                        list = DefDatabase <PawnKindDef> .AllDefs.Where(x => x.defName.Contains("Ork")).ToList();

                        if (defName.Contains("Choppa"))
                        {
                            list = list.Where(x => x.defName.Contains("Choppa")).ToList();
                        }
                        else
                        if (defName.Contains("Shoota"))
                        {
                            list = list.Where(x => x.defName.Contains("Shoota")).ToList();
                        }
                        else
                        if (defName.Contains("Slugga"))
                        {
                            list = list.Where(x => x.defName.Contains("Slugga")).ToList();
                        }

                        if (defName.Contains("Mek"))
                        {
                            list = list.Where(x => x.defName.Contains("Mek")).ToList();
                        }
                        if (defName.Contains("Warboss"))
                        {
                            list = list.Where(x => x.defName.Contains("Warboss")).ToList();
                        }
                        else
                        if (defName.Contains("Nob"))
                        {
                            list = list.Where(x => x.defName.Contains("Nob")).ToList();
                        }
                        else
                        {
                            list = list.Where(x => !x.defName.Contains("Nob") && !x.defName.Contains("Warboss")).ToList();
                        }
                        newName = list.RandomElement().defName;
                    }
                    if (defName.Contains("Grot"))
                    {
                        list = DefDatabase <PawnKindDef> .AllDefs.Where(x => x.defName.Contains("Grot")).ToList();

                        if (defName.Contains("Colonist"))
                        {
                            list = list.Where(x => x.defName.Contains("Colonist")).ToList();
                        }
                        newName = list.RandomElement().defName;
                    }
                    if (defName.Contains("Snotling"))
                    {
                        list = DefDatabase <PawnKindDef> .AllDefs.Where(x => x.defName.Contains("Snotling")).ToList();

                        newName = list.RandomElement().defName;
                    }
                    if (defName.Contains("Squig"))
                    {
                        list = DefDatabase <PawnKindDef> .AllDefs.Where(x => x.defName.Contains("Squig")).ToList();

                        newName = list.RandomElement().defName;
                    }
                }
                if (defType == typeof(ResearchProjectDef))
                {
                    // Ork Reseach renames
                    if (defName == "OrkTekBase")
                    {
                        newName = "OG_Ork_Tech_Base_T1";
                    }
                    if (defName == "OrkishBrutality")
                    {
                        newName = "OG_Ork_Tech_Weapons_Melee_T1";
                    }
                    if (defName == "OrkishExtremeBrutality")
                    {
                        newName = "OG_Ork_Tech_Weapons_Melee_T2";
                    }
                    if (defName == "OrkishPowerField")
                    {
                        newName = "OG_Ork_Tech_Weapons_Melee_T3";
                    }
                    if (defName == "OrkishCunning")
                    {
                        newName = "OG_Ork_Tech_Weapons_Ranged_T1";
                    }
                    if (defName == "OrkishIntenseCunning")
                    {
                        newName = "OG_Ork_Tech_Weapons_Ranged_T2";
                    }
                    if (defName == "OrkishMekTek")
                    {
                        newName = "OG_Ork_Tech_Base_T2";
                    }
                    if (defName == "OrkishBigMekBrainz")
                    {
                        newName = "OG_Ork_Tech_Base_T3";
                    }
                    if (defName == "OrkishArmour")
                    {
                        newName = "OG_Ork_Tech_Apparel_Armour_T1";
                    }
                    if (defName == "OrkishEavyArmour")
                    {
                        newName = "OG_Ork_Tech_Apparel_Armour_T2";
                    }
                    if (defName == "OrkishMegaArmour")
                    {
                        newName = "OG_Ork_Tech_Apparel_Armour_T3";
                    }
                }
                if (defType == typeof(HediffDef))
                {
                    if (defName == "HyperactiveNymuneOrgan")
                    {
                        newName = "OG_Kroot_Mutation_HyperactiveNymuneOrgan";
                    }
                }
                if (defType == typeof(BodyDef))
                {
                    /*
                     * if (defName.Contains("Ork") || defName.Contains("Ork"))
                     * {
                     *  newName = defName + "_Body";
                     * }
                     */
                }
                if (defType == typeof(ScenarioDef))
                {
                    if (defName == "OG_Ork_Tek_Scenario_Test")
                    {
                        newName = "OGAM_Scenario__Ork_Crashlanded";
                    }
                    if (defName == "OG_Ork_Feral_Tribe")
                    {
                        newName = "OGAM_Scenario_Ork_LostTribe";
                    }
                }
                if (!newName.NullOrEmpty())
                {
                    __result = newName;
                }
                if (defName == __result)
                {
                    //    Log.Warning(string.Format("AMA No replacement found for: {0} T:{1}", defName, defType));
                }
                else
                {
                    //    Log.Message(string.Format("Replacement found: {0} T:{1}", __result, defType));
                }
            }
        }
コード例 #9
0
        public static void BackCompatibleDefName_Postfix(Type defType, string defName, bool forDefInjections, ref string __result)
        {
            if (GenDefDatabase.GetDefSilentFail(defType, defName, false) == null)
            {
                //    Log.Message(string.Format("Checking for replacement for {0} Type: {1}", defName, defType));
                if (defType == typeof(ThingDef))
                {
                    if (defName.Contains("Alien_Kroot"))
                    {
                        __result = "OG_Alien_Kroot";
                    }
                    else
                    if (defName.Contains("Alien_Tau"))
                    {
                        __result = "OG_Alien_Tau";
                    }
                    else
                    if (defName.Contains("Alien_Ork"))
                    {
                        __result = "OG_Alien_Ork";
                    }
                    else
                    if (defName.Contains("Cybork"))
                    {
                        __result = "OG_Alien_Cybork";
                    }
                    else
                    if (defName.Contains("Alien_Cybork"))
                    {
                        __result = "OG_Alien_Cybork";
                    }
                    else
                    if (defName.Contains("Alien_Grot"))
                    {
                        __result = "OG_Alien_Grot";
                    }
                    else
                    if (defName.Contains("Alien_Eldar"))
                    {
                        __result = "OG_Alien_Eldar";
                    }
                    else
                    if (defName.Contains("AttackSquig"))
                    {
                        __result = "OG_Squig_Ork";
                    }
                    else
                    if (defName.Contains("Squig"))
                    {
                        __result = "OG_Squig";
                    }
                    else
                    if (defName.Contains("Snotling"))
                    {
                        __result = "OG_Ork_Snotling";
                    }

                    if (defName != __result)
                    {
                        if (defName.Contains("Corpse"))
                        {
                            __result = "Corpse_" + __result;
                        }
                        if (defName.Contains("Meat"))
                        {
                            if (defName.Contains("Cyborg_Ork"))
                            {
                                __result = "Meat_OG_Alien_Ork";
                            }
                            else
                            if (defName.Contains("Squig"))
                            {
                                __result = "Meat_OG_Squig";
                            }
                            else
                            {
                                __result = "Meat_" + __result;
                            }
                        }
                    }
                    if (defName.Contains("OrkGrog"))
                    {
                        __result = "OG_Ork_Grog";
                    }
                    if (defName.Contains("Plant_OrkFungus"))
                    {
                        __result = "OG_Plant_OrkoidFungus";
                    }
                    if (defName.Contains("Meat_Cyborg_Ork"))
                    {
                        __result = "Meat_OG_Alien_Ork";
                    }
                    if (defName.Contains("CadianFlakArmour"))
                    {
                        __result = "OGIG_Apparel_FlakArmour";
                    }
                    if (defName.Contains("Rosarius"))
                    {
                        __result = DefDatabase <ThingDef> .AllDefs.Where(x => x.defName.Contains("Rosarius")).ToList().First().defName;
                    }
                    if (defName.Contains("IronHalo"))
                    {
                        __result = DefDatabase <ThingDef> .AllDefs.Where(x => x.defName.Contains("IronHalo")).ToList().First().defName;
                    }
                    if (defName.Contains("PuritySealA"))
                    {
                        __result = DefDatabase <ThingDef> .AllDefs.Where(x => x.defName.Contains("PuritySealA")).ToList().First().defName;
                    }
                    if (defName.Contains("Apparel_TribalKroot"))
                    {
                        __result = "OGK_Apparel_TribalKroot";
                    }

                    if (defName.Contains("OGT_CombatHelmet"))
                    {
                        __result = "OGT_Apparel_CombatHelmet";
                    }
                    if (defName.Contains("OGT_CombatArmour"))
                    {
                        __result = "OGT_Apparel_CombatArmour";
                    }
                    if (defName.Contains("OGE_Apparel_RuneArmour"))
                    {
                        __result = "OGE_Apparel_RuneArmourWarlock";
                    }
                    if (defName.Contains("OGCDWarpRift"))
                    {
                        __result = DefDatabase <ThingDef> .AllDefs.Where(x => x.defName.Contains("Warp") && x.defName.Contains("Rift")).RandomElement().defName;
                    }
                }
                if (defType == typeof(FactionDef))
                {
                    if (defName == "OGChaosDeamonFaction")
                    {
                        __result = "OG_Chaos_Deamon_Faction";
                    }
                    if (defName == "MechanicusFaction")
                    {
                        __result = "OG_Mechanicus_Faction";
                    }
                    if (defName == "NecronFaction")
                    {
                        __result = "OG_Necron_Faction";
                    }
                    // Eldar Factions
                    if (defName == "EldarFaction")
                    {
                        __result = "OG_Eldar_Craftworld_Faction";
                    }
                    if (defName == "EldarPlayerColony")
                    {
                        __result = "OG_Eldar_Player_Craftworld";
                    }
                    // Ork factions
                    if (defName == "OrkFaction")
                    {
                        __result = "OG_Ork_Tek_Faction";
                    }
                    if (defName == "OrkPlayerColony")
                    {
                        __result = "OG_Ork_Player";
                    }
                    if (defName == "FeralOrkFaction")
                    {
                        __result = "OG_Ork_Feral_Faction";
                    }
                    if (defName == "OrkPlayerColonyTribal")
                    {
                        __result = "OG_Ork_Feral_Player";
                    }
                    if (defName == "RokOrkz")
                    {
                        __result = "OG_Ork_Rok";
                    }
                    if (defName == "HulkOrkz")
                    {
                        __result = "OG_Ork_Hulk";
                    }
                    // Tau factions
                    if (defName == "TauFaction")
                    {
                        __result = "OG_Tau_Faction";
                    }
                    if (defName == "TauPlayerColony")
                    {
                        __result = "OG_Tau_Player";
                    }

                    // Kroot factions
                    if (defName == "KrootFaction")
                    {
                        __result = "OG_Kroot_Faction";
                    }
                    if (defName == "KrootPlayerColonyTribal")
                    {
                        __result = "OG_Kroot_Player_Tribal";
                    }
                }
                if (defType == typeof(PawnKindDef))
                {
                    List <PawnKindDef> list;
                    if (defName.Contains("Ork"))
                    {
                        list = DefDatabase <PawnKindDef> .AllDefs.Where(x => x.defName.Contains("Ork")).ToList();

                        if (defName.Contains("Choppa"))
                        {
                            list = list.Where(x => x.defName.Contains("Choppa")).ToList();
                        }
                        else
                        if (defName.Contains("Shoota"))
                        {
                            list = list.Where(x => x.defName.Contains("Shoota")).ToList();
                        }
                        else
                        if (defName.Contains("Slugga"))
                        {
                            list = list.Where(x => x.defName.Contains("Slugga")).ToList();
                        }

                        if (defName.Contains("Mek"))
                        {
                            list = list.Where(x => x.defName.Contains("Mek")).ToList();
                        }
                        if (defName.Contains("Warboss"))
                        {
                            list = list.Where(x => x.defName.Contains("Warboss")).ToList();
                        }
                        else
                        if (defName.Contains("Nob"))
                        {
                            list = list.Where(x => x.defName.Contains("Nob")).ToList();
                        }
                        else
                        {
                            list = list.Where(x => !x.defName.Contains("Nob") && !x.defName.Contains("Warboss")).ToList();
                        }
                        __result = list.RandomElement().defName;
                    }
                    if (defName.Contains("Grot"))
                    {
                        list = DefDatabase <PawnKindDef> .AllDefs.Where(x => x.defName.Contains("Grot")).ToList();

                        if (defName.Contains("Colonist"))
                        {
                            list = list.Where(x => x.defName.Contains("Colonist")).ToList();
                        }
                        __result = list.RandomElement().defName;
                    }
                    if (defName.Contains("Snotling"))
                    {
                        list = DefDatabase <PawnKindDef> .AllDefs.Where(x => x.defName.Contains("Snotling")).ToList();

                        __result = list.RandomElement().defName;
                    }
                    if (defName.Contains("Squig"))
                    {
                        list = DefDatabase <PawnKindDef> .AllDefs.Where(x => x.defName.Contains("Squig")).ToList();

                        __result = list.RandomElement().defName;
                    }
                    if (defName.Contains("Tau"))
                    {
                        list = DefDatabase <PawnKindDef> .AllDefs.Where(x => x.defName.Contains("Tau")).ToList();

                        if (defName.Contains("Aun"))
                        {
                            list = list.Where(x => x.defName.Contains("Aun")).ToList();
                        }
                        if (defName.Contains("Shas"))
                        {
                            list = list.Where(x => x.defName.Contains("Shas")).ToList();
                        }
                        if (defName.Contains("Kor"))
                        {
                            list = list.Where(x => x.defName.Contains("Kor")).ToList();
                        }
                        if (defName.Contains("Por"))
                        {
                            list = list.Where(x => x.defName.Contains("Por")).ToList();
                        }
                        if (defName.Contains("Fio"))
                        {
                            list = list.Where(x => x.defName.Contains("Fio")).ToList();
                        }
                        if (defName.Contains("Colonist"))
                        {
                            list = list.Where(x => x.defName.Contains("Colonist")).ToList();
                        }
                        __result = list.RandomElement().defName;
                    }
                    if (defName.Contains("Kroot"))
                    {
                        list = DefDatabase <PawnKindDef> .AllDefs.Where(x => x.defName.Contains("Kroot")).ToList();

                        if (defName.Contains("Shaper"))
                        {
                            list = list.Where(x => x.defName.Contains("Shaper")).ToList();
                        }
                        if (defName.Contains("Colonist"))
                        {
                            list = list.Where(x => x.defName.Contains("Colonist")).ToList();
                        }
                        __result = list.RandomElement().defName;
                    }
                    if (defName.Contains("Guevesa"))
                    {
                        list = DefDatabase <PawnKindDef> .AllDefs.Where(x => x.defName.Contains("Guevesa")).ToList();

                        if (defName.Contains("Colonist"))
                        {
                            list = list.Where(x => x.defName.Contains("Colonist")).ToList();
                        }
                        __result = list.RandomElement().defName;
                    }
                    if (defName.Contains("Eldar"))
                    {
                        list = DefDatabase <PawnKindDef> .AllDefs.Where(x => x.defName.Contains("Eldar")).ToList();

                        if (defName.Contains("Exarch"))
                        {
                            list = list.Where(x => x.defName.Contains("Exarch")).ToList();
                        }
                        if (defName.Contains("Colonist"))
                        {
                            list = list.Where(x => x.defName.Contains("Colonist")).ToList();
                        }
                        __result = list.RandomElement().defName;
                    }
                }
                if (defType == typeof(ResearchProjectDef))
                {
                    if (defName == "ImperialTechBase")
                    {
                        __result = "OG_Tech_Base_Imperial";
                    }
                    if (defName == "WRPowerWeapons")
                    {
                        __result = "OG_Weapons_Power_Imperial";
                    }
                    if (defName == "WGRConversionField")
                    {
                        __result = "OG_Wargear_ConversionField_Imperial";
                    }
                    if (defName == "ImperialSpecialWeapons")
                    {
                        __result = "OG_Weapons_Special_Imperial";
                    }
                    if (defName == "ImperialSpecialPowerWeapons")
                    {
                        __result = "OG_Weapons_SpecialPower_Imperial";
                    }
                    if (defName == "ImperialHeavyWeapons")
                    {
                        __result = "OG_Weapons_Heavy_Imperial";
                    }
                    if (defName == "WRForceWeapons")
                    {
                        __result = "OG_Weapons_Force_Imperial";
                    }
                    if (defName == "WRImpLasTech")
                    {
                        __result = "OG_Weapons_Laser_Imperial";
                    }
                    if (defName == "WRImpBoltTech")
                    {
                        __result = "OG_Weapons_Bolter_Imperial";
                    }
                    if (defName == "WRImpPlasmaTech")
                    {
                        __result = "OG_Weapons_Plasma_Imperial";
                    }
                    if (defName == "ARBasicServoSkull")
                    {
                        __result = "OG_Wargear_ServoSkull_Imperial";
                    }
                }
                if (defType == typeof(HediffDef))
                {
                    if (defName == "HyperactiveNymuneOrgan")
                    {
                        __result = "OG_Kroot_Mutation_HyperactiveNymuneOrgan";
                    }
                }
                if (defName == __result)
                {
                    //    Log.Warning(string.Format("AMA No replacement found for: {0} T:{1}", defName, defType));
                }
                else
                {
                    //    Log.Message(string.Format("Replacement found: {0} T:{1}", __result, defType));
                }
            }
        }