public static bool Prefix(AttackSkill __instance, ref bool __result)
        {
            bool flag = RunicScrolls.IsRune(__instance);

            if (flag)
            {
                for (int i = 0; i < __instance.RequiredTags.Length; i++)
                {
                    Item equippedItem = __instance.OwnerCharacter.Inventory.Equipment.GetEquippedItem(EquipmentSlot.EquipmentSlotIDs.Quiver);
                    bool flag2        = equippedItem != null && equippedItem.HasTag(__instance.RequiredTags[i].Tag);
                    if (flag2)
                    {
                        __result = true;
                        return(false);
                    }
                }
            }
            return(true);
        }
Beispiel #2
0
        public static void Prefix(Skill __instance)
        {
            AttackSkill attackSkill = __instance as AttackSkill;
            bool        flag        = attackSkill != null && RunicScrolls.IsRune(__instance);

            if (flag)
            {
                bool flag2 = attackSkill.RequiredTags != null && attackSkill.RequiredTags.Length != 0;
                if (flag2)
                {
                    bool flag3 = false;
                    bool flag4 = attackSkill.OwnerCharacter.Inventory.SkillKnowledge.IsItemLearned(8205170);
                    if (flag4)
                    {
                        flag3 = true;
                    }
                    for (int i = 0; i < attackSkill.RequiredTags.Length; i++)
                    {
                        bool flag5 = (attackSkill.OwnerCharacter.CurrentWeapon != null && attackSkill.OwnerCharacter.CurrentWeapon.HasTag(attackSkill.RequiredTags[i].Tag)) || (attackSkill.OwnerCharacter.LeftHandWeapon != null && attackSkill.OwnerCharacter.LeftHandWeapon.HasTag(attackSkill.RequiredTags[i].Tag)) || (attackSkill.OwnerCharacter.LeftHandEquipment != null && attackSkill.OwnerCharacter.LeftHandEquipment.HasTag(attackSkill.RequiredTags[i].Tag));
                        if (flag5)
                        {
                            flag3 = true;
                        }
                    }
                    bool flag6 = !flag3;
                    if (flag6)
                    {
                        Item equippedItem = attackSkill.OwnerCharacter.Inventory.Equipment.GetEquippedItem(EquipmentSlot.EquipmentSlotIDs.Quiver);
                        bool flag7        = equippedItem != null && equippedItem.HasTag(TagSourceManager.Instance.GetTag(161.ToString()));
                        if (flag7)
                        {
                            equippedItem.RemoveQuantity(1);
                        }
                    }
                }
            }
        }