public static void Init() { gwinfo = GameDataFactory.CreateInitialWorldData(); GameState.currentGameMode = GameState.GAME_MODE.WORLD; PlayUIWorldMap.Init(gwinfo.WorldMapInfo.MapInfo); PlayUITopItem.Init(); PlayUIBottomItem.Init(); PlayUILeftPanel.Init(); PlayUIRightPanel.Init(); //**************************************************************************** ScreenManager.printInitScreen(); //************************************************************************************ ScreenManager.ClearScreen(); PlayUITopItem.Update(); PlayUIWorldMap.Update(); PlayUIBottomItem.Update(); }
public static GameWorldInfo CreateInitialWorldData() { if (curr_gwinfo == null) { curr_gwinfo = new GameWorldInfo(); } //Init GameState GameState.currentGameMode = GameState.GAME_MODE.WORLD; GameState.currentRoom = 1; GameState.gameLevel = 1; GameState.inventory = new ItemList(); GameState.score = 0; //Init Player Data WoodenArmour wmobj = null; if (ConfigManager.StartWithArmour) { wmobj = new WoodenArmour("Wooden Armour", 0, 0, "Personal-" + GameState.inventory.GetCount() + 1); wmobj.shieldPower = 100; GameState.inventory.Add(wmobj); } WoodenSword wswbj = null; if (ConfigManager.StartWithSword) { wswbj = new WoodenSword("Wooden Sword", 0, 0, "Personal-" + GameState.inventory.GetCount() + 1); wswbj.capableHit = 380; GameState.inventory.Add(wswbj); } return(curr_gwinfo); }
private void Engine() { RoomMap.MAPTYPE maptype; Object item = null; gwinfo = GameDataFactory.curr_gwinfo; int step_forward = 0; bool collision = false; curr_dir = GetRandomDirection(); while (true) { CheckPause(); //Pick a Random Direction First //While no collison move with explore distance //Hit somethin go the opposite way and Pick a Random Direction //Move Forward step_forward = 0; collision = false; while (!collision) { CheckPause(); if (step_forward <= explore_distance) { switch (curr_dir) { case MOVE_DIRECTION.DIR_NORTH: maptype = roommap.ItemAtPostion(col - PlayUIWorldMap.mapBoxColPos, row - 1 - PlayUIWorldMap.mapBoxRowPos); item = gwinfo.CheckRoomPointOccupied(col - PlayUIWorldMap.mapBoxColPos, row - 1 - PlayUIWorldMap.mapBoxRowPos, GameState.currentRoom); if (maptype == RoomMap.MAPTYPE.SPACE && item == null) { MoveNorth(); } else { collision = true; } break; case MOVE_DIRECTION.DIR_SOUTH: maptype = roommap.ItemAtPostion(col - PlayUIWorldMap.mapBoxColPos, row + 1 - PlayUIWorldMap.mapBoxRowPos); item = gwinfo.CheckRoomPointOccupied(col - PlayUIWorldMap.mapBoxColPos, row + 1 - PlayUIWorldMap.mapBoxRowPos, GameState.currentRoom); if (maptype == RoomMap.MAPTYPE.SPACE && item == null) { MoveSouth(); } else { collision = true; } break; case MOVE_DIRECTION.DIR_EAST: maptype = roommap.ItemAtPostion(col + 1 - PlayUIWorldMap.mapBoxColPos, row - PlayUIWorldMap.mapBoxRowPos); item = gwinfo.CheckRoomPointOccupied(col + 1 - PlayUIWorldMap.mapBoxColPos, row - PlayUIWorldMap.mapBoxRowPos, GameState.currentRoom); if (maptype == RoomMap.MAPTYPE.SPACE && item == null) { MoveEast(); } else { collision = true; } break; case MOVE_DIRECTION.DIR_WEST: maptype = roommap.ItemAtPostion(col - 1 - PlayUIWorldMap.mapBoxColPos, row - PlayUIWorldMap.mapBoxRowPos); item = gwinfo.CheckRoomPointOccupied(col - 1 - PlayUIWorldMap.mapBoxColPos, row - PlayUIWorldMap.mapBoxRowPos, GameState.currentRoom); if (maptype == RoomMap.MAPTYPE.SPACE && item == null) { MoveWest(); } else { collision = true; } break; }// Switch if (collision) { //Break Switch break; } CheckPause(); step_forward++; } else { CheckPause(); curr_dir = GetRandomDirection(); step_forward = 0; break; } CheckPause(); Thread.Sleep(500); } CheckPause(); Thread.Sleep(500); //************************************************************ //Move Oppsite curr_dir = this.GetOppositeDirection(curr_dir); step_forward = 0; collision = false; while (!collision) { CheckPause(); if (step_forward <= retreat_distance) { switch (curr_dir) { case MOVE_DIRECTION.DIR_NORTH: maptype = roommap.ItemAtPostion(col - PlayUIWorldMap.mapBoxColPos, row - 1 - PlayUIWorldMap.mapBoxRowPos); item = gwinfo.CheckRoomPointOccupied(col - PlayUIWorldMap.mapBoxColPos, row - 1 - PlayUIWorldMap.mapBoxRowPos, GameState.currentRoom); if (maptype == RoomMap.MAPTYPE.SPACE && item == null) { MoveNorth(); } else { collision = true; } break; case MOVE_DIRECTION.DIR_SOUTH: maptype = roommap.ItemAtPostion(col - PlayUIWorldMap.mapBoxColPos, row + 1 - PlayUIWorldMap.mapBoxRowPos); item = gwinfo.CheckRoomPointOccupied(col - PlayUIWorldMap.mapBoxColPos, row + 1 - PlayUIWorldMap.mapBoxRowPos, GameState.currentRoom); if (maptype == RoomMap.MAPTYPE.SPACE && item == null) { MoveSouth(); } else { collision = true; } break; case MOVE_DIRECTION.DIR_EAST: maptype = roommap.ItemAtPostion(col + 1 - PlayUIWorldMap.mapBoxColPos, row - PlayUIWorldMap.mapBoxRowPos); item = gwinfo.CheckRoomPointOccupied(col + 1 - PlayUIWorldMap.mapBoxColPos, row - PlayUIWorldMap.mapBoxRowPos, GameState.currentRoom); if (maptype == RoomMap.MAPTYPE.SPACE && item == null) { MoveEast(); } else { collision = true; } break; case MOVE_DIRECTION.DIR_WEST: maptype = roommap.ItemAtPostion(col - 1 - PlayUIWorldMap.mapBoxColPos, row - PlayUIWorldMap.mapBoxRowPos); item = gwinfo.CheckRoomPointOccupied(col - 1 - PlayUIWorldMap.mapBoxColPos, row - PlayUIWorldMap.mapBoxRowPos, GameState.currentRoom); if (maptype == RoomMap.MAPTYPE.SPACE && item == null) { MoveWest(); } else { collision = true; } break; }// Switch if (collision) { //Break Switch curr_dir = GetAlternativeDirection(curr_dir); break; } CheckPause(); step_forward++; } else { CheckPause(); //curr_dir = GetRandomDirection(); curr_dir = GetAlternativeDirection(curr_dir); collision = true; break; } CheckPause(); Thread.Sleep(500); } CheckPause(); Thread.Sleep(500); } //Main Engine Loop } //Engine Function