/// <summary> /// Whether the given lootable contains quest items for the given Character when looting with the given type /// </summary> public static bool ContainsQuestItemsFor(this ILootable lootable, Character chr, LootEntryType type) { Asda2Loot loot = lootable.Loot; if (loot != null) { return(((IEnumerable <Asda2LootItem>)loot.Items).Any <Asda2LootItem>((Func <Asda2LootItem, bool>)(item => { if (item.Template.HasQuestRequirements) { return item.Template.CheckQuestConstraints(chr); } return false; }))); } ResolvedLootItemList entries = lootable.GetEntries(type); if (entries != null) { return(entries.Any <LootEntity>((Func <LootEntity, bool>)(entry => { if (entry.ItemTemplate.HasQuestRequirements) { return entry.ItemTemplate.CheckQuestConstraints(chr); } return false; }))); } return(false); }
/// <summary> /// Whether the given lootable contains quest items for the given Character when looting with the given type /// </summary> public static bool ContainsQuestItemsFor(this ILootable lootable, Character chr, LootEntryType type) { var loot = lootable.Loot; if (loot != null) { // loot has already been created return(loot.Items.Any(item => item.Template.HasQuestRequirements && item.Template.CheckQuestConstraints(chr))); } // no loot yet -> check what happens if we create any var entries = lootable.GetEntries(type); if (entries != null) { return(entries.Any(entry => entry.ItemTemplate.HasQuestRequirements && entry.ItemTemplate.CheckQuestConstraints(chr))); } return(false); }