Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of CarlosMMOLoader v1.0.1
plugins/CarlosMMOLoaderNOVO.dll
Decompiled 2 months agousing System; using System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using HarmonyLib; using Jotunn.Configs; using Jotunn.Entities; using Jotunn.Managers; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("CarlosMMOLoaderNOVO")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("CarlosMMOLoaderNOVO")] [assembly: AssemblyCopyright("Copyright © 2026")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("b0ef6b20-a606-4eab-b35c-ee55fba79023")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] [assembly: AssemblyVersion("1.0.0.0")] [BepInPlugin("carlos.mmo.loader", "Carlos MMO Loader", "4.9.1")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class CarlosMMOLoader : BaseUnityPlugin { [HarmonyPatch(typeof(CharacterDrop), "GenerateDropList")] public static class BossDropPatch { private static void Postfix(CharacterDrop __instance, ref List<KeyValuePair<GameObject, int>> __result) { if ((Object)(object)__instance == (Object)null || (Object)(object)((Component)__instance).gameObject == (Object)null) { return; } string name = ((Object)((Component)__instance).gameObject).name; foreach (KeyValuePair<string, string> bossDrop in BossDrops) { if (name.Contains(bossDrop.Key)) { GameObject prefab = ZNetScene.instance.GetPrefab(bossDrop.Value); if ((Object)(object)prefab != (Object)null) { __result.Add(new KeyValuePair<GameObject, int>(prefab, 1)); Debug.Log((object)("CARLOS MMO: BOSS DROP -> " + bossDrop.Value)); } } } } } private bool registered; private Harmony harmony; public static float GlideFallSpeed = -2f; public static float JumpBoostForce = 4f; public static float DashForce = 8f; public static float DashCooldown = 2f; public static float LastDashTime = -999f; public static Dictionary<string, string> BossDrops = new Dictionary<string, string> { { "Eikthyr", "CarlosBossEikthyrSpear" }, { "gd_king", "CarlosBossElderChest" }, { "Bonemass", "CarlosBossBonemassMace" }, { "Dragon", "CarlosBossModerBow" }, { "GoblinKing", "CarlosBossYagluthSword" }, { "SeekerQueen", "CarlosBossQueenChest" } }; private void Awake() { //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Expected O, but got Unknown PrefabManager.OnVanillaPrefabsAvailable += RegisterAll; harmony = new Harmony("carlos.mmo.skills"); harmony.PatchAll(); Debug.Log((object)"CARLOS MMO: Loader 4.9.1 iniciado"); } private void OnDestroy() { PrefabManager.OnVanillaPrefabsAvailable -= RegisterAll; if (harmony != null) { harmony.UnpatchSelf(); } } private void RegisterAll() { if (!registered) { registered = true; PrefabManager.OnVanillaPrefabsAvailable -= RegisterAll; RegisterEsmeralda(); RegisterEsmeraldaWeapons(); RegisterGuardian(); RegisterGuardianWeapons(); RegisterHunter(); RegisterHunterWeapons(); RegisterBerserker(); RegisterBerserkerWeapons(); RegisterPaladin(); RegisterAbyssal(); RegisterBossRelicGear(); Debug.Log((object)"CARLOS MMO: TODOS SETS, ARMAS E BOSSES REGISTRADOS"); } } private void RegisterBossRelicGear() { RegisterBossEikthyrSpear(); RegisterBossElderChest(); RegisterBossBonemassMace(); RegisterBossModerBow(); RegisterBossYagluthSword(); RegisterBossQueenChest(); } private void RegisterBossEikthyrSpear() { //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Expected O, but got Unknown //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Expected O, but got Unknown //IL_013a: Unknown result type (might be due to invalid IL or missing references) string text = FirstExistingPrefab("SpearFlint", "SpearBronze", "AtgeirBronze"); if (string.IsNullOrEmpty(text)) { return; } try { ItemConfig val = new ItemConfig { Name = "Lança Tempestuosa", Description = "Relíquia de Eikthyr, veloz e carregada de energia tempestuosa.", CraftingStation = CraftingStations.Forge, MinStationLevel = 1 }; CustomItem val2 = new CustomItem("CarlosBossEikthyrSpear", text, val); SharedData shared = val2.ItemDrop.m_itemData.m_shared; shared.m_name = "Lança Tempestuosa"; shared.m_description = "Relíquia de Eikthyr, veloz e carregada de energia tempestuosa."; shared.m_weight = 1.8f; shared.m_value = 1600; shared.m_maxDurability = 2100f; shared.m_durabilityPerLevel = 120f; shared.m_maxQuality = 4; shared.m_damages.m_pierce = 96f; shared.m_damages.m_spirit = 16f; shared.m_attackForce = 58f; shared.m_backstabBonus = 3f; TintBossStorm(((Component)val2.ItemDrop).gameObject); ApplyIconTint(val2, new Color(0.78f, 0.92f, 1f, 1f), 0.4f, 1.08f); ItemManager.Instance.AddItem(val2); } catch (Exception ex) { Debug.LogError((object)("CARLOS MMO: erro ao registrar Lança Tempestuosa -> " + ex)); } } private void RegisterBossElderChest() { //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Expected O, but got Unknown //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Expected O, but got Unknown //IL_00bf: Unknown result type (might be due to invalid IL or missing references) string text = FirstExistingPrefab("ArmorRootChest", "ArmorBronzeChest", "ArmorIronChest"); if (string.IsNullOrEmpty(text)) { return; } try { ItemConfig val = new ItemConfig { Name = "Peitoral Ancestral", Description = "Relíquia do Elder, tomada por madeira viva e poder ancestral.", CraftingStation = CraftingStations.Forge, MinStationLevel = 1 }; CustomItem val2 = new CustomItem("CarlosBossElderChest", text, val); ApplySharedStats(val2, "Peitoral Ancestral", "Relíquia do Elder, tomada por madeira viva e poder ancestral.", 66f, 9.5f, 1750); TintBossElder(((Component)val2.ItemDrop).gameObject); ApplyIconTint(val2, new Color(0.28f, 0.44f, 0.18f, 1f), 0.38f, 0.98f); ItemManager.Instance.AddItem(val2); } catch (Exception ex) { Debug.LogError((object)("CARLOS MMO: erro ao registrar Peitoral Ancestral -> " + ex)); } } private void RegisterBossBonemassMace() { //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Expected O, but got Unknown //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Expected O, but got Unknown //IL_013a: Unknown result type (might be due to invalid IL or missing references) string text = FirstExistingPrefab("MaceIron", "MaceBronze", "Hammer"); if (string.IsNullOrEmpty(text)) { return; } try { ItemConfig val = new ItemConfig { Name = "Maça Putrificada", Description = "Relíquia de Bonemass, pesada, tóxica e brutal.", CraftingStation = CraftingStations.Forge, MinStationLevel = 1 }; CustomItem val2 = new CustomItem("CarlosBossBonemassMace", text, val); SharedData shared = val2.ItemDrop.m_itemData.m_shared; shared.m_name = "Maça Putrificada"; shared.m_description = "Relíquia de Bonemass, pesada, tóxica e brutal."; shared.m_weight = 2.6f; shared.m_value = 1800; shared.m_maxDurability = 2300f; shared.m_durabilityPerLevel = 125f; shared.m_maxQuality = 4; shared.m_damages.m_blunt = 108f; shared.m_damages.m_poison = 26f; shared.m_attackForce = 82f; shared.m_backstabBonus = 2f; TintBossPoison(((Component)val2.ItemDrop).gameObject); ApplyIconTint(val2, new Color(0.22f, 0.48f, 0.16f, 1f), 0.4f, 0.98f); ItemManager.Instance.AddItem(val2); } catch (Exception ex) { Debug.LogError((object)("CARLOS MMO: erro ao registrar Maça Putrificada -> " + ex)); } } private void RegisterBossModerBow() { //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Expected O, but got Unknown //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Expected O, but got Unknown //IL_0164: Unknown result type (might be due to invalid IL or missing references) string text = FirstExistingPrefab("BowDraugrFang", "BowHuntsman", "BowFineWood"); if (string.IsNullOrEmpty(text)) { return; } try { ItemConfig val = new ItemConfig { Name = "Arco Glacial", Description = "Relíquia de Moder, frio letal e precisão congelante.", CraftingStation = CraftingStations.Forge, MinStationLevel = 1 }; CustomItem val2 = new CustomItem("CarlosBossModerBow", text, val); SharedData shared = val2.ItemDrop.m_itemData.m_shared; shared.m_name = "Arco Glacial"; shared.m_description = "Relíquia de Moder, frio letal e precisão congelante."; shared.m_weight = 1.9f; shared.m_value = 2000; shared.m_maxDurability = 2400f; shared.m_durabilityPerLevel = 130f; shared.m_maxQuality = 4; shared.m_attackForce = 118f; shared.m_backstabBonus = 3.5f; shared.m_useDurability = true; shared.m_damages.m_pierce = 126f; shared.m_damages.m_frost = 30f; shared.m_attack.m_attackStamina = 7f; shared.m_attack.m_projectileVel = 95f; TintBossFrost(((Component)val2.ItemDrop).gameObject); ApplyIconTint(val2, new Color(0.72f, 0.9f, 1f, 1f), 0.42f, 1.08f); ItemManager.Instance.AddItem(val2); } catch (Exception ex) { Debug.LogError((object)("CARLOS MMO: erro ao registrar Arco Glacial -> " + ex)); } } private void RegisterBossYagluthSword() { //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Expected O, but got Unknown //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Expected O, but got Unknown //IL_013a: Unknown result type (might be due to invalid IL or missing references) string text = FirstExistingPrefab("SwordBlackmetal", "SwordIron", "SwordBronze"); if (string.IsNullOrEmpty(text)) { return; } try { ItemConfig val = new ItemConfig { Name = "Espada Infernal", Description = "Relíquia de Yagluth, queimando com poder destrutivo.", CraftingStation = CraftingStations.Forge, MinStationLevel = 1 }; CustomItem val2 = new CustomItem("CarlosBossYagluthSword", text, val); SharedData shared = val2.ItemDrop.m_itemData.m_shared; shared.m_name = "Espada Infernal"; shared.m_description = "Relíquia de Yagluth, queimando com poder destrutivo."; shared.m_weight = 2.2f; shared.m_value = 2200; shared.m_maxDurability = 2400f; shared.m_durabilityPerLevel = 130f; shared.m_maxQuality = 4; shared.m_damages.m_slash = 118f; shared.m_damages.m_fire = 34f; shared.m_attackForce = 78f; shared.m_backstabBonus = 2.8f; TintBossFire(((Component)val2.ItemDrop).gameObject); ApplyIconTint(val2, new Color(0.74f, 0.18f, 0.1f, 1f), 0.42f, 1.04f); ItemManager.Instance.AddItem(val2); } catch (Exception ex) { Debug.LogError((object)("CARLOS MMO: erro ao registrar Espada Infernal -> " + ex)); } } private void RegisterBossQueenChest() { //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Expected O, but got Unknown //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Expected O, but got Unknown //IL_00bf: Unknown result type (might be due to invalid IL or missing references) string text = FirstExistingPrefab("ArmorCarapaceChest", "ArmorWolfChest", "ArmorIronChest"); if (string.IsNullOrEmpty(text)) { return; } try { ItemConfig val = new ItemConfig { Name = "Peitoral Abissal", Description = "Relíquia final da Rainha, densa, sombria e refinada.", CraftingStation = CraftingStations.BlackForge, MinStationLevel = 1 }; CustomItem val2 = new CustomItem("CarlosBossQueenChest", text, val); ApplySharedStats(val2, "Peitoral Abissal", "Relíquia final da Rainha, densa, sombria e refinada.", 82f, 10.5f, 2600); TintBossQueen(((Component)val2.ItemDrop).gameObject); ApplyIconTint(val2, new Color(0.24f, 0.14f, 0.32f, 1f), 0.4f, 0.96f); ItemManager.Instance.AddItem(val2); } catch (Exception ex) { Debug.LogError((object)("CARLOS MMO: erro ao registrar Peitoral Abissal -> " + ex)); } } private void RegisterEsmeralda() { string baseItem = FirstExistingPrefab("ArmorRootChest", "ArmorBronzeChest", "ArmorIronChest"); string baseItem2 = FirstExistingPrefab("ArmorRootLegs", "ArmorTrollLeatherLegs", "ArmorIronLegs"); string baseItem3 = FirstExistingPrefab("HelmetMage", "HelmetFenring", "HelmetTrollLeather", "HelmetBronze"); AddDarkArmor("CarlosDarkChest", baseItem, "Peitoral Esmeralda Sombria", "Peitoral sombrio reforçado com energia esmeralda lapidada.", 38f, 9f, 520, 12, 8); AddDarkArmor("CarlosDarkLegs", baseItem2, "Grevas Esmeralda Sombria", "Grevas escuras para um guerreiro veloz e letal.", 32f, 8f, 470, 10, 6); AddDarkArmor("CarlosDarkHood", baseItem3, "Capuz Esmeralda Sombria", "Capuz sombrio de energia viva, no estilo Embla/Ocultista.", 20f, 3f, 420, 4, 8, 2); AddEsmeraldaCape("CarlosDarkCape", "CapeFeather", "Capa Esmeralda Sombria", "Capa roxa sombria com energia viva de uma esmeralda amaldiçoada.", 18f, 3.5f, 520, 12, 8, 4); } private void RegisterEsmeraldaWeapons() { RegisterEsmeraldaSword(); RegisterEsmeraldaStaff(); } private void RegisterEsmeraldaSword() { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Expected O, but got Unknown //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Expected O, but got Unknown //IL_017f: Unknown result type (might be due to invalid IL or missing references) string text = FirstExistingPrefab("SwordIron", "SwordBronze", "AxeIron"); if (string.IsNullOrEmpty(text)) { Debug.LogWarning((object)"CARLOS MMO: nenhuma base válida para espada Esmeralda."); return; } try { ItemConfig val = new ItemConfig { Name = "Espada Esmeralda Sombria", Description = "Uma lâmina amaldiçoada envolta em energia verde sombria.", CraftingStation = CraftingStations.Forge, MinStationLevel = 2 }; val.AddRequirement("Iron", 16, 0); val.AddRequirement("WitheredBone", 6, 0); val.AddRequirement("DeerHide", 4, 0); val.AddRequirement("Guck", 4, 0); CustomItem val2 = new CustomItem("CarlosDarkSword", text, val); SharedData shared = val2.ItemDrop.m_itemData.m_shared; shared.m_name = "Espada Esmeralda Sombria"; shared.m_description = "Uma lâmina amaldiçoada envolta em energia verde sombria."; shared.m_weight = 2f; shared.m_value = 900; shared.m_maxDurability = 1800f; shared.m_durabilityPerLevel = 95f; shared.m_maxQuality = 4; shared.m_damages.m_slash = 82f; shared.m_damages.m_spirit = 12f; shared.m_attackForce = 55f; shared.m_backstabBonus = 2.5f; TintDark(((Component)val2.ItemDrop).gameObject); ApplyIconTint(val2, new Color(0.08f, 0.48f, 0.28f, 1f), 0.34f, 0.92f); ItemManager.Instance.AddItem(val2); Debug.Log((object)("CARLOS MMO: Espada Esmeralda registrada com base " + text)); } catch (Exception ex) { Debug.LogError((object)("CARLOS MMO: erro ao registrar espada Esmeralda -> " + ex)); } } private void RegisterEsmeraldaStaff() { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Expected O, but got Unknown //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Expected O, but got Unknown //IL_01b3: Unknown result type (might be due to invalid IL or missing references) string text = FirstExistingPrefab("StaffFireball", "StaffGreenRoots", "StaffShield"); if (string.IsNullOrEmpty(text)) { Debug.LogWarning((object)"CARLOS MMO: nenhuma base válida para cajado Esmeralda."); return; } try { ItemConfig val = new ItemConfig { Name = "Cajado Esmeralda Sombria", Description = "Um cajado insano de fogo esmeralda, pulsando energia lapidada e devastadora.", CraftingStation = CraftingStations.Forge, MinStationLevel = 2 }; val.AddRequirement("Iron", 18, 0); val.AddRequirement("RoundLog", 12, 0); val.AddRequirement("Guck", 8, 0); val.AddRequirement("WitheredBone", 6, 0); CustomItem val2 = new CustomItem("CarlosDarkStaff", text, val); SharedData shared = val2.ItemDrop.m_itemData.m_shared; shared.m_name = "Cajado Esmeralda Sombria"; shared.m_description = "Um cajado insano de fogo esmeralda, pulsando energia lapidada e devastadora."; shared.m_weight = 2.2f; shared.m_value = 1450; shared.m_maxDurability = 2200f; shared.m_durabilityPerLevel = 110f; shared.m_maxQuality = 4; shared.m_damages.m_fire = 68f; shared.m_damages.m_spirit = 32f; shared.m_damages.m_blunt = 22f; shared.m_attackForce = 70f; shared.m_backstabBonus = 1.2f; shared.m_attack.m_attackEitr = 0f; shared.m_secondaryAttack.m_attackEitr = 0f; TintDark(((Component)val2.ItemDrop).gameObject); ApplyIconTint(val2, new Color(0.1f, 0.54f, 0.3f, 1f), 0.36f, 0.93f); ItemManager.Instance.AddItem(val2); Debug.Log((object)("CARLOS MMO: Cajado Esmeralda registrado com base " + text)); } catch (Exception ex) { Debug.LogError((object)("CARLOS MMO: erro ao registrar cajado Esmeralda -> " + ex)); } } private void RegisterGuardian() { string baseItem = FirstExistingPrefab("HelmetDrake", "HelmetPadded", "HelmetIron"); string baseItem2 = FirstExistingPrefab("ArmorPaddedCuirass", "ArmorCarapaceChest", "ArmorWolfChest", "ArmorIronChest"); string baseItem3 = FirstExistingPrefab("ArmorWolfLegs", "ArmorPaddedGreaves", "ArmorIronLegs"); AddGuardianArmor("CarlosGuardianHelmet", baseItem, "Elmo do Guardião Perolado", "Elmo branco com brilho sagrado.", 32f, 5f, 700, 10, 6, 2); AddGuardianArmor("CarlosGuardianChest", baseItem2, "Peitoral do Guardião Perolado", "Peitoral lendário de proteção máxima.", 56f, 10f, 980, 18, 10, 6); AddGuardianArmor("CarlosGuardianLegs", baseItem3, "Grevas do Guardião Perolado", "Grevas resistentes e refinadas.", 50f, 9f, 900, 14, 8, 5); AddGuardianCape("CarlosGuardianCape", "CapeLox", "Capa do Guardião Perolado", "Capa branca com aura protetora.", 20f, 4f, 760, 8, 6, 6); } private void RegisterGuardianWeapons() { RegisterGuardianBow(); RegisterGuardianTwinDaggers(); } private void RegisterGuardianBow() { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Expected O, but got Unknown //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Expected O, but got Unknown //IL_01b9: Unknown result type (might be due to invalid IL or missing references) string text = FirstExistingPrefab("BowDraugrFang", "BowHuntsman", "BowFineWood"); if (string.IsNullOrEmpty(text)) { Debug.LogWarning((object)"CARLOS MMO: nenhuma base válida para arco do Guardião."); return; } try { ItemConfig val = new ItemConfig { Name = "Arco do Guardião Perolado", Description = "Um arco sagrado branco, preciso e poderoso.", CraftingStation = CraftingStations.Forge, MinStationLevel = 3 }; val.AddRequirement("Silver", 18, 0); val.AddRequirement("Iron", 10, 0); val.AddRequirement("LoxPelt", 4, 0); val.AddRequirement("Crystal", 4, 0); val.AddRequirement("Feathers", 16, 0); CustomItem val2 = new CustomItem("CarlosGuardianBow", text, val); SharedData shared = val2.ItemDrop.m_itemData.m_shared; shared.m_name = "Arco do Guardião Perolado"; shared.m_description = "Um arco sagrado branco, preciso e poderoso."; shared.m_weight = 1.8f; shared.m_value = 1350; shared.m_maxDurability = 2200f; shared.m_durabilityPerLevel = 110f; shared.m_maxQuality = 4; shared.m_attackForce = 82f; shared.m_backstabBonus = 2.5f; shared.m_useDurability = true; shared.m_damages.m_pierce = 108f; shared.m_damages.m_spirit = 24f; shared.m_attack.m_attackStamina = 7f; shared.m_attack.m_projectileVel = 88f; TintGuardian(((Component)val2.ItemDrop).gameObject); ApplyIconTint(val2, new Color(0.96f, 0.94f, 0.76f, 1f), 0.38f, 1.1f); ItemManager.Instance.AddItem(val2); Debug.Log((object)("CARLOS MMO: Arco do Guardião registrado com base " + text)); } catch (Exception ex) { Debug.LogError((object)("CARLOS MMO: erro ao registrar arco do Guardião -> " + ex)); } } private void RegisterGuardianTwinDaggers() { RegisterGuardianDaggerSun(); RegisterGuardianDaggerMoon(); } private void RegisterGuardianDaggerSun() { //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Expected O, but got Unknown //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Expected O, but got Unknown //IL_0169: Unknown result type (might be due to invalid IL or missing references) string text = FirstExistingPrefab("KnifeBlackMetal", "KnifeChitin"); if (string.IsNullOrEmpty(text)) { Debug.LogWarning((object)"CARLOS MMO: nenhuma base válida para Adaga Solar do Guardião."); return; } try { ItemConfig val = new ItemConfig { Name = "Adaga Solar do Guardião", Description = "Uma adaga sagrada veloz, feita para golpes limpos e luminosos.", CraftingStation = CraftingStations.Forge, MinStationLevel = 3 }; val.AddRequirement("Silver", 10, 0); val.AddRequirement("Crystal", 4, 0); val.AddRequirement("LoxPelt", 2, 0); CustomItem val2 = new CustomItem("CarlosGuardianDaggerSun", text, val); SharedData shared = val2.ItemDrop.m_itemData.m_shared; shared.m_name = "Adaga Solar do Guardião"; shared.m_description = "Uma adaga sagrada veloz, feita para golpes limpos e luminosos."; shared.m_weight = 0.8f; shared.m_value = 950; shared.m_maxDurability = 1700f; shared.m_durabilityPerLevel = 95f; shared.m_maxQuality = 4; shared.m_damages.m_pierce = 76f; shared.m_damages.m_spirit = 14f; shared.m_backstabBonus = 4f; shared.m_attackForce = 42f; TintGuardian(((Component)val2.ItemDrop).gameObject); ApplyIconTint(val2, new Color(1f, 0.88f, 0.45f, 1f), 0.42f, 1.08f); ItemManager.Instance.AddItem(val2); Debug.Log((object)("CARLOS MMO: Adaga Solar do Guardião registrada com base " + text)); } catch (Exception ex) { Debug.LogError((object)("CARLOS MMO: erro ao registrar Adaga Solar do Guardião -> " + ex)); } } private void RegisterGuardianDaggerMoon() { //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Expected O, but got Unknown //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Expected O, but got Unknown //IL_0169: Unknown result type (might be due to invalid IL or missing references) string text = FirstExistingPrefab("KnifeChitin", "KnifeBlackMetal"); if (string.IsNullOrEmpty(text)) { Debug.LogWarning((object)"CARLOS MMO: nenhuma base válida para Adaga Lunar do Guardião."); return; } try { ItemConfig val = new ItemConfig { Name = "Adaga Lunar do Guardião", Description = "Uma adaga sagrada gêmea, rápida e elegante.", CraftingStation = CraftingStations.Forge, MinStationLevel = 3 }; val.AddRequirement("Silver", 10, 0); val.AddRequirement("Crystal", 4, 0); val.AddRequirement("LoxPelt", 2, 0); CustomItem val2 = new CustomItem("CarlosGuardianDaggerMoon", text, val); SharedData shared = val2.ItemDrop.m_itemData.m_shared; shared.m_name = "Adaga Lunar do Guardião"; shared.m_description = "Uma adaga sagrada gêmea, rápida e elegante."; shared.m_weight = 0.8f; shared.m_value = 950; shared.m_maxDurability = 1700f; shared.m_durabilityPerLevel = 95f; shared.m_maxQuality = 4; shared.m_damages.m_pierce = 76f; shared.m_damages.m_spirit = 14f; shared.m_backstabBonus = 4f; shared.m_attackForce = 42f; TintGuardian(((Component)val2.ItemDrop).gameObject); ApplyIconTint(val2, new Color(0.86f, 0.92f, 1f, 1f), 0.42f, 1.08f); ItemManager.Instance.AddItem(val2); Debug.Log((object)("CARLOS MMO: Adaga Lunar do Guardião registrada com base " + text)); } catch (Exception ex) { Debug.LogError((object)("CARLOS MMO: erro ao registrar Adaga Lunar do Guardião -> " + ex)); } } private void RegisterHunter() { string baseItem = FirstExistingPrefab("HelmetFenring", "HelmetTrollLeather", "HelmetLeather"); string baseItem2 = FirstExistingPrefab("ArmorFenringChest", "ArmorTrollLeatherChest", "ArmorLeatherChest"); string baseItem3 = FirstExistingPrefab("ArmorFenringLegs", "ArmorTrollLeatherLegs", "ArmorLeatherLegs"); AddHunterArmor("CarlosHunterHood", baseItem, "Capuz do Caçador Fantasma", "Capuz frio e sombrio de um rastreador invisível.", 30f, 2.5f, 820, 8, 10, 0, 8, 6, 4); AddHunterArmor("CarlosHunterChest", baseItem2, "Peitoral do Caçador Fantasma", "Peitoral furtivo para ataques rápidos e precisos.", 52f, 5.5f, 1180, 14, 18, 10, 0, 8, 6); AddHunterArmor("CarlosHunterLegs", baseItem3, "Grevas do Caçador Fantasma", "Grevas ágeis e selvagens, feitas para mover-se como uma sombra.", 46f, 4.5f, 1080, 10, 10, 8, 4, 6, 4); AddHunterCape("CarlosHunterCape", "CapeFeather", "Manto do Caçador Fantasma", "Manto escuro de penas frias, feito para sumir na névoa.", 22f, 2.5f, 980, 8, 8, 18, 6, 4); } private void RegisterHunterWeapons() { RegisterHunterBow(); RegisterHunterDagger(); } private void RegisterHunterBow() { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Expected O, but got Unknown //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Expected O, but got Unknown //IL_01ba: Unknown result type (might be due to invalid IL or missing references) string text = FirstExistingPrefab("BowDraugrFang", "BowHuntsman", "BowFineWood"); if (string.IsNullOrEmpty(text)) { Debug.LogWarning((object)"CARLOS MMO: nenhuma base válida para arco do Caçador."); return; } try { ItemConfig val = new ItemConfig { Name = "Arco do Caçador Fantasma", Description = "Um arco silencioso, amaldiçoado e mortal, feito para atravessar carne e alma.", CraftingStation = CraftingStations.Workbench, MinStationLevel = 4 }; val.AddRequirement("TrollHide", 14, 0); val.AddRequirement("FineWood", 30, 0); val.AddRequirement("Feathers", 30, 0); val.AddRequirement("Obsidian", 16, 0); val.AddRequirement("Silver", 8, 0); CustomItem val2 = new CustomItem("CarlosHunterBow", text, val); SharedData shared = val2.ItemDrop.m_itemData.m_shared; shared.m_name = "Arco do Caçador Fantasma"; shared.m_description = "Um arco silencioso, amaldiçoado e mortal, feito para atravessar carne e alma."; shared.m_weight = 1.4f; shared.m_value = 1750; shared.m_maxDurability = 2400f; shared.m_durabilityPerLevel = 120f; shared.m_maxQuality = 4; shared.m_attackForce = 95f; shared.m_backstabBonus = 4f; shared.m_useDurability = true; shared.m_damages.m_pierce = 138f; shared.m_damages.m_spirit = 32f; shared.m_attack.m_attackStamina = 5f; shared.m_attack.m_projectileVel = 105f; TintHunter(((Component)val2.ItemDrop).gameObject); ApplyIconTint(val2, new Color(0.14f, 0.22f, 0.42f, 1f), 0.34f, 0.92f); ItemManager.Instance.AddItem(val2); Debug.Log((object)("CARLOS MMO: Arco do Caçador Fantasma FINAL registrado com base " + text)); } catch (Exception ex) { Debug.LogError((object)("CARLOS MMO: erro ao registrar arco do Caçador Fantasma -> " + ex)); } } private void RegisterHunterDagger() { //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Expected O, but got Unknown //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Expected O, but got Unknown //IL_0168: Unknown result type (might be due to invalid IL or missing references) string text = FirstExistingPrefab("KnifeBlackMetal", "KnifeChitin"); if (string.IsNullOrEmpty(text)) { Debug.LogWarning((object)"CARLOS MMO: nenhuma base válida para adaga do Caçador."); return; } try { ItemConfig val = new ItemConfig { Name = "Adaga do Caçador Fantasma", Description = "Silenciosa, rápida e devastadora pelas costas.", CraftingStation = CraftingStations.Workbench, MinStationLevel = 4 }; val.AddRequirement("TrollHide", 10, 0); val.AddRequirement("Obsidian", 16, 0); val.AddRequirement("Chitin", 10, 0); val.AddRequirement("Silver", 6, 0); CustomItem val2 = new CustomItem("CarlosHunterDagger", text, val); SharedData shared = val2.ItemDrop.m_itemData.m_shared; shared.m_name = "Adaga do Caçador Fantasma"; shared.m_description = "Silenciosa, rápida e devastadora pelas costas."; shared.m_weight = 0.7f; shared.m_value = 1450; shared.m_maxDurability = 1900f; shared.m_durabilityPerLevel = 110f; shared.m_maxQuality = 4; shared.m_damages.m_pierce = 102f; shared.m_backstabBonus = 7f; shared.m_attackForce = 55f; TintHunter(((Component)val2.ItemDrop).gameObject); ApplyIconTint(val2, new Color(0.12f, 0.2f, 0.4f, 1f), 0.34f, 0.92f); ItemManager.Instance.AddItem(val2); Debug.Log((object)("CARLOS MMO: Adaga do Caçador Fantasma FINAL registrada com base " + text)); } catch (Exception ex) { Debug.LogError((object)("CARLOS MMO: erro ao registrar adaga do Caçador Fantasma -> " + ex)); } } private void RegisterBerserker() { string baseItem = FirstExistingPrefab("HelmetIron", "HelmetPadded", "HelmetBronze"); string baseItem2 = FirstExistingPrefab("ArmorCarapaceChest", "ArmorFenringChest", "ArmorIronChest", "ArmorBronzeChest"); string baseItem3 = FirstExistingPrefab("ArmorCarapaceLegs", "ArmorFenringLegs", "ArmorWolfLegs", "ArmorIronLegs"); AddBerserkerArmor("CarlosBerserkerHelmet", baseItem, "Elmo do Berserker Ferro Negro", "Elmo brutal forjado para guerreiros dominados pela fúria.", 34f, 6f, 720, 12, 2, 1); AddBerserkerArmor("CarlosBerserkerChest", baseItem2, "Peitoral do Berserker Ferro Negro", "Peitoral pesado marcado por guerra, sangue e fúria.", 58f, 11f, 860, 20, 4, 2); AddBerserkerArmor("CarlosBerserkerLegs", baseItem3, "Grevas do Berserker Ferro Negro", "Grevas selvagens de um lutador que vive para esmagar.", 40f, 7f, 760, 10, 4, 1, 2); AddBerserkerCape("CarlosBerserkerCape", "CapeWolf", "Capa do Berserker Ferro Negro", "Capa feroz, escura e marcada por uma aura vermelha de massacre.", 18f, 4f, 700, 8, 4, 1); } private void RegisterBerserkerWeapons() { RegisterBerserkerAxeSafe(); RegisterBerserkerBowSafe(); } private void RegisterBerserkerAxeSafe() { //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Expected O, but got Unknown //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Expected O, but got Unknown //IL_0168: Unknown result type (might be due to invalid IL or missing references) string text = FirstExistingPrefab("Battleaxe", "AxeBlackMetal", "SwordBlackmetal", "AtgeirBlackmetal"); if (string.IsNullOrEmpty(text)) { Debug.LogWarning((object)"CARLOS MMO: nenhuma base válida encontrada para a arma melee do Berserker."); return; } try { ItemConfig val = new ItemConfig { Name = "Machado do Berserker Ferro Negro", Description = "Uma arma brutal usada por guerreiros em fúria.", CraftingStation = CraftingStations.Forge, MinStationLevel = 3 }; val.AddRequirement("BlackMetal", 20, 0); val.AddRequirement("WolfPelt", 5, 0); val.AddRequirement("Chain", 2, 0); CustomItem val2 = new CustomItem("CarlosBerserkerAxe", text, val); SharedData shared = val2.ItemDrop.m_itemData.m_shared; shared.m_name = "Machado do Berserker Ferro Negro"; shared.m_description = "Uma arma brutal usada por guerreiros em fúria."; shared.m_weight = 2.5f; shared.m_value = 900; shared.m_maxDurability = 1800f; shared.m_durabilityPerLevel = 100f; shared.m_maxQuality = 4; shared.m_damages.m_slash = 95f; shared.m_attackForce = 80f; shared.m_backstabBonus = 2f; TintBerserker(((Component)val2.ItemDrop).gameObject); ApplyIconTint(val2, new Color(0.4f, 0.08f, 0.08f, 1f), 0.34f, 0.92f); ItemManager.Instance.AddItem(val2); Debug.Log((object)("CARLOS MMO: arma melee Berserker registrada com base " + text)); } catch (Exception ex) { Debug.LogError((object)("CARLOS MMO: erro ao registrar arma melee Berserker -> " + ex)); } } private void RegisterBerserkerBowSafe() { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Expected O, but got Unknown //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Expected O, but got Unknown //IL_01b9: Unknown result type (might be due to invalid IL or missing references) string text = FirstExistingPrefab("BowDraugrFang", "BowHuntsman", "BowFineWood"); if (string.IsNullOrEmpty(text)) { Debug.LogWarning((object)"CARLOS MMO: nenhuma base válida encontrada para o arco Berserker."); return; } try { ItemConfig val = new ItemConfig { Name = "Arco do Berserker Ferro Negro", Description = "Um arco demoníaco, violento e absurdamente poderoso.", CraftingStation = CraftingStations.Forge, MinStationLevel = 3 }; val.AddRequirement("BlackMetal", 30, 0); val.AddRequirement("WolfPelt", 8, 0); val.AddRequirement("Silver", 10, 0); val.AddRequirement("Feathers", 20, 0); val.AddRequirement("Chain", 4, 0); CustomItem val2 = new CustomItem("CarlosBerserkerBow", text, val); SharedData shared = val2.ItemDrop.m_itemData.m_shared; shared.m_name = "Arco do Berserker Ferro Negro"; shared.m_description = "Um arco demoníaco, violento e absurdamente poderoso."; shared.m_weight = 2f; shared.m_value = 1500; shared.m_maxDurability = 2200f; shared.m_durabilityPerLevel = 120f; shared.m_maxQuality = 4; shared.m_attackForce = 120f; shared.m_backstabBonus = 4f; shared.m_useDurability = true; shared.m_damages.m_pierce = 140f; shared.m_damages.m_spirit = 20f; shared.m_attack.m_attackStamina = 8f; shared.m_attack.m_projectileVel = 80f; TintBerserker(((Component)val2.ItemDrop).gameObject); ApplyIconTint(val2, new Color(0.42f, 0.09f, 0.09f, 1f), 0.34f, 0.92f); ItemManager.Instance.AddItem(val2); Debug.Log((object)("CARLOS MMO: arco Berserker registrado com base " + text)); } catch (Exception ex) { Debug.LogError((object)("CARLOS MMO: erro ao registrar arco Berserker -> " + ex)); } } private void RegisterPaladin() { string baseItem = FirstExistingPrefab("HelmetPadded", "HelmetCarapace", "HelmetDrake"); string baseItem2 = FirstExistingPrefab("ArmorCarapaceChest", "ArmorPaddedCuirass", "ArmorWolfChest"); string baseItem3 = FirstExistingPrefab("ArmorCarapaceLegs", "ArmorPaddedGreaves", "ArmorWolfLegs"); AddPaladinArmor("CarlosPaladinHelmet", baseItem, "Elmo do Paladino Celestial", "Elmo sagrado de um protetor lendário.", 38f, 5.5f, 1200, 6, 8, 4); AddPaladinArmor("CarlosPaladinChest", baseItem2, "Peitoral do Paladino Celestial", "Peitoral celestial de proteção e glória.", 64f, 10.5f, 1600, 12, 14, 8); AddPaladinArmor("CarlosPaladinLegs", baseItem3, "Grevas do Paladino Celestial", "Grevas sagradas de um campeão luminoso.", 58f, 9f, 1450, 10, 12, 6); AddPaladinCape("CarlosPaladinCape", "CapeLinen", "Manto do Paladino Celestial", "Um manto claro e sagrado com brilho nobre.", 22f, 3.5f, 1200, 10, 10, 8); } private void RegisterAbyssal() { string baseItem = FirstExistingPrefab("HelmetMage", "HelmetFenring", "HelmetDrake"); string baseItem2 = FirstExistingPrefab("ArmorWolfChest", "ArmorFenringChest", "ArmorCarapaceChest"); string baseItem3 = FirstExistingPrefab("ArmorMageLegs", "ArmorFenringLegs", "ArmorCarapaceLegs"); AddAbyssArmor("CarlosAbyssHelmet", baseItem, "Capuz Abissal Noturno", "Capuz escuro de um soberano do abismo.", 34f, 3.5f, 1300, 6, 6, 6); AddAbyssArmor("CarlosAbyssChest", baseItem2, "Peitoral Abissal Noturno", "Peitoral abissal noturno mais bruto, pesado e com padrões de urso.", 60f, 8f, 1700, 10, 10, 10); AddAbyssArmor("CarlosAbyssLegs", baseItem3, "Grevas Abissais Noturnas", "Grevas elegantes do vazio escurecido.", 54f, 6.5f, 1550, 8, 8, 8); AddAbyssCape("CarlosAbyssCape", "CapeLinen", "Manto Abissal Noturno", "Manto escuro de brilho profundo, quase negro e refinado.", 22f, 3f, 1280, 6, 10, 8); } private string FirstExistingPrefab(params string[] prefabNames) { foreach (string text in prefabNames) { if (!string.IsNullOrEmpty(text)) { GameObject prefab = PrefabManager.Instance.GetPrefab(text); if ((Object)(object)prefab != (Object)null) { return text; } } } return null; } private void AddDarkArmor(string internalName, string baseItem, string displayName, string description, float armor, float weight, int value, int iron = 0, int hide = 0, int feathers = 0) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Expected O, but got Unknown //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Expected O, but got Unknown //IL_00c9: Unknown result type (might be due to invalid IL or missing references) if (!string.IsNullOrEmpty(baseItem)) { ItemConfig val = new ItemConfig { Name = displayName, Description = description, CraftingStation = CraftingStations.Forge, MinStationLevel = 2 }; if (iron > 0) { val.AddRequirement("Iron", iron, 0); } if (hide > 0) { val.AddRequirement("DeerHide", hide, 0); } if (feathers > 0) { val.AddRequirement("Feathers", feathers, 0); } CustomItem val2 = new CustomItem(internalName, baseItem, val); ApplySharedStats(val2, displayName, description, armor, weight, value); TintDark(((Component)val2.ItemDrop).gameObject); ApplyIconTint(val2, new Color(0.08f, 0.48f, 0.28f, 1f), 0.34f, 0.92f); ItemManager.Instance.AddItem(val2); } } private void AddEsmeraldaCape(string internalName, string baseItem, string displayName, string description, float armor, float weight, int value, int feathers = 0, int hide = 0, int guck = 0) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Expected O, but got Unknown //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Expected O, but got Unknown //IL_00c9: Unknown result type (might be due to invalid IL or missing references) if (!string.IsNullOrEmpty(baseItem)) { ItemConfig val = new ItemConfig { Name = displayName, Description = description, CraftingStation = CraftingStations.Forge, MinStationLevel = 2 }; if (feathers > 0) { val.AddRequirement("Feathers", feathers, 0); } if (hide > 0) { val.AddRequirement("DeerHide", hide, 0); } if (guck > 0) { val.AddRequirement("Guck", guck, 0); } CustomItem val2 = new CustomItem(internalName, baseItem, val); ApplySharedStats(val2, displayName, description, armor, weight, value); TintEsmeraldaCape(((Component)val2.ItemDrop).gameObject); ApplyIconTint(val2, new Color(0.26f, 0.1f, 0.4f, 1f), 0.36f, 0.92f); ItemManager.Instance.AddItem(val2); } } private void AddGuardianArmor(string internalName, string baseItem, string displayName, string description, float armor, float weight, int value, int iron = 0, int silver = 0, int loxPelt = 0) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Expected O, but got Unknown //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Expected O, but got Unknown //IL_00c9: Unknown result type (might be due to invalid IL or missing references) if (!string.IsNullOrEmpty(baseItem)) { ItemConfig val = new ItemConfig { Name = displayName, Description = description, CraftingStation = CraftingStations.Forge, MinStationLevel = 3 }; if (iron > 0) { val.AddRequirement("Iron", iron, 0); } if (silver > 0) { val.AddRequirement("Silver", silver, 0); } if (loxPelt > 0) { val.AddRequirement("LoxPelt", loxPelt, 0); } CustomItem val2 = new CustomItem(internalName, baseItem, val); ApplySharedStats(val2, displayName, description, armor, weight, value); TintGuardian(((Component)val2.ItemDrop).gameObject); ApplyIconTint(val2, new Color(0.96f, 0.94f, 0.76f, 1f), 0.36f, 1.1f); ItemManager.Instance.AddItem(val2); } } private void AddGuardianCape(string internalName, string baseItem, string displayName, string description, float armor, float weight, int value, int loxPelt = 0, int silver = 0, int feathers = 0) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Expected O, but got Unknown //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Expected O, but got Unknown //IL_00c9: Unknown result type (might be due to invalid IL or missing references) if (!string.IsNullOrEmpty(baseItem)) { ItemConfig val = new ItemConfig { Name = displayName, Description = description, CraftingStation = CraftingStations.Forge, MinStationLevel = 3 }; if (loxPelt > 0) { val.AddRequirement("LoxPelt", loxPelt, 0); } if (silver > 0) { val.AddRequirement("Silver", silver, 0); } if (feathers > 0) { val.AddRequirement("Feathers", feathers, 0); } CustomItem val2 = new CustomItem(internalName, baseItem, val); ApplySharedStats(val2, displayName, description, armor, weight, value); TintGuardian(((Component)val2.ItemDrop).gameObject); ApplyIconTint(val2, new Color(0.98f, 0.96f, 0.82f, 1f), 0.38f, 1.1f); ItemManager.Instance.AddItem(val2); } } private void AddHunterArmor(string internalName, string baseItem, string displayName, string description, float armor, float weight, int value, int leatherScraps = 0, int trollHide = 0, int deerHide = 0, int feathers = 0, int obsidian = 0, int silver = 0) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Expected O, but got Unknown //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Expected O, but got Unknown //IL_0117: Unknown result type (might be due to invalid IL or missing references) if (!string.IsNullOrEmpty(baseItem)) { ItemConfig val = new ItemConfig { Name = displayName, Description = description, CraftingStation = CraftingStations.Workbench, MinStationLevel = 4 }; if (leatherScraps > 0) { val.AddRequirement("LeatherScraps", leatherScraps, 0); } if (trollHide > 0) { val.AddRequirement("TrollHide", trollHide, 0); } if (deerHide > 0) { val.AddRequirement("DeerHide", deerHide, 0); } if (feathers > 0) { val.AddRequirement("Feathers", feathers, 0); } if (obsidian > 0) { val.AddRequirement("Obsidian", obsidian, 0); } if (silver > 0) { val.AddRequirement("Silver", silver, 0); } CustomItem val2 = new CustomItem(internalName, baseItem, val); ApplySharedStats(val2, displayName, description, armor, weight, value); TintHunter(((Component)val2.ItemDrop).gameObject); ApplyIconTint(val2, new Color(0.14f, 0.22f, 0.42f, 1f), 0.34f, 0.92f); ItemManager.Instance.AddItem(val2); } } private void AddHunterCape(string internalName, string baseItem, string displayName, string description, float armor, float weight, int value, int deerHide = 0, int trollHide = 0, int feathers = 0, int obsidian = 0, int silver = 0) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Expected O, but got Unknown //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Expected O, but got Unknown //IL_00fd: Unknown result type (might be due to invalid IL or missing references) if (!string.IsNullOrEmpty(baseItem)) { ItemConfig val = new ItemConfig { Name = displayName, Description = description, CraftingStation = CraftingStations.Workbench, MinStationLevel = 4 }; if (deerHide > 0) { val.AddRequirement("DeerHide", deerHide, 0); } if (trollHide > 0) { val.AddRequirement("TrollHide", trollHide, 0); } if (feathers > 0) { val.AddRequirement("Feathers", feathers, 0); } if (obsidian > 0) { val.AddRequirement("Obsidian", obsidian, 0); } if (silver > 0) { val.AddRequirement("Silver", silver, 0); } CustomItem val2 = new CustomItem(internalName, baseItem, val); ApplySharedStats(val2, displayName, description, armor, weight, value); TintHunterCape(((Component)val2.ItemDrop).gameObject); ApplyIconTint(val2, new Color(0.12f, 0.2f, 0.4f, 1f), 0.34f, 0.92f); ItemManager.Instance.AddItem(val2); } } private void AddBerserkerArmor(string internalName, string baseItem, string displayName, string description, float armor, float weight, int value, int iron = 0, int wolfPelt = 0, int chain = 0, int feathers = 0) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Expected O, but got Unknown //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Expected O, but got Unknown //IL_00e3: Unknown result type (might be due to invalid IL or missing references) if (!string.IsNullOrEmpty(baseItem)) { ItemConfig val = new ItemConfig { Name = displayName, Description = description, CraftingStation = CraftingStations.Forge, MinStationLevel = 3 }; if (iron > 0) { val.AddRequirement("Iron", iron, 0); } if (wolfPelt > 0) { val.AddRequirement("WolfPelt", wolfPelt, 0); } if (chain > 0) { val.AddRequirement("Chain", chain, 0); } if (feathers > 0) { val.AddRequirement("Feathers", feathers, 0); } CustomItem val2 = new CustomItem(internalName, baseItem, val); ApplySharedStats(val2, displayName, description, armor, weight, value); TintBerserker(((Component)val2.ItemDrop).gameObject); ApplyIconTint(val2, new Color(0.4f, 0.08f, 0.08f, 1f), 0.34f, 0.92f); ItemManager.Instance.AddItem(val2); } } private void AddBerserkerCape(string internalName, string baseItem, string displayName, string description, float armor, float weight, int value, int wolfPelt = 0, int silver = 0, int trophies = 0) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Expected O, but got Unknown //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Expected O, but got Unknown //IL_00c9: Unknown result type (might be due to invalid IL or missing references) if (!string.IsNullOrEmpty(baseItem)) { ItemConfig val = new ItemConfig { Name = displayName, Description = description, CraftingStation = CraftingStations.Forge, MinStationLevel = 3 }; if (wolfPelt > 0) { val.AddRequirement("WolfPelt", wolfPelt, 0); } if (silver > 0) { val.AddRequirement("Silver", silver, 0); } if (trophies > 0) { val.AddRequirement("TrophyWolf", trophies, 0); } CustomItem val2 = new CustomItem(internalName, baseItem, val); ApplySharedStats(val2, displayName, description, armor, weight, value); TintBerserkerCape(((Component)val2.ItemDrop).gameObject); ApplyIconTint(val2, new Color(0.42f, 0.09f, 0.09f, 1f), 0.34f, 0.92f); ItemManager.Instance.AddItem(val2); } } private void AddPaladinArmor(string internalName, string baseItem, string displayName, string description, float armor, float weight, int value, int blackMetal = 0, int silver = 0, int loxPelt = 0) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Expected O, but got Unknown //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Expected O, but got Unknown //IL_00c9: Unknown result type (might be due to invalid IL or missing references) if (!string.IsNullOrEmpty(baseItem)) { ItemConfig val = new ItemConfig { Name = displayName, Description = description, CraftingStation = CraftingStations.Forge, MinStationLevel = 4 }; if (blackMetal > 0) { val.AddRequirement("BlackMetal", blackMetal, 0); } if (silver > 0) { val.AddRequirement("Silver", silver, 0); } if (loxPelt > 0) { val.AddRequirement("LoxPelt", loxPelt, 0); } CustomItem val2 = new CustomItem(internalName, baseItem, val); ApplySharedStats(val2, displayName, description, armor, weight, value); TintPaladin(((Component)val2.ItemDrop).gameObject); ApplyIconTint(val2, new Color(0.9f, 0.88f, 0.72f, 1f), 0.34f, 1.04f); ItemManager.Instance.AddItem(val2); } } private void AddPaladinCape(string internalName, string baseItem, string displayName, string description, float armor, float weight, int value, int linen = 0, int silver = 0, int feathers = 0) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Expected O, but got Unknown //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Expected O, but got Unknown //IL_00c9: Unknown result type (might be due to invalid IL or missing references) if (!string.IsNullOrEmpty(baseItem)) { ItemConfig val = new ItemConfig { Name = displayName, Description = description, CraftingStation = CraftingStations.Forge, MinStationLevel = 4 }; if (linen > 0) { val.AddRequirement("LinenThread", linen, 0); } if (silver > 0) { val.AddRequirement("Silver", silver, 0); } if (feathers > 0) { val.AddRequirement("Feathers", feathers, 0); } CustomItem val2 = new CustomItem(internalName, baseItem, val); ApplySharedStats(val2, displayName, description, armor, weight, value); TintPaladin(((Component)val2.ItemDrop).gameObject); ApplyIconTint(val2, new Color(0.94f, 0.9f, 0.78f, 1f), 0.34f, 1.04f); ItemManager.Instance.AddItem(val2); } } private void AddAbyssArmor(string internalName, string baseItem, string displayName, string description, float armor, float weight, int value, int eitr = 0, int blackMetal = 0, int linen = 0) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Expected O, but got Unknown //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Expected O, but got Unknown //IL_00c9: Unknown result type (might be due to invalid IL or missing references) if (!string.IsNullOrEmpty(baseItem)) { ItemConfig val = new ItemConfig { Name = displayName, Description = description, CraftingStation = CraftingStations.BlackForge, MinStationLevel = 1 }; if (eitr > 0) { val.AddRequirement("Eitr", eitr, 0); } if (blackMetal > 0) { val.AddRequirement("BlackMetal", blackMetal, 0); } if (linen > 0) { val.AddRequirement("LinenThread", linen, 0); } CustomItem val2 = new CustomItem(internalName, baseItem, val); ApplySharedStats(val2, displayName, description, armor, weight, value); TintAbyss(((Component)val2.ItemDrop).gameObject); ApplyIconTint(val2, new Color(0.32f, 0.2f, 0.12f, 1f), 0.34f, 1f); ItemManager.Instance.AddItem(val2); } } private void AddAbyssCape(string internalName, string baseItem, string displayName, string description, float armor, float weight, int value, int eitr = 0, int linen = 0, int feathers = 0) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Expected O, but got Unknown //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Expected O, but got Unknown //IL_00c9: Unknown result type (might be due to invalid IL or missing references) if (!string.IsNullOrEmpty(baseItem)) { ItemConfig val = new ItemConfig { Name = displayName, Description = description, CraftingStation = CraftingStations.BlackForge, MinStationLevel = 1 }; if (eitr > 0) { val.AddRequirement("Eitr", eitr, 0); } if (linen > 0) { val.AddRequirement("LinenThread", linen, 0); } if (feathers > 0) { val.AddRequirement("Feathers", feathers, 0); } CustomItem val2 = new CustomItem(internalName, baseItem, val); ApplySharedStats(val2, displayName, description, armor, weight, value); TintAbyss(((Component)val2.ItemDrop).gameObject); ApplyIconTint(val2, new Color(0.3f, 0.18f, 0.1f, 1f), 0.34f, 1f); ItemManager.Instance.AddItem(val2); } } private void ApplySharedStats(CustomItem item, string displayName, string description, float armor, float weight, int value) { SharedData shared = item.ItemDrop.m_itemData.m_shared; shared.m_name = displayName; shared.m_description = description; shared.m_armor = armor; shared.m_weight = weight; shared.m_value = value; shared.m_maxStackSize = 1; shared.m_maxDurability = 1500f; shared.m_durabilityPerLevel = 95f; shared.m_maxQuality = 4; } private void ApplyIconTint(CustomItem item, Color tint, float strength, float brighten) { //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Unknown result type (might be due to invalid IL or missing references) //IL_0171: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Unknown result type (might be due to invalid IL or missing references) try { SharedData val = ((item != null && (Object)(object)item.ItemDrop != (Object)null) ? item.ItemDrop.m_itemData.m_shared : null); if (val == null || val.m_icons == null || val.m_icons.Length == 0 || (Object)(object)val.m_icons[0] == (Object)null) { return; } Sprite val2 = val.m_icons[0]; Texture2D val3 = ExtractReadableSpriteTexture(val2); if ((Object)(object)val3 == (Object)null) { return; } Color[] pixels = val3.GetPixels(); for (int i = 0; i < pixels.Length; i++) { Color val4 = pixels[i]; if (!(val4.a <= 0.01f)) { Color val5 = Color.Lerp(val4, tint, strength); val5.r = Mathf.Clamp01(val5.r * brighten); val5.g = Mathf.Clamp01(val5.g * brighten); val5.b = Mathf.Clamp01(val5.b * brighten); pixels[i] = new Color(val5.r, val5.g, val5.b, val4.a); } } val3.SetPixels(pixels); val3.Apply(); Sprite val6 = Sprite.Create(val3, new Rect(0f, 0f, (float)((Texture)val3).width, (float)((Texture)val3).height), new Vector2(0.5f, 0.5f), val2.pixelsPerUnit); val.m_icons[0] = val6; } catch (Exception ex) { Debug.LogWarning((object)("CARLOS MMO: falha ao colorir ícone -> " + ex.Message)); } } private Texture2D ExtractReadableSpriteTexture(Sprite sprite) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Expected O, but got Unknown //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Expected O, but got Unknown if ((Object)(object)sprite == (Object)null || (Object)(object)sprite.texture == (Object)null) { return null; } Texture2D texture = sprite.texture; Rect textureRect = sprite.textureRect; RenderTexture temporary = RenderTexture.GetTemporary(((Texture)texture).width, ((Texture)texture).height, 0, (RenderTextureFormat)7, (RenderTextureReadWrite)1); Graphics.Blit((Texture)(object)texture, temporary); RenderTexture active = RenderTexture.active; RenderTexture.active = temporary; Texture2D val = new Texture2D(((Texture)texture).width, ((Texture)texture).height, (TextureFormat)4, false); val.ReadPixels(new Rect(0f, 0f, (float)((Texture)texture).width, (float)((Texture)texture).height), 0, 0); val.Apply(); RenderTexture.active = active; RenderTexture.ReleaseTemporary(temporary); Texture2D val2 = new Texture2D((int)((Rect)(ref textureRect)).width, (int)((Rect)(ref textureRect)).height, (TextureFormat)4, false); Color[] pixels = val.GetPixels((int)((Rect)(ref textureRect)).x, (int)((Rect)(ref textureRect)).y, (int)((Rect)(ref textureRect)).width, (int)((Rect)(ref textureRect)).height); val2.SetPixels(pixels); val2.Apply(); return val2; } private void TintDark(GameObject obj) { //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)obj == (Object)null) { return; } Renderer[] componentsInChildren = obj.GetComponentsInChildren<Renderer>(true); Color color = default(Color); foreach (Renderer val in componentsInChildren) { Material[] materials = val.materials; foreach (Material val2 in materials) { if (!((Object)(object)val2 == (Object)null)) { ((Color)(ref color))..ctor(0.02f, 0.06f, 0.04f, 1f); TrySetColor(val2, "_Color", color); TrySetColor(val2, "_BaseColor", color); if (val2.HasProperty("_EmissionColor")) { val2.EnableKeyword("_EMISSION"); val2.SetColor("_EmissionColor", new Color(0f, 0.62f, 0.32f) * 0.22f); } if (val2.HasProperty("_Smoothness")) { val2.SetFloat("_Smoothness", 0.66f); } if (val2.HasProperty("_Glossiness")) { val2.SetFloat("_Glossiness", 0.66f); } } } } } private void TintEsmeraldaCape(GameObject obj) { //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)obj == (Object)null) { return; } Renderer[] componentsInChildren = obj.GetComponentsInChildren<Renderer>(true); Color color = default(Color); foreach (Renderer val in componentsInChildren) { Material[] materials = val.materials; foreach (Material val2 in materials) { if (!((Object)(object)val2 == (Object)null)) { ((Color)(ref color))..ctor(0.05f, 0.03f, 0.08f, 1f); TrySetColor(val2, "_Color", color); TrySetColor(val2, "_BaseColor", color); if (val2.HasProperty("_EmissionColor")) { val2.EnableKeyword("_EMISSION"); val2.SetColor("_EmissionColor", new Color(0.34f, 0.14f, 0.54f) * 0.2f); } if (val2.HasProperty("_Smoothness")) { val2.SetFloat("_Smoothness", 0.66f); } if (val2.HasProperty("_Glossiness")) { val2.SetFloat("_Glossiness", 0.66f); } } } } } private void TintGuardian(GameObject obj) { //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)obj == (Object)null) { return; } Renderer[] componentsInChildren = obj.GetComponentsInChildren<Renderer>(true); Color color = default(Color); foreach (Renderer val in componentsInChildren) { Material[] materials = val.materials; foreach (Material val2 in materials) { if (!((Object)(object)val2 == (Object)null)) { ((Color)(ref color))..ctor(0.96f, 0.95f, 0.9f, 1f); TrySetColor(val2, "_Color", color); TrySetColor(val2, "_BaseColor", color); if (val2.HasProperty("_EmissionColor")) { val2.EnableKeyword("_EMISSION"); val2.SetColor("_EmissionColor", new Color(0.95f, 0.95f, 0.85f) * 0.16f); } if (val2.HasProperty("_Smoothness")) { val2.SetFloat("_Smoothness", 0.72f); } if (val2.HasProperty("_Glossiness")) { val2.SetFloat("_Glossiness", 0.72f); } } } } } private void TintHunter(GameObject obj) { //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)obj == (Object)null) { return; } Renderer[] componentsInChildren = obj.GetComponentsInChildren<Renderer>(true); Color color = default(Color); foreach (Renderer val in componentsInChildren) { Material[] materials = val.materials; foreach (Material val2 in materials) { if (!((Object)(object)val2 == (Object)null)) { ((Color)(ref color))..ctor(0.03f, 0.03f, 0.06f, 1f); TrySetColor(val2, "_Color", color); TrySetColor(val2, "_BaseColor", color); if (val2.HasProperty("_EmissionColor")) { val2.EnableKeyword("_EMISSION"); val2.SetColor("_EmissionColor", new Color(0.12f, 0.22f, 0.48f) * 0.2f); } if (val2.HasProperty("_Smoothness")) { val2.SetFloat("_Smoothness", 0.66f); } if (val2.HasProperty("_Glossiness")) { val2.SetFloat("_Glossiness", 0.66f); } } } } } private void TintHunterCape(GameObject obj) { //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)obj == (Object)null) { return; } Renderer[] componentsInChildren = obj.GetComponentsInChildren<Renderer>(true); Color color = default(Color); foreach (Renderer val in componentsInChildren) { Material[] materials = val.materials; foreach (Material val2 in materials) { if (!((Object)(object)val2 == (Object)null)) { ((Color)(ref color))..ctor(0.02f, 0.03f, 0.05f, 1f); TrySetColor(val2, "_Color", color); TrySetColor(val2, "_BaseColor", color); if (val2.HasProperty("_EmissionColor")) { val2.EnableKeyword("_EMISSION"); val2.SetColor("_EmissionColor", new Color(0.1f, 0.18f, 0.42f) * 0.18f); } if (val2.HasProperty("_Smoothness")) { val2.SetFloat("_Smoothness", 0.64f); } if (val2.HasProperty("_Glossiness")) { val2.SetFloat("_Glossiness", 0.64f); } } } } } private void TintBerserker(GameObject obj) { //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)obj == (Object)null) { return; } Renderer[] componentsInChildren = obj.GetComponentsInChildren<Renderer>(true); Color color = default(Color); foreach (Renderer val in componentsInChildren) { Material[] materials = val.materials; foreach (Material val2 in materials) { if (!((Object)(object)val2 == (Object)null)) { ((Color)(ref color))..ctor(0.06f, 0.01f, 0.02f, 1f); TrySetColor(val2, "_Color", color); TrySetColor(val2, "_BaseColor", color); if (val2.HasProperty("_EmissionColor")) { val2.EnableKeyword("_EMISSION"); val2.SetColor("_EmissionColor", new Color(0.56f, 0.08f, 0.1f) * 0.22f); } if (val2.HasProperty("_Smoothness")) { val2.SetFloat("_Smoothness", 0.66f); } if (val2.HasProperty("_Glossiness")) { val2.SetFloat("_Glossiness", 0.66f); } if (val2.HasProperty("_Metallic")) { val2.SetFloat("_Metallic", 0.34f); } } } } } private void TintBerserkerCape(GameObject obj) { //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)obj == (Object)null) { return; } Renderer[] componentsInChildren = obj.GetComponentsInChildren<Renderer>(true); Color color = default(Color); foreach (Renderer val in componentsInChildren) { Material[] materials = val.materials; foreach (Material val2 in materials) { if (!((Object)(object)val2 == (Object)null)) { ((Color)(ref color))..ctor(0.05f, 0.01f, 0.02f, 1f); TrySetColor(val2, "_Color", color); TrySetColor(val2, "_BaseColor", color); if (val2.HasProperty("_EmissionColor")) { val2.EnableKeyword("_EMISSION"); val2.SetColor("_EmissionColor", new Color(0.46f, 0.08f, 0.1f) * 0.18f); } if (val2.HasProperty("_Smoothness")) { val2.SetFloat("_Smoothness", 0.64f); } if (val2.HasProperty("_Glossiness")) { val2.SetFloat("_Glossiness", 0.64f); } } } } } private void TintPaladin(GameObject obj) { //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)obj == (Object)null) { return; } Renderer[] componentsInChildren = obj.GetComponentsInChildren<Renderer>(true); Color color = default(Color); foreach (Renderer val in componentsInChildren) { Material[] materials = val.materials; foreach (Material val2 in materials) { if (!((Object)(object)val2 == (Object)null)) { ((Color)(ref color))..ctor(0.74f, 0.72f, 0.62f, 1f); TrySetColor(val2, "_Color", color); TrySetColor(val2, "_BaseColor", color); if (val2.HasProperty("_EmissionColor")) { val2.EnableKeyword("_EMISSION"); val2.SetColor("_EmissionColor", new Color(0.9f, 0.84f, 0.64f) * 0.12f); } if (val2.HasProperty("_Smoothness")) { val2.SetFloat("_Smoothness", 0.72f); } if (val2.HasProperty("_Glossiness")) { val2.SetFloat("_Glossiness", 0.72f); } } } } } private void TintAbyss(GameObject obj) { //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)obj == (Object)null) { return; } Renderer[] componentsInChildren = obj.GetComponentsInChildren<Renderer>(true); Color color = default(Color); foreach (Renderer val in componentsInChildren) { Material[] materials = val.materials; foreach (Material val2 in materials) { if (!((Object)(object)val2 == (Object)null)) { ((Color)(ref color))..ctor(0.22f, 0.12f, 0.07f, 1f); TrySetColor(val2, "_Color", color); TrySetColor(val2, "_BaseColor", color); if (val2.HasProperty("_EmissionColor")) { val2.EnableKeyword("_EMISSION"); val2.SetColor("_EmissionColor", new Color(0.46f, 0.26f, 0.14f) * 0.2f); } if (val2.HasProperty("_Smoothness")) { val2.SetFloat("_Smoothness", 0.74f); } if (val2.HasProperty("_Glossiness")) { val2.SetFloat("_Glossiness", 0.74f); } } } } } private void TintBossStorm(GameObject obj) { //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)obj == (Object)null) { return; } Renderer[] componentsInChildren = obj.GetComponentsInChildren<Renderer>(true); Color color = default(Color); foreach (Renderer val in componentsInChildren) { Material[] materials = val.materials; foreach (Material val2 in materials) { if (!((Object)(object)val2 == (Object)null)) { ((Color)(ref color))..ctor(0.54f, 0.64f, 0.72f, 1f); TrySetColor(val2, "_Color", color); TrySetColor(val2, "_BaseColor", color); if (val2.HasProperty("_EmissionColor")) { val2.EnableKeyword("_EMISSION"); val2.SetColor("_EmissionColor", new Color(0.7f, 0.88f, 1f) * 0.18f); } } } } } private void TintBossElder(GameObject obj) { //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)obj == (Object)null) { return; } Renderer[] componentsInChildren = obj.GetComponentsInChildren<Renderer>(true); Color color = default(Color); foreach (Renderer val in componentsInChildren) { Material[] materials = val.materials; foreach (Material val2 in materials) { if (!((Object)(object)val2 == (Object)null)) { ((Color)(ref color))..ctor(0.24f, 0.3f, 0.12f, 1f); TrySetColor(val2, "_Color", color); TrySetColor(val2, "_BaseColor", color); if (val2.HasProperty("_EmissionColor")) { val2.EnableKeyword("_EMISSION"); val2.SetColor("_EmissionColor", new Color(0.34f, 0.5f, 0.18f) * 0.18f); } } } } } private void TintBossPoison(GameObject obj) { //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)obj == (Object)null) { return; } Renderer[] componentsInChildren = obj.GetComponentsInChildren<Renderer>(true); Color color = default(Color); foreach (Renderer val in componentsInChildren) { Material[] materials = val.materials; foreach (Material val2 in materials) { if (!((Object)(object)val2 == (Object)null)) { ((Color)(ref color))..ctor(0.18f, 0.24f, 0.1f, 1f); TrySetColor(val2, "_Color", color); TrySetColor(val2, "_BaseColor", color); if (val2.HasProperty("_EmissionColor")) { val2.EnableKeyword("_EMISSION"); val2.SetColor("_EmissionColor", new Color(0.26f, 0.58f, 0.14f) * 0.18f); } } } } } private void TintBossFrost(GameObject obj) { //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)obj == (Object)null) { return; } Renderer[] componentsInChildren = obj.GetComponentsInChildren<Renderer>(true); Color color = default(Color); foreach (Renderer val in componentsInChildren) { Material[] materials = val.materials; foreach (Material val2 in materials) { if (!((Object)(object)val2 == (Object)null)) { ((Color)(ref color))..ctor(0.7f, 0.82f, 0.9f, 1f); TrySetColor(val2, "_Color", color); TrySetColor(val2, "_BaseColor", color); if (val2.HasProperty("_EmissionColor")) { val2.EnableKeyword("_EMISSION"); val2.SetColor("_EmissionColor", new Color(0.72f, 0.92f, 1f) * 0.2f); } } } } } private void TintBossFire(GameObject obj) { //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)obj == (Object)null) { return; } Renderer[] componentsInChildren = obj.GetComponentsInChildren<Renderer>(true); Color color = default(Color); foreach (Renderer val in componentsInChildren) { Material[] materials = val.materials; foreach (Material val2 in materials) { if (!((Object)(object)val2 == (Object)null)) { ((Color)(ref color))..ctor(0.3f, 0.08f, 0.05f, 1f); TrySetColor(val2, "_Color", color); TrySetColor(val2, "_BaseColor", color); if (val2.HasProperty("_EmissionColor")) { val2.EnableKeyword("_EMISSION"); val2.SetColor("_EmissionColor", new Color(0.86f, 0.24f, 0.08f) * 0.24f); } } } } } private void TintBossQueen(GameObject obj) { //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)obj == (Object)null) { return; } Renderer[] componentsInChildren = obj.GetComponentsInChildren<Renderer>(true); Color color = default(Color); foreach (Renderer val in componentsInChildren) { Material[] materials = val.materials; foreach (Material val2 in materials) { if (!((Object)(object)val2 == (Object)null)) { ((Color)(ref color))..ctor(0.14f, 0.08f, 0.18f, 1f); TrySetColor(val2, "_Color", color); TrySetColor(val2, "_BaseColor", color); if (val2.HasProperty("_EmissionColor")) { val2.EnableKeyword("_EMISSION"); val2.SetColor("_EmissionColor", new Color(0.38f, 0.18f, 0.48f) * 0.2f); } } } } } private void TrySetColor(Material mat, string prop, Color color) { //IL_001a: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)mat != (Object)null && mat.HasProperty(prop)) { mat.SetColor(prop, color); } } } [HarmonyPatch(typeof(Player), "Update")] public static class CarlosMMOCapeSkillsPatch { private static void Postfix(Player __instance) { //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)__instance == (Object)null || (Object)(object)__instance != (Object)(object)Player.m_localPlayer) { return; } Rigidbody component = ((Component)__instance).GetComponent<Rigidbody>(); if (!((Object)(object)component == (Object)null)) { bool flag = ((Character)__instance).IsOnGround(); if (!flag && Input.GetKey((KeyCode)32) && component.velocity.y < CarlosMMOLoader.GlideFallSpeed) { component.velocity = new Vector3(component.velocity.x, CarlosMMOLoader.GlideFallSpeed, component.velocity.z); } if (flag && Input.GetKeyDown((KeyCode)32)) { component.AddForce(Vector3.up * CarlosMMOLoader.JumpBoostForce, (ForceMode)2); } if (!flag && Input.GetKeyDown((KeyCode)304) && Time.time > CarlosMMOLoader.LastDashTime + CarlosMMOLoader.DashCooldown) { Vector3 forward = ((Component)__instance).transform.forward; forward.y = 0f; ((Vector3)(ref forward)).Normalize(); component.AddForce(forward * CarlosMMOLoader.DashForce, (ForceMode)2); CarlosMMOLoader.LastDashTime = Time.time; } } } }