示例#1
0
        public VC_DungeonRoom GetFirstRoom()
        {
            //set room settings
            Direction dir;

            if (Map[PlayerCoords[0], PlayerCoords[1]].North != null)
            {
                dir = Direction.South;
            }
            else if (Map[PlayerCoords[0], PlayerCoords[1]].East != null)
            {
                dir = Direction.West;
            }
            else if (Map[PlayerCoords[0], PlayerCoords[1]].West != null)
            {
                dir = Direction.East;
            }
            else
            {
                dir = Direction.North;
            }

            byte roomDesc = Map[PlayerCoords[0], PlayerCoords[1]].AssignRoomCellImage(dir);

            VC_DungeonRoom nRoom = new VC_DungeonRoom(true);

            nRoom.rc = Map[PlayerCoords[0], PlayerCoords[1]];
            Map[PlayerCoords[0], PlayerCoords[1]].Visited = true;

            switch (roomDesc)
            {
            case 0x11:
                nRoom.TopButtonDuty = Direction.North; break;

            case 0x21:
                nRoom.RightButtonDuty = Direction.East; break;

            case 0x31:
                nRoom.TopButtonDuty   = Direction.North;
                nRoom.RightButtonDuty = Direction.East; break;

            case 0x41:
                nRoom.BottomButtonDuty = Direction.South; break;

            case 0x51:
                nRoom.TopButtonDuty    = Direction.North;
                nRoom.BottomButtonDuty = Direction.South;
                break;

            case 0x61:
                nRoom.RightButtonDuty  = Direction.East;
                nRoom.BottomButtonDuty = Direction.South;
                break;

            case 0x71:
                nRoom.TopButtonDuty    = Direction.North;
                nRoom.BottomButtonDuty = Direction.South;
                nRoom.RightButtonDuty  = Direction.East;
                break;

            case 0x81:
                nRoom.LeftButtonDuty = Direction.West;
                break;

            case 0x91:
                nRoom.TopButtonDuty  = Direction.North;
                nRoom.LeftButtonDuty = Direction.West;
                break;

            case 0xA1:
                nRoom.LeftButtonDuty  = Direction.West;
                nRoom.RightButtonDuty = Direction.East;
                break;

            case 0xB1:
                nRoom.TopButtonDuty   = Direction.North;
                nRoom.LeftButtonDuty  = Direction.West;
                nRoom.RightButtonDuty = Direction.East;
                break;

            case 0xC1:
                nRoom.BottomButtonDuty = Direction.South;
                nRoom.LeftButtonDuty   = Direction.West;
                break;

            case 0xD1:
                nRoom.LeftButtonDuty  = Direction.West;
                nRoom.RightButtonDuty = Direction.East;
                nRoom.TopButtonDuty   = Direction.North;
                break;

            case 0xE1:
                nRoom.LeftButtonDuty   = Direction.West;
                nRoom.RightButtonDuty  = Direction.East;
                nRoom.BottomButtonDuty = Direction.South;
                break;

            case 0xF1:
                nRoom.TopButtonDuty    = Direction.North;
                nRoom.BottomButtonDuty = Direction.South;
                nRoom.LeftButtonDuty   = Direction.West;
                nRoom.RightButtonDuty  = Direction.East;
                break;

            case 0x82:     //EAST heading
                nRoom.BottomButtonDuty = Direction.West;
                break;

            case 0x92:
                nRoom.LeftButtonDuty   = Direction.North;
                nRoom.BottomButtonDuty = Direction.West;
                break;

            case 0xA2:
                nRoom.BottomButtonDuty = Direction.West;
                nRoom.TopButtonDuty    = Direction.East;
                break;

            case 0xB2:
                nRoom.BottomButtonDuty = Direction.West;
                nRoom.LeftButtonDuty   = Direction.North;
                nRoom.TopButtonDuty    = Direction.East;
                break;

            case 0xC2:
                nRoom.BottomButtonDuty = Direction.West;
                nRoom.RightButtonDuty  = Direction.South;
                break;

            case 0xD2:
                nRoom.BottomButtonDuty = Direction.West;
                nRoom.RightButtonDuty  = Direction.South;
                nRoom.LeftButtonDuty   = Direction.North;
                break;

            case 0xE2:
                nRoom.BottomButtonDuty = Direction.West;
                nRoom.RightButtonDuty  = Direction.South;
                nRoom.TopButtonDuty    = Direction.East;
                break;

            case 0xF2:
                nRoom.BottomButtonDuty = Direction.West;
                nRoom.RightButtonDuty  = Direction.South;
                nRoom.TopButtonDuty    = Direction.East;
                nRoom.LeftButtonDuty   = Direction.North;
                break;

            case 0x14:
                nRoom.BottomButtonDuty = Direction.North;
                break;

            case 0x34:
                nRoom.BottomButtonDuty = Direction.North;
                nRoom.LeftButtonDuty   = Direction.East;
                break;

            case 0x54:
                nRoom.BottomButtonDuty = Direction.North;
                nRoom.TopButtonDuty    = Direction.South;
                break;

            case 0x74:
                nRoom.BottomButtonDuty = Direction.North;
                nRoom.TopButtonDuty    = Direction.South;
                nRoom.LeftButtonDuty   = Direction.East;
                break;

            case 0x94:
                nRoom.BottomButtonDuty = Direction.North;
                nRoom.RightButtonDuty  = Direction.West;
                break;

            case 0xB4:
                nRoom.BottomButtonDuty = Direction.North;
                nRoom.RightButtonDuty  = Direction.West;
                nRoom.LeftButtonDuty   = Direction.East;
                break;

            case 0xD4:
                nRoom.BottomButtonDuty = Direction.North;
                nRoom.TopButtonDuty    = Direction.South;
                nRoom.RightButtonDuty  = Direction.West;
                break;

            case 0xF4:
                nRoom.BottomButtonDuty = Direction.North;
                nRoom.TopButtonDuty    = Direction.South;
                nRoom.RightButtonDuty  = Direction.West;
                nRoom.LeftButtonDuty   = Direction.East;
                break;

            case 0x28:     //WEST heading
                nRoom.BottomButtonDuty = Direction.East;
                break;

            case 0x38:
                nRoom.BottomButtonDuty = Direction.East;
                nRoom.RightButtonDuty  = Direction.North;
                break;

            case 0x68:
                nRoom.BottomButtonDuty = Direction.East;
                nRoom.LeftButtonDuty   = Direction.South;
                break;

            case 0x78:
                nRoom.BottomButtonDuty = Direction.East;
                nRoom.RightButtonDuty  = Direction.North;
                nRoom.LeftButtonDuty   = Direction.South;
                break;

            case 0xA8:
                nRoom.BottomButtonDuty = Direction.East;
                nRoom.TopButtonDuty    = Direction.West;
                break;

            case 0xB8:
                nRoom.BottomButtonDuty = Direction.East;
                nRoom.TopButtonDuty    = Direction.West;
                nRoom.RightButtonDuty  = Direction.North;
                break;

            case 0xE8:
                nRoom.BottomButtonDuty = Direction.East;
                nRoom.TopButtonDuty    = Direction.West;
                nRoom.LeftButtonDuty   = Direction.South;
                break;

            case 0xF8:
                nRoom.BottomButtonDuty = Direction.East;
                nRoom.TopButtonDuty    = Direction.West;
                nRoom.LeftButtonDuty   = Direction.South;
                nRoom.RightButtonDuty  = Direction.North;
                break;
            }

            return(nRoom);
        }
