diff --git a/data/gfx/morcus.gif b/data/gfx/morcus.gif index 0033016..16ba539 100644 Binary files a/data/gfx/morcus.gif and b/data/gfx/morcus.gif differ diff --git a/data/maps/rooms_background.gif b/data/maps/rooms_background.gif index f99f142..efdc7af 100644 Binary files a/data/maps/rooms_background.gif and b/data/maps/rooms_background.gif differ diff --git a/data/maps/rooms_foreground.gif b/data/maps/rooms_foreground.gif index 2af1433..0aaa743 100644 Binary files a/data/maps/rooms_foreground.gif and b/data/maps/rooms_foreground.gif differ diff --git a/data/modules/animations.lua b/data/modules/animations.lua index 830a99c..026c6d6 100644 --- a/data/modules/animations.lua +++ b/data/modules/animations.lua @@ -54,6 +54,13 @@ animations = { { frame={x=156,y=0,w=4,h=3}, wait=4 } } }, + ["particle"] = { + cycle = {1}, + loop = false, + frames = { + { frame={x=112,y=0,w=8,h=8}, wait=100 } + } + }, ["mummy_walk"] = { cycle = {1,2,1,3}, loop = true, diff --git a/data/modules/ia/bullet.lua b/data/modules/ia/bullet.lua index 0ec7e18..1cd2532 100644 --- a/data/modules/ia/bullet.lua +++ b/data/modules/ia/bullet.lua @@ -11,7 +11,7 @@ function ia.update_bullet(spr) if util.check_aabb_collision(x1,y1,w1,h1, x2,y2,w2,h2) then if v.state == templates.ALIVE then if v.bulletproof then - gota_esguita(spr) + bullet_ricochet(spr) else v.state = templates.DYING end @@ -29,7 +29,15 @@ function ia.update_bullet(spr) spr.pos.x = spr.pos.x + 8 end else - sprites.remove(spr) + bullet_ricochet(spr) + --sprites.remove(spr) end end +function bullet_ricochet(spr) + sprites.remove(spr) + table.insert(sprites.list, templates.create("bullet_particle", {pos={x=spr.pos.x, y=spr.pos.y}, dir={x= 1,y= math.random(3,5)}, flipped=spr.flipped})) + table.insert(sprites.list, templates.create("bullet_particle", {pos={x=spr.pos.x, y=spr.pos.y}, dir={x=-1,y= math.random(3,5)}, flipped=spr.flipped})) + table.insert(sprites.list, templates.create("bullet_particle", {pos={x=spr.pos.x, y=spr.pos.y}, dir={x=-1,y=-math.random(3,5)}, flipped=spr.flipped})) + table.insert(sprites.list, templates.create("bullet_particle", {pos={x=spr.pos.x, y=spr.pos.y}, dir={x= 1,y=-math.random(3,5)}, flipped=spr.flipped})) +end diff --git a/data/modules/templates.lua b/data/modules/templates.lua index d64a438..172e790 100644 --- a/data/modules/templates.lua +++ b/data/modules/templates.lua @@ -44,6 +44,23 @@ function me.create(type, options) animation = "bullet", ia = ia.update_bullet } + elseif key == "bullet_particle" then + sprite = { + type = key, + pos = options.pos,--{ x=100, y=4*12*8+71 }, + dir = options.dir, + size = { w=8,h=8 }, + bbo = { left=2, top=3, right=3, bottom=1 }, + current_frame = 1, + current_wait = 1, + flipped = options.flipped, + surf = surf.load("gfx/morcus.gif"), + animation = "particle", + state = me.ALIVE, + enemy = true, + room = options.room, + ia = ia.update_gota_esguit + } elseif key == "coin" then sprite = { type = key,