using System;
using System.CodeDom.Compiler;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Net.Http;
using System.Reflection;
using System.Resources;
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 System.Threading.Tasks;
using System.Timers;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using BepInEx.Logging;
using Digitalroot.Valheim.Common;
using Digitalroot.Valheim.Common.Json;
using Digitalroot.Valheim.Common.Names.Vanilla;
using Digitalroot.Valheim.ForsakenJVL.Properties;
using JetBrains.Annotations;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Managers;
using Jotunn.Utils;
using SimpleJson;
using UnityEngine;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyTitle("Digitalroot.Valheim.ForsakenJVL")]
[assembly: AssemblyDescription("Digitalroot ForsakenJVL")]
[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("2.0.40")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("2.0.40.0")]
[module: UnverifiableCode]
namespace Digitalroot.Valheim.ForsakenJVL
{
public class CMB_BurnWhenHeld : MonoBehaviour
{
private readonly System.Timers.Timer _timer;
public CMB_BurnWhenHeld()
{
try
{
Log.Trace(Main.Instance, "Digitalroot.Valheim.ForsakenJVL." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
_timer = new System.Timers.Timer
{
AutoReset = true,
Enabled = false,
Interval = 10000.0
};
_timer.Elapsed += TimerElapsed;
}
catch (Exception e)
{
Log.Error(Main.Instance, e);
}
}
private void TimerElapsed(object sender, ElapsedEventArgs e)
{
try
{
Log.Trace(Main.Instance, "Digitalroot.Valheim.ForsakenJVL." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
if (Utils.IsPlayerReady() && ((Humanoid)Player.m_localPlayer).IsItemEquiped(((Component)this).gameObject.GetComponent<ItemDrop>().m_itemData))
{
((Character)Player.m_localPlayer).AddFireDamage(10f);
}
}
catch (Exception e2)
{
Log.Error(Main.Instance, e2);
}
}
[UsedImplicitly]
public void Start()
{
Log.Trace(Main.Instance, "Digitalroot.Valheim.ForsakenJVL." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
_timer.Elapsed += TimerElapsed;
_timer.Start();
}
[UsedImplicitly]
private void OnDestroy()
{
Log.Trace(Main.Instance, "Digitalroot.Valheim.ForsakenJVL." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
_timer.Elapsed -= TimerElapsed;
_timer.Stop();
_timer.Dispose();
}
}
[BepInPlugin("digitalroot.valheim.mods.forsaken.jvl", "Digitalroot ForsakenJVL", "2.0.40")]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInIncompatibility("com.bepinex.plugins.forsaken")]
[NetworkCompatibility(/*Could not decode attribute arguments.*/)]
public class Main : BaseUnityPlugin, ITraceableLogging
{
[UsedImplicitly]
public static ConfigEntry<int> NexusId;
public static Main Instance;
private AssetBundle _assetBundle;
[UsedImplicitly]
public const string Version = "2.0.40";
[UsedImplicitly]
public const string Name = "Digitalroot ForsakenJVL";
[UsedImplicitly]
public const string Guid = "digitalroot.valheim.mods.forsaken.jvl";
[UsedImplicitly]
public const string Namespace = "Digitalroot.Valheim.ForsakenJVL";
public string Source => "Digitalroot.Valheim.ForsakenJVL";
public bool EnableTrace { get; }
public Main()
{
//IL_002f: Unknown result type (might be due to invalid IL or missing references)
//IL_0034: Unknown result type (might be due to invalid IL or missing references)
//IL_003b: Unknown result type (might be due to invalid IL or missing references)
//IL_0047: Unknown result type (might be due to invalid IL or missing references)
//IL_0054: Expected O, but got Unknown
//IL_0054: Unknown result type (might be due to invalid IL or missing references)
//IL_005e: Expected O, but got Unknown
Instance = this;
NexusId = ((BaseUnityPlugin)this).Config.Bind<int>("General", "NexusID", 1538, new ConfigDescription("Nexus mod ID for updates", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
{
IsAdminOnly = false,
Browsable = false,
ReadOnly = true
} }));
EnableTrace = false;
Log.RegisterSource(Instance);
Log.Trace(Instance, "Digitalroot.Valheim.ForsakenJVL." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
}
[UsedImplicitly]
private void Awake()
{
try
{
Log.Trace(Instance, "Digitalroot.Valheim.ForsakenJVL." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
LoadAssetFile();
PrefabManager.OnVanillaPrefabsAvailable += AddCustomItems;
}
catch (Exception e)
{
Log.Error(Instance, e);
}
}
private async void LoadAssetFile()
{
try
{
Log.Trace(Instance, "Digitalroot.Valheim.ForsakenJVL." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
FileInfo assetFile = new FileInfo(Path.Combine(new FileInfo(typeof(Main).Assembly.Location).DirectoryName ?? throw new InvalidOperationException("Unable to load assetFile."), "forsakenmod"));
if (!assetFile.Exists)
{
HttpUtil.DownloadFileAsync(Resources.asseturl, assetFile);
}
for (int i = 0; i < 36000; i++)
{
assetFile.Refresh();
if (assetFile.Exists)
{
break;
}
await Task.Delay(25);
}
if (!assetFile.Exists)
{
Log.Error(Instance, "Unable to find asset file 'forsakenmod', please make sure 'forsakenmod' and 'Digitalroot.Valheim.ForsakenJVL.dll' are in " + assetFile.DirectoryName);
Log.Error(Instance, "Digitalroot.Valheim.ForsakenJVL is not loaded.");
}
else
{
_assetBundle = AssetUtils.LoadAssetBundle(assetFile.FullName);
}
}
catch (Exception e)
{
Log.Error(Instance, e);
}
}
private void AddCustomItems()
{
try
{
Log.Trace(Instance, "Digitalroot.Valheim.ForsakenJVL." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
if (!((Object)(object)_assetBundle == (Object)null))
{
AddBattleaxeLightning();
AddBowFrost();
AddSledgeFire();
AddSledgePoison();
AddSpearSpirit();
AddUnarmedFenring();
AddKnifeFrost();
AddUnarmedFrost();
AddUnarmedFrostOh();
AddSwordFire();
AddSwordLightning();
AddShieldFire();
AddSpellFire();
_assetBundle.Unload(false);
PrefabManager.OnVanillaPrefabsAvailable -= AddCustomItems;
}
}
catch (Exception e)
{
Log.Error(Instance, e);
}
}
private void AddSpellFire()
{
//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
//IL_01a7: Unknown result type (might be due to invalid IL or missing references)
//IL_01ad: Expected O, but got Unknown
//IL_01c8: Unknown result type (might be due to invalid IL or missing references)
//IL_01cd: Unknown result type (might be due to invalid IL or missing references)
//IL_01d8: Unknown result type (might be due to invalid IL or missing references)
//IL_01e0: Unknown result type (might be due to invalid IL or missing references)
//IL_01e9: Expected O, but got Unknown
//IL_01eb: Unknown result type (might be due to invalid IL or missing references)
//IL_01f0: Unknown result type (might be due to invalid IL or missing references)
//IL_01fb: Unknown result type (might be due to invalid IL or missing references)
//IL_0203: Unknown result type (might be due to invalid IL or missing references)
//IL_020b: Expected O, but got Unknown
//IL_020d: Unknown result type (might be due to invalid IL or missing references)
//IL_0212: Unknown result type (might be due to invalid IL or missing references)
//IL_021d: Unknown result type (might be due to invalid IL or missing references)
//IL_0225: Unknown result type (might be due to invalid IL or missing references)
//IL_022d: Expected O, but got Unknown
//IL_0233: Unknown result type (might be due to invalid IL or missing references)
//IL_023d: Expected O, but got Unknown
try
{
Log.Trace(Instance, "Digitalroot.Valheim.ForsakenJVL." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
GameObject val = _assetBundle.LoadAsset<GameObject>("Assets/Custom_Items/v801_SpellFire/v801_SpellFire.prefab");
if ((Object)(object)val == (Object)null)
{
throw new NullReferenceException("prefab");
}
ItemDrop component = val.GetComponent<ItemDrop>();
if ((Object)(object)component == (Object)null)
{
throw new NullReferenceException("itemDrop");
}
component.m_itemData.m_shared.m_name = "$item_forsaken_spellfire";
component.m_itemData.m_shared.m_description = "$item_forsaken_spellfire_description";
component.m_itemData.m_shared.m_itemType = (ItemType)3;
component.m_itemData.m_shared.m_maxStackSize = 1;
component.m_itemData.m_shared.m_maxQuality = 4;
component.m_itemData.m_shared.m_weight = 0.1f;
component.m_itemData.m_shared.m_maxDurability = 600f;
component.m_itemData.m_shared.m_equipDuration = 0.2f;
component.m_itemData.m_shared.m_variants = 1;
component.m_itemData.m_shared.m_blockPower = 0f;
component.m_itemData.m_shared.m_timedBlockBonus = 0f;
component.m_itemData.m_shared.m_deflectionForce = 0f;
component.m_itemData.m_shared.m_attackForce = 0f;
component.m_itemData.m_shared.m_damagesPerLevel.m_fire = 20f;
ItemManager instance = ItemManager.Instance;
ItemConfig val2 = new ItemConfig();
val2.CraftingStation = CraftingStationNames.Forge;
val2.MinStationLevel = 7;
val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[3]
{
new RequirementConfig
{
Item = ItemDropNames.Crystal,
Amount = 40,
AmountPerLevel = 10
},
new RequirementConfig
{
Item = ItemDropNames.TrophyGoblinKing,
Amount = 12,
AmountPerLevel = 0
},
new RequirementConfig
{
Item = ItemDropNames.YagluthDrop,
Amount = 36,
AmountPerLevel = 2
}
};
instance.AddItem(new CustomItem(val, false, val2));
}
catch (Exception e)
{
Log.Error(Instance, e);
}
}
private void AddShieldFire()
{
//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
//IL_018d: Unknown result type (might be due to invalid IL or missing references)
//IL_0193: Expected O, but got Unknown
//IL_01ae: Unknown result type (might be due to invalid IL or missing references)
//IL_01b3: Unknown result type (might be due to invalid IL or missing references)
//IL_01be: Unknown result type (might be due to invalid IL or missing references)
//IL_01c6: Unknown result type (might be due to invalid IL or missing references)
//IL_01cf: Expected O, but got Unknown
//IL_01d1: Unknown result type (might be due to invalid IL or missing references)
//IL_01d6: Unknown result type (might be due to invalid IL or missing references)
//IL_01e1: Unknown result type (might be due to invalid IL or missing references)
//IL_01e9: Unknown result type (might be due to invalid IL or missing references)
//IL_01f2: Expected O, but got Unknown
//IL_01f4: Unknown result type (might be due to invalid IL or missing references)
//IL_01f9: Unknown result type (might be due to invalid IL or missing references)
//IL_0204: Unknown result type (might be due to invalid IL or missing references)
//IL_020c: Unknown result type (might be due to invalid IL or missing references)
//IL_0214: Expected O, but got Unknown
//IL_0216: Unknown result type (might be due to invalid IL or missing references)
//IL_021b: Unknown result type (might be due to invalid IL or missing references)
//IL_0226: Unknown result type (might be due to invalid IL or missing references)
//IL_022e: Unknown result type (might be due to invalid IL or missing references)
//IL_0236: Expected O, but got Unknown
//IL_023c: Unknown result type (might be due to invalid IL or missing references)
//IL_0246: Expected O, but got Unknown
try
{
Log.Trace(Instance, "Digitalroot.Valheim.ForsakenJVL." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
GameObject val = _assetBundle.LoadAsset<GameObject>("Assets/Custom_Items/v801_ShieldFire/v801_ShieldFire.prefab");
if ((Object)(object)val == (Object)null)
{
throw new NullReferenceException("prefab");
}
ItemDrop component = val.GetComponent<ItemDrop>();
if ((Object)(object)component == (Object)null)
{
throw new NullReferenceException("itemDrop");
}
component.m_itemData.m_shared.m_name = "$item_forsaken_shieldfire";
component.m_itemData.m_shared.m_description = "$item_forsaken_shieldfire_description";
component.m_itemData.m_shared.m_itemType = (ItemType)5;
component.m_itemData.m_shared.m_maxStackSize = 1;
component.m_itemData.m_shared.m_maxQuality = 4;
component.m_itemData.m_shared.m_weight = 10f;
component.m_itemData.m_shared.m_maxDurability = 600f;
component.m_itemData.m_shared.m_equipDuration = 0.2f;
component.m_itemData.m_shared.m_variants = 1;
component.m_itemData.m_shared.m_blockPower = 120f;
component.m_itemData.m_shared.m_timedBlockBonus = 6f;
component.m_itemData.m_shared.m_deflectionForce = 8f;
component.m_itemData.m_shared.m_attackForce = 0f;
ItemManager instance = ItemManager.Instance;
ItemConfig val2 = new ItemConfig();
val2.CraftingStation = CraftingStationNames.Forge;
val2.MinStationLevel = 7;
val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
{
new RequirementConfig
{
Item = ItemDropNames.Silver,
Amount = 20,
AmountPerLevel = 10
},
new RequirementConfig
{
Item = ItemDropNames.FlametalNew,
Amount = 40,
AmountPerLevel = 12
},
new RequirementConfig
{
Item = ItemDropNames.TrophyGoblinKing,
Amount = 10,
AmountPerLevel = 0
},
new RequirementConfig
{
Item = ItemDropNames.YagluthDrop,
Amount = 30,
AmountPerLevel = 2
}
};
instance.AddItem(new CustomItem(val, false, val2));
}
catch (Exception e)
{
Log.Error(Instance, e);
}
}
private void AddSwordLightning()
{
//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
//IL_02e0: Unknown result type (might be due to invalid IL or missing references)
//IL_02e6: Expected O, but got Unknown
//IL_0301: Unknown result type (might be due to invalid IL or missing references)
//IL_0306: Unknown result type (might be due to invalid IL or missing references)
//IL_0311: Unknown result type (might be due to invalid IL or missing references)
//IL_0319: Unknown result type (might be due to invalid IL or missing references)
//IL_0322: Expected O, but got Unknown
//IL_0324: Unknown result type (might be due to invalid IL or missing references)
//IL_0329: Unknown result type (might be due to invalid IL or missing references)
//IL_0334: Unknown result type (might be due to invalid IL or missing references)
//IL_033c: Unknown result type (might be due to invalid IL or missing references)
//IL_0345: Expected O, but got Unknown
//IL_0347: Unknown result type (might be due to invalid IL or missing references)
//IL_034c: Unknown result type (might be due to invalid IL or missing references)
//IL_0357: Unknown result type (might be due to invalid IL or missing references)
//IL_035f: Unknown result type (might be due to invalid IL or missing references)
//IL_0367: Expected O, but got Unknown
//IL_0369: Unknown result type (might be due to invalid IL or missing references)
//IL_036e: Unknown result type (might be due to invalid IL or missing references)
//IL_0379: Unknown result type (might be due to invalid IL or missing references)
//IL_0381: Unknown result type (might be due to invalid IL or missing references)
//IL_0389: Expected O, but got Unknown
//IL_038f: Unknown result type (might be due to invalid IL or missing references)
//IL_0399: Expected O, but got Unknown
try
{
Log.Trace(Instance, "Digitalroot.Valheim.ForsakenJVL." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
GameObject val = _assetBundle.LoadAsset<GameObject>("Assets/Custom_Items/v801_SwordLightning/v801_SwordLightning.prefab");
if ((Object)(object)val == (Object)null)
{
throw new NullReferenceException("prefab");
}
ItemDrop component = val.GetComponent<ItemDrop>();
if ((Object)(object)component == (Object)null)
{
throw new NullReferenceException("itemDrop");
}
component.m_itemData.m_shared.m_name = "$item_forsaken_swordlightning";
component.m_itemData.m_shared.m_description = "$item_forsaken_swordlightning_description";
component.m_itemData.m_shared.m_itemType = (ItemType)3;
component.m_itemData.m_shared.m_equipDuration = 0.2f;
component.m_itemData.m_shared.m_maxDurability = 700f;
component.m_itemData.m_shared.m_maxStackSize = 1;
component.m_itemData.m_shared.m_maxQuality = 4;
component.m_itemData.m_shared.m_variants = 1;
component.m_itemData.m_shared.m_timedBlockBonus = 2f;
component.m_itemData.m_shared.m_deflectionForce = 2f;
component.m_itemData.m_shared.m_attackForce = 8f;
component.m_itemData.m_shared.m_blockPower = 30f;
component.m_itemData.m_shared.m_damages.m_slash = 40f;
component.m_itemData.m_shared.m_damages.m_pierce = 40f;
component.m_itemData.m_shared.m_damages.m_lightning = 70f;
component.m_itemData.m_shared.m_damagesPerLevel.m_slash = 5f;
component.m_itemData.m_shared.m_damagesPerLevel.m_pierce = 5f;
component.m_itemData.m_shared.m_damagesPerLevel.m_lightning = 10f;
component.m_itemData.m_shared.m_attack.m_attackStamina = 20f;
component.m_itemData.m_shared.m_secondaryAttack.m_damageMultiplier = 1f;
component.m_itemData.m_shared.m_secondaryAttack.m_attackStamina = 30f;
component.m_itemData.m_shared.m_secondaryAttack.m_speedFactor = 0.3f;
component.m_itemData.m_shared.m_secondaryAttack.m_speedFactorRotation = 0.3f;
component.m_itemData.m_shared.m_secondaryAttack.m_forceMultiplier = 10f;
component.m_itemData.m_shared.m_secondaryAttack.m_staggerMultiplier = 6f;
component.m_itemData.m_shared.m_secondaryAttack.m_lowerDamagePerHit = false;
ItemManager instance = ItemManager.Instance;
ItemConfig val2 = new ItemConfig();
val2.CraftingStation = CraftingStationNames.Forge;
val2.MinStationLevel = 7;
val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
{
new RequirementConfig
{
Item = ItemDropNames.Crystal,
Amount = 40,
AmountPerLevel = 40
},
new RequirementConfig
{
Item = ItemDropNames.FlametalNew,
Amount = 60,
AmountPerLevel = 60
},
new RequirementConfig
{
Item = ItemDropNames.TrophyGoblinKing,
Amount = 12,
AmountPerLevel = 0
},
new RequirementConfig
{
Item = ItemDropNames.YagluthDrop,
Amount = 36,
AmountPerLevel = 2
}
};
instance.AddItem(new CustomItem(val, false, val2));
}
catch (Exception e)
{
Log.Error(Instance, e);
}
}
private void AddSwordFire()
{
//IL_00bd: Unknown result type (might be due to invalid IL or missing references)
//IL_043b: Unknown result type (might be due to invalid IL or missing references)
//IL_0441: Expected O, but got Unknown
//IL_045c: Unknown result type (might be due to invalid IL or missing references)
//IL_0461: Unknown result type (might be due to invalid IL or missing references)
//IL_046c: Unknown result type (might be due to invalid IL or missing references)
//IL_0474: Unknown result type (might be due to invalid IL or missing references)
//IL_047d: Expected O, but got Unknown
//IL_047f: Unknown result type (might be due to invalid IL or missing references)
//IL_0484: Unknown result type (might be due to invalid IL or missing references)
//IL_048f: Unknown result type (might be due to invalid IL or missing references)
//IL_0497: Unknown result type (might be due to invalid IL or missing references)
//IL_04a0: Expected O, but got Unknown
//IL_04a2: Unknown result type (might be due to invalid IL or missing references)
//IL_04a7: Unknown result type (might be due to invalid IL or missing references)
//IL_04b2: Unknown result type (might be due to invalid IL or missing references)
//IL_04ba: Unknown result type (might be due to invalid IL or missing references)
//IL_04c3: Expected O, but got Unknown
//IL_04c5: Unknown result type (might be due to invalid IL or missing references)
//IL_04ca: Unknown result type (might be due to invalid IL or missing references)
//IL_04d5: Unknown result type (might be due to invalid IL or missing references)
//IL_04dd: Unknown result type (might be due to invalid IL or missing references)
//IL_04e5: Expected O, but got Unknown
//IL_04eb: Unknown result type (might be due to invalid IL or missing references)
//IL_04f5: Expected O, but got Unknown
try
{
Log.Trace(Instance, "Digitalroot.Valheim.ForsakenJVL." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
GameObject val = _assetBundle.LoadAsset<GameObject>("Assets/Custom_Items/v801_SwordFire/v801_SwordFire.prefab");
if ((Object)(object)val == (Object)null)
{
throw new NullReferenceException("prefab");
}
ItemDrop component = val.GetComponent<ItemDrop>();
if ((Object)(object)component == (Object)null)
{
throw new NullReferenceException("itemDrop");
}
component.m_itemData.m_shared.m_name = "$item_forsaken_swordfire";
component.m_itemData.m_shared.m_description = "$item_forsaken_swordfire_description";
component.m_itemData.m_shared.m_itemType = (ItemType)14;
component.m_itemData.m_shared.m_maxStackSize = 1;
component.m_itemData.m_shared.m_maxQuality = 4;
component.m_itemData.m_shared.m_weight = 30f;
component.m_itemData.m_shared.m_maxDurability = 800f;
component.m_itemData.m_shared.m_equipDuration = 1f;
component.m_itemData.m_shared.m_variants = 1;
component.m_itemData.m_shared.m_blockPower = 70f;
component.m_itemData.m_shared.m_timedBlockBonus = 4f;
component.m_itemData.m_shared.m_deflectionForce = 8f;
component.m_itemData.m_shared.m_attackForce = 0f;
component.m_itemData.m_shared.m_movementModifier = -0.25f;
component.m_itemData.m_shared.m_damages.m_slash = 0f;
component.m_itemData.m_shared.m_damages.m_fire = 46f;
component.m_itemData.m_shared.m_damages.m_frost = 46f;
component.m_itemData.m_shared.m_damages.m_lightning = 46f;
component.m_itemData.m_shared.m_damages.m_spirit = 46f;
component.m_itemData.m_shared.m_damages.m_poison = 46f;
component.m_itemData.m_shared.m_damagesPerLevel.m_slash = 0f;
component.m_itemData.m_shared.m_damagesPerLevel.m_fire = 10f;
component.m_itemData.m_shared.m_damagesPerLevel.m_frost = 10f;
component.m_itemData.m_shared.m_damagesPerLevel.m_lightning = 10f;
component.m_itemData.m_shared.m_damagesPerLevel.m_spirit = 10f;
component.m_itemData.m_shared.m_damagesPerLevel.m_poison = 10f;
component.m_itemData.m_shared.m_attack.m_attackStamina = 25f;
component.m_itemData.m_shared.m_attack.m_attackAnimation = "battleaxe_attack";
component.m_itemData.m_shared.m_attack.m_attackChainLevels = 3;
component.m_itemData.m_shared.m_attack.m_speedFactor = 0.1f;
component.m_itemData.m_shared.m_attack.m_speedFactorRotation = 0.1f;
component.m_itemData.m_shared.m_secondaryAttack.m_attackAnimation = "battleaxe_secondary";
component.m_itemData.m_shared.m_secondaryAttack.m_attackChainLevels = 0;
component.m_itemData.m_shared.m_secondaryAttack.m_attackStamina = 30f;
component.m_itemData.m_shared.m_secondaryAttack.m_speedFactor = 0.1f;
component.m_itemData.m_shared.m_secondaryAttack.m_speedFactorRotation = 0.1f;
component.m_itemData.m_shared.m_secondaryAttack.m_damageMultiplier = 1f;
component.m_itemData.m_shared.m_secondaryAttack.m_forceMultiplier = 10f;
component.m_itemData.m_shared.m_secondaryAttack.m_staggerMultiplier = 6f;
component.m_itemData.m_shared.m_secondaryAttack.m_lowerDamagePerHit = false;
ItemManager instance = ItemManager.Instance;
ItemConfig val2 = new ItemConfig();
val2.CraftingStation = CraftingStationNames.Forge;
val2.MinStationLevel = 7;
val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
{
new RequirementConfig
{
Item = ItemDropNames.Iron,
Amount = 40,
AmountPerLevel = 10
},
new RequirementConfig
{
Item = ItemDropNames.Crystal,
Amount = 40,
AmountPerLevel = 15
},
new RequirementConfig
{
Item = ItemDropNames.Silver,
Amount = 36,
AmountPerLevel = 12
},
new RequirementConfig
{
Item = ItemDropNames.TrophyEikthyr,
Amount = 12,
AmountPerLevel = 0
}
};
instance.AddItem(new CustomItem(val, false, val2));
}
catch (Exception e)
{
Log.Error(Instance, e);
}
}
private void AddUnarmedFrostOh()
{
//IL_02fe: Unknown result type (might be due to invalid IL or missing references)
//IL_0304: Expected O, but got Unknown
//IL_031f: Unknown result type (might be due to invalid IL or missing references)
//IL_0324: Unknown result type (might be due to invalid IL or missing references)
//IL_032f: Unknown result type (might be due to invalid IL or missing references)
//IL_0337: Unknown result type (might be due to invalid IL or missing references)
//IL_033f: Expected O, but got Unknown
//IL_0341: Unknown result type (might be due to invalid IL or missing references)
//IL_0346: Unknown result type (might be due to invalid IL or missing references)
//IL_0351: Unknown result type (might be due to invalid IL or missing references)
//IL_0358: Unknown result type (might be due to invalid IL or missing references)
//IL_0360: Expected O, but got Unknown
//IL_0362: Unknown result type (might be due to invalid IL or missing references)
//IL_0367: Unknown result type (might be due to invalid IL or missing references)
//IL_0372: Unknown result type (might be due to invalid IL or missing references)
//IL_037a: Unknown result type (might be due to invalid IL or missing references)
//IL_0382: Expected O, but got Unknown
//IL_0384: Unknown result type (might be due to invalid IL or missing references)
//IL_0389: Unknown result type (might be due to invalid IL or missing references)
//IL_0394: Unknown result type (might be due to invalid IL or missing references)
//IL_039b: Unknown result type (might be due to invalid IL or missing references)
//IL_03a3: Expected O, but got Unknown
//IL_03a9: Unknown result type (might be due to invalid IL or missing references)
//IL_03b3: Expected O, but got Unknown
try
{
Log.Trace(Instance, "Digitalroot.Valheim.ForsakenJVL." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
GameObject val = _assetBundle.LoadAsset<GameObject>("Assets/Custom_Items/v801_UnarmedFrost/v801_UnarmedFrostOH.prefab");
if ((Object)(object)val == (Object)null)
{
throw new NullReferenceException("prefab");
}
ItemDrop component = val.GetComponent<ItemDrop>();
if ((Object)(object)component == (Object)null)
{
throw new NullReferenceException("itemDrop");
}
component.m_itemData.m_shared.m_name = "$item_forsaken_unarmedfrostoh";
component.m_itemData.m_shared.m_description = "$item_forsaken_unarmedfrostoh_description";
component.m_itemData.m_shared.m_maxStackSize = 1;
component.m_itemData.m_shared.m_maxQuality = 4;
component.m_itemData.m_shared.m_maxDurability = 700f;
component.m_itemData.m_shared.m_equipDuration = 0.2f;
component.m_itemData.m_shared.m_variants = 1;
component.m_itemData.m_shared.m_timedBlockBonus = 2f;
component.m_itemData.m_shared.m_deflectionForce = 2f;
component.m_itemData.m_shared.m_attackForce = 8f;
component.m_itemData.m_shared.m_blockPower = 90f;
component.m_itemData.m_shared.m_deflectionForce = 1f;
component.m_itemData.m_shared.m_damages.m_blunt = 90f;
component.m_itemData.m_shared.m_damages.m_frost = 80f;
component.m_itemData.m_shared.m_damagesPerLevel.m_blunt = 5f;
component.m_itemData.m_shared.m_damagesPerLevel.m_frost = 10f;
component.m_itemData.m_shared.m_attack.m_attackStamina = 20f;
component.m_itemData.m_shared.m_secondaryAttack.m_attackStamina = 20f;
component.m_itemData.m_shared.m_secondaryAttack.m_speedFactor = 0.2f;
component.m_itemData.m_shared.m_secondaryAttack.m_speedFactorRotation = 0.2f;
component.m_itemData.m_shared.m_secondaryAttack.m_damageMultiplier = 1f;
component.m_itemData.m_shared.m_secondaryAttack.m_forceMultiplier = 10f;
component.m_itemData.m_shared.m_secondaryAttack.m_staggerMultiplier = 6f;
component.m_itemData.m_shared.m_secondaryAttack.m_attackRange = 3.5f;
component.m_itemData.m_shared.m_secondaryAttack.m_attackAngle = 180f;
component.m_itemData.m_shared.m_secondaryAttack.m_attackRayWidth = 0.3f;
component.m_itemData.m_shared.m_secondaryAttack.m_lowerDamagePerHit = false;
ItemManager instance = ItemManager.Instance;
ItemConfig val2 = new ItemConfig();
val2.CraftingStation = CraftingStationNames.Forge;
val2.MinStationLevel = 6;
val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
{
new RequirementConfig
{
Item = ItemDropNames.FreezeGland,
Amount = 10,
AmountPerLevel = 2
},
new RequirementConfig
{
Item = ItemDropNames.TrophyHatchling,
Amount = 4,
AmountPerLevel = 0
},
new RequirementConfig
{
Item = ItemDropNames.DragonTear,
Amount = 20,
AmountPerLevel = 5
},
new RequirementConfig
{
Item = ItemDropNames.TrophyDragonQueen,
Amount = 4,
AmountPerLevel = 0
}
};
instance.AddItem(new CustomItem(val, false, val2));
}
catch (Exception e)
{
Log.Error(Instance, e);
}
}
private void AddUnarmedFrost()
{
//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
//IL_032e: Unknown result type (might be due to invalid IL or missing references)
//IL_0334: Expected O, but got Unknown
//IL_034f: Unknown result type (might be due to invalid IL or missing references)
//IL_0354: Unknown result type (might be due to invalid IL or missing references)
//IL_035f: Unknown result type (might be due to invalid IL or missing references)
//IL_0367: Unknown result type (might be due to invalid IL or missing references)
//IL_036f: Expected O, but got Unknown
//IL_0371: Unknown result type (might be due to invalid IL or missing references)
//IL_0376: Unknown result type (might be due to invalid IL or missing references)
//IL_0381: Unknown result type (might be due to invalid IL or missing references)
//IL_0389: Unknown result type (might be due to invalid IL or missing references)
//IL_0391: Expected O, but got Unknown
//IL_0393: Unknown result type (might be due to invalid IL or missing references)
//IL_0398: Unknown result type (might be due to invalid IL or missing references)
//IL_03a3: Unknown result type (might be due to invalid IL or missing references)
//IL_03ab: Unknown result type (might be due to invalid IL or missing references)
//IL_03b4: Expected O, but got Unknown
//IL_03b6: Unknown result type (might be due to invalid IL or missing references)
//IL_03bb: Unknown result type (might be due to invalid IL or missing references)
//IL_03c6: Unknown result type (might be due to invalid IL or missing references)
//IL_03cd: Unknown result type (might be due to invalid IL or missing references)
//IL_03d5: Expected O, but got Unknown
//IL_03db: Unknown result type (might be due to invalid IL or missing references)
//IL_03e5: Expected O, but got Unknown
try
{
Log.Trace(Instance, "Digitalroot.Valheim.ForsakenJVL." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
GameObject val = _assetBundle.LoadAsset<GameObject>("Assets/Custom_Items/v801_UnarmedFrost/v801_UnarmedFrost.prefab");
if ((Object)(object)val == (Object)null)
{
throw new NullReferenceException("prefab");
}
ItemDrop component = val.GetComponent<ItemDrop>();
if ((Object)(object)component == (Object)null)
{
throw new NullReferenceException("itemDrop");
}
component.m_itemData.m_shared.m_name = "$item_forsaken_unarmedfrost";
component.m_itemData.m_shared.m_description = "$item_forsaken_unarmedfrost_description";
component.m_itemData.m_shared.m_itemType = (ItemType)3;
component.m_itemData.m_shared.m_maxStackSize = 1;
component.m_itemData.m_shared.m_maxQuality = 4;
component.m_itemData.m_shared.m_maxDurability = 700f;
component.m_itemData.m_shared.m_equipDuration = 0.2f;
component.m_itemData.m_shared.m_variants = 1;
component.m_itemData.m_shared.m_timedBlockBonus = 2f;
component.m_itemData.m_shared.m_deflectionForce = 2f;
component.m_itemData.m_shared.m_attackForce = 8f;
component.m_itemData.m_shared.m_blockPower = 70f;
component.m_itemData.m_shared.m_damages.m_blunt = 70f;
component.m_itemData.m_shared.m_damages.m_frost = 90f;
component.m_itemData.m_shared.m_damagesPerLevel.m_blunt = 5f;
component.m_itemData.m_shared.m_damagesPerLevel.m_frost = 10f;
component.m_itemData.m_shared.m_attack.m_attackStamina = 15f;
component.m_itemData.m_shared.m_secondaryAttack.m_attackAnimation = "knife_secondary";
component.m_itemData.m_shared.m_secondaryAttack.m_attackRayWidth = 0.3f;
component.m_itemData.m_shared.m_secondaryAttack.m_attackStamina = 20f;
component.m_itemData.m_shared.m_secondaryAttack.m_speedFactor = 0.2f;
component.m_itemData.m_shared.m_secondaryAttack.m_speedFactorRotation = 0.2f;
component.m_itemData.m_shared.m_secondaryAttack.m_damageMultiplier = 1.25f;
component.m_itemData.m_shared.m_secondaryAttack.m_forceMultiplier = 10f;
component.m_itemData.m_shared.m_secondaryAttack.m_staggerMultiplier = 6f;
component.m_itemData.m_shared.m_secondaryAttack.m_attackRange = 2.5f;
component.m_itemData.m_shared.m_secondaryAttack.m_attackAngle = 50f;
component.m_itemData.m_shared.m_secondaryAttack.m_attackRayWidth = 0.3f;
component.m_itemData.m_shared.m_secondaryAttack.m_lowerDamagePerHit = false;
ItemManager instance = ItemManager.Instance;
ItemConfig val2 = new ItemConfig();
val2.CraftingStation = CraftingStationNames.Forge;
val2.MinStationLevel = 6;
val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
{
new RequirementConfig
{
Item = ItemDropNames.FreezeGland,
Amount = 20,
AmountPerLevel = 4
},
new RequirementConfig
{
Item = ItemDropNames.TrophyHatchling,
Amount = 10,
AmountPerLevel = 0
},
new RequirementConfig
{
Item = ItemDropNames.DragonTear,
Amount = 80,
AmountPerLevel = 20
},
new RequirementConfig
{
Item = ItemDropNames.TrophyDragonQueen,
Amount = 8,
AmountPerLevel = 0
}
};
instance.AddItem(new CustomItem(val, false, val2));
}
catch (Exception e)
{
Log.Error(Instance, e);
}
}
private void AddKnifeFrost()
{
//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
//IL_0275: Unknown result type (might be due to invalid IL or missing references)
//IL_027b: Expected O, but got Unknown
//IL_0296: Unknown result type (might be due to invalid IL or missing references)
//IL_029b: Unknown result type (might be due to invalid IL or missing references)
//IL_02a6: Unknown result type (might be due to invalid IL or missing references)
//IL_02ae: Unknown result type (might be due to invalid IL or missing references)
//IL_02b6: Expected O, but got Unknown
//IL_02b8: Unknown result type (might be due to invalid IL or missing references)
//IL_02bd: Unknown result type (might be due to invalid IL or missing references)
//IL_02c8: Unknown result type (might be due to invalid IL or missing references)
//IL_02d0: Unknown result type (might be due to invalid IL or missing references)
//IL_02d9: Expected O, but got Unknown
//IL_02db: Unknown result type (might be due to invalid IL or missing references)
//IL_02e0: Unknown result type (might be due to invalid IL or missing references)
//IL_02eb: Unknown result type (might be due to invalid IL or missing references)
//IL_02f3: Unknown result type (might be due to invalid IL or missing references)
//IL_02fc: Expected O, but got Unknown
//IL_02fe: Unknown result type (might be due to invalid IL or missing references)
//IL_0303: Unknown result type (might be due to invalid IL or missing references)
//IL_030e: Unknown result type (might be due to invalid IL or missing references)
//IL_0315: Unknown result type (might be due to invalid IL or missing references)
//IL_031d: Expected O, but got Unknown
//IL_0323: Unknown result type (might be due to invalid IL or missing references)
//IL_032d: Expected O, but got Unknown
try
{
Log.Trace(Instance, "Digitalroot.Valheim.ForsakenJVL." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
GameObject val = _assetBundle.LoadAsset<GameObject>("Assets/Custom_Items/weapons/v801_KnifeFrost/v801_KnifeFrost.prefab");
if ((Object)(object)val == (Object)null)
{
throw new NullReferenceException("prefab");
}
ItemDrop component = val.GetComponent<ItemDrop>();
if ((Object)(object)component == (Object)null)
{
throw new NullReferenceException("itemDrop");
}
component.m_itemData.m_shared.m_name = "$item_forsaken_knifefrost";
component.m_itemData.m_shared.m_description = "$item_forsaken_knifefrost_description";
component.m_itemData.m_shared.m_itemType = (ItemType)3;
component.m_itemData.m_shared.m_maxStackSize = 1;
component.m_itemData.m_shared.m_maxQuality = 4;
component.m_itemData.m_shared.m_weight = 1.5f;
component.m_itemData.m_shared.m_maxDurability = 500f;
component.m_itemData.m_shared.m_equipDuration = 0.2f;
component.m_itemData.m_shared.m_backstabBonus = 4f;
component.m_itemData.m_shared.m_damages.m_slash = 0f;
component.m_itemData.m_shared.m_damages.m_pierce = 75f;
component.m_itemData.m_shared.m_damages.m_frost = 75f;
component.m_itemData.m_shared.m_damagesPerLevel.m_slash = 0f;
component.m_itemData.m_shared.m_damagesPerLevel.m_pierce = 5f;
component.m_itemData.m_shared.m_damagesPerLevel.m_frost = 5f;
component.m_itemData.m_shared.m_attack.m_attackStamina = 15f;
component.m_itemData.m_shared.m_attack.m_speedFactor = 0.1f;
component.m_itemData.m_shared.m_attack.m_speedFactorRotation = 0.1f;
component.m_itemData.m_shared.m_attack.m_attackHeight = 1f;
component.m_itemData.m_shared.m_secondaryAttack.m_damageMultiplier = 1.15f;
component.m_itemData.m_shared.m_secondaryAttack.m_attackStamina = 30f;
ItemManager instance = ItemManager.Instance;
ItemConfig val2 = new ItemConfig();
val2.CraftingStation = CraftingStationNames.Forge;
val2.MinStationLevel = 6;
val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
{
new RequirementConfig
{
Item = ItemDropNames.FreezeGland,
Amount = 24,
AmountPerLevel = 6
},
new RequirementConfig
{
Item = ItemDropNames.Needle,
Amount = 60,
AmountPerLevel = 10
},
new RequirementConfig
{
Item = ItemDropNames.DragonTear,
Amount = 80,
AmountPerLevel = 20
},
new RequirementConfig
{
Item = ItemDropNames.TrophyDragonQueen,
Amount = 8,
AmountPerLevel = 0
}
};
instance.AddItem(new CustomItem(val, false, val2));
}
catch (Exception e)
{
Log.Error(Instance, e);
}
}
private void AddBattleaxeLightning()
{
//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
//IL_0344: Unknown result type (might be due to invalid IL or missing references)
//IL_034a: Expected O, but got Unknown
//IL_035e: Unknown result type (might be due to invalid IL or missing references)
//IL_0363: Unknown result type (might be due to invalid IL or missing references)
//IL_036e: Unknown result type (might be due to invalid IL or missing references)
//IL_0376: Unknown result type (might be due to invalid IL or missing references)
//IL_037f: Expected O, but got Unknown
//IL_0381: Unknown result type (might be due to invalid IL or missing references)
//IL_0386: Unknown result type (might be due to invalid IL or missing references)
//IL_0391: Unknown result type (might be due to invalid IL or missing references)
//IL_0399: Unknown result type (might be due to invalid IL or missing references)
//IL_03a1: Expected O, but got Unknown
//IL_03a3: Unknown result type (might be due to invalid IL or missing references)
//IL_03a8: Unknown result type (might be due to invalid IL or missing references)
//IL_03b3: Unknown result type (might be due to invalid IL or missing references)
//IL_03bb: Unknown result type (might be due to invalid IL or missing references)
//IL_03c4: Expected O, but got Unknown
//IL_03c6: Unknown result type (might be due to invalid IL or missing references)
//IL_03cb: Unknown result type (might be due to invalid IL or missing references)
//IL_03d6: Unknown result type (might be due to invalid IL or missing references)
//IL_03dd: Unknown result type (might be due to invalid IL or missing references)
//IL_03e5: Expected O, but got Unknown
//IL_03eb: Unknown result type (might be due to invalid IL or missing references)
//IL_03f5: Expected O, but got Unknown
try
{
Log.Trace(Instance, "Digitalroot.Valheim.ForsakenJVL." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
GameObject val = _assetBundle.LoadAsset<GameObject>("Assets/Custom_Items/v801_BattleaxeLightning/v801_BattleaxeLightning.prefab");
if ((Object)(object)val == (Object)null)
{
throw new NullReferenceException("prefab");
}
ItemDrop component = val.GetComponent<ItemDrop>();
if ((Object)(object)component == (Object)null)
{
throw new NullReferenceException("itemDrop");
}
component.m_itemData.m_shared.m_name = "$item_forsaken_battleaxelightning";
component.m_itemData.m_shared.m_description = "$item_forsaken_battleaxelightning_description";
component.m_itemData.m_shared.m_itemType = (ItemType)3;
component.m_itemData.m_shared.m_equipDuration = 0.2f;
component.m_itemData.m_shared.m_maxDurability = 400f;
component.m_itemData.m_shared.m_maxQuality = 4;
component.m_itemData.m_shared.m_maxStackSize = 1;
component.m_itemData.m_shared.m_variants = 1;
component.m_itemData.m_shared.m_weight = 2.5f;
component.m_itemData.m_shared.m_attackForce = 12f;
component.m_itemData.m_shared.m_deflectionForce = 6f;
component.m_itemData.m_shared.m_timedBlockBonus = 6f;
component.m_itemData.m_shared.m_damages.m_slash = 75f;
component.m_itemData.m_shared.m_damages.m_lightning = 40f;
component.m_itemData.m_shared.m_damagesPerLevel.m_slash = 5f;
component.m_itemData.m_shared.m_damagesPerLevel.m_lightning = 5f;
component.m_itemData.m_shared.m_attack.m_attackStamina = 30f;
component.m_itemData.m_shared.m_attack.m_attackAnimation = "swing_longsword";
component.m_itemData.m_shared.m_secondaryAttack.m_attackAnimation = "atgeir_secondary";
component.m_itemData.m_shared.m_secondaryAttack.m_attackChainLevels = 0;
component.m_itemData.m_shared.m_secondaryAttack.m_attackStamina = 20f;
component.m_itemData.m_shared.m_secondaryAttack.m_speedFactor = 0.2f;
component.m_itemData.m_shared.m_secondaryAttack.m_speedFactorRotation = 0.2f;
component.m_itemData.m_shared.m_secondaryAttack.m_damageMultiplier = 0.75f;
component.m_itemData.m_shared.m_secondaryAttack.m_forceMultiplier = 10f;
component.m_itemData.m_shared.m_secondaryAttack.m_staggerMultiplier = 6f;
component.m_itemData.m_shared.m_secondaryAttack.m_attackRange = 3.5f;
component.m_itemData.m_shared.m_secondaryAttack.m_attackAngle = 360f;
component.m_itemData.m_shared.m_secondaryAttack.m_attackRayWidth = 0.3f;
component.m_itemData.m_shared.m_secondaryAttack.m_lowerDamagePerHit = false;
ItemManager instance = ItemManager.Instance;
ItemConfig val2 = new ItemConfig();
val2.CraftingStation = CraftingStationNames.Forge;
val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
{
new RequirementConfig
{
Item = ItemDropNames.FineWood,
Amount = 30,
AmountPerLevel = 10
},
new RequirementConfig
{
Item = ItemDropNames.LeatherScraps,
Amount = 12,
AmountPerLevel = 4
},
new RequirementConfig
{
Item = ItemDropNames.Silver,
Amount = 90,
AmountPerLevel = 25
},
new RequirementConfig
{
Item = ItemDropNames.TrophyEikthyr,
Amount = 1,
AmountPerLevel = 0
}
};
instance.AddItem(new CustomItem(val, false, val2));
}
catch (Exception e)
{
Log.Error(Instance, e);
}
}
private void AddBowFrost()
{
//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
//IL_0178: Unknown result type (might be due to invalid IL or missing references)
//IL_017e: Expected O, but got Unknown
//IL_0199: Unknown result type (might be due to invalid IL or missing references)
//IL_019e: Unknown result type (might be due to invalid IL or missing references)
//IL_01a9: Unknown result type (might be due to invalid IL or missing references)
//IL_01b1: Unknown result type (might be due to invalid IL or missing references)
//IL_01ba: Expected O, but got Unknown
//IL_01bc: Unknown result type (might be due to invalid IL or missing references)
//IL_01c1: Unknown result type (might be due to invalid IL or missing references)
//IL_01cc: Unknown result type (might be due to invalid IL or missing references)
//IL_01d4: Unknown result type (might be due to invalid IL or missing references)
//IL_01dc: Expected O, but got Unknown
//IL_01de: Unknown result type (might be due to invalid IL or missing references)
//IL_01e3: Unknown result type (might be due to invalid IL or missing references)
//IL_01ee: Unknown result type (might be due to invalid IL or missing references)
//IL_01f6: Unknown result type (might be due to invalid IL or missing references)
//IL_01ff: Expected O, but got Unknown
//IL_0201: Unknown result type (might be due to invalid IL or missing references)
//IL_0206: Unknown result type (might be due to invalid IL or missing references)
//IL_0211: Unknown result type (might be due to invalid IL or missing references)
//IL_0218: Unknown result type (might be due to invalid IL or missing references)
//IL_0220: Expected O, but got Unknown
//IL_0226: Unknown result type (might be due to invalid IL or missing references)
//IL_0230: Expected O, but got Unknown
try
{
Log.Trace(Instance, "Digitalroot.Valheim.ForsakenJVL." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
GameObject val = _assetBundle.LoadAsset<GameObject>("Assets/Custom_Items/v801_BowFrost/v801_BowFrost.prefab");
if ((Object)(object)val == (Object)null)
{
throw new NullReferenceException("prefab");
}
ItemDrop component = val.GetComponent<ItemDrop>();
if ((Object)(object)component == (Object)null)
{
throw new NullReferenceException("itemDrop");
}
component.m_itemData.m_shared.m_name = "$item_forsaken_bowfrost";
component.m_itemData.m_shared.m_description = "$item_forsaken_bowfrost_description";
component.m_itemData.m_shared.m_itemType = (ItemType)4;
component.m_itemData.m_shared.m_equipDuration = 0.2f;
component.m_itemData.m_shared.m_maxDurability = 600f;
component.m_itemData.m_shared.m_maxStackSize = 1;
component.m_itemData.m_shared.m_maxQuality = 4;
component.m_itemData.m_shared.m_variants = 1;
component.m_itemData.m_shared.m_weight = 10f;
component.m_itemData.m_shared.m_timedBlockBonus = 6f;
component.m_itemData.m_shared.m_deflectionForce = 8f;
component.m_itemData.m_shared.m_attackForce = 0f;
ItemManager instance = ItemManager.Instance;
ItemConfig val2 = new ItemConfig();
val2.CraftingStation = CraftingStationNames.Forge;
val2.MinStationLevel = 6;
val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
{
new RequirementConfig
{
Item = ItemDropNames.FreezeGland,
Amount = 20,
AmountPerLevel = 10
},
new RequirementConfig
{
Item = ItemDropNames.Crystal,
Amount = 20,
AmountPerLevel = 6
},
new RequirementConfig
{
Item = ItemDropNames.DragonTear,
Amount = 20,
AmountPerLevel = 15
},
new RequirementConfig
{
Item = ItemDropNames.TrophyDragonQueen,
Amount = 6,
AmountPerLevel = 0
}
};
instance.AddItem(new CustomItem(val, false, val2));
}
catch (Exception e)
{
Log.Error(Instance, e);
}
}
private void AddSledgeFire()
{
//IL_00bd: Unknown result type (might be due to invalid IL or missing references)
//IL_0367: Unknown result type (might be due to invalid IL or missing references)
//IL_036d: Expected O, but got Unknown
//IL_0388: Unknown result type (might be due to invalid IL or missing references)
//IL_038d: Unknown result type (might be due to invalid IL or missing references)
//IL_0398: Unknown result type (might be due to invalid IL or missing references)
//IL_03a0: Unknown result type (might be due to invalid IL or missing references)
//IL_03a9: Expected O, but got Unknown
//IL_03ab: Unknown result type (might be due to invalid IL or missing references)
//IL_03b0: Unknown result type (might be due to invalid IL or missing references)
//IL_03bb: Unknown result type (might be due to invalid IL or missing references)
//IL_03c3: Unknown result type (might be due to invalid IL or missing references)
//IL_03cc: Expected O, but got Unknown
//IL_03ce: Unknown result type (might be due to invalid IL or missing references)
//IL_03d3: Unknown result type (might be due to invalid IL or missing references)
//IL_03de: Unknown result type (might be due to invalid IL or missing references)
//IL_03e6: Unknown result type (might be due to invalid IL or missing references)
//IL_03ef: Expected O, but got Unknown
//IL_03f1: Unknown result type (might be due to invalid IL or missing references)
//IL_03f6: Unknown result type (might be due to invalid IL or missing references)
//IL_0401: Unknown result type (might be due to invalid IL or missing references)
//IL_0409: Unknown result type (might be due to invalid IL or missing references)
//IL_0411: Expected O, but got Unknown
//IL_0417: Unknown result type (might be due to invalid IL or missing references)
//IL_0421: Expected O, but got Unknown
try
{
Log.Trace(Instance, "Digitalroot.Valheim.ForsakenJVL." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
GameObject val = _assetBundle.LoadAsset<GameObject>("Assets/Custom_Items/v801_SledgeFire/v801_SledgeFire.prefab");
if ((Object)(object)val == (Object)null)
{
throw new NullReferenceException("prefab");
}
ItemDrop component = val.GetComponent<ItemDrop>();
if ((Object)(object)component == (Object)null)
{
throw new NullReferenceException("itemDrop");
}
component.m_itemData.m_shared.m_name = "$item_forsaken_sledgefire";
component.m_itemData.m_shared.m_description = "$item_forsaken_sledgefire_description";
component.m_itemData.m_shared.m_itemType = (ItemType)14;
component.m_itemData.m_shared.m_equipDuration = 0.2f;
component.m_itemData.m_shared.m_maxDurability = 750f;
component.m_itemData.m_shared.m_maxStackSize = 1;
component.m_itemData.m_shared.m_maxQuality = 4;
component.m_itemData.m_shared.m_variants = 1;
component.m_itemData.m_shared.m_weight = 4f;
component.m_itemData.m_shared.m_blockPower = 80f;
component.m_itemData.m_shared.m_timedBlockBonus = 6f;
component.m_itemData.m_shared.m_deflectionForce = 6f;
component.m_itemData.m_shared.m_attackForce = 6f;
component.m_itemData.m_shared.m_damages.m_blunt = 40f;
component.m_itemData.m_shared.m_damages.m_pierce = 100f;
component.m_itemData.m_shared.m_damages.m_fire = 112f;
component.m_itemData.m_shared.m_damagesPerLevel.m_blunt = 3f;
component.m_itemData.m_shared.m_damagesPerLevel.m_pierce = 10f;
component.m_itemData.m_shared.m_damagesPerLevel.m_fire = 5f;
component.m_itemData.m_shared.m_attack.m_attackStamina = 20f;
component.m_itemData.m_shared.m_attack.m_attackAnimation = "battleaxe_attack";
component.m_itemData.m_shared.m_attack.m_attackChainLevels = 3;
component.m_itemData.m_shared.m_secondaryAttack.m_attackAnimation = "swing_sledge";
component.m_itemData.m_shared.m_secondaryAttack.m_attackStamina = 35f;
component.m_itemData.m_shared.m_secondaryAttack.m_speedFactor = 0.2f;
component.m_itemData.m_shared.m_secondaryAttack.m_speedFactorRotation = 0.2f;
component.m_itemData.m_shared.m_secondaryAttack.m_forceMultiplier = 10f;
component.m_itemData.m_shared.m_secondaryAttack.m_staggerMultiplier = 6f;
component.m_itemData.m_shared.m_secondaryAttack.m_lowerDamagePerHit = false;
SE_Burning val2 = ScriptableObject.CreateInstance<SE_Burning>();
if ((Object)(object)val2 == (Object)null)
{
throw new NullReferenceException("statusEffect");
}
val2.m_fireDamagePerHit = 1f;
val2.m_damageInterval = 1f;
component.m_itemData.m_shared.m_equipStatusEffect = (StatusEffect)(object)val2;
ItemManager instance = ItemManager.Instance;
ItemConfig val3 = new ItemConfig();
val3.CraftingStation = CraftingStationNames.Forge;
val3.MinStationLevel = 6;
val3.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
{
new RequirementConfig
{
Item = ItemDropNames.FlametalNew,
Amount = 60,
AmountPerLevel = 15
},
new RequirementConfig
{
Item = ItemDropNames.SurtlingCore,
Amount = 60,
AmountPerLevel = 15
},
new RequirementConfig
{
Item = ItemDropNames.BlackMetal,
Amount = 60,
AmountPerLevel = 15
},
new RequirementConfig
{
Item = ItemDropNames.TrophySurtling,
Amount = 60,
AmountPerLevel = 8
}
};
instance.AddItem(new CustomItem(val, false, val3));
}
catch (Exception e)
{
Log.Error(Instance, e);
}
}
private void AddSledgePoison()
{
//IL_00bd: Unknown result type (might be due to invalid IL or missing references)
//IL_0330: Unknown result type (might be due to invalid IL or missing references)
//IL_0336: Expected O, but got Unknown
//IL_0351: Unknown result type (might be due to invalid IL or missing references)
//IL_0356: Unknown result type (might be due to invalid IL or missing references)
//IL_0361: Unknown result type (might be due to invalid IL or missing references)
//IL_0369: Unknown result type (might be due to invalid IL or missing references)
//IL_0372: Expected O, but got Unknown
//IL_0374: Unknown result type (might be due to invalid IL or missing references)
//IL_0379: Unknown result type (might be due to invalid IL or missing references)
//IL_0384: Unknown result type (might be due to invalid IL or missing references)
//IL_038c: Unknown result type (might be due to invalid IL or missing references)
//IL_0395: Expected O, but got Unknown
//IL_0397: Unknown result type (might be due to invalid IL or missing references)
//IL_039c: Unknown result type (might be due to invalid IL or missing references)
//IL_03a7: Unknown result type (might be due to invalid IL or missing references)
//IL_03af: Unknown result type (might be due to invalid IL or missing references)
//IL_03b8: Expected O, but got Unknown
//IL_03ba: Unknown result type (might be due to invalid IL or missing references)
//IL_03bf: Unknown result type (might be due to invalid IL or missing references)
//IL_03ca: Unknown result type (might be due to invalid IL or missing references)
//IL_03d1: Unknown result type (might be due to invalid IL or missing references)
//IL_03d9: Expected O, but got Unknown
//IL_03df: Unknown result type (might be due to invalid IL or missing references)
//IL_03e9: Expected O, but got Unknown
try
{
Log.Trace(Instance, "Digitalroot.Valheim.ForsakenJVL." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
GameObject val = _assetBundle.LoadAsset<GameObject>("Assets/Custom_Items/v801_SledgePoison/v801_SledgePoison.prefab");
if ((Object)(object)val == (Object)null)
{
throw new NullReferenceException("prefab");
}
ItemDrop component = val.GetComponent<ItemDrop>();
if ((Object)(object)component == (Object)null)
{
throw new NullReferenceException("itemDrop");
}
component.m_itemData.m_shared.m_name = "$item_forsaken_sledgepoison";
component.m_itemData.m_shared.m_description = "$item_forsaken_sledgepoison_description";
component.m_itemData.m_shared.m_itemType = (ItemType)14;
component.m_itemData.m_shared.m_maxStackSize = 1;
component.m_itemData.m_shared.m_maxQuality = 4;
component.m_itemData.m_shared.m_maxDurability = 550f;
component.m_itemData.m_shared.m_equipDuration = 0.2f;
component.m_itemData.m_shared.m_weight = 4f;
component.m_itemData.m_shared.m_variants = 1;
component.m_itemData.m_shared.m_timedBlockBonus = 6f;
component.m_itemData.m_shared.m_deflectionForce = 6f;
component.m_itemData.m_shared.m_attackForce = 12f;
component.m_itemData.m_shared.m_blockPower = 40f;
component.m_itemData.m_shared.m_damages.m_blunt = 140f;
component.m_itemData.m_shared.m_damages.m_poison = 80f;
component.m_itemData.m_shared.m_damagesPerLevel.m_blunt = 5f;
component.m_itemData.m_shared.m_damagesPerLevel.m_poison = 10f;
component.m_itemData.m_shared.m_attack.m_attackStamina = 20f;
component.m_itemData.m_shared.m_attack.m_attackAnimation = "battleaxe_attack";
component.m_itemData.m_shared.m_attack.m_attackChainLevels = 3;
component.m_itemData.m_shared.m_secondaryAttack.m_attackAnimation = "swing_sledge";
component.m_itemData.m_shared.m_secondaryAttack.m_attackStamina = 35f;
component.m_itemData.m_shared.m_secondaryAttack.m_speedFactor = 0.2f;
component.m_itemData.m_shared.m_secondaryAttack.m_speedFactorRotation = 0.2f;
component.m_itemData.m_shared.m_secondaryAttack.m_forceMultiplier = 10f;
component.m_itemData.m_shared.m_secondaryAttack.m_staggerMultiplier = 6f;
component.m_itemData.m_shared.m_secondaryAttack.m_lowerDamagePerHit = false;
StatusEffect equipStatusEffect = component.m_itemData.m_shared.m_equipStatusEffect;
StatusEffect obj = ((equipStatusEffect is SE_Poison) ? equipStatusEffect : null);
if ((Object)(object)obj == (Object)null)
{
throw new NullReferenceException("statusEffect");
}
((SE_Poison)obj).m_damageInterval = 1f;
((SE_Poison)obj).m_damagePerHit = 1f;
ItemManager instance = ItemManager.Instance;
ItemConfig val2 = new ItemConfig();
val2.CraftingStation = CraftingStationNames.Forge;
val2.MinStationLevel = 4;
val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
{
new RequirementConfig
{
Item = ItemDropNames.WitheredBone,
Amount = 20,
AmountPerLevel = 10
},
new RequirementConfig
{
Item = ItemDropNames.Guck,
Amount = 20,
AmountPerLevel = 10
},
new RequirementConfig
{
Item = ItemDropNames.BlackMetal,
Amount = 40,
AmountPerLevel = 10
},
new RequirementConfig
{
Item = ItemDropNames.TrophyBonemass,
Amount = 6,
AmountPerLevel = 0
}
};
instance.AddItem(new CustomItem(val, false, val2));
}
catch (Exception e)
{
Log.Error(Instance, e);
}
}
private void AddSpearSpirit()
{
//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
//IL_027d: Unknown result type (might be due to invalid IL or missing references)
//IL_0283: Expected O, but got Unknown
//IL_029e: Unknown result type (might be due to invalid IL or missing references)
//IL_02a3: Unknown result type (might be due to invalid IL or missing references)
//IL_02ae: Unknown result type (might be due to invalid IL or missing references)
//IL_02b6: Unknown result type (might be due to invalid IL or missing references)
//IL_02bf: Expected O, but got Unknown
//IL_02c1: Unknown result type (might be due to invalid IL or missing references)
//IL_02c6: Unknown result type (might be due to invalid IL or missing references)
//IL_02d1: Unknown result type (might be due to invalid IL or missing references)
//IL_02d9: Unknown result type (might be due to invalid IL or missing references)
//IL_02e1: Expected O, but got Unknown
//IL_02e3: Unknown result type (might be due to invalid IL or missing references)
//IL_02e8: Unknown result type (might be due to invalid IL or missing references)
//IL_02f3: Unknown result type (might be due to invalid IL or missing references)
//IL_02fb: Unknown result type (might be due to invalid IL or missing references)
//IL_0304: Expected O, but got Unknown
//IL_0306: Unknown result type (might be due to invalid IL or missing references)
//IL_030b: Unknown result type (might be due to invalid IL or missing references)
//IL_0316: Unknown result type (might be due to invalid IL or missing references)
//IL_031d: Unknown result type (might be due to invalid IL or missing references)
//IL_0325: Expected O, but got Unknown
//IL_032b: Unknown result type (might be due to invalid IL or missing references)
//IL_0335: Expected O, but got Unknown
try
{
Log.Trace(Instance, "Digitalroot.Valheim.ForsakenJVL." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
GameObject val = _assetBundle.LoadAsset<GameObject>("Assets/Custom_Items/v801_SpearSpirit/v801_SpearSpirit.prefab");
if ((Object)(object)val == (Object)null)
{
throw new NullReferenceException("prefab");
}
ItemDrop component = val.GetComponent<ItemDrop>();
if ((Object)(object)component == (Object)null)
{
throw new NullReferenceException("itemDrop");
}
component.m_itemData.m_shared.m_name = "$item_forsaken_spearspirit";
component.m_itemData.m_shared.m_description = "$item_forsaken_spearspirit_description";
component.m_itemData.m_shared.m_itemType = (ItemType)3;
component.m_itemData.m_shared.m_maxStackSize = 1;
component.m_itemData.m_shared.m_maxQuality = 4;
component.m_itemData.m_shared.m_maxDurability = 500f;
component.m_itemData.m_shared.m_equipDuration = 0.2f;
component.m_itemData.m_shared.m_variants = 1;
component.m_itemData.m_shared.m_timedBlockBonus = 1f;
component.m_itemData.m_shared.m_deflectionForce = 1f;
component.m_itemData.m_shared.m_attackForce = 12f;
component.m_itemData.m_shared.m_damages.m_pierce = 75f;
component.m_itemData.m_shared.m_damages.m_spirit = 75f;
component.m_itemData.m_shared.m_damagesPerLevel.m_pierce = 5f;
component.m_itemData.m_shared.m_damagesPerLevel.m_spirit = 5f;
component.m_itemData.m_shared.m_attack.m_attackStamina = 20f;
component.m_itemData.m_shared.m_secondaryAttack.m_speedFactor = 0.2f;
component.m_itemData.m_shared.m_secondaryAttack.m_speedFactorRotation = 0.2f;
component.m_itemData.m_shared.m_secondaryAttack.m_damageMultiplier = 0.75f;
component.m_itemData.m_shared.m_secondaryAttack.m_forceMultiplier = 10f;
component.m_itemData.m_shared.m_secondaryAttack.m_staggerMultiplier = 6f;
component.m_itemData.m_shared.m_secondaryAttack.m_lowerDamagePerHit = false;
ItemManager instance = ItemManager.Instance;
ItemConfig val2 = new ItemConfig();
val2.CraftingStation = CraftingStationNames.Forge;
val2.MinStationLevel = 4;
val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
{
new RequirementConfig
{
Item = ItemDropNames.ElderBark,
Amount = 40,
AmountPerLevel = 10
},
new RequirementConfig
{
Item = ItemDropNames.Crystal,
Amount = 12,
AmountPerLevel = 4
},
new RequirementConfig
{
Item = ItemDropNames.AncientSeed,
Amount = 40,
AmountPerLevel = 15
},
new RequirementConfig
{
Item = ItemDropNames.TrophyTheElder,
Amount = 3,
AmountPerLevel = 0
}
};
instance.AddItem(new CustomItem(val, false, val2));
}
catch (Exception e)
{
Log.Error(Instance, e);
}
}
private void AddUnarmedFenring()
{
//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
//IL_02f0: Unknown result type (might be due to invalid IL or missing references)
//IL_02f6: Expected O, but got Unknown
//IL_0311: Unknown result type (might be due to invalid IL or missing references)
//IL_0316: Unknown result type (might be due to invalid IL or missing references)
//IL_0321: Unknown result type (might be due to invalid IL or missing references)
//IL_0329: Unknown result type (might be due to invalid IL or missing references)
//IL_0332: Expected O, but got Unknown
//IL_0334: Unknown result type (might be due to invalid IL or missing references)
//IL_0339: Unknown result type (might be due to invalid IL or missing references)
//IL_0344: Unknown result type (might be due to invalid IL or missing references)
//IL_034c: Unknown result type (might be due to invalid IL or missing references)
//IL_0355: Expected O, but got Unknown
//IL_0357: Unknown result type (might be due to invalid IL or missing references)
//IL_035c: Unknown result type (might be due to invalid IL or missing references)
//IL_0367: Unknown result type (might be due to invalid IL or missing references)
//IL_036e: Unknown result type (might be due to invalid IL or missing references)
//IL_0376: Expected O, but got Unknown
//IL_0378: Unknown result type (might be due to invalid IL or missing references)
//IL_037d: Unknown result type (might be due to invalid IL or missing references)
//IL_0388: Unknown result type (might be due to invalid IL or missing references)
//IL_0390: Unknown result type (might be due to invalid IL or missing references)
//IL_0398: Expected O, but got Unknown
//IL_039e: Unknown result type (might be due to invalid IL or missing references)
//IL_03a8: Expected O, but got Unknown
try
{
Log.Trace(Instance, "Digitalroot.Valheim.ForsakenJVL." + MethodBase.GetCurrentMethod()?.DeclaringType?.Name + "." + MethodBase.GetCurrentMethod()?.Name);
GameObject val = _assetBundle.LoadAsset<GameObject>("Assets/Custom_Items/v801_UnarmedFenring/v801_UnarmedFenring.prefab");
if ((Object)(object)val == (Object)null)
{
throw new NullReferenceException("prefab");
}
ItemDrop component = val.GetComponent<ItemDrop>();
if ((Object)(object)component == (Object)null)
{
throw new NullReferenceException("itemDrop");
}
component.m_itemData.m_shared.m_name = "$item_forsaken_unarmedfenring";
component.m_itemData.m_shared.m_description = "$item_forsaken_unarmedfenring_description";
component.m_itemData.m_shared.m_itemType = (ItemType)3;
component.m_itemData.m_shared.m_equipDuration = 0.25f;
component.m_itemData.m_shared.m_maxDurability = 800f;
component.m_itemData.m_shared.m_maxQuality = 4;
component.m_itemData.m_shared.m_maxStackSize = 1;
component.m_itemData.m_shared.m_variants = 1;
component.m_itemData.m_shared.m_weight = 2f;
component.m_itemData.m_shared.m_blockPower = 30f;
component.m_itemData.m_shared.m_timedBlockBonus = 2f;
component.m_itemData.m_shared.m_deflectionForce = 2f;
component.m_itemData.m_shared.m_attackForce = 2f;
component.m_itemData.m_shared.m_movementModifier = 0f;
component.m_itemData.m_shared.m_damages.m_slash = 60f;
component.m_itemData.m_shared.m_damages.m_pierce = 60f;
component.m_itemData.m_shared.m_damagesPerLevel.m_slash = 5f;
component.m_itemData.m_shared.m_damagesPerLevel.m_pierce = 5f;
component.m_itemData.m_shared.m_attack.m_attackStamina = 15f;
component.m_itemData.m_shared.m_attack.m_speedFactor = 0.1f;
component.m_itemData.m_shared.m_attack.m_speedFactorRotation = 0.1f;
component.m_itemData.m_shared.m_secondaryAttack.m_speedFactor = 0.1f;
component.m_itemData.m_shared.m_secondaryAttack.m_speedFactorRotation = 0.1f;
component.m_itemData.m_shared.m_secondaryAttack.m_damageMultiplier = 1.15f;
component.m_itemData.m_shared.m_secondaryAttack.m_forceMultiplier = 10f;
component.m_itemData.m_shared.m_secondaryAttack.m_staggerMultiplier = 6f;
component.m_itemData.m_shared.m_secondaryAttack.m_lowerDamagePerHit = false;
ItemManager instance = ItemManager.Instance;
ItemConfig val2 = new ItemConfig();
val2.CraftingStation = CraftingStationNames.Forge;
val2.MinStationLevel = 5;
val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[4]
{
new RequirementConfig
{
Item = ItemDropNames.FreezeGland,
Amount = 40,
AmountPerLevel = 10
},
new RequirementConfig
{
Item = ItemDropNames.Silver,
Amount = 60,
AmountPerLevel = 10
},
new RequirementConfig
{
Item = ItemDropNames.Chain,
Amount = 4,
AmountPerLevel = 2
},
new RequirementConfig
{
Item = ItemDropNames.TrophyFenring,
Amount = 10,
AmountPerLevel = 0
}
};
instance.AddItem(new CustomItem(val, false, val2));
}
catch (Exception e)
{
Log.Error(Instance, e);
}
}
}
}
namespace Digitalroot.Valheim.ForsakenJVL.Properties
{
[GeneratedCode("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[DebuggerNonUserCode]
[CompilerGenerated]
internal class Resources
{
private static ResourceManager resourceMan;
private static CultureInfo resourceCulture;
[EditorBrowsable(EditorBrowsableState.Advanced)]
internal static ResourceManager ResourceManager
{
get
{
if (resourceMan == null)
{
resourceMan = new ResourceManager("Digitalroot.Valheim.ForsakenJVL.Properties.Resources", typeof(Resources).Assembly);
}
return resourceMan;
}
}
[EditorBrowsable(EditorBrowsableState.Advanced)]
internal static CultureInfo Culture
{
get
{
return resourceCulture;
}
set
{
resourceCulture = value;
}
}
internal static string asseturl => ResourceManager.GetString("asseturl", resourceCulture);
internal Resources()
{
}
}
}
namespace Digitalroot.Valheim.Common
{
internal sealed class Log
{
private static readonly Dictionary<string, TraceLogger> TraceLoggers;
[UsedImplicitly]
private static Log Instance { get; }
static Log()
{
TraceLoggers = new Dictionary<string, TraceLogger>();
Instance = new Log();
}
private Log()
{
TraceLoggers.Add("Digitalroot", new TraceLogger("Digitalroot", enableTrace: false));
}
public static void RegisterSource(ITraceableLogging sender)
{
if ((!TraceLoggers.ContainsKey(sender.Source) || TraceLoggers[sender.Source].IsTraceEnabled != sender.EnableTrace) && (!TraceLoggers.ContainsKey(sender.Source) || sender.EnableTrace))
{
if (TraceLoggers.ContainsKey(sender.Source) && sender.EnableTrace)
{
TraceLoggers[sender.Source].EnableTrace();
}
else
{
TraceLoggers.Add(sender.Source, new TraceLogger(sender.Source, sender.EnableTrace));
}
}
}
private static TraceLogger GetTraceLogger(ITraceableLogging sender)
{
if (!TraceLoggers.ContainsKey(sender.Source))
{
return TraceLoggers["Digitalroot"];
}
return TraceLoggers[sender.Source];
}
[UsedImplicitly]
public static void SetEnableTrace(ITraceableLogging sender, bool value)
{
if (value)
{
GetTraceLogger(sender).EnableTrace();
}
else
{
GetTraceLogger(sender).DisableTrace();
}
}
[UsedImplicitly]
public static void SetEnableTraceForAllLoggers(bool value)
{
foreach (TraceLogger value2 in TraceLoggers.Values)
{
if (value)
{
value2.EnableTrace();
}
else
{
value2.DisableTrace();
}
}
}
[UsedImplicitly]
public static void Debug(ITraceableLogging sender, object value)
{
GetTraceLogger(sender).LoggerRef.LogDebug(value);
}
[UsedImplicitly]
public static void Error(ITraceableLogging sender, Exception e, int i = 1)
{
Error(sender, "Message: " + e.Message);
Error(sender, $"TargetSite: {e.TargetSite}");
Error(sender, "StackTrace: " + e.StackTrace);
Error(sender, "Source: " + e.Source);
if (e.Data.Count > 0)
{
foreach (object key in e.Data.Keys)
{
Error(sender, $"key: {key}, value: {e.Data[key]}");
}
}
if (e.InnerException != null)
{
Error(sender, $"--- InnerException [{i}][Start] ---");
Error(sender, e.InnerException, ++i);
}
}
[UsedImplicitly]
public static void Error(ITraceableLogging sender, object value)
{
GetTraceLogger(sender).LoggerRef.LogError(value);
}
[UsedImplicitly]
public static void Info(ITraceableLogging sender, object value)
{
GetTraceLogger(sender).LoggerRef.LogInfo(value);
}
[UsedImplicitly]
public static void Fatal(ITraceableLogging sender, Exception e, int i = 1)
{
Fatal(sender, "Message: " + e.Message);
Fatal(sender, $"TargetSite: {e.TargetSite}");
Fatal(sender, "StackTrace: " + e.StackTrace);
Fatal(sender, "Source: " + e.Source);
if (e.Data.Count > 0)
{
foreach (object key in e.Data.Keys)
{
Fatal(sender, $"key: {key}, value: {e.Data[key]}");
}
}
if (e.InnerException != null)
{
Fatal(sender, $"--- InnerException [{i}][Start] ---");
Fatal(sender, e.InnerException, ++i);
}
}
[UsedImplicitly]
public static void Fatal(ITraceableLogging sender, object value)
{
GetTraceLogger(sender).LoggerRef.LogFatal(value);
}
[UsedImplicitly]
public static void Message(ITraceableLogging sender, object value)
{
GetTraceLogger(sender).LoggerRef.LogMessage(value);
}
[UsedImplicitly]
public static void Trace(ITraceableLogging sender, object value)
{
if (GetTraceLogger(sender).IsTraceEnabled || sender.EnableTrace)
{
GetTraceLogger(sender).LoggerRef.Log((LogLevel)63, value);
}
}
[UsedImplicitly]
public static void Warning(ITraceableLogging sender, object value)
{
GetTraceLogger(sender).LoggerRef.LogWarning(value);
}
}
internal class TraceLogger
{
internal readonly ManualLogSource LoggerRef;
private readonly string _source;
private readonly FileInfo _traceFileInfo;
public bool IsTraceEnabled { get; private set; }
private DirectoryInfo AssemblyDirectory => new FileInfo(Uri.UnescapeDataString(new UriBuilder(Assembly.GetExecutingAssembly().CodeBase).Path)).Directory;
public TraceLogger(string source, bool enableTrace)
{
_source = source;
IsTraceEnabled = enableTrace;
LoggerRef = Logger.CreateLogSource(_source);
_traceFileInfo = new FileInfo(Path.Combine(Paths.BepInExRootPath ?? AssemblyDirectory.FullName, "logs", _source + ".Trace.log"));
if (_traceFileInfo.DirectoryName != null)
{
Directory.CreateDirectory(_traceFileInfo.DirectoryName);
}
if (_traceFileInfo.Exists)
{
_traceFileInfo.Delete();
_traceFileInfo.Refresh();
}
LoggerRef.LogEvent += OnLogEvent;
}
public void EnableTrace()
{
IsTraceEnabled = true;
}
public void DisableTrace()
{
IsTraceEnabled = false;
}
[UsedImplicitly]
public void StopTrace()
{
LoggerRef.LogEvent -= OnLogEvent;
}
private void OnLogEvent(object sender, LogEventArgs e)
{
//IL_00b0: Unknown result type (might be due to invalid IL or missing references)
//IL_005a: Unknown result type (might be due to invalid IL or missing references)
if (e.Source.SourceName != _source || !IsTraceEnabled)
{
return;
}
using Mutex mutex = new Mutex(initiallyOwned: false, "Digitalroot.Valheim.Common.TraceLogger." + _source);
mutex.WaitOne();
try
{
if (e.Data is string)
{
string contents = $"[{e.Level,-7}:{e.Source.SourceName,10}] {e.Data}{Environment.NewLine}";
File.AppendAllText(_traceFileInfo.FullName, contents, Encoding.UTF8);
}
else
{
string contents2 = $"[{e.Level,-7}:{e.Source.SourceName,10}] {JsonSerializationProvider.Serialize(e.Data)}{Environment.NewLine}";
File.AppendAllText(_traceFileInfo.FullName, contents2, Encoding.UTF8);
}
}
finally
{
mutex.ReleaseMutex();
}
}
}
internal interface ITraceableLogging
{
string Source { get; }
bool EnableTrace { get; }
}
}
namespace Digitalroot.Valheim.Common.Json
{
[UsedImplicitly]
internal static class JsonSerializationProvider
{
[Obsolete("Use Deserialize<T>()")]
public static T FromJson<T>(string json)
{
return Deserialize<T>(json);
}
public static T Deserialize<T>(string json)
{
return SimpleJson.DeserializeObject<T>(json, (IJsonSerializerStrategy)(object)new DigitalrootJsonSerializerStrategy());
}
[Obsolete("Use Serialize()")]
public static string ToJson(object obj, bool pretty = false)
{
return Serialize(obj);
}
public static string Serialize(object obj)
{
return SimpleJson.SerializeObject(obj, (IJsonSerializerStrategy)(object)new DigitalrootJsonSerializerStrategy());
}
}
internal class DigitalrootJsonSerializerStrategy : PocoJsonSerializerStrategy
{
public override bool TrySerializeNonPrimitiveObject(object input, out object output)
{
//IL_0009: Unknown result type (might be due to invalid IL or missing references)
//IL_000e: Unknown result type (might be due to invalid IL or missing references)
//IL_001a: Unknown result type (might be due to invalid IL or missing references)
//IL_001f: Unknown result type (might be due to invalid IL or missing references)
//IL_002b: Unknown result type (might be due to invalid IL or missing references)
//IL_0034: Unknown result type (might be due to invalid IL or missing references)
//IL_003d: Unknown result type (might be due to invalid IL or missing references)
//IL_0050: Unknown result type (might be due to invalid IL or missing references)
//IL_0059: Unknown result type (might be due to invalid IL or missing references)
//IL_0062: Unknown result type (might be due to invalid IL or missing references)
//IL_006b: Unknown result type (might be due to invalid IL or missing references)
if (!(input is Vector3 val))
{
if (input is Quaternion val2)
{
output = new float[4] { val2.x, val2.y, val2.z, val2.w };
return true;
}
return ((PocoJsonSerializerStrategy)this).TrySerializeNonPrimitiveObject(input, ref output);
}
output = new float[3] { val.x, val.y, val.z };
return true;
}
public override object DeserializeObject(object value, Type type)
{
//IL_009b: Unknown result type (might be due to invalid IL or missing references)
//IL_0102: Unknown result type (might be due to invalid IL or missing references)
if (type == null)
{
throw new ArgumentNullException("type");
}
if (value == null)
{
throw new ArgumentNullException("value");
}
if (value is string value2)
{
if (string.IsNullOrWhiteSpace(value2))
{
throw new ArgumentNullException("value");
}
if (type == typeof(Vector3))
{
if (!(((PocoJsonSerializerStrategy)this).DeserializeObject(value, typeof(float[])) is float[] array) || (array != null && array.Length != 3))
{
throw new ArgumentException(string.Format("The value '{0}' can be converted to a {1}.", value, "Vector3"), "value");
}
return (object)new Vector3(array[0], array[1], array[2]);
}
if (type == typeof(Quaternion))
{
if (!(((PocoJsonSerializerStrategy)this).DeserializeObject(value, typeof(float[])) is float[] array2) || (array2 != null && array2.Length != 4))
{
throw new ArgumentException(string.Format("The value '{0}' can be converted to a {1}.", value, "Quaternion"), "value");
}
return (object)new Quaternion(array2[0], array2[1], array2[2], array2[3]);
}
return ((PocoJsonSerializerStrategy)this).DeserializeObject(value, type);
}
throw new ArgumentException($"The value '{value}' can be converted to a {type.Name}.", "value");
}
}
}
namespace Digitalroot.Valheim.Common
{
internal static class Utils
{
private static readonly ITraceableLogging Logger = GetLogger();
[UsedImplicitly]
public static DirectoryInfo AssemblyDirectory => new FileInfo(Uri.UnescapeDataString(new UriBuilder(Assembly.GetExecutingAssembly().CodeBase).Path)).Directory;
[UsedImplicitly]
public static bool IsDedicated => ZNet.instance.IsDedicated();
[UsedImplicitly]
public static bool IsServer => ZNet.instance.IsServer();
public static bool IsRunningFromNUnit => AppDomain.CurrentDomain.GetAssemblies().Any((Assembly a) => a.FullName.ToLowerInvariant().StartsWith("nunit.framework"));
public static string Namespace => "Digitalroot.Valheim.Common";
private static ITraceableLogging GetLogger()
{
return new StaticSourceLogger();
}
[UsedImplicitly]
public static bool IsHeadless()
{
//IL_0000: Unknown result type (might be due to invalid IL or missing references)
//IL_0006: Invalid comparison between Unknown and I4
return (int)SystemInfo.graphicsDeviceType == 4;
}
[UsedImplicitly]
public static List<T> AllOf<T>()
{
return Enum.GetValues(typeof(T)).OfType<T>().ToList();
}
[UsedImplicitly]
public static IEnumerable<string> AllNames(Type type)
{
foreach (FieldInfo item in from f1 in type.GetFields()
where f1.FieldType == typeof(string)
select f1)
{
yield return item.GetValue(null).ToString();
}
}
[UsedImplicitly]
public static bool DoesPluginExist(string pluginGuid)
{
return Chainloader.PluginInfos.Any((KeyValuePair<string, PluginInfo> keyValuePair) => keyValuePair.Value.Metadata.GUID == pluginGuid);
}
[UsedImplicitly]
public static Vector3 GetGroundHeight(int x, int z)
{
//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)
return Utils.GetGroundHeight(new Vector3Int(x, 500, z));
}
[UsedImplicitly]
public static Vector3 GetGroundHeight(float x, float z)
{
//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)
return Utils.GetGroundHeight(new Vector3(x, 500f, z));
}
public static Vector3 GetGroundHeight(Vector3Int vector3)
{
//IL_000d: Unknown result type (might be due to invalid IL or missing references)
//IL_000e: Unknown result type (might be due to invalid IL or missing references)
//IL_0020: Unknown result type (might be due to invalid IL or missing references)
return new Vector3((float)((Vector3Int)(ref vector3)).x, ZoneSystem.instance.GetGroundHeight(Vector3Int.op_Implicit(vector3)), (float)((Vector3Int)(ref vector3)).z);
}
public static Vector3 GetGroundHeight(Vector3 vector3)
{
//IL_0000: Unknown result type (might be due to invalid IL or missing references)
//IL_000b: Unknown result type (might be due to invalid IL or missing references)
//IL_0011: Unknown result type (might be due to invalid IL or missing references)
//IL_0017: Unknown result type (might be due to invalid IL or missing references)
return new Vector3(vector3.x, ZoneSystem.instance.GetGroundHeight(vector3), vector3.z);
}
[UsedImplicitly]
public static GameObject GetItemPrefab(string itemName)
{
if (!IsObjectDBReady())
{
return null;
}
return GetObjectDB().GetItemPrefab(itemName);
}
[UsedImplicitly]
public static GameObject GetItemPrefab(int hash)
{
if (!IsObjectDBReady())
{
return null;
}
return GetObjectDB().GetItemPrefab(hash);
}
[UsedImplicitly]
public static Player GetLocalPlayer()
{
return Player.m_localPlayer;
}
[UsedImplicitly]
public static Vector3 GetLocalPlayersPosition()
{
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
return ((Component)Player.m_localPlayer).transform.position;
}
[UsedImplicitly]
public static ObjectDB GetObjectDB()
{
return ObjectDB.instance;
}
[UsedImplicitly]
public static string GetPluginPath(Type modPluginType)
{
return Path.GetDirectoryName(modPluginType.Assembly.Location);
}
[UsedImplicitly]
public static GameObject GetPrefab(string itemName)
{
if (!IsZNetSceneReady())
{
return null;
}
return ZNetScene.instance.GetPrefab(itemName);
}
[UsedImplicitly]
public static GameObject GetPrefab(int hash)
{
if (!IsZNetSceneReady())
{
return null;
}
return ZNetScene.instance.GetPrefab(hash);
}
[UsedImplicitly]
public static T GetPrivateField<T>(object instance, string name)
{
FieldInfo field = instance.GetType().GetField(name, BindingFlags.Instance | BindingFlags.NonPublic);
if (field != null)
{
return (T)field.GetValue(instance);
}
Log.Error(Logger, "Variable " + name + " does not exist on type: " + instance.GetType());
return default(T);
}
[UsedImplicitly]
public static object InvokePrivate(object instance, string name, object[] args = null)
{
MethodInfo method = instance.GetType().GetMethod(name, BindingFlags.Instance | BindingFlags.NonPublic);
if (method == null)
{
Type[] types = ((args == null) ? Type.EmptyTypes : args.Select((object arg) => arg.GetType()).ToArray());
method = instance.GetType().GetMethod(name, types);
}
if (method == null)
{
Log.Error(Logger, "Method " + name + " does not exist on type: " + instance.GetType());
return null;
}
return method.Invoke(instance, args);
}
[UsedImplicitly]
public static bool IsGameInMainScene()
{
return (Object)(object)ZNetScene.instance != (Object)null;
}
[UsedImplicitly]
public static bool IsObjectDBReady()
{
if (!((Object)(object)GetObjectDB() != (Object)null) || GetObjectDB().m_items.Count == 0 || !((Object)(object)GetItemPrefab("Amber") != (Object)null))
{
return IsRunningFromNUnit;
}
return true;
}
[UsedImplicitly]
public static bool IsPlayerReady()
{
return (Object)(object)GetLocalPlayer() != (Object)null;
}
[UsedImplicitly]
public static bool IsZNetSceneReady()
{
if ((Object)(object)ZNetScene.instance != (Object)null)
{
List<GameObject> list = ZNetScene.instance?.m_prefabs;
if (list != null)
{
return list.Count > 0;
}
return false;
}
return false;
}
[UsedImplicitly]
public static bool IsZNetReady()
{
return (Object)(object)ZNet.instance != (Object)null;
}
[UsedImplicitly]
public static string Localize(string value)
{
return Localization.instance.Localize(value);
}
[UsedImplicitly]
public static Vector3 GetStartTemplesPosition()
{
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
//IL_004d: Unknown result type (might be due to invalid IL or missing references)
//IL_0022: Unknown result type (might be due to invalid IL or missing references)
//IL_0023: Unknown result type (might be due to invalid IL or missing references)
//IL_0037: Unknown result type (might be due to invalid IL or missing references)
//IL_0038: Unknown result type (might be due to invalid IL or missing references)
LocationInstance val = default(LocationInstance);
if (ZoneSystem.instance.FindClosestLocation("StartTemple", Vector3.zero, ref val))
{
Log.Trace(Logger, $"[GetStartTemplesPosition] StartTemple at {val.m_position}");
return val.m_position;
}
Log.Error(Logger, "[GetStartTemplesPosition] Can't find StartTemple");
return Vector3.zero;
}
[UsedImplicitly]
public static void SetPrivateField(object instance, string name, object value)
{
FieldInfo field = instance.GetType().GetField(name, BindingFlags.Instance | BindingFlags.NonPublic);
if (field == null)
{
Log.Error(Logger, "Variable " + name + " does not exist on type: " + instance.GetType());
}
else
{
field.SetValue(instance, value);
}
}
[UsedImplicitly]
public static GameObject Spawn([NotNull] string prefabName, Vector3 location, [CanBeNull] Transform parent = null)
{
//IL_0044: Unknown result type (might be due to invalid IL or missing references)
//IL_007f: Unknown result type (might be due to invalid IL or missing references)
Log.Trace(Logger, $"{Namespace}.{MethodBase.GetCurrentMethod().DeclaringType?.Name}.{MethodBase.GetCurrentMethod().Name}({prefabName}, {location}, {((parent != null) ? ((Object)parent).name : null)})");
GameObject itemPrefab = ObjectDB.instance.GetItemPrefab(StringExtensionMethods.GetStableHashCode(prefabName));
if (!((Object)(object)itemPrefab == (Object)null))
{
return Spawn(itemPrefab, location, parent);
}
return null;
}
[UsedImplicitly]
public static GameObject Spawn([NotNull] GameObject prefab, Vector3 location, [CanBeNull] Transform parent = null)
{
//IL_0049: Unknown result type (might be due to invalid IL or missing references)
//IL_0080: Unknown result type (might be due to invalid IL or missing references)
//IL_0081: Unknown result type (might be due to invalid IL or missing references)
//IL_0073: Unknown result type (might be due to invalid IL or missing references)
//IL_0074: Unknown result type (might be due to invalid IL or missing references)
Log.Trace(Logger, $"{Namespace}.{MethodBase.GetCurrentMethod().DeclaringType?.Name}.{MethodBase.GetCurrentMethod().Name}({((Object)prefab).name}, {location}, {((parent != null) ? ((Object)parent).name : null)})");
if ((Object)(object)parent == (Object)null)
{
return Object.Instantiate<GameObject>(prefab, location, Quaternion.identity);
}
return Object.Instantiate<GameObject>(prefab, location, Quaternion.identity, parent);
}
public static AssetBundle LoadAssetBundleFromResources(string bundleName, Assembly resourceAssembly)
{
if (resourceAssembly == null)
{
throw new ArgumentNullException("resourceAssembly");
}
string text = null;
try
{
text = resourceAssembly.GetManifestResourceNames().Single((string str) => str.EndsWith(bundleName));
}
catch (Exception)
{
}
if (text == null)
{
Log.Error(Logger, "AssetBundle " + bundleName + " not found in assembly manifest");
return null;
}
using Stream stream = resourceAssembly.GetManifestResourceStream(text);
return AssetBundle.LoadFromStream(stream);
}
}
[DebuggerDisplay("Source = {Source}, EnableTrace = {EnableTrace}", Name = "{Source}")]
internal class StaticSourceLogger : ITraceableLogging
{
public static StaticSourceLogger PreMadeTraceableInstance = new StaticSourceLogger(enableTrace: true);
public static StaticSourceLogger PreMadeNonTraceableInstance = new StaticSourceLogger();
public string Source { get; }
public bool EnableTrace { get; }
public StaticSourceLogger(bool enableTrace = false)
: this("Digitalroot", enableTrace)
{
}
public StaticSourceLogger(string source, bool enableTrace = false)
{
Source = source;
EnableTrace = enableTrace;
}
}
}
namespace Digitalroot.Valheim.Common.Names.Vanilla
{
internal static class CraftingStationNames
{
public static readonly IEnumerable<string> AllNames = Utils.AllNames(typeof(CraftingStationNames));
public static readonly string ArtisanTable = "piece_artisanstation";
public static readonly string Blackforge = "blackforge";
public static readonly string Cauldron = "piece_cauldron";
public static readonly string Forge = "forge";
public static readonly string MeadCauldron = "piece_MeadCauldron";
public static readonly string MageTable = "piece_magetable";
public static readonly string Preptable = "piece_preptable";
public static readonly string Stonecutter = "piece_stonecutter";
public static readonly string Workbench = "piece_workbench";
public static string Ketill => MeadCauldron;
}
internal static class ItemDropNames
{
public static readonly IEnumerable<string> AllNames = Utils.AllNames(typeof(ItemDropNames));
public static string Acorn = "Acorn";
public static string Amber = "Amber";
public static string AmberPearl = "AmberPearl";
public static string AncientSkull = "ancient_skull";
public static string AncientSeed = "AncientSeed";
public static string ArmorCarapaceChest = "ArmorCarapaceChest";
public static string ArmorCarapaceLegs = "ArmorCarapaceLegs";
public static string ArmorDress1 = "ArmorDress1";
public static string ArmorDress2 = "ArmorDress2";
public static string ArmorDress3 = "ArmorDress3";
public static string ArmorDress4 = "ArmorDress4";
public static string ArmorDress5 = "ArmorDress5";
public static string ArmorDress6 = "ArmorDress6";
public static string ArmorDress7 = "ArmorDress7";
public static string ArmorDress8 = "ArmorDress8";
public static string ArmorDress9 = "ArmorDress9";
public static string ArmorDress10 = "ArmorDress10";
public static string ArmorFenringChest = "ArmorFenringChest";
public static string ArmorFenringLegs = "ArmorFenringLegs";
public static string ArmorFlametalChest = "ArmorFlametalChest";
public static string ArmorFlametalLegs = "ArmorFlametalLegs";
public static string ArmorHarvester1 = "ArmorHarvester1";
public static string ArmorHarvester2 = "ArmorHarvester2";
public static string ArmorAshlandsMediumChest = "ArmorAshlandsMediumChest";
public static string ArmorAshlandsMediumlegs = "ArmorAshlandsMediumlegs";
public static string ArmorBronzeChest = "ArmorBronzeChest";
public static string ArmorBronzeLegs = "ArmorBronzeLegs";
public static string ArmorIronChest = "ArmorIronChest";
public static string ArmorIronLegs = "ArmorIronLegs";
public static string ArmorMageChest = "ArmorMageChest";
public static string ArmorMageLegs = "ArmorMageLegs";
public static string ArmorMageLegsAshlands = "ArmorMageLegs_Ashlands";
public static string ArmorLeatherChest = "ArmorLeatherChest";
public static string ArmorLeatherLegs = "ArmorLeatherLegs";
public static string ArmorPaddedCuirass = "ArmorPaddedCuirass";
public static string ArmorPaddedGreaves = "ArmorPaddedGreaves";
public static string ArmorRagsChest = "ArmorRagsChest";
public static string ArmorRagsLegs = "ArmorRagsLegs";
public static string ArmorRootChest = "ArmorRootChest";
public static string ArmorRootLegs = "ArmorRootLegs";
public static string ArmorTrollLeatherChest = "ArmorTrollLeatherChest";
public static string ArmorTrollLeatherLegs = "ArmorTrollLeatherLegs";
public static string ArmorTunic1 = "ArmorTunic1";
public static string ArmorTunic2 = "ArmorTunic2";
public static string ArmorTunic3 = "ArmorTunic3";
public static string ArmorTunic4 = "ArmorTunic4";
public static string ArmorTunic5 = "ArmorTunic5";
public static string ArmorTunic6 = "ArmorTunic6";
public static string ArmorTunic7 = "ArmorTunic7";
public static string ArmorTunic8 = "ArmorTunic8";
public static string ArmorTunic9 = "ArmorTunic9";
public static string ArmorTunic10 = "ArmorTunic10";
public static string ArmorWolfChest = "ArmorWolfChest";
public static string ArmorWolfLegs = "ArmorWolfLegs";
public static string ArrowBronze = "ArrowBronze";
public static string ArrowCarapace = "ArrowCarapace";
public static string ArrowCharred = "ArrowCharred";
public static string ArrowFire = "ArrowFire";
public static string ArrowFlint = "ArrowFlint";
public static string ArrowFrost = "ArrowFrost";
public static string ArrowIron = "ArrowIron";
public static string ArrowNeedle = "ArrowNeedle";
public static string ArrowObsidian = "ArrowObsidian";
public static string ArrowPoison = "ArrowPoison";
public static string ArrowSilver = "ArrowSilver";
public static string ArrowWood = "ArrowWood";
public static string AtgeirBlackmetal = "AtgeirBlackmetal";
public static string AtgeirBronze = "AtgeirBronze";
public static string AtgeirHimminAfl = "AtgeirHimminAfl";
public static string AtgeirIron = "AtgeirIron";
public static string AxeBlackMetal = "AxeBlackMetal";
public static string AxeBronze = "AxeBronze";
public static string AxeFlint = "AxeFlint";
public static string AxeIron = "AxeIron";
public static string AxeJotunBane = "AxeJotunBane";
public static string AxeStone = "AxeStone";
public static string BarberKit = "BarberKit";
public static string Barley = "Barley";
public static string BarleyFlour = "BarleyFlour";
public static string BarleyWine = "BarleyWine";
public static string BarleyWineBase = "BarleyWineBase";
public static string BarrelRings = "BarrelRings";
public static string Battleaxe = "Battleaxe";
public static string BattleaxeCrystal = "BattleaxeCrystal";
public static string BeechSeeds = "BeechSeeds";
public static string Bell = "Bell";
public static string BeltStrength = "BeltStrength";
public static string Bilebag = "Bilebag";
public static string BirchSeeds = "BirchSeeds";
public static string BlackCore = "BlackCore";
public static string BlackMarble = "BlackMarble";
public static string BlackMetal = "BlackMetal";
public static string BlackMetalScrap = "BlackMetalScrap";
public static string BlackSoup = "BlackSoup";
public static string Blackwood = "Blackwood";
public static string Bloodbag = "Bloodbag";
public static string BloodPudding = "BloodPudding";
public static string Blueberries = "Blueberries";
public static string BoarJerky = "BoarJerky";
public static string BoltBlackmetal = "BoltBlackmetal";
public static string BoltBone = "BoltBone";
public static string BoltCarapace = "BoltCarapace";
public static string BoltCharred = "BoltCharred";
public static string BoltIron = "BoltIron";
public static string BombBile = "BombBile";
public static string BombLava = "BombLava";
public static string BombOoze = "BombOoze";
public static string BombSiege = "BombSiege";
public static string BombSmoke = "BombSmoke";
public static string BoneFragments = "BoneFragments";
public static string BoneMawSerpentMeat = "BoneMawSerpentMeat";
public static string BonemawSerpentScale = "BonemawSerpentScale";
public static string BonemawSerpentTooth = "BonemawSerpentTooth";
public static string Bow = "Bow";
public static string BowAshlands = "BowAshlands";
public static string BowAshlandsBlood = "BowAshlandsBlood";
public static string BowAshlandsRoot = "BowAshlandsRoot";
public static string BowAshlandsStorm = "BowAshlandsStorm";
public static string BowDraugrFang = "BowDraugrFang";
public static string BowFineWood = "BowFineWood";
public static string BowHuntsman = "BowHuntsman";
public static string BowSpineSnap = "BowSpineSnap";
public static string Bread = "Bread";
public static string BreadDough = "BreadDough";
public static string Bronze = "Bronze";
public static string BronzeNails = "BronzeNails";
public static string BronzeScrap = "BronzeScrap";
public static string BugMeat = "BugMeat";
public static string CandleWick = "CandleWick";
public static string CapeAsh = "CapeA