FreeKill/lua/server/events/gameflow.lua

31 lines
772 B
Lua

-- SPDX-License-Identifier: GPL-3.0-or-later
GameEvent.functions[GameEvent.DrawInitial] = function(self)
local room = self.room
for _, p in ipairs(room.alive_players) do
room.logic:trigger(fk.DrawInitialCards, p, { num = 4 })
end
end
GameEvent.functions[GameEvent.Round] = function(self)
local room = self.room
local logic = room.logic
local p
logic:trigger(fk.RoundStart, room.current)
repeat
p = room.current
GameEvent(GameEvent.Turn):exec()
if room.game_finished then break end
room.current = room.current:getNextAlive()
until p.seat > p:getNextAlive().seat
logic:trigger(fk.RoundEnd, p)
end
GameEvent.functions[GameEvent.Turn] = function(self)
local room = self.room
room.logic:trigger(fk.TurnStart, room.current)
end