public static UiFish Born(Fish fish, UiFish parent1, UiFish parent2, AquariumProperties tank) { return(new UiFish( fish, parent1.Position.Midpoint(parent2.Position), tank)); }
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(); } }
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" }); }
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); }