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

View File

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