static AuraCategoryExtensions() { // Build all parents foreach (AuraCategory root in immediateParents.Keys) { List <AuraCategory> parents = new List <AuraCategory>() { default(AuraCategory) }; for (AuraCategory parent = immediateParents.GetValueOrDefault(root); parent != default(AuraCategory) && !parents.Contains(parent); parent = immediateParents.GetValueOrDefault(parent)) { parents.Add(parent); } allParents[root] = parents; } }
public bool Is(AuraCategory category) => (info.Active?.Is(category) ?? false) || (info.Passive?.Is(category) ?? false);
public static bool Is(this AuraCategory category, AuraCategory other) { return(category == other || allParents[category].Contains(other)); }
public bool Is(AuraCategory category) => info.Category.Is(category);