private bool TestEquippedSkills(IPlayerPowerInfo powers)
 {
     if (EquippedSkills != null)
     {
         return(AllEquippedSkills
             ? EquippedSkills.All(skill => powers.UsedSkills.Any(playerSkill => (skill.Icon.HasValue ? playerSkill.SnoPower.Sno == skill.Sno && playerSkill.Rune == skill.Icon.Value : playerSkill.SnoPower.Sno == skill.Sno) && (!playerSkill.IsOnCooldown || !CheckSkillCooldowns)))
             : EquippedSkills.Any(skill => powers.UsedSkills.Any(playerSkill => (skill.Icon.HasValue ? playerSkill.SnoPower.Sno == skill.Sno && playerSkill.Rune == skill.Icon.Value : playerSkill.SnoPower.Sno == skill.Sno) && (!playerSkill.IsOnCooldown || !CheckSkillCooldowns))));
     }
     return(true);
 }
 private bool TestInactiveBuffs(IPlayerPowerInfo powers)
 {
     if (InactiveBuffs != null)
     {
         return(AllInactiveBuffs
             ? InactiveBuffs.All(buff => buff.Icon.HasValue ? !powers.BuffIsActive(buff.Sno, buff.Icon.Value) : !powers.BuffIsActive(buff.Sno))
             : InactiveBuffs.Any(buff => buff.Icon.HasValue ? !powers.BuffIsActive(buff.Sno, buff.Icon.Value) : !powers.BuffIsActive(buff.Sno)));
     }
     return(true);
 }
 private bool TestMissingSkills(IPlayerPowerInfo powers)
 {
     return(MissingSkills == null || MissingSkills.Any(skill => powers.UsedSkills.All(playerSkill => playerSkill.SnoPower.Sno != skill.Sno)));
 }
 private bool TestMissingPassives(IPlayerPowerInfo powers)
 {
     return(MissingPassives == null || MissingPassives.Any(passive => powers.UsedPassives.All(playerPassive => playerPassive.Sno != passive)));
 }
 private bool TestEquippedPassives(IPlayerPowerInfo powers)
 {
     return(EquippedPassives == null || EquippedPassives.All(passive => powers.UsedPassives.Any(playerPassive => playerPassive.Sno == passive)));
 }