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); }
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"; * } */ } }
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)); } } }
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)); } } }
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)); } } }