49 lines
1.2 KiB
Lua
49 lines
1.2 KiB
Lua
--- @class TurnOrder
|
||
--- @field order Id[] возможно в будущем тут будет не айди персонажа, а айди фракции, в которой состоят несколько персонажей
|
||
--- @field isTurnsEnabled boolean
|
||
local turnOrder = {}
|
||
turnOrder.__index = turnOrder
|
||
|
||
local function new()
|
||
return setmetatable({
|
||
order = {}
|
||
}, turnOrder)
|
||
end
|
||
|
||
function turnOrder:updateOrder()
|
||
local order = {}
|
||
local count = 1
|
||
for k, _ in ipairs(Tree.level.characters) do
|
||
order[count] = k
|
||
count = count + 1
|
||
end
|
||
self.order = order
|
||
|
||
print('[Level]: Turn order has been updated!')
|
||
for _, v in ipairs(self.order) do
|
||
print('[Level]: id:', v)
|
||
end
|
||
end
|
||
|
||
function turnOrder:next()
|
||
self.order[#self.order + 1] = self.order[1]
|
||
self.order[1] = nil
|
||
|
||
local order = {}
|
||
for i = 1, #self.order do
|
||
order[i] = self.order[i + 1]
|
||
end
|
||
|
||
self.order = order
|
||
print('[Level]: Triggered next turn')
|
||
for _, v in ipairs(self.order) do
|
||
print('[Level]: id:', v)
|
||
end
|
||
end
|
||
|
||
function turnOrder:toggleTurns()
|
||
self.isTurnsEnabled = not self.isTurnsEnabled
|
||
end
|
||
|
||
return { new = new }
|