fix/death-logic #28

Merged
PeaAshMeter merged 2 commits from fix/death-logic into main 2026-02-02 01:56:52 +03:00
2 changed files with 12 additions and 27 deletions
Showing only changes of commit 752fe00910 - Show all commits

View File

@ -119,8 +119,18 @@ function turnOrder:remove(id)
return
end
self.actedQueue:remove(id)
self.pendingQueue:remove(id)
local function filterQueue(q, targetId)
local newQ = PriorityQueue.new(initiativeComparator)
for _, val in ipairs(q.data) do
if val ~= targetId then
newQ:insert(val)
end
end
return newQ
end
self.actedQueue = filterQueue(self.actedQueue, id)
self.pendingQueue = filterQueue(self.pendingQueue, id)
end
return { new = new }

View File

@ -115,29 +115,4 @@ function PriorityQueue:copy()
}, PriorityQueue)
end
--- Удалить элемент из очереди.
--- Осторожно: O(n), так как нужно найти индекс элемента.
---@param x any
function PriorityQueue:remove(x)
local index = nil
for i, v in ipairs(self.data) do
if v == x then
index = i
break
end
end
if not index then return end
local n = #self.data
if index == n then
self.data[n] = nil
else
self.data[index] = self.data[n]
self.data[n] = nil
self:_sift_up(index)
self:_sift_down(index)
end
end
return PriorityQueue