using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Configuration;
using HarmonyLib;
using Jotunn;
using Jotunn.Utils;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("Architecting")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Architecting")]
[assembly: AssemblyCopyright("Copyright © 2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")]
[assembly: AssemblyFileVersion("0.2.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.2.0.0")]
namespace Architecting;
[BepInPlugin("Jacobo.Architecting", "Architecting", "0.2.0")]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[NetworkCompatibility(/*Could not decode attribute arguments.*/)]
public class Architecting : BaseUnityPlugin
{
[HarmonyPatch(typeof(Piece), "SetCreator")]
public static class SetCreator_Patch
{
private static void Postfix(Piece __instance)
{
float skillFactor = ((Character)Player.m_localPlayer).GetSkillFactor((SkillType)107);
__instance.m_nview.GetZDO().Set("creator_skill", skillFactor);
}
}
[HarmonyPatch(typeof(WearNTear), "GetMaterialProperties")]
public static class GetMaterial_Patch
{
private static void Postfix(WearNTear __instance, ref float maxSupport, ref float horizontalLoss, ref float verticalLoss)
{
//IL_006c: Unknown result type (might be due to invalid IL or missing references)
//IL_0071: Unknown result type (might be due to invalid IL or missing references)
//IL_0072: 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)
//IL_0096: Expected I4, but got Unknown
ZDO zDO = __instance.m_nview.GetZDO();
if (zDO == null)
{
return;
}
zDO.GetLong(ZDOVars.s_creator, 0L);
if (1 == 0)
{
return;
}
ZDO zDO2 = __instance.m_nview.GetZDO();
if (zDO2 != null && zDO2.GetLong(ZDOVars.s_creator, 0L) == 0)
{
return;
}
float @float = __instance.m_nview.GetZDO().GetFloat("creator_skill", 0f);
MaterialType materialType = __instance.m_materialType;
MaterialType val = materialType;
switch ((int)val)
{
case 0:
maxSupport *= 1f + @float * (WoodMaxSupportMultiplier.Value - 1f);
horizontalLoss /= 1f + @float * (WoodHorLossMultiplier.Value - 1f);
verticalLoss /= 1f + @float * (WoodVerLossMultiplier.Value - 1f);
if (@float >= (float)WoodWaterImmune.Value * 0.01f)
{
__instance.m_noRoofWear = false;
}
if (@float >= (float)WoodLavaResist.Value * 0.01f)
{
__instance.m_ashDamageResist = true;
}
if (@float >= (float)WoodLavaImmune.Value * 0.01f)
{
__instance.m_ashDamageImmune = true;
}
break;
case 1:
maxSupport *= 1f + @float * (StoneMaxSupportMultiplier.Value - 1f);
horizontalLoss /= 1f + @float * (StoneHorLossMultiplier.Value - 1f);
verticalLoss /= 1f + @float * (StoneVerLossMultiplier.Value - 1f);
if (@float >= (float)StoneLavaResist.Value * 0.01f)
{
__instance.m_ashDamageResist = true;
}
if (@float >= (float)StoneLavaImmune.Value * 0.01f)
{
__instance.m_ashDamageImmune = true;
}
break;
case 2:
maxSupport *= 1f + @float * (IronMaxSupportMultiplier.Value - 1f);
horizontalLoss /= 1f + @float * (IronHorLossMultiplier.Value - 1f);
verticalLoss /= 1f + @float * (IronVerLossMultiplier.Value - 1f);
if (@float >= (float)IronWaterImmune.Value * 0.01f)
{
__instance.m_noRoofWear = false;
}
if (@float >= (float)IronLavaResist.Value * 0.01f)
{
__instance.m_ashDamageResist = true;
}
if (@float >= (float)IronLavaImmune.Value * 0.01f)
{
__instance.m_ashDamageImmune = true;
}
break;
case 3:
maxSupport *= 1f + @float * (HardWoodMaxSupportMultiplier.Value - 1f);
horizontalLoss /= 1f + @float * (HardWoodHorLossMultiplier.Value - 1f);
verticalLoss /= 1f + @float * (HardWoodVerLossMultiplier.Value - 1f);
if (@float >= (float)HardWoodWaterImmune.Value * 0.01f)
{
__instance.m_noRoofWear = false;
}
if (@float >= (float)HardWoodLavaResist.Value * 0.01f)
{
__instance.m_ashDamageResist = true;
}
if (@float >= (float)HardWoodLavaImmune.Value * 0.01f)
{
__instance.m_ashDamageImmune = true;
}
break;
case 4:
maxSupport *= 1f + @float * (MarbleMaxSupportMultiplier.Value - 1f);
horizontalLoss /= 1f + @float * (MarbleHorLossMultiplier.Value - 1f);
verticalLoss /= 1f + @float * (MarbleVerLossMultiplier.Value - 1f);
if (@float >= (float)MarbleLavaResist.Value * 0.01f)
{
__instance.m_ashDamageResist = true;
}
if (@float >= (float)MarbleLavaImmune.Value * 0.01f)
{
__instance.m_ashDamageImmune = true;
}
break;
case 5:
maxSupport *= 1f + @float * (AshstoneMaxSupportMultiplier.Value - 1f);
horizontalLoss /= 1f + @float * (AshstoneHorLossMultiplier.Value - 1f);
verticalLoss /= 1f + @float * (AshstoneVerLossMultiplier.Value - 1f);
if (@float >= (float)AshstoneLavaResist.Value * 0.01f)
{
__instance.m_ashDamageResist = true;
}
if (@float >= (float)AshstoneLavaImmune.Value * 0.01f)
{
__instance.m_ashDamageImmune = true;
}
break;
case 6:
maxSupport *= 1f + @float * (AncientMaxSupportMultiplier.Value - 1f);
horizontalLoss /= 1f + @float * (AncientHorLossMultiplier.Value - 1f);
verticalLoss /= 1f + @float * (AncientVerLossMultiplier.Value - 1f);
if (@float >= (float)AncientLavaResist.Value * 0.01f)
{
__instance.m_ashDamageResist = true;
}
if (@float >= (float)AncientLavaImmune.Value * 0.01f)
{
__instance.m_ashDamageImmune = true;
}
break;
default:
maxSupport *= 1f + @float * 5f;
horizontalLoss *= 1f - @float * 5f;
verticalLoss *= 1f - @float * 5f;
if (@float >= 0.5f)
{
__instance.m_noRoofWear = false;
}
if (@float >= 0.5f)
{
__instance.m_ashDamageResist = true;
}
if (@float >= 0.5f)
{
__instance.m_ashDamageImmune = true;
}
break;
}
}
}
[HarmonyPatch(typeof(WearNTear), "Damage")]
public static class ReduceDamage_Patch
{
private static void Prefix(WearNTear __instance, ref HitData hit)
{
//IL_006c: Unknown result type (might be due to invalid IL or missing references)
//IL_0071: Unknown result type (might be due to invalid IL or missing references)
//IL_0072: 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)
//IL_0096: Expected I4, but got Unknown
ZDO zDO = __instance.m_nview.GetZDO();
if (zDO == null)
{
return;
}
zDO.GetLong(ZDOVars.s_creator, 0L);
if (1 == 0)
{
return;
}
ZDO zDO2 = __instance.m_nview.GetZDO();
if (zDO2 == null || zDO2.GetLong(ZDOVars.s_creator, 0L) != 0)
{
float @float = __instance.m_nview.GetZDO().GetFloat("creator_skill", 0f);
MaterialType materialType = __instance.m_materialType;
MaterialType val = materialType;
switch ((int)val)
{
case 0:
hit.m_damage.m_damage *= 1f - @float * WoodDamageResistMultiplier.Value;
hit.m_damage.m_blunt *= 1f - @float * WoodDamageResistMultiplier.Value;
hit.m_damage.m_pierce *= 1f - @float * WoodDamageResistMultiplier.Value;
hit.m_damage.m_slash *= 1f - @float * WoodDamageResistMultiplier.Value;
hit.m_damage.m_chop *= 1f - @float * WoodDamageResistMultiplier.Value;
hit.m_damage.m_pickaxe *= 1f - @float * WoodDamageResistMultiplier.Value;
hit.m_damage.m_fire *= 1f - @float * WoodDamageResistMultiplier.Value;
hit.m_damage.m_frost *= 1f - @float * WoodDamageResistMultiplier.Value;
hit.m_damage.m_lightning *= 1f - @float * WoodDamageResistMultiplier.Value;
break;
case 1:
hit.m_damage.m_damage *= 1f - @float * StoneDamageResistMultiplier.Value;
hit.m_damage.m_blunt *= 1f - @float * StoneDamageResistMultiplier.Value;
hit.m_damage.m_pierce *= 1f - @float * StoneDamageResistMultiplier.Value;
hit.m_damage.m_slash *= 1f - @float * StoneDamageResistMultiplier.Value;
hit.m_damage.m_chop *= 1f - @float * StoneDamageResistMultiplier.Value;
hit.m_damage.m_pickaxe *= 1f - @float * StoneDamageResistMultiplier.Value;
hit.m_damage.m_fire *= 1f - @float * StoneDamageResistMultiplier.Value;
hit.m_damage.m_frost *= 1f - @float * StoneDamageResistMultiplier.Value;
hit.m_damage.m_lightning *= 1f - @float * StoneDamageResistMultiplier.Value;
break;
case 2:
hit.m_damage.m_damage *= 1f - @float * IronDamageResistMultiplier.Value;
hit.m_damage.m_blunt *= 1f - @float * IronDamageResistMultiplier.Value;
hit.m_damage.m_pierce *= 1f - @float * IronDamageResistMultiplier.Value;
hit.m_damage.m_slash *= 1f - @float * IronDamageResistMultiplier.Value;
hit.m_damage.m_chop *= 1f - @float * IronDamageResistMultiplier.Value;
hit.m_damage.m_pickaxe *= 1f - @float * IronDamageResistMultiplier.Value;
hit.m_damage.m_fire *= 1f - @float * IronDamageResistMultiplier.Value;
hit.m_damage.m_frost *= 1f - @float * IronDamageResistMultiplier.Value;
hit.m_damage.m_lightning *= 1f - @float * IronDamageResistMultiplier.Value;
break;
case 3:
hit.m_damage.m_damage *= 1f - @float * HardWoodDamageResistMultiplier.Value;
hit.m_damage.m_blunt *= 1f - @float * HardWoodDamageResistMultiplier.Value;
hit.m_damage.m_pierce *= 1f - @float * HardWoodDamageResistMultiplier.Value;
hit.m_damage.m_slash *= 1f - @float * HardWoodDamageResistMultiplier.Value;
hit.m_damage.m_chop *= 1f - @float * HardWoodDamageResistMultiplier.Value;
hit.m_damage.m_pickaxe *= 1f - @float * HardWoodDamageResistMultiplier.Value;
hit.m_damage.m_fire *= 1f - @float * HardWoodDamageResistMultiplier.Value;
hit.m_damage.m_frost *= 1f - @float * HardWoodDamageResistMultiplier.Value;
hit.m_damage.m_lightning *= 1f - @float * HardWoodDamageResistMultiplier.Value;
break;
case 4:
hit.m_damage.m_damage *= 1f - @float * MarbleDamageResistMultiplier.Value;
hit.m_damage.m_blunt *= 1f - @float * MarbleDamageResistMultiplier.Value;
hit.m_damage.m_pierce *= 1f - @float * MarbleDamageResistMultiplier.Value;
hit.m_damage.m_slash *= 1f - @float * MarbleDamageResistMultiplier.Value;
hit.m_damage.m_chop *= 1f - @float * MarbleDamageResistMultiplier.Value;
hit.m_damage.m_pickaxe *= 1f - @float * MarbleDamageResistMultiplier.Value;
hit.m_damage.m_fire *= 1f - @float * MarbleDamageResistMultiplier.Value;
hit.m_damage.m_frost *= 1f - @float * MarbleDamageResistMultiplier.Value;
hit.m_damage.m_lightning *= 1f - @float * MarbleDamageResistMultiplier.Value;
break;
case 5:
hit.m_damage.m_damage *= 1f - @float * AshstoneDamageResistMultiplier.Value;
hit.m_damage.m_blunt *= 1f - @float * AshstoneDamageResistMultiplier.Value;
hit.m_damage.m_pierce *= 1f - @float * AshstoneDamageResistMultiplier.Value;
hit.m_damage.m_slash *= 1f - @float * AshstoneDamageResistMultiplier.Value;
hit.m_damage.m_chop *= 1f - @float * AshstoneDamageResistMultiplier.Value;
hit.m_damage.m_pickaxe *= 1f - @float * AshstoneDamageResistMultiplier.Value;
hit.m_damage.m_fire *= 1f - @float * AshstoneDamageResistMultiplier.Value;
hit.m_damage.m_frost *= 1f - @float * AshstoneDamageResistMultiplier.Value;
hit.m_damage.m_lightning *= 1f - @float * AshstoneDamageResistMultiplier.Value;
break;
case 6:
hit.m_damage.m_damage *= 1f - @float * AncientDamageResistMultiplier.Value;
hit.m_damage.m_blunt *= 1f - @float * AncientDamageResistMultiplier.Value;
hit.m_damage.m_pierce *= 1f - @float * AncientDamageResistMultiplier.Value;
hit.m_damage.m_slash *= 1f - @float * AncientDamageResistMultiplier.Value;
hit.m_damage.m_chop *= 1f - @float * AncientDamageResistMultiplier.Value;
hit.m_damage.m_pickaxe *= 1f - @float * AncientDamageResistMultiplier.Value;
hit.m_damage.m_fire *= 1f - @float * AncientDamageResistMultiplier.Value;
hit.m_damage.m_frost *= 1f - @float * AncientDamageResistMultiplier.Value;
hit.m_damage.m_lightning *= 1f - @float * AncientDamageResistMultiplier.Value;
break;
default:
hit.m_damage.m_damage *= 1f - @float * 0.5f;
hit.m_damage.m_blunt *= 1f - @float * 0.5f;
hit.m_damage.m_pierce *= 1f - @float * 0.5f;
hit.m_damage.m_slash *= 1f - @float * 0.5f;
hit.m_damage.m_chop *= 1f - @float * 0.5f;
hit.m_damage.m_pickaxe *= 1f - @float * 0.5f;
hit.m_damage.m_fire *= 1f - @float * 0.5f;
hit.m_damage.m_frost *= 1f - @float * 0.5f;
hit.m_damage.m_lightning *= 1f - @float * 0.5f;
break;
}
}
}
}
[HarmonyPatch(typeof(WearNTear), "Start")]
public static class MaxHealth_Patch
{
private static void Prefix(WearNTear __instance)
{
//IL_0048: 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_004e: Unknown result type (might be due to invalid IL or missing references)
//IL_004f: 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_0072: Expected I4, but got Unknown
ZNetView nview = __instance.m_nview;
float? obj;
if (nview == null)
{
obj = null;
}
else
{
ZDO zDO = nview.GetZDO();
obj = ((zDO != null) ? new float?(zDO.GetFloat("creator_skill", 0f)) : null);
}
float? num = obj;
float valueOrDefault = num.GetValueOrDefault();
MaterialType materialType = __instance.m_materialType;
MaterialType val = materialType;
switch ((int)val)
{
case 0:
__instance.m_health *= 1f + valueOrDefault * (WoodHealthMultiplier.Value - 1f);
break;
case 1:
__instance.m_health *= 1f + valueOrDefault * (StoneHealthMultiplier.Value - 1f);
break;
case 2:
__instance.m_health *= 1f + valueOrDefault * (IronHealthMultiplier.Value - 1f);
break;
case 3:
__instance.m_health *= 1f + valueOrDefault * (HardWoodHealthMultiplier.Value - 1f);
break;
case 4:
__instance.m_health *= 1f + valueOrDefault * (MarbleHealthMultiplier.Value - 1f);
break;
case 5:
__instance.m_health *= 1f + valueOrDefault * (AshstoneHealthMultiplier.Value - 1f);
break;
case 6:
__instance.m_health *= 1f + valueOrDefault * (AncientHealthMultiplier.Value - 1f);
break;
default:
__instance.m_health *= 1f + valueOrDefault * 5f;
break;
}
}
}
private const string PluginName = "Architecting";
public const string PluginVersion = "0.2.0";
private const string PluginGUID = "Jacobo.Architecting";
internal const string cMaxSupport = "Maximum Stability Multiplier";
internal const string cHorRange = "Horizontal Range Multiplier";
internal const string cVerRange = "Vertical Range Multiplier";
internal const string cMaxHealth = "Health Multiplier";
internal const string cWaterImmune = "Skill Level required to unlock water immunity";
internal const string cLavaResist = "Skill Level required to unlock lava and cinder resistance";
internal const string cLavaImmune = "Skill Level required to unlock lava and cinder immunity";
internal const string cDamageResist = "Damage Resistance Multiplier";
internal const string cWood = "Wood";
private static ConfigEntry<float> WoodHealthMultiplier;
private static ConfigEntry<float> WoodMaxSupportMultiplier;
private static ConfigEntry<float> WoodHorLossMultiplier;
private static ConfigEntry<float> WoodVerLossMultiplier;
private static ConfigEntry<int> WoodWaterImmune;
private static ConfigEntry<int> WoodLavaResist;
private static ConfigEntry<int> WoodLavaImmune;
private static ConfigEntry<float> WoodDamageResistMultiplier;
internal const string cStone = "Stone";
private static ConfigEntry<float> StoneHealthMultiplier;
private static ConfigEntry<float> StoneMaxSupportMultiplier;
private static ConfigEntry<float> StoneHorLossMultiplier;
private static ConfigEntry<float> StoneVerLossMultiplier;
private static ConfigEntry<int> StoneLavaResist;
private static ConfigEntry<int> StoneLavaImmune;
private static ConfigEntry<float> StoneDamageResistMultiplier;
internal const string cIron = "Metal";
private static ConfigEntry<float> IronHealthMultiplier;
private static ConfigEntry<float> IronMaxSupportMultiplier;
private static ConfigEntry<float> IronHorLossMultiplier;
private static ConfigEntry<float> IronVerLossMultiplier;
private static ConfigEntry<int> IronWaterImmune;
private static ConfigEntry<int> IronLavaResist;
private static ConfigEntry<int> IronLavaImmune;
private static ConfigEntry<float> IronDamageResistMultiplier;
internal const string cHardWood = "Hardwood/Dvergr Wood";
private static ConfigEntry<float> HardWoodHealthMultiplier;
private static ConfigEntry<float> HardWoodMaxSupportMultiplier;
private static ConfigEntry<float> HardWoodHorLossMultiplier;
private static ConfigEntry<float> HardWoodVerLossMultiplier;
private static ConfigEntry<int> HardWoodWaterImmune;
private static ConfigEntry<int> HardWoodLavaResist;
private static ConfigEntry<int> HardWoodLavaImmune;
private static ConfigEntry<float> HardWoodDamageResistMultiplier;
internal const string cMarble = "Marble";
private static ConfigEntry<float> MarbleHealthMultiplier;
private static ConfigEntry<float> MarbleMaxSupportMultiplier;
private static ConfigEntry<float> MarbleHorLossMultiplier;
private static ConfigEntry<float> MarbleVerLossMultiplier;
private static ConfigEntry<int> MarbleLavaResist;
private static ConfigEntry<int> MarbleLavaImmune;
private static ConfigEntry<float> MarbleDamageResistMultiplier;
internal const string cAshstone = "Grausten";
private static ConfigEntry<float> AshstoneHealthMultiplier;
private static ConfigEntry<float> AshstoneMaxSupportMultiplier;
private static ConfigEntry<float> AshstoneHorLossMultiplier;
private static ConfigEntry<float> AshstoneVerLossMultiplier;
private static ConfigEntry<int> AshstoneLavaResist;
private static ConfigEntry<int> AshstoneLavaImmune;
private static ConfigEntry<float> AshstoneDamageResistMultiplier;
internal const string cAncient = "Ancient - Unused unless modded";
private static ConfigEntry<float> AncientHealthMultiplier;
private static ConfigEntry<float> AncientMaxSupportMultiplier;
private static ConfigEntry<float> AncientHorLossMultiplier;
private static ConfigEntry<float> AncientVerLossMultiplier;
private static ConfigEntry<int> AncientLavaResist;
private static ConfigEntry<int> AncientLavaImmune;
private static ConfigEntry<float> AncientDamageResistMultiplier;
public void Awake()
{
//IL_001f: Unknown result type (might be due to invalid IL or missing references)
//IL_0025: Expected O, but got Unknown
CreateConfig();
((BaseUnityPlugin)this).Config.Save();
Assembly executingAssembly = Assembly.GetExecutingAssembly();
Harmony val = new Harmony("Jacobo.Architecting");
val.PatchAll(executingAssembly);
Logger.LogInfo((object)"Architecting config and patches ready");
}
public void CreateConfig()
{
//IL_0001: Unknown result type (might be due to invalid IL or missing references)
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_000f: Expected O, but got Unknown
//IL_0042: Unknown result type (might be due to invalid IL or missing references)
//IL_004c: Expected O, but got Unknown
//IL_0084: Unknown result type (might be due to invalid IL or missing references)
//IL_008e: Expected O, but got Unknown
//IL_00c6: Unknown result type (might be due to invalid IL or missing references)
//IL_00d0: Expected O, but got Unknown
//IL_0108: Unknown result type (might be due to invalid IL or missing references)
//IL_0112: Expected O, but got Unknown
//IL_0140: Unknown result type (might be due to invalid IL or missing references)
//IL_014a: Expected O, but got Unknown
//IL_0178: Unknown result type (might be due to invalid IL or missing references)
//IL_0182: Expected O, but got Unknown
//IL_01b0: Unknown result type (might be due to invalid IL or missing references)
//IL_01ba: Expected O, but got Unknown
//IL_01f2: Unknown result type (might be due to invalid IL or missing references)
//IL_01fc: Expected O, but got Unknown
//IL_0234: Unknown result type (might be due to invalid IL or missing references)
//IL_023e: Expected O, but got Unknown
//IL_0276: Unknown result type (might be due to invalid IL or missing references)
//IL_0280: Expected O, but got Unknown
//IL_02b8: Unknown result type (might be due to invalid IL or missing references)
//IL_02c2: Expected O, but got Unknown
//IL_02fa: Unknown result type (might be due to invalid IL or missing references)
//IL_0304: Expected O, but got Unknown
//IL_0332: Unknown result type (might be due to invalid IL or missing references)
//IL_033c: Expected O, but got Unknown
//IL_036a: Unknown result type (might be due to invalid IL or missing references)
//IL_0374: Expected O, but got Unknown
//IL_03ac: Unknown result type (might be due to invalid IL or missing references)
//IL_03b6: Expected O, but got Unknown
//IL_03ee: Unknown result type (might be due to invalid IL or missing references)
//IL_03f8: Expected O, but got Unknown
//IL_0430: Unknown result type (might be due to invalid IL or missing references)
//IL_043a: Expected O, but got Unknown
//IL_0472: Unknown result type (might be due to invalid IL or missing references)
//IL_047c: Expected O, but got Unknown
//IL_04b4: Unknown result type (might be due to invalid IL or missing references)
//IL_04be: Expected O, but got Unknown
//IL_04ec: Unknown result type (might be due to invalid IL or missing references)
//IL_04f6: Expected O, but got Unknown
//IL_0524: Unknown result type (might be due to invalid IL or missing references)
//IL_052e: Expected O, but got Unknown
//IL_055c: Unknown result type (might be due to invalid IL or missing references)
//IL_0566: Expected O, but got Unknown
//IL_059e: Unknown result type (might be due to invalid IL or missing references)
//IL_05a8: Expected O, but got Unknown
//IL_05e0: Unknown result type (might be due to invalid IL or missing references)
//IL_05ea: Expected O, but got Unknown
//IL_0622: Unknown result type (might be due to invalid IL or missing references)
//IL_062c: Expected O, but got Unknown
//IL_0664: Unknown result type (might be due to invalid IL or missing references)
//IL_066e: Expected O, but got Unknown
//IL_06a6: Unknown result type (might be due to invalid IL or missing references)
//IL_06b0: Expected O, but got Unknown
//IL_06de: Unknown result type (might be due to invalid IL or missing references)
//IL_06e8: Expected O, but got Unknown
//IL_0716: Unknown result type (might be due to invalid IL or missing references)
//IL_0720: Expected O, but got Unknown
//IL_074e: Unknown result type (might be due to invalid IL or missing references)
//IL_0758: Expected O, but got Unknown
//IL_0790: Unknown result type (might be due to invalid IL or missing references)
//IL_079a: Expected O, but got Unknown
//IL_07d2: Unknown result type (might be due to invalid IL or missing references)
//IL_07dc: Expected O, but got Unknown
//IL_0814: Unknown result type (might be due to invalid IL or missing references)
//IL_081e: Expected O, but got Unknown
//IL_0856: Unknown result type (might be due to invalid IL or missing references)
//IL_0860: Expected O, but got Unknown
//IL_0898: Unknown result type (might be due to invalid IL or missing references)
//IL_08a2: Expected O, but got Unknown
//IL_08d0: Unknown result type (might be due to invalid IL or missing references)
//IL_08da: Expected O, but got Unknown
//IL_0908: Unknown result type (might be due to invalid IL or missing references)
//IL_0912: Expected O, but got Unknown
//IL_094a: Unknown result type (might be due to invalid IL or missing references)
//IL_0954: Expected O, but got Unknown
//IL_098c: Unknown result type (might be due to invalid IL or missing references)
//IL_0996: Expected O, but got Unknown
//IL_09ce: Unknown result type (might be due to invalid IL or missing references)
//IL_09d8: Expected O, but got Unknown
//IL_0a10: Unknown result type (might be due to invalid IL or missing references)
//IL_0a1a: Expected O, but got Unknown
//IL_0a52: Unknown result type (might be due to invalid IL or missing references)
//IL_0a5c: Expected O, but got Unknown
//IL_0a8a: Unknown result type (might be due to invalid IL or missing references)
//IL_0a94: Expected O, but got Unknown
//IL_0ac2: Unknown result type (might be due to invalid IL or missing references)
//IL_0acc: Expected O, but got Unknown
//IL_0b04: Unknown result type (might be due to invalid IL or missing references)
//IL_0b0e: Expected O, but got Unknown
//IL_0b46: Unknown result type (might be due to invalid IL or missing references)
//IL_0b50: Expected O, but got Unknown
//IL_0b88: Unknown result type (might be due to invalid IL or missing references)
//IL_0b92: Expected O, but got Unknown
//IL_0bca: Unknown result type (might be due to invalid IL or missing references)
//IL_0bd4: Expected O, but got Unknown
//IL_0c0c: Unknown result type (might be due to invalid IL or missing references)
//IL_0c16: Expected O, but got Unknown
//IL_0c44: Unknown result type (might be due to invalid IL or missing references)
//IL_0c4e: Expected O, but got Unknown
//IL_0c7c: Unknown result type (might be due to invalid IL or missing references)
//IL_0c86: Expected O, but got Unknown
//IL_0cbe: Unknown result type (might be due to invalid IL or missing references)
//IL_0cc8: Expected O, but got Unknown
ConfigurationManagerAttributes val = new ConfigurationManagerAttributes
{
IsAdminOnly = true
};
WoodHealthMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Wood", "Health Multiplier", 5f, new ConfigDescription("How many times placed wood pieces' maximum health will be multiplied at level 100. Vanilla is 1.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), new object[1] { val }));
WoodMaxSupportMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Wood", "Maximum Stability Multiplier", 3f, new ConfigDescription("How many times placed wood pieces' maximum stability will be multiplied at level 100. Vanilla is 1.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), new object[1] { val }));
WoodHorLossMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Wood", "Horizontal Range Multiplier", 3f, new ConfigDescription("How many times the capacity to place subsequent wood pieces horizontally will be multiplied at level 100. Vanilla is 1, which amounts to about 10 metres.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), new object[1] { val }));
WoodVerLossMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Wood", "Vertical Range Multiplier", 3f, new ConfigDescription("How many times the capacity to place subsequent wood pieces vertically will be multiplied at level 100. Vanilla is 1, which amounts to about 14 metres.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), new object[1] { val }));
WoodWaterImmune = ((BaseUnityPlugin)this).Config.Bind<int>("Wood", "Skill Level required to unlock water immunity", 20, new ConfigDescription("The skill level at which placed wood pieces will become immune to water damage.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 100), new object[1] { val }));
WoodLavaResist = ((BaseUnityPlugin)this).Config.Bind<int>("Wood", "Skill Level required to unlock lava and cinder resistance", 50, new ConfigDescription("The skill level at which placed wood pieces will become resistant to lava and cinder damage.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 100), new object[1] { val }));
WoodLavaImmune = ((BaseUnityPlugin)this).Config.Bind<int>("Wood", "Skill Level required to unlock lava and cinder immunity", 70, new ConfigDescription("The skill level at which placed wood pieces will become immune to lava and cinder damage.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 100), new object[1] { val }));
WoodDamageResistMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Wood", "Damage Resistance Multiplier", 0.33f, new ConfigDescription("The factor by which damage to wood pieces will be reduced at level 100. The default is 0.33, this is 1/3 less damage at level 100.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 0.9f), new object[1] { val }));
StoneHealthMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Stone", "Health Multiplier", 5f, new ConfigDescription("How many times placed wood pieces' maximum health will be multiplied at level 100. Vanilla is 1.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), new object[1] { val }));
StoneMaxSupportMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Stone", "Maximum Stability Multiplier", 2f, new ConfigDescription("How many times placed stone pieces' maximum stability will be multiplied at level 100. Vanilla is 1.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), new object[1] { val }));
StoneHorLossMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Stone", "Horizontal Range Multiplier", 3f, new ConfigDescription("How many times the capacity to place subsequent stone pieces horizontally will be multiplied at level 100. Vanilla is 1, which amounts to about 1 metre.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), new object[1] { val }));
StoneVerLossMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Stone", "Vertical Range Multiplier", 4f, new ConfigDescription("How many times the capacity to place subsequent stone pieces vertically will be multiplied at level 100. Vanilla is 1, which amounts to about 14 metres.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), new object[1] { val }));
StoneLavaResist = ((BaseUnityPlugin)this).Config.Bind<int>("Stone", "Skill Level required to unlock lava and cinder resistance", 40, new ConfigDescription("The skill level at which placed stone pieces will become resistant to lava and cinder damage.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 100), new object[1] { val }));
StoneLavaImmune = ((BaseUnityPlugin)this).Config.Bind<int>("Stone", "Skill Level required to unlock lava and cinder immunity", 60, new ConfigDescription("The skill level at which placed stone pieces will become immune to lava and cinder damage.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 100), new object[1] { val }));
StoneDamageResistMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Wood", "Damage Resistance Multiplier", 0.5f, new ConfigDescription("The factor by which damage to wood pieces will be reduced at level 100. The default is 0.5, this is 1/2 less damage at level 100.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 0.9f), new object[1] { val }));
IronHealthMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Metal", "Health Multiplier", 5f, new ConfigDescription("How many times placed metal pieces' maximum health will be multiplied at level 100. Vanilla is 1.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), new object[1] { val }));
IronMaxSupportMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Metal", "Maximum Stability Multiplier", 2f, new ConfigDescription("How many times placed metal pieces' maximum stability will be multiplied at level 100. Vanilla is 1.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), new object[1] { val }));
IronHorLossMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Metal", "Horizontal Range Multiplier", 2f, new ConfigDescription("How many times the capacity to place subsequent metal pieces horizontally will be multiplied at level 100. Vanilla is 1, which amounts to about 48 metres.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), new object[1] { val }));
IronVerLossMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Metal", "Vertical Range Multiplier", 2f, new ConfigDescription("How many times the capacity to place subsequent metal pieces vertically will be multiplied at level 100. Vanilla is 1, which amounts to about 48 metres.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), new object[1] { val }));
IronWaterImmune = ((BaseUnityPlugin)this).Config.Bind<int>("Metal", "Skill Level required to unlock water immunity", 20, new ConfigDescription("The skill level at which placed metal pieces will become immune to water damage.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 100), new object[1] { val }));
IronLavaResist = ((BaseUnityPlugin)this).Config.Bind<int>("Metal", "Skill Level required to unlock lava and cinder resistance", 40, new ConfigDescription("The skill level at which placed metal pieces will become resistant to lava and cinder damage.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 100), new object[1] { val }));
IronLavaImmune = ((BaseUnityPlugin)this).Config.Bind<int>("Metal", "Skill Level required to unlock lava and cinder immunity", 60, new ConfigDescription("The skill level at which placed metal pieces will become immune to lava and cinder damage.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 100), new object[1] { val }));
IronDamageResistMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Metal", "Damage Resistance Multiplier", 0.5f, new ConfigDescription("The factor by which damage to metal pieces will be reduced at level 100. The default is 0.5, this is 1/2 less damage at level 100.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 0.9f), new object[1] { val }));
HardWoodHealthMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Hardwood/Dvergr Wood", "Health Multiplier", 5f, new ConfigDescription("How many times placed hardwood/dvergr wood pieces' maximum health will be multiplied at level 100. Vanilla is 1.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), new object[1] { val }));
HardWoodMaxSupportMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Hardwood/Dvergr Wood", "Maximum Stability Multiplier", 3f, new ConfigDescription("How many times placed hardwood/dvergr wood pieces' maximum stability will be multiplied at level 100. Vanilla is 1.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), new object[1] { val }));
HardWoodHorLossMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Hardwood/Dvergr Wood", "Horizontal Range Multiplier", 3f, new ConfigDescription("How many times the capacity to place subsequent hardwood/dvergr wood pieces horizontally will be multiplied by at level 100. Vanilla is 1, which amounts to about 10 metres.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), new object[1] { val }));
HardWoodVerLossMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Hardwood/Dvergr Wood", "Vertical Range Multiplier", 3f, new ConfigDescription("How many times the capacity to place subsequent hardwood/dvergr wood pieces vertically will be multiplied by at level 100. Vanilla is 1, which amounts to about 14 metres.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), new object[1] { val }));
HardWoodWaterImmune = ((BaseUnityPlugin)this).Config.Bind<int>("Hardwood/Dvergr Wood", "Skill Level required to unlock water immunity", 20, new ConfigDescription("The skill level at which placed hardwood/dvergr wood pieces will become immune to water damage.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 100), new object[1] { val }));
HardWoodLavaResist = ((BaseUnityPlugin)this).Config.Bind<int>("Hardwood/Dvergr Wood", "Skill Level required to unlock lava and cinder resistance", 50, new ConfigDescription("The skill level at which placed hardwood/dvergr wood pieces will become resistant to lava and cinder damage.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 100), new object[1] { val }));
HardWoodLavaImmune = ((BaseUnityPlugin)this).Config.Bind<int>("Hardwood/Dvergr Wood", "Skill Level required to unlock lava and cinder immunity", 70, new ConfigDescription("The skill level at which placed hardwood/dvergr wood pieces will become immune to lava and cinder damage.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 100), new object[1] { val }));
HardWoodDamageResistMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Hardwood/Dvergr Wood", "Damage Resistance Multiplier", 0.33f, new ConfigDescription("The factor by which damage to hardwood/dvergr wood pieces will be reduced at level 100. The default is 0.33, this is 1/3 less damage at level 100.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 0.9f), new object[1] { val }));
MarbleHealthMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Marble", "Health Multiplier", 5f, new ConfigDescription("How many times placed marble pieces' maximum health will be multiplied at level 100. Vanilla is 1.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), new object[1] { val }));
MarbleMaxSupportMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Marble", "Maximum Stability Multiplier", 2f, new ConfigDescription("How many times placed marble pieces' maximum stability will be multiplied at level 100. Vanilla is 1.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), new object[1] { val }));
MarbleHorLossMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Marble", "Horizontal Range Multiplier", 3f, new ConfigDescription("How many times the capacity to place subsequent marble pieces horizontally will be multiplied at level 100. Vanilla is 1, which amounts to about 4 metres.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), new object[1] { val }));
MarbleVerLossMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Marble", "Vertical Range Multiplier", 4f, new ConfigDescription("How many times the capacity to place subsequent marble pieces vertically will be multiplied at level 100. Vanilla is 1, which amounts to about 18 metres.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), new object[1] { val }));
MarbleLavaResist = ((BaseUnityPlugin)this).Config.Bind<int>("Marble", "Skill Level required to unlock lava and cinder resistance", 30, new ConfigDescription("The skill level at which placed marble pieces will become resistant to lava and cinder damage.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 100), new object[1] { val }));
MarbleLavaImmune = ((BaseUnityPlugin)this).Config.Bind<int>("Marble", "Skill Level required to unlock lava and cinder immunity", 50, new ConfigDescription("The skill level at which placed marble pieces will become immune to lava and cinder damage.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 100), new object[1] { val }));
MarbleDamageResistMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Marble", "Damage Resistance Multiplier", 0.66f, new ConfigDescription("The factor by which damage to marble pieces will be reduced at level 100. The default is 0.66, this is 2/3 less damage at level 100.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 0.9f), new object[1] { val }));
AshstoneHealthMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Grausten", "Health Multiplier", 5f, new ConfigDescription("How many times placed grausten pieces' maximum health will be multiplied at level 100. Vanilla is 1.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), new object[1] { val }));
AshstoneMaxSupportMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Grausten", "Maximum Stability Multiplier", 2f, new ConfigDescription("How many times placed grausten pieces' maximum stability will be multiplied at level 100. Vanilla is 1.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), new object[1] { val }));
AshstoneHorLossMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Grausten", "Horizontal Range Multiplier", 2f, new ConfigDescription("How many times the capacity to place subsequent grausten pieces horizontally will be multiplied at level 100. Vanilla is 1, which amounts to about 6 metres.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), new object[1] { val }));
AshstoneVerLossMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Grausten", "Vertical Range Multiplier", 3f, new ConfigDescription("How many times the capacity to place subsequent grausten pieces vertically will be multiplied at level 100. Vanilla is 1, which amounts to about 24 metres.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), new object[1] { val }));
AshstoneLavaResist = ((BaseUnityPlugin)this).Config.Bind<int>("Grausten", "Skill Level required to unlock lava and cinder resistance", 20, new ConfigDescription("The skill level at which placed grausten pieces will become resistant to lava and cinder damage.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 100), new object[1] { val }));
AshstoneLavaImmune = ((BaseUnityPlugin)this).Config.Bind<int>("Grausten", "Skill Level required to unlock lava and cinder immunity", 30, new ConfigDescription("The skill level at which placed grausten pieces will become immune to lava and cinder damage.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 100), new object[1] { val }));
AshstoneDamageResistMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Grausten", "Damage Resistance Multiplier", 0.66f, new ConfigDescription("The factor by which damage to grausten pieces will be reduced at level 100. The default is 0.66, this is 2/3 less damage at level 100.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 0.9f), new object[1] { val }));
AncientHealthMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Ancient - Unused unless modded", "Health Multiplier", 5f, new ConfigDescription("How many times placed ancient pieces' maximum health will be multiplied at level 100. Vanilla is 1.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), new object[1] { val }));
AncientMaxSupportMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Ancient - Unused unless modded", "Maximum Stability Multiplier", 2f, new ConfigDescription("How many times placed ancient pieces' maximum stability will be multiplied at level 100. Vanilla is 1.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), new object[1] { val }));
AncientHorLossMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Ancient - Unused unless modded", "Horizontal Range Multiplier", 2f, new ConfigDescription("How many times the capacity to place subsequent ancient pieces horizontally will be multiplied at level 100. These are not normally placeable.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), new object[1] { val }));
AncientVerLossMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Ancient - Unused unless modded", "Vertical Range Multiplier", 3f, new ConfigDescription("How many times the capacity to place subsequent ancient pieces vertically will be multiplied at level 100. These are not normally placeable.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), new object[1] { val }));
AncientLavaResist = ((BaseUnityPlugin)this).Config.Bind<int>("Grausten", "Skill Level required to unlock lava and cinder resistance", 20, new ConfigDescription("The skill level at which placed ancient pieces will become resistant to lava and cinder damage.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 100), new object[1] { val }));
AncientLavaImmune = ((BaseUnityPlugin)this).Config.Bind<int>("Grausten", "Skill Level required to unlock lava and cinder immunity", 30, new ConfigDescription("The skill level at which placed ancient pieces will become immune to lava and cinder damage.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 100), new object[1] { val }));
AncientDamageResistMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Grausten", "Damage Resistance Multiplier", 0.8f, new ConfigDescription("The factor by which damage to ancient pieces will be reduced at level 100. The default is 0.8, this is 4/5 less damage at level 100.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 0.9f), new object[1] { val }));
}
}