Decompiled source of Vikings Summoner v1.1.8
plugins/Vikings_Summoner.dll
Decompiled 2 weeks ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Globalization; using System.IO; using System.IO.Compression; using System.Linq; using System.Reflection; using System.Reflection.Emit; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Serialization; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using System.Text.RegularExpressions; using AzuExtendedPlayerInventory; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using CreatureManager; using HarmonyLib; using ItemManager; using JetBrains.Annotations; using Microsoft.CodeAnalysis; using PieceManager; using ServerSync; using TMPro; using UnityEngine; using UnityEngine.UI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("Vikings_Summoner")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyProduct("Vikings_Summoner")] [assembly: AssemblyCopyright("Copyright © 2025")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("E74EB49A-461D-48EA-85BC-F462D60C98C4")] [assembly: AssemblyFileVersion("1.1.8")] [assembly: AssemblyCompany("Radamanto")] [assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.1.8.0")] [module: UnverifiableCode] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [<ea78b825-de24-4127-8480-6ea6e1990d1f>Embedded] internal sealed class <ea78b825-de24-4127-8480-6ea6e1990d1f>EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [<ea78b825-de24-4127-8480-6ea6e1990d1f>Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] [CompilerGenerated] internal sealed class <8040682d-5ba1-44b9-942a-594762a4e3fb>NullableAttribute : Attribute { public readonly byte[] NullableFlags; public <8040682d-5ba1-44b9-942a-594762a4e3fb>NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public <8040682d-5ba1-44b9-942a-594762a4e3fb>NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [<ea78b825-de24-4127-8480-6ea6e1990d1f>Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class <1a1066e8-20be-4301-a714-80275ef3424b>NullableContextAttribute : Attribute { public readonly byte Flag; public <1a1066e8-20be-4301-a714-80275ef3424b>NullableContextAttribute(byte P_0) { Flag = P_0; } } } namespace Vikings_Summoner { internal static class Registrations_Grimories { public static void RegisterGrimories() { Item item = new Item("rd_armor", "RD_grimoire_01"); item.Name.English("Grimoire of Morthbók"); item.Name.Portuguese_Brazilian("Grimório Morthbók"); item.Description.English("An ancient tome bound in darkened hide, etched with sigils that seem to breathe like living flesh. The deathly energy within its pages seeps outward, quietly restoring the bearer’s health like a whisper from beyond."); item.Description.Portuguese_Brazilian("Um volume antigo encadernado em couro escurecido, marcado por sigilos que respiram como carne viva. A energia mortuária contida em suas páginas flui silenciosamente, restaurando a vida do portador como um sussurro vindo do além."); item.Crafting.Add("RD_necromancer_table", 1); item.RequiredItems.Add("DeerHide", 20); item.RequiredItems.Add("LeatherScraps", 10); item.RequiredItems.Add("Feathers", 15); item.RequiredItems.Add("Coal", 15); MaterialReplacer.RegisterGameObjectForShaderSwap(item.Prefab, MaterialReplacer.ShaderType.UseUnityShader); GrimoireCustomSlotManager.ApplyGrimoireSlotToPrefab(item.Prefab, Vikings_SummonerPlugin.CE_GrimoireSlot_Name?.Value ?? "Grimoire"); Item item2 = new Item("rd_armor", "RD_grimoire_02"); item2.Name.English("Grimoire of Draugrbók"); item2.Name.Portuguese_Brazilian("Grimório Draugrbók"); item2.Description.English("A heavy tome bound in hardened hide, marked with draugr runes that seem to shift under firelight. The profane energy sealed within its pages grants the bearer a slow and steady regeneration of health, reminiscent of the restless strength that animates the undead."); item2.Description.Portuguese_Brazilian("Um tomo pesado revestido em couro endurecido, marcado com runas draugr que parecem se mover à luz das chamas. A energia profana presa em suas páginas concede ao portador uma lenta e constante regeneração de vida, como o vigor que anima os mortos inquietos."); item2.Crafting.Add("RD_necromancer_table", 2); item2.RequiredItems.Add("YmirRemains", 10); item2.RequiredItems.Add("DeerHide", 20); item2.RequiredItems.Add("ElderBark", 15); item2.RequiredItems.Add("Coal", 15); MaterialReplacer.RegisterGameObjectForShaderSwap(item2.Prefab, MaterialReplacer.ShaderType.UseUnityShader); GrimoireCustomSlotManager.ApplyGrimoireSlotToPrefab(item2.Prefab, Vikings_SummonerPlugin.CE_GrimoireSlot_Name?.Value ?? "Grimoire"); Item item3 = new Item("rd_armor", "RD_grimoire_03"); item3.Name.English("Grimoire of Eldrún"); item3.Name.Portuguese_Brazilian("Grimório Eldrún"); item3.Description.English("A tome etched with scorched runes, its surface radiating heat even when sealed. The dormant rune-fire within its pages strengthens the bearer, warming the body and accelerating health regeneration like a quiet flame beneath the skin."); item3.Description.Portuguese_Brazilian("Um tomo marcado por runas abrasadas, cuja superfície irradia calor mesmo quando fechada. A chama rúnica adormecida em suas páginas fortalece o portador, aquecendo o corpo e acelerando a regeneração de vida como um fogo silencioso sob a pele."); item3.Crafting.Add("RD_necromancer_table_02", 1); item3.RequiredItems.Add("YmirRemains", 10); item3.RequiredItems.Add("DeerHide", 20); item3.RequiredItems.Add("BlackCore", 5); item3.RequiredItems.Add("Eitr", 15); MaterialReplacer.RegisterGameObjectForShaderSwap(item3.Prefab, MaterialReplacer.ShaderType.UseUnityShader); GrimoireCustomSlotManager.ApplyGrimoireSlotToPrefab(item3.Prefab, Vikings_SummonerPlugin.CE_GrimoireSlot_Name?.Value ?? "Grimoire"); } } internal static class Registrations_Armors { public static void RegisterArmors() { Item item = new Item("rd_armor", "RD_inv_chest_meadows"); item.Name.English("Chest Reborn"); item.Name.Portuguese_Brazilian("Peitoral Renascido"); item.Description.English("Chest created from the life essence of small animals."); item.Description.Portuguese_Brazilian("Peitoral criado a partir da essência de vida de pequenos animais."); item.Crafting.Add("RD_necromancer_table", 1); item.RequiredItems.Add("DeerHide", 10); item.RequiredItems.Add("LeatherScraps", 10); item.RequiredUpgradeItems.Add("DeerHide", 2); item.RequiredUpgradeItems.Add("LeatherScraps", 2); item.RequiredUpgradeItems.Add("BoneFragments", 2); MaterialReplacer.RegisterGameObjectForShaderSwap(item.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item2 = new Item("rd_armor", "RD_inv_helmet_meadows"); item2.Name.English("Hat Reborn"); item2.Name.Portuguese_Brazilian("Chapéu Renascido"); item2.Description.English("Hat created from the life essence of small animals."); item2.Description.Portuguese_Brazilian("Chapéu criado a partir da essência de vida de pequenos animais."); item2.Crafting.Add("RD_necromancer_table", 1); item2.RequiredItems.Add("DeerHide", 4); item2.RequiredItems.Add("LeatherScraps", 4); item2.RequiredUpgradeItems.Add("DeerHide", 2); item2.RequiredUpgradeItems.Add("LeatherScraps", 2); item2.RequiredUpgradeItems.Add("BoneFragments", 2); MaterialReplacer.RegisterGameObjectForShaderSwap(item2.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item3 = new Item("rd_armor", "RD_inv_legs_meadows"); item3.Name.English("Legs Reborn"); item3.Name.Portuguese_Brazilian("Calça Renascido"); item3.Description.English("Legs created from the life essence of small animals."); item3.Description.Portuguese_Brazilian("Calça criada a partir da essência de vida de pequenos animais."); item3.Crafting.Add("RD_necromancer_table", 1); item3.RequiredItems.Add("DeerHide", 8); item3.RequiredItems.Add("LeatherScraps", 8); item3.RequiredUpgradeItems.Add("DeerHide", 2); item3.RequiredUpgradeItems.Add("LeatherScraps", 2); item3.RequiredUpgradeItems.Add("BoneFragments", 2); MaterialReplacer.RegisterGameObjectForShaderSwap(item3.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item4 = new Item("rd_armor", "RD_inv_cape_meadows"); item4.Name.English("Cape Reborn"); item4.Name.Portuguese_Brazilian("Capa Renascido"); item4.Description.English("Cape created from the life essence of small animals."); item4.Description.Portuguese_Brazilian("Capa criada a partir da essência de vida de pequenos animais."); item4.Crafting.Add("RD_necromancer_table", 1); item4.RequiredItems.Add("DeerHide", 6); item4.RequiredItems.Add("LeatherScraps", 6); item4.RequiredUpgradeItems.Add("DeerHide", 2); item4.RequiredUpgradeItems.Add("LeatherScraps", 2); item4.RequiredUpgradeItems.Add("BoneFragments", 2); MaterialReplacer.RegisterGameObjectForShaderSwap(item4.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item5 = new Item("rd_armor", "RD_inv_helmet_bflorest"); item5.Name.English("Bone Helmet"); item5.Name.Portuguese_Brazilian("Elmo Ósseo"); item5.Description.English("Helmet crafted using the essence of long-forgotten skeletons."); item5.Description.Portuguese_Brazilian("Elmo produzido usando a essência de esqueletos há muito esquecidos."); item5.Crafting.Add("RD_necromancer_table", 1); item5.RequiredItems.Add("TrollHide", 4); item5.RequiredItems.Add("BoneFragments", 6); item5.RequiredItems.Add("Bronze", 5); item5.RequiredUpgradeItems.Add("TrollHide", 1); item5.RequiredUpgradeItems.Add("BoneFragments", 2); item5.RequiredUpgradeItems.Add("Bronze", 2); MaterialReplacer.RegisterGameObjectForShaderSwap(item5.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item6 = new Item("rd_armor", "RD_inv_chest_bflorest"); item6.Name.English("Bone Chest"); item6.Name.Portuguese_Brazilian("Peitoral Ósseo"); item6.Description.English("Chest crafted using the essence of long-forgotten skeletons."); item6.Description.Portuguese_Brazilian("Peitoral produzido usando a essência de esqueletos há muito esquecidos."); item6.Crafting.Add("RD_necromancer_table", 1); item6.RequiredItems.Add("TrollHide", 4); item6.RequiredItems.Add("BoneFragments", 8); item6.RequiredItems.Add("Bronze", 5); item6.RequiredUpgradeItems.Add("TrollHide", 1); item6.RequiredUpgradeItems.Add("BoneFragments", 3); item6.RequiredUpgradeItems.Add("Bronze", 2); MaterialReplacer.RegisterGameObjectForShaderSwap(item6.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item7 = new Item("rd_armor", "RD_inv_legs_bflorest"); item7.Name.English("Bone Legs"); item7.Name.Portuguese_Brazilian("Calça Óssea"); item7.Description.English("Legs crafted using the essence of long-forgotten skeletons."); item7.Description.Portuguese_Brazilian("Calça produzida usando a essência de esqueletos há muito esquecidos."); item7.Crafting.Add("RD_necromancer_table", 1); item7.RequiredItems.Add("TrollHide", 4); item7.RequiredItems.Add("BoneFragments", 6); item7.RequiredItems.Add("Bronze", 5); item7.RequiredUpgradeItems.Add("TrollHide", 1); item7.RequiredUpgradeItems.Add("BoneFragments", 4); item7.RequiredUpgradeItems.Add("Bronze", 2); MaterialReplacer.RegisterGameObjectForShaderSwap(item7.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item8 = new Item("rd_armor", "RD_inv_cape_bflorest"); item8.Name.English("Bone Cape"); item8.Name.Portuguese_Brazilian("Capa Óssea"); item8.Description.English("Cape crafted using the essence of long-forgotten skeletons."); item8.Description.Portuguese_Brazilian("Capa produzida usando a essência de esqueletos há muito esquecidos."); item8.Crafting.Add("RD_necromancer_table", 1); item8.RequiredItems.Add("TrollHide", 2); item8.RequiredItems.Add("BoneFragments", 4); item8.RequiredItems.Add("Bronze", 2); item8.RequiredUpgradeItems.Add("TrollHide", 1); item8.RequiredUpgradeItems.Add("BoneFragments", 2); item8.RequiredUpgradeItems.Add("Bronze", 1); MaterialReplacer.RegisterGameObjectForShaderSwap(item8.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item9 = new Item("rd_armor", "RD_inv_helmet_swamp"); item9.Name.English("Sanguine Helm"); item9.Name.Portuguese_Brazilian("Elmo Sanguíneo"); item9.Description.English("Produced using life energy from the entrails of the undead."); item9.Description.Portuguese_Brazilian("Produzido usando energia vital das entranhas de mortos vivos."); item9.Crafting.Add("RD_necromancer_table", 2); item9.RequiredItems.Add("Iron", 10); item9.RequiredItems.Add("ElderBark", 10); item9.RequiredItems.Add("Entrails", 6); item9.RequiredUpgradeItems.Add("Iron", 2); item9.RequiredUpgradeItems.Add("ElderBark", 6); item9.RequiredUpgradeItems.Add("Entrails", 3); MaterialReplacer.RegisterGameObjectForShaderSwap(item9.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item10 = new Item("rd_armor", "RD_inv_chest_swamp"); item10.Name.English("Sanguine Chest"); item10.Name.Portuguese_Brazilian("Peitoral Sanguíneo"); item10.Description.English("Produced using life energy from the entrails of the undead."); item10.Description.Portuguese_Brazilian("Produzido usando energia vital das entranhas de mortos vivos."); item10.Crafting.Add("RD_necromancer_table", 2); item10.RequiredItems.Add("Iron", 12); item10.RequiredItems.Add("ElderBark", 8); item10.RequiredItems.Add("Entrails", 8); item10.RequiredUpgradeItems.Add("Iron", 3); item10.RequiredUpgradeItems.Add("ElderBark", 4); item10.RequiredUpgradeItems.Add("Entrails", 4); MaterialReplacer.RegisterGameObjectForShaderSwap(item10.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item11 = new Item("rd_armor", "RD_inv_legs_swamp"); item11.Name.English("Sanguine Legs"); item11.Name.Portuguese_Brazilian("Calça Sanguínea"); item11.Description.English("Produced using life energy from the entrails of the undead."); item11.Description.Portuguese_Brazilian("Produzido usando energia vital das entranhas de mortos vivos."); item11.Crafting.Add("RD_necromancer_table", 2); item11.RequiredItems.Add("Iron", 12); item11.RequiredItems.Add("ElderBark", 8); item11.RequiredItems.Add("Entrails", 8); item11.RequiredUpgradeItems.Add("Iron", 3); item11.RequiredUpgradeItems.Add("ElderBark", 4); item11.RequiredUpgradeItems.Add("Entrails", 4); MaterialReplacer.RegisterGameObjectForShaderSwap(item11.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item12 = new Item("rd_armor", "RD_inv_cape_swamp"); item12.Name.English("Sanguine Cape"); item12.Name.Portuguese_Brazilian("Capa Sanguínea"); item12.Description.English("Produced using life energy from the entrails of the undead"); item12.Description.Portuguese_Brazilian("Produzido usando energia vital das entranhas de mortos vivos."); item12.Crafting.Add("RD_necromancer_table", 2); item12.RequiredItems.Add("ElderBark", 4); item12.RequiredItems.Add("Entrails", 6); item12.RequiredUpgradeItems.Add("ElderBark", 2); item12.RequiredUpgradeItems.Add("Entrails", 2); MaterialReplacer.RegisterGameObjectForShaderSwap(item12.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item13 = new Item("rd_armor", "RD_inv_helmet_mountain"); item13.Name.English("Pale Helmet"); item13.Name.Portuguese_Brazilian("Elmo Pálido"); item13.Description.English("Helmet made with materials from the cold mountains."); item13.Description.Portuguese_Brazilian("Elmo produzido com materiais das montanhas frias."); item13.Crafting.Add("RD_necromancer_table", 2); item13.RequiredItems.Add("WolfFang", 3); item13.RequiredItems.Add("WolfPelt", 10); item13.RequiredItems.Add("FreezeGland", 6); item13.RequiredItems.Add("TrollHide", 6); item13.RequiredUpgradeItems.Add("WolfPelt", 6); item13.RequiredUpgradeItems.Add("FreezeGland", 2); item13.RequiredUpgradeItems.Add("TrollHide", 4); MaterialReplacer.RegisterGameObjectForShaderSwap(item13.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item14 = new Item("rd_armor", "RD_inv_chest_mountain"); item14.Name.English("Pale Chest"); item14.Name.Portuguese_Brazilian("Peitoral Pálido"); item14.Description.English("Chest made with materials from the cold mountains."); item14.Description.Portuguese_Brazilian("Peitoral produzido com materiais das montanhas frias."); item14.Crafting.Add("RD_necromancer_table", 2); item14.RequiredItems.Add("WolfClaw", 3); item14.RequiredItems.Add("WolfPelt", 14); item14.RequiredItems.Add("Silver", 18); item14.RequiredItems.Add("DeerHide", 12); item14.RequiredUpgradeItems.Add("WolfPelt", 6); item14.RequiredUpgradeItems.Add("Silver", 8); item14.RequiredUpgradeItems.Add("DeerHide", 6); MaterialReplacer.RegisterGameObjectForShaderSwap(item14.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item15 = new Item("rd_armor", "RD_inv_legs_mountain"); item15.Name.English("Pale Legs"); item15.Name.Portuguese_Brazilian("Calça Pálida"); item15.Description.English("Legs made with materials from the cold mountains."); item15.Description.Portuguese_Brazilian("Calça produzida com materiais das montanhas frias."); item15.Crafting.Add("RD_necromancer_table", 2); item15.RequiredItems.Add("WolfClaw", 3); item15.RequiredItems.Add("WolfPelt", 12); item15.RequiredItems.Add("Silver", 24); item15.RequiredItems.Add("DeerHide", 16); item15.RequiredUpgradeItems.Add("WolfPelt", 6); item15.RequiredUpgradeItems.Add("Silver", 12); item15.RequiredUpgradeItems.Add("DeerHide", 8); MaterialReplacer.RegisterGameObjectForShaderSwap(item15.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item16 = new Item("rd_armor", "RD_inv_cape_mountain"); item16.Name.English("Pale Cape"); item16.Name.Portuguese_Brazilian("Capa Pálida"); item16.Description.English("Cape made with materials from the cold mountains."); item16.Description.Portuguese_Brazilian("Capa produzida com materiais das montanhas frias."); item16.Crafting.Add("RD_necromancer_table", 2); item16.RequiredItems.Add("WolfPelt", 12); item16.RequiredItems.Add("Silver", 6); item16.RequiredItems.Add("FreezeGland", 6); item16.RequiredUpgradeItems.Add("WolfPelt", 6); item16.RequiredUpgradeItems.Add("Silver", 4); item16.RequiredUpgradeItems.Add("FreezeGland", 2); MaterialReplacer.RegisterGameObjectForShaderSwap(item16.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item17 = new Item("rd_armor", "RD_inv_helmet_plains"); item17.Name.English("Decrepit Helmet"); item17.Name.Portuguese_Brazilian("Elmo Decrepto"); item17.Description.English("Helmet imbued with decay and the dark aura of ancient rituals."); item17.Description.Portuguese_Brazilian("Elmo impregnado pela podridão e pela aura sombria de antigos rituais."); item17.Crafting.Add("RD_necromancer_table_02", 1); item17.RequiredItems.Add("BlackMetal", 16); item17.RequiredItems.Add("LoxPelt", 8); item17.RequiredItems.Add("LinenThread", 6); item17.RequiredItems.Add("JuteRed", 4); item17.RequiredUpgradeItems.Add("BlackMetal", 8); item17.RequiredUpgradeItems.Add("LoxPelt", 4); item17.RequiredUpgradeItems.Add("LinenThread", 3); item17.RequiredUpgradeItems.Add("JuteRed", 2); MaterialReplacer.RegisterGameObjectForShaderSwap(item17.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item18 = new Item("rd_armor", "RD_inv_chest_plains"); item18.Name.English("Decrepit Chest"); item18.Name.Portuguese_Brazilian("Peitoral Decrepto"); item18.Description.English("Chest imbued with decay and the dark aura of ancient rituals."); item18.Description.Portuguese_Brazilian("Peitoral impregnado pela podridão e pela aura sombria de antigos rituais."); item18.Crafting.Add("RD_necromancer_table_02", 1); item18.RequiredItems.Add("BlackMetal", 24); item18.RequiredItems.Add("LoxPelt", 12); item18.RequiredItems.Add("LinenThread", 12); item18.RequiredItems.Add("JuteRed", 4); item18.RequiredUpgradeItems.Add("BlackMetal", 12); item18.RequiredUpgradeItems.Add("LoxPelt", 6); item18.RequiredUpgradeItems.Add("LinenThread", 6); item18.RequiredUpgradeItems.Add("JuteRed", 2); MaterialReplacer.RegisterGameObjectForShaderSwap(item18.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item19 = new Item("rd_armor", "RD_inv_legs_plains"); item19.Name.English("Decrepit Legs"); item19.Name.Portuguese_Brazilian("Calça Decrepta"); item19.Description.English("Legs imbued with decay and the dark aura of ancient rituals."); item19.Description.Portuguese_Brazilian("Calça impregnada pela podridão e pela aura sombria de antigos rituais."); item19.Crafting.Add("RD_necromancer_table_02", 1); item19.RequiredItems.Add("BlackMetal", 24); item19.RequiredItems.Add("LoxPelt", 12); item19.RequiredItems.Add("LinenThread", 12); item19.RequiredItems.Add("JuteRed", 4); item19.RequiredUpgradeItems.Add("BlackMetal", 12); item19.RequiredUpgradeItems.Add("LoxPelt", 6); item19.RequiredUpgradeItems.Add("LinenThread", 6); item19.RequiredUpgradeItems.Add("JuteRed", 2); MaterialReplacer.RegisterGameObjectForShaderSwap(item19.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item20 = new Item("rd_armor", "RD_inv_cape_plains"); item20.Name.English("Decrepit Cape"); item20.Name.Portuguese_Brazilian("Capa Decrepta"); item20.Description.English("Cape imbued with decay and the dark aura of ancient rituals."); item20.Description.Portuguese_Brazilian("Capa impregnada pela podridão e pela aura sombria de antigos rituais."); item20.Crafting.Add("RD_necromancer_table_02", 1); item20.RequiredItems.Add("BlackMetal", 8); item20.RequiredItems.Add("LoxPelt", 6); item20.RequiredItems.Add("LinenThread", 8); item20.RequiredItems.Add("JuteRed", 2); item20.RequiredUpgradeItems.Add("BlackMetal", 4); item20.RequiredUpgradeItems.Add("LoxPelt", 2); item20.RequiredUpgradeItems.Add("LinenThread", 4); item20.RequiredUpgradeItems.Add("JuteRed", 1); MaterialReplacer.RegisterGameObjectForShaderSwap(item20.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item21 = new Item("rd_armor", "RD_inv_helmet_mistlands"); item21.Name.English("Helm of Mist"); item21.Name.Portuguese_Brazilian("Elmo da Névoa"); item21.Description.English("Helmet enveloped in eternal mists, protecting its bearer beneath the enigmatic veil of the shrouded lands."); item21.Description.Portuguese_Brazilian("Elmo envolto em névoas eternas, protegendo o portador sob o véu enigmático das terras enevoadas."); item21.Crafting.Add("RD_necromancer_table_02", 1); item21.RequiredItems.Add("LinenThread", 16); item21.RequiredItems.Add("ScaleHide", 12); item21.RequiredItems.Add("Carapace", 8); item21.RequiredItems.Add("Eitr", 14); item21.RequiredUpgradeItems.Add("ScaleHide", 6); item21.RequiredUpgradeItems.Add("Carapace", 4); item21.RequiredUpgradeItems.Add("Eitr", 8); MaterialReplacer.RegisterGameObjectForShaderSwap(item21.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item22 = new Item("rd_armor", "RD_inv_chest_mistlands"); item22.Name.English("Chest of Mist"); item22.Name.Portuguese_Brazilian("Peitoral da Névoa"); item22.Description.English("Chest enveloped in eternal mists, protecting its bearer beneath the enigmatic veil of the shrouded lands."); item22.Description.Portuguese_Brazilian("Peitoral envolto em névoas eternas, protegendo o portador sob o véu enigmático das terras enevoadas."); item22.Crafting.Add("RD_necromancer_table_02", 1); item22.RequiredItems.Add("Mandible", 8); item22.RequiredItems.Add("ScaleHide", 18); item22.RequiredItems.Add("Carapace", 16); item22.RequiredItems.Add("Eitr", 22); item22.RequiredUpgradeItems.Add("ScaleHide", 9); item22.RequiredUpgradeItems.Add("Carapace", 8); item22.RequiredUpgradeItems.Add("Eitr", 11); MaterialReplacer.RegisterGameObjectForShaderSwap(item22.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item23 = new Item("rd_armor", "RD_inv_legs_mistlands"); item23.Name.English("Legs of Mist"); item23.Name.Portuguese_Brazilian("Calça da Névoa"); item23.Description.English("Legs enveloped in eternal mists, protecting its bearer beneath the enigmatic veil of the shrouded lands."); item23.Description.Portuguese_Brazilian("Calça envolta em névoas eternas, protegendo o portador sob o véu enigmático das terras enevoadas."); item23.Crafting.Add("RD_necromancer_table_02", 1); item23.RequiredItems.Add("Mandible", 8); item23.RequiredItems.Add("ScaleHide", 18); item23.RequiredItems.Add("Carapace", 16); item23.RequiredItems.Add("Eitr", 22); item23.RequiredUpgradeItems.Add("ScaleHide", 9); item23.RequiredUpgradeItems.Add("Carapace", 8); item23.RequiredUpgradeItems.Add("Eitr", 11); MaterialReplacer.RegisterGameObjectForShaderSwap(item23.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item24 = new Item("rd_armor", "RD_inv_cape_mistlands"); item24.Name.English("Cape of Mist"); item24.Name.Portuguese_Brazilian("Capa da Névoa"); item24.Description.English("Cape enveloped in eternal mists, protecting its bearer beneath the enigmatic veil of the shrouded lands."); item24.Description.Portuguese_Brazilian("Capa envolta em névoas eternas, protegendo o portador sob o véu enigmático das terras enevoadas."); item24.Crafting.Add("RD_necromancer_table_02", 1); item24.RequiredItems.Add("Mandible", 2); item24.RequiredItems.Add("ScaleHide", 8); item24.RequiredItems.Add("Carapace", 8); item24.RequiredItems.Add("Eitr", 12); item24.RequiredUpgradeItems.Add("ScaleHide", 4); item24.RequiredUpgradeItems.Add("Carapace", 4); item24.RequiredUpgradeItems.Add("Eitr", 6); MaterialReplacer.RegisterGameObjectForShaderSwap(item24.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item25 = new Item("rd_armor", "RD_inv_helmet_ashlands"); item25.Name.English("Profane Flame Helm"); item25.Name.Portuguese_Brazilian("Elmo Chama Profana"); item25.Description.English("Helmet consumed by profane flames, burning with the fury of forbidden rituals."); item25.Description.Portuguese_Brazilian("Elmo tomado por chamas profanas, ardendo com a fúria de rituais proibidos."); item25.Crafting.Add("RD_necromancer_table_02", 1); item25.RequiredItems.Add("GemstoneRed", 1); item25.RequiredItems.Add("AskHide", 8); item25.RequiredItems.Add("CelestialFeather", 4); item25.RequiredItems.Add("FlametalNew", 8); item25.RequiredUpgradeItems.Add("AskHide", 4); item25.RequiredUpgradeItems.Add("CelestialFeather", 2); item25.RequiredUpgradeItems.Add("FlametalNew", 4); MaterialReplacer.RegisterGameObjectForShaderSwap(item25.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item26 = new Item("rd_armor", "RD_inv_chest_ashlands"); item26.Name.English("Profane Flame Cloak"); item26.Name.Portuguese_Brazilian("Manto Chama Profana"); item26.Description.English("Cloak consumed by profane flames, burning with the fury of forbidden rituals."); item26.Description.Portuguese_Brazilian("Manto tomado por chamas profanas, ardendo com a fúria de rituais proibidos."); item26.Crafting.Add("RD_necromancer_table_02", 1); item26.RequiredItems.Add("GemstoneRed", 1); item26.RequiredItems.Add("AskHide", 28); item26.RequiredItems.Add("CharredBone", 16); item26.RequiredItems.Add("FlametalNew", 26); item26.RequiredUpgradeItems.Add("AskHide", 14); item26.RequiredUpgradeItems.Add("CharredBone", 8); item26.RequiredUpgradeItems.Add("FlametalNew", 14); MaterialReplacer.RegisterGameObjectForShaderSwap(item26.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item27 = new Item("rd_armor", "RD_inv_legs_ashlands"); item27.Name.English("Profane Flame Legs"); item27.Name.Portuguese_Brazilian("Calça Chama Profana"); item27.Description.English("Legs consumed by profane flames, burning with the fury of forbidden rituals."); item27.Description.Portuguese_Brazilian("Calça tomada por chamas profanas, ardendo com a fúria de rituais proibidos."); item27.Crafting.Add("RD_necromancer_table_02", 1); item27.RequiredItems.Add("GemstoneRed", 1); item27.RequiredItems.Add("AskHide", 28); item27.RequiredItems.Add("CharredBone", 16); item27.RequiredItems.Add("FlametalNew", 26); item27.RequiredUpgradeItems.Add("AskHide", 14); item27.RequiredUpgradeItems.Add("CharredBone", 8); item27.RequiredUpgradeItems.Add("FlametalNew", 14); MaterialReplacer.RegisterGameObjectForShaderSwap(item27.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item28 = new Item("rd_armor", "RD_inv_cape_ashlands"); item28.Name.English("Profane Flame Cape"); item28.Name.Portuguese_Brazilian("Capa Chama Profana"); item28.Description.English("Cape consumed by profane flames, burning with the fury of forbidden rituals."); item28.Description.Portuguese_Brazilian("Capa tomada por chamas profanas, ardendo com a fúria de rituais proibidos."); item28.Crafting.Add("RD_necromancer_table_02", 1); item28.RequiredItems.Add("GemstoneRed", 1); item28.RequiredItems.Add("AskHide", 6); item28.RequiredItems.Add("CelestialFeather", 6); item28.RequiredItems.Add("FlametalNew", 12); item28.RequiredUpgradeItems.Add("AskHide", 3); item28.RequiredUpgradeItems.Add("CelestialFeather", 4); item28.RequiredUpgradeItems.Add("FlametalNew", 6); MaterialReplacer.RegisterGameObjectForShaderSwap(item28.Prefab, MaterialReplacer.ShaderType.UseUnityShader); } } internal static class Registrations_Bench { public static void RegisterBench() { BuildPiece buildPiece = new BuildPiece("rd_armor", "RD_necromancer_table"); buildPiece.Crafting.Set(PieceManager.CraftingTable.Workbench); buildPiece.Category.Set("Necromancer"); buildPiece.SpecialProperties.AdminOnly = false; buildPiece.Name.Portuguese_Brazilian("Mesa de Necromancia"); buildPiece.Name.English("Necromancy Table"); buildPiece.Description.Portuguese_Brazilian("Mesa de Necromancia."); buildPiece.Description.English("Necromancy Table."); buildPiece.RequiredItems.Add("Resin", 10, recover: true); buildPiece.RequiredItems.Add("Wood", 20, recover: true); buildPiece.RequiredItems.Add("Coal", 20, recover: true); buildPiece.RequiredItems.Add("DeerHide", 10, recover: true); MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece.Prefab, MaterialReplacer.ShaderType.UseUnityShader); BuildPiece buildPiece2 = new BuildPiece("rd_armor", "RD_necromancer_table_ext_01"); buildPiece2.Crafting.Set(PieceManager.CraftingTable.Workbench); buildPiece2.Category.Set("Necromancer"); buildPiece2.SpecialProperties.AdminOnly = false; buildPiece2.Name.Portuguese_Brazilian("Livro Amaldiçoado"); buildPiece2.Name.English("Cursed Book"); buildPiece2.Description.Portuguese_Brazilian("Melhoria para a mesa de Necromancia."); buildPiece2.Description.English("Improvement to the Necromancy table."); buildPiece2.RequiredItems.Add("GreydwarfEye", 10, recover: true); buildPiece2.RequiredItems.Add("Wood", 10, recover: true); buildPiece2.RequiredItems.Add("Coal", 5, recover: true); buildPiece2.RequiredItems.Add("DeerHide", 5, recover: true); MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece2.Prefab, MaterialReplacer.ShaderType.UseUnityShader); BuildPiece buildPiece3 = new BuildPiece("rd_armor", "RD_necromancer_table_ext_02"); buildPiece3.Crafting.Set(PieceManager.CraftingTable.Workbench); buildPiece3.Category.Set("Necromancer"); buildPiece3.SpecialProperties.AdminOnly = false; buildPiece3.Name.Portuguese_Brazilian("Essência de Morte"); buildPiece3.Name.English("Essence of Death"); buildPiece3.Description.Portuguese_Brazilian("Melhoria para a mesa de Necromancia."); buildPiece3.Description.English("Improvement to the Necromancy table."); buildPiece3.RequiredItems.Add("Bronze", 10, recover: true); buildPiece3.RequiredItems.Add("FineWood", 10, recover: true); buildPiece3.RequiredItems.Add("Coal", 5, recover: true); buildPiece3.RequiredItems.Add("Feathers", 5, recover: true); MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece3.Prefab, MaterialReplacer.ShaderType.UseUnityShader); BuildPiece buildPiece4 = new BuildPiece("rd_armor", "RD_necromancer_table_ext_03"); buildPiece4.Crafting.Set(PieceManager.CraftingTable.Workbench); buildPiece4.Category.Set("Necromancer"); buildPiece4.SpecialProperties.AdminOnly = false; buildPiece4.Name.Portuguese_Brazilian("Pentagrama de invocação"); buildPiece4.Name.English("Invoking Pentagram"); buildPiece4.Description.Portuguese_Brazilian("Melhoria para a mesa de Necromancia."); buildPiece4.Description.English("Improvement to the Necromancy table."); buildPiece4.RequiredItems.Add("Iron", 10, recover: true); buildPiece4.RequiredItems.Add("ElderBark", 15, recover: true); buildPiece4.RequiredItems.Add("Coal", 10, recover: true); buildPiece4.RequiredItems.Add("Entrails", 10, recover: true); MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece4.Prefab, MaterialReplacer.ShaderType.UseUnityShader); BuildPiece buildPiece5 = new BuildPiece("rd_armor", "RD_necromancer_table_ext_04"); buildPiece5.Crafting.Set(PieceManager.CraftingTable.Workbench); buildPiece5.Category.Set("Necromancer"); buildPiece5.SpecialProperties.AdminOnly = false; buildPiece5.Name.Portuguese_Brazilian("Caixão"); buildPiece5.Name.English("Coffin"); buildPiece5.Description.Portuguese_Brazilian("Melhoria para a mesa de Necromancia."); buildPiece5.Description.English("Improvement to the Necromancy table."); buildPiece5.RequiredItems.Add("Silver", 10, recover: true); buildPiece5.RequiredItems.Add("FineWood", 10, recover: true); buildPiece5.RequiredItems.Add("FreezeGland", 6, recover: true); buildPiece5.RequiredItems.Add("Obsidian", 10, recover: true); MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece5.Prefab, MaterialReplacer.ShaderType.UseUnityShader); BuildPiece buildPiece6 = new BuildPiece("rd_armor", "RD_necromancer_table_02"); buildPiece6.Crafting.Set(PieceManager.CraftingTable.Workbench); buildPiece6.Category.Set("Necromancer"); buildPiece6.SpecialProperties.AdminOnly = false; buildPiece6.Name.Portuguese_Brazilian("Mesa de Necromancia Avançada"); buildPiece6.Name.English("Mesa de Necromancia Avançada"); buildPiece6.Description.Portuguese_Brazilian("Mesa de Necromancia Avançada."); buildPiece6.Description.English("Mesa de Necromancia Avançada."); buildPiece6.RequiredItems.Add("BlackMetal", 20, recover: true); buildPiece6.RequiredItems.Add("FineWood", 20, recover: true); buildPiece6.RequiredItems.Add("GoblinTotem", 5, recover: true); buildPiece6.RequiredItems.Add("LinenThread", 20, recover: true); MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece6.Prefab, MaterialReplacer.ShaderType.UseUnityShader); BuildPiece buildPiece7 = new BuildPiece("rd_armor", "RD_necromancer_table_02_ext_01"); buildPiece7.Crafting.Set(PieceManager.CraftingTable.Workbench); buildPiece7.Category.Set("Necromancer"); buildPiece7.SpecialProperties.AdminOnly = false; buildPiece7.Name.Portuguese_Brazilian("Caldeirão"); buildPiece7.Name.English("Cauldron"); buildPiece7.Description.Portuguese_Brazilian("Melhoria para a mesa de Necromancia Avançada."); buildPiece7.Description.English("Improvement to the Necromancy table Advanced."); buildPiece7.RequiredItems.Add("BlackMetal", 10, recover: true); buildPiece7.RequiredItems.Add("FineWood", 10, recover: true); buildPiece7.RequiredItems.Add("GoblinTotem", 2, recover: true); buildPiece7.RequiredItems.Add("LinenThread", 10, recover: true); MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece7.Prefab, MaterialReplacer.ShaderType.UseUnityShader); BuildPiece buildPiece8 = new BuildPiece("rd_armor", "RD_necromancer_table_02_ext_02"); buildPiece8.Crafting.Set(PieceManager.CraftingTable.Workbench); buildPiece8.Category.Set("Necromancer"); buildPiece8.SpecialProperties.AdminOnly = false; buildPiece8.Name.Portuguese_Brazilian("Altar de Sangue"); buildPiece8.Name.English("Blood Altar"); buildPiece8.Description.Portuguese_Brazilian("Melhoria para a mesa de Necromancia Avançada."); buildPiece8.Description.English("Improvement to the Necromancy table Advanced."); buildPiece8.RequiredItems.Add("Eitr", 10, recover: true); buildPiece8.RequiredItems.Add("FineWood", 10, recover: true); buildPiece8.RequiredItems.Add("BlackCore", 2, recover: true); buildPiece8.RequiredItems.Add("ScaleHide", 6, recover: true); MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece8.Prefab, MaterialReplacer.ShaderType.UseUnityShader); BuildPiece buildPiece9 = new BuildPiece("rd_armor", "RD_necromancer_table_02_ext_03"); buildPiece9.Crafting.Set(PieceManager.CraftingTable.Workbench); buildPiece9.Category.Set("Necromancer"); buildPiece9.SpecialProperties.AdminOnly = false; buildPiece9.Name.Portuguese_Brazilian("Mesa de Sacrifício"); buildPiece9.Name.English("Table of Sacrifice"); buildPiece9.Description.Portuguese_Brazilian("Melhoria para a mesa de Necromancia Avançada."); buildPiece9.Description.English("Improvement to the Necromancy table Advanced."); buildPiece9.RequiredItems.Add("Eitr", 8, recover: true); buildPiece9.RequiredItems.Add("Blackwood", 10, recover: true); buildPiece9.RequiredItems.Add("FlametalNew", 10, recover: true); buildPiece9.RequiredItems.Add("CelestialFeather", 8, recover: true); MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece9.Prefab, MaterialReplacer.ShaderType.UseUnityShader); } } internal static class Registrations_Effects { public static void RegisterEffects() { GameObject val = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "fx_backstab_rd_armor"); GameObject val2 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "fx_crit_rd_armor"); GameObject val3 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "fx_footstep_climb_rd_armor"); GameObject val4 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "fx_footstep_jog_rd_armor"); GameObject val5 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "fx_footstep_mud_jog_rd_armor"); GameObject val6 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "fx_footstep_mud_run_rd_armor"); GameObject val7 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "fx_footstep_snow_jog_rd_armor"); GameObject val8 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "fx_footstep_snow_run_rd_armor"); GameObject val9 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "fx_footstep_water_rd_armor"); GameObject val10 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "fx_skeleton_pet_rd_armor"); GameObject val11 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "fx_block_camshake_rd_armor"); GameObject val12 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "fx_hit_camshake_rd_armor"); GameObject val13 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "fx_swing_camshake_rd_armor"); GameObject val14 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "fx_footstep_run_rd_armor"); GameObject val15 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "fx_charred_death_rd_armor"); GameObject val16 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "fx_fireskeleton_nova_rd_armor"); GameObject val17 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "fx_charred_hit_rd_armor"); GameObject val18 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "fx_summon_spawn_efeito_mao_rd_armor"); GameObject val19 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "fx_summon_spawn_efeito_solo_rd_armor"); GameObject val20 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_footstep_sneak_rd_armor"); GameObject val21 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_footstep_swim_rd_armor"); GameObject val22 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_skeleton_hit_rd_armor"); GameObject val23 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_metal_blocked_rd_armor"); GameObject val24 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_sword_hit_rd_armor"); GameObject val25 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_sword_swing_rd_armor"); GameObject val26 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_wood_blocked_rd_armor"); GameObject val27 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_skeleton_big_death_rd_armor"); GameObject val28 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_club_swing_rd_armor"); GameObject val29 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_axe_swing_rd_armor"); GameObject val30 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_skeleton_attack_rd_armor"); GameObject val31 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_skeleton_mace_hit_rd_armor"); GameObject val32 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_skeleton_alerted_rd_armor"); GameObject val33 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_skeleton_idle_rd_armor"); GameObject val34 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_draugr_death_rd_armor"); GameObject val35 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_arrow_hit_rd_armor"); GameObject val36 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_draugr_hit_rd_armor"); GameObject val37 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_bow_draw_rd_armor"); GameObject val38 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_bow_fire_rd_armor"); GameObject val39 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_draugr_alerted_rd_armor"); GameObject val40 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_draugr_idle_rd_armor"); GameObject val41 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_firestaff_launch_rd_armor"); GameObject val42 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_bomb_throw_rd_armor"); GameObject val43 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_charred_death_rd_armor"); GameObject val44 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_charred_alert_rd_armor"); GameObject val45 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_charred_idle_rd_armor"); GameObject val46 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_charred_archer_bow_draw_rd_armor"); GameObject val47 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_charred_archer_bow_release_rd_armor"); GameObject val48 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_charred_archer_volley_draw_rd_armor"); GameObject val49 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_charred_archer_volley_release_rd_armor"); GameObject val50 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_charred_hurt_rd_armor"); GameObject val51 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_charred_melee_attack_lift_rd_armor"); GameObject val52 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_charred_melee_attack_swing_rd_armor"); GameObject val53 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_charred_melee_attack_stab_rd_armor"); GameObject val54 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_charred_footstep_rd_armor"); GameObject val55 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_wood_destroyed_rd_armor"); GameObject val56 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_build_hammer_wood_rd_armor"); GameObject val57 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_gui_craftitem_workbench_rd_armor"); GameObject val58 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_gui_craftitem_workbench_end_rd_armor"); GameObject val59 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_gui_repairitem_workbench_rd_armor"); GameObject val60 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "vfx_creature_soothed_rd_armor"); GameObject val61 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "vfx_skeleton_death_rd_armor"); GameObject val62 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "vfx_skeleton_hit_rd_armor"); GameObject val63 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "vfx_water_surface_rd_armor"); GameObject val64 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "vfx_blocked_rd_armor"); GameObject val65 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "vfx_HitSparks_rd_armor"); GameObject val66 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "vfx_skeleton_big_death_rd_armor"); GameObject val67 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "vfx_clubhit_rd_armor"); GameObject val68 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "vfx_skeleton_mace_hit_rd_armor"); GameObject val69 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "vfx_arrowhit_rd_armor"); GameObject val70 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "vfx_corpse_destruction_small_rd_armor"); GameObject val71 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "vfx_skeleton_fire_death_rd_armor"); GameObject val72 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "vfx_draugr_hit_rd_armor"); GameObject val73 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "vfx_draugr_death_rd_armor"); GameObject val74 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "vfx_SawDust_rd_armor"); GameObject val75 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "vfx_Place_workbench_rd_armor"); GameObject val76 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "vfx_ExtensionConnection_rd_armor"); GameObject val77 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_charred_idle_rd_armor_male_ptbr"); GameObject val78 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_charred_idle_rd_armor_female_ptbr"); GameObject val79 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_plains_idle_rd_armor_male_ptbr"); GameObject val80 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "fx_inv_projectile_explosion_bflorest"); GameObject val81 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "fx_inv_projectile_explosion_pantano"); GameObject val82 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "fx_inv_projectile_explosion_meadows"); GameObject val83 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "fx_inv_projectile_hit_mountain"); GameObject val84 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "fx_inv_projectile_explosion_mistlands"); GameObject val85 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "fx_inv_launch_mountain_launch"); GameObject val86 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "fx_inv_launch_plains_launch"); GameObject val87 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "fx_inv_projectile_explosion_ashlands"); GameObject val88 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_inv_launch_meadows"); GameObject val89 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_inv_launch_bflorest"); GameObject val90 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_inv_launch_swamp"); GameObject val91 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_inv_launch_mountain_start"); GameObject val92 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_inv_launch_plains"); GameObject val93 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_inv_launch_mistlands"); GameObject val94 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_inv_launch_ashlands"); GameObject val95 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "fx_FeastSmall_rd_armor"); GameObject val96 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_unarmed_hit_rd_armor"); GameObject val97 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "vfx_Place_wood_pole_rd_armor"); GameObject val98 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "fx_Eat_rd_armor"); GameObject val99 = ItemManager.PrefabManager.RegisterPrefab("rd_armor", "sfx_eat_rd_armor"); } } internal static class Registrations_Food { public static void RegisterFoods() { Item item = new Item("rd_armor", "RD_meat_patty"); item.Name.English("Hamburger"); item.Name.Portuguese_Brazilian("Hambúrguer"); item.Description.English("A succulent pressed meat patty. Simple, rustic, and capable of restoring your strength after a long day in the wild lands."); item.Description.Portuguese_Brazilian("Um suculento disco de carne prensada. Simples, rústico e capaz de restaurar as forças após um longo dia nas terras selvagens."); item.Crafting.Add(ItemManager.CraftingTable.Inventory, 1); item.RequiredItems.Add("RawMeat", 2); item.RequiredItems.Add("Dandelion", 4); MaterialReplacer.RegisterGameObjectForShaderSwap(item.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item2 = new Item("rd_armor", "RD_fruit_mead"); item2.Name.English("Fruit Mead"); item2.Name.Portuguese_Brazilian("Hidromel de Frutas"); item2.Description.English("A sweet mead fermented with wild berries, carrying a fresh aroma and vibrant flavor. It revitalizes the spirit and warms the body on cold nights."); item2.Description.Portuguese_Brazilian("Um hidromel doce fermentado com frutas silvestres, trazendo aroma fresco e sabor vibrante. Revigora o espírito e aquece o corpo em noites frias."); item2.Crafting.Add(ItemManager.CraftingTable.Inventory, 1); item2.RequiredItems.Add("Blueberries", 4); item2.RequiredItems.Add("Raspberry", 4); item2.RequiredItems.Add("Mushroom", 4); MaterialReplacer.RegisterGameObjectForShaderSwap(item2.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item3 = new Item("rd_armor", "RD_roast_meat"); item3.Name.English("Roasted Meat"); item3.Name.Portuguese_Brazilian("Carne Assada"); item3.Description.English("Meat slowly browned over the fire, with a robust aroma and bold flavor, perfect for restoring vigor after the hunt."); item3.Description.Portuguese_Brazilian("Carne lentamente dourada sobre o fogo, com aroma robusto e sabor forte, perfeita para recuperar o vigor após a caçada."); item3.Crafting.Add(ItemManager.CraftingTable.Cauldron, 1); item3.RequiredItems.Add("DeerMeat", 2); item3.RequiredItems.Add("Dandelion", 4); item3.RequiredItems.Add("Thistle", 4); MaterialReplacer.RegisterGameObjectForShaderSwap(item3.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item4 = new Item("rd_armor", "RD_blood_sausage"); item4.Name.English("Blood Sausage"); item4.Name.Portuguese_Brazilian("Linguiça de Sangue"); item4.Description.English("A thick sausage made from seasoned, smoked blood, with an intense flavor and enough nourishment to face the cold nights of the wild lands."); item4.Description.Portuguese_Brazilian("Uma linguiça espessa feita com sangue temperado e defumado, de sabor intenso e nutritiva o suficiente para encarar as noites frias das terras selvagens."); item4.Crafting.Add(ItemManager.CraftingTable.Cauldron, 1); item4.RequiredItems.Add("Entrails", 4); item4.RequiredItems.Add("RawMeat", 1); item4.RequiredItems.Add("Bloodbag", 2); MaterialReplacer.RegisterGameObjectForShaderSwap(item4.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item5 = new Item("rd_armor", "RD_meat_stew"); item5.Name.English("Meat Stew"); item5.Name.Portuguese_Brazilian("Ensopado de Carne"); item5.Description.English("A warm, hearty broth filled with tender pieces of slow-cooked meat. Comforting and robust, perfect for restoring energy during long journeys."); item5.Description.Portuguese_Brazilian("Um caldo quente e espesso, repleto de pedaços macios de carne cozida lentamente. Reconfortante e forte, ideal para recuperar energias em jornadas longas."); item5.Crafting.Add(ItemManager.CraftingTable.Cauldron, 1); item5.RequiredItems.Add("WolfMeat", 6); item5.RequiredItems.Add("Onion", 4); item5.RequiredItems.Add("Carrot", 4); item5.RequiredItems.Add("MushroomYellow", 2); MaterialReplacer.RegisterGameObjectForShaderSwap(item5.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item6 = new Item("rd_armor", "RD_meatball"); item6.Name.English("Meatballs in Red Sauce"); item6.Name.Portuguese_Brazilian("Almôndegas ao Molho Vermelho"); item6.Description.English("Seasoned meat balls simmered in a rich red sauce. Flavorful and hearty, they warm the body and restore strength after any battle."); item6.Description.Portuguese_Brazilian("Bolinhas de carne temperada cozidas em um rico molho avermelhado. Saborosas e fortes, aquecem o corpo e revigoram após qualquer batalha."); item6.Crafting.Add(ItemManager.CraftingTable.Cauldron, 1); item6.RequiredItems.Add("LoxMeat", 2); item6.RequiredItems.Add("BarleyFlour", 4); item6.RequiredItems.Add("Cloudberry", 2); item6.RequiredItems.Add("Raspberry", 2); MaterialReplacer.RegisterGameObjectForShaderSwap(item6.Prefab, MaterialReplacer.ShaderType.UseUnityShader); } } [<8040682d-5ba1-44b9-942a-594762a4e3fb>Nullable(0)] [<1a1066e8-20be-4301-a714-80275ef3424b>NullableContext(2)] internal static class Registrations_Mobs { private static ConfigEntry<float> Life_RD_inv_esqueleto_prado; private static ConfigEntry<float> Life_RD_inv_esqueleto_floresta_negra; private static ConfigEntry<float> Life_RD_inv_draugr_archer_pantano; private static ConfigEntry<float> Life_RD_inv_draugr_elite_montanha; private static ConfigEntry<float> Life_RD_inv_skeleton_Hildir_planicie; private static ConfigEntry<float> Life_RD_inv_charred_archer_mistlands; private static ConfigEntry<float> Life_RD_inv_charred_melee_ashlands; public static void RegisterMobs() { if (Life_RD_inv_esqueleto_prado == null) { Life_RD_inv_esqueleto_prado = ((BaseUnityPlugin)Vikings_SummonerPlugin.Instance).Config.Bind<float>("Summons.Lifetime", "RD_inv_esqueleto_prado", 60f, "Lifetime (seconds) for RD_inv_esqueleto_prado"); Life_RD_inv_esqueleto_floresta_negra = ((BaseUnityPlugin)Vikings_SummonerPlugin.Instance).Config.Bind<float>("Summons.Lifetime", "RD_inv_esqueleto_floresta_negra", 100f, "Lifetime (seconds) for RD_inv_esqueleto_floresta_negra"); Life_RD_inv_draugr_archer_pantano = ((BaseUnityPlugin)Vikings_SummonerPlugin.Instance).Config.Bind<float>("Summons.Lifetime", "RD_inv_draugr_archer_pantano", 140f, "Lifetime (seconds) for RD_inv_draugr_archer_pantano"); Life_RD_inv_draugr_elite_montanha = ((BaseUnityPlugin)Vikings_SummonerPlugin.Instance).Config.Bind<float>("Summons.Lifetime", "RD_inv_draugr_elite_montanha", 180f, "Lifetime (seconds) for RD_inv_draugr_elite_montanha"); Life_RD_inv_skeleton_Hildir_planicie = ((BaseUnityPlugin)Vikings_SummonerPlugin.Instance).Config.Bind<float>("Summons.Lifetime", "RD_inv_skeleton_Hildir_planicie", 220f, "Lifetime (seconds) for RD_inv_skeleton_Hildir_planicie"); Life_RD_inv_charred_archer_mistlands = ((BaseUnityPlugin)Vikings_SummonerPlugin.Instance).Config.Bind<float>("Summons.Lifetime", "RD_inv_charred_archer_mistlands", 260f, "Lifetime (seconds) for RD_inv_charred_archer_mistlands"); Life_RD_inv_charred_melee_ashlands = ((BaseUnityPlugin)Vikings_SummonerPlugin.Instance).Config.Bind<float>("Summons.Lifetime", "RD_inv_charred_melee_ashlands", 300f, "Lifetime (seconds) for RD_inv_charred_melee_ashlands"); if (Vikings_SummonerPlugin.ConfigSync != null) { Vikings_SummonerPlugin.ConfigSync.AddConfigEntry<float>(Life_RD_inv_esqueleto_prado).SynchronizedConfig = true; Vikings_SummonerPlugin.ConfigSync.AddConfigEntry<float>(Life_RD_inv_esqueleto_floresta_negra).SynchronizedConfig = true; Vikings_SummonerPlugin.ConfigSync.AddConfigEntry<float>(Life_RD_inv_draugr_archer_pantano).SynchronizedConfig = true; Vikings_SummonerPlugin.ConfigSync.AddConfigEntry<float>(Life_RD_inv_draugr_elite_montanha).SynchronizedConfig = true; Vikings_SummonerPlugin.ConfigSync.AddConfigEntry<float>(Life_RD_inv_skeleton_Hildir_planicie).SynchronizedConfig = true; Vikings_SummonerPlugin.ConfigSync.AddConfigEntry<float>(Life_RD_inv_charred_archer_mistlands).SynchronizedConfig = true; Vikings_SummonerPlugin.ConfigSync.AddConfigEntry<float>(Life_RD_inv_charred_melee_ashlands).SynchronizedConfig = true; } } Creature creature = new Creature("rd_armor", "RD_inv_esqueleto_prado") { ConfigurationEnabled = false, CanHaveStars = true, CanSpawn = false, CanBeTamed = false }; creature.Localize().Portuguese_Brazilian("Esqueleto").English("Skeleton"); GameObject prefab = creature.Prefab; if ((Object)(object)prefab != (Object)null) { CharacterTimedDestruction val = prefab.GetComponent<CharacterTimedDestruction>() ?? prefab.AddComponent<CharacterTimedDestruction>(); val.m_timeoutMax = (val.m_timeoutMin = Life_RD_inv_esqueleto_prado?.Value ?? 15f); val.m_triggerOnAwake = true; if (!Object.op_Implicit((Object)(object)prefab.GetComponent<VS_SummonLifetime>())) { prefab.AddComponent<VS_SummonLifetime>(); } } Creature creature2 = new Creature("rd_armor", "RD_inv_esqueleto_floresta_negra") { ConfigurationEnabled = false, CanHaveStars = true, CanSpawn = false, CanBeTamed = false }; creature2.Localize().Portuguese_Brazilian("Carcaça Rancorosa").English("Spiteful Carcass"); prefab = creature2.Prefab; if ((Object)(object)prefab != (Object)null) { CharacterTimedDestruction val2 = prefab.GetComponent<CharacterTimedDestruction>() ?? prefab.AddComponent<CharacterTimedDestruction>(); val2.m_timeoutMax = (val2.m_timeoutMin = Life_RD_inv_esqueleto_floresta_negra?.Value ?? 15f); val2.m_triggerOnAwake = true; if (!Object.op_Implicit((Object)(object)prefab.GetComponent<VS_SummonLifetime>())) { prefab.AddComponent<VS_SummonLifetime>(); } } Creature creature3 = new Creature("rd_armor", "RD_inv_draugr_archer_pantano") { ConfigurationEnabled = false, CanHaveStars = true, CanSpawn = false, CanBeTamed = false }; creature3.Localize().Portuguese_Brazilian("Arqueira Sangrenta").English("Bloody Archer"); prefab = creature3.Prefab; if ((Object)(object)prefab != (Object)null) { CharacterTimedDestruction val3 = prefab.GetComponent<CharacterTimedDestruction>() ?? prefab.AddComponent<CharacterTimedDestruction>(); val3.m_timeoutMax = (val3.m_timeoutMin = Life_RD_inv_draugr_archer_pantano?.Value ?? 15f); val3.m_triggerOnAwake = true; if (!Object.op_Implicit((Object)(object)prefab.GetComponent<VS_SummonLifetime>())) { prefab.AddComponent<VS_SummonLifetime>(); } } Creature creature4 = new Creature("rd_armor", "RD_inv_draugr_elite_montanha") { ConfigurationEnabled = false, CanHaveStars = true, CanSpawn = false, CanBeTamed = false }; creature4.Localize().Portuguese_Brazilian("Cadáver Congelado").English("Frozen Corpse"); prefab = creature4.Prefab; if ((Object)(object)prefab != (Object)null) { CharacterTimedDestruction val4 = prefab.GetComponent<CharacterTimedDestruction>() ?? prefab.AddComponent<CharacterTimedDestruction>(); val4.m_timeoutMax = (val4.m_timeoutMin = Life_RD_inv_draugr_elite_montanha?.Value ?? 15f); val4.m_triggerOnAwake = true; if (!Object.op_Implicit((Object)(object)prefab.GetComponent<VS_SummonLifetime>())) { prefab.AddComponent<VS_SummonLifetime>(); } } Creature creature5 = new Creature("rd_armor", "RD_inv_skeleton_Hildir_planicie") { ConfigurationEnabled = false, CanHaveStars = true, CanSpawn = false, CanBeTamed = false }; creature5.Localize().Portuguese_Brazilian("Esqueleto Ancestral").English("Ancestral Skeleton"); prefab = creature5.Prefab; if ((Object)(object)prefab != (Object)null) { CharacterTimedDestruction val5 = prefab.GetComponent<CharacterTimedDestruction>() ?? prefab.AddComponent<CharacterTimedDestruction>(); val5.m_timeoutMax = (val5.m_timeoutMin = Life_RD_inv_skeleton_Hildir_planicie?.Value ?? 15f); val5.m_triggerOnAwake = true; if (!Object.op_Implicit((Object)(object)prefab.GetComponent<VS_SummonLifetime>())) { prefab.AddComponent<VS_SummonLifetime>(); } } Creature creature6 = new Creature("rd_armor", "RD_inv_charred_archer_mistlands") { ConfigurationEnabled = false, CanHaveStars = true, CanSpawn = false, CanBeTamed = false }; creature6.Localize().Portuguese_Brazilian("Arqueiro Memorial").English("Archer Memorial"); prefab = creature6.Prefab; if ((Object)(object)prefab != (Object)null) { CharacterTimedDestruction val6 = prefab.GetComponent<CharacterTimedDestruction>() ?? prefab.AddComponent<CharacterTimedDestruction>(); val6.m_timeoutMax = (val6.m_timeoutMin = Life_RD_inv_charred_archer_mistlands?.Value ?? 15f); val6.m_triggerOnAwake = true; if (!Object.op_Implicit((Object)(object)prefab.GetComponent<VS_SummonLifetime>())) { prefab.AddComponent<VS_SummonLifetime>(); } } Creature creature7 = new Creature("rd_armor", "RD_inv_charred_melee_ashlands") { ConfigurationEnabled = false, CanHaveStars = true, CanSpawn = false, CanBeTamed = false }; creature7.Localize().Portuguese_Brazilian("Guerreiro Memorial").English("Memorial Warrior"); prefab = creature7.Prefab; if ((Object)(object)prefab != (Object)null) { CharacterTimedDestruction val7 = prefab.GetComponent<CharacterTimedDestruction>() ?? prefab.AddComponent<CharacterTimedDestruction>(); val7.m_timeoutMax = (val7.m_timeoutMin = Life_RD_inv_charred_melee_ashlands?.Value ?? 15f); val7.m_triggerOnAwake = true; if (!Object.op_Implicit((Object)(object)prefab.GetComponent<VS_SummonLifetime>())) { prefab.AddComponent<VS_SummonLifetime>(); } } } } internal static class Registrations_Mob_BloodmagicGate { internal static void RegisterBloodMagicGate() { VS_BloodmagicGate_Config.Init(((BaseUnityPlugin)Vikings_SummonerPlugin.Instance).Config); } } [<8040682d-5ba1-44b9-942a-594762a4e3fb>Nullable(0)] [<1a1066e8-20be-4301-a714-80275ef3424b>NullableContext(1)] internal static class VS_BloodmagicGate_Config { private static readonly Dictionary<string, float> _defaults = new Dictionary<string, float> { ["RD_inv_esqueleto_prado"] = 10f, ["RD_inv_esqueleto_floresta_negra"] = 20f, ["RD_inv_draugr_archer_pantano"] = 30f, ["RD_inv_draugr_elite_montanha"] = 40f, ["RD_inv_skeleton_Hildir_planicie"] = 50f, ["RD_inv_charred_archer_mistlands"] = 60f, ["RD_inv_charred_melee_ashlands"] = 70f }; private static readonly Dictionary<string, ConfigEntry<float>> _entries = new Dictionary<string, ConfigEntry<float>>(); internal static void Init(ConfigFile config) { foreach (KeyValuePair<string, float> @default in _defaults) { ConfigEntry<float> val = config.Bind<float>("Summons.BloodMagicGate", @default.Key, @default.Value, "Minimum Blood Magic required to summon the mob '" + @default.Key + "'."); _entries[@default.Key] = val; if (Vikings_SummonerPlugin.ConfigSync != null) { Vikings_SummonerPlugin.ConfigSync.AddConfigEntry<float>(val).SynchronizedConfig = true; } } } internal static float GetRequiredBM(string prefabName) { if (_entries.TryGetValue(prefabName, out var value)) { return value.Value; } if (_defaults.TryGetValue(prefabName, out var value2)) { return value2; } return 0f; } } internal static class VS_BloodmagicGate_Core { [<1a1066e8-20be-4301-a714-80275ef3424b>NullableContext(1)] internal static bool BlockIfInsufficient(SpawnAbility sa, [<8040682d-5ba1-44b9-942a-594762a4e3fb>Nullable(2)] Character owner) { if ((Object)(object)owner == (Object)null) { return false; } if ((Object)(object)sa == (Object)null || sa.m_spawnPrefab == null || sa.m_spawnPrefab.Length == 0) { return false; } float num = 0f; GameObject[] spawnPrefab = sa.m_spawnPrefab; foreach (GameObject val in spawnPrefab) { if (Object.op_Implicit((Object)(object)val)) { float requiredBM = VS_BloodmagicGate_Config.GetRequiredBM(((Object)val).name); if (requiredBM > num) { num = requiredBM; } } } if (num <= 0f) { return false; } Skills skills = owner.GetSkills(); if ((Object)(object)skills == (Object)null) { return false; } float skillLevel = skills.GetSkillLevel((SkillType)10); if (skillLevel >= num) { return false; } Player val2 = (Player)(object)((owner is Player) ? owner : null); if (val2 != null) { int num2 = Mathf.FloorToInt(skillLevel); int num3 = Mathf.FloorToInt(num); string arg = $"<color=red><b>{num2}</b></color>"; string arg2 = $"<color=red><b>{num3}</b></color>"; string format = ((Localization.instance != null) ? Localization.instance.Localize("$vs_bm_gate_msg") : "Você possui {0} de Blood Magic e precisa de {1} para invocar."); string text = string.Format(format, arg, arg2); ((Character)val2).Message((MessageType)2, text, 0, (Sprite)null); } return true; } } [HarmonyPatch(typeof(SpawnAbility), "Setup")] internal static class VS_BloodmagicGate_Patch_Setup { [<1a1066e8-20be-4301-a714-80275ef3424b>NullableContext(1)] private static bool Prefix(SpawnAbility __instance, Character owner) { return !VS_BloodmagicGate_Core.BlockIfInsufficient(__instance, owner); } } [HarmonyPatch(typeof(SpawnAbility), "Awake")] internal static class VS_BloodmagicGate_Patch_Awake { [<1a1066e8-20be-4301-a714-80275ef3424b>NullableContext(1)] private static void Postfix(SpawnAbility __instance) { Character owner = default(Character); if (__instance.m_spawnOnAwake && ((Component)__instance).TryGetComponent<Character>(ref owner) && VS_BloodmagicGate_Core.BlockIfInsufficient(__instance, owner)) { ((MonoBehaviour)__instance).StopAllCoroutines(); } } } internal static class VS_BloodmagicGate_Translations { internal static void Apply() { Localization instance = Localization.instance; if (instance != null) { string text = TryGetLanguage(instance) ?? "English"; string text2 = ((text == "Portuguese_Brazilian") ? "Você possui {0} de Blood Magic e precisa de {1} para invocar." : "You have {0} Blood Magic and need {1} to summon."); instance.AddWord("vs_bm_gate_msg", text2); } } [<1a1066e8-20be-4301-a714-80275ef3424b>NullableContext(1)] [return: <8040682d-5ba1-44b9-942a-594762a4e3fb>Nullable(2)] private static string TryGetLanguage(Localization loc) { Type type = ((object)loc).GetType(); string[] array = new string[3] { "GetSelectedLanguage", "GetLanguage", "GetCurrentLanguage" }; string[] array2 = array; foreach (string name in array2) { MethodInfo method = type.GetMethod(name, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (method != null && method.ReturnType == typeof(string) && method.GetParameters().Length == 0) { string text = method.Invoke(loc, null) as string; if (!string.IsNullOrEmpty(text)) { return text; } } } FieldInfo field = type.GetField("m_language", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field != null && field.GetValue(loc) is string text2 && !string.IsNullOrEmpty(text2)) { return text2; } return null; } } [HarmonyPatch(typeof(Localization), "SetupLanguage")] internal static class VS_BloodmagicGate_Translations_Patch { private static void Postfix() { VS_BloodmagicGate_Translations.Apply(); } } [<1a1066e8-20be-4301-a714-80275ef3424b>NullableContext(1)] [HarmonyPatch(typeof(ZNetScene), "Awake")] [<8040682d-5ba1-44b9-942a-594762a4e3fb>Nullable(0)] internal static class Registrations_Mob_Tamable { private static readonly string[] Prefabs = new string[7] { "RD_inv_esqueleto_prado", "RD_inv_esqueleto_floresta_negra", "RD_inv_draugr_archer_pantano", "RD_inv_draugr_elite_montanha", "RD_inv_skeleton_Hildir_planicie", "RD_inv_charred_archer_mistlands", "RD_inv_charred_melee_ashlands" }; private static void Postfix(ZNetScene __instance) { string[] prefabs = Prefabs; foreach (string text in prefabs) { GameObject prefab = __instance.GetPrefab(text); if (Object.op_Implicit((Object)(object)prefab) && Object.op_Implicit((Object)(object)prefab.GetComponent<Character>()) && Object.op_Implicit((Object)(object)prefab.GetComponent<ZNetView>()) && Object.op_Implicit((Object)(object)prefab.GetComponent<MonsterAI>())) { if (!Object.op_Implicit((Object)(object)prefab.GetComponent<VS_SummonMarker>())) { prefab.AddComponent<VS_SummonMarker>(); } if (!Object.op_Implicit((Object)(object)prefab.GetComponent<VS_SummonTameable>())) { prefab.AddComponent<VS_SummonTameable>(); } if (!Object.op_Implicit((Object)(object)prefab.GetComponent<VS_SummonOwnerBinder>())) { prefab.AddComponent<VS_SummonOwnerBinder>(); } } } } } public sealed class VS_SummonMarker : MonoBehaviour { } [HarmonyPatch(typeof(Tameable), "GetHoverText")] internal static class Patch_Tameable_GetHoverText { [<1a1066e8-20be-4301-a714-80275ef3424b>NullableContext(1)] private static bool Prefix(Tameable __instance, ref string __result) { if (Object.op_Implicit((Object)(object)((Component)__instance).GetComponent<VS_SummonMarker>())) { __result = string.Empty; return false; } return true; } } [HarmonyPatch(typeof(Tameable), "Interact")] internal static class Patch_Tameable_Interact { [<1a1066e8-20be-4301-a714-80275ef3424b>NullableContext(1)] private static bool Prefix(Tameable __instance, Humanoid user, bool hold, bool alt, ref bool __result) { VS_SummonMarker vS_SummonMarker = default(VS_SummonMarker); if (!((Component)__instance).TryGetComponent<VS_SummonMarker>(ref vS_SummonMarker)) { return true; } VS_SummonTameable component = ((Component)__instance).GetComponent<VS_SummonTameable>(); if (!Object.op_Implicit((Object)(object)component)) { __result = false; return false; } __result = component.Interact(user, hold, alt); return false; } } [HarmonyPatch(typeof(Tameable), "UseItem")] internal static class Patch_Tameable_UseItem { [<1a1066e8-20be-4301-a714-80275ef3424b>NullableContext(1)] private static bool Prefix(Tameable __instance, ref bool __result) { if (Object.op_Implicit((Object)(object)((Component)__instance).GetComponent<VS_SummonMarker>())) { __result = false; return false; } return true; } } [HarmonyPatch(typeof(Tameable), "Update")] internal static class Patch_Tameable_Update { [<1a1066e8-20be-4301-a714-80275ef3424b>NullableContext(1)] private static bool Prefix(Tameable __instance) { return !Object.op_Implicit((Object)(object)((Component)__instance).GetComponent<VS_SummonMarker>()); } } [HarmonyPatch(typeof(Character), "GetHoverText")] internal static class Patch_Character_GetHoverText { [<1a1066e8-20be-4301-a714-80275ef3424b>NullableContext(1)] private static void Postfix(Character __instance, ref string __result) { VS_SummonTameable component = ((Component)__instance).GetComponent<VS_SummonTameable>(); if (Object.op_Implicit((Object)(object)component)) { __result = component.AppendUnsummonToHover(__result); } } } public sealed class VS_SummonOwnerBinder : MonoBehaviour { [<8040682d-5ba1-44b9-942a-594762a4e3fb>Nullable(1)] private const string KeyOwner = "VS_OwnerID"; [<8040682d-5ba1-44b9-942a-594762a4e3fb>Nullable(2)] private ZNetView _nview; private float _delay = 0.25f; private bool _done; private void Awake() { _nview = ((Component)this).GetComponent<ZNetView>(); } private void Update() { //IL_00c0: Unknown result type (might be due to invalid IL or missing references) if (_done || !IsServer() || (Object)(object)_nview == (Object)null || !_nview.IsValid()) { return; } _delay -= Time.deltaTime; if (_delay > 0f) { return; } ZDO zDO = _nview.GetZDO(); if (zDO == null) { return; } long @long = zDO.GetLong("VS_OwnerID", 0L); if (@long != 0) { _done = true; ((Behaviour)this).enabled = false; return; } Player closestPlayer = Player.GetClosestPlayer(((Component)this).transform.position, 30f); if (!((Object)(object)closestPlayer == (Object)null)) { zDO.Set("VS_OwnerID", closestPlayer.GetPlayerID()); _done = true; ((Behaviour)this).enabled = false; } } private static bool IsServer() { return (Object)(object)ZNet.instance != (Object)null && ZNet.instance.IsServer(); } } [<1a1066e8-20be-4301-a714-80275ef3424b>NullableContext(1)] [<8040682d-5ba1-44b9-942a-594762a4e3fb>Nullable(0)] public sealed class VS_SummonTameable : MonoBehaviour, Interactable, Hoverable { internal const string KeyOwner = "VS_OwnerID"; [<8040682d-5ba1-44b9-942a-594762a4e3fb>Nullable(2)] private ZNetView _nview; [<8040682d-5ba1-44b9-942a-594762a4e3fb>Nullable(2)] private Character _character; [<8040682d-5ba1-44b9-942a-594762a4e3fb>Nullable(2)] private MonsterAI _ai; private float _tick; private float _unsummonCd; [<8040682d-5ba1-44b9-942a-594762a4e3fb>Nullable(2)] private string _lastHover; private float _hoverTTL; [<8040682d-5ba1-44b9-942a-594762a4e3fb>Nullable(2)] private GameObject _lastFollowTarget; private void Awake() { _nview = ((Component)this).GetComponent<ZNetView>(); _character = ((Component)this).GetComponent<Character>(); _ai = ((Component)this).GetComponent<MonsterAI>(); if ((Object)(object)_character != (Object)null) { _character.m_tamed = true; } } private void Update() { if ((Object)(object)_character != (Object)null && _character.IsDead()) { ((Behaviour)this).enabled = false; } else if (IsServer()) { _tick -= Time.deltaTime; if (!(_tick > 0f)) { _tick = 1f; EnsureFollowOwner(); } } } public string GetHoverName() { if ((Object)(object)_character != (Object)null) { return _character.GetHoverName(); } return ((Object)((Component)this).gameObject).name; } public string GetHoverText() { Player localPlayer = Player.m_localPlayer; if ((Object)(object)localPlayer == (Object)null) { return string.Empty; } Localization instance = Localization.instance; string text = ((instance != null) ? instance.Localize("$KEY_Use") : null) ?? "E"; Localization instance2 = Localization.instance; string text2 = ((instance2 != null) ? instance2.Localize("$vs_summon_unsummon") : null) ?? "Desinvocar"; return GetHoverName() + "\n[<color=yellow><b>" + text + "</b></color>] " + text2; } internal string AppendUnsummonToHover(string baseText) { _hoverTTL -= Time.deltaTime; if (_hoverTTL > 0f && _lastHover != null) { return _lastHover; } Player localPlayer = Player.m_localPlayer; if ((Object)(object)localPlayer == (Object)null) { return baseText; } if (!IsOwner(localPlayer) && !((Character)localPlayer).IsDebugFlying()) { return baseText; } if (!string.IsNullOrEmpty(baseText)) { string[] array = baseText.Split(new char[1] { '\n' }); List<string> list = new List<string>(array.Length); string[] array2 = array; foreach (string text in array2) { string text2 = text.Trim(); if (!text2.StartsWith("Follows", StringComparison.OrdinalIgnoreCase) && !text2.StartsWith("$hud_tame_followers", StringComparison.OrdinalIgnoreCase)) { list.Add(text); } } baseText = string.Join("\n", list); } Localization instance = Localization.instance; string text3 = ((instance != null) ? instance.Localize("$KEY_Use") : null) ?? "E"; Localization instance2 = Localization.instance; string text4 = ((instance2 != null) ? instance2.Localize("$vs_summon_unsummon") : null) ?? "Desinvocar"; string text5 = "[<color=yellow><b>" + text3 + "</b></color>] " + text4; string result = (_lastHover = (string.IsNullOrEmpty(baseText) ? (GetHoverName() + "\n" + text5) : (baseText + "\n" + text5))); _hoverTTL = 0.1f; return result; } public bool Interact(Humanoid user, bool hold, bool alt) { if (hold) { return false; } if (Time.time < _unsummonCd) { return false; } _unsummonCd = Time.time + 0.5f; Player val = (Player)(object)((user is Player) ? user : null); if (val == null) { return false; } if (!IsOwner(val) && !((Character)val).IsDebugFlying()) { return false; } if ((Object)(object)_nview == (Object)null || !_nview.IsValid()) { return false; } Tameable component = ((Component)this).GetComponent<Tameable>(); if ((Object)(object)component != (Object)null && (Object)(object)component.m_nview != (Object)null && component.m_nview.IsValid()) { component.m_nview.InvokeRPC("RPC_UnSummon", Array.Empty<object>()); return true; } return false; } public bool UseItem(Humanoid user, ItemData item) { return false; } private void EnsureFollowOwner() { if ((Object)(object)_ai == (Object)null || (Object)(object)_nview == (Object)null || !_nview.IsValid()) { return; } ZDO zDO = _nview.GetZDO(); if (zDO == null) { return; } long @long = zDO.GetLong("VS_OwnerID", 0L); if (@long == 0) { return; } foreach (Player allPlayer in Player.GetAllPlayers()) { if (allPlayer.GetPlayerID() == @long) { GameObject gameObject = ((Component)allPlayer).gameObject; if ((Object)(object)_lastFollowTarget != (Object)(object)gameObject) { _ai.SetFollowTarget(gameObject); _lastFollowTarget = gameObject; } return; } } if ((Object)(object)_lastFollowTarget != (Object)null) { _ai.SetFollowTarget((GameObject)null); _lastFollowTarget = null; } } private static bool IsServer() { return (Object)(object)ZNet.instance != (Object)null && ZNet.instance.IsServer(); } private bool IsOwner(Player p) { if ((Object)(object)_nview == (Object)null || !_nview.IsValid()) { return false; } ZDO zDO = _nview.GetZDO(); if (zDO == null) { return false; } long @long = zDO.GetLong("VS_OwnerID", 0L); if (@long != 0) { return p.GetPlayerID() == @long; } if ((Object)(object)_ai != (Object)null && (Object)(object)_ai.GetFollowTarget() == (Object)(object)((Component)p).gameObject) { return true; } if (_nview.IsOwner()) { return true; } return false; } } internal static class VS_SummonTranslations { internal static void Apply() { Localization instance = Localization.instance; if (instance != null) { string text = TryGetLanguage(instance) ?? "English"; string text2 = ((text == "Portuguese_Brazilian") ? "Desinvocar" : "Unsummon"); instance.AddWord("vs_summon_unsummon", text2); } } [<1a1066e8-20be-4301-a714-80275ef3424b>NullableContext(1)] [return: <8040682d-5ba1-44b9-942a-594762a4e3fb>Nullable(2)] private static string TryGetLanguage(Localization loc) { Type type = ((object)loc).GetType(); string[] array = new string[3] { "GetSelectedLanguage", "GetLanguage", "GetCurrentLanguage" }; string[] array2 = array; foreach (string name in array2) { MethodInfo method = type.GetMethod(name, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (method != null && method.ReturnType == typeof(string) && method.GetParameters().Length == 0) { string text = method.Invoke(loc, null) as string; if (!string.IsNullOrEmpty(text)) { return text; } } } FieldInfo field = type.GetField("m_language", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field != null && field.FieldType == typeof(string)) { string text2 = field.GetValue(loc) as string; if (!string.IsNullOrEmpty(text2)) { return text2; } } return null; } } [HarmonyPatch(typeof(Localization), "SetupLanguage")] internal static class VS_SummonTranslations_Patch { private static void Postfix() { VS_SummonTranslations.Apply(); } } internal static class Registrations_Staffs { public static void RegisterStaffs() { Item item = new Item("rd_armor", "RD_inv_staff_meadows"); item.Name.English("Funeral Dawn Staff"); item.Name.Portuguese_Brazilian("Cajado Alvorada Fúnebre"); item.Description.English("An ancient staff of unknown origin, seemingly a witness to forgotten eras. Its surface is etched with cryptic symbols, and its presence radiates a sense of silent and inevitable power. Consumes eitr and life."); item.Description.Portuguese_Brazilian("Um cajado antigo, de origem desconhecida, que parece ter testemunhado eras esquecidas. Sua superfície é marcada por símbolos enigmáticos e sua presença transmite uma sensação de poder silencioso e inevitável. Consome eitr e vida."); item.Crafting.Add("RD_necromancer_table", 1); item.RequiredItems.Add("TrophyBoar", 1); item.RequiredItems.Add("Wood", 16); item.RequiredItems.Add("GreydwarfEye", 10); item.RequiredItems.Add("Flint", 10); item.RequiredUpgradeItems.Add("Wood", 8); item.RequiredUpgradeItems.Add("GreydwarfEye", 4); item.RequiredUpgradeItems.Add("Flint", 4); MaterialReplacer.RegisterGameObjectForShaderSwap(item.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item2 = new Item("rd_armor", "RD_inv_staff_bflorest"); item2.Name.English("Fallen Spirit Staff"); item2.Name.Portuguese_Brazilian("Cajado Espírito Caído"); item2.Description.English("A conduit between the world of the living and the realm of the dead. The Spiritbound Staff resonates with ancestral whispers and trembles at the touch of unseen presences. Consumes eitr and life."); item2.Description.Portuguese_Brazilian("Canal de comunhão entre o mundo dos vivos e o domínio dos mortos. O cajado ressoa com sussurros ancestrais e vibra ao toque de presenças invisíveis. Consome eitr e vida."); item2.Crafting.Add("RD_necromancer_table", 2); item2.RequiredItems.Add("TrophySkeleton", 1); item2.RequiredItems.Add("RoundLog", 12); item2.RequiredItems.Add("SurtlingCore", 5); item2.RequiredItems.Add("Copper", 6); item2.RequiredUpgradeItems.Add("RoundLog", 8); item2.RequiredUpgradeItems.Add("SurtlingCore", 5); item2.RequiredUpgradeItems.Add("Copper", 2); MaterialReplacer.RegisterGameObjectForShaderSwap(item2.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item3 = new Item("rd_armor", "RD_inv_staff_swamp"); item3.Name.English("Unholy Swamp Staff"); item3.Name.Portuguese_Brazilian("Cajado Pântano Profano"); item3.Description.English("An ancient artifact, its twisted wood and carved markings hinting that it has passed through countless hands over the centuries. Its presence commands respect and evokes a sense of restrained power. Consumes eitr and life."); item3.Description.Portuguese_Brazilian("Um artefato antigo, cuja madeira retorcida e marcas gravadas indicam que já passou por incontáveis mãos ao longo dos séculos. Sua presença impõe respeito e desperta uma sensação de poder contido. Consome eitr e vida."); item3.Crafting.Add("RD_necromancer_table", 2); item3.RequiredItems.Add("YmirRemains", 5); item3.RequiredItems.Add("Guck", 16); item3.RequiredItems.Add("Iron", 20); item3.RequiredItems.Add("ElderBark", 14); item3.RequiredUpgradeItems.Add("Guck", 8); item3.RequiredUpgradeItems.Add("Iron", 10); item3.RequiredUpgradeItems.Add("TrophySkeleton", 6); MaterialReplacer.RegisterGameObjectForShaderSwap(item3.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item4 = new Item("rd_armor", "RD_inv_staff_mountain"); item4.Name.English("Glacial Shadow Staff"); item4.Name.Portuguese_Brazilian("Cajado Sombra Glacial"); item4.Description.English("A staff shrouded in mystery, with details that reveal craftsmanship long lost to time. It radiates a subtle energy, as if holding secrets from forgotten ages. Consumes eitr and life."); item4.Description.Portuguese_Brazilian("Um cajado envolto em mistério, com detalhes que revelam um artesanato há muito perdido no tempo. Ele emite uma energia sutil, como se guardasse segredos de eras esquecidas. Consome eitr e vida."); item4.Crafting.Add("RD_necromancer_table", 2); item4.RequiredItems.Add("DragonTear", 2); item4.RequiredItems.Add("ElderBark", 22); item4.RequiredItems.Add("FreezeGland", 16); item4.RequiredItems.Add("Silver", 14); item4.RequiredUpgradeItems.Add("ElderBark", 11); item4.RequiredUpgradeItems.Add("FreezeGland", 8); item4.RequiredUpgradeItems.Add("Silver", 8); MaterialReplacer.RegisterGameObjectForShaderSwap(item4.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item5 = new Item("rd_armor", "RD_inv_staff_plains"); item5.Name.English("Cursed Moon Staff"); item5.Name.Portuguese_Brazilian("Cajado Lua Amaldiçoada"); item5.Description.English("An ancient staff, bearing signs of use in long-forgotten rituals. Its faint glow gives the impression that it holds stories that were never meant to be told. Consumes eitr and life."); item5.Description.Portuguese_Brazilian("Um cajado antigo, marcado por sinais de uso em rituais há muito esquecidos. Seu brilho discreto transmite a sensação de que guarda histórias que jamais deveriam ser reveladas. Consome eitr e vida."); item5.Crafting.Add("RD_necromancer_table_02", 1); item5.RequiredItems.Add("GoblinTotem", 2); item5.RequiredItems.Add("LoxPelt", 22); item5.RequiredItems.Add("RoundLog", 16); item5.RequiredItems.Add("BlackMetal", 20); item5.RequiredUpgradeItems.Add("LoxPelt", 11); item5.RequiredUpgradeItems.Add("RoundLog", 8); item5.RequiredUpgradeItems.Add("BlackMetal", 8); MaterialReplacer.RegisterGameObjectForShaderSwap(item5.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item6 = new Item("rd_armor", "RD_inv_staff_mistlands"); item6.Name.English("Spectral Veil Staff"); item6.Name.Portuguese_Brazilian("Cajado Véu Espectral"); item6.Description.English("This staff exudes an ethereal aura, as if intertwined with unseen forces. Its delicate form conceals a subtle power, capable of influencing that which escapes the common eye. Consumes eitr and life."); item6.Description.Portuguese_Brazilian("Este cajado exala uma aura etérea, como se estivesse entrelaçado com forças invisíveis. Sua forma delicada esconde um poder sutil, capaz de influenciar aquilo que escapa aos olhos comuns. Consome eitr e vida."); item6.Crafting.Add("RD_necromancer_table_02", 1); item6.RequiredItems.Add("BlackCore", 2); item6.RequiredItems.Add("YggdrasilWood", 22); item6.RequiredItems.Add("Eitr", 14); item6.RequiredItems.Add("GiantBloodSack", 4); item6.RequiredUpgradeItems.Add("YggdrasilWood", 11); item6.RequiredUpgradeItems.Add("Eitr", 6); item6.RequiredUpgradeItems.Add("GiantBloodSack", 1); MaterialReplacer.RegisterGameObjectForShaderSwap(item6.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item7 = new Item("rd_armor", "RD_inv_staff_ashlands"); item7.Name.English("Profane Furnace Staff"); item7.Name.Portuguese_Brazilian("Cajado Fornalha Profana"); item7.Description.English("Forged in a fire not of this world, this staff pulses with an incandescent and forbidden energy. Its invisible flames seem to consume everything around. Consumes eitr and life."); item7.Description.Portuguese_Brazilian("Forjado em um fogo que não pertence a este mundo, este cajado pulsa com uma energia incandescente e proibida. Suas chamas invisíveis parecem consumir tudo ao redor. Consome eitr e vida."); item7.Crafting.Add("RD_necromancer_table_02", 1); item7.RequiredItems.Add("ShieldCore", 2); item7.RequiredItems.Add("YggdrasilWood", 24); item7.RequiredItems.Add("FlametalNew", 12); item7.RequiredItems.Add("CharredBone", 12); item7.RequiredUpgradeItems.Add("YggdrasilWood", 11); item7.RequiredUpgradeItems.Add("FlametalNew", 6); item7.RequiredUpgradeItems.Add("CharredBone", 6); MaterialReplacer.RegisterGameObjectForShaderSwap(item7.Prefab, MaterialReplacer.ShaderType.UseUnityShader); } } internal static class Registrations_SummonItems { public static void RegisterSummonItems() { Item item = new Item("rd_armor", "RD_skeleton_woodshield_inv"); item.Configurable = Configurability.Disabled; item.Name.English("Wood shield"); item.Name.Portuguese_Brazilian("Wood shield"); MaterialReplacer.RegisterGameObjectForShaderSwap(item.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item2 = new Item("rd_armor", "RD_skeleton_bronzesword_inv"); item2.Configurable = Configurability.Disabled; item2.Name.English("Bronze Sword"); item2.Name.Portuguese_Brazilian("Bronze Sword"); MaterialReplacer.RegisterGameObjectForShaderSwap(item2.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item3 = new Item("rd_armor", "RD_skeleton_woodbow_inv"); item3.Configurable = Configurability.Disabled; item3.Name.English("Wood bow"); item3.Name.Portuguese_Brazilian("Wood bow"); MaterialReplacer.RegisterGameObjectForShaderSwap(item3.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item4 = new Item("rd_armor", "RD_skeleton_mace_inv"); item4.Configurable = Configurability.Disabled; item4.Name.English("RD_skeleton_mace_inv"); item4.Name.Portuguese_Brazilian("RD_skeleton_mace_inv"); MaterialReplacer.RegisterGameObjectForShaderSwap(item4.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item5 = new Item("rd_armor", "RD_draugr_bow_inv"); item5.Configurable = Configurability.Disabled; item5.Name.English("Draugr Bow"); item5.Name.Portuguese_Brazilian("Draugr Bow"); MaterialReplacer.RegisterGameObjectForShaderSwap(item5.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item6 = new Item("rd_armor", "RD_draugrelite_sword_inv"); item6.Configurable = Configurability.Disabled; item6.Name.English("Draugr Sword"); item6.Name.Portuguese_Brazilian("Draugr Sword"); MaterialReplacer.RegisterGameObjectForShaderSwap(item6.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item7 = new Item("rd_armor", "RD_skeleton_hildir_firenova_rd_armor"); item7.Configurable = Configurability.Disabled; item7.Name.English("RD_skeleton_hildir_firenova_rd_armor"); item7.Name.Portuguese_Brazilian("RD_skeleton_hildir_firenova_rd_armor"); MaterialReplacer.RegisterGameObjectForShaderSwap(item7.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item8 = new Item("rd_armor", "RD_skeleton_hildir_sword_rd_armor"); item8.Configurable = Configurability.Disabled; item8.Name.English("RD_skeleton_hildir_sword_rd_armor"); item8.Name.Portuguese_Brazilian("RD_skeleton_hildir_sword_rd_armor"); MaterialReplacer.RegisterGameObjectForShaderSwap(item8.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item9 = new Item("rd_armor", "Charred_Breastplate_archer"); item9.Configurable = Configurability.Disabled; item9.Name.English("Breastplate charred"); item9.Name.Portuguese_Brazilian("Breastplate charred"); MaterialReplacer.RegisterGameObjectForShaderSwap(item9.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item10 = new Item("rd_armor", "Charred_Helmet_archer"); item10.Configurable = Configurability.Disabled; item10.Name.English("Charred Helmet"); item10.Name.Portuguese_Brazilian("Charred Helmet"); MaterialReplacer.RegisterGameObjectForShaderSwap(item10.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item11 = new Item("rd_armor", "Charred_HipCloth_archer"); item11.Configurable = Configurability.Disabled; item11.Name.English("Charred HipCloth"); item11.Name.Portuguese_Brazilian("Charred HipCloth"); MaterialReplacer.RegisterGameObjectForShaderSwap(item11.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item12 = new Item("rd_armor", "charred_bow_rd_armor"); item12.Configurable = Configurability.Disabled; item12.Name.English("Charred Bow"); item12.Name.Portuguese_Brazilian("Charred Bow"); MaterialReplacer.RegisterGameObjectForShaderSwap(item12.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item13 = new Item("rd_armor", "charred_bow_volley_rd_armor"); item13.Configurable = Configurability.Disabled; item13.Name.English("Charred Bow Volley"); item13.Name.Portuguese_Brazilian("Charred Bow Volley"); MaterialReplacer.RegisterGameObjectForShaderSwap(item13.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item14 = new Item("rd_armor", "Charred_Breastplate_melee"); item14.Configurable = Configurability.Disabled; item14.Name.English("Breastplate charred1"); item14.Name.Portuguese_Brazilian("Breastplate charred1"); MaterialReplacer.RegisterGameObjectForShaderSwap(item14.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item15 = new Item("rd_armor", "Charred_Helmet_melee"); item15.Configurable = Configurability.Disabled; item15.Name.English("Charred Helmet1"); item15.Name.Portuguese_Brazilian("Charred Helmet1"); MaterialReplacer.RegisterGameObjectForShaderSwap(item15.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item16 = new Item("rd_armor", "Charred_HipCloth_melee"); item16.Configurable = Configurability.Disabled; item16.Name.English("Charred HipCloth1"); item16.Name.Portuguese_Brazilian("Charred HipCloth1"); MaterialReplacer.RegisterGameObjectForShaderSwap(item16.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item17 = new Item("rd_armor", "charred_greatsword_feint_melee"); item17.Configurable = Configurability.Disabled; item17.Name.English("Charred greatsword"); item17.Name.Portuguese_Brazilian("Charred greatsword"); MaterialReplacer.RegisterGameObjectForShaderSwap(item17.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item18 = new Item("rd_armor", "charred_greatsword_swing_melee"); item18.Configurable = Configurability.Disabled; item18.Name.English("Charred swing"); item18.Name.Portuguese_Brazilian("Charred swing"); MaterialReplacer.RegisterGameObjectForShaderSwap(item18.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item19 = new Item("rd_armor", "charred_greatsword_thrust_melee"); item19.Configurable = Configurability.Disabled; item19.Name.English("Charred thrust"); item19.Name.Portuguese_Brazilian("Charred thrust"); MaterialReplacer.RegisterGameObjectForShaderSwap(item19.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item20 = new Item("rd_armor", "charred_greatsword_thrustfeint_melee"); item20.Configurable = Configurability.Disabled; item20.Name.English("Charred thrustfeint"); item20.Name.Portuguese_Brazilian("Charred thrustfeint"); MaterialReplacer.RegisterGameObjectForShaderSwap(item20.Prefab, MaterialReplacer.ShaderType.UseUnityShader); } } internal static class Registrations_Totems { public static void RegisterTotems() { Item item = new Item("rd_armor", "RD_totem_inv_prado"); item.Name.English("Totem Skull"); item.Name.Portuguese_Brazilian("Totem Crânio"); item.Description.English("A plain skull, used in basic summoning rites. It still holds traces of a bound soul."); item.Description.Portuguese_Brazilian("Um crânio comum, usado em rituais básicos de invocação. Ainda carrega traços de alma aprisionada."); item.Crafting.Add("RD_necromancer_table", 1); item.RequiredItems.Add("TrophySkeleton", 2); item.RequiredItems.Add("LeatherScraps", 20); item.RequiredItems.Add("BoneFragments", 20); item.RequiredUpgradeItems.Add("TrophySkeleton", 1); item.RequiredUpgradeItems.Add("LeatherScraps", 5); item.RequiredUpgradeItems.Add("BoneFragments", 5); MaterialReplacer.RegisterGameObjectForShaderSwap(item.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item2 = new Item("rd_armor", "RD_totem_inv_bflorest"); item2.Name.English("Totem Rotting Skull"); item2.Name.Portuguese_Brazilian("Totem Crânio Putrefato"); item2.Description.English("A rotting skull, saturated with necromantic energy. Its stench heralds the death that follows."); item2.Description.Portuguese_Brazilian("Um crânio apodrecido, saturado de energia necromântica. Seu fedor é o prenúncio da morte que caminha."); item2.Crafting.Add("RD_necromancer_table", 2); item2.RequiredItems.Add("TrophySkeletonPoison", 1); item2.RequiredItems.Add("LeatherScraps", 25); item2.RequiredItems.Add("Bronze", 20); item2.RequiredItems.Add("BoneFragments", 20); item2.RequiredUpgradeItems.Add("TrophySkeletonPoison", 1); item2.RequiredUpgradeItems.Add("LeatherScraps", 7); item2.RequiredUpgradeItems.Add("Bronze", 5); item2.RequiredUpgradeItems.Add("BoneFragments", 5); MaterialReplacer.RegisterGameObjectForShaderSwap(item2.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item3 = new Item("rd_armor", "RD_totem_inv_pantano"); item3.Name.English("Totem Bleeding Heart"); item3.Name.Portuguese_Brazilian("Totem Coração Sangrento"); item3.Description.English("A heart soaked in ancient blood, pulsing with cursed energy. Essential for the most brutal necromantic rites."); item3.Description.Portuguese_Brazilian("Um coração encharcado de sangue antigo, pulsando com energia maldita. Essencial nos rituais mais cruéis da necromancia."); item3.Crafting.Add("RD_necromancer_table", 2); item3.RequiredItems.Add("TrophyDraugr", 1); item3.RequiredItems.Add("Root", 6); item3.RequiredItems.Add("Iron", 20); item3.RequiredItems.Add("BoneFragments", 20); item3.RequiredUpgradeItems.Add("TrophyDraugr", 1); item3.RequiredUpgradeItems.Add("Root", 2); item3.RequiredUpgradeItems.Add("Iron", 5); item3.RequiredUpgradeItems.Add("BoneFragments", 5); MaterialReplacer.RegisterGameObjectForShaderSwap(item3.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item4 = new Item("rd_armor", "RD_totem_inv_montanha"); item4.Name.English("Frost Head Totem"); item4.Name.Portuguese_Brazilian("Totem Cabeça Elite"); item4.Description.English("A head eternally cold, preserved by death’s icy grasp. It radiates a cutting silence that unsettles even the strongest of souls."); item4.Description.Portuguese_Brazilian("Uma cabeça eternamente fria, preservada pelo toque gélido da morte. Emana um silêncio cortante que perturba até as almas mais resistentes."); item4.Crafting.Add("RD_necromancer_table", 2); item4.RequiredItems.Add("TrophyDraugrElite", 1); item4.RequiredItems.Add("FreezeGland", 8); item4.RequiredItems.Add("Silver", 20); item4.RequiredItems.Add("WolfFang", 10); item4.RequiredUpgradeItems.Add("TrophyDraugrElite", 1); item4.RequiredUpgradeItems.Add("FreezeGland", 2); item4.RequiredUpgradeItems.Add("Silver", 5); item4.RequiredUpgradeItems.Add("WolfFang", 4); MaterialReplacer.RegisterGameObjectForShaderSwap(item4.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item5 = new Item("rd_armor", "RD_totem_inv_planicie"); item5.Name.English("Ancestral Skull Totem"); item5.Name.Portuguese_Brazilian("Totem Crânio Ancestral"); item5.Description.English("The skull of an ancient death-lord, preserved through the ages as a sacred relic. Its cracks echo with the dark wisdom of necromancy’s earliest days."); item5.Description.Portuguese_Brazilian("O crânio de um antigo senhor da morte, preservado através dos séculos como relíquia sagrada. Suas fissuras ressoam com a sabedoria sombria dos primórdios da necromancia."); item5.Crafting.Add("RD_necromancer_table_02", 1); item5.RequiredItems.Add("TrophySkeletonHildir", 1); item5.RequiredItems.Add("GoblinTotem", 4); item5.RequiredItems.Add("BlackMetal", 20); item5.RequiredItems.Add("BoneFragments", 20); item5.RequiredUpgradeItems.Add("GoblinTotem", 1); item5.RequiredUpgradeItems.Add("BlackMetal", 5); item5.RequiredUpgradeItems.Add("BoneFragments", 5); MaterialReplacer.RegisterGameObjectForShaderSwap(item5.Prefab, MaterialReplacer.ShaderType.UseUnityShader); Item item6 = new Item("rd_armor", "RD_totem_inv_mistlands"); item6.Name