LevelData = {}

LevelData.__index = LevelData

function LevelData.new()
    local self = {
        { --floor 1
            walls = {
                {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                {2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
                {0,1,0,0,1,1,1,0,1,1,1,0,0,1,0},
                {1,1,1,0,2,0,2,0,2,0,2,0,1,1,1},
                {2,2,1,0,0,0,0,0,0,0,0,0,1,2,2},
                {0,0,0,0,1,0,2,1,2,0,1,0,0,0,0},
                {2,2,1,0,0,0,0,0,0,0,0,0,1,2,2},
                {1,1,1,0,2,0,2,0,2,0,2,0,1,1,1},
                {0,1,0,0,1,1,1,0,1,1,1,0,0,1,0},
                {2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
                {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
            },
            entities = {
                {type = "enemy", x = 3, y = 8, value_str="2"},
                {type = "enemy", x = 3, y = 5, value_str="2"},
                {type = "enemy", x = 3, y = 11, value_str="2"},
                {type = "enemy", x = 6, y = 6, value_str="5"},
                {type = "enemy", x = 6, y = 10, value_str="5"},
                {type = "enemy", x = 10, y = 6, value_str="5"},
                {type = "enemy", x = 10, y = 10, value_str="5"},
                {type = "enemy", x = 8, y = 5, value_str="10"},
                {type = "enemy", x = 8, y = 11, value_str="10"},
                {type = "enemy", x = 8, y = 7, value_str="25"},
                {type = "enemy", x = 8, y = 9, value_str="25"},
                {type = "enemy", x = 5, y = 7, value_str="10"},
                {type = "enemy", x = 5, y = 9, value_str="10"},
                {type = "enemy", x = 11, y = 7, value_str="60"},
                {type = "enemy", x = 11, y = 9, value_str="60"},
                {type = "enemy", x = 13, y = 5, value_str="2"},
                {type = "enemy", x = 13, y = 11, value_str="2"},
                {type = "enemy", x = 13, y = 8, value_str="100"},
                {type = "enemy", x = 14, y = 8, value_str="250"},

                -- TODO: decide on the value of these bonus enemies
                {type = "enemy", x = 1, y = 5, value_str="25k"},
                {type = "enemy", x = 1, y = 11, value_str="25k"},
                {type = "enemy", x = 15, y = 5, value_str="25k"},
                {type = "enemy", x = 15, y = 11, value_str="25k"},

                {type = "stairs_up", x = 15, y = 8},
            },
            textboxes = {
                {
                    x = 8, y = 8,
                    w = 232, h = 40,
                    str = "Welcome to the Tower of Scale! Use arrow keys to move. WASD, vikeys and numpad will also work.",
                },
                {
                    x = 8, y = 200,
                    w = 232, h = 40,
                    str = "You can defeat enemies with lower power by moving into them. If you do this, you absorb their power and add it to yours.",
                },
            }
        },
        { --floor 2
            walls = {
                {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                {2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
                {0,0,0,0,0,0,2,0,0,1,0,0,0,0,0},
                {0,0,2,0,0,0,2,2,2,2,0,1,1,1,0},
                {2,2,2,0,1,1,0,2,0,0,0,0,0,2,0},
                {0,2,0,0,2,1,0,0,0,1,2,0,0,2,0},
                {0,2,0,0,0,0,0,2,0,1,1,0,2,2,2},
                {0,1,1,1,0,2,2,2,2,0,0,0,2,0,0},
                {0,0,0,0,0,1,0,0,2,0,0,0,0,0,0},
                {2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
                {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
            },
            entities = {
                {type = "enemy", x = 10, y = 7, value_str="250"},
                {type = "enemy", x = 6, y = 9, value_str="250"},

                {type = "enemy", x = 1, y = 5, value_str="30"},
                {type = "enemy", x = 2, y = 5, value_str="25"},
                {type = "enemy", x = 1, y = 6, value_str="25"},
                {type = "enemy", x = 2, y = 6, value_str="25"},

                {type = "enemy", x = 5, y = 5, value_str="15"},
                {type = "enemy", x = 6, y = 5, value_str="15"},
                {type = "enemy", x = 5, y = 6, value_str="15"},
                {type = "enemy", x = 6, y = 6, value_str="15"},

                {type = "enemy", x = 14, y = 11, value_str="25"},
                {type = "enemy", x = 15, y = 11, value_str="30"},
                {type = "enemy", x = 14, y = 10, value_str="25"},
                {type = "enemy", x = 15, y = 10, value_str="25"},

                {type = "enemy", x = 10, y = 11, value_str="15"},
                {type = "enemy", x = 11, y = 11, value_str="15"},
                {type = "enemy", x = 10, y = 10, value_str="15"},
                {type = "enemy", x = 11, y = 10, value_str="15"},

                {type = "enemy", x = 3, y = 8, value_str="7"},
                {type = "enemy", x = 3, y = 9, value_str="7"},

                {type = "enemy", x = 13, y = 8, value_str="7"},
                {type = "enemy", x = 13, y = 7, value_str="7"},

                {type = "enemy", x = 8, y = 11, value_str="50k"},
                {type = "enemy", x = 8, y = 5, value_str="50k"},

                {type = "gate", x = 15, y = 7},
                {type = "gate", x = 1, y = 9},
                {type = "gate", x = 8, y = 8},
                {type = "gate", x = 9, y = 5},
                {type = "gate", x = 7, y = 11},
                {type = "gate", x = 3, y = 5},
                {type = "gate", x = 13, y = 11},

                {type = "stairs_down", x = 15, y = 8},
                {type = "stairs_up", x = 1, y = 8},
            },
            textboxes = {
                {
                    x = 8, y = 8,
                    w = 232, h = 40,
                    str = "Division Gates will divide your power by two. Try to open them while your power is low, to reduce your losses.",
                },
                {
                    x = 8, y = 205,
                    w = 232, h = 30,
                    str = "Whenever you feel like you've made a mistake, don't be afraid to undo by pressing the Z key.",
                },
            }
        },
        { --floor 3
            walls = {
                {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                {1,1,2,2,2,1,1,1,1,1,2,2,2,1,1},
                {2,2,2,0,2,2,2,1,2,2,2,0,2,2,2},
                {0,0,0,0,0,0,2,2,2,0,0,0,1,2,0},
                {0,1,0,2,2,0,0,1,0,0,0,2,1,2,0},
                {1,1,0,0,0,0,0,0,0,1,0,0,0,1,1},
                {0,0,0,2,2,0,0,1,0,0,0,2,1,2,2},
                {0,0,0,0,0,0,2,2,2,0,0,0,1,0,0},
                {2,2,2,2,2,2,2,1,2,2,2,2,2,2,2},
                {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
            },
            entities = {
                {type = "enemy", x = 15, y = 8, value_str="25G"},

                {type = "enemy", x = 8, y = 9, value_str="3k"},

                {type = "enemy", x = 1, y = 10, value_str="100"},
                {type = "enemy", x = 2, y = 10, value_str="100"},
                {type = "enemy", x = 2, y = 11, value_str="250"},

                {type = "enemy", x = 4, y = 9, value_str="10"},
                {type = "enemy", x = 5, y = 9, value_str="10"},
                {type = "enemy", x = 4, y = 11, value_str="10"},
                {type = "enemy", x = 5, y = 11, value_str="10"},

                {type = "enemy", x = 10, y = 8, value_str="500"},
                {type = "enemy", x = 10, y = 10, value_str="500"},

                {type = "pickaxe", x = 4, y = 6},
                {type = "pickaxe", x = 14, y = 11},
                {type = "pickaxe", x = 15, y = 11},
                {type = "pickaxe", x = 13, y = 9},
                {type = "pickaxe", x = 1, y = 11},

                {type = "vorpal", x = 12, y = 6},

                {type = "stairs_down", x = 1, y = 8},
                {type = "stairs_up", x = 15, y = 7},
            },
            textboxes = {
                {
                    x = 9, y = 7,
                    w = 111, h = 58,
                    str = "You can use a pickaxe to destroy a single non-reinforced wall.",
                },
                {
                    x = 128, y = 7,
                    w = 111, h = 58,
                    str = "You can use a vorpal blade to kill any enemy once, but you won't absorb their power.",
                },
                {
                    x = 8, y = 205,
                    w = 232, h = 30,
                    str = "Be aware that you can only hold a single pickaxe or a single vorpal blade.",
                },
            }
        },
        { --floor 4
            walls = {
                {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                {2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
                {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                {2,0,2,2,1,1,1,1,1,1,1,2,2,0,2},
                {0,0,2,2,0,0,0,0,0,0,0,2,2,0,0},
                {0,0,0,0,0,2,0,2,0,2,0,0,0,0,0},
                {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                {1,1,0,0,2,2,2,0,2,2,2,0,0,1,1},
                {0,0,0,0,2,0,0,0,0,0,2,0,0,0,0},
                {1,1,0,0,0,0,1,1,1,0,0,0,0,1,1},
                {0,0,0,0,2,0,1,0,1,0,2,0,0,0,0},
            },
            entities = {
                {type = "enemy_neg", x = 13, y = 7, value_str = "5k"},
                {type = "enemy_neg", x = 3, y = 7, value_str = "5k"},

                {type = "enemy_neg", x = 2, y = 8, value_str = "1k"},
                {type = "enemy_neg", x = 14, y = 8, value_str = "1k"},

                {type = "enemy_neg", x = 5, y = 9, value_str = "666"},
                {type = "enemy", x = 6, y = 9, value_str = "333"},
                {type = "enemy_neg", x = 7, y = 9, value_str = "666"},
                {type = "enemy", x = 8, y = 9, value_str = "333"},
                {type = "enemy_neg", x = 9, y = 9, value_str = "666"},
                {type = "enemy", x = 10, y = 9, value_str = "333"},
                {type = "enemy_neg", x = 11, y = 9, value_str = "666"},

                {type = "enemy", x = 1, y = 15, value_str = "500"},
                {type = "enemy_neg", x = 2, y = 15, value_str = "500"},

                {type = "enemy", x = 15, y = 15, value_str = "500"},
                {type = "enemy_neg", x = 14, y = 15, value_str = "500"},

                {type = "enemy", x = 1, y = 13, value_str = "250"},
                {type = "enemy_neg", x = 2, y = 13, value_str = "250"},

                {type = "enemy", x = 15, y = 13, value_str = "250"},
                {type = "enemy_neg", x = 14, y = 13, value_str = "250"},

                {type = "enemy", x = 6, y = 15, value_str = "50"},
                {type = "enemy", x = 6, y = 14, value_str = "50"},
                {type = "enemy", x = 6, y = 13, value_str = "50"},
                {type = "enemy", x = 7, y = 13, value_str = "50"},
                {type = "enemy", x = 8, y = 13, value_str = "50"},
                {type = "enemy", x = 9, y = 13, value_str = "50"},
                {type = "enemy", x = 10, y = 13, value_str = "50"},
                {type = "enemy", x = 10, y = 14, value_str = "50"},
                {type = "enemy", x = 10, y = 15, value_str = "50"},

                {type = "enemy_neg", x = 8, y = 11, value_str = "1k"},

                {type = "gate", x = 5, y = 14},
                {type = "gate", x = 11, y = 14},
                {type = "gate", x = 8, y = 12},

                {type = "enemy", x = 8, y = 15, value_str = "3k"},

                {type = "pickaxe", x = 6, y = 7},
                {type = "pickaxe", x = 7, y = 7},
                {type = "vorpal", x = 8, y = 7},
                {type = "pickaxe", x = 9, y = 7},
                {type = "pickaxe", x = 10, y = 7},

                {type = "stairs_up", x = 1, y = 7},
                {type = "stairs_down", x = 15, y = 7},
            },
            textboxes = {
                {
                    x = 8, y = 15,
                    w = 232, h = 57,
                    str = "Negative enemies work the same as normal enemies, with one difference - when you absorb their power, you substract their power from yours instead of adding it.",
                },
            }
        },
        { --floor 5
            walls = {
                {0,0,0,1,0,2,0,0,0,2,0,2,1,0,1},
                {0,0,0,0,0,1,0,0,0,1,0,2,0,0,0},
                {0,0,0,1,0,1,0,0,0,1,0,2,1,0,1},
                {2,2,2,2,0,1,0,0,0,1,0,2,0,0,0},
                {0,0,0,0,0,1,0,0,0,1,0,2,1,0,1},
                {2,2,2,0,0,2,1,0,1,2,0,2,0,0,0},
                {0,1,0,0,0,0,0,0,0,0,0,2,1,0,1},
                {0,1,0,2,0,0,2,0,0,2,0,2,2,2,2},
                {0,1,0,0,0,0,0,0,0,0,0,0,1,2,0},
                {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                {1,1,1,2,2,2,2,2,2,2,2,2,2,2,2},
                {1,1,1,2,1,1,1,1,1,1,1,1,1,1,1},
                {1,0,1,2,1,1,1,1,1,1,1,1,1,1,1},
                {1,1,1,2,1,1,1,1,1,1,1,1,1,1,1},
                {1,1,1,2,1,1,1,1,1,1,1,1,1,1,1},
            },
            entities = {
                {type = "enemy", x = 1, y = 1, value_str = "100"},
                {type = "enemy", x = 1, y = 2, value_str = "100"},
                {type = "enemy", x = 1, y = 3, value_str = "100"},
                {type = "enemy", x = 2, y = 1, value_str = "100"},
                {type = "vorpal", x = 2, y = 2},
                {type = "enemy", x = 2, y = 3, value_str = "100"},
                {type = "enemy", x = 3, y = 1, value_str = "100"},
                {type = "enemy", x = 3, y = 2, value_str = "100"},
                {type = "enemy", x = 3, y = 3, value_str = "100"},

                {type = "enemy_neg", x = 3, y = 5, value_str = "1k"},

                {type = "enemy_neg", x = 7, y = 1, value_str = "1k"},
                {type = "enemy", x = 8, y = 1, value_str = "1k"},
                {type = "enemy_neg", x = 9, y = 1, value_str = "1k"},
                {type = "enemy", x = 7, y = 2, value_str = "300"},
                {type = "enemy_neg", x = 8, y = 2, value_str = "1k"},
                {type = "enemy", x = 9, y = 2, value_str = "300"},
                {type = "enemy_neg", x = 7, y = 3, value_str = "500"},
                {type = "enemy", x = 8, y = 3, value_str = "300"},
                {type = "enemy_neg", x = 9, y = 3, value_str = "500"},
                {type = "enemy", x = 7, y = 4, value_str = "300"},
                {type = "enemy_neg", x = 8, y = 4, value_str = "1k"},
                {type = "enemy", x = 9, y = 4, value_str = "300"},
                {type = "enemy_neg", x = 7, y = 5, value_str = "500"},
                {type = "enemy", x = 8, y = 5, value_str = "300"},
                {type = "enemy_neg", x = 9, y = 5, value_str = "500"},
                {type = "enemy_neg", x = 8, y = 6, value_str = "1k"},

                {type = "enemy_neg", x = 2, y = 10, value_str = "500"},

                {type = "gate", x = 4, y = 2},

                {type = "enemy_neg", x = 12, y = 9, value_str = "256"},
                {type = "gate", x = 12, y = 10},
                {type = "gate", x = 13, y = 10},

                {type = "elixir", x = 2, y = 13},
                {type = "elixir", x = 2, y = 5},

                {type = "enemy", x = 6, y = 9, value_str = "50"},
                {type = "enemy", x = 5, y = 10, value_str = "50"},
                {type = "enemy", x = 5, y = 9, value_str = "50"},
                {type = "enemy", x = 8, y = 9, value_str = "50"},
                {type = "enemy", x = 9, y = 10, value_str = "50"},
                {type = "enemy", x = 9, y = 9, value_str = "50"},
                {type = "enemy_neg", x = 7, y = 9, value_str = "500"},
                {type = "enemy_neg", x = 8, y = 10, value_str = "500"},
                {type = "enemy_neg", x = 6, y = 10, value_str = "500"},
                {type = "pickaxe", x = 7, y = 10},

                {type = "pickaxe", x = 15, y = 9},
                {type = "pickaxe", x = 14, y = 10},
                {type = "vorpal", x = 15, y = 10},

                {type = "enemy", x = 13, y = 2, value_str = "500"},
                {type = "enemy", x = 15, y = 2, value_str = "500"},
                {type = "enemy", x = 13, y = 4, value_str = "500"},
                {type = "enemy", x = 15, y = 4, value_str = "500"},
                {type = "enemy_neg", x = 14, y = 3, value_str = "500"},
                {type = "enemy_neg", x = 14, y = 4, value_str = "500"},
                {type = "enemy_neg", x = 14, y = 5, value_str = "1k"},
                {type = "enemy_neg", x = 14, y = 6, value_str = "2k"},
                {type = "vorpal", x = 13, y = 6},
                {type = "vorpal", x = 15, y = 6},
                {type = "elixir", x = 14, y = 7},
                
                {type = "stairs_down", x = 1, y = 7},
                {type = "stairs_up", x = 1, y = 5},
                {type = "stairs_up", x = 14, y = 1},

            },
            textboxes = {
                {
                    x = 72, y = 188,
                    w = 168, h = 49,
                    str = "Elixirs will double your power. Try to save them until your power is high to maximize the gains.",
                },
            }
        },
        { --floor 6
            walls = {
                {0,0,1,0,0,0,2,1,2,0,0,0,2,0,2},
                {0,2,2,0,0,0,0,0,0,0,0,0,0,0,1},
                {1,2,0,0,0,0,2,0,2,0,0,0,0,0,2},
                {0,0,0,2,2,0,1,0,1,0,2,2,0,0,0},
                {0,0,0,2,2,2,2,2,2,2,2,2,0,0,0},
                {0,0,0,0,2,1,1,1,1,1,2,0,0,0,0},
                {2,0,2,1,2,1,1,1,1,1,2,1,2,0,2},
                {1,0,0,0,2,1,1,1,1,1,2,0,0,0,1},
                {2,0,2,1,2,1,1,1,1,1,2,1,2,0,2},
                {0,0,0,0,2,1,1,1,1,1,2,0,0,0,0},
                {0,0,0,2,2,2,2,2,2,2,2,2,0,0,0},
                {0,0,0,2,2,0,1,0,1,0,2,2,0,0,0},
                {0,2,0,0,0,0,2,0,2,0,0,0,0,0,2},
                {0,2,2,0,0,0,0,0,0,0,0,0,0,0,1},
                {0,0,0,0,0,0,2,1,2,0,0,0,2,0,0},
            },
            entities = {
                {type = "enemy_neg", x = 6, y = 3, value_str = "1k"},
                {type = "enemy", x = 6, y = 4, value_str = "1k"},
                {type = "enemy_neg", x = 10, y = 3, value_str = "1k"},
                {type = "enemy", x = 10, y = 4, value_str = "1k"},
                {type = "enemy_neg", x = 6, y = 13, value_str = "1k"},
                {type = "enemy", x = 6, y = 12, value_str = "1k"},
                {type = "enemy_neg", x = 10, y = 13, value_str = "1k"},
                {type = "enemy", x = 10, y = 12, value_str = "1k"},
                {type = "enemy_neg", x = 3, y = 6, value_str = "1k"},
                {type = "enemy", x = 4, y = 6, value_str = "1k"},
                {type = "enemy_neg", x = 3, y = 10, value_str = "1k"},
                {type = "enemy", x = 4, y = 10, value_str = "1k"},
                {type = "enemy_neg", x = 13, y = 6, value_str = "1k"},
                {type = "enemy", x = 12, y = 6, value_str = "1k"},
                {type = "enemy_neg", x = 13, y = 10, value_str = "1k"},
                {type = "enemy", x = 12, y = 10, value_str = "1k"},

                {type = "enemy", x = 8, y = 12, value_str = "2k"},
                {type = "enemy", x = 8, y = 4, value_str = "2k"},
                {type = "enemy", x = 12, y = 8, value_str = "2k"},
                {type = "enemy", x = 4, y = 8, value_str = "2k"},

                {type = "enemy_neg", x = 14, y = 2, value_str = "10k"},
                {type = "enemy_neg", x = 14, y = 14, value_str = "10k"},
                
                {type = "gate", x = 8, y = 13},
                {type = "gate", x = 8, y = 3},
                {type = "gate", x = 13, y = 8},
                {type = "gate", x = 3, y = 8},

                {type = "gate", x = 1, y = 13},
                {type = "gate", x = 3, y = 15},
                {type = "pickaxe", x = 2, y = 15},
                {type = "pickaxe", x = 1, y = 15},
                {type = "pickaxe", x = 1, y = 14},

                {type = "vorpal", x = 1, y = 1},
                {type = "enemy_neg", x = 1, y = 2, value_str = "300"},
                {type = "enemy_neg", x = 2, y = 1, value_str = "300"},

                {type = "enemy", x = 5, y = 1, value_str = "250"},
                {type = "enemy", x = 11, y = 1, value_str = "250"},
                {type = "enemy", x = 5, y = 15, value_str = "250"},
                {type = "enemy", x = 11, y = 15, value_str = "250"},
                {type = "enemy", x = 15, y = 5, value_str = "500"},
                {type = "enemy", x = 15, y = 11, value_str = "500"},

                {type = "stairs_down", x = 1, y = 5},
                {type = "stairs_down", x = 14, y = 1},
                {type = "stairs_up", x = 1, y = 11},
                {type = "stairs_up", x = 15, y = 15},

            },
            textboxes = {
                {
                    x = 87, y = 91,
                    w = 74, h = 66,
                    str = "Reach the top of the tower, and scale your power up as much as you can!",
                },
            }
        },
        { --floor 7
            walls = {
                {2,2,2,0,0,0,2,0,2,0,0,0,2,2,2},
                {2,0,2,2,0,2,2,0,2,2,0,2,2,0,2},
                {2,0,2,0,0,0,0,0,0,0,0,0,2,0,2},
                {0,0,0,0,2,0,2,1,2,0,2,0,0,0,0},
                {2,2,0,0,0,0,0,0,0,0,0,0,0,2,2},
                {0,0,0,0,0,2,0,0,0,2,0,0,0,0,0},
                {2,2,0,0,0,0,0,0,0,0,0,0,0,2,2},
                {0,0,0,2,1,0,2,2,0,2,2,0,0,0,0},
                {0,0,0,1,1,1,2,0,0,0,2,0,2,1,1},
                {1,2,0,1,1,0,2,0,0,0,1,0,0,0,0},
                {0,0,0,2,2,2,2,0,0,0,2,2,2,0,0},
                {0,0,2,2,2,2,2,2,2,2,2,2,2,2,2},
                {0,2,2,1,1,1,1,1,2,0,2,0,2,0,2},
                {0,2,0,0,0,0,0,0,2,0,2,0,2,0,2},
                {0,0,0,1,1,0,0,0,2,0,0,0,0,0,0},
            },
            entities = {
                {type = "vorpal", x = 6, y = 15},
                {type = "vorpal", x = 7, y = 15},
                {type = "vorpal", x = 8, y = 15},
                {type = "vorpal", x = 7, y = 14},
                {type = "vorpal", x = 8, y = 14},

                {type = "pickaxe", x = 4, y = 1},
                {type = "enemy_neg", x = 5, y = 2, value_str = "25k"},
                {type = "elixir", x = 6, y = 1},
                {type = "elixir", x = 10, y = 1},
                {type = "enemy_neg", x = 11, y = 2, value_str = "25k"},
                {type = "pickaxe", x = 12, y = 1},

                {type = "pickaxe", x = 1, y = 6},
                {type = "enemy_neg", x = 2, y = 6, value_str = "10k"},
                {type = "enemy_neg", x = 14, y = 6, value_str = "10k"},
                {type = "pickaxe", x = 15, y = 6},

                {type = "enemy_neg", x = 2, y = 4, value_str = "5k"},
                {type = "enemy_neg", x = 14, y = 4, value_str = "5k"},

                {type = "enemy", x = 1, y = 9, value_str = "2k"},
                {type = "enemy", x = 1, y = 8, value_str = "2k"},
                {type = "enemy", x = 2, y = 9, value_str = "2k"},
                {type = "enemy", x = 2, y = 8, value_str = "2k"},

                {type = "enemy_neg", x = 13, y = 10, value_str = "5k"},
                {type = "enemy", x = 14, y = 10, value_str = "2k"},
                {type = "enemy", x = 14, y = 11, value_str = "2k"},
                {type = "enemy", x = 15, y = 10, value_str = "2k"},
                {type = "enemy", x = 15, y = 11, value_str = "2k"},

                {type = "enemy", x = 8, y = 5, value_str = "15k"},
                {type = "enemy_neg", x = 7, y = 5, value_str = "10k"},
                {type = "enemy_neg", x = 8, y = 6, value_str = "10k"},
                {type = "enemy_neg", x = 9, y = 5, value_str = "10k"},

                {type = "enemy", x = 8, y = 9, value_str = "1k"},
                {type = "enemy", x = 8, y = 10, value_str = "1k"},
                {type = "enemy", x = 8, y = 11, value_str = "1k"},
                {type = "enemy", x = 9, y = 9, value_str = "1k"},
                {type = "enemy", x = 9, y = 10, value_str = "2k"},
                {type = "enemy", x = 9, y = 11, value_str = "1k"},
                {type = "enemy", x = 10, y = 9, value_str = "1k"},
                {type = "enemy", x = 10, y = 10, value_str = "1k"},
                {type = "enemy", x = 10, y = 11, value_str = "1k"},

                {type = "elixir", x = 6, y = 10},

                {type = "enemy_neg", x = 1, y = 13, value_str = "500"},
                {type = "enemy_neg", x = 1, y = 14, value_str = "500"},
                {type = "enemy_neg", x = 1, y = 15, value_str = "1k"},
                {type = "enemy_neg", x = 2, y = 15, value_str = "2k"},
                {type = "enemy_neg", x = 3, y = 15, value_str = "4k"},
                {type = "enemy_neg", x = 3, y = 14, value_str = "6k"},
                {type = "enemy_neg", x = 4, y = 14, value_str = "6k"},
                {type = "enemy_neg", x = 5, y = 14, value_str = "6k"},
                {type = "enemy_neg", x = 6, y = 14, value_str = "6k"},

                {type = "elixir", x = 10, y = 13},
                {type = "elixir", x = 12, y = 13},
                {type = "elixir", x = 14, y = 13},
                {type = "gate", x = 10, y = 14},
                {type = "gate", x = 12, y = 14},
                {type = "gate", x = 14, y = 14},

                {type = "gate", x = 6, y = 8},
                {type = "gate", x = 9, y = 8},
                {type = "gate", x = 12, y = 9},

                {type = "stairs_down", x = 1, y = 11},
                {type = "stairs_down", x = 15, y = 15},
                {type = "stairs_up", x = 2, y = 2},
                {type = "stairs_up", x = 8, y = 1},
                {type = "stairs_up", x = 14, y = 2},

            },
            textboxes = {
                {
                    x = 172, y = 174,
                    w = 32, h = 11,
                    str = "BANK",
                },
                {
                    x = 60, y = 174,
                    w = 48, h = 11,
                    str = "ARMORY",
                },
            }
        },
        { --floor 8
            walls = {
                {2,2,0,1,1,1,2,0,2,1,1,1,0,2,2},
                {2,0,0,0,0,0,1,0,1,0,0,0,0,0,2},
                {0,0,0,0,0,2,1,0,1,2,0,0,0,0,0},
                {0,0,0,2,0,2,1,0,1,2,0,2,0,0,0},
                {0,0,0,0,0,2,1,0,1,2,0,0,0,0,0},
                {2,0,2,2,2,2,0,0,0,2,2,2,2,0,2},
                {0,0,0,0,1,0,0,0,0,0,1,0,0,0,0},
                {0,0,0,0,1,0,0,0,0,0,1,0,0,0,0},
                {0,0,0,0,1,0,0,0,0,0,1,0,0,0,0},
                {2,0,2,2,2,2,0,0,0,2,2,2,2,0,2},
                {0,0,0,0,0,2,1,1,1,2,0,0,0,0,0},
                {0,0,2,0,0,2,0,0,0,2,0,0,2,0,0},
                {0,2,2,2,0,2,0,0,0,2,0,2,2,2,0},
                {0,0,2,0,0,2,1,0,1,2,0,0,2,0,0},
                {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
            },
            entities = {
                {type = "enemy_neg", x = 8, y = 5, value_str = "100k"},
                {type = "enemy", x = 7, y = 6, value_str = "5k"},
                {type = "enemy", x = 9, y = 6, value_str = "5k"},
                {type = "enemy", x = 7, y = 10, value_str = "5k"},
                {type = "enemy", x = 9, y = 10, value_str = "5k"},
                {type = "enemy", x = 6, y = 7, value_str = "5k"},
                {type = "enemy", x = 6, y = 9, value_str = "5k"},
                {type = "enemy", x = 10, y = 7, value_str = "5k"},
                {type = "enemy", x = 10, y = 9, value_str = "5k"},

                {type = "enemy", x = 7, y = 13, value_str = "2k"},
                {type = "enemy", x = 8, y = 13, value_str = "2k"},
                {type = "enemy", x = 9, y = 13, value_str = "2k"},
                {type = "enemy", x = 7, y = 12, value_str = "8k"},
                {type = "enemy", x = 8, y = 12, value_str = "8k"},
                {type = "enemy", x = 9, y = 12, value_str = "8k"},

                {type = "enemy_neg", x = 4, y = 7, value_str = "4k"},
                {type = "enemy_neg", x = 4, y = 8, value_str = "4k"},
                {type = "enemy_neg", x = 4, y = 9, value_str = "4k"},
                {type = "enemy_neg", x = 3, y = 7, value_str = "4k"},
                {type = "enemy_neg", x = 3, y = 8, value_str = "4k"},
                {type = "enemy_neg", x = 3, y = 9, value_str = "4k"},
                {type = "enemy_neg", x = 12, y = 7, value_str = "4k"},
                {type = "enemy_neg", x = 12, y = 8, value_str = "4k"},
                {type = "enemy_neg", x = 12, y = 9, value_str = "4k"},
                {type = "enemy_neg", x = 13, y = 7, value_str = "4k"},
                {type = "enemy_neg", x = 13, y = 8, value_str = "4k"},
                {type = "enemy_neg", x = 13, y = 9, value_str = "4k"},

                {type = "enemy_neg", x = 3, y = 15, value_str = "30k"},
                {type = "enemy_neg", x = 13, y = 15, value_str = "30k"},

                {type = "enemy", x = 14, y = 15, value_str = "5k"},
                {type = "enemy", x = 14, y = 14, value_str = "10k"},
                {type = "enemy", x = 15, y = 14, value_str = "5k"},

                {type = "enemy", x = 2, y = 15, value_str = "5k"},
                {type = "enemy", x = 2, y = 14, value_str = "10k"},
                {type = "enemy", x = 1, y = 14, value_str = "5k"},

                {type = "enemy", x = 11, y = 11, value_str = "5k"},
                {type = "enemy", x = 5, y = 11, value_str = "5k"},

                {type = "stairs_down", x = 2, y = 2},
                {type = "stairs_down", x = 8, y = 1},
                {type = "stairs_down", x = 14, y = 2},
                {type = "stairs_up", x = 8, y = 8},

                {type = "vorpal", x = 5, y = 5},
                {type = "vorpal", x = 11, y = 5},

                {type = "gate", x = 1, y = 13},
                {type = "gate", x = 8, y = 14},
                {type = "gate", x = 15, y = 13},
                {type = "pickaxe", x = 1, y = 15},
                {type = "pickaxe", x = 15, y = 15},
            },
            textboxes = {
            }
        },
        { --floor 9
            walls = {
                {2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
                {2,0,1,1,1,1,1,1,1,1,1,1,1,0,2},
                {2,1,1,0,0,0,0,0,0,0,0,0,1,1,2},
                {2,1,0,0,1,1,1,1,1,1,1,0,0,1,2},
                {2,1,0,1,1,0,0,0,0,0,1,1,0,1,2},
                {2,1,0,1,0,0,1,1,1,0,0,1,0,1,2},
                {2,1,0,1,0,1,1,0,1,1,0,1,0,1,2},
                {2,1,0,1,0,1,0,0,0,1,0,1,0,1,2},
                {2,1,0,1,0,1,1,0,1,1,0,1,0,1,2},
                {2,1,0,1,0,0,1,0,0,1,0,1,0,1,2},
                {2,1,0,1,1,0,0,0,1,1,0,1,0,1,2},
                {2,1,0,0,1,1,1,1,1,0,0,1,0,1,2},
                {2,1,1,0,0,0,0,0,0,0,1,1,0,1,2},
                {2,0,1,1,1,1,1,1,1,1,1,0,0,1,2},
                {2,2,2,2,2,2,1,0,0,0,0,0,1,1,2},
            },
            entities = {
                {type = "enemy_neg", x = 8, y = 9, value_str = "100k"},
                {type = "enemy_neg", x = 8, y = 11, value_str = "100k"},
                {type = "enemy_neg", x = 7, y = 11, value_str = "100k"},
                {type = "enemy_neg", x = 6, y = 11, value_str = "100k"},
                {type = "enemy_neg", x = 6, y = 10, value_str = "100k"},
                {type = "enemy_neg", x = 5, y = 10, value_str = "100k"},
                {type = "enemy_neg", x = 5, y = 9, value_str = "100k"},
                {type = "enemy_neg", x = 5, y = 8, value_str = "100k"},
                {type = "enemy_neg", x = 5, y = 7, value_str = "100k"},
                {type = "enemy_neg", x = 5, y = 6, value_str = "100k"},
                {type = "enemy_neg", x = 6, y = 6, value_str = "100k"},
                {type = "enemy_neg", x = 6, y = 5, value_str = "100k"},
                {type = "enemy_neg", x = 7, y = 5, value_str = "100k"},
                {type = "enemy_neg", x = 8, y = 5, value_str = "100k"},
                {type = "enemy_neg", x = 9, y = 5, value_str = "100k"},
                {type = "enemy_neg", x = 10, y = 5, value_str = "100k"},
                {type = "enemy_neg", x = 10, y = 6, value_str = "100k"},
                {type = "enemy_neg", x = 11, y = 6, value_str = "100k"},
                {type = "enemy_neg", x = 11, y = 7, value_str = "100k"},
                {type = "enemy_neg", x = 11, y = 8, value_str = "100k"},
                {type = "enemy_neg", x = 11, y = 9, value_str = "100k"},
                {type = "enemy_neg", x = 11, y = 10, value_str = "100k"},
                {type = "enemy_neg", x = 11, y = 11, value_str = "100k"},
                {type = "enemy_neg", x = 11, y = 12, value_str = "100k"},
                {type = "enemy_neg", x = 10, y = 12, value_str = "100k"},
                {type = "enemy_neg", x = 10, y = 13, value_str = "100k"},
                {type = "enemy_neg", x = 9, y = 13, value_str = "100k"},
                {type = "enemy_neg", x = 8, y = 13, value_str = "100k"},
                {type = "enemy_neg", x = 7, y = 13, value_str = "100k"},
                {type = "enemy_neg", x = 6, y = 13, value_str = "100k"},
                {type = "enemy_neg", x = 5, y = 13, value_str = "100k"},
                {type = "enemy_neg", x = 4, y = 13, value_str = "100k"},
                {type = "enemy_neg", x = 4, y = 12, value_str = "100k"},
                {type = "enemy_neg", x = 3, y = 12, value_str = "100k"},
                {type = "enemy_neg", x = 3, y = 11, value_str = "100k"},
                {type = "enemy_neg", x = 3, y = 10, value_str = "100k"},
                {type = "enemy_neg", x = 3, y = 9, value_str = "100k"},
                {type = "enemy_neg", x = 3, y = 8, value_str = "100k"},
                {type = "enemy_neg", x = 3, y = 7, value_str = "100k"},
                {type = "enemy_neg", x = 3, y = 6, value_str = "100k"},
                {type = "enemy_neg", x = 3, y = 5, value_str = "100k"},
                {type = "enemy_neg", x = 3, y = 4, value_str = "100k"},
                {type = "enemy_neg", x = 4, y = 4, value_str = "100k"},
                {type = "enemy_neg", x = 4, y = 3, value_str = "100k"},
                {type = "enemy_neg", x = 5, y = 3, value_str = "100k"},
                {type = "enemy_neg", x = 6, y = 3, value_str = "100k"},
                {type = "enemy_neg", x = 7, y = 3, value_str = "100k"},
                {type = "enemy_neg", x = 8, y = 3, value_str = "100k"},
                {type = "enemy_neg", x = 9, y = 3, value_str = "100k"},
                {type = "enemy_neg", x = 10, y = 3, value_str = "100k"},
                {type = "enemy_neg", x = 11, y = 3, value_str = "100k"},
                {type = "enemy_neg", x = 12, y = 3, value_str = "100k"},
                {type = "enemy_neg", x = 12, y = 4, value_str = "100k"},
                {type = "enemy_neg", x = 13, y = 4, value_str = "100k"},
                {type = "enemy_neg", x = 13, y = 5, value_str = "100k"},
                {type = "enemy_neg", x = 13, y = 6, value_str = "100k"},
                {type = "enemy_neg", x = 13, y = 7, value_str = "100k"},
                {type = "enemy_neg", x = 13, y = 8, value_str = "100k"},
                {type = "enemy_neg", x = 13, y = 9, value_str = "100k"},
                {type = "enemy_neg", x = 13, y = 10, value_str = "100k"},
                {type = "enemy_neg", x = 13, y = 11, value_str = "100k"},
                {type = "enemy_neg", x = 13, y = 12, value_str = "100k"},
                {type = "enemy_neg", x = 13, y = 13, value_str = "100k"},
                {type = "enemy_neg", x = 13, y = 14, value_str = "100k"},
                {type = "enemy_neg", x = 12, y = 14, value_str = "100k"},
                {type = "enemy_neg", x = 12, y = 15, value_str = "100k"},
                {type = "enemy_neg", x = 11, y = 15, value_str = "100k"},
                {type = "enemy_neg", x = 10, y = 15, value_str = "100k"},
                {type = "enemy_neg", x = 9, y = 15, value_str = "100k"},

                {type = "vorpal", x = 9, y = 10},

                {type = "elixir", x = 2, y = 2},
                {type = "elixir", x = 14, y = 2},
                {type = "elixir", x = 2, y = 14},

                {type = "stairs_down", x = 8, y = 8},
                {type = "stairs_up", x = 8, y = 15},

            },
            textboxes = {
            }
        },
        { --floor 10
            walls = {
                {1,1,1,1,1,2,2,2,2,2,1,1,1,1,1},
                {1,1,1,1,2,2,0,0,0,2,2,1,1,1,1},
                {1,1,1,1,2,0,0,0,0,0,2,1,1,1,1},
                {1,1,1,1,2,0,0,0,0,0,2,1,1,1,1},
                {1,1,1,1,2,0,0,0,0,0,2,1,1,1,1},
                {1,1,1,1,2,2,0,0,0,2,2,1,1,1,1},
                {1,1,1,1,1,2,2,0,2,2,1,1,1,1,1},
                {2,2,2,2,2,2,1,0,1,2,2,2,2,2,2},
                {2,0,0,0,2,2,1,0,1,2,2,0,0,0,2},
                {2,2,0,2,2,2,1,0,1,2,2,2,0,2,2},
                {0,0,0,0,0,2,1,0,1,2,0,0,0,0,0},
                {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                {0,0,0,0,0,2,2,0,2,2,0,0,0,0,0},
                {0,0,0,0,0,2,2,0,2,2,0,0,0,0,0},
                {0,0,0,0,0,2,2,0,2,2,0,0,0,0,0},
            },
            entities = {

                {type = "pickaxe", x = 2, y = 9},
                {type = "pickaxe", x = 3, y = 9},
                {type = "pickaxe", x = 4, y = 9},
                {type = "enemy_neg", x = 3, y = 10, value_str = "250k"},

                {type = "pickaxe", x = 12, y = 9},
                {type = "pickaxe", x = 13, y = 9},
                {type = "pickaxe", x = 14, y = 9},
                {type = "enemy_neg", x = 13, y = 10, value_str = "250k"},

                {type = "enemy_neg", x = 8, y = 7, value_str = "10M"},
                {type = "enemy_neg", x = 8, y = 8, value_str = "2M"},
                {type = "enemy_neg", x = 8, y = 9, value_str = "1M"},
                {type = "enemy_neg", x = 8, y = 10, value_str = "500k"},
                {type = "enemy_neg", x = 8, y = 11, value_str = "500k"},

                {type = "enemy", x = 2, y = 12, value_str = "10k"},
                {type = "enemy", x = 3, y = 12, value_str = "10k"},
                {type = "enemy", x = 4, y = 12, value_str = "10k"},
                {type = "enemy", x = 2, y = 13, value_str = "10k"},
                {type = "enemy", x = 3, y = 13, value_str = "20k"},
                {type = "enemy", x = 4, y = 13, value_str = "10k"},
                {type = "enemy", x = 2, y = 14, value_str = "10k"},
                {type = "enemy", x = 3, y = 14, value_str = "10k"},
                {type = "enemy", x = 4, y = 14, value_str = "10k"},

                {type = "enemy", x = 12, y = 12, value_str = "10k"},
                {type = "enemy", x = 13, y = 12, value_str = "10k"},
                {type = "enemy", x = 14, y = 12, value_str = "10k"},
                {type = "enemy", x = 12, y = 13, value_str = "10k"},
                {type = "enemy", x = 13, y = 13, value_str = "20k"},
                {type = "enemy", x = 14, y = 13, value_str = "10k"},
                {type = "enemy", x = 12, y = 14, value_str = "10k"},
                {type = "enemy", x = 13, y = 14, value_str = "10k"},
                {type = "enemy", x = 14, y = 14, value_str = "10k"},

                {type = "elixir", x = 8, y = 3},
                {type = "elixir", x = 8, y = 5},
                {type = "crown", x = 8, y = 4},
                {type = "elixir", x = 7, y = 4},
                {type = "elixir", x = 9, y = 4},

                {type = "gate", x = 8, y = 13},
                {type = "gate", x = 6, y = 12},
                {type = "gate", x = 10, y = 12},

                {type = "stairs_down", x = 8, y = 15},

            },
            textboxes = {
                {
                    x = 4, y = 4,
                    w = 60, h = 112,
                    str = "\nThis is the top of the Tower of Scale.\n\nGrab the Crown to win the game!",
                },
                {
                    x = 184, y = 4,
                    w = 60, h = 112,
                    str = "Your end score is equal to your power when you grab the Crown.\n\nHow far can you scale?",
                },
            }
        },
    }

    --convert value_str into value
    for f=1,#self do
        local entities = self[f].entities
        for e=1,#entities do
            if entities[e].value_str then
                arr = {}
                num = 0
                for i=1,#entities[e].value_str do
                    arr[i] = entities[e].value_str:sub(i,i)
                end
                for i=1,#arr do
                    if arr[i]=="G" then
                        num = num * 1000 * 1000 * 1000
                    elseif arr[i]=="M" then
                        num = num * 1000 * 1000
                    elseif arr[i]=="k" then
                        num = num * 1000
                    else
                        num = num*10+arr[i]
                    end
                end
                -- print("converted value_str "..entities[e].value_str.." into value "..num)
                entities[e].value = num
            end
        end
    end
    setmetatable(self, LevelData)
    return self
end

return LevelData