using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Configuration;
using Jotunn;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Managers;
using Jotunn.Utils;
using UnityEngine;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("VikingParty")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("VikingParty")]
[assembly: AssemblyCopyright("Copyright © 2024")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("8c55a8c8-7d45-46b1-9ea1-8c147968a0ca")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace VikingParty;
[BepInPlugin("TheRonTron.VikingParty", "The Viking Party", "4.2.0")]
[BepInDependency(/*Could not decode attribute arguments.*/)]
internal class VikingParty : BaseUnityPlugin
{
private AssetBundle VikingAB;
public ConfigEntry<int> Cost;
public ConfigEntry<int> Bros;
public void Awake()
{
//IL_0084: Unknown result type (might be due to invalid IL or missing references)
//IL_008a: Expected O, but got Unknown
//IL_038b: Unknown result type (might be due to invalid IL or missing references)
//IL_0395: Expected O, but got Unknown
//IL_03ac: Unknown result type (might be due to invalid IL or missing references)
//IL_03b2: Expected O, but got Unknown
//IL_03da: Unknown result type (might be due to invalid IL or missing references)
//IL_03e4: Expected O, but got Unknown
GenerateConfig();
Logger.ShowDate = true;
Game.isModded = true;
Logger.LogInfo((object)("Embedded resources: " + string.Join(",", typeof(VikingParty).Assembly.GetManifestResourceNames())));
VikingAB = AssetUtils.LoadAssetBundleFromResources("vikingparty", typeof(VikingParty).Assembly);
GameObject VikingsGO = VikingAB.LoadAsset<GameObject>("Viking");
CreatureConfig val = new CreatureConfig();
val.AddConsumable("Mushroom");
val.AddConsumable("NeckTailGrilled");
val.AddConsumable("Raspberry");
val.AddConsumable("CookedMeat");
val.AddConsumable("Honey");
val.AddConsumable("CookedDeerMeat");
val.AddConsumable("Blueberries");
val.AddConsumable("BoarJerky");
val.AddConsumable("QueensJam");
val.AddConsumable("MinceMeatSauce");
val.AddConsumable("MushroomYellow");
val.AddConsumable("DeerStew");
val.AddConsumable("Carrot");
val.AddConsumable("CarrotSoup");
val.AddConsumable("ShocklateSmoothie");
val.AddConsumable("FishCooked");
val.AddConsumable("Sausages");
val.AddConsumable("SerpentMeatCooked");
val.AddConsumable("BlackSoup");
val.AddConsumable("SerpentStew");
val.AddConsumable("TurnipStew");
val.AddConsumable("Eyescream");
val.AddConsumable("CookedWolfMeat");
val.AddConsumable("Onion");
val.AddConsumable("WolfJerky");
val.AddConsumable("OnionSoup");
val.AddConsumable("WolfMeatSkewer");
val.AddConsumable("Cloudberry");
val.AddConsumable("Bread");
val.AddConsumable("BloodPudding");
val.AddConsumable("FishWraps");
val.AddConsumable("CookedLoxMeat");
val.AddConsumable("LoxPie");
val.AddConsumable("MushroomJotunPuffs");
val.AddConsumable("YggdrasilPorridge");
val.AddConsumable("MushroomMagecap");
val.AddConsumable("SeekerAspic");
val.AddConsumable("MushroomOmelette");
val.AddConsumable("MagicallyStuffedShroom");
val.AddConsumable("CookedEgg");
val.AddConsumable("FishAndBread");
val.AddConsumable("CookedChickenMeat");
val.AddConsumable("HoneyGlazedChicken");
val.AddConsumable("CookedHareMeat");
val.AddConsumable("MisthareSupreme");
val.AddConsumable("CookedBugMeat");
val.AddConsumable("MeatPlatter");
val.AddConsumable("Salad");
val.AddConsumable("MushroomSmokePuff");
val.AddConsumable("Fiddleheadfern");
val.AddConsumable("Vineberry");
val.AddConsumable("CookedAsksvinMeat");
val.AddConsumable("CookedVoltureMeat");
val.AddConsumable("CookedBoneMawSerpentMeat");
val.AddConsumable("FierySvinstew");
val.AddConsumable("MashedMeat");
val.AddConsumable("PiquantPie");
val.AddConsumable("SpicyMarmalade");
val.AddConsumable("ScorchingMedley");
val.AddConsumable("RoastedCrustPie");
val.AddConsumable("SizzlingBerryBroth");
val.AddConsumable("SparklingShroomshake");
val.AddConsumable("MarinatedGreens");
CreatureManager.Instance.AddCreature(new CustomCreature(VikingsGO, true, val));
GameObject VikingSummon = VikingAB.LoadAsset<GameObject>("Viking_spawn");
ItemConfig val2 = new ItemConfig();
VikingSummon.GetComponent<SpawnAbility>().m_maxSpawned = Bros.Value;
ItemManager.Instance.AddItem(new CustomItem(VikingSummon, true, val2));
VikingAB.Unload(false);
PrefabManager.OnPrefabsRegistered += delegate
{
//IL_060d: Unknown result type (might be due to invalid IL or missing references)
//IL_0612: Unknown result type (might be due to invalid IL or missing references)
//IL_0627: Unknown result type (might be due to invalid IL or missing references)
//IL_062e: Unknown result type (might be due to invalid IL or missing references)
//IL_0635: Unknown result type (might be due to invalid IL or missing references)
//IL_063c: Unknown result type (might be due to invalid IL or missing references)
//IL_0644: Expected O, but got Unknown
//IL_0644: Unknown result type (might be due to invalid IL or missing references)
//IL_064a: Expected O, but got Unknown
//IL_065a: Unknown result type (might be due to invalid IL or missing references)
//IL_0664: Expected O, but got Unknown
//IL_0684: Unknown result type (might be due to invalid IL or missing references)
//IL_068b: Expected O, but got Unknown
//IL_069c: Unknown result type (might be due to invalid IL or missing references)
//IL_06a6: Expected O, but got Unknown
//IL_087f: Unknown result type (might be due to invalid IL or missing references)
//IL_09b3: Unknown result type (might be due to invalid IL or missing references)
//IL_09ba: Expected O, but got Unknown
//IL_09c6: Unknown result type (might be due to invalid IL or missing references)
//IL_09cd: Expected O, but got Unknown
//IL_09cd: Unknown result type (might be due to invalid IL or missing references)
//IL_09d4: Expected O, but got Unknown
//IL_09e5: Unknown result type (might be due to invalid IL or missing references)
//IL_09ef: Expected O, but got Unknown
//IL_0a0f: Unknown result type (might be due to invalid IL or missing references)
//IL_0a16: Expected O, but got Unknown
//IL_0a27: Unknown result type (might be due to invalid IL or missing references)
//IL_0a31: Expected O, but got Unknown
//IL_0c89: Unknown result type (might be due to invalid IL or missing references)
//IL_0c90: Expected O, but got Unknown
//IL_0c9c: Unknown result type (might be due to invalid IL or missing references)
//IL_0ca3: Expected O, but got Unknown
//IL_0d07: Unknown result type (might be due to invalid IL or missing references)
//IL_0e3c: Unknown result type (might be due to invalid IL or missing references)
//IL_0e43: Expected O, but got Unknown
//IL_0e4f: Unknown result type (might be due to invalid IL or missing references)
//IL_0e56: Expected O, but got Unknown
//IL_1017: Unknown result type (might be due to invalid IL or missing references)
//IL_101e: Expected O, but got Unknown
//IL_102a: Unknown result type (might be due to invalid IL or missing references)
//IL_1031: Expected O, but got Unknown
//IL_1095: Unknown result type (might be due to invalid IL or missing references)
//IL_1292: Unknown result type (might be due to invalid IL or missing references)
//IL_1297: Unknown result type (might be due to invalid IL or missing references)
//IL_12ac: Unknown result type (might be due to invalid IL or missing references)
//IL_12b3: Unknown result type (might be due to invalid IL or missing references)
//IL_12bc: Expected O, but got Unknown
//IL_12bc: Unknown result type (might be due to invalid IL or missing references)
//IL_12c1: Unknown result type (might be due to invalid IL or missing references)
//IL_12d6: Unknown result type (might be due to invalid IL or missing references)
//IL_12dd: Unknown result type (might be due to invalid IL or missing references)
//IL_12e6: Expected O, but got Unknown
//IL_12e6: Unknown result type (might be due to invalid IL or missing references)
//IL_12eb: Unknown result type (might be due to invalid IL or missing references)
//IL_1300: Unknown result type (might be due to invalid IL or missing references)
//IL_1307: Unknown result type (might be due to invalid IL or missing references)
//IL_1310: Expected O, but got Unknown
//IL_1420: Unknown result type (might be due to invalid IL or missing references)
//IL_1427: Expected O, but got Unknown
//IL_1433: Unknown result type (might be due to invalid IL or missing references)
//IL_143a: Expected O, but got Unknown
//IL_14f4: Unknown result type (might be due to invalid IL or missing references)
PrefabManager.Instance.GetPrefab("SwordBronze").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackInterval = 0f;
PrefabManager.Instance.GetPrefab("MaceBronze").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackInterval = 0f;
PrefabManager.Instance.GetPrefab("AxeBronze").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackInterval = 0f;
PrefabManager.Instance.GetPrefab("AxeBronze").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackRange = 1.8f;
PrefabManager.Instance.GetPrefab("SpearBronze").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackInterval = 0f;
PrefabManager.Instance.GetPrefab("SpearBronze").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackRange = 1.5f;
PrefabManager.Instance.GetPrefab("SwordMistwalker").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackInterval = 0f;
PrefabManager.Instance.GetPrefab("SwordMistwalker").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackRange = 2.3f;
PrefabManager.Instance.GetPrefab("AxeJotunBane").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackInterval = 0f;
PrefabManager.Instance.GetPrefab("AxeJotunBane").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackRange = 1.8f;
PrefabManager.Instance.GetPrefab("BattleaxeSkullSplittur").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackInterval = 0f;
PrefabManager.Instance.GetPrefab("BattleaxeSkullSplittur").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackRange = 2.1f;
PrefabManager.Instance.GetPrefab("SledgeDemolisher").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackInterval = 0f;
PrefabManager.Instance.GetPrefab("SledgeDemolisher").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackRange = 1.6f;
PrefabManager.Instance.GetPrefab("SwordDyrnwyn").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackInterval = 0f;
PrefabManager.Instance.GetPrefab("SwordNiedhoggLightning").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackInterval = 0f;
PrefabManager.Instance.GetPrefab("SwordNiedhoggLightning").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackRange = 2.3f;
PrefabManager.Instance.GetPrefab("SwordNiedhoggNature").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackInterval = 0f;
PrefabManager.Instance.GetPrefab("SwordNiedhoggNature").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackRange = 2.3f;
PrefabManager.Instance.GetPrefab("MaceEldnerLightning").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackInterval = 0f;
PrefabManager.Instance.GetPrefab("MaceEldnerLightning").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackRange = 2.1f;
PrefabManager.Instance.GetPrefab("MaceEldnerNature").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackInterval = 0f;
PrefabManager.Instance.GetPrefab("AxeBerzerkrLightning").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackInterval = 0f;
PrefabManager.Instance.GetPrefab("AxeBerzerkrLightning").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackRange = 1.8f;
PrefabManager.Instance.GetPrefab("SpearSplitner_Lightning").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackInterval = 0f;
PrefabManager.Instance.GetPrefab("SpearSplitner_Lightning").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackRange = 1.5f;
PrefabManager.Instance.GetPrefab("SpearSplitner_Nature").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackInterval = 0f;
PrefabManager.Instance.GetPrefab("SpearSplitner_Nature").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackRange = 1.5f;
PrefabManager.Instance.GetPrefab("THSwordSlayerBlood").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackInterval = 0f;
PrefabManager.Instance.GetPrefab("THSwordSlayerBlood").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackRange = 2.2f;
Renderer componentInChildren = PrefabManager.Instance.GetPrefab("fx_Viking_pet").GetComponentInChildren<Renderer>();
componentInChildren.material = Cache.GetPrefab<Material>("love");
GameObject prefab = PrefabManager.Instance.GetPrefab("fx_summon_Viking_spawn");
Renderer[] componentsInChildren = prefab.GetComponentsInChildren<Renderer>();
foreach (Renderer val3 in componentsInChildren)
{
if (((Object)((Component)val3).gameObject).name == "Particle System")
{
Renderer componentInChildren2 = ((Component)val3).GetComponentInChildren<Renderer>();
componentInChildren2.materials = (Material[])(object)new Material[2]
{
Cache.GetPrefab<Material>("Default-Particle"),
Cache.GetPrefab<Material>("waystone_Trail")
};
}
if (((Object)((Component)val3).gameObject).name == "Black_suck")
{
Renderer componentInChildren3 = ((Component)val3).GetComponentInChildren<Renderer>();
componentInChildren3.material = Cache.GetPrefab<Material>("teleport_suck");
}
if (((Object)((Component)val3).gameObject).name == "blue flames")
{
Renderer componentInChildren4 = ((Component)val3).GetComponentInChildren<Renderer>();
componentInChildren4.material = Cache.GetPrefab<Material>("portal_flame");
}
if (((Object)((Component)val3).gameObject).name == "suck particles")
{
Renderer componentInChildren5 = ((Component)val3).GetComponentInChildren<Renderer>();
componentInChildren5.material = Cache.GetPrefab<Material>("portal_sparcs");
}
}
EffectData val4 = new EffectData
{
m_prefab = PrefabManager.Instance.GetPrefab("sfx_MeadBurp"),
m_enabled = true,
m_variant = -1,
m_attach = true,
m_inheritParentRotation = true
};
ItemConfig val5 = new ItemConfig();
ItemManager.Instance.AddItem(new CustomItem("BlueLinenCape", "CapeLinen", val5));
PrefabManager.Instance.GetPrefab("BlueLinenCape").GetComponent<ItemDrop>().m_itemData.m_variant = 1;
ItemConfig val6 = new ItemConfig();
ItemManager.Instance.AddItem(new CustomItem("SpinAtgeirBronze", "AtgeirBronze", val6));
PrefabManager.Instance.GetPrefab("SpinAtgeirBronze").GetComponent<ItemDrop>().m_itemData.m_shared.m_attack = PrefabManager.Instance.GetPrefab("SpinAtgeirBronze").GetComponent<ItemDrop>().m_itemData.m_shared.m_secondaryAttack;
PrefabManager.Instance.GetPrefab("SpinAtgeirBronze").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackInterval = 0f;
PrefabManager.Instance.GetPrefab("SpinAtgeirBronze").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackRange = 2.6f;
VikingsGO.GetComponent<Humanoid>().m_defaultItems = (GameObject[])(object)new GameObject[8]
{
PrefabManager.Instance.GetPrefab("HelmetBronze"),
PrefabManager.Instance.GetPrefab("ArmorBronzeChest"),
PrefabManager.Instance.GetPrefab("ArmorBronzeLegs"),
PrefabManager.Instance.GetPrefab("BlueLinenCape"),
PrefabManager.Instance.GetPrefab("BeltStrength"),
PrefabManager.Instance.GetPrefab("ShieldBronzeBuckler"),
PrefabManager.Instance.GetPrefab("Tankard"),
PrefabManager.Instance.GetPrefab("MeadTasty")
};
VikingsGO.GetComponent<Humanoid>().m_randomWeapon = (GameObject[])(object)new GameObject[5]
{
PrefabManager.Instance.GetPrefab("SwordBronze"),
PrefabManager.Instance.GetPrefab("AxeBronze"),
PrefabManager.Instance.GetPrefab("MaceBronze"),
PrefabManager.Instance.GetPrefab("SpearBronze"),
PrefabManager.Instance.GetPrefab("SpinAtgeirBronze")
};
SharedData shared = PrefabManager.Instance.GetPrefab("Tankard").GetComponent<ItemDrop>().m_itemData.m_shared;
Attack secondaryAttack = shared.m_secondaryAttack;
secondaryAttack.m_attackType = (AttackType)2;
secondaryAttack.m_attackAnimation = "emote_drink";
secondaryAttack.m_hitTerrain = false;
secondaryAttack.m_attackStamina = 0f;
secondaryAttack.m_attackEitr = Cost.Value;
secondaryAttack.m_speedFactor = 0.3f;
secondaryAttack.m_speedFactorRotation = 0.3f;
secondaryAttack.m_attackHitNoise = 10f;
secondaryAttack.m_attackRange = 0f;
secondaryAttack.m_attackHeight = 0f;
secondaryAttack.m_attackProjectile = VikingSummon;
secondaryAttack.m_projectileVel = 0f;
secondaryAttack.m_projectileVelMin = 0f;
secondaryAttack.m_projectileAccuracy = 1f;
secondaryAttack.m_projectileAccuracyMin = 1f;
secondaryAttack.m_startEffect.m_effectPrefabs = (EffectData[])(object)new EffectData[1] { val4 };
secondaryAttack.m_triggerEffect.m_effectPrefabs = (EffectData[])(object)new EffectData[1] { val4 };
secondaryAttack.m_trailStartEffect.m_effectPrefabs = (EffectData[])(object)new EffectData[1] { val4 };
shared.m_equipDuration = 0f;
shared.m_aiAttackRange = 24f;
shared.m_aiAttackRangeMin = 4f;
shared.m_aiAttackInterval = 20f;
shared.m_aiMinHealthPercentage = 0.69f;
CreatureConfig val7 = new CreatureConfig();
CustomCreature val8 = new CustomCreature("VikingElite", "Viking", val7);
ItemConfig val9 = new ItemConfig();
ItemManager.Instance.AddItem(new CustomItem("BlackLinenCape", "CapeLinen", val9));
PrefabManager.Instance.GetPrefab("BlackLinenCape").GetComponent<ItemDrop>().m_itemData.m_variant = 5;
ItemConfig val10 = new ItemConfig();
ItemManager.Instance.AddItem(new CustomItem("SpinAtgeirHimminAfl", "AtgeirHimminAfl", val10));
PrefabManager.Instance.GetPrefab("SpinAtgeirHimminAfl").GetComponent<ItemDrop>().m_itemData.m_shared.m_attack = PrefabManager.Instance.GetPrefab("SpinAtgeirHimminAfl").GetComponent<ItemDrop>().m_itemData.m_shared.m_secondaryAttack;
PrefabManager.Instance.GetPrefab("SpinAtgeirHimminAfl").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackInterval = 0f;
PrefabManager.Instance.GetPrefab("SpinAtgeirHimminAfl").GetComponent<ItemDrop>().m_itemData.m_shared.m_aiAttackRange = 2.6f;
Humanoid component = val8.Prefab.GetComponent<Humanoid>();
((Character)component).m_name = "Elite Viking Warrior";
component.m_defaultItems = (GameObject[])(object)new GameObject[7]
{
PrefabManager.Instance.GetPrefab("HelmetFlametal"),
PrefabManager.Instance.GetPrefab("ArmorFlametalChest"),
PrefabManager.Instance.GetPrefab("ArmorFlametalLegs"),
PrefabManager.Instance.GetPrefab("BlackLinenCape"),
PrefabManager.Instance.GetPrefab("ShieldFlametal"),
PrefabManager.Instance.GetPrefab("TankardAnniversary"),
PrefabManager.Instance.GetPrefab("MeadTasty")
};
component.m_randomWeapon = (GameObject[])(object)new GameObject[14]
{
PrefabManager.Instance.GetPrefab("SwordDyrnwyn"),
PrefabManager.Instance.GetPrefab("SwordNiedhoggLightning"),
PrefabManager.Instance.GetPrefab("SwordNiedhoggNature"),
PrefabManager.Instance.GetPrefab("MaceEldnerLightning"),
PrefabManager.Instance.GetPrefab("MaceEldnerNature"),
PrefabManager.Instance.GetPrefab("AxeBerzerkrLightning"),
PrefabManager.Instance.GetPrefab("SpearSplitner_Lightning"),
PrefabManager.Instance.GetPrefab("SpearSplitner_Nature"),
PrefabManager.Instance.GetPrefab("THSwordSlayerBlood"),
PrefabManager.Instance.GetPrefab("SwordMistwalker"),
PrefabManager.Instance.GetPrefab("AxeJotunBane"),
PrefabManager.Instance.GetPrefab("BattleaxeSkullSplittur"),
PrefabManager.Instance.GetPrefab("SledgeDemolisher"),
PrefabManager.Instance.GetPrefab("SpinAtgeirHimminAfl")
};
CreatureManager.Instance.AddCreature(val8);
ItemConfig val11 = new ItemConfig();
CustomItem val12 = new CustomItem("VikingElite_spawn", "Viking_spawn", val11);
ItemManager.Instance.AddItem(val12);
SpawnAbility component2 = val12.ItemPrefab.GetComponent<SpawnAbility>();
component2.m_spawnPrefab.SetValue(PrefabManager.Instance.GetPrefab("VikingElite"), 0);
SharedData shared2 = PrefabManager.Instance.GetPrefab("TankardAnniversary").GetComponentInChildren<ItemDrop>().m_itemData.m_shared;
Attack secondaryAttack2 = shared2.m_secondaryAttack;
secondaryAttack2.m_attackType = (AttackType)2;
secondaryAttack2.m_attackAnimation = "emote_drink";
secondaryAttack2.m_hitTerrain = false;
secondaryAttack2.m_attackStamina = 0f;
secondaryAttack2.m_attackEitr = Cost.Value;
secondaryAttack2.m_speedFactor = 0.3f;
secondaryAttack2.m_speedFactorRotation = 0.3f;
secondaryAttack2.m_attackHitNoise = 10f;
secondaryAttack2.m_attackRange = 0f;
secondaryAttack2.m_attackHeight = 0f;
secondaryAttack2.m_attackProjectile = val12.ItemPrefab;
secondaryAttack2.m_projectileVel = 0f;
secondaryAttack2.m_projectileVelMin = 0f;
secondaryAttack2.m_projectileAccuracy = 1f;
secondaryAttack2.m_projectileAccuracyMin = 1f;
secondaryAttack2.m_startEffect.m_effectPrefabs = (EffectData[])(object)new EffectData[1] { val4 };
secondaryAttack2.m_triggerEffect.m_effectPrefabs = (EffectData[])(object)new EffectData[1] { val4 };
secondaryAttack2.m_trailStartEffect.m_effectPrefabs = (EffectData[])(object)new EffectData[1] { val4 };
shared2.m_equipDuration = 0f;
shared2.m_aiAttackRange = 24f;
shared2.m_aiAttackRangeMin = 4f;
shared2.m_aiAttackInterval = 20f;
shared2.m_aiMinHealthPercentage = 0.69f;
CreatureConfig val13 = new CreatureConfig();
CustomCreature val14 = new CustomCreature("OdinViking", "VikingElite", val13);
Humanoid component3 = val14.Prefab.GetComponent<Humanoid>();
((Character)component3).m_name = "Odin's Elite Viking";
component3.m_defaultItems = (GameObject[])(object)new GameObject[7]
{
PrefabManager.Instance.GetPrefab("HelmetOdin"),
PrefabManager.Instance.GetPrefab("ArmorFlametalChest"),
PrefabManager.Instance.GetPrefab("ArmorFlametalLegs"),
PrefabManager.Instance.GetPrefab("CapeOdin"),
PrefabManager.Instance.GetPrefab("ShieldFlametal"),
PrefabManager.Instance.GetPrefab("TankardOdin"),
PrefabManager.Instance.GetPrefab("MeadTasty")
};
component3.m_randomWeapon = (GameObject[])(object)new GameObject[14]
{
PrefabManager.Instance.GetPrefab("SwordDyrnwyn"),
PrefabManager.Instance.GetPrefab("SwordNiedhoggLightning"),
PrefabManager.Instance.GetPrefab("SwordNiedhoggNature"),
PrefabManager.Instance.GetPrefab("MaceEldnerLightning"),
PrefabManager.Instance.GetPrefab("MaceEldnerNature"),
PrefabManager.Instance.GetPrefab("AxeBerzerkrLightning"),
PrefabManager.Instance.GetPrefab("SpearSplitner_Lightning"),
PrefabManager.Instance.GetPrefab("SpearSplitner_Nature"),
PrefabManager.Instance.GetPrefab("THSwordSlayerBlood"),
PrefabManager.Instance.GetPrefab("SwordMistwalker"),
PrefabManager.Instance.GetPrefab("AxeJotunBane"),
PrefabManager.Instance.GetPrefab("BattleaxeSkullSplittur"),
PrefabManager.Instance.GetPrefab("SledgeDemolisher"),
PrefabManager.Instance.GetPrefab("SpinAtgeirHimminAfl")
};
CreatureManager.Instance.AddCreature(val14);
ItemConfig val15 = new ItemConfig();
CustomItem val16 = new CustomItem("OdinViking_spawn", "VikingElite_spawn", val15);
ItemManager.Instance.AddItem(val16);
SpawnAbility component4 = val16.ItemPrefab.GetComponent<SpawnAbility>();
component4.m_spawnPrefab.SetValue(PrefabManager.Instance.GetPrefab("OdinViking"), 0);
SharedData shared3 = PrefabManager.Instance.GetPrefab("TankardOdin").GetComponentInChildren<ItemDrop>().m_itemData.m_shared;
Attack secondaryAttack3 = shared3.m_secondaryAttack;
secondaryAttack3.m_attackType = (AttackType)2;
secondaryAttack3.m_attackAnimation = "emote_drink";
secondaryAttack3.m_hitTerrain = false;
secondaryAttack3.m_attackStamina = 0f;
secondaryAttack3.m_attackEitr = Cost.Value;
secondaryAttack3.m_speedFactor = 0.3f;
secondaryAttack3.m_speedFactorRotation = 0.3f;
secondaryAttack3.m_attackHitNoise = 10f;
secondaryAttack3.m_attackRange = 0f;
secondaryAttack3.m_attackHeight = 0f;
secondaryAttack3.m_attackProjectile = val16.ItemPrefab;
secondaryAttack3.m_projectileVel = 0f;
secondaryAttack3.m_projectileVelMin = 0f;
secondaryAttack3.m_projectileAccuracy = 1f;
secondaryAttack3.m_projectileAccuracyMin = 1f;
secondaryAttack3.m_startEffect.m_effectPrefabs = (EffectData[])(object)new EffectData[1] { val4 };
secondaryAttack3.m_triggerEffect.m_effectPrefabs = (EffectData[])(object)new EffectData[1] { val4 };
secondaryAttack3.m_trailStartEffect.m_effectPrefabs = (EffectData[])(object)new EffectData[1] { val4 };
shared3.m_equipDuration = 0f;
shared3.m_aiAttackRange = 24f;
shared3.m_aiAttackRangeMin = 4f;
shared3.m_aiAttackInterval = 20f;
shared3.m_aiMinHealthPercentage = 0.69f;
MonsterAI component5 = PrefabManager.Instance.GetPrefab("Dverger").GetComponent<MonsterAI>();
component5.m_consumeItems = new List<ItemDrop>
{
PrefabManager.Instance.GetPrefab("Sausages").GetComponent<ItemDrop>(),
PrefabManager.Instance.GetPrefab("MeadTasty").GetComponent<ItemDrop>()
};
component5.m_consumeSearchRange = 10f;
MonsterAI component6 = PrefabManager.Instance.GetPrefab("DvergerMage").GetComponent<MonsterAI>();
component6.m_consumeItems = new List<ItemDrop>
{
PrefabManager.Instance.GetPrefab("Sausages").GetComponent<ItemDrop>(),
PrefabManager.Instance.GetPrefab("MeadTasty").GetComponent<ItemDrop>()
};
component6.m_consumeSearchRange = 14f;
EffectData val17 = new EffectData
{
m_prefab = PrefabManager.Instance.GetPrefab("fx_creature_tamed"),
m_enabled = true,
m_variant = -1
};
EffectData val18 = new EffectData
{
m_prefab = PrefabManager.Instance.GetPrefab("vfx_creature_soothed"),
m_enabled = true,
m_variant = 0
};
EffectData val19 = new EffectData
{
m_prefab = PrefabManager.Instance.GetPrefab("fx_Viking_pet"),
m_enabled = true,
m_variant = 0
};
PrefabManager.Instance.GetPrefab("Dverger").AddComponent<Tameable>();
Tameable component7 = PrefabManager.Instance.GetPrefab("Dverger").GetComponent<Tameable>();
component7.m_unsummonDistance = 150f;
component7.m_unsummonOnOwnerLogoutSeconds = 120f;
component7.m_tamedEffect.m_effectPrefabs = (EffectData[])(object)new EffectData[1] { val17 };
component7.m_sootheEffect.m_effectPrefabs = (EffectData[])(object)new EffectData[1] { val18 };
component7.m_petEffect.m_effectPrefabs = (EffectData[])(object)new EffectData[1] { val19 };
PrefabManager.Instance.GetPrefab("DvergerMage").AddComponent<Tameable>();
Tameable component8 = PrefabManager.Instance.GetPrefab("DvergerMage").GetComponent<Tameable>();
component8.m_unsummonDistance = 150f;
component8.m_unsummonOnOwnerLogoutSeconds = 120f;
component8.m_tamedEffect.m_effectPrefabs = (EffectData[])(object)new EffectData[1] { val17 };
component8.m_sootheEffect.m_effectPrefabs = (EffectData[])(object)new EffectData[1] { val18 };
component8.m_petEffect.m_effectPrefabs = (EffectData[])(object)new EffectData[1] { val19 };
ItemConfig val20 = new ItemConfig();
CustomItem val21 = new CustomItem("Dvergr_spawn", "Viking_spawn", val20);
ItemManager.Instance.AddItem(val21);
SpawnAbility component9 = val21.ItemPrefab.GetComponent<SpawnAbility>();
component9.m_spawnPrefab = (GameObject[])(object)new GameObject[5]
{
PrefabManager.Instance.GetPrefab("Dverger"),
PrefabManager.Instance.GetPrefab("Dverger"),
PrefabManager.Instance.GetPrefab("Dverger"),
PrefabManager.Instance.GetPrefab("Dverger"),
PrefabManager.Instance.GetPrefab("DvergerMage")
};
SharedData shared4 = PrefabManager.Instance.GetPrefab("Tankard_dvergr").GetComponentInChildren<ItemDrop>().m_itemData.m_shared;
Attack secondaryAttack4 = shared4.m_secondaryAttack;
shared4.m_equipDuration = 0f;
secondaryAttack4.m_attackType = (AttackType)2;
secondaryAttack4.m_attackAnimation = "emote_drink";
secondaryAttack4.m_hitTerrain = false;
secondaryAttack4.m_attackStamina = 0f;
secondaryAttack4.m_attackEitr = Cost.Value;
secondaryAttack4.m_speedFactor = 0.3f;
secondaryAttack4.m_speedFactorRotation = 0.3f;
secondaryAttack4.m_attackHitNoise = 10f;
secondaryAttack4.m_attackRange = 0f;
secondaryAttack4.m_attackHeight = 0f;
secondaryAttack4.m_attackProjectile = PrefabManager.Instance.GetPrefab("Dvergr_spawn");
secondaryAttack4.m_projectileVel = 0f;
secondaryAttack4.m_projectileVelMin = 0f;
secondaryAttack4.m_projectileAccuracy = 1f;
secondaryAttack4.m_projectileAccuracyMin = 1f;
secondaryAttack4.m_startEffect.m_effectPrefabs = (EffectData[])(object)new EffectData[1] { val4 };
secondaryAttack4.m_triggerEffect.m_effectPrefabs = (EffectData[])(object)new EffectData[1] { val4 };
secondaryAttack4.m_trailStartEffect.m_effectPrefabs = (EffectData[])(object)new EffectData[1] { val4 };
};
}
public void GenerateConfig()
{
//IL_003a: Unknown result type (might be due to invalid IL or missing references)
//IL_003f: Unknown result type (might be due to invalid IL or missing references)
//IL_0048: Expected O, but got Unknown
//IL_0048: Unknown result type (might be due to invalid IL or missing references)
//IL_0052: Expected O, but got Unknown
//IL_0082: Unknown result type (might be due to invalid IL or missing references)
//IL_0087: Unknown result type (might be due to invalid IL or missing references)
//IL_0090: Expected O, but got Unknown
//IL_0090: Unknown result type (might be due to invalid IL or missing references)
//IL_009a: Expected O, but got Unknown
((BaseUnityPlugin)this).Config.SaveOnConfigSet = true;
Cost = ((BaseUnityPlugin)this).Config.Bind<int>("Party Time!", "Cost of Invitations", 100, new ConfigDescription("Designates Cost of Invites", (AcceptableValueBase)null, new object[2]
{
new AcceptableValueRange<int>(0, 100),
(object)new ConfigurationManagerAttributes
{
IsAdminOnly = true
}
}));
Bros = ((BaseUnityPlugin)this).Config.Bind<int>("Party Time!", "Available Invitations", 1, new ConfigDescription("Designates Number of Available Invites", (AcceptableValueBase)null, new object[2]
{
new AcceptableValueRange<int>(1, 100),
(object)new ConfigurationManagerAttributes
{
IsAdminOnly = true
}
}));
SynchronizationManager.OnConfigurationSynchronized += delegate(object obj, ConfigurationSynchronizationEventArgs attr)
{
if (attr.InitialSynchronization)
{
Logger.LogMessage((object)"Initial Config sync event received");
}
else
{
Logger.LogMessage((object)"Config sync event received");
}
};
}
}