Exemplo n.º 1
0
        public override void AssignPiratesToParticipants(List <Pirate> pirates)
        {
            Carrier          carrier    = new Carrier(this.Participants);
            List <BodyGuard> bodyguards = new List <BodyGuard>();

            foreach (Pirate pirate in pirates)
            {
                if (pirate.HasCapsule() && carrier.Pirate == null)
                {
                    carrier.Pirate = pirate;
                }
                else
                {
                    bodyguards.Add(new BodyGuard(pirate));
                }
            }


            List <ICommand> list = new List <ICommand>();

            if (carrier.Pirate != null)
            {
                list.Add(carrier);
            }
            foreach (BodyGuard BG in bodyguards)
            {
                if (carrier.Pirate != null)
                {
                    BG.assignCarrier(carrier);
                }
                list.Add(BG);
            }
            this.Participants = list;
        }