Please disclose if your mod was created primarily using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of TheVikingParty v4.2.0
VikingParty.dll
Decompiled 2 months agousing 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"); } }; } }