Пример #1
0
        public void KeepTryingToGoToLocation()
        {
            D.onDLog += Console.WriteLine;             // take care of the D.Log message from invalid path

            _eva.logger.AddListener(Console.WriteLine);
            _eva.position = new WorldCoordinate("Eden", new IntPoint(2, 4));

            WorldTestHelper.PreloadWorld(_world);

            float dt = 0.25f;

            for (int i = 0; i < 40; i++)
            {
                // She will reach the corner destination in the room (4, 4) eventually
                _eva.WalkTo(new WorldCoordinate("Eden", new IntPoint(200, 300)));
                _world.Update(dt);
            }
        }
Пример #2
0
        public void AddProgramsToProgramsArray()
        {
            MimanTing  mimanTing = _world.tingRunner.CreateTing <MimanTingConcrete>("Miman Ting", new WorldCoordinate("Kitchen", IntPoint.Zero));
            SourceCode dummyCode = new SourceCode();

            dummyCode.CreateNewRelayEntry(_world.relay.GetTable(SourceCode.TABLE_NAME), typeof(SourceCode).Name);

            WorldTestHelper.PreloadWorld(_world);

            Program p1 = _world.programRunner.CreateProgram(dummyCode);
            Program p2 = _world.programRunner.CreateProgram(dummyCode);

            _world.Update(0.1f);              // the programs are added to the program runner at the end of the frame

            Assert.AreEqual(0, mimanTing.programs.Length);
            mimanTing.AddProgramToProgramsArray(p1);
            Assert.AreEqual(1, mimanTing.programs.Length);
            mimanTing.AddProgramToProgramsArray(p2);
            Assert.AreEqual(2, mimanTing.programs.Length);
        }
Пример #3
0
        public void LoadAndSaveDialogueDuplicationBug()
        {
            string saveName       = "../Saves/step1_save.json";
            var    outputDialogue = new List <string>();

            Console.WriteLine("STEP 1");

            // Step 1
            {
                InitialSaveFileCreator i = new InitialSaveFileCreator();
                var world1 = new World(i.CreateRelay(WorldTestHelper.INIT_DATA_PATH));
                WorldTestHelper.PreloadWorld(world1);

                GameTypes.D.onDLog += Console.WriteLine;
                world1.dialogueRunner.logger.AddListener(Console.WriteLine);

                world1.dialogueRunner.AddOnSomeoneSaidSomethingListener(o => {
                    Console.WriteLine(o.speaker + ": " + o.line);
                    outputDialogue.Add(o.line);
                });

                WorldTestHelper.UpdateWorld(world1, 1f);
                PrintActiveStuff(world1);
                world1.dialogueRunner.RunStringAsFunction("Story(BeforeFirst)");
                WorldTestHelper.UpdateWorld(world1, 1f);
                PrintActiveStuff(world1);


                world1.dialogueRunner.RunStringAsFunction("Story(First)");
                WorldTestHelper.UpdateWorld(world1, 0.5f);
                PrintActiveStuff(world1);


                world1.dialogueRunner.EventHappened("DO_IT_REAL_GOOD");
                PrintActiveStuff(world1);
                WorldTestHelper.UpdateWorld(world1, 3f);


                world1.Save(saveName);

                GameTypes.D.onDLog -= Console.WriteLine;
            }

            Console.WriteLine("\n\nSTEP 2");

            // Step 2
            {
                var world2 = new World(saveName);
                WorldTestHelper.PreloadWorld(world2);

                world2.dialogueRunner.logger.AddListener(Console.WriteLine);
                GameTypes.D.onDLog += Console.WriteLine;

                world2.dialogueRunner.AddOnSomeoneSaidSomethingListener(o => {
                    Console.WriteLine(o.speaker + ": " + o.line);
                    outputDialogue.Add(o.line);
                });

                PrintActiveStuff(world2);
                WorldTestHelper.UpdateWorld(world2, 3f);
                PrintActiveStuff(world2);

                world2.dialogueRunner.RunStringAsFunction("Story(Second)");
                WorldTestHelper.UpdateWorld(world2, 3.0f);

                PrintActiveStuff(world2);


                world2.dialogueRunner.EventHappened("DO_IT_REAL_GOOD");
                WorldTestHelper.UpdateWorld(world2, 3f);
            }
        }
Пример #4
0
        public void SendDataFromComputerToComputerWhileSavingAndLoadingInbetween()
        {
            {
                WorldTestHelper.PreloadWorld(_world);
                _world.Update(0.1f);

                Computer sender   = _world.tingRunner.CreateTing <Computer>("Sender", new WorldCoordinate("Eden", 1, 3));
                Computer receiver = _world.tingRunner.CreateTing <Computer>("Receiver", new WorldCoordinate("Eden", 3, 2));

                sender.hasInternetAPI = true;

                sender.masterProgramName   = "Sender";
                receiver.masterProgramName = "Receiver";

                //Console.WriteLine("sender program state: " + sender.masterProgram.programState);

                receiver.RunProgram(null);
                sender.RunProgram(null);

                //_world.Update(1f);
                //_world.Update(1f);
                //_world.Update(1f);

                _world.Save("InBetween.json");

                Assert.IsTrue(sender.masterProgram.isOn);
                Assert.IsTrue(receiver.masterProgram.isOn);

                Console.WriteLine("sender executions: " + sender.masterProgram.executionCounter);
                Console.WriteLine("sender is waiting for input? " + sender.masterProgram.waitingForInput);
                Console.WriteLine("sender is on? " + sender.masterProgram.isOn);
                //Console.WriteLine("sender program state: " + sender.masterProgram.programState);

                Console.WriteLine("receiver executions: " + receiver.masterProgram.executionCounter);
                Console.WriteLine("receiver is waiting for input? " + receiver.masterProgram.waitingForInput);
                Console.WriteLine("receiver is on? " + receiver.masterProgram.isOn);
                //Console.WriteLine("receiver program state: " + receiver.masterProgram.programState);
            }

            Console.WriteLine(" --- AFTER --- ");

            {
                var world2 = new World("InBetween.json");
                WorldTestHelper.PreloadWorld(world2);

                Computer sender2   = world2.tingRunner.GetTing <Computer>("Sender");
                Computer receiver2 = world2.tingRunner.GetTing <Computer>("Receiver");

                Assert.IsTrue(sender2.masterProgram.isOn);
                Assert.IsTrue(receiver2.masterProgram.isOn);

                WorldTestHelper.UpdateWorld(world2, 5f);

                Console.WriteLine("sender executions: " + sender2.masterProgram.executionCounter);
                Console.WriteLine("sender is waiting for input? " + sender2.masterProgram.waitingForInput);
                Console.WriteLine("sender is on? " + sender2.masterProgram.isOn);
                //Console.WriteLine("sender program state: " + sender2.masterProgram.programState);

                Console.WriteLine("receiver executions: " + receiver2.masterProgram.executionCounter);
                Console.WriteLine("receiver is waiting for input? " + receiver2.masterProgram.waitingForInput);
                Console.WriteLine("receiver is on? " + receiver2.masterProgram.isOn);
                //Console.WriteLine("receiver program state: " + receiver2.masterProgram.programState);

                Assert.AreEqual("bleh", sender2.consoleOutput[0]);
                Assert.AreEqual("received: hej", receiver2.consoleOutput[0]);

                //Assert.IsFalse(sender2.masterProgram.isOn);
                //Assert.IsFalse(receiver2.masterProgram.isOn);
            }
        }