private void postaviPrikazStrana(FlowLayoutPanel panel, IEnumerable <Borac> borci, HashSet <Igrac> filtarIgraca, bool prikazPrikrivanja) { Dictionary <Dizajn, List <Borac> > borciPoDizajnu = new Dictionary <Dizajn, List <Borac> >(); foreach (Borac borac in borci) { if (!filtarIgraca.Contains(borac.Igrac)) { continue; } if (!borciPoDizajnu.ContainsKey(borac.Dizajn)) { borciPoDizajnu.Add(borac.Dizajn, new List <Borac>()); } borciPoDizajnu[borac.Dizajn].Add(borac); } List <Dizajn> dizajnovi = new List <Dizajn>(borciPoDizajnu.Keys); dizajnovi.Sort((a, b) => a.ime.CompareTo(b.ime)); panel.SuspendLayout(); panel.Controls.Clear(); CombatantItem prviUGrupi = null; foreach (var dizajn in dizajnovi) { CombatantItem borciItem = new CombatantItem(); borciItem.SetData(borciPoDizajnu[dizajn], prikazPrikrivanja); borciItem.OnSelect += borci_OnSelect; borciItem.Selectable = borba.LijevaStrana.Contains(borciPoDizajnu[dizajn][0].Igrac); if (prviUGrupi != null) { borciItem.GroupWith(prviUGrupi); } else { prviUGrupi = borciItem; } panel.Controls.Add(borciItem); } if (prviUGrupi != null && !prikazPrikrivanja) { prviUGrupi.SelectThis(); } panel.ResumeLayout(); }
public void GroupWith(CombatantItem otherItem) { group.Remove(this); otherItem.group.Add(this); group = otherItem.group; }