Decompiled source of DineHybrid v0.0.1

DineHybrid.dll

Decompiled 2 years ago
using System;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using HarmonyLib;
using LethalLevelLoader;
using Microsoft.CodeAnalysis;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("DineHybrid")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyDescription("An experimental custom level replacement for 7-Dine. A combination of old and new Dine.")]
[assembly: AssemblyFileVersion("0.0.1.0")]
[assembly: AssemblyInformationalVersion("0.0.1")]
[assembly: AssemblyProduct("DineHybrid")]
[assembly: AssemblyTitle("DineHybrid")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.1.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace DineHybrid
{
	[BepInPlugin("DineHybrid", "DineHybrid", "0.0.1")]
	public class Plugin : BaseUnityPlugin
	{
		private readonly Harmony harmony = new Harmony("DineHybrid");

		public static Plugin Instance;

		private void Awake()
		{
			if (Instance == null)
			{
				Instance = this;
			}
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin DineHybrid is loaded!");
			harmony.PatchAll(typeof(DineHybridPatch));
		}

		public static void Log(string msg)
		{
			((BaseUnityPlugin)Instance).Logger.LogInfo((object)msg);
		}
	}
	public class DineHybridPatch
	{
		public static ExtendedLevel extendedLevelDine;

		public static ExtendedLevel extendedLevelDineHybrid;

		[HarmonyPatch(typeof(StartOfRound), "Awake")]
		[HarmonyPriority(1000)]
		private static void Postfix()
		{
			foreach (ExtendedLevel extendedLevel in PatchedContent.ExtendedLevels)
			{
				if (extendedLevel.SelectableLevel.PlanetName == "7 Dine")
				{
					extendedLevelDine = extendedLevel;
				}
				if (extendedLevel.SelectableLevel.PlanetName == "DineHybridDummy")
				{
					extendedLevelDineHybrid = extendedLevel;
				}
			}
			if ((Object)(object)extendedLevelDine != (Object)null && (Object)(object)extendedLevelDineHybrid != (Object)null)
			{
				extendedLevelDine.SceneSelections = extendedLevelDineHybrid.SceneSelections;
				extendedLevelDine.SelectableLevel.randomWeathers = extendedLevelDineHybrid.SelectableLevel.randomWeathers;
				extendedLevelDine.SelectableLevel.factorySizeMultiplier = extendedLevelDineHybrid.SelectableLevel.factorySizeMultiplier;
				extendedLevelDine.SelectableLevel.dungeonFlowTypes = extendedLevelDineHybrid.SelectableLevel.dungeonFlowTypes;
				extendedLevelDine.SelectableLevel.spawnableMapObjects = extendedLevelDineHybrid.SelectableLevel.spawnableMapObjects;
				extendedLevelDine.SelectableLevel.spawnableOutsideObjects = extendedLevelDineHybrid.SelectableLevel.spawnableOutsideObjects;
				extendedLevelDine.SelectableLevel.spawnableScrap = extendedLevelDineHybrid.SelectableLevel.spawnableScrap;
				extendedLevelDine.SelectableLevel.minScrap = extendedLevelDineHybrid.SelectableLevel.minScrap;
				extendedLevelDine.SelectableLevel.maxScrap = extendedLevelDineHybrid.SelectableLevel.maxScrap;
				extendedLevelDine.SelectableLevel.levelAmbienceClips = extendedLevelDineHybrid.SelectableLevel.levelAmbienceClips;
				extendedLevelDine.SelectableLevel.maxEnemyPowerCount = extendedLevelDineHybrid.SelectableLevel.maxEnemyPowerCount;
				extendedLevelDine.SelectableLevel.maxOutsideEnemyPowerCount = extendedLevelDineHybrid.SelectableLevel.maxOutsideEnemyPowerCount;
				extendedLevelDine.SelectableLevel.maxDaytimeEnemyPowerCount = extendedLevelDineHybrid.SelectableLevel.maxDaytimeEnemyPowerCount;
				extendedLevelDine.SelectableLevel.Enemies = extendedLevelDineHybrid.SelectableLevel.Enemies;
				extendedLevelDine.SelectableLevel.OutsideEnemies = extendedLevelDineHybrid.SelectableLevel.OutsideEnemies;
				extendedLevelDine.SelectableLevel.DaytimeEnemies = extendedLevelDineHybrid.SelectableLevel.DaytimeEnemies;
				extendedLevelDine.SelectableLevel.enemySpawnChanceThroughoutDay = extendedLevelDineHybrid.SelectableLevel.enemySpawnChanceThroughoutDay;
				extendedLevelDine.SelectableLevel.outsideEnemySpawnChanceThroughDay = extendedLevelDineHybrid.SelectableLevel.outsideEnemySpawnChanceThroughDay;
				extendedLevelDine.SelectableLevel.daytimeEnemySpawnChanceThroughDay = extendedLevelDineHybrid.SelectableLevel.daytimeEnemySpawnChanceThroughDay;
				extendedLevelDine.SelectableLevel.spawnProbabilityRange = extendedLevelDineHybrid.SelectableLevel.spawnProbabilityRange;
				extendedLevelDine.SelectableLevel.daytimeEnemiesProbabilityRange = extendedLevelDineHybrid.SelectableLevel.daytimeEnemiesProbabilityRange;
				extendedLevelDine.SelectableLevel.levelIncludesSnowFootprints = extendedLevelDineHybrid.SelectableLevel.levelIncludesSnowFootprints;
				Plugin.Log("Dine replaced with Dine Hybrid!");
			}
		}
	}
	public static class PluginInfo
	{
		public const string PLUGIN_GUID = "DineHybrid";

		public const string PLUGIN_NAME = "DineHybrid";

		public const string PLUGIN_VERSION = "0.0.1";
	}
}