protected override bool FoundInLibrary(Library lib, SearchResult searchResult) { bool duplicate = false; SearchResultMonster srm = searchResult as SearchResultMonster; Creature c = lib.FindCreatureCaseInsensitive(srm.Name, Convert.ToInt32(srm.Level)); if (c != null) { if (c.HP == 1) { Minion m = c.Role as Minion; if (m.HasRole) { duplicate = m.Type.ToString() == srm.CombatRole; } } else { ComplexRole cr = c.Role as ComplexRole; duplicate = srm.CombatRole.StartsWith(cr.Type.ToString()) && (cr.Leader == srm.CombatRole.Contains("Leader")) && (cr.Flag.ToString() == srm.GroupRole); } } return(duplicate); }
public void MonsterBySourceTest() { CompendiumSource source = new CompendiumSource { Value = 203 }; IEnumerable <SearchResult> actual; actual = SearchResultMonster.BySource(source); Assert.AreEqual(5, actual.Count()); Assert.IsTrue(actual.Any(x => x.Name == "Erdlu")); }
protected override bool IsInAnotherLibrary(SearchResult searchResult, Library current) { bool duplicate = false; SearchResultMonster srm = searchResult as SearchResultMonster; foreach (Library lib in _mpApp.Libraries) { if (lib.ID == current.ID) { continue; } duplicate = FoundInLibrary(lib, searchResult); if (duplicate) { break; } } return(duplicate); }
protected override IEnumerable <SearchResult> GetSearchResults(CompendiumSource cs) { return(SearchResultMonster.BySource(cs)); }