1
0
mirror of https://github.com/ComfyFactory/ComfyFactorio.git synced 2024-12-28 23:06:38 +02:00
ComfyFactorio/maps/mountain_fortress_v3/commands.lua

240 lines
7.7 KiB
Lua
Raw Normal View History

2020-05-17 12:23:55 +02:00
local Color = require 'utils.color_presets'
local Public = require 'maps.mountain_fortress_v3.table'
2020-05-17 12:23:55 +02:00
local Task = require 'utils.task'
2020-06-25 17:59:16 +02:00
local Server = require 'utils.server'
local Collapse = require 'modules.collapse'
local WD = require 'modules.wave_defense.table'
2020-05-17 12:23:55 +02:00
local mapkeeper = '[color=blue]Mapkeeper:[/color]'
commands.add_command(
2020-10-19 20:21:27 +02:00
'scenario',
2020-06-07 23:25:01 +02:00
'Usable only for admins - controls the scenario!',
function(cmd)
2020-05-17 12:23:55 +02:00
local p
local player = game.player
2020-06-07 23:25:01 +02:00
if not player or not player.valid then
p = log
else
p = player.print
if not player.admin then
return
2020-05-17 12:23:55 +02:00
end
end
local this = Public.get()
2020-05-23 21:18:18 +02:00
local param = cmd.parameter
2020-05-17 12:23:55 +02:00
2020-06-25 17:59:16 +02:00
if param == 'restart' or param == 'shutdown' or param == 'reset' or param == 'restartnow' then
2020-06-07 23:25:01 +02:00
goto continue
else
2020-06-25 17:59:16 +02:00
p('[ERROR] Arguments are:\nrestart\nshutdown\nreset\nrestartnow')
2020-06-07 23:25:01 +02:00
return
end
2020-05-23 21:18:18 +02:00
2020-06-07 23:25:01 +02:00
::continue::
2020-05-23 21:18:18 +02:00
2020-06-07 23:25:01 +02:00
if not this.reset_are_you_sure then
this.reset_are_you_sure = true
2020-12-28 11:48:25 +02:00
p('[WARNING] This command will disable the soft-reset feature, run this command again if you really want to do this!')
2020-06-07 23:25:01 +02:00
return
end
2020-05-23 21:18:18 +02:00
2020-06-07 23:25:01 +02:00
if param == 'restart' then
if this.restart then
this.reset_are_you_sure = nil
this.restart = false
this.soft_reset = true
p('[SUCCESS] Soft-reset is enabled.')
return
2020-05-17 12:23:55 +02:00
else
2020-06-07 23:25:01 +02:00
this.reset_are_you_sure = nil
this.restart = true
this.soft_reset = false
if this.shutdown then
this.shutdown = false
2020-05-23 21:18:18 +02:00
end
2020-07-25 22:22:21 +02:00
p('[WARNING] Soft-reset is disabled! Server will restart from scenario to load new changes.')
2020-06-07 23:25:01 +02:00
return
end
2020-06-25 17:59:16 +02:00
elseif param == 'restartnow' then
this.reset_are_you_sure = nil
Server.start_scenario('Mountain_Fortress_v3')
return
2020-06-07 23:25:01 +02:00
elseif param == 'shutdown' then
if this.shutdown then
this.reset_are_you_sure = nil
this.shutdown = false
this.soft_reset = true
p('[SUCCESS] Soft-reset is enabled.')
return
else
this.reset_are_you_sure = nil
this.shutdown = true
this.soft_reset = false
if this.restart then
this.restart = false
2020-05-23 21:18:18 +02:00
end
2020-07-25 22:22:21 +02:00
p('[WARNING] Soft-reset is disabled! Server will shutdown. Most likely because of updates.')
2020-06-07 23:25:01 +02:00
return
2020-05-17 12:23:55 +02:00
end
2020-06-07 23:25:01 +02:00
elseif param == 'reset' then
this.reset_are_you_sure = nil
if player and player.valid then
game.print(mapkeeper .. ' ' .. player.name .. ', has reset the game!', {r = 0.98, g = 0.66, b = 0.22})
else
game.print(mapkeeper .. ' server, has reset the game!', {r = 0.98, g = 0.66, b = 0.22})
end
Public.reset_map()
2020-06-07 23:25:01 +02:00
p('[WARNING] Game has been reset!')
return
2020-05-23 21:18:18 +02:00
end
end
)
commands.add_command(
'set_queue_speed',
'Usable only for admins - sets the queue speed of this map!',
function(cmd)
local player = game.player
local param = tonumber(cmd.parameter)
2020-05-17 12:23:55 +02:00
2021-08-21 12:46:10 +02:00
if player and player.valid then
if not player.admin then
2023-01-17 11:52:32 +02:00
player.print("[ERROR] You're not admin!", Color.fail)
2021-08-21 12:46:10 +02:00
return
end
if not param then
return
2020-05-23 21:18:18 +02:00
end
2023-01-17 11:52:32 +02:00
player.print('Queue speed set to: ' .. param)
2021-08-21 12:46:10 +02:00
Task.set_queue_speed(param)
else
2023-01-17 11:52:32 +02:00
log('Queue speed set to: ' .. param)
2021-08-21 12:46:10 +02:00
Task.set_queue_speed(param)
2020-05-17 12:23:55 +02:00
end
end
)
commands.add_command(
'disable_biters',
2022-04-05 20:02:13 +02:00
'Usable only for admins - disables wave defense!',
2021-03-24 21:14:55 +02:00
function()
local player = game.player
2023-01-17 11:52:32 +02:00
if not player or not player.valid then
return
end
if not player.admin then
player.print("[ERROR] You're not admin!", Color.fail)
return
end
local this = Public.get()
local tbl = WD.get()
if not this.disable_biters_are_you_sure then
this.disable_biters_are_you_sure = true
player.print('[WARNING] This command will disable the wave_defense in-game, run this command again if you really want to do this!', Color.warning)
return
end
if not tbl.game_lost then
game.print(mapkeeper .. ' ' .. player.name .. ', has disabled the wave_defense module!', {r = 0.98, g = 0.66, b = 0.22})
tbl.game_lost = true
else
game.print(mapkeeper .. ' ' .. player.name .. ', has enabled the wave_defense module!', {r = 0.98, g = 0.66, b = 0.22})
tbl.game_lost = false
end
this.disable_biters_are_you_sure = nil
end
)
2022-07-10 21:53:18 +02:00
commands.add_command(
'toggle_orbital_strikes',
'Usable only for admins - toggles orbital strikes!',
function()
local player = game.player
2023-01-17 11:52:32 +02:00
if not player or not player.valid then
2022-07-10 21:53:18 +02:00
return
end
if not player.admin then
player.print("[ERROR] You're not admin!", Color.fail)
return
end
local this = Public.get()
2022-07-10 21:53:18 +02:00
if not this.orbital_strikes_are_you_sure then
this.orbital_strikes_are_you_sure = true
player.print('[WARNING] This command will disable the orbital_strikes in-game, run this command again if you really want to do this!', Color.warning)
return
end
if this.orbital_strikes.enabled then
game.print(mapkeeper .. ' ' .. player.name .. ', has disabled the orbital_strikes module!', {r = 0.98, g = 0.66, b = 0.22})
this.orbital_strikes.enabled = false
else
game.print(mapkeeper .. ' ' .. player.name .. ', has enabled the orbital_strikes module!', {r = 0.98, g = 0.66, b = 0.22})
this.orbital_strikes.enabled = true
end
this.orbital_strikes_are_you_sure = nil
end
)
2020-05-23 21:18:18 +02:00
commands.add_command(
'get_queue_speed',
'Usable only for admins - gets the queue speed of this map!',
function()
local p
local player = game.player
2021-08-21 12:46:10 +02:00
if player and player.valid then
p = player.print
if not player.admin then
p("[ERROR] You're not admin!", Color.fail)
return
2020-05-17 12:23:55 +02:00
end
2021-08-21 12:46:10 +02:00
p(Task.get_queue_speed())
else
p = log
p(Task.get_queue_speed())
2020-05-17 12:23:55 +02:00
end
2020-05-23 21:18:18 +02:00
end
)
2023-01-17 11:52:32 +02:00
commands.add_command(
'toggle_collapse',
'Toggles the collapse feature',
function()
local player = game.player
2023-01-17 11:52:32 +02:00
if player and player.valid then
if not player.admin then
player.print("[ERROR] You're not admin!", Color.fail)
return
end
2023-01-17 11:52:32 +02:00
if not Collapse.start_now() then
Collapse.start_now(true)
game.print(mapkeeper .. ' ' .. player.name .. ', has started collapse!', {r = 0.98, g = 0.66, b = 0.22})
else
Collapse.start_now(false)
game.print(mapkeeper .. ' ' .. player.name .. ', has stopped collapse!', {r = 0.98, g = 0.66, b = 0.22})
end
else
if not Collapse.start_now() then
Collapse.start_now(true)
log('Collapse has started.')
else
Collapse.start_now(false)
log('Collapse has stopped.')
end
end
2023-01-17 11:52:32 +02:00
end
)
return Public