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); } }
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); }
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); } }
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); } }