41 lines
1.4 KiB
Lua
41 lines
1.4 KiB
Lua
local CommandsData = require("TOC/CommandsData")
|
|
local AmputationHandler = require("TOC/Handlers/AmputationHandler")
|
|
--------------------------------------------
|
|
|
|
local ClientRelayCommands = {}
|
|
|
|
---comment
|
|
---@param limbName any
|
|
---@param surgeonNum any
|
|
---@return AmputationHandler
|
|
local function InitAmputationHandler(limbName, surgeonNum)
|
|
|
|
-- TODO Pretty unclean
|
|
local surgeonPl = getSpecificPlayer(surgeonNum)
|
|
local handler = AmputationHandler:new(limbName, surgeonPl)
|
|
return handler
|
|
end
|
|
|
|
---Receive the damage from another player during the amputation
|
|
---@param args receiveDamageDuringAmputationParams
|
|
function ClientRelayCommands.ReceiveDamageDuringAmputation(args)
|
|
AmputationHandler.ApplyDamageDuringAmputation(getPlayer(), args.limbName)
|
|
end
|
|
|
|
---Creates a new handler and execute the amputation function on this client
|
|
---@param args receiveExecuteAmputationActionParams
|
|
function ClientRelayCommands.ReceiveExecuteAmputationAction(args)
|
|
local handler = InitAmputationHandler(args.limbName, args.surgeonNum)
|
|
handler:execute(true)
|
|
end
|
|
-------------------------
|
|
|
|
local function OnServerRelayCommand(module, command, args)
|
|
if module == CommandsData.modules.TOC_RELAY and ClientRelayCommands[command] then
|
|
TOC_DEBUG.print("Received Server Relay command - " .. tostring(command))
|
|
ClientRelayCommands[command](args)
|
|
end
|
|
end
|
|
|
|
Events.OnServerCommand.Add(OnServerRelayCommand)
|