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); }
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); } } } } }