Beispiel #1
0
 public static UiFish Born(Fish fish, UiFish parent1, UiFish parent2, AquariumProperties tank)
 {
     return(new UiFish(
                fish,
                parent1.Position.Midpoint(parent2.Position),
                tank));
 }
Beispiel #2
0
        public void SelectFishAt(Point location, bool multiSelect)
        {
            UiFish foundFish = allFish.FirstOrDefault(f => f.Bounds.Contains(location));

            if (foundFish != null)
            {
                bool foundFishSelected = foundFish.Selected;

                if (!multiSelect)
                {
                    this.UnselectAll();
                }

                foundFish.Selected = !foundFishSelected;
            }
            else
            {
                this.UnselectAll();
            }
        }
Beispiel #3
0
        public UiAquarium(Size tankSize)
        {
            var store = Container.Get <IAquariumStore>();

            this.peerAquarium = store.Load();

            this.peerAquarium.Properties.Width  = tankSize.Width;
            this.peerAquarium.Properties.Height = tankSize.Height;

            this.peerAquarium.FishArrived += f => newFish.Add(UiFish.RandomPosition(f, this.peerAquarium.Properties));
            this.peerAquarium.FishBorn    += (f, p1, p2) =>
            {
                UiFish parent1 = allFish.First(uiFish => uiFish.Fish == p1);
                UiFish parent2 = allFish.First(uiFish => uiFish.Fish == p2);
                newFish.Add(UiFish.Born(f, parent1, parent2, this.peerAquarium.Properties));
            };

            // Read fish from storage.
            this.peerAquarium.ReadFish.ToList().ForEach(f => SortOrAddSchool(UiFish.RandomPosition(f, this.peerAquarium.Properties)));
            this.schools.Add(new School {
                Name = "Killers"
            });
        }
Beispiel #4
0
        private void SortOrAddSchool(UiFish newFish)
        {
            School school = null;

            if (newFish.Predator)
            {
                school = schools.FirstOrDefault(s => s.Name == "Killers");
            }
            else
            {
                school = schools.FirstOrDefault(s => s.Name == newFish.Fish.BirthPlace);
            }

            if (school == null)
            {
                school = new School {
                    Name = newFish.Fish.BirthPlace
                };
                schools.Add(school);
            }

            school.Add(newFish);
            allFish.Add(newFish);
        }