public ExperimentBase ToExperiment()
        {
            Component environment = EnvironmentRegistry
                                    .GetEnvironments()
                                    .Single(t => t.FullName.Equals(this.EnvironmentTypeName))
                                    .InstantiateWithDefaultConstructor <Component>();

            Component presentationEnvironment = environment.Clone();

            Component agent = AgentRegistry
                              .GetAgents(environment.ComponentType)
                              .Single(t => t.FullName.Equals(this.AgentTypeName))
                              .InstantiateWithDefaultConstructor <Component>();

            ExperimentBase result = ExperimentBase.Instantiate(environment, presentationEnvironment, agent);

            result.SetParametersFromSnapshot(this.ExperimentParameters);
            environment.SetParametersFromSnapshotWithInnerObjects(this.EnvironmentParameters);
            presentationEnvironment.SetParametersFromSnapshotWithInnerObjects(this.EnvironmentParameters);
            agent.SetParametersFromSnapshotWithInnerObjects(this.AgentParameters);

            result.Reporter = this.ReporterTemplate.ToReporter(
                ReportTrigger.GetReportTriggers().ToArray(),
                DataSource.GetDataSources(result).ToArray(),
                DataAccumulator.GetDataAccumulators().ToArray());

            return(result);
        }
Esempio n. 2
0
 private void CreateAgents()
 {
     _agents = new AgentRegistry();
     _agents.Bind <IBoardAgent, BoardAgent>(new BoardAgent(_boardModel));
     _agents.Bind <IArbiterAgent, ArbiterAgent>(new ArbiterAgent(_arbiterModel));
     _agents.Bind <IEndTurnButtonAgent, EndTurnButtonAgent>();
     _agents.Bind <ICardAgent, CardAgent>();
     _agents.Bind <IDeckAgent, DeckAgent>();
     _agents.Bind <IHandAgent, HandAgent>();
     _agents.Bind <IPieceAgent, PieceAgent>();
     _agents.Bind <IPlayerAgent, PlayerAgent>();
     _agents.Resolve();
     BoardAgent       = _agents.New <IBoardAgent>();
     ArbiterAgent     = _agents.New <IArbiterAgent>();
     WhitePlayerAgent = _agents.New <IPlayerAgent>(_whitePlayerModel);
     BlackPlayerAgent = _agents.New <IPlayerAgent>(_blackPlayerModel);
 }
Esempio n. 3
0
        public void Continue()
        {
            //Debug.Log("Moving from node " + current.name);

            if (current == null)
            {
                //We are done
                valueRegistry  = null;
                agentRegistry  = null;
                stringRegistry = null;
                //Dereference
                return;
            }

            current.MoveNext();
            //Debug.Log("To node " + current.name);
        }
Esempio n. 4
0
        private void RebuildLists()
        {
            this.agentListView.Items.Clear();
            this.environmentListView.Items.Clear();

            this.agentListView.Items.AddRange(AgentRegistry
                                              .GetAgents(GetCurrentComponentType())
                                              .Select(type => new ListViewItem(type.Name)
            {
                Tag = type
            })
                                              .ToArray());
            this.environmentListView.Items.AddRange(EnvironmentRegistry
                                                    .GetEnvironments(GetCurrentComponentType())
                                                    .Select(type => new ListViewItem(type.Name)
            {
                Tag = type
            })
                                                    .ToArray());
        }
Esempio n. 5
0
        protected override void SetupTest()
        {
            base.SetupTest();

            _agency = new AgentRegistry();
            _agency.Bind <IBoardAgent, BoardAgent>(new BoardAgent(_board));
            _agency.Bind <IArbiterAgent, ArbiterAgent>(new ArbiterAgent(_arbiter));
            _agency.Bind <ICardAgent, CardAgent>();
            _agency.Bind <IDeckAgent, DeckAgent>();
            _agency.Bind <IHandAgent, HandAgent>();
            _agency.Bind <IPieceAgent, PieceAgent>();
            _agency.Bind <IWhitePlayerAgent, TWhite>();
            _agency.Bind <IBlackPlayerAgent, TBlack>();
            _agency.Resolve();

            _boardAgent   = _agency.New <IBoardAgent>();
            _arbiterAgent = _agency.New <IArbiterAgent>();
            _whiteAgent   = _agency.New <IWhitePlayerAgent>(_white);
            _blackAgent   = _agency.New <IBlackPlayerAgent>(_black);
        }
Esempio n. 6
0
        public void Play(DialogueSystem system)
        {
            if (!Verify())
            {
                Debug.Log("Failed to play DialogueGraph: " + name);
                return;
            }

            //Get dependencies

            valueRegistry  = MainInstances.Get <ValueRegistry>();
            agentRegistry  = MainInstances.Get <AgentRegistry>();
            stringRegistry = MainInstances.Get <StringRegistry>();

            currentSystem = system;
            current       = entry;

            current.MoveNext();

            //We started the graph
        }
Esempio n. 7
0
        protected override void SetupTest()
        {
            base.SetupTest();

            _agency = new AgentRegistry();
            _agency.Bind <IBoardAgent, BoardAgent>(new BoardAgent(_board));
            _agency.Bind <IArbiterAgent, ArbiterAgent>(new ArbiterAgent(_arbiter));
            _agency.Bind <ICardAgent, CardAgent>();
            _agency.Bind <IDeckAgent, DeckAgent>();
            _agency.Bind <IHandAgent, HandAgent>();
            _agency.Bind <IPieceAgent, PieceAgent>();
            _agency.Bind <IEndTurnButtonAgent, Impl.EndTurnButtonAgent>();

            _agency.Bind <IWhitePlayerAgent, MockWhitePlayerAgent>();
            _agency.Bind <IBlackPlayerAgent, MockBlackPlayerAgent>();
            _agency.Resolve();

            _boardAgent   = _agency.Get <IBoardAgent>();
            _arbiterAgent = _agency.Get <IArbiterAgent>();
            _whiteAgent   = _agency.Get <IWhitePlayerAgent>(_white);
            _blackAgent   = _agency.Get <IBlackPlayerAgent>(_black);
        }