149 lines
4.6 KiB
Lua
149 lines
4.6 KiB
Lua
templates = {
|
|
ALIVE = 0,
|
|
DYING = 1,
|
|
DEAD = 2,
|
|
RESURRECTING = 3,
|
|
} local me = templates
|
|
|
|
function me.create(type, options)
|
|
local sprite
|
|
local key, value = type:match("^(%S+)%s*(.*)$")
|
|
|
|
if key == "mummy" then
|
|
sprite = {
|
|
type = key,
|
|
pos = options.pos,--{ x=100, y=4*12*8+71 },
|
|
size = { w=16,h=16 },
|
|
bbo = { left=3, top=2, right=3, bottom=0 },
|
|
current_frame = 1,
|
|
current_wait = 1,
|
|
flipped = options.flipped,
|
|
surf = surf.load("gfx/mummy.gif"),
|
|
animation = "mummy_walk",
|
|
state = me.ALIVE,
|
|
enemy = true,
|
|
room = options.room,
|
|
ia = sprites.update_mummy
|
|
}
|
|
elseif key == "bullet" then
|
|
sprite = {
|
|
type = key,
|
|
pos = options.pos,--{ x=100, y=4*12*8+71 },
|
|
size = { w=4,h=3 },
|
|
bbo = { left=0, top=0, right=0, bottom=0 },
|
|
current_frame = 1,
|
|
current_wait = 1,
|
|
flipped = options.flipped,
|
|
surf = surf.load("gfx/morcus.gif"),
|
|
animation = "bullet",
|
|
ia = sprites.update_bullet
|
|
}
|
|
elseif key == "coin" then
|
|
sprite = {
|
|
type = key,
|
|
pos = options.pos,--{ x=100, y=4*12*8+71 },
|
|
size = { w=8,h=8 },
|
|
bbo = { left=0, top=0, right=0, bottom=0 },
|
|
current_frame = 1,
|
|
current_wait = 1,
|
|
flipped = options.flipped,
|
|
surf = surf.load("gfx/misc.gif"),
|
|
animation = "coin",
|
|
state = me.ALIVE,
|
|
timer = 0,
|
|
light = 15,
|
|
light_ox = 4,
|
|
light_oy = 4,
|
|
ia = sprites.update_coin
|
|
}
|
|
elseif key == "brick" then
|
|
sprite = {
|
|
type = key,
|
|
pos = options.pos,--{ x=100, y=4*12*8+71 },
|
|
size = { w=8,h=8 },
|
|
bbo = { left=0, top=0, right=0, bottom=0 },
|
|
current_frame = 1,
|
|
current_wait = 1,
|
|
flipped = options.flipped,
|
|
surf = surf.load("gfx/misc.gif"),
|
|
animation = "brick",
|
|
state = me.ALIVE,
|
|
timeout = 10,
|
|
ia = sprites.update_brick
|
|
}
|
|
elseif key == "torxa" then
|
|
sprite = {
|
|
type = key,
|
|
pos = options.pos,--{ x=100, y=4*12*8+71 },
|
|
size = { w=8,h=16 },
|
|
bbo = { left=0, top=0, right=0, bottom=0 },
|
|
current_frame = 1,
|
|
current_wait = 1,
|
|
flipped = options.flipped,
|
|
surf = surf.load("gfx/torxa.gif"),
|
|
animation = "torxa",
|
|
state = me.ALIVE,
|
|
light = 30,
|
|
light_ox = 4,
|
|
light_oy = 4,
|
|
no_shadow = true,
|
|
ia = sprites.update_torxa
|
|
}
|
|
elseif key == "clau" then
|
|
sprite = {
|
|
type = key,
|
|
color = value,
|
|
pos = options.pos,--{ x=100, y=4*12*8+71 },
|
|
size = { w=16,h=8 },
|
|
bbo = { left=0, top=0, right=0, bottom=0 },
|
|
current_frame = 1,
|
|
current_wait = 1,
|
|
flipped = options.flipped,
|
|
surf = surf.load("gfx/"..value..".gif"),
|
|
animation = "clau",
|
|
state = me.ALIVE,
|
|
light = 15,
|
|
light_ox = 7,
|
|
light_oy = 4,
|
|
ia = sprites.update_clau
|
|
}
|
|
elseif key == "porta" then
|
|
sprite = {
|
|
type = key,
|
|
color = value,
|
|
pos = options.pos,--{ x=100, y=4*12*8+71 },
|
|
size = { w=8,h=16 },
|
|
bbo = { left=0, top=0, right=0, bottom=0 },
|
|
current_frame = 1,
|
|
current_wait = 1,
|
|
flipped = options.flipped,
|
|
surf = surf.load("gfx/"..value..".gif"),
|
|
animation = "porta",
|
|
state = me.ALIVE,
|
|
ia = sprites.update_porta
|
|
}
|
|
elseif key == "sucubo" then
|
|
sprite = {
|
|
type = key,
|
|
pos = options.pos,--{ x=100, y=4*12*8+71 },
|
|
size = { w=16,h=16 },
|
|
bbo = { left=3, top=2, right=3, bottom=0 },
|
|
current_frame = 1,
|
|
current_wait = 1,
|
|
flipped = options.flipped,
|
|
surf = surf.load("gfx/sucubo.gif"),
|
|
animation = "sucubo_stand",
|
|
state = me.ALIVE,
|
|
timer = 0,
|
|
enemy = true,
|
|
room = options.room,
|
|
ia = sprites.update_sucubo
|
|
}
|
|
else
|
|
error("Template not recognized")
|
|
end
|
|
--sprite.room = rooms.current()
|
|
print("creat sprite de tipus "..type)
|
|
return sprite
|
|
end
|