Esempio n. 1
0
        public void Initialize(ref SimulationModelInfo simModel, ref Blackboard blackboard, ref SimulationEventDistributor distributor)
        {
            this.blackboard  = blackboard;
            this.bbClient    = new BlackboardClient();
            this.distributor = distributor;
            this.distClient  = new SimulationEventDistributorClient();
            this.simModel    = simModel;

            distributor.RegisterClient(ref distClient);
            //distClient.Subscribe("NewObject");
            //distClient.Subscribe("RevealObject");
            //distClient.Subscribe("TimeTick");
            //distClient.Subscribe("StateChange");
            //distClient.Subscribe("ResetSimulation");

            blackboard.RegisterClient(ref bbClient);
            bbClient.Subscribe("PhysicalObject", "ID", true, false);
            bbClient.Subscribe("PhysicalObject", "StateTable", true, false);
            bbClient.Subscribe("PhysicalObject", "Throttle", true, false);
            bbClient.Subscribe("PhysicalObject", "FuelCapacity", true, true);
            bbClient.Subscribe("PhysicalObject", "FuelAmount", true, true);
            bbClient.Subscribe("PhysicalObject", "FuelConsumptionRate", true, true);
            bbClient.Subscribe("PhysicalObject", "FuelDepletionState", true, true);
            bbClient.Subscribe("PhysicalObject", "DockedToParent", true, false);

            objectProxies = new Dictionary <string, SimulationObjectProxy>();
        }