示例#2
0
        //Manipulates MapManager's player coords, effectively moving the player through the map
        //Calls RoomCell's AssignRoomCellImage on the destination cell
        //After load, rng decides if an encounter is happening
        //Also, builds and returns the view controller to the calling vc
        public VC_DungeonRoom MoveRoom(Direction direction)
        {
            //calculate the movement between rooms
            switch (direction)
            {
            case Direction.North: PlayerCoords[1] -= 1; break;

            case Direction.South: PlayerCoords[1] += 1; break;

            case Direction.East: PlayerCoords[0] += 1; break;

            case Direction.West: PlayerCoords[0] -= 1; break;
            }

            //"enter" roomcell by deciding image and doors
            //get back the
            byte roomDesc = Map[PlayerCoords[0], PlayerCoords[1]].AssignRoomCellImage(direction);

            Map[PlayerCoords[0], PlayerCoords[1]].Visited = true;
            VC_DungeonRoom nRoom = new VC_DungeonRoom(false);

            nRoom.rc = Map[PlayerCoords[0], PlayerCoords[1]];

            switch (roomDesc)
            {
            case 0x41:
                nRoom.BottomButtonDuty = Direction.South; break;

            case 0x51:
                nRoom.TopButtonDuty    = Direction.North;
                nRoom.BottomButtonDuty = Direction.South;
                break;

            case 0x61:
                nRoom.RightButtonDuty  = Direction.East;
                nRoom.BottomButtonDuty = Direction.South;
                break;

            case 0x71:
                nRoom.TopButtonDuty    = Direction.North;
                nRoom.BottomButtonDuty = Direction.South;
                nRoom.RightButtonDuty  = Direction.East;
                break;

            case 0xC1:
                nRoom.BottomButtonDuty = Direction.South;
                nRoom.LeftButtonDuty   = Direction.West;
                break;

            case 0xD1:
                nRoom.LeftButtonDuty   = Direction.West;
                nRoom.BottomButtonDuty = Direction.South;
                nRoom.TopButtonDuty    = Direction.North;
                break;

            case 0xE1:
                nRoom.LeftButtonDuty   = Direction.West;
                nRoom.RightButtonDuty  = Direction.East;
                nRoom.BottomButtonDuty = Direction.South;
                break;

            case 0xF1:
                nRoom.TopButtonDuty    = Direction.North;
                nRoom.BottomButtonDuty = Direction.South;
                nRoom.LeftButtonDuty   = Direction.West;
                nRoom.RightButtonDuty  = Direction.East;
                break;

            case 0x82:     //EAST heading
                nRoom.BottomButtonDuty = Direction.West;
                break;

            case 0x92:
                nRoom.LeftButtonDuty   = Direction.North;
                nRoom.BottomButtonDuty = Direction.West;
                break;

            case 0xA2:
                nRoom.BottomButtonDuty = Direction.West;
                nRoom.TopButtonDuty    = Direction.East;
                break;

            case 0xB2:
                nRoom.BottomButtonDuty = Direction.West;
                nRoom.LeftButtonDuty   = Direction.North;
                nRoom.TopButtonDuty    = Direction.East;
                break;

            case 0xC2:
                nRoom.BottomButtonDuty = Direction.West;
                nRoom.RightButtonDuty  = Direction.South;
                break;

            case 0xD2:
                nRoom.BottomButtonDuty = Direction.West;
                nRoom.RightButtonDuty  = Direction.South;
                nRoom.LeftButtonDuty   = Direction.North;
                break;

            case 0xE2:
                nRoom.BottomButtonDuty = Direction.West;
                nRoom.RightButtonDuty  = Direction.South;
                nRoom.TopButtonDuty    = Direction.East;
                break;

            case 0xF2:
                nRoom.BottomButtonDuty = Direction.West;
                nRoom.RightButtonDuty  = Direction.South;
                nRoom.TopButtonDuty    = Direction.East;
                nRoom.LeftButtonDuty   = Direction.North;
                break;

            case 0x14:
                nRoom.BottomButtonDuty = Direction.North;
                break;

            case 0x34:
                nRoom.BottomButtonDuty = Direction.North;
                nRoom.LeftButtonDuty   = Direction.East;
                break;

            case 0x54:
                nRoom.BottomButtonDuty = Direction.North;
                nRoom.TopButtonDuty    = Direction.South;
                break;

            case 0x74:
                nRoom.BottomButtonDuty = Direction.North;
                nRoom.TopButtonDuty    = Direction.South;
                nRoom.LeftButtonDuty   = Direction.East;
                break;

            case 0x94:
                nRoom.BottomButtonDuty = Direction.North;
                nRoom.RightButtonDuty  = Direction.West;
                break;

            case 0xB4:
                nRoom.BottomButtonDuty = Direction.North;
                nRoom.RightButtonDuty  = Direction.West;
                nRoom.LeftButtonDuty   = Direction.East;
                break;

            case 0xD4:
                nRoom.BottomButtonDuty = Direction.North;
                nRoom.TopButtonDuty    = Direction.South;
                nRoom.RightButtonDuty  = Direction.West;
                break;

            case 0xF4:
                nRoom.BottomButtonDuty = Direction.North;
                nRoom.TopButtonDuty    = Direction.South;
                nRoom.RightButtonDuty  = Direction.West;
                nRoom.LeftButtonDuty   = Direction.East;
                break;

            case 0x28:     //WEST heading
                nRoom.BottomButtonDuty = Direction.East;
                break;

            case 0x38:
                nRoom.BottomButtonDuty = Direction.East;
                nRoom.RightButtonDuty  = Direction.North;
                break;

            case 0x68:
                nRoom.BottomButtonDuty = Direction.East;
                nRoom.LeftButtonDuty   = Direction.South;
                break;

            case 0x78:
                nRoom.BottomButtonDuty = Direction.East;
                nRoom.RightButtonDuty  = Direction.North;
                nRoom.LeftButtonDuty   = Direction.South;
                break;

            case 0xA8:
                nRoom.BottomButtonDuty = Direction.East;
                nRoom.TopButtonDuty    = Direction.West;
                break;

            case 0xB8:
                nRoom.BottomButtonDuty = Direction.East;
                nRoom.TopButtonDuty    = Direction.West;
                nRoom.RightButtonDuty  = Direction.North;
                break;

            case 0xE8:
                nRoom.BottomButtonDuty = Direction.East;
                nRoom.TopButtonDuty    = Direction.West;
                nRoom.LeftButtonDuty   = Direction.South;
                break;

            case 0xF8:
                nRoom.BottomButtonDuty = Direction.East;
                nRoom.TopButtonDuty    = Direction.West;
                nRoom.LeftButtonDuty   = Direction.South;
                nRoom.RightButtonDuty  = Direction.North;
                break;
            }

            return(nRoom);
        }