summaryrefslogtreecommitdiffhomepage
path: root/config
diff options
context:
space:
mode:
authorAki <nthirtyone@gmail.com>2017-09-21 21:05:37 +0200
committerAki <nthirtyone@gmail.com>2017-09-21 21:05:37 +0200
commite9a450d65d4fb564691cdf651ef5771dd88303ae (patch)
treef49d29582dd6877f3b3c807c3f7d9d92d368f798 /config
parenteb8302723cd85adca0fbaf505cfb315f1db0299a (diff)
parentb97985def64b8bd8f93a7b391b12333595432e52 (diff)
downloadroflnauts-e9a450d65d4fb564691cdf651ef5771dd88303ae.zip
roflnauts-e9a450d65d4fb564691cdf651ef5771dd88303ae.tar.gz
roflnauts-e9a450d65d4fb564691cdf651ef5771dd88303ae.tar.bz2
Merge branch 'maps'
Diffstat (limited to 'config')
-rw-r--r--config/animations/clouds-default.lua18
-rw-r--r--config/animations/flames.lua21
-rw-r--r--config/maps.lua9
-rw-r--r--config/maps/205.lua49
-rw-r--r--config/maps/404.lua51
-rw-r--r--config/maps/aiguillon.lua47
-rw-r--r--config/maps/alpha abyss.lua75
-rw-r--r--config/maps/alpha.lua43
-rw-r--r--config/maps/default.lua39
-rw-r--r--config/maps/ribbit.lua37
-rw-r--r--config/maps/rill.lua49
-rw-r--r--config/maps/sorona.lua71
-rw-r--r--config/maps/starstorm.lua61
-rw-r--r--config/menus/host.lua48
-rw-r--r--config/menus/select.lua76
-rw-r--r--config/platforms/205-left.lua8
-rw-r--r--config/platforms/205-right.lua8
-rw-r--r--config/platforms/205-top.lua5
-rw-r--r--config/platforms/404-bottom.lua10
-rw-r--r--config/platforms/404-small.lua5
-rw-r--r--config/platforms/404-top.lua9
-rw-r--r--config/platforms/aiguillon-left-big.lua5
-rw-r--r--config/platforms/aiguillon-left-small.lua5
-rw-r--r--config/platforms/aiguillon-middle.lua5
-rw-r--r--config/platforms/aiguillon-right-big.lua5
-rw-r--r--config/platforms/aiguillon-right-small.lua5
-rw-r--r--config/platforms/aiguillon-wide.lua5
-rw-r--r--config/platforms/alpha-big.lua31
-rw-r--r--config/platforms/alpha-small.lua31
-rw-r--r--config/platforms/default-big.lua5
-rw-r--r--config/platforms/default-side.lua5
-rw-r--r--config/platforms/default-top.lua5
-rw-r--r--config/platforms/ribbit-bottom.lua5
-rw-r--r--config/platforms/ribbit-left.lua5
-rw-r--r--config/platforms/ribbit-right.lua5
-rw-r--r--config/platforms/ribbit-top.lua5
-rw-r--r--config/platforms/rill-center.lua5
-rw-r--r--config/platforms/rill-flat-left.lua5
-rw-r--r--config/platforms/rill-flat-right.lua5
-rw-r--r--config/platforms/rill-slope-left.lua5
-rw-r--r--config/platforms/rill-slope-right.lua5
-rw-r--r--config/platforms/sorona-button.lua5
-rw-r--r--config/platforms/sorona-medium.lua5
-rw-r--r--config/platforms/sorona-small.lua5
-rw-r--r--config/platforms/sorona-spiked.lua5
-rw-r--r--config/platforms/sorona-wide.lua5
-rw-r--r--config/platforms/starstorm-center.lua5
-rw-r--r--config/platforms/starstorm-left-bottom.lua5
-rw-r--r--config/platforms/starstorm-left-middle.lua5
-rw-r--r--config/platforms/starstorm-left-top.lua8
-rw-r--r--config/platforms/starstorm-right-bottom.lua5
-rw-r--r--config/platforms/starstorm-right-middle.lua5
-rw-r--r--config/platforms/starstorm-right-top.lua8
53 files changed, 660 insertions, 297 deletions
diff --git a/config/animations/clouds-default.lua b/config/animations/clouds-default.lua
new file mode 100644
index 0000000..bbf8a28
--- /dev/null
+++ b/config/animations/clouds-default.lua
@@ -0,0 +1,18 @@
+return
+{
+ default = {
+ [1] = love.graphics.newQuad( 1, 1, 158,47, 478,49),
+ frames = 1,
+ repeated = true
+ },
+ default2 = {
+ [1] = love.graphics.newQuad(160, 1, 158,47, 478,49),
+ frames = 1,
+ repeated = true
+ },
+ default3 = {
+ [1] = love.graphics.newQuad(319, 1, 158,47, 478,49),
+ frames = 1,
+ repeated = true
+ }
+}
diff --git a/config/animations/flames.lua b/config/animations/flames.lua
new file mode 100644
index 0000000..62ecbb1
--- /dev/null
+++ b/config/animations/flames.lua
@@ -0,0 +1,21 @@
+return
+{
+ default = {
+ [1] = love.graphics.newQuad(0, 0, 42, 19, 168, 19),
+ [2] = love.graphics.newQuad(42, 0, 42, 19, 168, 19),
+ frames = 2,
+ repeated = true
+ },
+ fadein = {
+ [1] = love.graphics.newQuad(84, 0, 42, 19, 168, 19),
+ [2] = love.graphics.newQuad(126, 0, 42, 19, 168, 19),
+ frames = 2,
+ repeated = false
+ },
+ fadeout = {
+ [1] = love.graphics.newQuad(126, 0, 42, 19, 168, 19),
+ [2] = love.graphics.newQuad(84, 0, 42, 19, 168, 19),
+ frames = 2,
+ repeated = false
+ }
+}
diff --git a/config/maps.lua b/config/maps.lua
deleted file mode 100644
index 32e89a5..0000000
--- a/config/maps.lua
+++ /dev/null
@@ -1,9 +0,0 @@
-return {
- "default",
- "rill",
- "ribbit",
- "starstorm",
- "aiguillon",
- "sorona",
- "alpha abyss"
-}
diff --git a/config/maps/205.lua b/config/maps/205.lua
new file mode 100644
index 0000000..d0aa1f8
--- /dev/null
+++ b/config/maps/205.lua
@@ -0,0 +1,49 @@
+return
+{
+ name = "AI Station 205",
+ theme = "sorona.ogg",
+ portrait = 1, -- TODO: See `maps/ribbit`.
+ center = {x = 0, y = 0},
+ width = 360,
+ height = 240,
+ respawns = {
+ {x = -10, y = -55},
+ {x = 0, y = -55},
+ {x = 10, y = -55}
+ },
+ create = {
+ {
+ flames = true
+ },
+ {
+ x = -36,
+ y = -48,
+ platform = "205-top"
+ },
+ {
+ x = -36+9,
+ y = -48+11,
+ decoration = "assets/decorations/205-exhaust-top.png"
+ },
+ {
+ x = -122,
+ y = 10,
+ platform = "205-left"
+ },
+ {
+ x = -122+49,
+ y = 10+2,
+ decoration = "assets/decorations/205-exhaust-left.png"
+ },
+ {
+ x = 28,
+ y = 10,
+ platform = "205-right"
+ },
+ {
+ x = 28+29,
+ y = 10+2,
+ decoration = "assets/decorations/205-exhaust-right.png"
+ }
+ }
+}
diff --git a/config/maps/404.lua b/config/maps/404.lua
new file mode 100644
index 0000000..44b6c93
--- /dev/null
+++ b/config/maps/404.lua
@@ -0,0 +1,51 @@
+return
+{
+ name = "AI Station 404",
+ theme = "404.ogg",
+ portrait = 8, -- TODO: See `maps/ribbit`.
+ center = {x = 0, y = 0},
+ width = 360,
+ height = 240,
+ respawns = {
+ {x = -15, y = -80},
+ {x = -5, y = -80},
+ {x = 5, y = -80},
+ {x = 15, y = -80}
+ },
+ create = {
+ {
+ ratio = 0,
+ background = "assets/backgrounds/404.png",
+ },
+ {
+ x = -105,
+ y = -75,
+ platform = "404-top"
+ },
+ {
+ x = -123,
+ y = 25,
+ platform = "404-bottom"
+ },
+ {
+ x = 138,
+ y = -25,
+ platform = "404-small"
+ },
+ {
+ x = -180,
+ y = -25,
+ platform = "404-small"
+ },
+ {
+ x = 138,
+ y = 65,
+ platform = "404-small"
+ },
+ {
+ x = -180,
+ y = 65,
+ platform = "404-small"
+ }
+ }
+} \ No newline at end of file
diff --git a/config/maps/aiguillon.lua b/config/maps/aiguillon.lua
index 40d3928..c4f0ee3 100644
--- a/config/maps/aiguillon.lua
+++ b/config/maps/aiguillon.lua
@@ -1,58 +1,51 @@
-return {
- -- CENTER AND SIZE
- name = "aiguillon",
+return
+{
+ name = "Aiguillon",
theme = "aiguillon.ogg",
- center_x = 0,
- center_y = 10,
+ portrait = 5, -- TODO: See `maps/ribbit`.
+ center = {x = 0, y = 10},
width = 370,
height = 290,
- -- RESPAWN POINTS
respawns = {
- {x = 0, y = -80},
- {x = 0, y = -80},
- {x = 0, y = -80},
- {x = 0, y = -80},
+ {x = -15, y = -80},
+ {x = -5, y = -80},
+ {x = 5, y = -80},
+ {x = 15, y = -80},
},
- -- GRAPHICS
- clouds = false,
- background = "assets/backgrounds/aiguillon.png",
- platforms = {
+ create = {
+ {
+ ratio = 0,
+ background = "assets/backgrounds/aiguillon.png"
+ },
{
x = -108,
y = 22,
- shape = {1,0, 212,0, 212,12, 206,18, 14,18, 1,12},
- sprite = "assets/platforms/aiguillon-wide.png"
+ platform = "aiguillon-wide"
},
{
x = -46,
y = -19,
- shape = {1,0, 87,0, 87,18, 14,18, 1,12},
- sprite = "assets/platforms/aiguillon-middle.png"
+ platform = "aiguillon-middle"
},
{
x = -141,
y = -57,
- shape = {1,0, 50,0, 50,18, 5,18, 1,13},
- sprite = "assets/platforms/aiguillon-left-big.png"
+ platform = "aiguillon-left-big"
},
{
x = -132,
y = 84,
- shape = {1,0, 25,0, 25,18, 1,18},
- sprite = "assets/platforms/aiguillon-left-small.png"
+ platform = "aiguillon-left-small"
},
{
x = 77,
y = -57,
- shape = {1,0, 50,0, 50,12, 37,18, 1,18},
- sprite = "assets/platforms/aiguillon-right-big.png"
+ platform = "aiguillon-right-big"
},
{
x = 103,
y = 84,
- shape = {1,0, 25,0, 25,18, 1,18},
- sprite = "assets/platforms/aiguillon-right-small.png"
+ platform = "aiguillon-right-small"
}
},
- decorations = {}
}
diff --git a/config/maps/alpha abyss.lua b/config/maps/alpha abyss.lua
deleted file mode 100644
index 0dd2c61..0000000
--- a/config/maps/alpha abyss.lua
+++ /dev/null
@@ -1,75 +0,0 @@
--- The abyss of the alpha.
--- Animations
-local animations_small = {
- default = {
- frames = 20,
- repeated = true
- }
-}
-local animations_big = {
- default = {
- frames = 20,
- repeated = true
- }
-}
-for i=1,10 do
- local a = love.graphics.newQuad(i*118-118, 0, 118,51, 1180,51)
- animations_big.default[i*2-1] = a
- animations_big.default[i*2] = a
- local a = love.graphics.newQuad(i*60-60, 0, 60,20, 600,20)
- animations_small.default[i*2-1] = a
- animations_small.default[i*2] = a
-end
--- Map data
-return {
- -- GENERAL
- name = "alpha abyss",
- theme = "alpha.ogg",
- center_x = 0,
- center_y = -80,
- width = 360,
- height = 240,
- -- RESPAWN POINTS
- respawns = {
- {x = -30, y = 0},
- {x = 30, y = 0},
- {x = 0, y = 0},
- {x = -120, y = -50},
- {x = 120, y = -50},
- {x = 0, y = -75}
- },
- -- GRAPHICS
- clouds = false,
- background = "assets/backgrounds/alpha-1.png",
- platforms = {
- {
- x = -60,
- y = 0,
- shape = {0,0, 117,0, 101,50, 16,50},
- sprite = "assets/platforms/alpha-big.png",
- animations = animations_big
- },
- {
- x = -145,
- y = -50,
- shape = {0,0, 59,0, 59,19, 0,19},
- sprite = "assets/platforms/alpha-small.png",
- animations = animations_small
- },
- {
- x = 85,
- y = -50,
- shape = {0,0, 59,0, 59,19, 0,19},
- sprite = "assets/platforms/alpha-small.png",
- animations = animations_small
- },
- {
- x = -30,
- y = -80,
- shape = {0,0, 59,0, 59,19, 0,19},
- sprite = "assets/platforms/alpha-small.png",
- animations = animations_small
- }
- },
- decorations = {}
-}
diff --git a/config/maps/alpha.lua b/config/maps/alpha.lua
new file mode 100644
index 0000000..795b6cf
--- /dev/null
+++ b/config/maps/alpha.lua
@@ -0,0 +1,43 @@
+return
+{
+ name = "Alpha Abyss",
+ theme = "alpha.ogg",
+ portrait = 7, -- TODO: See `maps/ribbit`.
+ center = {x = 0, y = -80},
+ width = 360,
+ height = 240,
+ respawns = {
+ {x = -30, y = 0},
+ {x = 30, y = 0},
+ {x = 0, y = 0},
+ {x = -120, y = -50},
+ {x = 120, y = -50},
+ {x = 0, y = -75}
+ },
+ create = {
+ {
+ ratio = 0,
+ background = "assets/backgrounds/alpha.png",
+ },
+ {
+ x = -60,
+ y = 0,
+ platform = "alpha-big",
+ },
+ {
+ x = -145,
+ y = -50,
+ platform = "alpha-small",
+ },
+ {
+ x = 85,
+ y = -50,
+ platform = "alpha-small",
+ },
+ {
+ x = -30,
+ y = -80,
+ platform = "alpha-small",
+ }
+ },
+}
diff --git a/config/maps/default.lua b/config/maps/default.lua
index 05b8dc9..22c03f6 100644
--- a/config/maps/default.lua
+++ b/config/maps/default.lua
@@ -1,47 +1,46 @@
--- Default map from original roflnauts
-return {
- -- GENERAL
+return
+{
name = "default",
theme = "default.ogg",
- center_x = 0,
- center_y = 0,
+ portrait = 1, -- TODO: See `maps/ribbit`.
+ center = {x = 0, y = 0},
width = 360,
height = 240,
- -- RESPAWN POINTS
respawns = {
{x = -15, y = -80},
{x = -5, y = -80},
{x = 5, y = -80},
{x = 15, y = -80}
},
- -- GRAPHICS
- clouds = true,
- background = "assets/backgrounds/default.png",
- platforms = {
+ create = {
+ {
+ clouds = "assets/clouds.png",
+ animations = "clouds-default",
+ count = 8,
+ },
+ {
+ ratio = 0,
+ background = "assets/backgrounds/default.png"
+ },
{
x = -91,
y = 0,
- shape = {0,1, 180,1, 180,10, 95,76, 86,76, 0,10},
- sprite = "assets/platforms/default-big.png"
+ platform = "default-big"
},
{
x = 114,
y = 50,
- shape = {0,1, 51,1, 51,18, 0,18},
- sprite = "assets/platforms/default-side.png"
+ platform = "default-side"
},
{
x = -166,
y = 50,
- shape = {0,1, 51,1, 51,18, 0,18},
- sprite = "assets/platforms/default-side.png"
+ platform = "default-side"
},
{
x = -17,
y = -50,
- shape = {0,1, 33,1, 33,14, 0,14},
- sprite = "assets/platforms/default-top.png"
+ platform = "default-top"
}
- },
- decorations = {}
+ }
}
diff --git a/config/maps/ribbit.lua b/config/maps/ribbit.lua
index c3f5c78..08683ac 100644
--- a/config/maps/ribbit.lua
+++ b/config/maps/ribbit.lua
@@ -1,46 +1,41 @@
-return {
- -- GENERAL
- name = "ribbit",
+return
+{
+ name = "Ribbit IV",
theme = "ribbit.ogg",
- center_x = 0,
- center_y = 50,
+ portrait = 3, -- TODO: Either separate portraits now or change `iconsList` and `menu/host`. See also both mentioned files.
+ center = {x = 0, y = 50},
width = 360,
height = 240,
- -- RESPAWN POINTS
respawns = {
{x = -15, y = -80},
{x = -5, y = -80},
{x = 5, y = -80},
{x = 15, y = -80}
},
- -- GRAPHICS
- clouds = false,
- background = "assets/backgrounds/ribbit.png",
- platforms = {
+ create = {
+ {
+ ratio = 0,
+ background = "assets/backgrounds/ribbit.png"
+ },
{
x = -154,
y = 10,
- shape = {1,12, 48,12, 48,32, 1,32},
- sprite = "assets/platforms/ribbit-left.png"
+ platform = "ribbit-left"
},
{
x = 67,
y = 7,
- shape = {36,14, 83,14, 83,29, 36,29},
- sprite = "assets/platforms/ribbit-right.png"
+ platform = "ribbit-right"
},
{
x = -70,
y = -5,
- shape = {0,3, 139,3, 134,24, 5,24},
- sprite = "assets/platforms/ribbit-top.png"
+ platform = "ribbit-top"
},
{
x = -54,
y = 63,
- shape = {0,3, 107,3, 75,44, 32,44},
- sprite = "assets/platforms/ribbit-bottom.png"
+ platform = "ribbit-bottom"
}
- },
- decorations = {}
-} \ No newline at end of file
+ }
+}
diff --git a/config/maps/rill.lua b/config/maps/rill.lua
index 83c02f2..b027923 100644
--- a/config/maps/rill.lua
+++ b/config/maps/rill.lua
@@ -1,73 +1,66 @@
-return {
- -- CENTER AND SIZE
- name = "rill",
+return
+{
+ name = "Rill",
theme = "rill.ogg",
- center_x = 0,
- center_y = 75,
+ portrait = 2, -- TODO: See `maps/ribbit`.
+ center = {x = 0, y = 75},
width = 400,
height = 260,
- -- RESPAWN POINTS
respawns = {
{x = -135, y = 10},
{x = -135, y = 10},
{x = 135, y = 10},
{x = 135, y = 10}
},
- -- GRAPHICS
- clouds = false,
- background = "assets/backgrounds/rill.png",
- platforms = {
+ create = {
+ {
+ ratio = 0,
+ background = "assets/backgrounds/rill.png"
+ },
{
x = -151,
y = 25,
- shape = {0,0, 55,0, 55,11, 0,11},
- sprite = "assets/platforms/rill-flat-left.png"
+ platform = "rill-flat-left"
},
{
x = 93,
y = 25,
- shape = {0,0, 55,0, 55,11, 0,11},
- sprite = "assets/platforms/rill-flat-right.png"
+ platform = "rill-flat-right"
},
{
x = -24,
y = 55,
- shape = {0,0, 48,0, 47,15, 1,15},
- sprite = "assets/platforms/rill-center.png"
+ platform = "rill-center"
},
{
x = -112,
y = 80,
- shape = {77,30, 17,0, 0,0, 0,7, 77,44},
- sprite = "assets/platforms/rill-slope-left.png"
+ platform = "rill-slope-left"
},
{
x = 35,
y = 80,
- shape = {0,30, 60,0, 77,0, 77,7, 0,44},
- sprite = "assets/platforms/rill-slope-right.png"
- }
- },
- decorations = {
+ platform = "rill-slope-right"
+ },
{
x = 98,
y = -20,
- sprite = "assets/decorations/rill-lollipop-big-purple.png"
+ decoration = "assets/decorations/rill-lollipop-big-purple.png"
},
{
x = 127,
y = 4,
- sprite = "assets/decorations/rill-lollipop-small-green.png"
+ decoration = "assets/decorations/rill-lollipop-small-green.png"
},
{
x = -152,
y = -20,
- sprite = "assets/decorations/rill-lollipop-big-orange.png"
+ decoration = "assets/decorations/rill-lollipop-big-orange.png"
},
{
x = -121,
y = 4,
- sprite = "assets/decorations/rill-lollipop-small-blue.png"
- },
+ decoration = "assets/decorations/rill-lollipop-small-blue.png"
+ }
}
}
diff --git a/config/maps/sorona.lua b/config/maps/sorona.lua
index 8ec4727..4cc87cd 100644
--- a/config/maps/sorona.lua
+++ b/config/maps/sorona.lua
@@ -1,53 +1,50 @@
--- Sorona, but with the worms and such.
-return {
- -- GENERAL
- name = "sorona",
+return
+{
+ name = "Sorona",
theme = "sorona.ogg",
- center_x = 0,
- center_y = 0,
+ portrait = 6, -- TODO: See `maps/ribbit`.
+ center = {x = 0, y = 0},
width = 360,
height = 240,
- -- RESPAWN POINTS
respawns = {
- {x = -98, y = -70},
- {x = 70, y = -70},
- {x = -30, y = -20},
- {x = -90, y = 40},
+ {x = -10, y = -20},
+ {x = 0, y = -20},
+ {x = 10, y = -20}
},
- -- GRAPHICS
- clouds = false,
- background = "assets/backgrounds/sorona.png",
- platforms = {
+ create = {
{
- x = -60,
- y = 0,
- shape = {0,1, 59,1, 59,17, 0,17},
- sprite = "assets/platforms/sorona-center.png"
+ ratio = 0,
+ background = "assets/backgrounds/sorona.png",
},
{
- x = -40,
- y = 55,
- shape = {3,0, 180,0, 180,20, 3,20},
- sprite = "assets/platforms/sorona-right-bottom.png"
+ x = -71,
+ y = 50,
+ platform = "sorona-wide"
},
{
- x = -120,
- y = 55,
- shape = {3,0, 62,0, 62,23, 3,23},
- sprite = "assets/platforms/sorona-left-bottom.png"
+ x = -84,
+ y = -5,
+ platform = "sorona-small"
},
{
- x = 0,
- y = -50,
- shape = {1,1, 140,1, 1,17, 140,17},
- sprite = "assets/platforms/sorona-right-top.png"
+ x = -50,
+ y = -4,
+ decoration = "assets/decorations/sorona-bridge-left.png"
},
{
- x = -150,
- y = -55,
- shape = {1,9, 106,9, 40,27, 1,27},
- sprite = "assets/platforms/sorona-left-top.png"
+ x = -14,
+ y = -4,
+ decoration = "assets/decorations/sorona-bridge-loop.png"
+ },
+ {
+ x = 14,
+ y = -4,
+ decoration = "assets/decorations/sorona-bridge-right.png"
+ },
+ {
+ x = 43,
+ y = -5,
+ platform = "sorona-small"
}
- },
- decorations = {}
+ }
}
diff --git a/config/maps/starstorm.lua b/config/maps/starstorm.lua
index 7f00633..b4fabcd 100644
--- a/config/maps/starstorm.lua
+++ b/config/maps/starstorm.lua
@@ -1,12 +1,11 @@
-return {
- -- CENTER AND SIZE
- name = "starstorm",
+return
+{
+ name = "Starstorm",
theme = "starstorm.ogg",
- center_x = 0,
- center_y = -20,
+ portrait = 4, -- TODO: See `maps/ribbit`.
+ center = {x = 0, y = -20},
width = 400,
height = 260,
- -- RESPAWN POINTS
respawns = {
{x = 100, y = 45},
{x = -100, y = 45},
@@ -15,79 +14,65 @@ return {
{x = -110, y = -70},
{x = 110, y = -70}
},
- -- GRAPHICS
- clouds = false,
- background = "assets/backgrounds/starstorm.png",
- platforms = {
+ create = {
+ {
+ ratio = 0,
+ background = "assets/backgrounds/starstorm.png"
+ },
{
x = -170,
y = -55,
- shape = {
- {0,1, 33,1, 39,6, 39,21, 31,21, 0,21},
- {40,6, 115,6, 115,14, 40,14}
- },
- sprite = "assets/platforms/starstorm-left-top.png"
+ platform = "starstorm-left-top"
},
{
x = -156,
y = -2,
- shape = {0,0, 109,0, 109,20, 0,20},
- sprite = "assets/platforms/starstorm-left-middle.png"
+ platform = "starstorm-left-middle"
},
{
x = -160,
y = 69,
- shape = {0,4, 8,4, 13,1, 102,1, 102,16, 19,16, 0,11},
- sprite = "assets/platforms/starstorm-left-bottom.png"
+ platform = "starstorm-left-bottom"
},
{
x = 52,
y = -55,
- shape = {
- {115,1, 82,1, 76,6, 76,21, 84,21, 115,21},
- {75,6, 0,6, 0,14, 75,14}
- },
- sprite = "assets/platforms/starstorm-right-top.png"
+ platform = "starstorm-right-top"
},
{
x = 44,
y = -2,
- shape = {109,0, 0,0, 0,20, 109,20},
- sprite = "assets/platforms/starstorm-right-middle.png"
+ platform = "starstorm-right-middle"
},
{
x = 55,
y = 69,
- shape = {102,4, 94,4, 89,1, 0,1, 0,16, 83,16, 102,11},
- sprite = "assets/platforms/starstorm-right-bottom.png"
+ platform = "starstorm-right-bottom"
},
{
x = -27,
y = 40,
- shape = {0,6, 53,6, 53,14, 0,14},
- sprite = "assets/platforms/starstorm-center.png"
- }
- },
- decorations = {
+ platform = "starstorm-center"
+ },
{
x = -166,
y = -37,
- sprite = "assets/decorations/starstorm-left-top.png"
+ decoration = "assets/decorations/starstorm-left-top.png"
},
{
x = -163,
y = 19,
- sprite = "assets/decorations/starstorm-left-bottom.png"
+ decoration = "assets/decorations/starstorm-left-bottom.png"
},
{
x = 119,
y = -37,
- sprite = "assets/decorations/starstorm-right-top.png"
+ decoration = "assets/decorations/starstorm-right-top.png"
},
{
- x = 52+77,
+ x = 129,
y = 19,
- sprite = "assets/decorations/starstorm-right-bottom.png"
+ decoration = "assets/decorations/starstorm-right-bottom.png"
}
}
}
diff --git a/config/menus/host.lua b/config/menus/host.lua
index a180736..c8ef4d8 100644
--- a/config/menus/host.lua
+++ b/config/menus/host.lua
@@ -6,37 +6,49 @@ local Selector = require "not.Selector"
local width, height = love.graphics.getWidth()/getScale(), love.graphics.getHeight()/getScale()
local bx = width/2-29
-local map_Selector = Selector(menu)
-
-require "iconsList"
-local icons, maps = getMapsIconsList()
-
if background == nil or not background:is(require "not.MenuBackground") then
background = require "not.MenuBackground"(menu)
end
+-- TODO: This is temporary solution for generating available maps list and portraits for them to pass to Selector. See also: `iconsList`.
+local icons, maps = {}, {}
+do
+ local files = love.filesystem.getDirectoryItems("config/maps")
+ for _,filename in pairs(files) do
+ local path = string.format("config/maps/%s", filename)
+ if love.filesystem.isFile(path) and filename ~= "readme.md" then
+ local map = love.filesystem.load(path)()
+ local i, name = map.portrait, map.name
+ map.filename = path
+ if i then
+ table.insert(icons, love.graphics.newQuad((i-1)*76, 0, 76, 37, 608, 37))
+ table.insert(maps, map)
+ end
+ end
+ end
+end
+
+local mapSelector = Selector(maps, nil, menu)
+
return {
background,
- map_Selector
- :setPosition(width/2, 40)
- :setSize(80, 42)
- :setMargin(0)
- :set("global", true)
- :set("first", true)
- :set("list", maps)
- :set("icons_i", love.graphics.newImage("assets/maps.png"))
- :set("icons_q", icons)
- :set("shape", "panorama")
- :init()
+ mapSelector
+ :setPosition(width/2-40, 40)
+ :set("shape", Selector.SHAPE_PANORAMA)
+ :set("icons_quads", icons)
+ :set("icons_atlas", love.graphics.newImage("assets/maps.png"))
+ :set("getText", function (self)
+ return self:getSelected().name
+ end)
,
Button(menu)
:setText("Next")
:setPosition(bx,101)
:set("isEnabled", function ()
- return map_Selector:isLocked()
+ return mapSelector:getLocked()
end)
:set("active", function (self)
- MAP = map_Selector:getFullSelection(true)[1][1] -- please, don't kill me for this, kek
+ MAP = mapSelector:getSelected()
self.parent:open("select")
end)
,
diff --git a/config/menus/select.lua b/config/menus/select.lua
index 23f9374..1e57960 100644
--- a/config/menus/select.lua
+++ b/config/menus/select.lua
@@ -3,46 +3,75 @@ local menu, background = ...
local Button = require "not.Button"
local Selector = require "not.Selector"
local Element = require "not.Element"
+local Group = require "not.Group"
local width, height = love.graphics.getWidth()/getScale(), love.graphics.getHeight()/getScale()
local bx = width/2-29
-local naut_Selector = Selector(menu)
local start_Button = Button(menu)
-require "iconsList"
-local nautsIcons, nautsList = getNautsIconsList()
-
if background == nil or not background:is(require "not.MenuBackground") then
background = require "not.MenuBackground"(menu)
end
+-- TODO: Temporary group for naut selectors. This isn't production code at any means!
+local group, get
+do
+ local atlas = love.graphics.newImage("assets/portraits.png")
+ local nauts = require("config.nauts")
+ local icons = {}
+ for i=0,#nauts-1 do
+ table.insert(icons, love.graphics.newQuad(i*28, 0, 28, 27, 1008, 27))
+ end
+
+ group = Group(menu)
+
+ local
+ function attack (self)
+ if not self.lock then
+ if self.index == 1 then
+ return
+ end
+ if self.index == 2 then
+ self.index = self:rollRandom({1, 2})
+ end
+ if self:isUnique() then
+ self.lock = true
+ end
+ end
+ end
+
+ for i,_ in pairs(Controller.getSets()) do
+ group:addChild(Selector(nauts, group, menu))
+ :set("icons_atlas", atlas)
+ :set("icons_quads", icons)
+ :set("attack", attack)
+ end
+
+ group:set("margin", 16)
+ local gw, gh = group:getSize()
+ group:setPosition((width - gw)/2, 55)
+
+ function get ()
+ local selection = group:callEach("getLocked")
+ for i,naut in ipairs(selection) do
+ selection[i] = {naut, Controller.getSets()[i]}
+ end
+ return selection
+ end
+end
+
return {
background,
- naut_Selector
- :setPosition(width/2,60)
- :setMargin(8)
- :setSize(32, 32)
- :set("list", nautsList)
- :set("global", false)
- :set("icons_i", love.graphics.newImage("assets/portraits.png"))
- :set("icons_q", nautsIcons)
- :init()
- ,
+ group,
start_Button
:setText("Force start")
:setPosition(bx,134)
:set("isEnabled", function ()
- if #naut_Selector:getFullSelection(false) > 1 then
- return true
- end
- return false
+ return #get() > 1
end)
:set("active", function (self)
- local nauts = naut_Selector:getFullSelection(false)
- if #nauts > 1 then
- sceneManager:changeScene(World(MAP, nauts))
- end
+ sceneManager:changeScene(World(MAP, get()))
end)
,
Button(menu)
@@ -67,8 +96,7 @@ return {
end
end)
:set("update", function (self, dt)
- local total = #naut_Selector:getFullSelection(false)
- if total > 1 then
+ if #get() > 1 then
self.the_final_countdown = self.the_final_countdown - dt
else
self.the_final_countdown = 9
diff --git a/config/platforms/205-left.lua b/config/platforms/205-left.lua
new file mode 100644
index 0000000..b04a17f
--- /dev/null
+++ b/config/platforms/205-left.lua
@@ -0,0 +1,8 @@
+return
+{
+ sprite = "assets/platforms/205-left.png",
+ shape = {
+ {8,0, 54,0, 54,31, 8,27},
+ {55,29, 94,29, 92,36, 55,36}
+ }
+}
diff --git a/config/platforms/205-right.lua b/config/platforms/205-right.lua
new file mode 100644
index 0000000..c5bcca6
--- /dev/null
+++ b/config/platforms/205-right.lua
@@ -0,0 +1,8 @@
+return
+{
+ sprite = "assets/platforms/205-right.png",
+ shape = {
+ {86,0, 40,0, 40,31, 86,27},
+ {39,29, 0,29, 2,36, 39,36}
+ }
+}
diff --git a/config/platforms/205-top.lua b/config/platforms/205-top.lua
new file mode 100644
index 0000000..8470ed6
--- /dev/null
+++ b/config/platforms/205-top.lua
@@ -0,0 +1,5 @@
+return
+{
+ sprite = "assets/platforms/205-top.png",
+ shape = {0,1, 72,1, 70,8, 2,8}
+}
diff --git a/config/platforms/404-bottom.lua b/config/platforms/404-bottom.lua
new file mode 100644
index 0000000..4e59a98
--- /dev/null
+++ b/config/platforms/404-bottom.lua
@@ -0,0 +1,10 @@
+return
+{
+ sprite = "assets/platforms/404-bottom.png",
+ shape = {
+ {0,0, 69,0, 87,17, 87,28, 0,28},
+ {161,17, 178,0, 247,0, 247,28, 161,28},
+ {33,28, 214,28, 214,57, 33,57},
+ {87,17, 161,17, 168,28, 87,28}
+ }
+}
diff --git a/config/platforms/404-small.lua b/config/platforms/404-small.lua
new file mode 100644
index 0000000..36b8a1d
--- /dev/null
+++ b/config/platforms/404-small.lua
@@ -0,0 +1,5 @@
+return
+{
+ sprite = "assets/platforms/404-small.png",
+ shape = {0,0, 43,0, 43,8, 0,8}
+}
diff --git a/config/platforms/404-top.lua b/config/platforms/404-top.lua
new file mode 100644
index 0000000..3d3ba2b
--- /dev/null
+++ b/config/platforms/404-top.lua
@@ -0,0 +1,9 @@
+return
+{
+ sprite = "assets/platforms/404-top.png",
+ shape = {
+ {45,0, 166,0, 166,13, 45,13},
+ {23,14, 188,14, 188,26, 23,26},
+ {0,27, 211,27, 211,45, 0,45}
+ }
+}
diff --git a/config/platforms/aiguillon-left-big.lua b/config/platforms/aiguillon-left-big.lua
new file mode 100644
index 0000000..41ae46d
--- /dev/null
+++ b/config/platforms/aiguillon-left-big.lua
@@ -0,0 +1,5 @@
+return
+{
+ sprite = "assets/platforms/aiguillon-left-big.png",
+ shape = {1,0, 50,0, 50,18, 5,18, 1,13}
+}
diff --git a/config/platforms/aiguillon-left-small.lua b/config/platforms/aiguillon-left-small.lua
new file mode 100644
index 0000000..7495374
--- /dev/null
+++ b/config/platforms/aiguillon-left-small.lua
@@ -0,0 +1,5 @@
+return
+{
+ sprite = "assets/platforms/aiguillon-left-small.png",
+ shape = {1,0, 25,0, 25,18, 1,18}
+}
diff --git a/config/platforms/aiguillon-middle.lua b/config/platforms/aiguillon-middle.lua
new file mode 100644
index 0000000..9107dcd
--- /dev/null
+++ b/config/platforms/aiguillon-middle.lua
@@ -0,0 +1,5 @@
+return
+{
+ sprite = "assets/platforms/aiguillon-middle.png",
+ shape = {1,0, 87,0, 87,18, 14,18, 1,12}
+}
diff --git a/config/platforms/aiguillon-right-big.lua b/config/platforms/aiguillon-right-big.lua
new file mode 100644
index 0000000..e5d525b
--- /dev/null
+++ b/config/platforms/aiguillon-right-big.lua
@@ -0,0 +1,5 @@
+return
+{
+ sprite = "assets/platforms/aiguillon-right-big.png",
+ shape = {1,0, 50,0, 50,12, 37,18, 1,18}
+}
diff --git a/config/platforms/aiguillon-right-small.lua b/config/platforms/aiguillon-right-small.lua
new file mode 100644
index 0000000..b0baf3d
--- /dev/null
+++ b/config/platforms/aiguillon-right-small.lua
@@ -0,0 +1,5 @@
+return
+{
+ sprite = "assets/platforms/aiguillon-right-small.png",
+ shape = {1,0, 25,0, 25,18, 1,18}
+}
diff --git a/config/platforms/aiguillon-wide.lua b/config/platforms/aiguillon-wide.lua
new file mode 100644
index 0000000..7b653a2
--- /dev/null
+++ b/config/platforms/aiguillon-wide.lua
@@ -0,0 +1,5 @@
+return
+{
+ sprite = "assets/platforms/aiguillon-wide.png",
+ shape = {1,0, 212,0, 212,12, 206,18, 14,18, 1,12}
+}
diff --git a/config/platforms/alpha-big.lua b/config/platforms/alpha-big.lua
new file mode 100644
index 0000000..a0cfb32
--- /dev/null
+++ b/config/platforms/alpha-big.lua
@@ -0,0 +1,31 @@
+return
+{
+ sprite = "assets/platforms/alpha-big.png",
+ shape = {0,0, 117,0, 101,50, 16,50},
+ animations = {
+ default = {
+ [1] = love.graphics.newQuad(0, 0, 118, 51, 1180, 51),
+ [2] = love.graphics.newQuad(0, 0, 118, 51, 1180, 51),
+ [3] = love.graphics.newQuad(118, 0, 118, 51, 1180, 51),
+ [4] = love.graphics.newQuad(118, 0, 118, 51, 1180, 51),
+ [5] = love.graphics.newQuad(236, 0, 118, 51, 1180, 51),
+ [6] = love.graphics.newQuad(236, 0, 118, 51, 1180, 51),
+ [7] = love.graphics.newQuad(354, 0, 118, 51, 1180, 51),
+ [8] = love.graphics.newQuad(354, 0, 118, 51, 1180, 51),
+ [9] = love.graphics.newQuad(472, 0, 118, 51, 1180, 51),
+ [10] = love.graphics.newQuad(472, 0, 118, 51, 1180, 51),
+ [11] = love.graphics.newQuad(590, 0, 118, 51, 1180, 51),
+ [12] = love.graphics.newQuad(590, 0, 118, 51, 1180, 51),
+ [13] = love.graphics.newQuad(708, 0, 118, 51, 1180, 51),
+ [14] = love.graphics.newQuad(708, 0, 118, 51, 1180, 51),
+ [15] = love.graphics.newQuad(826, 0, 118, 51, 1180, 51),
+ [16] = love.graphics.newQuad(826, 0, 118, 51, 1180, 51),
+ [17] = love.graphics.newQuad(944, 0, 118, 51, 1180, 51),
+ [18] = love.graphics.newQuad(944, 0, 118, 51, 1180, 51),
+ [19] = love.graphics.newQuad(1062, 0, 118, 51, 1180, 51),
+ [20] = love.graphics.newQuad(1062, 0, 118, 51, 1180, 51),
+ frames = 20,
+ repeated = true
+ }
+ }
+}
diff --git a/config/platforms/alpha-small.lua b/config/platforms/alpha-small.lua
new file mode 100644
index 0000000..3c72af9
--- /dev/null
+++ b/config/platforms/alpha-small.lua
@@ -0,0 +1,31 @@
+return
+{
+ sprite = "assets/platforms/alpha-small.png",
+ shape = {0,0, 59,0, 59,19, 0,19},
+ animations = {
+ default = {
+ [1] = love.graphics.newQuad(0, 0, 60, 20, 600, 20),
+ [2] = love.graphics.newQuad(0, 0, 60, 20, 600, 20),
+ [3] = love.graphics.newQuad(60, 0, 60, 20, 600, 20),
+ [4] = love.graphics.newQuad(60, 0, 60, 20, 600, 20),
+ [5] = love.graphics.newQuad(120, 0, 60, 20, 600, 20),
+ [6] = love.graphics.newQuad(120, 0, 60, 20, 600, 20),
+ [7] = love.graphics.newQuad(180, 0, 60, 20, 600, 20),
+ [8] = love.graphics.newQuad(180, 0, 60, 20, 600, 20),
+ [9] = love.graphics.newQuad(240, 0, 60, 20, 600, 20),
+ [10] = love.graphics.newQuad(240, 0, 60, 20, 600, 20),
+ [11] = love.graphics.newQuad(300, 0, 60, 20, 600, 20),
+ [12] = love.graphics.newQuad(300, 0, 60, 20, 600, 20),
+ [13] = love.graphics.newQuad(360, 0, 60, 20, 600, 20),
+ [14] = love.graphics.newQuad(360, 0, 60, 20, 600, 20),
+ [15] = love.graphics.newQuad(420, 0, 60, 20, 600, 20),
+ [16] = love.graphics.newQuad(420, 0, 60, 20, 600, 20),
+ [17] = love.graphics.newQuad(480, 0, 60, 20, 600, 20),
+ [18] = love.graphics.newQuad(480, 0, 60, 20, 600, 20),
+ [19] = love.graphics.newQuad(540, 0, 60, 20, 600, 20),
+ [20] = love.graphics.newQuad(540, 0, 60, 20, 600, 20),
+ frames = 20,
+ repeated = true
+ }
+ }
+}
diff --git a/config/platforms/default-big.lua b/config/platforms/default-big.lua
new file mode 100644
index 0000000..85893b3
--- /dev/null
+++ b/config/platforms/default-big.lua
@@ -0,0 +1,5 @@
+return
+{
+ sprite = "assets/platforms/default-big.png",
+ shape = {0,1, 180,1, 180,10, 95,76, 86,76, 0,10}
+}
diff --git a/config/platforms/default-side.lua b/config/platforms/default-side.lua
new file mode 100644
index 0000000..77b55bd
--- /dev/null
+++ b/config/platforms/default-side.lua
@@ -0,0 +1,5 @@
+return
+{
+ sprite = "assets/platforms/default-side.png",
+ shape = {0,1, 51,1, 51,18, 0,18}
+}
diff --git a/config/platforms/default-top.lua b/config/platforms/default-top.lua
new file mode 100644
index 0000000..dbe4cbe
--- /dev/null
+++ b/config/platforms/default-top.lua
@@ -0,0 +1,5 @@
+return
+{
+ sprite = "assets/platforms/default-top.png",
+ shape = {0,1, 33,1, 33,14, 0,14}
+}
diff --git a/config/platforms/ribbit-bottom.lua b/config/platforms/ribbit-bottom.lua
new file mode 100644
index 0000000..38e4d95
--- /dev/null
+++ b/config/platforms/ribbit-bottom.lua
@@ -0,0 +1,5 @@
+return
+{
+ sprite = "assets/platforms/ribbit-bottom.png",
+ shape = {0,3, 107,3, 75,44, 32,44},
+}
diff --git a/config/platforms/ribbit-left.lua b/config/platforms/ribbit-left.lua
new file mode 100644
index 0000000..69039dd
--- /dev/null
+++ b/config/platforms/ribbit-left.lua
@@ -0,0 +1,5 @@
+return
+{
+ sprite = "assets/platforms/ribbit-left.png",
+ shape = {1,12, 48,12, 48,32, 1,32},
+}
diff --git a/config/platforms/ribbit-right.lua b/config/platforms/ribbit-right.lua
new file mode 100644
index 0000000..1aa6e9e
--- /dev/null
+++ b/config/platforms/ribbit-right.lua
@@ -0,0 +1,5 @@
+return
+{
+ sprite = "assets/platforms/ribbit-right.png",
+ shape = {36,14, 83,14, 83,29, 36,29},
+}
diff --git a/config/platforms/ribbit-top.lua b/config/platforms/ribbit-top.lua
new file mode 100644
index 0000000..1493114
--- /dev/null
+++ b/config/platforms/ribbit-top.lua
@@ -0,0 +1,5 @@
+return
+{
+ sprite = "assets/platforms/ribbit-top.png",
+ shape = {0,3, 139,3, 134,24, 5,24},
+}
diff --git a/config/platforms/rill-center.lua b/config/platforms/rill-center.lua
new file mode 100644
index 0000000..72104b3
--- /dev/null
+++ b/config/platforms/rill-center.lua
@@ -0,0 +1,5 @@
+return
+{
+ sprite = "assets/platforms/rill-center.png",
+ shape = {0,0, 48,0, 47,15, 1,15}
+}
diff --git a/config/platforms/rill-flat-left.lua b/config/platforms/rill-flat-left.lua
new file mode 100644
index 0000000..f1fdd5e
--- /dev/null
+++ b/config/platforms/rill-flat-left.lua
@@ -0,0 +1,5 @@
+return
+{
+ sprite = "assets/platforms/rill-flat-left.png",
+ shape = {0,0, 55,0, 55,11, 0,11}
+}
diff --git a/config/platforms/rill-flat-right.lua b/config/platforms/rill-flat-right.lua
new file mode 100644
index 0000000..8bf70a9
--- /dev/null
+++ b/config/platforms/rill-flat-right.lua
@@ -0,0 +1,5 @@
+return
+{
+ sprite = "assets/platforms/rill-flat-right.png",
+ shape = {0,0, 55,0, 55,11, 0,11}
+}
diff --git a/config/platforms/rill-slope-left.lua b/config/platforms/rill-slope-left.lua
new file mode 100644
index 0000000..49052b4
--- /dev/null
+++ b/config/platforms/rill-slope-left.lua
@@ -0,0 +1,5 @@
+return
+{
+ sprite = "assets/platforms/rill-slope-left.png",
+ shape = {77,30, 17,0, 0,0, 0,7, 77,44}
+}
diff --git a/config/platforms/rill-slope-right.lua b/config/platforms/rill-slope-right.lua
new file mode 100644
index 0000000..3eca829
--- /dev/null
+++ b/config/platforms/rill-slope-right.lua
@@ -0,0 +1,5 @@
+return
+{
+ sprite = "assets/platforms/rill-slope-right.png",
+ shape = {0,30, 60,0, 77,0, 77,7, 0,44}
+}
diff --git a/config/platforms/sorona-button.lua b/config/platforms/sorona-button.lua
new file mode 100644
index 0000000..2ca3bae
--- /dev/null
+++ b/config/platforms/sorona-button.lua
@@ -0,0 +1,5 @@
+return
+{
+ sprite = "assets/platforms/sorona-button.png",
+ shape = {0,1, 59,1, 59,17, 0,17}
+}
diff --git a/config/platforms/sorona-medium.lua b/config/platforms/sorona-medium.lua
new file mode 100644
index 0000000..50eaeeb
--- /dev/null
+++ b/config/platforms/sorona-medium.lua
@@ -0,0 +1,5 @@
+return
+{
+ sprite = "assets/platforms/sorona-medium.png",
+ shape = {3,1, 61,1, 61,23, 3,23}
+}
diff --git a/config/platforms/sorona-small.lua b/config/platforms/sorona-small.lua
new file mode 100644
index 0000000..1a01c69
--- /dev/null
+++ b/config/platforms/sorona-small.lua
@@ -0,0 +1,5 @@
+return
+{
+ sprite = "assets/platforms/sorona-small.png",
+ shape = {3,1, 39,1, 39,18, 3,18}
+}
diff --git a/config/platforms/sorona-spiked.lua b/config/platforms/sorona-spiked.lua
new file mode 100644
index 0000000..00d975b
--- /dev/null
+++ b/config/platforms/sorona-spiked.lua
@@ -0,0 +1,5 @@
+return
+{
+ sprite = "assets/platforms/sorona-spiked.png",
+ shape = {1,9, 106,9, 40,27, 1,27}
+}
diff --git a/config/platforms/sorona-wide.lua b/config/platforms/sorona-wide.lua
new file mode 100644
index 0000000..d0916c9
--- /dev/null
+++ b/config/platforms/sorona-wide.lua
@@ -0,0 +1,5 @@
+return
+{
+ sprite = "assets/platforms/sorona-wide.png",
+ shape = {1,1, 140,1, 1,17, 140,17}
+}
diff --git a/config/platforms/starstorm-center.lua b/config/platforms/starstorm-center.lua
new file mode 100644
index 0000000..77af4f8
--- /dev/null
+++ b/config/platforms/starstorm-center.lua
@@ -0,0 +1,5 @@
+return
+{
+ sprite = "assets/platforms/starstorm-center.png",
+ shape = {0,6, 53,6, 53,14, 0,14}
+}
diff --git a/config/platforms/starstorm-left-bottom.lua b/config/platforms/starstorm-left-bottom.lua
new file mode 100644
index 0000000..f40185b
--- /dev/null
+++ b/config/platforms/starstorm-left-bottom.lua
@@ -0,0 +1,5 @@
+return
+{
+ sprite = "assets/platforms/starstorm-left-bottom.png",
+ shape = {0,4, 8,4, 13,1, 102,1, 102,16, 19,16, 0,11},
+}
diff --git a/config/platforms/starstorm-left-middle.lua b/config/platforms/starstorm-left-middle.lua
new file mode 100644
index 0000000..0804309
--- /dev/null
+++ b/config/platforms/starstorm-left-middle.lua
@@ -0,0 +1,5 @@
+return
+{
+ sprite = "assets/platforms/starstorm-left-middle.png",
+ shape = {0,0, 109,0, 109,20, 0,20}
+}
diff --git a/config/platforms/starstorm-left-top.lua b/config/platforms/starstorm-left-top.lua
new file mode 100644
index 0000000..9cc1944
--- /dev/null
+++ b/config/platforms/starstorm-left-top.lua
@@ -0,0 +1,8 @@
+return
+{
+ sprite = "assets/platforms/starstorm-left-top.png",
+ shape = {
+ {0,1, 33,1, 39,6, 39,21, 31,21, 0,21},
+ {40,6, 115,6, 115,14, 40,14}
+ }
+}
diff --git a/config/platforms/starstorm-right-bottom.lua b/config/platforms/starstorm-right-bottom.lua
new file mode 100644
index 0000000..16462cb
--- /dev/null
+++ b/config/platforms/starstorm-right-bottom.lua
@@ -0,0 +1,5 @@
+return
+{
+ sprite = "assets/platforms/starstorm-right-bottom.png",
+ shape = {102,4, 94,4, 89,1, 0,1, 0,16, 83,16, 102,11}
+}
diff --git a/config/platforms/starstorm-right-middle.lua b/config/platforms/starstorm-right-middle.lua
new file mode 100644
index 0000000..af9b712
--- /dev/null
+++ b/config/platforms/starstorm-right-middle.lua
@@ -0,0 +1,5 @@
+return
+{
+ sprite = "assets/platforms/starstorm-right-middle.png",
+ shape = {109,0, 0,0, 0,20, 109,20}
+}
diff --git a/config/platforms/starstorm-right-top.lua b/config/platforms/starstorm-right-top.lua
new file mode 100644
index 0000000..4470754
--- /dev/null
+++ b/config/platforms/starstorm-right-top.lua
@@ -0,0 +1,8 @@
+return
+{
+ sprite = "assets/platforms/starstorm-right-top.png",
+ shape = {
+ {115,1, 82,1, 76,6, 76,21, 84,21, 115,21},
+ {75,6, 0,6, 0,14, 75,14}
+ }
+}