public void OnEvent(SimulatedEngagement simulatedEngagement, SimEvent e)
 {
     if (e is SimInstantiationEvent)
     {
         SimInstantiationEvent simInstantiationEvent = e as SimInstantiationEvent;
     }
 }
    private void OnTest()
    {
        EditorUtility.DisplayProgressBar("Running Simulation", "Starting", 0);
        Engagement   engagement = new Engagement();
        JunkyardUser user       = new JunkyardUser();

        engagement.RedCombatent  = participantRed01.Data.GetParticipant().GetTeam(user).Bot;
        engagement.BlueCombatent = participantBlue02.Data.GetParticipant().GetTeam(user).Bot;
        engagement.Rules         = RulesOfEngagement;
        engagement.Seed          = Seed;

        SimulatedEngagement SimulatedEngagement = new SimulatedEngagement(engagement, this);

        int step = 0;

        while (!SimulatedEngagement.Step())
        {
            EditorUtility.DisplayProgressBar("Running Simulation", "Running... (" + (++step) + ")", 0.5f);
        }

        ExportSimulation(SimulatedEngagement);
        string winner = engagement.RedCombatent == engagement.Outcome.Winner ? participantRed01.ID : participantBlue02.ID;

        EditorUtility.DisplayDialog("Complete", "Winner " + winner, "ok");
    }
    private void ExportSimulation(SimulatedEngagement simulatedEngagement)
    {
        List <ISimulationTestExporter> activeExporters =
            dataExporters.FindAll(exporter => EditorPrefs.GetBool(exporter.GetDataName() + "_export_pref"));

        for (int i = 0; i < activeExporters.Count; i++)
        {
            ISimulationTestExporter exporter = activeExporters[i];
            Type exporterType = exporter.GetType();
            EditorUtility.DisplayProgressBar("Exporting Results", exporter.GetDataName(), (float)i / activeExporters.Count);

            SimulationTestExportData inputData = new SimulationTestExportData(simulatedEngagement, InitiatorToInspectForData);

            StringBuilder data     = exporter.GetData(inputData);
            string        filePath = exportPath + exporter.GetDataName() + ".csv";

            StreamWriter outStream = System.IO.File.CreateText(filePath);
            outStream.WriteLine(data);
            outStream.Close();
        }
    }