public void AddBee(Random random) { if (world.Bees.Count < MaxBeeNumber) { beeCount++; int r1 = random.Next(100) - 50; int r2 = random.Next(100) - 50; Point startPoint = new Point(locations["Nursery"].X + r1, locations["Nursery"].Y + r2); Bee newBee = new Bee(beeCount, startPoint, this, world, random); world.Bees.Add(newBee); newBee.Changed += Changed; } }
public void Go(Random random) { hive.Go(random); for (int i = Bees.Count - 1; i >= 0; i--) { Bee bee = Bees[i]; bee.Go(random); if (bee.CurrentState == BeeState.退休) { Changed("蜜蜂 #" + bee.ID + ": 死亡,享年" + bee.Age + "回合"); Bees.Remove(bee); } } double totalNectarHarvested = 0; for (int i = Flowers.Count - 1; i >= 0; i--) { Flower flower = Flowers[i]; flower.Go(); totalNectarHarvested += flower.NectarHarVested; if (!flower.Alive) { Flowers.Remove(flower); } } if (totalNectarHarvested > NectarHarvestedPerNewFlower && Flowers.Count <= MaxFlower) { foreach (Flower flower in Flowers) { flower.NectarHarVested = 0; } AddFlower(random); } }