using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using InspectorExpressions;
using On.Voxels.TowerDefense;
using UnityEngine;
using Voxels.TowerDefense;
using Voxels.TowerDefense.CampaignGeneration.CampaignAc3;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace BBB
{
[BepInPlugin("nacu.bringbackberserkers", "Bring Back Berserkers", "1.0")]
public class Plugin : BaseUnityPlugin
{
public const string VERSION = "1.0";
public void OnEnable()
{
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
//IL_0012: Expected O, but got Unknown
GameSetup.Awake += new hook_Awake(AddBerserkerToSpawnPool);
((BaseUnityPlugin)this).Logger.LogInfo((object)"Bring Back Berserkers loaded");
}
private void AddBerserkerToSpawnPool(orig_Awake orig, GameSetup self)
{
orig.Invoke(self);
if (LevelStateObjectReferences.dict.TryGetValue("Viking_Berserker", out var _))
{
Object obj = LevelStateObjectReferences.dict["Viking_Berserker"];
ref LevelExpression probability = ref ((Component)((obj is VikingReference) ? obj : null)).GetComponent<LevelGuessable>().probability;
Object obj2 = LevelStateObjectReferences.dict["Viking_AxeThrower"];
probability = ((Component)((obj2 is VikingReference) ? obj2 : null)).GetComponent<LevelGuessable>().probability;
Object obj3 = LevelStateObjectReferences.dict["Viking_Berserker"];
((ExpressionSerialized)((Component)((obj3 is VikingReference) ? obj3 : null)).GetComponent<LevelRule>().condition).expression = "(fraction > 0.15 && fraction < 0.4) || (fraction > 0.55 && fraction < 0.8) || fraction > 0.95";
}
}
}
}
namespace System.Runtime.Versioning
{
public class TargetFrameworkAttribute : Attribute
{
public string FrameworkName { get; set; }
public string FrameworkDisplayName { get; set; }
public TargetFrameworkAttribute(string frameworkName)
{
FrameworkName = frameworkName;
}
}
}