public override void SetAgents() { base.SetAgents(); for (var j = 0; j < ExampleMainOrganization.InfluencersCount; j++) { var actor = InfluencerAgent.CreateInstance(this, ExampleMainOrganization.InfluencerTemplate); ExampleMainOrganization.Influencers.Add(actor); } for (var j = 0; j < ExampleMainOrganization.WorkersCount; j++) { _ = PersonAgent.CreateInstance(this, ExampleMainOrganization.WorkerTemplate); } var actorIds = MainOrganization.ArtifactNetwork.Actor.GetEntityIds().ToList(); // Set the interactions between the actors // Those interactions could be managed via an organization agent. for (var i = 0; i < actorIds.Count - 1; i++) { for (var j = i + 1; j < actorIds.Count; j++) { ActorActor.CreateInstance(MainOrganization.ArtifactNetwork.ActorActor, actorIds[i], actorIds[j]); } } }
/// <summary> /// Factory method to create an agent /// Call the Initialize method /// </summary> /// <returns></returns> public static PersonAgent CreateInstance(SymuEnvironment environment, CognitiveArchitectureTemplate template) { if (environment == null) { throw new ArgumentNullException(nameof(environment)); } var entity = new ActorEntity(environment.MainOrganization.ArtifactNetwork); var agent = new PersonAgent(entity.EntityId, environment, template); agent.Initialize(); return(agent); }