Compare commits

...

3 Commits

2 changed files with 20 additions and 16 deletions

View File

@ -1,8 +1,8 @@
## 1. refine existing engine (knowing what I know now)
- [ ] rewrite event queue as a linked list
- [ ] rewrite animator stacks as linked lists
- [ ] rewrite ship/bullet collections as linked lists
- [x] rewrite event queue as a linked list
- [x] rewrite animator stacks as linked lists
- [x] rewrite ship/bullet collections as linked lists
- [ ] update/draw mode switching system (high-efficiency version)
- [ ] render ship shields (even for large ships)
- [ ] duplicate file -- about to split away from Tyrian features

View File

@ -1789,21 +1789,10 @@ function boom(x,y,boominess,is_boss)
return
end
function spark(sprs, x, y, butts, thrust, odds, fg)
if (sprs==nil or flr(rnd(odds)) ~= 0) return
thrust *= 2.5
local target = fg and intangibles_fg or intangibles_bg
target:push_back{
x = x + rnd(4) - 2,
y = y + rnd(4) - 2,
sprs = sprs,
sidx = 1,
dx = (butts[0] - butts[1]) * thrust + rnd(2) - 1,
dy = (butts[2] - butts[3]) * thrust + rnd(2) - 1,
draw = function(self)
pset(self.x, self.y, self.sprs[self.sidx])
end,
move = function(self)
spark_particle={}
mknew(spark_particle)
function spark_particle:move()
if (rnd(4) < 1) self.sidx += 1
if (self.sidx > #self.sprs) return true
self.x += self.dx
@ -1811,7 +1800,22 @@ function spark(sprs, x, y, butts, thrust, odds, fg)
self.dx -= mid(0.05,-0.05, self.dx)
self.dy -= mid(0.05,-0.05, self.dy)
end
}
function spark_particle:draw()
pset(self.x,self.y,self.sprs[self.sidx])
end
function spark(sprs, x, y, butts, thrust, odds, fg)
if (sprs==nil or flr(rnd(odds)) ~= 0) return
thrust *= 2.5
local target = fg and intangibles_fg or intangibles_bg
target:push_back(spark_particle.new{
x = x + rnd(4) - 2,
y = y + rnd(4) - 2,
sprs = sprs,
sidx = 1,
dx = (butts[0] - butts[1]) * thrust + rnd(2) - 1,
dy = (butts[2] - butts[3]) * thrust + rnd(2) - 1,
})
end
-->8
-- powerups