Decompiled source of Bounties v3.0.21

plugins/Digitalroot.Valheim.Bounties.dll

Decompiled a day ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using System.Text;
using System.Threading;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using BepInEx.Logging;
using Common;
using Digitalroot.Valheim.Bounties.CMB;
using Digitalroot.Valheim.Bounties.Extensions;
using Digitalroot.Valheim.Bounties.Providers;
using Digitalroot.Valheim.Common;
using Digitalroot.Valheim.Common.Json;
using Digitalroot.Valheim.Common.Names.BearsMod;
using Digitalroot.Valheim.Common.Names.FriendliesMod;
using Digitalroot.Valheim.Common.Names.MonsterLabZMod;
using Digitalroot.Valheim.Common.Names.MonsternomiconMod;
using Digitalroot.Valheim.Common.Names.RRRMod;
using Digitalroot.Valheim.Common.Names.SupplementalRaidsMod;
using Digitalroot.Valheim.Common.Names.Vanilla;
using EpicLoot;
using EpicLoot.Adventure;
using EpicLoot.Adventure.Feature;
using EpicLoot.Patching;
using HarmonyLib;
using JetBrains.Annotations;
using SimpleJson;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyTitle("Digitalroot.ValheimBounties")]
[assembly: AssemblyDescription("Digitalroot's Bounties")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Digitalroot Technologies")]
[assembly: AssemblyProduct("Digitalroot Valheim Mods")]
[assembly: AssemblyCopyright("Copyright © Digitalroot Technologies 2021 - 2024")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("3ccc4dc1-5b17-47c1-b996-ca03b8639a61")]
[assembly: AssemblyFileVersion("3.0.21")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("3.0.21.0")]
[module: UnverifiableCode]
namespace Digitalroot.Valheim.Bounties
{
	[BepInPlugin("digitalroot.mods.bounties", "Digitalroot's Bounties", "3.0.21")]
	[BepInDependency("randyknapp.mods.epicloot", "0.9.39")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class Main : BaseUnityPlugin, ITraceableLogging
	{
		private Harmony _harmony;

		[UsedImplicitly]
		public static ConfigEntry<int> NexusId;

		public static Main Instance;

		private int _bountiesCount;

		private readonly List<AbstractBounties> _bountiesList = new List<AbstractBounties>();

		private readonly string _patchPath;

		public const string MonsterLabZ = "MonsterLabZ";

		public const string Bears = "som.Bears";

		public const string SpawnThat = "asharppen.valheim.spawn_that";

		public const string RRRCore = "com.alexanderstrada.rrrcore";

		public const string RRRNpcs = "com.alexanderstrada.rrrnpcs";

		public const string RRRMonsters = "com.alexanderstrada.rrrmonsters";

		private bool _isBearsBountiesEnabled = true;

		private bool _isFriendliesBountiesEnabled = true;

		private bool _isMonsterLabZBountiesEnabled = true;

		private bool _isMonsternomiconBountiesEnabled = true;

		private bool _isRRRMonsterBountiesEnabled = true;

		private bool _isSupplementalRaidsBountiesEnabled = true;

		private bool _isVanillaBountiesEnabled = true;

		public const string Version = "3.0.21";

		public const string Name = "Digitalroot's Bounties";

		public const string Guid = "digitalroot.mods.bounties";

		public const string Namespace = "Digitalroot.ValheimBounties";

		private static List<BountyTargetConfig> Bounties => AdventureDataManager.Config.Bounties.Targets;

		public SoftDependencies SoftDependencies { get; private set; }

		public string Source => "Digitalroot.ValheimBounties";

		public bool EnableTrace { get; }

		public Main()
		{
			Instance = this;
			EnableTrace = false;
			Log.RegisterSource(Instance);
			Log.Trace(Instance, "Digitalroot.ValheimBounties." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
			_patchPath = Path.Combine(Paths.ConfigPath, "EpicLoot", "patches", "Digitalroot", "Bounties");
		}

		[UsedImplicitly]
		private void Awake()
		{
			try
			{
				Log.Trace(Instance, "Digitalroot.ValheimBounties." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
				NexusId = ((BaseUnityPlugin)this).Config.Bind<int>("General", "NexusID", 1401, "Nexus mod ID for updates");
				SoftDependencies = new SoftDependencies();
				_harmony = Harmony.CreateAndPatchAll(typeof(Main).Assembly, "digitalroot.mods.bounties");
				Log.Trace(Instance, "_patchPath: " + _patchPath);
			}
			catch (Exception e)
			{
				Log.Error(Instance, e);
			}
		}

		[UsedImplicitly]
		private void OnDestroy()
		{
			try
			{
				Log.Trace(Instance, "Digitalroot.ValheimBounties." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
				Harmony harmony = _harmony;
				if (harmony != null)
				{
					harmony.UnpatchSelf();
				}
			}
			catch (Exception e)
			{
				Log.Error(Instance, e);
			}
		}

		public void AddToBountiesCollection(AbstractBounties bounties)
		{
			try
			{
				Log.Trace(Instance, "Digitalroot.ValheimBounties." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
				if (!_bountiesList.Any((AbstractBounties bountiesItem) => bountiesItem.GetType().Name == bounties.GetType().Name))
				{
					_bountiesList.Add(bounties);
				}
			}
			catch (Exception e)
			{
				Log.Error(Instance, e);
			}
		}

		public void ConfigureBounties()
		{
			try
			{
				Log.Trace(Instance, "Digitalroot.ValheimBounties." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
				lock (Instance)
				{
					Log.Trace(Instance, "********** [Bounties Enabled] **********");
					Log.Trace(Instance, $"_isBearsBountiesEnabled : {_isBearsBountiesEnabled}");
					Log.Trace(Instance, $"_isFriendliesBountiesEnabled : {_isFriendliesBountiesEnabled}");
					Log.Trace(Instance, $"_isMonsterLabZBountiesEnabled : {_isMonsterLabZBountiesEnabled}");
					Log.Trace(Instance, $"_isMonsternomiconBountiesEnabled : {_isMonsternomiconBountiesEnabled}");
					Log.Trace(Instance, $"_isRRRMonsterBountiesEnabled : {_isRRRMonsterBountiesEnabled}");
					Log.Trace(Instance, $"_isSupplementalRaidsBountiesEnabled : {_isSupplementalRaidsBountiesEnabled}");
					Log.Trace(Instance, $"_isVanillaBountiesEnabled : {_isVanillaBountiesEnabled}");
					Log.Debug(Instance, SoftDependencies.ToString());
					Log.Trace(Instance, "********** [Bounties Enabled] **********");
					Log.Trace(Instance, $"[{MethodBase.GetCurrentMethod()?.DeclaringType?.Name}] _bountiesList.Count : {_bountiesList.Count}");
					if (_isBearsBountiesEnabled)
					{
						AddToBountiesCollection(new BearsBounties());
					}
					if (_isMonsterLabZBountiesEnabled)
					{
						AddToBountiesCollection(new MonsterLabZBounties());
					}
					if (_isMonsternomiconBountiesEnabled)
					{
						AddToBountiesCollection(new MonsternomiconBounties());
					}
					if (_isRRRMonsterBountiesEnabled)
					{
						AddToBountiesCollection(new RRRMonsterBounties());
					}
					if (_isSupplementalRaidsBountiesEnabled)
					{
						AddToBountiesCollection(new SupplementalRaidsBounties());
					}
					if (_isVanillaBountiesEnabled)
					{
						AddToBountiesCollection(new VanillaBounties());
					}
					CreateBountiesPatchs();
				}
			}
			catch (Exception ex)
			{
				Log.Error(Instance, ex.Message);
				Log.Error(Instance, ex);
			}
		}

		public void OnPatchZNetSceneAwake(ref ZNetScene zNetScene)
		{
			try
			{
				Log.Trace(Instance, "Digitalroot.ValheimBounties." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
				ConfigureBounties();
			}
			catch (Exception e)
			{
				Log.Error(Instance, e);
			}
		}

		public void DisableBearsBounties()
		{
			_isBearsBountiesEnabled = false;
		}

		public void DisableFriendliesBounties()
		{
			_isFriendliesBountiesEnabled = false;
		}

		public void DisableMonsterLabZBounties()
		{
			_isMonsterLabZBountiesEnabled = false;
		}

		public void DisableMonsternomiconBounties()
		{
			_isMonsternomiconBountiesEnabled = false;
		}

		public void DisableRRRMonsterBounties()
		{
			_isRRRMonsterBountiesEnabled = false;
		}

		public void DisableSupplementalRaidsBounties()
		{
			_isSupplementalRaidsBountiesEnabled = false;
		}

		public void DisableVanillaBounties()
		{
			_isVanillaBountiesEnabled = false;
		}

		[UsedImplicitly]
		public void DisabledAllBuiltinBounties()
		{
			try
			{
				Log.Trace(Instance, "Digitalroot.ValheimBounties." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
				DisableBearsBounties();
				DisableFriendliesBounties();
				DisableMonsterLabZBounties();
				DisableMonsternomiconBounties();
				DisableRRRMonsterBounties();
				DisableSupplementalRaidsBounties();
				DisableVanillaBounties();
			}
			catch (Exception e)
			{
				Log.Error(Instance, e);
			}
		}

		private void CreateBountiesPatchs()
		{
			//IL_018d: 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_0195: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c7: Unknown result type (might be due to invalid IL or missing references)
			try
			{
				Log.Trace(Instance, "Digitalroot.ValheimBounties." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
				string text = "adventuredata.json";
				Log.Debug(Instance, "Creating Patch files for bounties.");
				Log.Trace(Instance, $"_bountiesList == null : {_bountiesList == null}");
				if (_bountiesList == null)
				{
					return;
				}
				Log.Trace(Instance, $"_bountiesList.Count : {_bountiesList.Count}");
				foreach (AbstractBounties bounties in _bountiesList)
				{
					Log.Trace(Instance, "bountiesCollection.GetType().FullName : " + bounties.GetType().FullName);
					Log.Trace(Instance, $"bountiesCollection.IsDependenciesResolved : {bounties.IsDependenciesResolved}");
					if (!bounties.IsDependenciesResolved)
					{
						continue;
					}
					FileInfo fileInfo = new FileInfo(Path.Combine(_patchPath, bounties.GetType().Name + "_" + text));
					BountyTargetConfigExtensions.DigitalrootPatchFile digitalrootPatchFile = new BountyTargetConfigExtensions.DigitalrootPatchFile
					{
						Author = "Digitalroot",
						TargetFile = text,
						Priority = 100,
						RequireAll = true,
						Patches = new List<BountyTargetConfigExtensions.DigitalrootPatch>()
					};
					foreach (Biome item in Enum.GetValues(typeof(Biome)).Cast<Biome>())
					{
						List<BountyTargetConfig> list = bounties.GetBounties(item)?.ToList();
						if (list == null)
						{
							continue;
						}
						Log.Debug(Instance, $"Adding {list.Count} bounties for {item}");
						foreach (BountyTargetConfig item2 in list.Where((BountyTargetConfig b) => !b.TargetID.StartsWith("RRRN_")))
						{
							digitalrootPatchFile.Patches.Add(item2.ToPatch((PatchAction)4));
						}
					}
					if (!Directory.Exists(fileInfo.DirectoryName))
					{
						Directory.CreateDirectory(fileInfo.DirectoryName ?? throw new InvalidOperationException("DirectoryName is null."));
					}
					File.WriteAllText(fileInfo.FullName, digitalrootPatchFile.ToJson());
					Log.Debug(Instance, $"Wrote {digitalrootPatchFile.Patches.Count} bounties to {fileInfo.FullName}.");
				}
			}
			catch (Exception e)
			{
				Log.Error(Instance, e);
			}
		}

		[Conditional("DEBUG")]
		[UsedImplicitly]
		private static void PrintBounties()
		{
			//IL_00b6: Unknown result type (might be due to invalid IL or missing references)
			try
			{
				Log.Trace(Instance, "Digitalroot.ValheimBounties." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
				Log.Trace(Instance, $"Loaded Bounties: {Bounties.Count}");
				Log.Trace(Instance, "*******************************");
				foreach (BountyTargetConfig bounty in Bounties)
				{
					Log.Trace(Instance, "TargetID: " + bounty.TargetID);
					Log.Trace(Instance, $"Biome: {bounty.Biome}");
					Log.Trace(Instance, $"RewardCoins: {bounty.RewardCoins}");
					Log.Trace(Instance, $"RewardIron: {bounty.RewardIron}");
					Log.Trace(Instance, $"RewardGold: {bounty.RewardGold}");
					Log.Trace(Instance, "[Adds]");
					Log.Trace(Instance, $"Adds.Count: {bounty.Adds.Count}");
					foreach (BountyTargetAddConfig add in bounty.Adds)
					{
						Log.Trace(Instance, "Add.ID: " + add.ID);
						Log.Trace(Instance, $"Add.Count: {add.Count}");
					}
					Log.Trace(Instance, "*******************************");
				}
			}
			catch (Exception e)
			{
				Log.Error(Instance, e);
			}
		}

		[Conditional("DEBUG")]
		[UsedImplicitly]
		private static void PrintBountiesTable()
		{
			//IL_00a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b5: Unknown result type (might be due to invalid IL or missing references)
			try
			{
				Log.Trace(Instance, "Digitalroot.ValheimBounties." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
				Log.Trace(Instance, $"Loaded Bounties: {Bounties.Count}");
				Log.Trace(Instance, "*******************************");
				foreach (Biome biome in Enum.GetValues(typeof(Biome)).Cast<Biome>())
				{
					Log.Trace(Instance, $"## {biome}");
					Log.Trace(Instance, "<table>");
					Log.Trace(Instance, "<tr><th>TargetID</th><th>Iron</th><th>Gold</th><th>Coins</th><th>Adds</th></tr>");
					foreach (BountyTargetConfig item in Bounties.Where((BountyTargetConfig b) => b.Biome == biome))
					{
						Log.Trace(Instance, string.Format("<tr><td>{0}</td><td>{1}</td><td>{2}</td><td>{3}</td><td>{4}</td></tr>", item.TargetID, item.RewardIron, item.RewardGold, item.RewardCoins, (item.Adds.Count == 0) ? ":x:" : ":heavy_check_mark:"));
					}
					Log.Trace(Instance, "</table>");
					Log.Trace(Instance, Environment.NewLine);
				}
				Log.Trace(Instance, "*******************************");
			}
			catch (Exception e)
			{
				Log.Error(Instance, e);
			}
		}

		[Obsolete]
		private void AddBounties()
		{
			//IL_015e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0163: Unknown result type (might be due to invalid IL or missing references)
			//IL_0165: Unknown result type (might be due to invalid IL or missing references)
			//IL_0193: Unknown result type (might be due to invalid IL or missing references)
			try
			{
				Log.Trace(Instance, "Digitalroot.ValheimBounties." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
				if (!EpicLoot.IsAdventureModeEnabled())
				{
					return;
				}
				Log.Debug(Instance, "Adding Bounties to EpicLoot");
				Log.Trace(Instance, $"_bountiesList == null : {_bountiesList == null}");
				if (_bountiesList == null)
				{
					return;
				}
				Log.Trace(Instance, $"_bountiesList.Count : {_bountiesList.Count}");
				foreach (AbstractBounties bounties in _bountiesList)
				{
					Log.Trace(Instance, "bountiesCollection.GetType().FullName : " + bounties.GetType().FullName);
					Log.Trace(Instance, $"bountiesCollection.IsDependenciesResolved : {bounties.IsDependenciesResolved}");
					Log.Trace(Instance, $"bountiesCollection.IsLoaded : {bounties.IsLoaded}");
					if (bounties.IsLoaded || !bounties.IsDependenciesResolved)
					{
						continue;
					}
					foreach (Biome item in Enum.GetValues(typeof(Biome)).Cast<Biome>())
					{
						List<BountyTargetConfig> list = bounties.GetBounties(item)?.ToList();
						if (list != null)
						{
							Log.Debug(Instance, $"Adding {list.Count} bounties for {item}");
							Bounties.AddRange(list.Where((BountyTargetConfig b) => !b.TargetID.StartsWith("RRRN_")));
						}
					}
					bounties.OnLoaded();
				}
				_bountiesCount = Bounties.Count;
				Log.Debug(Instance, $"Loaded Bounties: {_bountiesCount}");
			}
			catch (Exception e)
			{
				Log.Error(Instance, e);
			}
		}

		[Obsolete]
		private void ClearBounties()
		{
			try
			{
				Log.Trace(Instance, "Digitalroot.ValheimBounties." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
				Log.Debug(Instance, $"Removing default bounties: {Bounties.Count}");
				Bounties.Clear();
				Log.Debug(Instance, $"Bounties should be cleared: {Bounties.Count}");
				Log.Debug(Instance, $"Removing bounties from internal _bountiesList: {_bountiesList.Count}");
				_bountiesList.Clear();
				Log.Debug(Instance, $"_bountiesList should be cleared: {_bountiesList.Count}");
			}
			catch (Exception e)
			{
				Log.Error(Instance, e);
			}
		}

		[Obsolete]
		private bool IsBountyListCurrent(out IEnumerable<AbstractBounties> missingBounties)
		{
			try
			{
				Log.Trace(Instance, "Digitalroot.ValheimBounties." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
				Log.Trace(Instance, $"[{MethodBase.GetCurrentMethod()?.DeclaringType?.Name}] _bountiesCount == 0 : {_bountiesCount == 0}");
				Log.Trace(Instance, $"[{MethodBase.GetCurrentMethod()?.DeclaringType?.Name}] _bountiesCount != Bounties.Count : {_bountiesCount != Bounties.Count}");
				Log.Trace(Instance, $"[{MethodBase.GetCurrentMethod()?.DeclaringType?.Name}] _bountiesCount : {_bountiesCount}");
				Log.Trace(Instance, $"[{MethodBase.GetCurrentMethod()?.DeclaringType?.Name}] Bounties.Count : {Bounties.Count}");
				Log.Trace(Instance, $"[{MethodBase.GetCurrentMethod()?.DeclaringType?.Name}] _bountiesList.Any(bounties => !bounties.IsLoaded && bounties.IsDependenciesResolved) : {_bountiesList.Any((AbstractBounties bounties) => !bounties.IsLoaded && bounties.IsDependenciesResolved)}");
				missingBounties = _bountiesList.Where((AbstractBounties bounties) => !bounties.IsLoaded && bounties.IsDependenciesResolved);
				foreach (AbstractBounties missingBounty in missingBounties)
				{
					Log.Trace(Instance, "[" + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "] Missing bounties for : " + missingBounty.GetType().Name);
				}
				if (_bountiesList.Any((AbstractBounties bounties) => !bounties.IsLoaded && bounties.IsDependenciesResolved))
				{
					return false;
				}
				return _bountiesCount != 0 && _bountiesCount == Bounties.Count;
			}
			catch (Exception e)
			{
				Log.Error(Instance, e);
			}
			missingBounties = null;
			return false;
		}

		[Obsolete]
		public void OnStoreGuiShow(ref StoreGui storeGui)
		{
			try
			{
				Log.Trace(Instance, "Digitalroot.ValheimBounties." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
				Transform val = ((Component)storeGui).transform.Find("MerchantPanel");
				if ((Object)(object)val == (Object)null)
				{
					Log.Debug(Instance, "[" + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "] MerchantPanel not ready - skipping");
				}
				else
				{
					GameObjectExtensions.RequireComponent<MerchantPanelLoader>(((Component)val).gameObject).MerchantPanelCmb = ((Component)val).GetComponent<MerchantPanel>();
				}
			}
			catch (Exception e)
			{
				Log.Error(Instance, e);
			}
		}
	}
	[UsedImplicitly]
	public class Patch
	{
		[HarmonyBefore(new string[] { "org.bepinex.plugins.foodstaminaregen" })]
		[HarmonyAfter(new string[] { "randyknapp.mods.epicloot", "som.Bears", "DYBAssets" })]
		[HarmonyPatch(typeof(ZNetScene), "Awake")]
		public class PatchZNetSceneAwake
		{
			[UsedImplicitly]
			[HarmonyPostfix]
			[HarmonyPriority(400)]
			public static void Postfix([NotNull] ref ZNetScene __instance)
			{
				try
				{
					Log.Trace(Main.Instance, "Digitalroot.ValheimBounties." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
					if (!Utils.IsZNetSceneReady())
					{
						Log.Debug(Main.Instance, "[" + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "] ObjectDB not ready - skipping");
					}
					else
					{
						Main.Instance.OnPatchZNetSceneAwake(ref __instance);
					}
				}
				catch (Exception e)
				{
					Log.Error(Main.Instance, e);
				}
			}
		}
	}
	public class SoftDependencies
	{
		public bool Bears { get; }

		public bool Friendlies
		{
			get
			{
				if ((Object)(object)ZNetScene.instance != (Object)null)
				{
					return (Object)(object)ZNetScene.instance.GetPrefab(Digitalroot.Valheim.Common.Names.FriendliesMod.PrefabNames.Ashe) != (Object)null;
				}
				return false;
			}
		}

		public bool MonsterLabZ { get; }

		public bool Monsternomicon => (Object)(object)ZNetScene.instance.GetPrefab(Digitalroot.Valheim.Common.Names.MonsternomiconMod.PrefabNames.AngryFrozenCorpse) != (Object)null;

		public bool RRRCore { get; }

		public bool RRRMonsters { get; }

		public bool RRRNpcs { get; }

		public bool SpawnThat { get; }

		public bool SupplementalRaids
		{
			get
			{
				if ((Object)(object)ZNetScene.instance != (Object)null)
				{
					return (Object)(object)ZNetScene.instance.GetPrefab(Digitalroot.Valheim.Common.Names.SupplementalRaidsMod.PrefabNames.EikthyrBoar) != (Object)null;
				}
				return false;
			}
		}

		public SoftDependencies()
		{
			Bears = Utils.DoesPluginExist("som.Bears");
			MonsterLabZ = Utils.DoesPluginExist("MonsterLabZ");
			RRRCore = Utils.DoesPluginExist("com.alexanderstrada.rrrcore");
			RRRNpcs = Utils.DoesPluginExist("com.alexanderstrada.rrrnpcs");
			RRRMonsters = Utils.DoesPluginExist("com.alexanderstrada.rrrmonsters");
			SpawnThat = Utils.DoesPluginExist("asharppen.valheim.spawn_that");
		}

		public override string ToString()
		{
			return "Soft Dependencies " + Environment.NewLine + string.Format("{0} : {1}{2}", "Bears", Bears, Environment.NewLine) + string.Format("{0} : {1}{2}", "Friendlies", Friendlies, Environment.NewLine) + string.Format("{0} : {1}{2}", "MonsterLabZ", MonsterLabZ, Environment.NewLine) + string.Format("{0} : {1}{2}", "Monsternomicon", Monsternomicon, Environment.NewLine) + string.Format("{0} : {1}{2}", "RRRCore", RRRCore, Environment.NewLine) + string.Format("{0} : {1}{2}", "RRRNpcs", RRRNpcs, Environment.NewLine) + string.Format("{0} : {1}{2}", "RRRMonsters", RRRMonsters, Environment.NewLine) + string.Format("{0} : {1}{2}", "SpawnThat", SpawnThat, Environment.NewLine) + string.Format("{0} : {1}{2}", "SupplementalRaids", SupplementalRaids, Environment.NewLine);
		}
	}
}
namespace Digitalroot.Valheim.Bounties.Providers
{
	public abstract class AbstractBounties
	{
		private readonly Func<Biome, IEnumerable<string>> _bossNames;

		private readonly Func<Biome, IEnumerable<string>> _enemyNames;

		public virtual bool IsDependenciesResolved { get; protected set; }

		public bool IsLoaded { get; private set; }

		protected AbstractBounties()
		{
		}

		protected AbstractBounties(Func<Biome, IEnumerable<string>> enemyNames = null, Func<Biome, IEnumerable<string>> bossNames = null)
		{
			_enemyNames = enemyNames;
			_bossNames = bossNames;
		}

		public void OnLoaded()
		{
			Log.Trace(Main.Instance, "Digitalroot.ValheimBounties." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
			IsLoaded = true;
		}

		protected virtual int GetCoins(Biome biome, uint add = 0u)
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0003: Invalid comparison between Unknown and I4
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Invalid comparison between Unknown and I4
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			//IL_002f: Expected I4, but got Unknown
			//IL_0040: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: Invalid comparison between Unknown and I4
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0032: Invalid comparison between Unknown and I4
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			//IL_004e: Invalid comparison between Unknown and I4
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_0037: Invalid comparison between Unknown and I4
			int num;
			if ((int)biome <= 32)
			{
				switch ((int)biome)
				{
				case 1:
					goto IL_0052;
				case 8:
					goto IL_0057;
				case 2:
					goto IL_005c;
				case 4:
					goto IL_0061;
				case 0:
					goto IL_007f;
				case 3:
				case 5:
				case 6:
				case 7:
					goto IL_0083;
				}
				if ((int)biome != 16)
				{
					if ((int)biome != 32)
					{
						goto IL_0083;
					}
					num = 70;
				}
				else
				{
					num = 50;
				}
			}
			else if ((int)biome != 64)
			{
				if ((int)biome != 256)
				{
					if ((int)biome != 512)
					{
						goto IL_0083;
					}
					num = 60;
				}
				else
				{
					num = 30;
				}
			}
			else
			{
				num = 80;
			}
			goto IL_0085;
			IL_005c:
			num = 30;
			goto IL_0085;
			IL_007f:
			num = 1;
			goto IL_0085;
			IL_0052:
			num = 10;
			goto IL_0085;
			IL_0085:
			int num2 = num;
			return Convert.ToInt16(add) + num2;
			IL_0083:
			num = 1;
			goto IL_0085;
			IL_0057:
			num = 20;
			goto IL_0085;
			IL_0061:
			num = 40;
			goto IL_0085;
		}

		protected virtual int GetIron(Biome biome, uint add = 0u)
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0003: Invalid comparison between Unknown and I4
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Invalid comparison between Unknown and I4
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			//IL_002f: Expected I4, but got Unknown
			//IL_0040: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: Invalid comparison between Unknown and I4
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0032: Invalid comparison between Unknown and I4
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			//IL_004e: Invalid comparison between Unknown and I4
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_0037: Invalid comparison between Unknown and I4
			int num;
			if ((int)biome <= 32)
			{
				switch ((int)biome)
				{
				case 1:
					goto IL_0052;
				case 8:
					goto IL_0056;
				case 2:
					goto IL_005a;
				case 4:
					goto IL_005e;
				case 0:
					goto IL_0076;
				case 3:
				case 5:
				case 6:
				case 7:
					goto IL_007a;
				}
				if ((int)biome != 16)
				{
					if ((int)biome != 32)
					{
						goto IL_007a;
					}
					num = 6;
				}
				else
				{
					num = 5;
				}
			}
			else if ((int)biome != 64)
			{
				if ((int)biome != 256)
				{
					if ((int)biome != 512)
					{
						goto IL_007a;
					}
					num = 5;
				}
				else
				{
					num = 4;
				}
			}
			else
			{
				num = 7;
			}
			goto IL_007c;
			IL_005a:
			num = 3;
			goto IL_007c;
			IL_0076:
			num = 0;
			goto IL_007c;
			IL_0052:
			num = 1;
			goto IL_007c;
			IL_007c:
			int num2 = num;
			return Convert.ToInt16(add) + num2;
			IL_007a:
			num = 0;
			goto IL_007c;
			IL_0056:
			num = 2;
			goto IL_007c;
			IL_005e:
			num = 4;
			goto IL_007c;
		}

		protected virtual int GetGold(Biome biome, uint add = 0u)
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0003: Invalid comparison between Unknown and I4
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Invalid comparison between Unknown and I4
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			//IL_002f: Expected I4, but got Unknown
			//IL_0040: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: Invalid comparison between Unknown and I4
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0032: Invalid comparison between Unknown and I4
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			//IL_004e: Invalid comparison between Unknown and I4
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_0037: Invalid comparison between Unknown and I4
			int num;
			if ((int)biome <= 32)
			{
				switch ((int)biome)
				{
				case 1:
					goto IL_0052;
				case 8:
					goto IL_0056;
				case 2:
					goto IL_005a;
				case 4:
					goto IL_005e;
				case 0:
					goto IL_0076;
				case 3:
				case 5:
				case 6:
				case 7:
					goto IL_007a;
				}
				if ((int)biome != 16)
				{
					if ((int)biome != 32)
					{
						goto IL_007a;
					}
					num = 2;
				}
				else
				{
					num = 1;
				}
			}
			else if ((int)biome != 64)
			{
				if ((int)biome != 256)
				{
					if ((int)biome != 512)
					{
						goto IL_007a;
					}
					num = 1;
				}
				else
				{
					num = 0;
				}
			}
			else
			{
				num = 2;
			}
			goto IL_007c;
			IL_005a:
			num = 0;
			goto IL_007c;
			IL_0076:
			num = 0;
			goto IL_007c;
			IL_0052:
			num = 0;
			goto IL_007c;
			IL_007c:
			int num2 = num;
			return Convert.ToInt16(add) + num2;
			IL_007a:
			num = 0;
			goto IL_007c;
			IL_0056:
			num = 0;
			goto IL_007c;
			IL_005e:
			num = 0;
			goto IL_007c;
		}

		public IEnumerable<BountyTargetConfig> GetBounties(Biome biome)
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0003: Invalid comparison between Unknown and I4
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Invalid comparison between Unknown and I4
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			//IL_002f: Expected I4, but got Unknown
			//IL_0040: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: Invalid comparison between Unknown and I4
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0032: Invalid comparison between Unknown and I4
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			//IL_004e: Invalid comparison between Unknown and I4
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_0037: Invalid comparison between Unknown and I4
			if ((int)biome <= 32)
			{
				switch ((int)biome)
				{
				default:
					if ((int)biome != 16)
					{
						if ((int)biome != 32)
						{
							break;
						}
						return GetAshLandsBounties();
					}
					return GetPlainsBounties();
				case 1:
					return GetMeadowsBounties();
				case 8:
					return GetBlackForestBounties();
				case 2:
					return GetSwampBounties();
				case 4:
					return GetMountainBounties();
				case 0:
					return null;
				case 3:
				case 5:
				case 6:
				case 7:
					break;
				}
			}
			else
			{
				if ((int)biome == 64)
				{
					return GetDeepNorthBounties();
				}
				if ((int)biome == 256)
				{
					return GetOceanBounties();
				}
				if ((int)biome == 512)
				{
					return GetMistlandsBounties();
				}
			}
			return null;
		}

		private IEnumerable<BountyTargetConfig> GetBountiesByBiome(Biome biome)
		{
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0010: Unknown result type (might be due to invalid IL or missing references)
			if (_enemyNames != null)
			{
				foreach (string item in _enemyNames(biome))
				{
					yield return new BountyTargetConfig
					{
						TargetID = item,
						Biome = biome,
						RewardCoins = GetCoins(biome),
						RewardIron = GetIron(biome),
						RewardGold = GetGold(biome)
					};
				}
			}
			if (_bossNames == null)
			{
				yield break;
			}
			foreach (string item2 in _bossNames(biome))
			{
				yield return new BountyTargetConfig
				{
					TargetID = item2,
					Biome = biome,
					RewardCoins = GetCoins(biome),
					RewardIron = GetIron(biome),
					RewardGold = GetGold(biome)
				};
			}
		}

		protected virtual IEnumerable<BountyTargetConfig> FilterResults(IEnumerable<BountyTargetConfig> bountyTargetConfigs)
		{
			return bountyTargetConfigs;
		}

		protected virtual IEnumerable<BountyTargetConfig> GetMeadowsBounties()
		{
			return FilterResults(GetBountiesByBiome((Biome)1));
		}

		protected virtual IEnumerable<BountyTargetConfig> GetBlackForestBounties()
		{
			return FilterResults(GetBountiesByBiome((Biome)8));
		}

		protected virtual IEnumerable<BountyTargetConfig> GetSwampBounties()
		{
			return FilterResults(GetBountiesByBiome((Biome)2));
		}

		protected virtual IEnumerable<BountyTargetConfig> GetMountainBounties()
		{
			return FilterResults(GetBountiesByBiome((Biome)4));
		}

		protected virtual IEnumerable<BountyTargetConfig> GetPlainsBounties()
		{
			return FilterResults(GetBountiesByBiome((Biome)16));
		}

		protected virtual IEnumerable<BountyTargetConfig> GetOceanBounties()
		{
			return FilterResults(GetBountiesByBiome((Biome)256));
		}

		protected virtual IEnumerable<BountyTargetConfig> GetMistlandsBounties()
		{
			return FilterResults(GetBountiesByBiome((Biome)512));
		}

		protected virtual IEnumerable<BountyTargetConfig> GetAshLandsBounties()
		{
			return FilterResults(GetBountiesByBiome((Biome)32));
		}

		protected virtual IEnumerable<BountyTargetConfig> GetDeepNorthBounties()
		{
			return FilterResults(GetBountiesByBiome((Biome)64));
		}
	}
	public class BearsBounties : AbstractBounties
	{
		public override bool IsDependenciesResolved => Main.Instance.SoftDependencies.Bears;

		public BearsBounties()
			: base(Digitalroot.Valheim.Common.Names.BearsMod.EnemyNames.AllNamesByBiome)
		{
		}

		protected override IEnumerable<BountyTargetConfig> GetMountainBounties()
		{
			for (int i = 0; i < 3; i++)
			{
				yield return new BountyTargetConfig
				{
					TargetID = Digitalroot.Valheim.Common.Names.BearsMod.EnemyNames.Bear,
					Biome = (Biome)4,
					RewardCoins = GetCoins((Biome)4, 10u),
					RewardIron = GetIron((Biome)4),
					RewardGold = GetGold((Biome)4)
				};
			}
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.BearsMod.EnemyNames.Bear,
				Biome = (Biome)4,
				RewardCoins = GetCoins((Biome)4),
				RewardIron = GetIron((Biome)4, 1u),
				RewardGold = GetGold((Biome)4),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.BearsMod.EnemyNames.BearCub,
						Count = 2
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.BearsMod.EnemyNames.Bear,
				Biome = (Biome)4,
				RewardCoins = GetCoins((Biome)4),
				RewardIron = GetIron((Biome)4),
				RewardGold = GetGold((Biome)4, 1u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.BearsMod.EnemyNames.Bear,
						Count = 1
					},
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.BearsMod.EnemyNames.BearCub,
						Count = 4
					}
				}
			};
		}

		protected override IEnumerable<BountyTargetConfig> GetDeepNorthBounties()
		{
			for (int i = 0; i < 2; i++)
			{
				yield return new BountyTargetConfig
				{
					TargetID = Digitalroot.Valheim.Common.Names.BearsMod.EnemyNames.Bear,
					Biome = (Biome)64,
					RewardCoins = GetCoins((Biome)64, 10u),
					RewardIron = GetIron((Biome)64),
					RewardGold = GetGold((Biome)64)
				};
			}
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.BearsMod.EnemyNames.Bear,
				Biome = (Biome)64,
				RewardCoins = GetCoins((Biome)64),
				RewardIron = GetIron((Biome)64, 1u),
				RewardGold = GetGold((Biome)64),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.BearsMod.EnemyNames.BearCub,
						Count = 2
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.BearsMod.EnemyNames.Bear,
				Biome = (Biome)64,
				RewardCoins = GetCoins((Biome)64),
				RewardIron = GetIron((Biome)64),
				RewardGold = GetGold((Biome)64, 1u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.BearsMod.EnemyNames.Bear,
						Count = 1
					},
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.BearsMod.EnemyNames.BearCub,
						Count = 4
					}
				}
			};
		}
	}
	public class DebugBounties : AbstractBounties
	{
		public override bool IsDependenciesResolved => true;

		protected override IEnumerable<BountyTargetConfig> FilterResults(IEnumerable<BountyTargetConfig> bountyTargetConfigs)
		{
			return null;
		}

		[UsedImplicitly]
		private BountyTargetConfig CreateBountyTargetConfig(Biome biome, string name)
		{
			//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_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0021: Unknown result type (might be due to invalid IL or missing references)
			//IL_0029: Expected O, but got Unknown
			return new BountyTargetConfig
			{
				Biome = biome,
				RewardCoins = 0,
				RewardGold = 0,
				RewardIron = 0,
				TargetID = name
			};
		}
	}
	public class MonsterLabZBounties : AbstractBounties
	{
		public override bool IsDependenciesResolved => Main.Instance.SoftDependencies.MonsterLabZ;

		public MonsterLabZBounties()
			: base(Digitalroot.Valheim.Common.Names.MonsterLabZMod.EnemyNames.AllNamesByBiome, Digitalroot.Valheim.Common.Names.MonsterLabZMod.BossNames.AllNamesByBiome)
		{
		}

		protected override IEnumerable<BountyTargetConfig> FilterResults(IEnumerable<BountyTargetConfig> bountyTargetConfigs)
		{
			return from target in bountyTargetConfigs
				where !target.TargetID.Equals(Digitalroot.Valheim.Common.Names.MonsterLabZMod.EnemyNames.RainbowButterfly)
				where !target.TargetID.Equals(Digitalroot.Valheim.Common.Names.MonsterLabZMod.EnemyNames.SilkwormButterfly)
				where !target.TargetID.Equals(Digitalroot.Valheim.Common.Names.MonsterLabZMod.EnemyNames.BlackSpider)
				where !target.TargetID.Equals(Digitalroot.Valheim.Common.Names.MonsterLabZMod.EnemyNames.GoblinBoat)
				where !target.TargetID.Equals(Digitalroot.Valheim.Common.Names.MonsterLabZMod.EnemyNames.GoblinShip2)
				select target;
		}
	}
	public class MonsternomiconBounties : AbstractBounties
	{
		public override bool IsDependenciesResolved => Main.Instance.SoftDependencies.Monsternomicon;

		public MonsternomiconBounties()
			: base(Digitalroot.Valheim.Common.Names.MonsternomiconMod.EnemyNames.AllNamesByBiome, Digitalroot.Valheim.Common.Names.MonsternomiconMod.BossNames.AllNamesByBiome)
		{
		}

		protected override IEnumerable<BountyTargetConfig> FilterResults(IEnumerable<BountyTargetConfig> bountyTargetConfigs)
		{
			return from target in bountyTargetConfigs
				where !target.TargetID.Equals(Digitalroot.Valheim.Common.Names.MonsternomiconMod.EnemyNames.AngrySpirit)
				where !target.TargetID.Equals(Digitalroot.Valheim.Common.Names.MonsternomiconMod.EnemyNames.CalmSpirit)
				select target;
		}
	}
	public class RRRMonsterBounties : AbstractBounties
	{
		public override bool IsDependenciesResolved
		{
			get
			{
				if (Main.Instance.SoftDependencies.RRRCore)
				{
					return Main.Instance.SoftDependencies.RRRMonsters;
				}
				return false;
			}
		}

		public RRRMonsterBounties()
			: base(Digitalroot.Valheim.Common.Names.RRRMod.EnemyNames.AllNamesByBiome)
		{
		}

		protected override IEnumerable<BountyTargetConfig> GetBlackForestBounties()
		{
			foreach (BountyTargetConfig blackForestBounty in base.GetBlackForestBounties())
			{
				blackForestBounty.RewardCoins = GetCoins((Biome)8, 10u);
				blackForestBounty.RewardIron = GetIron((Biome)8, 1u);
				yield return blackForestBounty;
			}
		}

		protected override IEnumerable<BountyTargetConfig> GetMistlandsBounties()
		{
			foreach (BountyTargetConfig mistlandsBounty in base.GetMistlandsBounties())
			{
				mistlandsBounty.RewardCoins = GetCoins((Biome)512, 40u);
				mistlandsBounty.RewardIron = GetIron((Biome)512, 2u);
				mistlandsBounty.RewardGold = GetGold((Biome)512, 1u);
				yield return mistlandsBounty;
			}
		}
	}
	public class SupplementalRaidsBounties : AbstractBounties
	{
		public override bool IsDependenciesResolved => Main.Instance.SoftDependencies.SupplementalRaids;

		public SupplementalRaidsBounties()
			: base(Digitalroot.Valheim.Common.Names.SupplementalRaidsMod.EnemyNames.AllNamesByBiome, Digitalroot.Valheim.Common.Names.SupplementalRaidsMod.BossNames.AllNamesByBiome)
		{
		}
	}
	public class VanillaBounties : AbstractBounties
	{
		public override bool IsDependenciesResolved => true;

		public VanillaBounties()
			: base(Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.AllNamesByBiome, Digitalroot.Valheim.Common.Names.Vanilla.BossNames.AllNamesByBiome)
		{
		}

		protected override IEnumerable<BountyTargetConfig> GetMeadowsBounties()
		{
			foreach (BountyTargetConfig meadowsBounty in base.GetMeadowsBounties())
			{
				yield return meadowsBounty;
			}
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Deer,
				Biome = (Biome)1,
				RewardCoins = GetCoins((Biome)1),
				RewardIron = GetIron((Biome)1),
				RewardGold = GetGold((Biome)1)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Boar,
				Biome = (Biome)1,
				RewardCoins = GetCoins((Biome)1),
				RewardIron = GetIron((Biome)1),
				RewardGold = GetGold((Biome)1)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Boar,
				Biome = (Biome)1,
				RewardCoins = GetCoins((Biome)1),
				RewardIron = GetIron((Biome)1),
				RewardGold = GetGold((Biome)1)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Neck,
				Biome = (Biome)1,
				RewardCoins = GetCoins((Biome)1),
				RewardIron = GetIron((Biome)1),
				RewardGold = GetGold((Biome)1)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Neck,
				Biome = (Biome)1,
				RewardCoins = GetCoins((Biome)1),
				RewardIron = GetIron((Biome)1),
				RewardGold = GetGold((Biome)1)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Greyling,
				Biome = (Biome)1,
				RewardCoins = GetCoins((Biome)1),
				RewardIron = GetIron((Biome)1),
				RewardGold = GetGold((Biome)1)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Greyling,
				Biome = (Biome)1,
				RewardCoins = GetCoins((Biome)1),
				RewardIron = GetIron((Biome)1),
				RewardGold = GetGold((Biome)1)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Boar,
				Biome = (Biome)1,
				RewardCoins = GetCoins((Biome)1, 5u),
				RewardIron = GetIron((Biome)1, 1u),
				RewardGold = GetGold((Biome)1),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Boar,
						Count = 2
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Neck,
				Biome = (Biome)1,
				RewardCoins = GetCoins((Biome)1, 5u),
				RewardIron = GetIron((Biome)1, 1u),
				RewardGold = GetGold((Biome)1),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Neck,
						Count = 2
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.GreydwarfShaman,
				Biome = (Biome)1,
				RewardCoins = GetCoins((Biome)1, 15u),
				RewardIron = GetIron((Biome)1, 1u),
				RewardGold = GetGold((Biome)1, 1u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Greyling,
						Count = 4
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.GreydwarfElite,
				Biome = (Biome)1,
				RewardCoins = GetCoins((Biome)1, 90u),
				RewardIron = GetIron((Biome)1, 9u),
				RewardGold = GetGold((Biome)1, 3u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.GreydwarfShaman,
						Count = 2
					},
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Greydwarf,
						Count = 4
					},
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Greyling,
						Count = 5
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.BlobElite,
				Biome = (Biome)1,
				RewardCoins = GetCoins((Biome)1, 15u),
				RewardIron = 0,
				RewardGold = GetGold((Biome)1, 1u)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.SkeletonPoison,
				Biome = (Biome)1,
				RewardCoins = GetCoins((Biome)1, 15u),
				RewardIron = GetIron((Biome)1, 4u),
				RewardGold = GetGold((Biome)1)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.SkeletonPoison,
				Biome = (Biome)1,
				RewardCoins = GetCoins((Biome)1, 20u),
				RewardIron = GetIron((Biome)1),
				RewardGold = GetGold((Biome)1, 1u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Skeleton,
						Count = 4
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Troll,
				Biome = (Biome)1,
				RewardCoins = GetCoins((Biome)1, 40u),
				RewardIron = 0,
				RewardGold = GetGold((Biome)1, 1u)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Ghost,
				Biome = (Biome)1,
				RewardCoins = GetCoins((Biome)1, 10u),
				RewardIron = GetIron((Biome)1),
				RewardGold = GetGold((Biome)1)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Ghost,
				Biome = (Biome)1,
				RewardCoins = GetCoins((Biome)1, 10u),
				RewardIron = GetIron((Biome)1),
				RewardGold = GetGold((Biome)1)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Wraith,
				Biome = (Biome)1,
				RewardCoins = GetCoins((Biome)1, 40u),
				RewardIron = 0,
				RewardGold = GetGold((Biome)1, 1u)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Lox,
				Biome = (Biome)1,
				RewardCoins = GetCoins((Biome)1, 40u),
				RewardIron = GetIron((Biome)1, 2u),
				RewardGold = GetGold((Biome)1)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Eikthyr,
				Biome = (Biome)1,
				RewardCoins = GetCoins((Biome)1, 90u),
				RewardIron = GetIron((Biome)1, 2u),
				RewardGold = GetGold((Biome)1, 2u)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Eikthyr,
				Biome = (Biome)1,
				RewardCoins = GetCoins((Biome)1, 110u),
				RewardIron = GetIron((Biome)1, 4u),
				RewardGold = GetGold((Biome)1, 2u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Eikthyr,
						Count = 2
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Eikthyr,
				Biome = (Biome)1,
				RewardCoins = GetCoins((Biome)1, 110u),
				RewardIron = GetIron((Biome)1, 4u),
				RewardGold = GetGold((Biome)1, 3u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Boar,
						Count = 5
					},
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Neck,
						Count = 5
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Eikthyr,
				Biome = (Biome)1,
				RewardCoins = GetCoins((Biome)1, 150u),
				RewardIron = GetIron((Biome)1, 7u),
				RewardGold = GetGold((Biome)1, 5u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Boar,
						Count = 5
					},
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Neck,
						Count = 5
					},
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Eikthyr,
						Count = 2
					}
				}
			};
		}

		protected override IEnumerable<BountyTargetConfig> GetBlackForestBounties()
		{
			Biome biome = (Biome)8;
			foreach (BountyTargetConfig blackForestBounty in base.GetBlackForestBounties())
			{
				yield return blackForestBounty;
			}
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Greydwarf,
				Biome = biome,
				RewardCoins = GetCoins(biome),
				RewardIron = GetIron(biome),
				RewardGold = GetGold(biome)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Greydwarf,
				Biome = biome,
				RewardCoins = GetCoins(biome),
				RewardIron = GetIron(biome),
				RewardGold = GetGold(biome)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Skeleton,
				Biome = biome,
				RewardCoins = GetCoins(biome),
				RewardIron = GetIron(biome),
				RewardGold = GetGold(biome)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Skeleton,
				Biome = biome,
				RewardCoins = GetCoins(biome),
				RewardIron = GetIron(biome),
				RewardGold = GetGold(biome)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Ghost,
				Biome = biome,
				RewardCoins = GetCoins(biome, 5u),
				RewardIron = GetIron(biome),
				RewardGold = GetGold(biome)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.GreydwarfShaman,
				Biome = biome,
				RewardCoins = GetCoins(biome, 10u),
				RewardIron = GetIron(biome, 1u),
				RewardGold = GetGold(biome)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Skeleton,
				Biome = biome,
				RewardCoins = GetCoins(biome, 15u),
				RewardIron = GetIron(biome, 2u),
				RewardGold = GetGold(biome),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Skeleton,
						Count = 3
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.GreydwarfElite,
				Biome = biome,
				RewardCoins = GetCoins(biome, 5u),
				RewardIron = 0,
				RewardGold = GetGold(biome, 1u)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Troll,
				Biome = biome,
				RewardCoins = GetCoins(biome, 35u),
				RewardIron = 0,
				RewardGold = GetGold(biome, 1u)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.GreydwarfShaman,
				Biome = biome,
				RewardCoins = GetCoins(biome, 25u),
				RewardIron = GetIron(biome, 2u),
				RewardGold = GetGold(biome, 1u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Greydwarf,
						Count = 3
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.TheElder,
				Biome = biome,
				RewardCoins = GetCoins(biome, 165u),
				RewardIron = GetIron(biome, 3u),
				RewardGold = GetGold(biome, 2u)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.TheElder,
				Biome = biome,
				RewardCoins = GetCoins(biome, 185u),
				RewardIron = GetIron(biome, 5u),
				RewardGold = GetGold(biome, 2u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Eikthyr,
						Count = 1
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.TheElder,
				Biome = biome,
				RewardCoins = GetCoins(biome, 205u),
				RewardIron = GetIron(biome, 7u),
				RewardGold = GetGold(biome, 3u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Eikthyr,
						Count = 2
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.TheElder,
				Biome = biome,
				RewardCoins = GetCoins(biome, 205u),
				RewardIron = GetIron(biome, 7u),
				RewardGold = GetGold(biome, 3u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.TheElder,
						Count = 1
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.TheElder,
				Biome = biome,
				RewardCoins = GetCoins(biome, 235u),
				RewardIron = GetIron(biome, 10u),
				RewardGold = GetGold(biome, 3u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.TheElder,
						Count = 1
					},
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Eikthyr,
						Count = 1
					}
				}
			};
		}

		protected override IEnumerable<BountyTargetConfig> GetSwampBounties()
		{
			foreach (BountyTargetConfig swampBounty in base.GetSwampBounties())
			{
				yield return swampBounty;
			}
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Blob,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2, 5u),
				RewardIron = GetIron((Biome)2),
				RewardGold = GetGold((Biome)2)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.BlobElite,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2, 10u),
				RewardIron = GetIron((Biome)2, 1u),
				RewardGold = GetGold((Biome)2)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.BlobElite,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2, 15u),
				RewardIron = GetIron((Biome)2, 2u),
				RewardGold = GetGold((Biome)2),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Blob,
						Count = 2
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.BlobElite,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2, 15u),
				RewardIron = GetIron((Biome)2, 2u),
				RewardGold = GetGold((Biome)2),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Blob,
						Count = 1
					},
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Skeleton,
						Count = 1
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.BlobElite,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2, 15u),
				RewardIron = GetIron((Biome)2, 2u),
				RewardGold = GetGold((Biome)2),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Skeleton,
						Count = 2
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.BlobElite,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2, 20u),
				RewardIron = GetIron((Biome)2, 3u),
				RewardGold = GetGold((Biome)2),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Skeleton,
						Count = 2
					},
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.SkeletonPoison,
						Count = 1
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.BlobElite,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2, 15u),
				RewardIron = GetIron((Biome)2, 2u),
				RewardGold = GetGold((Biome)2),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Ghost,
						Count = 2
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.BlobElite,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2, 15u),
				RewardIron = GetIron((Biome)2, 2u),
				RewardGold = GetGold((Biome)2),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Draugr,
						Count = 2
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.BlobElite,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2, 15u),
				RewardIron = GetIron((Biome)2, 2u),
				RewardGold = GetGold((Biome)2),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.DraugrRanged,
						Count = 2
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.BlobElite,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2, 15u),
				RewardIron = GetIron((Biome)2, 2u),
				RewardGold = GetGold((Biome)2),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Draugr,
						Count = 1
					},
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.DraugrRanged,
						Count = 1
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Skeleton,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2),
				RewardIron = GetIron((Biome)2),
				RewardGold = GetGold((Biome)2)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Leech,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2),
				RewardIron = GetIron((Biome)2),
				RewardGold = GetGold((Biome)2)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Ghost,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2),
				RewardIron = 0,
				RewardGold = GetGold((Biome)2)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Draugr,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2, 10u),
				RewardIron = GetIron((Biome)2),
				RewardGold = GetGold((Biome)2)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Surtling,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2),
				RewardIron = GetIron((Biome)2),
				RewardGold = GetGold((Biome)2)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Surtling,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2, 10u),
				RewardIron = GetIron((Biome)2, 1u),
				RewardGold = GetGold((Biome)2),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Surtling,
						Count = 2
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Wraith,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2, 30u),
				RewardIron = 0,
				RewardGold = GetGold((Biome)2, 1u)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Wraith,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2, 50u),
				RewardIron = GetIron((Biome)2),
				RewardGold = GetGold((Biome)2, 1u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Ghost,
						Count = 2
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.DraugrElite,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2, 30u),
				RewardIron = 0,
				RewardGold = GetGold((Biome)2, 1u)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.DraugrElite,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2, 60u),
				RewardIron = GetIron((Biome)2, 2u),
				RewardGold = GetGold((Biome)2, 1u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Draugr,
						Count = 3
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.DraugrElite,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2, 60u),
				RewardIron = GetIron((Biome)2, 2u),
				RewardGold = GetGold((Biome)2, 1u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.DraugrRanged,
						Count = 2
					},
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Draugr,
						Count = 1
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.DraugrElite,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2, 60u),
				RewardIron = GetIron((Biome)2, 2u),
				RewardGold = GetGold((Biome)2, 1u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.DraugrRanged,
						Count = 3
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.DraugrElite,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2, 60u),
				RewardIron = GetIron((Biome)2, 2u),
				RewardGold = GetGold((Biome)2, 1u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.DraugrRanged,
						Count = 1
					},
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Draugr,
						Count = 2
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Skeleton,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2, 30u),
				RewardIron = GetIron((Biome)2, 2u),
				RewardGold = GetGold((Biome)2, 1u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Skeleton,
						Count = 5
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.SkeletonPoison,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2, 40u),
				RewardIron = GetIron((Biome)2, 2u),
				RewardGold = GetGold((Biome)2, 1u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Skeleton,
						Count = 5
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Bonemass,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2, 160u),
				RewardIron = GetIron((Biome)2, 3u),
				RewardGold = GetGold((Biome)2, 2u)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Eikthyr,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2, 100u),
				RewardIron = GetIron((Biome)2, 2u),
				RewardGold = GetGold((Biome)2, 1u)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.TheElder,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2, 120u),
				RewardIron = GetIron((Biome)2, 2u),
				RewardGold = GetGold((Biome)2, 1u)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Bonemass,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2, 180u),
				RewardIron = GetIron((Biome)2, 4u),
				RewardGold = GetGold((Biome)2, 2u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Eikthyr,
						Count = 1
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Bonemass,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2, 190u),
				RewardIron = GetIron((Biome)2, 5u),
				RewardGold = GetGold((Biome)2, 2u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.DraugrElite,
						Count = 2
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Bonemass,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2, 200u),
				RewardIron = GetIron((Biome)2, 6u),
				RewardGold = GetGold((Biome)2, 2u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Eikthyr,
						Count = 2
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Bonemass,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2, 190u),
				RewardIron = GetIron((Biome)2, 5u),
				RewardGold = GetGold((Biome)2, 4u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.TheElder,
						Count = 1
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Bonemass,
				Biome = (Biome)2,
				RewardCoins = GetCoins((Biome)2, 220u),
				RewardIron = GetIron((Biome)2, 8u),
				RewardGold = GetGold((Biome)2, 4u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Eikthyr,
						Count = 1
					},
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.TheElder,
						Count = 1
					}
				}
			};
		}

		protected override IEnumerable<BountyTargetConfig> GetMountainBounties()
		{
			foreach (BountyTargetConfig mountainBounty in base.GetMountainBounties())
			{
				yield return mountainBounty;
			}
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Wolf,
				Biome = (Biome)4,
				RewardCoins = GetCoins((Biome)4),
				RewardIron = GetIron((Biome)4),
				RewardGold = GetGold((Biome)4)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Wolf,
				Biome = (Biome)4,
				RewardCoins = GetCoins((Biome)4),
				RewardIron = GetIron((Biome)4),
				RewardGold = GetGold((Biome)4)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Drake,
				Biome = (Biome)4,
				RewardCoins = GetCoins((Biome)4),
				RewardIron = GetIron((Biome)4),
				RewardGold = GetGold((Biome)4)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Drake,
				Biome = (Biome)4,
				RewardCoins = GetCoins((Biome)4),
				RewardIron = GetIron((Biome)4),
				RewardGold = GetGold((Biome)4)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Skeleton,
				Biome = (Biome)4,
				RewardCoins = GetCoins((Biome)4),
				RewardIron = GetIron((Biome)4),
				RewardGold = GetGold((Biome)4)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Skeleton,
				Biome = (Biome)4,
				RewardCoins = GetCoins((Biome)4),
				RewardIron = GetIron((Biome)4),
				RewardGold = GetGold((Biome)4)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Surtling,
				Biome = (Biome)4,
				RewardCoins = GetCoins((Biome)4),
				RewardIron = GetIron((Biome)4),
				RewardGold = GetGold((Biome)4)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.DraugrRanged,
				Biome = (Biome)4,
				RewardCoins = GetCoins((Biome)4),
				RewardIron = GetIron((Biome)4),
				RewardGold = GetGold((Biome)4)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Skeleton,
				Biome = (Biome)4,
				RewardCoins = GetCoins((Biome)4, 10u),
				RewardIron = GetIron((Biome)4, 1u),
				RewardGold = GetGold((Biome)4),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Skeleton,
						Count = 3
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Fenring,
				Biome = (Biome)4,
				RewardCoins = GetCoins((Biome)4, 20u),
				RewardIron = 0,
				RewardGold = GetGold((Biome)4, 2u)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Fenring,
				Biome = (Biome)4,
				RewardCoins = GetCoins((Biome)4, 70u),
				RewardIron = GetIron((Biome)4, 1u),
				RewardGold = GetGold((Biome)4, 2u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Wolf,
						Count = 3
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Wolf,
				Biome = (Biome)4,
				RewardCoins = GetCoins((Biome)4, 40u),
				RewardIron = GetIron((Biome)4, 1u),
				RewardGold = GetGold((Biome)4, 1u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Wolf,
						Count = 2
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.StoneGolem,
				Biome = (Biome)4,
				RewardCoins = GetCoins((Biome)4, 50u),
				RewardIron = 0,
				RewardGold = GetGold((Biome)4, 2u)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.StoneGolem,
				Biome = (Biome)4,
				RewardCoins = GetCoins((Biome)4, 130u),
				RewardIron = GetIron((Biome)4, 3u),
				RewardGold = GetGold((Biome)4, 3u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.StoneGolem,
						Count = 2
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Ghost,
				Biome = (Biome)4,
				RewardCoins = GetCoins((Biome)4, 10u),
				RewardIron = GetIron((Biome)4),
				RewardGold = GetGold((Biome)4)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Ghost,
				Biome = (Biome)4,
				RewardCoins = GetCoins((Biome)4, 10u),
				RewardIron = GetIron((Biome)4),
				RewardGold = GetGold((Biome)4)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Wraith,
				Biome = (Biome)4,
				RewardCoins = GetCoins((Biome)4, 15u),
				RewardIron = GetIron((Biome)4),
				RewardGold = GetGold((Biome)4)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Wraith,
				Biome = (Biome)4,
				RewardCoins = GetCoins((Biome)4, 15u),
				RewardIron = GetIron((Biome)4),
				RewardGold = GetGold((Biome)4)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Eikthyr,
				Biome = (Biome)4,
				RewardCoins = GetCoins((Biome)4, 90u),
				RewardIron = GetIron((Biome)4, 2u),
				RewardGold = GetGold((Biome)4, 1u)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.TheElder,
				Biome = (Biome)4,
				RewardCoins = GetCoins((Biome)4, 110u),
				RewardIron = GetIron((Biome)4, 3u),
				RewardGold = GetGold((Biome)4, 1u)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Moder,
				Biome = (Biome)4,
				RewardCoins = GetCoins((Biome)4, 180u),
				RewardIron = GetIron((Biome)4, 3u),
				RewardGold = GetGold((Biome)4, 2u)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Moder,
				Biome = (Biome)4,
				RewardCoins = GetCoins((Biome)4, 200u),
				RewardIron = GetIron((Biome)4, 4u),
				RewardGold = GetGold((Biome)4, 2u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Drake,
						Count = 2
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Moder,
				Biome = (Biome)4,
				RewardCoins = GetCoins((Biome)4, 200u),
				RewardIron = GetIron((Biome)4, 4u),
				RewardGold = GetGold((Biome)4, 2u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.StoneGolem,
						Count = 1
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Moder,
				Biome = (Biome)4,
				RewardCoins = GetCoins((Biome)4, 220u),
				RewardIron = GetIron((Biome)4, 6u),
				RewardGold = GetGold((Biome)4, 2u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Drake,
						Count = 4
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Moder,
				Biome = (Biome)4,
				RewardCoins = GetCoins((Biome)4, 220u),
				RewardIron = GetIron((Biome)4, 6u),
				RewardGold = GetGold((Biome)4, 2u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.DraugrRanged,
						Count = 3
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Moder,
				Biome = (Biome)4,
				RewardCoins = GetCoins((Biome)4, 210u),
				RewardIron = GetIron((Biome)4, 5u),
				RewardGold = GetGold((Biome)4, 2u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Eikthyr,
						Count = 1
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Moder,
				Biome = (Biome)4,
				RewardCoins = GetCoins((Biome)4, 250u),
				RewardIron = GetIron((Biome)4, 7u),
				RewardGold = GetGold((Biome)4, 3u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.TheElder,
						Count = 1
					}
				}
			};
		}

		protected override IEnumerable<BountyTargetConfig> GetPlainsBounties()
		{
			foreach (BountyTargetConfig plainsBounty in base.GetPlainsBounties())
			{
				yield return plainsBounty;
			}
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Goblin,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 15u),
				RewardIron = GetIron((Biome)16),
				RewardGold = GetGold((Biome)16)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Goblin,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 15u),
				RewardIron = GetIron((Biome)16),
				RewardGold = GetGold((Biome)16)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Goblin,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 15u),
				RewardIron = GetIron((Biome)16),
				RewardGold = GetGold((Biome)16)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Drake,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16),
				RewardIron = GetIron((Biome)16),
				RewardGold = GetGold((Biome)16)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Skeleton,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16),
				RewardIron = GetIron((Biome)16),
				RewardGold = GetGold((Biome)16)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Lox,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 45u),
				RewardIron = GetIron((Biome)16),
				RewardGold = GetGold((Biome)16)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Surtling,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16),
				RewardIron = GetIron((Biome)16),
				RewardGold = GetGold((Biome)16)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.DraugrRanged,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16),
				RewardIron = GetIron((Biome)16),
				RewardGold = GetGold((Biome)16)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Skeleton,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 10u),
				RewardIron = GetIron((Biome)16, 1u),
				RewardGold = GetGold((Biome)16),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Skeleton,
						Count = 3
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Deathsquito,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16),
				RewardIron = GetIron((Biome)16),
				RewardGold = GetGold((Biome)16)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Deathsquito,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16),
				RewardIron = GetIron((Biome)16),
				RewardGold = GetGold((Biome)16)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Deathsquito,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 15u),
				RewardIron = GetIron((Biome)16, 3u),
				RewardGold = GetGold((Biome)16, 3u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Deathsquito,
						Count = 2
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.GoblinBrute,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 45u),
				RewardIron = 0,
				RewardGold = GetGold((Biome)16, 3u)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.GoblinBrute,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 85u),
				RewardIron = GetIron((Biome)16, 3u),
				RewardGold = GetGold((Biome)16, 3u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Goblin,
						Count = 2
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.GoblinBrute,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 145u),
				RewardIron = GetIron((Biome)16, 5u),
				RewardGold = GetGold((Biome)16, 3u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Goblin,
						Count = 3
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.GoblinShaman,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 165u),
				RewardIron = GetIron((Biome)16, 5u),
				RewardGold = GetGold((Biome)16, 3u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Goblin,
						Count = 3
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.GoblinShaman,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 215u),
				RewardIron = GetIron((Biome)16, 10u),
				RewardGold = GetGold((Biome)16, 4u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.GoblinBrute,
						Count = 1
					},
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Goblin,
						Count = 2
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Ghost,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16),
				RewardIron = GetIron((Biome)16),
				RewardGold = GetGold((Biome)16)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Ghost,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16),
				RewardIron = GetIron((Biome)16),
				RewardGold = GetGold((Biome)16)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Wraith,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16),
				RewardIron = GetIron((Biome)16),
				RewardGold = GetGold((Biome)16)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Wraith,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16),
				RewardIron = GetIron((Biome)16),
				RewardGold = GetGold((Biome)16)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Eikthyr,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 30u),
				RewardIron = GetIron((Biome)16),
				RewardGold = GetGold((Biome)16, 1u)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.TheElder,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 40u),
				RewardIron = GetIron((Biome)16, 3u),
				RewardGold = GetGold((Biome)16, 1u)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.TheElder,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 50u),
				RewardIron = GetIron((Biome)16, 5u),
				RewardGold = GetGold((Biome)16, 2u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Eikthyr,
						Count = 2
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Moder,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 180u),
				RewardIron = GetIron((Biome)16, 4u),
				RewardGold = GetGold((Biome)16, 2u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Drake,
						Count = 2
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Moder,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 250u),
				RewardIron = GetIron((Biome)16, 7u),
				RewardGold = GetGold((Biome)16, 3u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.TheElder,
						Count = 1
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Moder,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 350u),
				RewardIron = GetIron((Biome)16, 10u),
				RewardGold = GetGold((Biome)16, 6u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Bonemass,
						Count = 1
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Bonemass,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 350u),
				RewardIron = GetIron((Biome)16, 10u),
				RewardGold = GetGold((Biome)16, 6u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Moder,
						Count = 1
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Bonemass,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 300u),
				RewardIron = GetIron((Biome)16, 10u),
				RewardGold = GetGold((Biome)16, 4u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.TheElder,
						Count = 1
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Bonemass,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 320u),
				RewardIron = GetIron((Biome)16, 15u),
				RewardGold = GetGold((Biome)16, 5u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.TheElder,
						Count = 1
					},
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Eikthyr,
						Count = 1
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Bonemass,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 500u),
				RewardIron = GetIron((Biome)16, 20u),
				RewardGold = GetGold((Biome)16, 6u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.TheElder,
						Count = 1
					},
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Moder,
						Count = 1
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Yagluth,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 500u),
				RewardIron = GetIron((Biome)16, 10u),
				RewardGold = GetGold((Biome)16, 3u)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Yagluth,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 530u),
				RewardIron = GetIron((Biome)16, 12u),
				RewardGold = GetGold((Biome)16, 3u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Eikthyr,
						Count = 1
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Yagluth,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 600u),
				RewardIron = GetIron((Biome)16, 20u),
				RewardGold = GetGold((Biome)16, 4u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.TheElder,
						Count = 1
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Yagluth,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 800u),
				RewardIron = GetIron((Biome)16, 30u),
				RewardGold = GetGold((Biome)16, 8u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Bonemass,
						Count = 1
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Yagluth,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 800u),
				RewardIron = GetIron((Biome)16, 30u),
				RewardGold = GetGold((Biome)16, 8u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Moder,
						Count = 1
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Yagluth,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 1000u),
				RewardIron = GetIron((Biome)16, 40u),
				RewardGold = GetGold((Biome)16, 10u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Moder,
						Count = 1
					},
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.TheElder,
						Count = 1
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Yagluth,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 1000u),
				RewardIron = GetIron((Biome)16, 40u),
				RewardGold = GetGold((Biome)16, 10u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Bonemass,
						Count = 1
					},
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.TheElder,
						Count = 1
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Yagluth,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 1200u),
				RewardIron = GetIron((Biome)16, 50u),
				RewardGold = GetGold((Biome)16, 12u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Moder,
						Count = 1
					},
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Bonemass,
						Count = 1
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Yagluth,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 1250u),
				RewardIron = GetIron((Biome)16, 60u),
				RewardGold = GetGold((Biome)16, 13u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Moder,
						Count = 1
					},
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Bonemass,
						Count = 1
					},
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Eikthyr,
						Count = 1
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Yagluth,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 1400u),
				RewardIron = GetIron((Biome)16, 70u),
				RewardGold = GetGold((Biome)16, 15u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Moder,
						Count = 1
					},
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Bonemass,
						Count = 1
					},
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.TheElder,
						Count = 1
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Yagluth,
				Biome = (Biome)16,
				RewardCoins = GetCoins((Biome)16, 2000u),
				RewardIron = GetIron((Biome)16, 75u),
				RewardGold = GetGold((Biome)16, 15u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Moder,
						Count = 1
					},
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Bonemass,
						Count = 1
					},
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.TheElder,
						Count = 1
					},
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Eikthyr,
						Count = 1
					}
				}
			};
		}

		protected override IEnumerable<BountyTargetConfig> GetOceanBounties()
		{
			foreach (BountyTargetConfig oceanBounty in base.GetOceanBounties())
			{
				yield return oceanBounty;
			}
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Serpent,
				Biome = (Biome)256,
				RewardCoins = GetCoins((Biome)256),
				RewardIron = GetIron((Biome)256, 2u),
				RewardGold = GetGold((Biome)256, 1u)
			};
		}

		protected override IEnumerable<BountyTargetConfig> GetMistlandsBounties()
		{
			foreach (BountyTargetConfig mistlandsBounty in base.GetMistlandsBounties())
			{
				yield return mistlandsBounty;
			}
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Ghost,
				Biome = (Biome)512,
				RewardCoins = GetCoins((Biome)512),
				RewardIron = GetIron((Biome)512),
				RewardGold = GetGold((Biome)512),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Wraith,
						Count = 2
					},
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Skeleton,
						Count = 2
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Ghost,
				Biome = (Biome)512,
				RewardCoins = GetCoins((Biome)512),
				RewardIron = GetIron((Biome)512),
				RewardGold = GetGold((Biome)512),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Wraith,
						Count = 2
					},
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Skeleton,
						Count = 2
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Wraith,
				Biome = (Biome)512,
				RewardCoins = GetCoins((Biome)512),
				RewardIron = GetIron((Biome)512),
				RewardGold = GetGold((Biome)512),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Ghost,
						Count = 4
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Wraith,
				Biome = (Biome)512,
				RewardCoins = GetCoins((Biome)512),
				RewardIron = GetIron((Biome)512),
				RewardGold = GetGold((Biome)512),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Ghost,
						Count = 2
					},
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Skeleton,
						Count = 2
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Eikthyr,
				Biome = (Biome)512,
				RewardCoins = GetCoins((Biome)512, 30u),
				RewardIron = GetIron((Biome)512),
				RewardGold = GetGold((Biome)512),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Eikthyr,
						Count = 5
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.SeekerQueen,
				Biome = (Biome)512,
				RewardCoins = GetCoins((Biome)512, 30u),
				RewardIron = GetIron((Biome)512),
				RewardGold = GetGold((Biome)512),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Eikthyr,
						Count = 5
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.SeekerQueen,
				Biome = (Biome)512,
				RewardCoins = GetCoins((Biome)512, 30u),
				RewardIron = GetIron((Biome)512),
				RewardGold = GetGold((Biome)512),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.BossNames.Bonemass,
						Count = 1
					}
				}
			};
		}

		protected override IEnumerable<BountyTargetConfig> GetDeepNorthBounties()
		{
			foreach (BountyTargetConfig deepNorthBounty in base.GetDeepNorthBounties())
			{
				yield return deepNorthBounty;
			}
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Troll,
				Biome = (Biome)64,
				RewardCoins = GetCoins((Biome)64),
				RewardIron = GetIron((Biome)64),
				RewardGold = GetGold((Biome)64)
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Troll,
				Biome = (Biome)64,
				RewardCoins = GetCoins((Biome)64, 10u),
				RewardIron = GetIron((Biome)64, 1u),
				RewardGold = GetGold((Biome)64, 1u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Troll,
						Count = 1
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Troll,
				Biome = (Biome)64,
				RewardCoins = GetCoins((Biome)64, 20u),
				RewardIron = GetIron((Biome)64, 3u),
				RewardGold = GetGold((Biome)64, 1u),
				Adds = new List<BountyTargetAddConfig>
				{
					new BountyTargetAddConfig
					{
						ID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Troll,
						Count = 2
					}
				}
			};
			yield return new BountyTargetConfig
			{
				TargetID = Digitalroot.Valheim.Common.Names.Vanilla.EnemyNames.Troll,