public void SetUp() { WorldTestHelper.GenerateInitData(); InitialSaveFileCreator i = new InitialSaveFileCreator(); _world = new World(i.CreateRelay(WorldTestHelper.INIT_DATA_PATH)); }
public void SetUp() { WorldTestHelper.GenerateInitData(); InitialSaveFileCreator i = new InitialSaveFileCreator(); _world = new World(i.CreateRelay(WorldTestHelper.INIT_DATA_PATH)); _room = _world.roomRunner.CreateRoom<Room>("Room"); }
public void SetUp() { WorldTestHelper.GenerateInitData(); InitialSaveFileCreator i = new InitialSaveFileCreator(); _world = new World(i.CreateRelay(WorldTestHelper.INIT_DATA_PATH)); _eva = _world.tingRunner.GetTing("Eva") as Character; }
public void Setup() { D.onDLog += Console.WriteLine; SmartWalkBehaviour.s_logger.AddListener(s => Console.WriteLine("Walk behaviour: " + s)); WorldTestHelper.GenerateInitData(); InitialSaveFileCreator i = new InitialSaveFileCreator(); _world = new World(i.CreateRelay("../InitData1/")); foreach (string s in _world.Preload()) { ; } _d1 = _world.tingRunner.CreateTing <Door>("DoorOne", new TingTing.WorldCoordinate("Eden", new IntPoint(4, 4)), Direction.LEFT); _d2 = _world.tingRunner.CreateTing <Door>("DoorTwo", new TingTing.WorldCoordinate("Hallway", new IntPoint(0, 0)), Direction.RIGHT); _d1.targetDoorName = _d2.name; _d2.targetDoorName = _d1.name; _d3 = _world.tingRunner.CreateTing <Door>("DoorThree", new TingTing.WorldCoordinate("Hallway", new IntPoint(4, 2)), Direction.LEFT); _d4 = _world.tingRunner.CreateTing <Door>("DoorFour", new TingTing.WorldCoordinate("Kitchen", new IntPoint(0, 2)), Direction.RIGHT); _d3.targetDoorName = _d4.name; _d4.targetDoorName = _d3.name; _world.roomRunner.GetRoom("Hallway").worldPosition = new IntPoint(4, 4); _adam = _world.tingRunner.GetTing <Character>("Adam"); _eve = _world.tingRunner.GetTing <Character>("Eva"); }
public static void GenerateInitData() { InitialSaveFileCreator i = new InitialSaveFileCreator(); World world = new World(i.CreateEmptyRelay()); SimpleRoomBuilder srb = new SimpleRoomBuilder(world.roomRunner); srb.CreateRoomWithSize("Eden", 5, 5); srb.CreateRoomWithSize("Hallway", 5, 5); srb.CreateRoomWithSize("Kitchen", 10, 5); srb.CreateRoomWithSize("Bedroom", 5, 5); world.tingRunner.CreateTing<Character>("Adam", new WorldCoordinate("Eden", new IntPoint(0, 0))); world.tingRunner.CreateTing<Character>("Eva", new WorldCoordinate("Eden", new IntPoint(4, 4))); MysticalCube c = world.tingRunner.CreateTing<MysticalCube>("PowerCube", new WorldCoordinate("Eden", new IntPoint(2, 2))); c.onInteractionSourceCodeName = "PowerCube"; world.relay.SaveTableSubsetSeparately(Room.TABLE_NAME, INIT_DATA_PATH + "Rooms.json"); RelayLib.RelayTwo tingSubset = new RelayLib.RelayTwo(); foreach(string table in world.tingRunner.loadedTingTables) tingSubset.MergeWith(world.relay.Subset(table, (o) => { return true; })); tingSubset.SaveAll(INIT_DATA_PATH + "Tings.json"); }
public static void GenerateInitData() { InitialSaveFileCreator i = new InitialSaveFileCreator(); World world = new World(i.CreateEmptyRelay()); SimpleRoomBuilder srb = new SimpleRoomBuilder(world.roomRunner); srb.CreateRoomWithSize("Eden", 5, 5); srb.CreateRoomWithSize("Hallway", 5, 5); srb.CreateRoomWithSize("Kitchen", 10, 5); srb.CreateRoomWithSize("Bedroom", 5, 5); world.tingRunner.CreateTing <Character>("Adam", new WorldCoordinate("Eden", new IntPoint(0, 0))); world.tingRunner.CreateTing <Character>("Eva", new WorldCoordinate("Eden", new IntPoint(4, 4))); MysticalCube c = world.tingRunner.CreateTing <MysticalCube>("PowerCube", new WorldCoordinate("Eden", new IntPoint(2, 2))); c.onInteractionSourceCodeName = "PowerCube"; world.relay.SaveTableSubsetSeparately(Room.TABLE_NAME, INIT_DATA_PATH + "Rooms.json"); RelayLib.RelayTwo tingSubset = new RelayLib.RelayTwo(); foreach (string table in world.tingRunner.loadedTingTables) { tingSubset.MergeWith(world.relay.Subset(table, (o) => { return(true); })); } tingSubset.SaveAll(INIT_DATA_PATH + "Tings.json"); }
public void SetUp() { D.onDLog += Console.WriteLine; WorldTestHelper.GenerateInitData(); InitialSaveFileCreator i = new InitialSaveFileCreator(); _world = new World(i.CreateRelay(WorldTestHelper.INIT_DATA_PATH)); }
public void Setup() { D.onDLog += Console.WriteLine; WorldTestHelper.GenerateInitData(); InitialSaveFileCreator i = new InitialSaveFileCreator(); _world = new World(i.CreateRelay("../InitData1/")); _adam = _world.tingRunner.GetTing<Character>("Adam"); _seat = _world.tingRunner.CreateTing<Seat>("Chair", new WorldCoordinate("Eden", 0, 3)); }
public void SetUp() { WorldTestHelper.GenerateInitData(); InitialSaveFileCreator i = new InitialSaveFileCreator(); _world = new World(i.CreateRelay(WorldTestHelper.INIT_DATA_PATH)); _adam = _world.tingRunner.GetTing("Adam") as Character; _eva = _world.tingRunner.GetTing("Eva") as Character; _cube = _world.tingRunner.GetTing("PowerCube") as MysticalCube; }
public void Setup() { D.onDLog += Console.WriteLine; WorldTestHelper.GenerateInitData(); InitialSaveFileCreator i = new InitialSaveFileCreator(); _world = new World(i.CreateRelay("../InitData1/")); _adam = _world.tingRunner.GetTing <Character>("Adam"); _seat = _world.tingRunner.CreateTing <Seat>("Chair", new WorldCoordinate("Eden", 0, 3)); }
public void SetUp() { WorldTestHelper.GenerateInitData(); InitialSaveFileCreator i = new InitialSaveFileCreator(); _world = new World(i.CreateRelay(WorldTestHelper.INIT_DATA_PATH)); _adam = _world.tingRunner.GetTing("Adam") as Character; _eva = _world.tingRunner.GetTing("Eva") as Character; D.onDLog += (pMessage) => Console.WriteLine(pMessage); }
public void CreateAndSaveEmptyRelay() { InitialSaveFileCreator i = new InitialSaveFileCreator(); RelayTwo emptyRelay = i.CreateEmptyRelay(); AssertThatCanFindAllTables(emptyRelay); emptyRelay.SaveAll("empty.json"); emptyRelay.tables.Clear(); emptyRelay.LoadAll("empty.json"); AssertThatCanFindAllTables(emptyRelay); }
private static void SimplePathfinding() { D.onDLog += Console.WriteLine; // take care of the D.Log message from invalid path InitialSaveFileCreator isc = new InitialSaveFileCreator(); World world = new World(isc.CreateEmptyRelay()); SimpleRoomBuilder srb = new SimpleRoomBuilder(world.roomRunner); srb.CreateRoomWithSize("Eden", 10, 10); var middleRoom = srb.CreateRoomWithSize("MiddleRoom", 10, 10); var wrongRoom = srb.CreateRoomWithSize("WrongRoom", 10, 10); var distantRoom = srb.CreateRoomWithSize("DistantRoom", 10, 10); middleRoom.worldPosition = new IntPoint(10, 0); wrongRoom.worldPosition = new IntPoint(30, 0); distantRoom.worldPosition = new IntPoint(50, 0); var p1 = world.tingRunner.CreateTing <Point>("p1", new WorldCoordinate("Eden", new IntPoint(2, 4))); var p2 = world.tingRunner.CreateTing <Point>("p2", new WorldCoordinate("DistantRoom", new IntPoint(4, 4))); // Add doors var edenDoor = world.tingRunner.CreateTing <Door>("edenDoor", new WorldCoordinate("Eden", new IntPoint(4, 4))); var middleRoomDoor1 = world.tingRunner.CreateTing <Door>("middleRoomDoor1", new WorldCoordinate("MiddleRoom", new IntPoint(2, 4))); var middleRoomDoor2 = world.tingRunner.CreateTing <Door>("middleRoomDoor2", new WorldCoordinate("MiddleRoom", new IntPoint(7, 4))); var middleRoomDoor3 = world.tingRunner.CreateTing <Door>("middleRoomDoor3", new WorldCoordinate("MiddleRoom", new IntPoint(4, 4))); var wrongRoomDoor = world.tingRunner.CreateTing <Door>("wrongRoomDoor", new WorldCoordinate("WrongRoom", new IntPoint(4, 4))); var distantRoomDoor = world.tingRunner.CreateTing <Door>("distantRoomDoor", new WorldCoordinate("DistantRoom", new IntPoint(2, 4))); edenDoor.targetDoorName = "middleRoomDoor1"; middleRoomDoor1.targetDoorName = "edenDoor"; middleRoomDoor2.targetDoorName = "distantRoomDoor"; middleRoomDoor3.targetDoorName = "wrongRoomDoor"; wrongRoomDoor.targetDoorName = "middleRoomDoor3"; distantRoomDoor.targetDoorName = "middleRoomDoor2"; world.sourceCodeDispenser.CreateSourceCodeFromString("OnDoorUsed", ""); if (!world.isReadyToPlay) { foreach (string s in world.Preload()) { } } var pathfinder = new MimanPathfinder2(world.tingRunner, world.roomRunner); var result = pathfinder.Search(p1, p2); Console.WriteLine("Result: " + result); }
World CreateWorldWithSomeRooms() { InitialSaveFileCreator isc = new InitialSaveFileCreator(); World world = new World(isc.CreateEmptyRelay()); SimpleRoomBuilder srb = new SimpleRoomBuilder(world.roomRunner); srb.CreateRoomWithSize("Eden", 10, 10); var middleRoom = srb.CreateRoomWithSize("MiddleRoom", 10, 10); var wrongRoom = srb.CreateRoomWithSize("WrongRoom", 10, 10); var distantRoom = srb.CreateRoomWithSize("DistantRoom", 10, 10); middleRoom.worldPosition = new IntPoint(10, 0); wrongRoom.worldPosition = new IntPoint(30, 0); distantRoom.worldPosition = new IntPoint(50, 0); // Add doors var edenDoor = world.tingRunner.CreateTing <Door>("edenDoor", new WorldCoordinate("Eden", new IntPoint(4, 4))); var middleRoomDoor1 = world.tingRunner.CreateTing <Door>("middleRoomDoor1", new WorldCoordinate("MiddleRoom", new IntPoint(2, 4))); var middleRoomDoor2 = world.tingRunner.CreateTing <Door>("middleRoomDoor2", new WorldCoordinate("MiddleRoom", new IntPoint(7, 4))); var middleRoomDoor3 = world.tingRunner.CreateTing <Door>("middleRoomDoor3", new WorldCoordinate("MiddleRoom", new IntPoint(4, 4))); var wrongRoomDoor = world.tingRunner.CreateTing <Door>("wrongRoomDoor", new WorldCoordinate("WrongRoom", new IntPoint(4, 4))); var distantRoomDoor = world.tingRunner.CreateTing <Door>("distantRoomDoor", new WorldCoordinate("DistantRoom", new IntPoint(2, 4))); edenDoor.targetDoorName = "middleRoomDoor1"; middleRoomDoor1.targetDoorName = "edenDoor"; middleRoomDoor2.targetDoorName = "distantRoomDoor"; middleRoomDoor3.targetDoorName = "wrongRoomDoor"; wrongRoomDoor.targetDoorName = "middleRoomDoor3"; distantRoomDoor.targetDoorName = "middleRoomDoor2"; var distantTile = new PointTileNode(new IntPoint(200, 200), wrongRoom); distantTile.group = 1; wrongRoom.AddTile(distantTile); var wrongRoomUnattachedDoor = world.tingRunner.CreateTing <Door>("wrongRoomUnattachedDoor", new WorldCoordinate("WrongRoom", new IntPoint(200, 200))); wrongRoomUnattachedDoor.targetDoorName = "edenDoor"; world.sourceCodeDispenser.CreateSourceCodeFromString("OnDoorUsed", ""); if (!world.isReadyToPlay) { foreach (string s in world.Preload()) { } } return(world); }
public void CreateInitialSaveFromInitData1() { InitialSaveFileCreator i = new InitialSaveFileCreator(); i.CreateSaveFile("../InitData1/", WorldTestHelper.INITIAL_SAVE_1); RelayTwo relay = new RelayTwo(WorldTestHelper.INITIAL_SAVE_1); AssertThatCanFindAllTables(relay); TableTwo tingTable = relay.GetTable(Character.TABLE_NAME); Assert.AreEqual("Adam", tingTable.GetRow(0).Get<string>("name")); Assert.AreEqual("Eva", tingTable.GetRow(1).Get<string>("name")); Assert.AreEqual("PowerCube", relay.GetTable(MysticalCube.TABLE_NAME).GetRow(0).Get<string>("name")); TableTwo roomTable = relay.GetTable(Room.TABLE_NAME); Assert.AreEqual("Eden", roomTable.GetRow(0).Get<string>("name")); Assert.AreEqual("Hallway", roomTable.GetRow(1).Get<string>("name")); Assert.AreEqual("Kitchen", roomTable.GetRow(2).Get<string>("name")); Assert.AreEqual("Bedroom", roomTable.GetRow(3).Get<string>("name")); }
public static void Main(string[] args) { /* * FlowerPotTest test = new FlowerPotTest(); * test.SetUp(); * test.RunWorld(); * Console.ReadLine();*/ Console.WriteLine("Start"); InitialSaveFileCreator i = new InitialSaveFileCreator(); World world = new World(i.CreateRelay("../InitData2")); foreach (Room r in world.roomRunner.rooms) { Console.WriteLine("Got room " + r.name + " with " + r.points.Length.ToString() + " tile nodes"); } Console.WriteLine("Done"); }
public void TrySavingComputerMemory() { string saveName = "ComputerMemoryTest.json"; { WorldTestHelper.GenerateInitData(); InitialSaveFileCreator i = new InitialSaveFileCreator(); World world = new World(i.CreateRelay(WorldTestHelper.INIT_DATA_PATH)); Memory computerMemory = world.tingRunner.CreateTing <Memory> ("ComputerMemory1", new TingTing.WorldCoordinate("Eden", 2, 3)); computerMemory["a"] = 42; computerMemory["b"] = 100.5; world.Save(saveName); } { World world = new World(saveName); Memory computerMemory = world.tingRunner.GetTing <Memory> ("ComputerMemory1"); Assert.AreEqual(2, computerMemory.data.Keys.Count); Assert.AreEqual(42, computerMemory["a"]); Assert.AreEqual(100.5, computerMemory["b"]); } }
public static void Main( string[] args ) { /* FlowerPotTest test = new FlowerPotTest(); test.SetUp(); test.RunWorld(); Console.ReadLine();*/ Console.WriteLine("Start"); InitialSaveFileCreator i = new InitialSaveFileCreator(); World world = new World(i.CreateRelay("../InitData2")); foreach(Room r in world.roomRunner.rooms) { Console.WriteLine("Got room " + r.name + " with " + r.points.Length.ToString() + " tile nodes"); } Console.WriteLine("Done"); }
public void TrySavingComputerMemory() { string saveName = "ComputerMemoryTest.json"; { WorldTestHelper.GenerateInitData (); InitialSaveFileCreator i = new InitialSaveFileCreator (); World world = new World (i.CreateRelay (WorldTestHelper.INIT_DATA_PATH)); Memory computerMemory = world.tingRunner.CreateTing<Memory> ("ComputerMemory1", new TingTing.WorldCoordinate ("Eden", 2, 3)); computerMemory["a"] = 42; computerMemory["b"] = 100.5; world.Save (saveName); } { World world = new World (saveName); Memory computerMemory = world.tingRunner.GetTing<Memory> ("ComputerMemory1"); Assert.AreEqual (2, computerMemory.data.Keys.Count); Assert.AreEqual (42, computerMemory["a"]); Assert.AreEqual (100.5, computerMemory["b"]); } }
public void CreateInitialSaveFromInitData1() { InitialSaveFileCreator i = new InitialSaveFileCreator(); i.CreateSaveFile("../InitData1/", WorldTestHelper.INITIAL_SAVE_1); RelayTwo relay = new RelayTwo(WorldTestHelper.INITIAL_SAVE_1); AssertThatCanFindAllTables(relay); TableTwo tingTable = relay.GetTable(Character.TABLE_NAME); Assert.AreEqual("Adam", tingTable.GetRow(0).Get <string>("name")); Assert.AreEqual("Eva", tingTable.GetRow(1).Get <string>("name")); Assert.AreEqual("PowerCube", relay.GetTable(MysticalCube.TABLE_NAME).GetRow(0).Get <string>("name")); TableTwo roomTable = relay.GetTable(Room.TABLE_NAME); Assert.AreEqual("Eden", roomTable.GetRow(0).Get <string>("name")); Assert.AreEqual("Hallway", roomTable.GetRow(1).Get <string>("name")); Assert.AreEqual("Kitchen", roomTable.GetRow(2).Get <string>("name")); Assert.AreEqual("Bedroom", roomTable.GetRow(3).Get <string>("name")); }
public void Setup() { D.onDLog += Console.WriteLine; SmartWalkBehaviour.s_logger.AddListener (s => Console.WriteLine ("Walk behaviour: " + s)); WorldTestHelper.GenerateInitData(); InitialSaveFileCreator i = new InitialSaveFileCreator(); _world = new World(i.CreateRelay("../InitData1/")); foreach (string s in _world.Preload()) ; _d1 = _world.tingRunner.CreateTing<Door>("DoorOne", new TingTing.WorldCoordinate("Eden", new IntPoint(4, 4)), Direction.LEFT); _d2 = _world.tingRunner.CreateTing<Door>("DoorTwo", new TingTing.WorldCoordinate("Hallway", new IntPoint(0, 0)), Direction.RIGHT); _d1.targetDoorName = _d2.name; _d2.targetDoorName = _d1.name; _d3 = _world.tingRunner.CreateTing<Door>("DoorThree", new TingTing.WorldCoordinate("Hallway", new IntPoint(4, 2)), Direction.LEFT); _d4 = _world.tingRunner.CreateTing<Door>("DoorFour", new TingTing.WorldCoordinate("Kitchen", new IntPoint(0, 2)), Direction.RIGHT); _d3.targetDoorName = _d4.name; _d4.targetDoorName = _d3.name; _world.roomRunner.GetRoom("Hallway").worldPosition = new IntPoint(4, 4); _adam = _world.tingRunner.GetTing<Character>("Adam"); _eve = _world.tingRunner.GetTing<Character>("Eva"); }
private static void TextView(string[] args) { System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; DateTime startTime = DateTime.Now; D.onDLog += (pMessage) => Console.WriteLine("" + pMessage); string macroFileName = "macro1.txt"; string saveFileName = ""; for (int i = 0; i < args.Length; i++) { string s = args [i]; if (s == "-autopilot") { _autoPilot = true; _autoAnswer = true; _timeLimit = Convert.ToSingle(args [++i]); } else if (s == "-macro") { macroFileName = args [++i]; } else if (s == "-load") { saveFileName = args [++i]; } } StreamReader macroFile = File.OpenText("../" + macroFileName); while (!macroFile.EndOfStream) { string line = macroFile.ReadLine(); _macro.Add(line); } // Instantiate IEnumerable <float> loader = null; InitialSaveFileCreator saveCreator = new InitialSaveFileCreator(); if (saveFileName != "") { //IEnumerable<float> loader = saveCreator.LoadFromFile("../../../../../assembla/MimanUnity2/Saves/Quicksave.json"); loader = saveCreator.LoadFromFile(saveFileName); } else { loader = saveCreator.LoadRelayFromDirectory("../../../../../assembla/MimanUnity2/InitData/"); } // Load files Console.ForegroundColor = ConsoleColor.DarkCyan; foreach (float f in loader) { Console.Write("."); } Console.Write("\n"); // Setup world and its runners _world = new World(saveCreator.GetLoadedRelay()); SetupWorldListeners(); SmartWalkBehaviour.s_logger.AddListener(Console.WriteLine); LoadTranslationFiles(); // Preload foreach (string s in _world.Preload()) { //Console.WriteLine(s); } Console.WriteLine("Loading took " + (DateTime.Now - startTime).TotalSeconds + " seconds"); Console.ForegroundColor = ConsoleColor.White; #if ONLY_STARTUP return; #endif // Run a few frames for (int i = 0; i < 30; i++) { _world.Update(NORMAL_DELTA_TIME); } if (saveFileName == "") { _world.dialogueRunner.StartConversation("StoryStart"); } // Run while (_run) { try { PrintBranchingNode(); if (_autoPilot) { if (_macroPos < _macro.Count) { Eval(new string[] { "macro" }); } else { Eval(new string[] { "tick" }); } if (_world.settings.totalWorldTime > _timeLimit) { Eval(new string[] { "clock" }); Console.WriteLine("Stopped by time limit (" + _timeLimit + " s.)"); break; } } else { Console.ForegroundColor = ConsoleColor.White; //Console.Write("\n> "); Console.Write("\n" + _world.settings.gameTimeClock + " => "); string command = Console.ReadLine(); Eval(Split(command)); } } catch (Exception e) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Error in World: " + e.Message + ", stack trace:\n" + e.StackTrace); Console.ForegroundColor = ConsoleColor.White; if (_autoPilot) { _run = false; } } } }
private static void TextView(string[] args) { System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; DateTime startTime = DateTime.Now; D.onDLog += (pMessage) => Console.WriteLine ("" + pMessage); string macroFileName = "macro1.txt"; string saveFileName = ""; for (int i = 0; i < args.Length; i++) { string s = args [i]; if (s == "-autopilot") { _autoPilot = true; _autoAnswer = true; _timeLimit = Convert.ToSingle (args [++i]); } else if (s == "-macro") { macroFileName = args [++i]; } else if (s == "-load") { saveFileName = args [++i]; } } StreamReader macroFile = File.OpenText ("../" + macroFileName); while (!macroFile.EndOfStream) { string line = macroFile.ReadLine (); _macro.Add (line); } // Instantiate IEnumerable<float> loader = null; InitialSaveFileCreator saveCreator = new InitialSaveFileCreator (); if(saveFileName != "") { //IEnumerable<float> loader = saveCreator.LoadFromFile("../../../../../assembla/MimanUnity2/Saves/Quicksave.json"); loader = saveCreator.LoadFromFile(saveFileName); } else { loader = saveCreator.LoadRelayFromDirectory ("../../../../../assembla/MimanUnity2/InitData/"); } // Load files Console.ForegroundColor = ConsoleColor.DarkCyan; foreach (float f in loader) { Console.Write ("."); } Console.Write ("\n"); // Setup world and its runners _world = new World (saveCreator.GetLoadedRelay ()); SetupWorldListeners (); SmartWalkBehaviour.s_logger.AddListener (Console.WriteLine); LoadTranslationFiles(); // Preload foreach (string s in _world.Preload()) { //Console.WriteLine(s); } Console.WriteLine ("Loading took " + (DateTime.Now - startTime).TotalSeconds + " seconds"); Console.ForegroundColor = ConsoleColor.White; #if ONLY_STARTUP return; #endif // Run a few frames for (int i = 0; i < 30; i++) { _world.Update (NORMAL_DELTA_TIME); } if(saveFileName == "") { _world.dialogueRunner.StartConversation ("StoryStart"); } // Run while (_run) { try { PrintBranchingNode (); if (_autoPilot) { if (_macroPos < _macro.Count) { Eval (new string[] { "macro" }); } else { Eval (new string[] { "tick" }); } if (_world.settings.totalWorldTime > _timeLimit) { Eval (new string[] { "clock" }); Console.WriteLine ("Stopped by time limit (" + _timeLimit + " s.)"); break; } } else { Console.ForegroundColor = ConsoleColor.White; //Console.Write("\n> "); Console.Write ("\n" + _world.settings.gameTimeClock + " => "); string command = Console.ReadLine (); Eval (Split (command)); } } catch (Exception e) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine ("Error in World: " + e.Message + ", stack trace:\n" + e.StackTrace); Console.ForegroundColor = ConsoleColor.White; if (_autoPilot) { _run = false; } } } }
public void CheckBalance() { WorldCoordinate testDefaultCoordinate = new WorldCoordinate("Eden", IntPoint.Zero); WorldTestHelper.GenerateInitData (); InitialSaveFileCreator i = new InitialSaveFileCreator (); World world = new World (i.CreateRelay (WorldTestHelper.INIT_DATA_PATH)); D.onDLog += o => Console.WriteLine("D.Log: " + o); world.dialogueRunner.AddOnSomeoneSaidSomethingListener(o => Console.WriteLine("Dialogue: " + o)); CreditCard card = world.tingRunner.CreateTing<CreditCard> ("Visa", testDefaultCoordinate); card.logger.AddListener (o => Console.WriteLine ("Card log: " + o)); card.AddDataListener ("dialogueLine", (string oldValue, string newValue) => { Console.WriteLine ("Card said: " + newValue); }); card.nameOfOwner = "Eva"; card.masterProgramName = "EvasCard"; Computer financeComputer = world.tingRunner.CreateTing<Computer>("FinanceComputer", testDefaultCoordinate); financeComputer.masterProgramName = "FinanceComputer"; financeComputer.hasMemoryAPI = true; financeComputer.masterProgram.Start(); WorldTestHelper.UpdateWorld (world, 3f); card.RunMakeTransactionFunction (100.0f); WorldTestHelper.UpdateWorld (world, 3f); Console.WriteLine ("Evas card errors: "); foreach (var error in card.masterProgram.GetErrors()) { Console.WriteLine (error.ToString ()); } Console.WriteLine ("Finance computer errors: "); foreach (var error in financeComputer.masterProgram.GetErrors()) { Console.WriteLine (error.ToString ()); } Console.WriteLine ("Finance computer output: "); PrintOutput(financeComputer); Assert.IsNotNull(financeComputer.memory); Assert.IsNotNull(financeComputer.memory.data); object cashAmount = null; bool gotIt = financeComputer.memory.data.TryGetValue("Eva", out cashAmount); Assert.IsTrue(gotIt); Assert.AreEqual(typeof(float), cashAmount.GetType()); Assert.AreEqual(100.0f, (float)cashAmount); card.RunMakeTransactionFunction(-20.0f); WorldTestHelper.UpdateWorld (world, 1.0f); Assert.IsNotNull(financeComputer.memory); Assert.IsNotNull(financeComputer.memory.data); object cashAmount2 = null; bool gotIt2 = financeComputer.memory.data.TryGetValue("Eva", out cashAmount2); Assert.IsTrue(gotIt2); Assert.AreEqual(80.0f, (float)cashAmount2); }
private static void ProfileMimanPathfinding(int worldSize) { D.onDLog += Console.WriteLine; InitialSaveFileCreator isc = new InitialSaveFileCreator(); World world = new World(isc.CreateEmptyRelay()); SimpleRoomBuilder srb = new SimpleRoomBuilder(world.roomRunner); int worldWidth = worldSize; int worldHeight = worldSize; int roomSize = 10; int tingCounter = 0; for (int x = 0; x <= worldWidth; x++) { for (int y = 0; y <= worldHeight; y++) { Room r = srb.CreateRoomWithSize("Room_" + x + "_" + y, roomSize, roomSize); Door door1 = world.tingRunner.CreateTing<Door> (r.name + "_Door1", new WorldCoordinate (r.name, new IntPoint (0, 0))); Door door2 = world.tingRunner.CreateTing<Door> (r.name + "_Door2", new WorldCoordinate (r.name, new IntPoint (roomSize - 1, roomSize - 1))); door1.direction = Direction.DOWN; door2.direction = Direction.UP; // Randomizer.GetIntValue (0, roomSize); int rx1 = (x + 1) % worldWidth; int ry1 = y; door1.targetDoorName = "Room_" + rx1 + "_" + ry1 + "_Door2"; int rx2 = x; int ry2 = (y + 1) % worldHeight; door2.targetDoorName = "Room_" + rx2 + "_" + ry2 + "_Door1"; world.tingRunner.CreateTing<Point> ("Point_" + (tingCounter++), new WorldCoordinate (r.name, new IntPoint (roomSize / 2, roomSize / 2))); r.worldPosition = new IntPoint(x * roomSize + Randomizer.GetIntValue(-3, 3), y * roomSize + Randomizer.GetIntValue(-3, 3)); } } world.sourceCodeDispenser.CreateSourceCodeFromString ("OnDoorUsed", ""); if(!world.isReadyToPlay) { foreach (string s in world.Preload()) { //Console.WriteLine(s); } } Console.WriteLine ("Room runner stats: " + world.roomRunner.ToString ()); var pathfinder = new MimanPathfinder2 (world.tingRunner, world.roomRunner); for (int i = 0; i < 100; i++) { Point start = world.tingRunner.GetTing<Point> ("Point_" + Randomizer.GetIntValue (0, tingCounter)); Point goal = world.tingRunner.GetTing<Point> ("Point_" + Randomizer.GetIntValue (0, tingCounter)); var result = pathfinder.Search (start, goal); Console.WriteLine (result.status); } }
private static void SimplePathfinding() { D.onDLog += Console.WriteLine; // take care of the D.Log message from invalid path InitialSaveFileCreator isc = new InitialSaveFileCreator(); World world = new World(isc.CreateEmptyRelay()); SimpleRoomBuilder srb = new SimpleRoomBuilder(world.roomRunner); srb.CreateRoomWithSize("Eden", 10, 10); var middleRoom = srb.CreateRoomWithSize("MiddleRoom", 10, 10); var wrongRoom = srb.CreateRoomWithSize("WrongRoom", 10, 10); var distantRoom = srb.CreateRoomWithSize("DistantRoom", 10, 10); middleRoom.worldPosition = new IntPoint(10, 0); wrongRoom.worldPosition = new IntPoint(30, 0); distantRoom.worldPosition = new IntPoint(50, 0); var p1 = world.tingRunner.CreateTing<Point>("p1", new WorldCoordinate("Eden", new IntPoint(2, 4))); var p2 = world.tingRunner.CreateTing<Point>("p2", new WorldCoordinate("DistantRoom", new IntPoint(4, 4))); // Add doors var edenDoor = world.tingRunner.CreateTing<Door>("edenDoor", new WorldCoordinate("Eden", new IntPoint(4, 4))); var middleRoomDoor1 = world.tingRunner.CreateTing<Door>("middleRoomDoor1", new WorldCoordinate("MiddleRoom", new IntPoint(2, 4))); var middleRoomDoor2 = world.tingRunner.CreateTing<Door>("middleRoomDoor2", new WorldCoordinate("MiddleRoom", new IntPoint(7, 4))); var middleRoomDoor3 = world.tingRunner.CreateTing<Door>("middleRoomDoor3", new WorldCoordinate("MiddleRoom", new IntPoint(4, 4))); var wrongRoomDoor = world.tingRunner.CreateTing<Door>("wrongRoomDoor", new WorldCoordinate("WrongRoom", new IntPoint(4, 4))); var distantRoomDoor = world.tingRunner.CreateTing<Door>("distantRoomDoor", new WorldCoordinate("DistantRoom", new IntPoint(2, 4))); edenDoor.targetDoorName = "middleRoomDoor1"; middleRoomDoor1.targetDoorName = "edenDoor"; middleRoomDoor2.targetDoorName = "distantRoomDoor"; middleRoomDoor3.targetDoorName = "wrongRoomDoor"; wrongRoomDoor.targetDoorName = "middleRoomDoor3"; distantRoomDoor.targetDoorName = "middleRoomDoor2"; world.sourceCodeDispenser.CreateSourceCodeFromString ("OnDoorUsed", ""); if(!world.isReadyToPlay) { foreach (string s in world.Preload()) {} } var pathfinder = new MimanPathfinder2(world.tingRunner, world.roomRunner); var result = pathfinder.Search(p1, p2); Console.WriteLine("Result: " + result); }
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); } }
World CreateWorldWithSomeRooms() { InitialSaveFileCreator isc = new InitialSaveFileCreator(); World world = new World(isc.CreateEmptyRelay()); SimpleRoomBuilder srb = new SimpleRoomBuilder(world.roomRunner); srb.CreateRoomWithSize("Eden", 10, 10); var middleRoom = srb.CreateRoomWithSize("MiddleRoom", 10, 10); var wrongRoom = srb.CreateRoomWithSize("WrongRoom", 10, 10); var distantRoom = srb.CreateRoomWithSize("DistantRoom", 10, 10); middleRoom.worldPosition = new IntPoint(10, 0); wrongRoom.worldPosition = new IntPoint(30, 0); distantRoom.worldPosition = new IntPoint(50, 0); // Add doors var edenDoor = world.tingRunner.CreateTing<Door>("edenDoor", new WorldCoordinate("Eden", new IntPoint(4, 4))); var middleRoomDoor1 = world.tingRunner.CreateTing<Door>("middleRoomDoor1", new WorldCoordinate("MiddleRoom", new IntPoint(2, 4))); var middleRoomDoor2 = world.tingRunner.CreateTing<Door>("middleRoomDoor2", new WorldCoordinate("MiddleRoom", new IntPoint(7, 4))); var middleRoomDoor3 = world.tingRunner.CreateTing<Door>("middleRoomDoor3", new WorldCoordinate("MiddleRoom", new IntPoint(4, 4))); var wrongRoomDoor = world.tingRunner.CreateTing<Door>("wrongRoomDoor", new WorldCoordinate("WrongRoom", new IntPoint(4, 4))); var distantRoomDoor = world.tingRunner.CreateTing<Door>("distantRoomDoor", new WorldCoordinate("DistantRoom", new IntPoint(2, 4))); edenDoor.targetDoorName = "middleRoomDoor1"; middleRoomDoor1.targetDoorName = "edenDoor"; middleRoomDoor2.targetDoorName = "distantRoomDoor"; middleRoomDoor3.targetDoorName = "wrongRoomDoor"; wrongRoomDoor.targetDoorName = "middleRoomDoor3"; distantRoomDoor.targetDoorName = "middleRoomDoor2"; var distantTile = new PointTileNode(new IntPoint(200, 200), wrongRoom); distantTile.group = 1; wrongRoom.AddTile(distantTile); var wrongRoomUnattachedDoor = world.tingRunner.CreateTing<Door>("wrongRoomUnattachedDoor", new WorldCoordinate("WrongRoom", new IntPoint(200, 200))); wrongRoomUnattachedDoor.targetDoorName = "edenDoor"; world.sourceCodeDispenser.CreateSourceCodeFromString ("OnDoorUsed", ""); if(!world.isReadyToPlay) { foreach (string s in world.Preload()) {} } return world; }
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); } }
private static void ProfileMimanPathfinding(int worldSize) { D.onDLog += Console.WriteLine; InitialSaveFileCreator isc = new InitialSaveFileCreator(); World world = new World(isc.CreateEmptyRelay()); SimpleRoomBuilder srb = new SimpleRoomBuilder(world.roomRunner); int worldWidth = worldSize; int worldHeight = worldSize; int roomSize = 10; int tingCounter = 0; for (int x = 0; x <= worldWidth; x++) { for (int y = 0; y <= worldHeight; y++) { Room r = srb.CreateRoomWithSize("Room_" + x + "_" + y, roomSize, roomSize); Door door1 = world.tingRunner.CreateTing <Door> (r.name + "_Door1", new WorldCoordinate(r.name, new IntPoint(0, 0))); Door door2 = world.tingRunner.CreateTing <Door> (r.name + "_Door2", new WorldCoordinate(r.name, new IntPoint(roomSize - 1, roomSize - 1))); door1.direction = Direction.DOWN; door2.direction = Direction.UP; // Randomizer.GetIntValue (0, roomSize); int rx1 = (x + 1) % worldWidth; int ry1 = y; door1.targetDoorName = "Room_" + rx1 + "_" + ry1 + "_Door2"; int rx2 = x; int ry2 = (y + 1) % worldHeight; door2.targetDoorName = "Room_" + rx2 + "_" + ry2 + "_Door1"; world.tingRunner.CreateTing <Point> ("Point_" + (tingCounter++), new WorldCoordinate(r.name, new IntPoint(roomSize / 2, roomSize / 2))); r.worldPosition = new IntPoint(x * roomSize + Randomizer.GetIntValue(-3, 3), y * roomSize + Randomizer.GetIntValue(-3, 3)); } } world.sourceCodeDispenser.CreateSourceCodeFromString("OnDoorUsed", ""); if (!world.isReadyToPlay) { foreach (string s in world.Preload()) { //Console.WriteLine(s); } } Console.WriteLine("Room runner stats: " + world.roomRunner.ToString()); var pathfinder = new MimanPathfinder2(world.tingRunner, world.roomRunner); for (int i = 0; i < 100; i++) { Point start = world.tingRunner.GetTing <Point> ("Point_" + Randomizer.GetIntValue(0, tingCounter)); Point goal = world.tingRunner.GetTing <Point> ("Point_" + Randomizer.GetIntValue(0, tingCounter)); var result = pathfinder.Search(start, goal); Console.WriteLine(result.status); } }
public void CheckBalance() { WorldCoordinate testDefaultCoordinate = new WorldCoordinate("Eden", IntPoint.Zero); WorldTestHelper.GenerateInitData(); InitialSaveFileCreator i = new InitialSaveFileCreator(); World world = new World(i.CreateRelay(WorldTestHelper.INIT_DATA_PATH)); D.onDLog += o => Console.WriteLine("D.Log: " + o); world.dialogueRunner.AddOnSomeoneSaidSomethingListener(o => Console.WriteLine("Dialogue: " + o)); CreditCard card = world.tingRunner.CreateTing <CreditCard> ("Visa", testDefaultCoordinate); card.logger.AddListener(o => Console.WriteLine("Card log: " + o)); card.AddDataListener("dialogueLine", (string oldValue, string newValue) => { Console.WriteLine("Card said: " + newValue); }); card.nameOfOwner = "Eva"; card.masterProgramName = "EvasCard"; Computer financeComputer = world.tingRunner.CreateTing <Computer>("FinanceComputer", testDefaultCoordinate); financeComputer.masterProgramName = "FinanceComputer"; financeComputer.hasMemoryAPI = true; financeComputer.masterProgram.Start(); WorldTestHelper.UpdateWorld(world, 3f); card.RunMakeTransactionFunction(100.0f); WorldTestHelper.UpdateWorld(world, 3f); Console.WriteLine("Evas card errors: "); foreach (var error in card.masterProgram.GetErrors()) { Console.WriteLine(error.ToString()); } Console.WriteLine("Finance computer errors: "); foreach (var error in financeComputer.masterProgram.GetErrors()) { Console.WriteLine(error.ToString()); } Console.WriteLine("Finance computer output: "); PrintOutput(financeComputer); Assert.IsNotNull(financeComputer.memory); Assert.IsNotNull(financeComputer.memory.data); object cashAmount = null; bool gotIt = financeComputer.memory.data.TryGetValue("Eva", out cashAmount); Assert.IsTrue(gotIt); Assert.AreEqual(typeof(float), cashAmount.GetType()); Assert.AreEqual(100.0f, (float)cashAmount); card.RunMakeTransactionFunction(-20.0f); WorldTestHelper.UpdateWorld(world, 1.0f); Assert.IsNotNull(financeComputer.memory); Assert.IsNotNull(financeComputer.memory.data); object cashAmount2 = null; bool gotIt2 = financeComputer.memory.data.TryGetValue("Eva", out cashAmount2); Assert.IsTrue(gotIt2); Assert.AreEqual(80.0f, (float)cashAmount2); }