Exemple #1
0
        private bool OnEquipItem(On.Humanoid.orig_EquipItem orig, Humanoid self, ItemDrop.ItemData item, bool triggerEquipEffects)
        {
            bool result = orig(self, item, triggerEquipEffects);

            if (Player.m_localPlayer && result &&
                item != null && item.m_shared.m_name == BlueprintRunePrefab.BlueprintRuneItemName)
            {
                originalPlaceDistance = Math.Max(Player.m_localPlayer.m_maxPlaceDistance, 8f);
                Player.m_localPlayer.m_maxPlaceDistance = rayDistanceConfig.Value;
                Jotunn.Logger.LogDebug("Setting placeDistance to " + Player.m_localPlayer.m_maxPlaceDistance);
            }
            return(result);
        }
Exemple #2
0
 private static bool Humanoid_EquipItem(On.Humanoid.orig_EquipItem orig, Humanoid self, ItemDrop.ItemData item, bool triggerEquipEffects)
 {
     try
     {
         if (!self.IsPlayer() || item.m_equiped)
         {
             return(orig(self, item, triggerEquipEffects));
         }
         BepInEx.Configuration.ConfigEntry <int> conf = null;
         foreach (var i in Config.GeneralSettings.Keys)
         {
             if (itemLookup.ContainsKey(item.m_shared.m_name) && i.Key.Equals(itemLookup[item.m_shared.m_name].name))
             {
                 Config.GeneralSettings.TryGetEntry(i, out conf);
             }
         }
         if (conf != null)
         {
             if (Enum.TryParse <Skills.SkillType>(conf.Definition.Section, out Skills.SkillType type))
             {
                 var skill = self.GetSkills().m_skillData[type];
                 Main.log.LogDebug($"Found LevelGate of {conf.Value} for {itemLookup[item.m_shared.m_name].name} checked against player's {type} level: {skill.m_level}");
                 if (conf.Value > skill.m_level)
                 {
                     self.Message(MessageHud.MessageType.Center, $"Your {type} skill prevents you from equipping the {Localization.instance.Localize(item.m_shared.m_name)}. Min skill required: {conf.Value}");
                     return(true);
                 }
             }
         }
         return(orig(self, item, triggerEquipEffects));
     } catch (Exception ex)
     {
         Main.log.LogError(ex);
         return(orig(self, item, triggerEquipEffects));
     }
 }