Esempio n. 1
0
        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();
        }
Esempio n. 2
0
 public void GroupWith(CombatantItem otherItem)
 {
     group.Remove(this);
     otherItem.group.Add(this);
     group = otherItem.group;
 }