Due to update 2.4.3, some mods may no longer function. FixedConfig may be necessary.
Decompiled source of Bopl Evolution v1.0.1
Evolution.dll
Decompiled a year agousing System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using BoplFixedMath; using HarmonyLib; using RandomAttributes; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: AssemblyTitle("")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("")] [assembly: AssemblyCopyright("Copyright © 2024")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("1.0.0.0")] namespace Evolution; [BepInDependency("com.dogoodogster.randomattributes", "1.1.0")] [BepInPlugin("com.dogoodogster.evolution", "Evolution", "1.0.0")] public class EvolutionPlugin : BaseUnityPlugin { public Harmony harmony; public static EvolutionPlugin instance; public static AbilitySet[] abilitySets = new AbilitySet[4]; public static Attributes[] previousAttributes = (Attributes[])(object)new Attributes[4]; public static AbilitySet[] previousAbilitySets = new AbilitySet[4]; private void Awake() { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Expected O, but got Unknown //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Expected O, but got Unknown //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Expected O, but got Unknown //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Expected O, but got Unknown //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Expected O, but got Unknown //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Expected O, but got Unknown instance = this; harmony = new Harmony(((BaseUnityPlugin)this).Info.Metadata.GUID); harmony.PatchAll(((object)this).GetType()); MethodInfo methodInfo = AccessTools.Method(typeof(AbilitySelectController), "openCloseMenu", (Type[])null, (Type[])null); MethodInfo methodInfo2 = AccessTools.Method(((object)this).GetType(), "AbsolutelyObliterateTheAbilitySelectMidGameThingyBecauseItsAVeryUselessThingInThisModAndWeDontWantThePlayersUsingTheModToBeAbleToChangeThereAbilitiesMidGameForPorpoisPurposes", (Type[])null, (Type[])null); harmony.Patch((MethodBase)methodInfo, new HarmonyMethod(methodInfo2), (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null); Cow val = new Cow("Craig", "probably a pig in a cow costume", "mooing"); Cow val2 = new Cow("Lancy", "who knows", "nothing..?"); Cow val3 = new Cow("Bert", "almighty frog", "executing all bopl kind"); Cow val4 = new Cow("Nimbus", "cloud whisperer", "creating cow-shaped clouds"); ((BaseUnityPlugin)this).Logger.LogInfo((object)val.Moo()); ((BaseUnityPlugin)this).Logger.LogInfo((object)val2.Moo()); ((BaseUnityPlugin)this).Logger.LogInfo((object)val3.Moo()); ((BaseUnityPlugin)this).Logger.LogInfo((object)val4.Moo()); RandomAttributesPlugin.OnLevelStart -= RandomAttributesPlugin.RandomizeThings; RandomAttributesPlugin.OnLevelStart += RandomAttributes_OnLevelStart; } [HarmonyPatch(typeof(LocalizationTable), "GetText")] [HarmonyPrefix] public static void TextThingy(ref string enText) { if (enText == "winner!!") { enText = "wiener winner wow fun!! he wons!!!"; } } [HarmonyPatch(typeof(GameSession), "Init")] [HarmonyPostfix] public static void GameSession_Init() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Expected O, but got Unknown for (int i = 0; i < PlayerHandler.Get().NumberOfPlayers(); i++) { RandomAttributesPlugin.attributes[i] = new Attributes { scale = Updater.RandomFix((Fix)0.4, (Fix)2.5), speed = Updater.RandomFix((Fix)15L, (Fix)40L), jumpStrength = Updater.RandomFix((Fix)35L, (Fix)60L), color = new FixColor(Updater.RandomFix((Fix)0L, (Fix)1L), Updater.RandomFix((Fix)0L, (Fix)1L), Updater.RandomFix((Fix)0L, (Fix)1L)) }; abilitySets[i] = new AbilitySet(PlayerHandler.Get().GetPlayer(i + 1)); } } [HarmonyPatch(typeof(Player), "Kill")] [HarmonyPostfix] public static void AThingthatmeansplayerGoByeByeAndGoToBoplHeavenAndGoLikeThisBecauseInThisModPorpoisPurposesSoItBeLikeThatAndItResetsTheAbilitiesAndAttributesToThePreviousRoundBecauseItCanAndFunThingsAndALsoICantKeepTypingHereBecauseICantEvenSeeWhatImTypingAnywaysIThinnkIllEndItNow(Player __instance) { if (!__instance.stillAliveThisRound) { RandomAttributesPlugin.attributes[__instance.Id - 1].CopyFrom(previousAttributes[__instance.Id - 1]); abilitySets[__instance.Id - 1].CopyFrom(previousAbilitySets[__instance.Id - 1]); } } public static bool AbsolutelyObliterateTheAbilitySelectMidGameThingyBecauseItsAVeryUselessThingInThisModAndWeDontWantThePlayersUsingTheModToBeAbleToChangeThereAbilitiesMidGameForPorpoisPurposes() { return false; } private void RandomAttributes_OnLevelStart() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_024b: Unknown result type (might be due to invalid IL or missing references) //IL_024d: Unknown result type (might be due to invalid IL or missing references) //IL_024e: Unknown result type (might be due to invalid IL or missing references) //IL_0253: Unknown result type (might be due to invalid IL or missing references) //IL_0258: Unknown result type (might be due to invalid IL or missing references) //IL_025a: Unknown result type (might be due to invalid IL or missing references) //IL_025c: Unknown result type (might be due to invalid IL or missing references) //IL_025d: Unknown result type (might be due to invalid IL or missing references) //IL_0262: Unknown result type (might be due to invalid IL or missing references) //IL_0267: Unknown result type (might be due to invalid IL or missing references) //IL_0269: Unknown result type (might be due to invalid IL or missing references) //IL_026b: Unknown result type (might be due to invalid IL or missing references) //IL_026c: Unknown result type (might be due to invalid IL or missing references) //IL_0271: Unknown result type (might be due to invalid IL or missing references) //IL_0276: Unknown result type (might be due to invalid IL or missing references) //IL_0278: Unknown result type (might be due to invalid IL or missing references) //IL_0279: Unknown result type (might be due to invalid IL or missing references) //IL_027a: Unknown result type (might be due to invalid IL or missing references) //IL_027f: Unknown result type (might be due to invalid IL or missing references) //IL_0281: Unknown result type (might be due to invalid IL or missing references) //IL_0283: Unknown result type (might be due to invalid IL or missing references) //IL_0288: Unknown result type (might be due to invalid IL or missing references) //IL_028a: Unknown result type (might be due to invalid IL or missing references) //IL_028c: Unknown result type (might be due to invalid IL or missing references) //IL_0291: Unknown result type (might be due to invalid IL or missing references) //IL_0296: Unknown result type (might be due to invalid IL or missing references) //IL_029b: Unknown result type (might be due to invalid IL or missing references) //IL_029d: Unknown result type (might be due to invalid IL or missing references) //IL_02a2: Unknown result type (might be due to invalid IL or missing references) //IL_02a7: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_02d7: Unknown result type (might be due to invalid IL or missing references) //IL_02dc: Unknown result type (might be due to invalid IL or missing references) //IL_02e7: Unknown result type (might be due to invalid IL or missing references) //IL_02ec: Unknown result type (might be due to invalid IL or missing references) //IL_02f1: Unknown result type (might be due to invalid IL or missing references) //IL_02f6: Unknown result type (might be due to invalid IL or missing references) //IL_02b5: Unknown result type (might be due to invalid IL or missing references) //IL_02ba: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Unknown result type (might be due to invalid IL or missing references) //IL_02c3: Unknown result type (might be due to invalid IL or missing references) //IL_02c8: Unknown result type (might be due to invalid IL or missing references) //IL_02cd: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_01ad: Unknown result type (might be due to invalid IL or missing references) //IL_014f: Unknown result type (might be due to invalid IL or missing references) //IL_0154: Unknown result type (might be due to invalid IL or missing references) //IL_0159: Unknown result type (might be due to invalid IL or missing references) //IL_015e: Unknown result type (might be due to invalid IL or missing references) //IL_02fe: Unknown result type (might be due to invalid IL or missing references) //IL_0303: Unknown result type (might be due to invalid IL or missing references) //IL_0305: Unknown result type (might be due to invalid IL or missing references) //IL_030a: Unknown result type (might be due to invalid IL or missing references) //IL_0312: Unknown result type (might be due to invalid IL or missing references) //IL_0317: Unknown result type (might be due to invalid IL or missing references) //IL_0319: Unknown result type (might be due to invalid IL or missing references) //IL_031e: Unknown result type (might be due to invalid IL or missing references) //IL_0326: Unknown result type (might be due to invalid IL or missing references) //IL_032b: Unknown result type (might be due to invalid IL or missing references) //IL_032f: Unknown result type (might be due to invalid IL or missing references) //IL_0334: Unknown result type (might be due to invalid IL or missing references) //IL_0339: Unknown result type (might be due to invalid IL or missing references) //IL_033e: Unknown result type (might be due to invalid IL or missing references) //IL_0346: Unknown result type (might be due to invalid IL or missing references) //IL_034b: Unknown result type (might be due to invalid IL or missing references) //IL_0350: Unknown result type (might be due to invalid IL or missing references) //IL_0355: Unknown result type (might be due to invalid IL or missing references) //IL_035a: Unknown result type (might be due to invalid IL or missing references) //IL_035f: Unknown result type (might be due to invalid IL or missing references) //IL_0364: Unknown result type (might be due to invalid IL or missing references) //IL_0366: Unknown result type (might be due to invalid IL or missing references) //IL_0371: Unknown result type (might be due to invalid IL or missing references) //IL_0376: Unknown result type (might be due to invalid IL or missing references) //IL_037b: Unknown result type (might be due to invalid IL or missing references) //IL_0380: Unknown result type (might be due to invalid IL or missing references) //IL_0382: Unknown result type (might be due to invalid IL or missing references) //IL_0384: Unknown result type (might be due to invalid IL or missing references) //IL_038f: Unknown result type (might be due to invalid IL or missing references) //IL_0394: Unknown result type (might be due to invalid IL or missing references) //IL_0399: Unknown result type (might be due to invalid IL or missing references) //IL_039e: Unknown result type (might be due to invalid IL or missing references) //IL_03a2: Unknown result type (might be due to invalid IL or missing references) //IL_03a4: Unknown result type (might be due to invalid IL or missing references) //IL_03a6: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: Unknown result type (might be due to invalid IL or missing references) //IL_03ad: Unknown result type (might be due to invalid IL or missing references) Fix factor = (Fix)0.15; Fix factor2 = (Fix)0.05; Fix small = (Fix)0.15; Fix large = (Fix)0.15; Fix factor3 = (Fix)3L; Fix factor4 = (Fix)9.1; Fix val = (Fix)0.15; for (int i = 0; i < PlayerHandler.Get().NumberOfPlayers(); i++) { previousAbilitySets[i] = abilitySets[i].Clone(); Attributes arg = RandomAttributesPlugin.attributes[i]; Attributes val2 = previousAttributes[i]; if (val2 == null) { ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Player {i} Previous attributes: null"); } else { ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Player {i} Previous attributes: {val2}"); } ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Player {i} Current attributes: {arg}"); int num = Updater.RandomInt(0, abilitySets[i].abilities.Count); for (int j = 0; j < abilitySets[i].abilities.Count; j++) { List<NamedSprite> sprites = SteamManager.instance.abilityIcons.sprites; if ((Object)(object)abilitySets[i].abilityIcons[j] == (Object)(object)sprites[1].associatedGameObject || (Updater.RandomFix(Fix.Zero, Fix.One) < val && j == num)) { NamedSprite val3 = sprites[Updater.RandomInt(2, sprites.Count)]; abilitySets[i].abilities[j] = val3.associatedGameObject; abilitySets[i].abilityIcons[j] = val3.sprite; } } abilitySets[i].SetToPlayer(PlayerHandler.Get().GetPlayer(i + 1)); } int num2 = 0; Attributes[] attributes = RandomAttributesPlugin.attributes; Fix val5 = default(Fix); Fix val6 = default(Fix); Fix val7 = default(Fix); foreach (Attributes val4 in attributes) { if (val4 != null) { previousAttributes[num2] = val4.Clone(); ((FixColor)(ref val4.color)).ToHSV(ref val5, ref val6, ref val7); val5 += RandomFromFactor(factor); val6 += RandomFromFactor(factor2); val7 += RandomFromFactor(factor2); Fix val8 = RandomFromTwoFactors(small, large); Fix val9 = RandomFromFactor(factor3); Fix val10 = RandomFromFactor(factor4); val4.scale += val8; if (val8 > 0L) { val4.speed -= val8 * (Fix)5L; } else { val4.speed -= val8 * (Fix)17.5392065208; } val4.speed += val9; val4.jumpStrength += val10; val4.jumpStrength += val9 * (Fix)2L; val4.jumpStrength += val8 * (Fix)50L; val7 -= val8 * (Fix)0.5; val6 -= val8 * (Fix)0.15; val4.color = FixColor.FromHSV(val5, val6, val7); num2++; continue; } break; } } public static Fix RandomFromFactor(Fix factor) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) return Updater.RandomFix(Fix.Zero, factor) - factor / (Fix)2L; } public static Fix RandomFromTwoFactors(Fix small, Fix large) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) return Updater.RandomFix(Fix.Zero, small + large) - small; } } public class AbilitySet { public List<GameObject> abilities; public List<Sprite> abilityIcons; public AbilitySet(List<GameObject> abilities, List<Sprite> abilityIcons) { this.abilities = abilities.ToArray().ToList(); this.abilityIcons = abilityIcons.ToArray().ToList(); } public AbilitySet(Player player) { abilities = player.Abilities.ToArray().ToList(); abilityIcons = player.AbilityIcons.ToArray().ToList(); } public void SetToPlayer(Player player) { player.Abilities = abilities.ToArray().ToList(); player.AbilityIcons = abilityIcons.ToArray().ToList(); } public AbilitySet Clone() { return new AbilitySet(abilities, abilityIcons); } public void CopyFrom(AbilitySet other) { abilities = other.abilities.ToArray().ToList(); abilityIcons = other.abilityIcons.ToArray().ToList(); } }