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