feat: rings and boxes
This commit is contained in:
parent
8bce75aad9
commit
62d9684944
10 changed files with 290 additions and 3 deletions
BIN
sonic-radiance.love/assets/sfx/pop.wav
Normal file
BIN
sonic-radiance.love/assets/sfx/pop.wav
Normal file
Binary file not shown.
BIN
sonic-radiance.love/assets/sfx/ring.wav
Normal file
BIN
sonic-radiance.love/assets/sfx/ring.wav
Normal file
Binary file not shown.
BIN
sonic-radiance.love/assets/sprites/charset/item1.png
Normal file
BIN
sonic-radiance.love/assets/sprites/charset/item1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.2 KiB |
|
@ -8,8 +8,8 @@ return {
|
|||
height = 40,
|
||||
tilewidth = 16,
|
||||
tileheight = 16,
|
||||
nextlayerid = 7,
|
||||
nextobjectid = 13,
|
||||
nextlayerid = 10,
|
||||
nextobjectid = 25,
|
||||
properties = {},
|
||||
tilesets = {
|
||||
{
|
||||
|
@ -442,6 +442,181 @@ return {
|
|||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
}
|
||||
},
|
||||
{
|
||||
type = "objectgroup",
|
||||
draworder = "topdown",
|
||||
id = 7,
|
||||
name = "ring",
|
||||
visible = true,
|
||||
opacity = 1,
|
||||
offsetx = 0,
|
||||
offsety = 0,
|
||||
properties = {},
|
||||
objects = {
|
||||
{
|
||||
id = 13,
|
||||
name = "",
|
||||
type = "",
|
||||
shape = "rectangle",
|
||||
x = 112,
|
||||
y = 144,
|
||||
width = 16,
|
||||
height = 16,
|
||||
rotation = 0,
|
||||
visible = true,
|
||||
properties = {}
|
||||
},
|
||||
{
|
||||
id = 14,
|
||||
name = "",
|
||||
type = "",
|
||||
shape = "rectangle",
|
||||
x = 112,
|
||||
y = 176,
|
||||
width = 16,
|
||||
height = 16,
|
||||
rotation = 0,
|
||||
visible = true,
|
||||
properties = {}
|
||||
},
|
||||
{
|
||||
id = 15,
|
||||
name = "",
|
||||
type = "",
|
||||
shape = "rectangle",
|
||||
x = 112,
|
||||
y = 208,
|
||||
width = 16,
|
||||
height = 16,
|
||||
rotation = 0,
|
||||
visible = true,
|
||||
properties = {}
|
||||
},
|
||||
{
|
||||
id = 16,
|
||||
name = "",
|
||||
type = "",
|
||||
shape = "rectangle",
|
||||
x = 112,
|
||||
y = 240,
|
||||
width = 16,
|
||||
height = 16,
|
||||
rotation = 0,
|
||||
visible = true,
|
||||
properties = {}
|
||||
},
|
||||
{
|
||||
id = 17,
|
||||
name = "",
|
||||
type = "",
|
||||
shape = "rectangle",
|
||||
x = 112,
|
||||
y = 272,
|
||||
width = 16,
|
||||
height = 16,
|
||||
rotation = 0,
|
||||
visible = true,
|
||||
properties = {}
|
||||
},
|
||||
{
|
||||
id = 18,
|
||||
name = "",
|
||||
type = "",
|
||||
shape = "rectangle",
|
||||
x = 288,
|
||||
y = 272,
|
||||
width = 16,
|
||||
height = 16,
|
||||
rotation = 0,
|
||||
visible = true,
|
||||
properties = {}
|
||||
},
|
||||
{
|
||||
id = 19,
|
||||
name = "",
|
||||
type = "",
|
||||
shape = "rectangle",
|
||||
x = 320,
|
||||
y = 272,
|
||||
width = 16,
|
||||
height = 16,
|
||||
rotation = 0,
|
||||
visible = true,
|
||||
properties = {}
|
||||
},
|
||||
{
|
||||
id = 20,
|
||||
name = "",
|
||||
type = "",
|
||||
shape = "rectangle",
|
||||
x = 352,
|
||||
y = 272,
|
||||
width = 16,
|
||||
height = 16,
|
||||
rotation = 0,
|
||||
visible = true,
|
||||
properties = {}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
type = "objectgroup",
|
||||
draworder = "topdown",
|
||||
id = 8,
|
||||
name = "itembox",
|
||||
visible = true,
|
||||
opacity = 1,
|
||||
offsetx = 0,
|
||||
offsety = 0,
|
||||
properties = {},
|
||||
objects = {
|
||||
{
|
||||
id = 24,
|
||||
name = "",
|
||||
type = "",
|
||||
shape = "rectangle",
|
||||
x = 48,
|
||||
y = 64,
|
||||
width = 16,
|
||||
height = 16,
|
||||
rotation = 0,
|
||||
visible = true,
|
||||
properties = {
|
||||
["category"] = "medicines",
|
||||
["item"] = "healthseed",
|
||||
["number"] = "5"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
type = "objectgroup",
|
||||
draworder = "topdown",
|
||||
id = 9,
|
||||
name = "ringbox",
|
||||
visible = true,
|
||||
opacity = 1,
|
||||
offsetx = 0,
|
||||
offsety = 0,
|
||||
properties = {},
|
||||
objects = {
|
||||
{
|
||||
id = 22,
|
||||
name = "",
|
||||
type = "",
|
||||
shape = "rectangle",
|
||||
x = 96,
|
||||
y = 64,
|
||||
width = 16,
|
||||
height = 16,
|
||||
rotation = 0,
|
||||
visible = true,
|
||||
properties = {
|
||||
["number"] = 500
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
type = "objectgroup",
|
||||
draworder = "topdown",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map version="1.4" tiledversion="1.4.3" orientation="orthogonal" renderorder="right-down" width="30" height="40" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="13">
|
||||
<map version="1.4" tiledversion="1.4.3" orientation="orthogonal" renderorder="right-down" width="30" height="40" tilewidth="16" tileheight="16" infinite="0" nextlayerid="10" nextobjectid="25">
|
||||
<editorsettings>
|
||||
<export target="test.lua" format="lua"/>
|
||||
</editorsettings>
|
||||
|
@ -92,6 +92,32 @@
|
|||
0,0,0,0,0,0,0,0,0,0,23,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
</data>
|
||||
</layer>
|
||||
<objectgroup id="7" name="ring">
|
||||
<object id="13" x="112" y="144" width="16" height="16"/>
|
||||
<object id="14" x="112" y="176" width="16" height="16"/>
|
||||
<object id="15" x="112" y="208" width="16" height="16"/>
|
||||
<object id="16" x="112" y="240" width="16" height="16"/>
|
||||
<object id="17" x="112" y="272" width="16" height="16"/>
|
||||
<object id="18" x="288" y="272" width="16" height="16"/>
|
||||
<object id="19" x="320" y="272" width="16" height="16"/>
|
||||
<object id="20" x="352" y="272" width="16" height="16"/>
|
||||
</objectgroup>
|
||||
<objectgroup id="8" name="itembox">
|
||||
<object id="24" x="48" y="64" width="16" height="16">
|
||||
<properties>
|
||||
<property name="category" value="medicines"/>
|
||||
<property name="item" value="healthseed"/>
|
||||
<property name="number" value="5"/>
|
||||
</properties>
|
||||
</object>
|
||||
</objectgroup>
|
||||
<objectgroup id="9" name="ringbox">
|
||||
<object id="22" x="96" y="64" width="16" height="16">
|
||||
<properties>
|
||||
<property name="number" type="int" value="500"/>
|
||||
</properties>
|
||||
</object>
|
||||
</objectgroup>
|
||||
<objectgroup id="6" name="gizmo">
|
||||
<object id="4" x="176" y="112" width="16" height="16">
|
||||
<properties>
|
||||
|
|
|
@ -4,10 +4,16 @@ local Obj = {}
|
|||
local cwd = (...):gsub('%.init$', '') .. "."
|
||||
Obj.Player = require(cwd .. "player")
|
||||
Obj.Gizmo = require(cwd .. "gizmo")
|
||||
Obj.Ring = require(cwd .. "ring")
|
||||
Obj.ItemBox = require(cwd .. "itembox")
|
||||
Obj.RingBox = require(cwd .. "ringbox")
|
||||
|
||||
Obj.index = {}
|
||||
Obj.index["player"] = Obj.Player
|
||||
Obj.index["gizmo"] = Obj.Gizmo
|
||||
Obj.index["ring"] = Obj.Ring
|
||||
Obj.index["itembox"] = Obj.ItemBox
|
||||
Obj.index["ringbox"] = Obj.RingBox
|
||||
|
||||
Obj.collisions = {}
|
||||
Obj.collisions["wall"] = require(cwd .. "wall")
|
||||
|
|
27
sonic-radiance.love/scenes/overworld/actors/itembox.lua
Normal file
27
sonic-radiance.love/scenes/overworld/actors/itembox.lua
Normal file
|
@ -0,0 +1,27 @@
|
|||
local cwd = (...):gsub('%.itembox$', '') .. "."
|
||||
local Gizmo = require(cwd .. "gizmo")
|
||||
local ItemBox = Gizmo:extend()
|
||||
|
||||
local overrides = {
|
||||
["isSolid"] = true,
|
||||
["charset"] = "item1",
|
||||
["charId"] = 1,
|
||||
["charDir"] = "right",
|
||||
["destroy"] = "temp",
|
||||
["needButton"] = true,
|
||||
}
|
||||
|
||||
function ItemBox:new(world, x, y)
|
||||
ItemBox.super.new(self, world, x, y, 16, 16, overrides)
|
||||
end
|
||||
|
||||
function ItemBox:applyProperties()
|
||||
ItemBox.super.applyProperties(self)
|
||||
self.event = {
|
||||
{"getItems", "", self.properties.category, self.properties.item, self.properties.number},
|
||||
{"playSFX", "", "pop"},
|
||||
{"simpleMessage", "", "You got " .. self.properties.number .. " " .. self.properties.item},
|
||||
}
|
||||
end
|
||||
|
||||
return ItemBox
|
24
sonic-radiance.love/scenes/overworld/actors/ring.lua
Normal file
24
sonic-radiance.love/scenes/overworld/actors/ring.lua
Normal file
|
@ -0,0 +1,24 @@
|
|||
local cwd = (...):gsub('%.ring$', '') .. "."
|
||||
local Gizmo = require(cwd .. "gizmo")
|
||||
local Ring = Gizmo:extend()
|
||||
|
||||
local overrides = {
|
||||
["isSolid"] = false,
|
||||
["charset"] = "item1",
|
||||
["charId"] = 2,
|
||||
["destroy"] = "temp",
|
||||
["needButton"] = false,
|
||||
["isTurning"] = true,
|
||||
}
|
||||
|
||||
function Ring:new(world, x, y)
|
||||
Ring.super.new(self, world, x, y, 16, 16, overrides)
|
||||
end
|
||||
|
||||
function Ring:action()
|
||||
self.assets.sfx["ring"]:stop()
|
||||
self.assets.sfx["ring"]:play()
|
||||
game.loot.rings = game.loot.rings + 1
|
||||
end
|
||||
|
||||
return Ring
|
27
sonic-radiance.love/scenes/overworld/actors/ringbox.lua
Normal file
27
sonic-radiance.love/scenes/overworld/actors/ringbox.lua
Normal file
|
@ -0,0 +1,27 @@
|
|||
local cwd = (...):gsub('%.ringbox$', '') .. "."
|
||||
local Gizmo = require(cwd .. "gizmo")
|
||||
local RingBox = Gizmo:extend()
|
||||
|
||||
local overrides = {
|
||||
["isSolid"] = true,
|
||||
["charset"] = "item1",
|
||||
["charId"] = 1,
|
||||
["charDir"] = "down",
|
||||
["destroy"] = "temp",
|
||||
["needButton"] = true,
|
||||
}
|
||||
|
||||
function RingBox:new(world, x, y)
|
||||
RingBox.super.new(self, world, x, y, 16, 16, overrides)
|
||||
end
|
||||
|
||||
function RingBox:applyProperties()
|
||||
RingBox.super.applyProperties(self)
|
||||
self.event = {
|
||||
{"getRings", "", self.properties.number},
|
||||
{"playSFX", "", "pop"},
|
||||
{"simpleMessage", "", "You got " .. self.properties.number .. " rings"},
|
||||
}
|
||||
end
|
||||
|
||||
return RingBox
|
|
@ -47,6 +47,8 @@ return {
|
|||
{"woosh", "assets/sfx/woosh.wav"},
|
||||
{"spincharge", "assets/sfx/spincharge.wav"},
|
||||
{"spinrelease", "assets/sfx/spinrelease.wav"},
|
||||
{"ring", "assets/sfx/ring.wav"},
|
||||
{"pop", "assets/sfx/pop.wav"},
|
||||
|
||||
{"mBack", "assets/sfx/menus/back.wav"},
|
||||
{"mBeep", "assets/sfx/menus/beep.wav"},
|
||||
|
|
Loading…
Reference in a new issue