using System; using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Configuration; using BepInEx.Core.Logging.Interpolation; using BepInEx.Logging; using BepInEx.NET.Common; using HarmonyLib; using ModSettingsMenu.Api; using RomesteadLocalizationAPI.Api; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")] [assembly: AssemblyCompany("TributeMultiplier")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("TributeMultiplier")] [assembly: AssemblyTitle("TributeMultiplier")] [assembly: AssemblyVersion("1.0.0.0")] [module: RefSafetyRules(11)] namespace TributeMultiplier; internal static class I18n { public static readonly RomesteadLocalizer L = RomesteadLocalization.For("local.romestead.tribute-multiplier"); } internal static class AddGodProgressPatch { public static void Prefix(ref float __1) { float num = Plugin.MultiplierEntry?.Value ?? 2f; if (!(num <= 1f)) { __1 *= num; } } } [BepInPlugin("local.romestead.tribute-multiplier", "Tribute Multiplier", "1.0.2")] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BasePlugin { public const string PluginGuid = "local.romestead.tribute-multiplier"; public const string PluginName = "Tribute Multiplier"; public const string PluginVersion = "1.0.2"; public static ManualLogSource Logger; public static ConfigEntry? MultiplierEntry; private Harmony _harmony; private bool _settingsRegistered; public override void Load() { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Expected O, but got Unknown //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Expected O, but got Unknown Logger = ((BasePlugin)this).Log; I18n.L.RegisterJson(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "localization.json")); _harmony = new Harmony("local.romestead.tribute-multiplier"); ApplyPatches(); RomesteadLocalization.LocalizationApplied += OnLocalizationApplied; ManualLogSource logger = Logger; bool flag = default(bool); BepInExInfoLogInterpolatedStringHandler val = new BepInExInfoLogInterpolatedStringHandler(9, 2, ref flag); if (flag) { ((BepInExLogInterpolatedStringHandler)val).AppendFormatted("Tribute Multiplier"); ((BepInExLogInterpolatedStringHandler)val).AppendLiteral(" "); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted("1.0.2"); ((BepInExLogInterpolatedStringHandler)val).AppendLiteral(" loaded."); } logger.LogInfo(val); } private ConfigDescription BuildDescription() { //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Expected O, but got Unknown return new ConfigDescription(I18n.L.Text("config.multiplier.description", Array.Empty()), (AcceptableValueBase)(object)new AcceptableValueRange(1f, 100f), new object[2] { ModSettingsTags.Section("General", I18n.L.Text("section.general", Array.Empty()), (int?)10, (bool?)null), ModSettingsTags.Entry(I18n.L.Text("entry.multiplier", Array.Empty()), I18n.L.Text("config.multiplier.description", Array.Empty()), (int?)1, (double?)1.0, (bool?)null) }); } private void OnLocalizationApplied(string locale) { //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0086: 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_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Expected O, but got Unknown //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Expected O, but got Unknown if (_settingsRegistered) { typeof(ConfigEntryBase).GetField("k__BackingField", BindingFlags.Instance | BindingFlags.NonPublic)?.SetValue(MultiplierEntry, BuildDescription()); } else { _settingsRegistered = true; MultiplierEntry = ((BasePlugin)this).Config.Bind("General", "Multiplier", 2f, BuildDescription()); } ModSettingsRegistry.Register("local.romestead.tribute-multiplier", I18n.L.Text("mod.name", Array.Empty()), ((BasePlugin)this).Config, new ModSettingsModOptions { Icon = "cog", Version = "1.0.2", Author = "wwwshe", Description = I18n.L.Text("mod.description", Array.Empty()), Order = 50 }); ManualLogSource logger = Logger; bool flag = default(bool); BepInExInfoLogInterpolatedStringHandler val = new BepInExInfoLogInterpolatedStringHandler(62, 2, ref flag); if (flag) { ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("[TributeMultiplier] Settings registered (locale: "); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted(RomesteadLocalization.CurrentLocale); ((BepInExLogInterpolatedStringHandler)val).AppendLiteral(") — "); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted(MultiplierEntry.Value); ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("x active."); } logger.LogInfo(val); } private void ApplyPatches() { //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Expected O, but got Unknown //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Expected O, but got Unknown MethodInfo methodInfo = null; Type type = null; Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies(); foreach (Assembly assembly in assemblies) { Type[] types; try { types = assembly.GetTypes(); } catch { continue; } Type[] array = types; foreach (Type type2 in array) { MethodInfo method = type2.GetMethod("AddGodProgress", BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic); if ((object)method != null) { methodInfo = method; type = type2; break; } } if ((object)methodInfo != null) { break; } } if ((object)methodInfo == null) { Logger.LogWarning((object)"[TributeMultiplier] AddGodProgress not found — patch skipped."); return; } ManualLogSource logger = Logger; bool flag = default(bool); BepInExInfoLogInterpolatedStringHandler val = new BepInExInfoLogInterpolatedStringHandler(32, 3, ref flag); if (flag) { ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("[TributeMultiplier] Patching "); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted(type.FullName); ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("."); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted(methodInfo.Name); ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("("); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted(string.Join(", ", Array.ConvertAll(methodInfo.GetParameters(), (ParameterInfo p) => p.ParameterType.Name + " " + p.Name))); ((BepInExLogInterpolatedStringHandler)val).AppendLiteral(")"); } logger.LogInfo(val); _harmony.Patch((MethodBase)methodInfo, new HarmonyMethod(typeof(AddGodProgressPatch), "Prefix", (Type[])null), (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null); } public override bool Unload() { RomesteadLocalization.LocalizationApplied -= OnLocalizationApplied; _harmony.UnpatchSelf(); return true; } }