Example #1
0
        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();
        }
Example #2
0
        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);
        }
Example #3
0
        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