static CombatVisibility CombatListFilter(Character ch, CombatState c, CombatVisibility players = CombatVisibility.Visible, CombatVisibility monsters = CombatVisibility.Visible, CombatVisibility idle = CombatVisibility.Visible, CombatVisibility hidden = CombatVisibility.Anonymous) { CombatVisibility vis = ch.IsMonster?monsters:players; if (ch.IsHidden) { vis = vis.Combine(hidden); } if (ch.IsIdle) { vis = vis.Combine(idle); } return(vis); }
static List <(CombatVisibility, Character)> FilterCombatList(CombatState c, CombatVisFilter filter, CombatVisibility maxlevel = CombatVisibility.Anonymous) { var list = new List <(CombatVisibility, Character)>(); foreach (Character ch in c.CombatList) { var vis = filter(ch, c); if (vis <= maxlevel) { list.Add((vis, ch)); } } return(list); }