Esempio n. 2
0
        public void Start(SimulationModelInfo simModel, ref SimulationEventDistributor distributor, string logName, bool loop)
        {
            try
            {
                playerThread = new Thread(new ThreadStart(EventLoop));
                //nc = new NetworkClient();
                //nc.Connect(hostname, port);
                distClient = new SimulationEventDistributorClient();
                distributor.RegisterClient(ref distClient);
                this.simModel   = simModel;
                time            = 0;
                this.loop       = loop;
                this.logname    = logName;
                updateFrequency = simModel.simulationExecutionModel.updateFrequency;

                SimulationEvent ev = SimulationEventFactory.BuildEvent(ref simModel, "ResetSimulation");
                distClient.PutEvent(ev);
                LoadEvents(logName);

                playerThread.Start();
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Esempio n. 3
0
        public ForkReplayToQueues(String replayName, SimulationModelInfo simModelInfo)
        {
            m_simModelInfo = simModelInfo;

            List <SimulationEvent> events = LoadForkReplayFile(replayName);

            if (events.Count == 0) // this is not a fork replay
            {
                return;
            }

            SimulationEvent start  = SimulationEventFactory.BuildEvent(ref simModelInfo, "ForkReplayStarted");
            SimulationEvent finish = SimulationEventFactory.BuildEvent(ref simModelInfo, "ForkReplayFinished");

            TimerQueueClass.SendBeforeStartup(new ForkReplayEventType(start));

            int lastTime = 1;

            foreach (SimulationEvent ev in events)
            {
                ForkReplayEventType fr = new ForkReplayEventType(ev);
                TimerQueueClass.Add(fr.Time, fr);
                lastTime = fr.Time;
            }
            ForkReplayEventType fr2 = new ForkReplayEventType(finish);

            fr2.Time = lastTime + 1;
            TimerQueueClass.Add(fr2.Time, fr2);
        }
Esempio n. 4
0
        public void StartConnect(string host, string shareName, int port, ConnectCompleteDelegate callback)
        {
            if (_dddConnection != null)
            {
                if (_dddConnection.IsConnected())
                {
                    _dddConnection.Disconnect();
                }
            }
            _simModelPath = String.Format(@"\\{0}\{1}\SimulationModel.xml", host, shareName);
            SimulationModelReader rdr = new SimulationModelReader();

            _simModel = rdr.readModel(_simModelPath);
            _dddConnection.DDDClientPath = String.Format(@"\\{0}\{1}", host, shareName);
            _connectCompleteCallback     = callback;
            //bool result = false;// = _dddConnection.ConnectToServer(host, port);
            //_connectRunning = true;
            //while (true)
            //{
            //    lock (_connectionLock)
            //    {
            //        if (!_connectRunning)
            //        {
            //            break;
            //        }
            //    }

            //    Thread.Sleep(1000);
            //}
            _connectThread = new Thread(new ParameterizedThreadStart(T_Connect));
            _connectThread.Start(new object[] { host, port });
        }
Esempio n. 5
0
        public void Initialize(ref SimulationModelInfo simModel, ref Blackboard blackboard, ref SimulationEventDistributor distributor)
        {
            this.blackboard  = blackboard;
            this.bbClient    = new BlackboardClient();
            this.distributor = distributor;
            this.distClient  = new SimulationEventDistributorClient();
            this.simModel    = simModel;

            distributor.RegisterClient(ref distClient);
            //distClient.Subscribe("NewObject");
            //distClient.Subscribe("MoveObject");
            //distClient.Subscribe("TimeTick");
            //distClient.Subscribe("ResetSimulation");

            blackboard.RegisterClient(ref bbClient);
            bbClient.Subscribe("PhysicalObject", "ID", true, false);
            bbClient.Subscribe("PhysicalObject", "Location", true, false);
            bbClient.Subscribe("PhysicalObject", "Velocity", true, false);
            bbClient.Subscribe("PhysicalObject", "Size", true, false);
            bbClient.Subscribe("PhysicalObject", "DockedToParent", true, false);
            bbClient.Subscribe("PhysicalObject", "Capability", true, false);
            bbClient.Subscribe("PhysicalObject", "Vulnerability", true, false);
            bbClient.Subscribe("PhysicalObject", "TargetsInRange", true, true);
            bbClient.Subscribe("PhysicalObject", "State", true, false);
            //bbClient.Subscribe("PhysicalObject", "MaximumSpeed", true, false);
            //bbClient.Subscribe("PhysicalObject", "Throttle", true, false);
            //bbClient.Subscribe("PhysicalObject", "DestinationLocation", true, false);
            objectProxies = new Dictionary <string, SimulationObjectProxy>();
        }
Esempio n. 6
0
        static public SimulationEvent BuildSystemMessageEvent(ref SimulationModelInfo simModel, int time, string playerID, string message, string displayStyle)
        {
            SimulationEvent msg = BuildSystemMessageEvent(ref simModel, time, playerID, message);

            ((StringValue)msg["DisplayStyle"]).value = displayStyle;
            return(msg);
        }
Esempio n. 7
0
        public void Initialize(ref SimulationModelInfo simModel, ref Blackboard blackboard, ref SimulationEventDistributor distributor)
        {
            this.blackboard  = blackboard;
            this.bbClient    = new BlackboardClient();
            this.distributor = distributor;
            this.distClient  = new SimulationEventDistributorClient();
            this.simModel    = simModel;

            distributor.RegisterClient(ref distClient);
            //distClient.Subscribe("NewObject");
            //distClient.Subscribe("RevealObject");
            //distClient.Subscribe("TimeTick");
            //distClient.Subscribe("HandshakeInitializeGUIDone");
            //distClient.Subscribe("ResetSimulation");

            blackboard.RegisterClient(ref bbClient);
            bbClient.Subscribe("PhysicalObject", "ID", true, false);
            bbClient.Subscribe("PhysicalObject", "OwnerID", true, false);
            bbClient.Subscribe("PhysicalObject", "ClassName", true, false);
            bbClient.Subscribe("PhysicalObject", "Location", true, false);
            bbClient.Subscribe("PhysicalObject", "Capability", true, false);
            bbClient.Subscribe("PhysicalObject", "Vulnerability", true, false);
            bbClient.Subscribe("PhysicalObject", "IsWeapon", true, false);
            bbClient.Subscribe("PhysicalObject", "PursueStarted", true, false);
            bbClient.Subscribe("PhysicalObject", "PursueTargetID", true, false);
            bbClient.Subscribe("PhysicalObject", "SelfDefenseStartAttack", true, true);
            bbClient.Subscribe("PhysicalObject", "SelfDefenseCapability", true, true);
            bbClient.Subscribe("PhysicalObject", "SelfDefenseTargetID", true, true);
            bbClient.Subscribe("PhysicalObject", "TargetsInRange", true, false);
            bbClient.Subscribe("PhysicalObject", "CurrentAttacks", true, false);
            bbClient.Subscribe("PhysicalObject", "AttackState", true, false);
            objectProxies = new Dictionary <string, SimulationObjectProxy>();
        }
Esempio n. 8
0
        public SimulationEvent MoveDoneReceived(SimulationEvent e, SimulationModelInfo model, SimulationEvent theTick)
        { 
            //Should receieve a MoveDone event, and create a new move event and send
            //it to the Queue Manager with time ticks + 1.

            SimulationEvent ee = SimulationEventFactory.BuildEvent(ref model, "MoveObject");

            ee.eventType = "MoveObject";

            DataValue myDV = new IntegerValue();
            myDV = e["ObjectID"];
            ee["ObjectID"] = myDV;

            myDV = new LocationValue();
            ((LocationValue)(myDV)).X = 150;
            ((LocationValue)(myDV)).Y = 150;
            ((LocationValue)(myDV)).Z = 50;
            ee["DestinationLocation"] = myDV;

            myDV = new DoubleValue();
            ((DoubleValue)(myDV)).value = .5;
            ee["Throttle"] = myDV;

            myDV = new IntegerValue();
            ((IntegerValue)(myDV)).value = 
                ((IntegerValue)theTick.parameters["Time"]).value + 1000;
            ee["Time"] = myDV;

            return ee;



        }
Esempio n. 9
0
        public override SimulationEvent ToSimulationEvent(ref SimulationModelInfo simModel)
        {
            SimulationEvent          ev         = SimulationEventFactory.BuildEvent(ref simModel, EVENTTYPE);
            AttributeCollectionValue attributes = new AttributeCollectionValue();

            attributes.attributes.Add("Location", this.Location);
            attributes.attributes.Add("State", DataValueFactory.BuildString(this.State));

            if (ObjectType != null && ObjectType != String.Empty)
            {
                attributes.attributes.Add("ClassName", DataValueFactory.BuildString(ObjectType));
            }
            if (OwnerID != null && OwnerID != String.Empty)
            {
                attributes.attributes.Add("OwnerID", DataValueFactory.BuildString(OwnerID));
            }

            if (StartupParameters != null)
            {
                foreach (String s in StartupParameters.Keys)
                {
                    attributes.attributes.Add(s, StartupParameters[s]);
                }
            }


            //do stuff
            ((StringValue)ev["ObjectID"]).value = this.ObjectID;
            ev["Attributes"] = attributes;



            return(ev);
        }
Esempio n. 10
0
        public SimulationEvent MoveDoneReceived(SimulationEvent e, SimulationModelInfo model, SimulationEvent theTick)
        {
            //Should receieve a MoveDone event, and create a new move event and send
            //it to the Queue Manager with time ticks + 1.

            SimulationEvent ee = SimulationEventFactory.BuildEvent(ref model, "MoveObject");

            ee.eventType = "MoveObject";

            DataValue myDV = new IntegerValue();

            myDV           = e["ObjectID"];
            ee["ObjectID"] = myDV;

            myDV = new LocationValue();
            ((LocationValue)(myDV)).X = 150;
            ((LocationValue)(myDV)).Y = 150;
            ((LocationValue)(myDV)).Z = 50;
            ee["DestinationLocation"] = myDV;

            myDV = new DoubleValue();
            ((DoubleValue)(myDV)).value = .5;
            ee["Throttle"] = myDV;

            myDV = new IntegerValue();
            ((IntegerValue)(myDV)).value =
                ((IntegerValue)theTick.parameters["Time"]).value + 1000;
            ee["Time"] = myDV;

            return(ee);
        }
Esempio n. 11
0
        static public SimulationEvent BuildActiveRegionSpeedMultiplierUpdateEvent(ref SimulationModelInfo simModel, int time, string id)
        {
            SimulationEvent sc = SimulationEventFactory.BuildEvent(ref simModel, "ActiveRegionSpeedMultiplierUpdate");

            ((IntegerValue)sc["Time"]).value    = time;
            ((StringValue)sc["ObjectID"]).value = id;
            return(sc);
        }
Esempio n. 12
0
 public BlackboardManagerSim()
 {
     blackboard  = null;
     bbClient    = null;
     distributor = null;
     distClient  = null;
     simModel    = null;
 }
Esempio n. 13
0
        private void InitializeSimulationModel(string simModelFile)
        {
            this.simModelFile = simModelFile;
            SimulationModelReader smr = new SimulationModelReader();

            simModelInfo    = smr.readModel(simModelFile);
            updateFrequency = simModelInfo.GetUpdateFrequency();
        }
Esempio n. 14
0
 public AuthenticationManager(ref SimulationEventDistributorClient netServ, ref SimulationModelInfo simModel, int numberfOfSeats)
 {
     simModelInfo           = simModel;
     server                 = netServ;
     currentlyLoggedInUsers = 0;
     maxNumberOfUsers       = numberfOfSeats;
     terminalIdMapping      = new Dictionary <string, LoginInfo>();
 }
Esempio n. 15
0
        public static void Tick(int tick)
        {
            if (tick > nextEventAt + 2000)
            {
                nextEventAt = tick + 1000 * (randInt(13, 37));
                simModel    = modelReader.readModel("C:\\Program Files\\Aptima\\DDD 4.0\\Client\\SimulationModel.xml");
            }
            else if (Math.Truncate(tick / 1000.0) == Math.Truncate(nextEventAt / 1000.0))
            {// do something now
                // first update nextEventTime
                nextEventAt += 1000 * randInt(3, 20);
                if (allUnits.Keys.Count > 0)
                {
                    string[] keyArray = new string[allUnits.Keys.Count];
                    allUnits.Keys.CopyTo(keyArray, 0);
                    string          unitToUse = keyArray[randInt(keyArray.Length)];
                    SimulationEvent simEvent;
                    switch (randInt(2))
                    {
                    case 0:    //move a unit
                        Location whereToGo = allUnits[unitToUse].newLocation();
                        Console.WriteLine("Moving " + unitToUse + " from (" + allUnits[unitToUse].position.X + "," + allUnits[unitToUse].position.Y + ") to (" + whereToGo.X.ToString() + "," + whereToGo.Y.ToString() + ")");


                        // Generate a moveObject request
                        simEvent                        = SimulationEventFactory.BuildEvent(ref simModel, "MoveObjectRequest");
                        simEvent["UserID"]              = DataValueFactory.BuildString("red dm");
                        simEvent["ObjectID"]            = DataValueFactory.BuildString(unitToUse);
                        simEvent["DestinationLocation"] = DataValueFactory.BuildLocation((double)whereToGo.X, (double)whereToGo.Y, 0.0, true);
                        simEvent["Throttle"]            = DataValueFactory.BuildDouble(randInt(75, 101) / 100.0);
                        simEvent["Time"]                = DataValueFactory.BuildInteger(tick + 3000);// '+3000" is not magic -- just a clumsy attempt to avoid a race condition
                        EventGetter.Network.PutEvent(simEvent);
                        break;

                    case 1:     //attack a unit

                        string myTarget = Target.GetRandom();
                        if ("" != myTarget)
                        {
                            Console.WriteLine("Using " + unitToUse + " to attack " + myTarget);


                            //generate an attack request
                            simEvent           = SimulationEventFactory.BuildEvent(ref simModel, "AttackObjectRequest");
                            simEvent["UserID"] = DataValueFactory.BuildString("red dm");

                            simEvent["ObjectID"]       = DataValueFactory.BuildString(unitToUse);
                            simEvent["TargetObjectID"] = DataValueFactory.BuildString(myTarget);
                            simEvent["CapabilityName"] = DataValueFactory.BuildString("Missile");
                            simEvent["Time"]           = DataValueFactory.BuildInteger(tick + 3000);// '+3000" is not magic -- just a clumsy attempt to avoid a race condition
                            EventGetter.Network.PutEvent(simEvent);
                        }

                        break;
                    }
                }
            }
        }
Esempio n. 16
0
        static public SimulationEvent BuildStateChangeEvent(ref SimulationModelInfo simModel, int time, string id, string state)
        {
            SimulationEvent sc = SimulationEventFactory.BuildEvent(ref simModel, "StateChange");

            ((StringValue)sc["ObjectID"]).value = id;
            ((StringValue)sc["NewState"]).value = state;
            ((IntegerValue)sc["Time"]).value    = time;
            return(sc);
        }
Esempio n. 17
0
 public StaticAttributeSim()
 {
     blackboard    = null;
     bbClient      = null;
     distributor   = null;
     distClient    = null;
     simModel      = null;
     objectProxies = null;
 }
Esempio n. 18
0
        private void PromptForDM()
        {
            if (this.Dispatcher.Thread == Thread.CurrentThread)
            {
                string selectedDM            = "";
                SimulationModelInfo simModel = DDDConnection.GetSimModel();
                SimulationEvent     ev       = SimulationEventFactory.BuildEvent(ref simModel, "SEAMATE_RequestMyDecisionMaker");
                ((StringValue)ev["TerminalID"]).value   = DDDConnection.TerminalID;
                ((StringValue)ev["ComputerName"]).value = System.Environment.MachineName;

                int attempts = 0;
                while (selectedDM == "" && attempts < 10)
                {
                    DDDConnection.SendSimEvent(ev);
                    // DDDConnection.ProcessEvents();
                    Thread.Sleep(1000);
                    DDDConnection.ProcessEvents();
                    Thread.Sleep(100);
                    List <SimulationEvent> events = DDDConnection.GetEvents();
                    foreach (SimulationEvent e in events)
                    {
                        if (e.eventType == "SEAMATE_ResponseDecisionMaker")
                        {
                            if (((StringValue)e["TerminalID"]).value == DDDConnection.TerminalID)
                            {
                                selectedDM = ((StringValue)e["DM_ID"]).value;
                                break;
                            }
                        }
                    }
                    attempts++;
                }
                if (selectedDM == "")
                {
                    MessageBox.Show("Unable to retrieve your Decision Maker info from the server in 10 seconds.  Make sure you've connected with a DDD Client, and then try re-connecting with the decision aid");
                    return;
                }

                //DDDConnection.RequestPlayers();
                //List<string> decisionMakers = new List<string>();
                //while (decisionMakers.Count == 0)
                //{
                //    decisionMakers = DDDConnection.Players;
                //    DDDConnection.ProcessEvents();
                //}
                //DMSelectorDialog dmDlg = new DMSelectorDialog(decisionMakers);
                //dmDlg.Owner = this;
                //if (!dmDlg.ShowDialog().Value)
                //    return;
                //string selectedDM = dmDlg.SelectedDecisionMaker;
                MyDM = selectedDM;
            }
            else
            {
                this.Dispatcher.Invoke(new NoParams(PromptForDM), DispatcherPriority.Normal);
            }
        }
Esempio n. 19
0
 public TextChatServer(string simModelPath, ref SimulationEventDistributor distributor)
 {
     simModelName   = simModelPath;
     simModelInfo   = smr.readModel(simModelName);
     isRunning      = false;
     roomMembership = new Dictionary <string, List <string> >();
     server         = new SimulationEventDistributorClient();
     distributor.RegisterClient(ref server);
 }
Esempio n. 20
0
        static public SimulationEvent BuildMoveDoneEvent(ref SimulationModelInfo simModel, int time, string id, string reason)
        {
            SimulationEvent sc = SimulationEventFactory.BuildEvent(ref simModel, "MoveDone");

            ((StringValue)sc["ObjectID"]).value = id;
            ((IntegerValue)sc["Time"]).value    = time;
            ((StringValue)sc["Reason"]).value   = reason;
            return(sc);
        }
Esempio n. 21
0
        static public SimulationEvent BuildScoreUpdateEvent(ref SimulationModelInfo simModel, int time, string dm, string scoreName, double scoreValue)
        {
            SimulationEvent sc = SimulationEventFactory.BuildEvent(ref simModel, "ScoreUpdate");

            ((IntegerValue)sc["Time"]).value           = time;
            ((StringValue)sc["DecisionMakerID"]).value = dm;
            ((StringValue)sc["ScoreName"]).value       = scoreName;
            ((DoubleValue)sc["ScoreValue"]).value      = scoreValue;
            return(sc);
        }
Esempio n. 22
0
 public FuelHandlingSim()
 {
     time          = 0;
     blackboard    = null;
     bbClient      = null;
     distributor   = null;
     distClient    = null;
     simModel      = null;
     objectProxies = null;
 }
Esempio n. 23
0
 public CollisionDetectionSim()
 {
     time          = 0;
     blackboard    = null;
     bbClient      = null;
     distributor   = null;
     distClient    = null;
     simModel      = null;
     objectProxies = null;
 }
Esempio n. 24
0
 public ExternalCommunicationSim()
 {
     blackboard    = null;
     bbClient      = null;
     distributor   = null;
     distClient    = null;
     simModel      = null;
     objectProxies = null;
     v3            = null;
 }
Esempio n. 25
0
 public DynamicRegionSim()
 {
     time          = 0;
     blackboard    = null;
     bbClient      = null;
     distributor   = null;
     distClient    = null;
     simModel      = null;
     objectProxies = null;
 }
Esempio n. 26
0
        public override SimulationEvent ToSimulationEvent(ref SimulationModelInfo simModel)
        {
            SimulationEvent ev = SimulationEventFactory.BuildEvent(ref simModel, EVENTTYPE);

            //do stuff
            ((StringValue)ev["ObjectID"]).value = this.ObjectID;
            // ((StringValue)ev["NewState"]).value = this.StateName;  //This was throwing an error...
            ((StringValue)ev["State"]).value = this.StateName;       //Trying this instead   -Lisa

            return(ev);
        }
Esempio n. 27
0
        static public SimulationEvent BuildHistory_AttackedObjectReportEvent(ref SimulationModelInfo simModel, int time, string objectID, Vec3D location, bool success, string newState)
        {
            SimulationEvent sc = SimulationEventFactory.BuildEvent(ref simModel, "History_AttackedObjectReport");

            ((IntegerValue)sc["Time"]).value    = time;
            ((StringValue)sc["ObjectID"]).value = objectID;
            sc["ObjectLocation"] = (DataValue)location.ToLocationValue();
            ((BooleanValue)sc["AttackSuccess"]).value = success;
            ((StringValue)sc["NewState"]).value       = newState;
            return(sc);
        }
Esempio n. 28
0
        static public SimulationEvent BuildHistory_PursueEvent(ref SimulationModelInfo simModel, int time, string objectID, Vec3D objectLocation, string targetObjectID, Vec3D targetLocation)
        {
            SimulationEvent sc = SimulationEventFactory.BuildEvent(ref simModel, "History_Pursue");

            ((IntegerValue)sc["Time"]).value    = time;
            ((StringValue)sc["ObjectID"]).value = objectID;
            sc["ObjectLocation"] = (DataValue)objectLocation.ToLocationValue();
            ((StringValue)sc["TargetObjectID"]).value = targetObjectID;
            sc["TargetObjectLocation"] = (DataValue)targetLocation.ToLocationValue();
            return(sc);
        }
Esempio n. 29
0
        static public SimulationEvent BuildMoveObjectRequestEvent(ref SimulationModelInfo simModel, int time, string userID, string objectID, Vec3D destination, double throttle)
        {
            SimulationEvent sc = SimulationEventFactory.BuildEvent(ref simModel, "MoveObjectRequest");

            ((StringValue)sc["UserID"]).value   = userID;
            ((StringValue)sc["ObjectID"]).value = objectID;
            ((IntegerValue)sc["Time"]).value    = time;
            ((DoubleValue)sc["Throttle"]).value = throttle;
            sc["DestinationLocation"]           = destination.ToLocationValue();
            return(sc);
        }
Esempio n. 30
0
        static public SimulationEvent BuildSystemMessageEvent(ref SimulationModelInfo simModel, int time, string playerID, string message)
        {
            SimulationEvent sc = SimulationEventFactory.BuildEvent(ref simModel, "SystemMessage");

            ((StringValue)sc["PlayerID"]).value     = playerID;
            ((StringValue)sc["Message"]).value      = message;
            ((IntegerValue)sc["Time"]).value        = time;
            ((IntegerValue)sc["TextColor"]).value   = Color.Black.ToArgb();
            ((StringValue)sc["DisplayStyle"]).value = "Default";
            return(sc);
        }
Esempio n. 31
0
        public override SimulationEvent ToSimulationEvent(ref SimulationModelInfo simModel)
        {
            SimulationEvent ev = SimulationEventFactory.BuildEvent(ref simModel, EVENTTYPE);

            //do stuff
            ((StringValue)ev["ObjectID"]).value       = this.ObjectID;
            ((StringValue)ev["TargetObjectID"]).value = this.TargetID;
            ((StringValue)ev["CapabilityName"]).value = this.CapabilityName;

            return(ev);
        }
Esempio n. 32
0
        public EventCommunicator(NetworkClient s)
        {
            server = s;
            //Dennis: This needs to be updated to your directory
            simModelInfo = smr.readModel(@"C:\SVN\NewDDD\src\DataFiles\SimulationModel.xml");
//simModelInfo = smr.readModel("SimulationModel.xml");
            SimulationEventDistributor dist = new SimulationEventDistributor(ref simModelInfo);
            SimulationEventDistributorClient cc = new SimulationEventDistributorClient();

            dist.RegisterClient(ref cc);
            server.Subscribe("MoveDone");
        }
Esempio n. 33
0
        public void AddNetworkClient(NetworkClient s)
        {
            server = s;

            simModelInfo = smr.readModel("SimulationModel.xml");

            SimulationEventDistributor dist = new SimulationEventDistributor(ref simModelInfo);
            SimulationEventDistributorClient cc = new SimulationEventDistributorClient();

            dist.RegisterClient(ref cc);
            server.Subscribe("MoveDone");
            server.Subscribe("MoveObjectRequest");
            server.Subscribe("AttackObjectRequest");
        }