/// <summary> /// Initialize the colony and the bee memories /// </summary> /// <param name="size"></param> /// <param name="foodSources"></param> /// <param name="fitnessGetFunction"></param> public Colony(int size, List <FoodSource> foodSources, Fitness.Get fitnessGetFunction) { this.foodSources = foodSources; this.fitnessGetFunction = fitnessGetFunction; this.newFoodSourceQueue = new Queue <FoodSource>(); //Initialization //Generate our bee counts and supply a random memory set for each bee. scoutCount = (int)(.15 * size); onlookerCount = (int)(.10 * size); employedCount = size - (scoutCount + onlookerCount); for (int i = 0; i < scoutCount; i++) { Bees.Add(new Bee(Bee.StatusType.SCOUT, GetUniqueRandoms(Rand, 0, foodSources.Count))); } //Employeed Bees for (int i = 0; i < employedCount; i++) { Bees.Add(new Bee(Bee.StatusType.EMPLOYED, GetUniqueRandoms(Rand, 0, foodSources.Count))); } //Onlooker Bees for (int i = 0; i < onlookerCount; i++) { Bees.Add(new Bee(Bee.StatusType.ONLOOKER, GetUniqueRandoms(Rand, 0, foodSources.Count))); } }
protected override void OnSimObjectUpdating(SimObject simObject, SimModel simModel, SimState simState) { if (Bees.Count < 30 && Bees.Count < simState.MillisecondsSinceSimStart / 1000.0) { var bee = new Actor(SpawnLocation); if (simModel.DetectCollisions(bee).Any()) { return; } bee.Behaviours.Add(new BeeBehaviour(_random, simObject)); bee.Behaviours.Add(new NectarCarrierBehaviour()); Bees.Add(bee); simModel.AddSimObject(bee); } }
public GameObject CreateDroneBee(Vector2 position) { GameObject newBee = (GameObject)Instantiate(droneBee, position, Quaternion.identity); Bees.Add(newBee); newBee.transform.SetParent(worldCanvas.transform); if (BeeCreated != null) { BeeCreated(newBee); } if (DroneBeeCreated != null) { DroneBeeCreated(newBee); } return(newBee); }
public BeesViewModel() { for (int i = 0; i < 10; i++) { Bees.Add(new WorkerBee()); } for (int i = 0; i < 10; i++) { Bees.Add(new DroneBee()); } for (int i = 0; i < 10; i++) { Bees.Add(new QueenBee()); } }