sketched up to the final floor

This commit is contained in:
makiki 2024-08-18 21:00:01 +02:00
parent 3f52c430f1
commit 2b933d99fc
4 changed files with 381 additions and 20 deletions

View File

@ -12,8 +12,8 @@ function love.conf(t)
t.window.title = "GMTK2024" -- The window title (string)
t.window.icon = nil -- Filepath to an image to use as the window's icon (string)
t.window.width = 496 -- The window width (number)
t.window.height = 518 -- The window height (number)
t.window.width = 500 -- The window width (number)
t.window.height = 522 -- The window height (number)
t.window.borderless = false -- Remove all border visuals from the window (boolean)
t.window.resizable = true -- Let the window be user-resizable (boolean)
t.window.minwidth = 248 -- Minimum window width if the window is resizable (number)

View File

@ -29,7 +29,7 @@ function Game.new()
player_x = 1,
player_y = 8,
player_item = nil,
floor = 4,
floor = 10,
level_data = LevelData:new(),
undo_history = {},
}

View File

@ -228,13 +228,13 @@ function LevelData.new()
{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 = "1k"},
{type = "enemy", x = 6, y = 9, value_str = "500"},
{type = "enemy_neg", x = 7, y = 9, value_str = "1k"},
{type = "enemy", x = 8, y = 9, value_str = "500"},
{type = "enemy_neg", x = 9, y = 9, value_str = "1k"},
{type = "enemy", x = 10, y = 9, value_str = "500"},
{type = "enemy_neg", x = 11, y = 9, 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"},
@ -285,15 +285,15 @@ function LevelData.new()
},
{ --floor 5
walls = {
{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,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,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},
{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,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,0,0,0,0,0,0,0,0,0,0},
{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},
@ -302,10 +302,78 @@ function LevelData.new()
{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},
--TODO: decide on enemy values, need later data for this thing
{type = "enemy", x = 13, y = 2, value_str = "250"},
{type = "enemy", x = 15, y = 2, value_str = "250"},
{type = "enemy", x = 13, y = 4, value_str = "250"},
{type = "enemy", x = 15, y = 4, value_str = "250"},
{type = "enemy_neg", x = 14, y = 3, value_str = "500"},
{type = "enemy_neg", x = 14, y = 4, value_str = "750"},
{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 = 15, y = 7},
{type = "stairs_up", x = 1, y = 5},
{type = "stairs_up", x = 14, y = 1},
},
textboxes = {
{
@ -315,6 +383,299 @@ function LevelData.new()
},
}
},
{ --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,2},
},
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 = 14, 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,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
{0,2,1,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,2},
},
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 = "enemy_neg", x = 1, y = 13, value_str = "125"},
{type = "enemy_neg", x = 1, y = 14, value_str = "250"},
{type = "enemy_neg", x = 1, y = 15, value_str = "500"},
{type = "enemy_neg", x = 2, y = 15, value_str = "1k"},
{type = "enemy_neg", x = 3, y = 15, value_str = "2k"},
{type = "enemy_neg", x = 3, y = 14, value_str = "4k"},
{type = "enemy_neg", x = 4, y = 14, value_str = "6k"},
{type = "enemy_neg", x = 5, y = 14, value_str = "8k"},
{type = "enemy_neg", x = 6, y = 14, value_str = "10k"},
{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 = 14, 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,0,1,0,1,0,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},
{0,0,2,2,2,2,0,0,0,2,2,2,2,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},
{0,0,0,0,1,0,0,0,0,0,1,0,0,0,0},
{0,0,2,2,2,2,0,0,0,2,2,2,2,0,0},
{0,0,0,0,0,2,1,1,1,2,0,0,0,0,0},
{0,0,0,0,0,2,0,0,0,2,0,0,0,0,0},
{0,0,0,0,0,2,0,0,0,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,0,0,0,0,0,0,0,0,0,0},
},
entities = {
{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},
},
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 = "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 = "200k"},
{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 = "200k"},
{type = "enemy_neg", x = 8, y = 7, value_str = "1M"},
{type = "enemy_neg", x = 8, y = 8, value_str = "100k"},
{type = "enemy_neg", x = 8, y = 9, value_str = "100k"},
{type = "enemy_neg", x = 8, y = 10, value_str = "100k"},
{type = "enemy_neg", x = 8, y = 11, value_str = "100k"},
{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 = "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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB