Compare commits
2 Commits
c90b56b603
...
e0b8386849
Author | SHA1 | Date | |
---|---|---|---|
e0b8386849 | |||
2b02d2b94b |
@ -66,12 +66,13 @@ end
|
||||
|
||||
-- vore eats another linked list
|
||||
-- by appending its contents.
|
||||
-- the ingested linked
|
||||
-- list is no longer valid.
|
||||
-- the ingested linked is empty.
|
||||
function linked_list:vore(x)
|
||||
if (not x.next) return
|
||||
self.tail.next = x.next
|
||||
self.tail = x.tail
|
||||
x.next = nil
|
||||
x.tail = x
|
||||
end
|
||||
|
||||
-- strip calls f(x) for each
|
||||
@ -153,6 +154,7 @@ function wipe_level()
|
||||
intangibles_fg = linked_list.new()
|
||||
intangibles_bg = linked_list.new()
|
||||
events = linked_list.new()
|
||||
new_events = linked_list.new()
|
||||
end
|
||||
|
||||
function _update60()
|
||||
@ -169,9 +171,8 @@ end
|
||||
|
||||
function updategame()
|
||||
leveldone = level_frame()
|
||||
new_events = linked_list.new()
|
||||
events:strip(call_move)
|
||||
events:vore(new_events)
|
||||
events:strip(call_move)
|
||||
for _, lst in ipairs{intangibles_bg, pships, eships, pbullets, ebullets} do
|
||||
lst:strip(call_move)
|
||||
end
|
||||
@ -1166,21 +1167,32 @@ blast = {
|
||||
damage = 4,
|
||||
dx = 0, -- px/frame
|
||||
dy = 2,
|
||||
awaitcancel = false,
|
||||
|
||||
-- disable damage for 2 frames
|
||||
-- when hitting something
|
||||
hitship = function(self, _)
|
||||
self.damage = 0
|
||||
local wait = 2
|
||||
if self.damage > 0 and not self.awaitcancel then
|
||||
self.awaitcancel = true
|
||||
events:push_back{move = function()
|
||||
wait -= 1
|
||||
if wait <= 0 then
|
||||
self.damage = 4
|
||||
new_events:push_back{
|
||||
wait = 2,
|
||||
obj = self,
|
||||
saved_dmg = self.damage,
|
||||
move = function(self)
|
||||
self.wait -= 1
|
||||
if self.wait <= 0 then
|
||||
self.obj.damage = self.saved_dmg
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end,
|
||||
}
|
||||
self.damage = 0
|
||||
self.awaitcancel = false
|
||||
return true
|
||||
end}
|
||||
end
|
||||
end
|
||||
}
|
||||
blast_t = {
|
||||
__index = blast
|
||||
|
Loading…
Reference in New Issue
Block a user