2024-09-10 11:29:44 +01:00
-- This file is part of thesixthroc's Pirate Ship softmod, licensed under GPLv3 and stored at https://github.com/ComfyFactory/ComfyFactorio and https://github.com/danielmartin0/ComfyFactorio-Pirates.
2022-06-01 19:50:36 +01:00
2022-03-19 21:20:55 +00:00
--luacheck: ignore
--luacheck ignores because mass requires is a code templating choice...
2021-10-13 09:21:53 +01:00
local Color = require 'utils.color_presets'
local Server = require 'utils.server'
local Math = require 'maps.pirates.math'
local Ai = require 'maps.pirates.ai'
local Memory = require 'maps.pirates.memory'
local Common = require 'maps.pirates.common'
local CoreData = require 'maps.pirates.coredata'
local PlayerColors = require 'maps.pirates.player_colors'
local Utils = require 'maps.pirates.utils_local'
local Crew = require 'maps.pirates.crew'
local Roles = require 'maps.pirates.roles.roles'
local Boats = require 'maps.pirates.structures.boats.boats'
local Surfaces = require 'maps.pirates.surfaces.surfaces'
local Overworld = require 'maps.pirates.overworld'
local Islands = require 'maps.pirates.surfaces.islands.islands'
local Progression = require 'maps.pirates.progression'
local Crowsnest = require 'maps.pirates.surfaces.crowsnest'
2022-05-29 12:36:27 +01:00
local PiratesApiEvents = require 'maps.pirates.api_events'
2024-09-15 21:12:26 +01:00
local Upgrades = require 'maps.pirates.shop.boat_upgrades'
2021-10-13 09:21:53 +01:00
local Effects = require 'maps.pirates.effects'
local Kraken = require 'maps.pirates.surfaces.sea.kraken'
2022-03-19 21:20:55 +00:00
local _inspect = require 'utils.inspect' . inspect
2021-10-13 09:21:53 +01:00
local simplex_noise = require 'utils.simplex_noise' . d2
local Token = require 'utils.token'
local Task = require 'utils.task'
local Highscore = require 'maps.pirates.highscore'
2024-09-18 18:07:18 +01:00
local Permissions = require 'maps.pirates.permissions'
2022-03-13 18:19:59 +00:00
local Classes = require 'maps.pirates.roles.classes'
2022-07-28 18:15:31 +01:00
local Gui = require 'maps.pirates.gui.gui'
2023-06-26 00:14:04 +03:00
-- local Session = require 'utils.datastore.session_data'
2024-09-11 19:04:10 +01:00
-- *** *** --
--*** HELPERS ***--
-- *** *** --
2022-06-02 19:54:47 +01:00
local function cmd_set_memory ( cmd )
2022-06-16 00:00:18 +03:00
local player = game.players [ cmd.player_index ]
local crew_id = Common.get_id_from_force_name ( player.force . name )
2022-06-02 19:54:47 +01:00
Memory.set_working_id ( crew_id )
end
2022-06-02 14:47:23 +01:00
local function check_admin ( cmd )
local player = game.players [ cmd.player_index ]
2022-06-07 23:48:42 +03:00
--local trusted = Session.get_trusted_table()
2022-06-02 14:47:23 +01:00
local p
if player then
if player ~= nil then
p = player.print
2022-07-02 18:42:22 +03:00
--@temporary
2024-09-11 19:13:18 +01:00
if player.name == "Piratux" or player.name == "thesixthroc" then
2022-07-02 18:42:22 +03:00
return true
end
2022-06-02 14:47:23 +01:00
if not player.admin then
2024-09-12 13:27:22 +01:00
p ({ 'pirates.cmd_error_not_admin' }, Color.fail )
2022-06-02 14:47:23 +01:00
return false
end
else
p = log
end
end
return true
end
local function check_captain ( cmd )
local player = game.players [ cmd.player_index ]
local p
if player then
if player ~= nil then
p = player.print
if not Common.validate_player ( player ) then return end
2024-09-18 18:07:18 +01:00
if not ( Permissions.player_privilege_level ( player ) >= Permissions.privilege_levels . CAPTAIN ) then
2024-09-12 13:27:22 +01:00
p ({ 'pirates.cmd_error_not_captain' }, Color.fail )
2022-06-02 14:47:23 +01:00
return false
end
else
p = log
end
end
return true
end
local function check_captain_or_admin ( cmd )
local player = game.players [ cmd.player_index ]
local p
if player then
if player ~= nil then
p = player.print
if not Common.validate_player ( player ) then return end
2024-09-18 18:07:18 +01:00
if not ( player.admin or Permissions.player_privilege_level ( player ) >= Permissions.privilege_levels . CAPTAIN ) then
2024-09-12 13:27:22 +01:00
p ({ 'pirates.cmd_error_not_captain' }, Color.fail )
2022-06-02 14:47:23 +01:00
return false
end
else
p = log
end
end
return true
end
2024-09-13 14:52:32 +01:00
local function check_creator_of_crew ( cmd )
local player = game.players [ cmd.player_index ]
local p
if player then
if player ~= nil then
p = player.print
cmd_set_memory ( cmd )
local memory = Memory.get_crew_memory ()
if not Common.is_id_valid ( memory.id ) then return end
local creator = memory.original_proposal . created_by_player
if creator ~= player.index then
Common.notify_player_error ( player , { 'pirates.cmd_error_not_creator_of_crew' })
return false
end
end
end
end
2022-06-02 14:47:23 +01:00
2023-02-20 18:56:41 +02:00
-- @UNUSED
-- local function check_trusted(cmd)
-- local Session = require 'utils.datastore.session_data'
-- local player = game.players[cmd.player_index]
-- local trusted = Session.get_trusted_table()
-- local p
-- if player then
-- if player ~= nil then
-- p = player.print
-- if not (trusted[player.name] or player.admin) then
-- p('[ERROR] Only admins and trusted weebs are allowed to run this command!', Color.fail)
-- return false
-- end
-- else
-- p = log
-- end
-- end
-- return true
-- end
2022-06-02 14:47:23 +01:00
2024-09-11 19:04:10 +01:00
-- *** *** --
--*** PUBLIC COMMANDS ***--
-- *** *** --
2022-06-02 14:47:23 +01:00
2024-09-11 19:04:10 +01:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'ok' ,
{ 'pirates.cmd_explain_ok' },
function ( cmd )
cmd_set_memory ( cmd )
2024-09-11 19:04:10 +01:00
2024-09-12 13:27:22 +01:00
local memory = Memory.get_crew_memory ()
if not Common.is_id_valid ( memory.id ) then return end
2024-09-11 19:04:10 +01:00
2024-09-12 13:27:22 +01:00
local player = game.players [ cmd.player_index ]
if not Common.validate_player ( player ) then return end
2024-09-11 19:04:10 +01:00
2024-09-12 13:27:22 +01:00
--local memory = Memory.get_crew_memory()
Roles.player_confirm_captainhood ( player )
end )
2024-09-11 19:04:10 +01:00
-- Disabled, better to find these out through gameplay:
-- commands.add_command(
-- 'classes',
-- 'Prints the available classes in the game.',
-- function(cmd)
-- local player = game.players[cmd.player_index]
-- if not Common.validate_player(player) then return end
-- player.print('[color=gray]' .. Roles.get_classes_print_string() .. '[/color]')
-- end)
commands.add_command (
2024-09-12 13:27:22 +01:00
'classinfo' ,
{ 'pirates.cmd_explain_classinfo' },
function ( cmd )
cmd_set_memory ( cmd )
local param = tostring ( cmd.parameter )
local player = game.players [ cmd.player_index ]
if not Common.validate_player ( player ) then return end
2024-09-11 19:04:10 +01:00
2024-09-12 13:27:22 +01:00
if param and param ~= 'nil' then
local string = Roles.get_class_print_string ( param , true )
if string then
Common.notify_player_expected ( player , { '' , { 'pirates.class_definition_for' }, ' ' , string })
else
Common.notify_player_error ( player , { 'pirates.cmd_error_invalid_class_name' , param })
end
2024-09-11 19:04:10 +01:00
else
2024-09-12 13:27:22 +01:00
Common.notify_player_expected ( player , { '' , '/classinfo ' , { 'pirates.cmd_explain_classinfo' } })
2024-09-11 19:04:10 +01:00
end
2024-09-12 13:27:22 +01:00
end )
2024-09-11 19:04:10 +01:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'ccolor' ,
{ 'pirates.cmd_explain_ccolor' },
function ( cmd )
local param = tostring ( cmd.parameter )
local player_index = cmd.player_index
if player_index then
local player = game.players [ player_index ]
if player and player.valid then
if cmd.parameter then
if PlayerColors.colors [ param ] then
local rgb = PlayerColors.colors [ param ]
player.color = rgb
player.chat_color = rgb
local message = { '' , '[color=' .. rgb.r .. ',' .. rgb.g .. ',' .. rgb.b .. ']' , { 'pirates.choose_chat_color' , player.name , param }, '[/color] (via /ccolor).' }
-- local message = '[color=' .. rgb.r .. ',' .. rgb.g .. ',' .. rgb.b .. ']' .. player.name .. ' chose the color ' .. param .. '[/color] (via /ccolor).'
Common.notify_game ( message )
else
Common.notify_player_error ( player , { 'pirates.cmd_error_color_not_found' , param })
end
else
local color = PlayerColors.bright_color_names [ Math.random ( # PlayerColors.bright_color_names )]
local rgb = PlayerColors.colors [ color ]
if not rgb then return end
2024-09-11 19:04:10 +01:00
player.color = rgb
player.chat_color = rgb
2024-09-12 13:27:22 +01:00
local message = { '' , '[color=' .. rgb.r .. ',' .. rgb.g .. ',' .. rgb.b .. ']' , { 'pirates.randomize_chat_color' , player.name , color }, '[/color] (via /ccolor).' } --'randomly became' was amusing, but let's not
-- local message = '[color=' .. rgb.r .. ',' .. rgb.g .. ',' .. rgb.b .. ']' .. player.name .. '\'s color randomized to ' .. color .. '[/color] (via /ccolor).' --'randomly became' was amusing, but let's not
2024-09-11 19:04:10 +01:00
Common.notify_game ( message )
2024-09-12 13:27:22 +01:00
-- disabled due to lag:
-- GUIcolor.toggle_window(player)
2024-09-11 19:04:10 +01:00
end
end
end
2024-09-12 13:27:22 +01:00
end )
2024-09-11 19:04:10 +01:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'fixpower' ,
{ 'pirates.cmd_explain_fixpower' },
function ( cmd )
cmd_set_memory ( cmd )
2024-09-11 19:04:10 +01:00
2024-09-12 13:27:22 +01:00
local memory = Memory.get_crew_memory ()
if not Common.is_id_valid ( memory.id ) then return end
2024-09-11 19:04:10 +01:00
2024-09-12 13:27:22 +01:00
Boats.force_reconnect_boat_poles ()
end )
2024-09-11 19:04:10 +01:00
-- *** *** --
--*** CAPTAIN COMMANDS ***--
-- *** *** --
commands.add_command (
'plank' ,
2024-09-12 13:27:22 +01:00
{ 'pirates.cmd_explain_plank' },
function ( cmd )
2024-09-11 19:04:10 +01:00
cmd_set_memory ( cmd )
2024-09-12 13:27:22 +01:00
2024-09-11 19:04:10 +01:00
local memory = Memory.get_crew_memory ()
if not Common.is_id_valid ( memory.id ) then return end
2024-09-12 13:27:22 +01:00
2024-09-11 19:04:10 +01:00
local player = game.players [ cmd.player_index ]
local param = tostring ( cmd.parameter )
if check_captain_or_admin ( cmd ) then
if param and game.players [ param ] and game.players [ param ]. index then
Crew.plank ( player , game.players [ param ])
else
2024-09-12 13:27:22 +01:00
Common.notify_player_error ( player , { 'pirates.cmd_error_invalid_player_name' , param })
2024-09-11 19:04:10 +01:00
end
end
end )
commands.add_command (
2024-09-12 13:27:22 +01:00
'officer' ,
{ 'pirates.cmd_explain_officer' },
function ( cmd )
cmd_set_memory ( cmd )
2024-09-11 19:04:10 +01:00
2024-09-12 13:27:22 +01:00
local memory = Memory.get_crew_memory ()
if not Common.is_id_valid ( memory.id ) then return end
2024-09-11 19:04:10 +01:00
2024-09-12 13:27:22 +01:00
local player = game.players [ cmd.player_index ]
local param = tostring ( cmd.parameter )
if check_captain_or_admin ( cmd ) then
if param and game.players [ param ] and game.players [ param ]. index then
if Common.is_officer ( game.players [ param ]. index ) then
Roles.unmake_officer ( player , game.players [ param ])
else
Roles.make_officer ( player , game.players [ param ])
end
2024-09-11 19:04:10 +01:00
else
2024-09-12 13:27:22 +01:00
Common.notify_player_error ( player , { 'pirates.cmd_error_invalid_player_name' , param })
2024-09-11 19:04:10 +01:00
end
end
2024-09-12 13:27:22 +01:00
end )
2024-09-11 19:04:10 +01:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'tax' ,
{ 'pirates.cmd_explain_tax' },
function ( cmd )
cmd_set_memory ( cmd )
2024-09-11 19:04:10 +01:00
2024-09-12 13:27:22 +01:00
local memory = Memory.get_crew_memory ()
if not Common.is_id_valid ( memory.id ) then return end
2024-09-11 19:04:10 +01:00
2024-09-12 13:27:22 +01:00
--local param = tostring(cmd.parameter)
if check_captain ( cmd ) then
--local player = game.players[cmd.player_index]
Roles.captain_tax ( memory.playerindex_captain )
end
end )
2024-09-11 19:04:10 +01:00
-- Try undock from an island or dock
commands.add_command (
2024-09-12 13:27:22 +01:00
'undock' ,
{ 'pirates.cmd_explain_undock' },
function ( cmd )
cmd_set_memory ( cmd )
2024-09-11 19:04:10 +01:00
2024-09-12 13:27:22 +01:00
local memory = Memory.get_crew_memory ()
if not Common.is_id_valid ( memory.id ) then return end
2024-09-11 19:04:10 +01:00
2024-09-12 13:27:22 +01:00
--local param = tostring(cmd.parameter)
if check_captain_or_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
if memory.boat . state == Boats.enum_state . DOCKED then
Progression.undock_from_dock ( true )
elseif memory.boat . state == Boats.enum_state . LANDED then
Progression.try_retreat_from_island ( player , true )
end
2024-09-11 19:04:10 +01:00
end
2024-09-12 13:27:22 +01:00
end )
2024-09-11 19:04:10 +01:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'clear_north_tanks' ,
{ 'pirates.cmd_explain_clear_north_tanks' },
function ( cmd )
cmd_set_memory ( cmd )
2024-09-11 19:04:10 +01:00
2024-09-12 13:27:22 +01:00
local memory = Memory.get_crew_memory ()
if not Common.is_id_valid ( memory.id ) then return end
2024-09-11 19:04:10 +01:00
2024-09-12 13:27:22 +01:00
if check_captain_or_admin ( cmd ) then
Boats.clear_fluid_from_ship_tanks ( 1 )
end
end )
2024-09-11 19:04:10 +01:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'clear_south_tanks' ,
{ 'pirates.cmd_explain_clear_south_tanks' },
function ( cmd )
cmd_set_memory ( cmd )
2024-09-11 19:04:10 +01:00
2024-09-12 13:27:22 +01:00
local memory = Memory.get_crew_memory ()
if not Common.is_id_valid ( memory.id ) then return end
2024-09-11 19:04:10 +01:00
2024-09-12 13:27:22 +01:00
if check_captain ( cmd ) then
Boats.clear_fluid_from_ship_tanks ( 2 )
end
end )
2024-09-11 19:04:10 +01:00
2024-09-13 14:52:32 +01:00
-- *** *** --
--*** CREATOR OF CREW COMMANDS ***--
-- *** *** --
commands.add_command (
'reset_password' ,
{ 'pirates.cmd_explain_set_private_run_password' },
function ( cmd )
cmd_set_memory ( cmd )
local memory = Memory.get_crew_memory ()
if not Common.is_id_valid ( memory.id ) then return end
local param = tostring ( cmd.parameter )
if check_creator_of_crew ( cmd ) then
local player = game.players [ cmd.player_index ]
2024-09-13 15:01:29 +01:00
if not memory.private_run_password then
Common.notify_player_error ( player , { 'pirates.cmd_error_no_existing_password' })
return false
end
2024-09-13 14:52:32 +01:00
memory.private_run_password = param
Common.notify_player_expected ( player , { 'pirates.cmd_notify_set_private_run_password' , memory.name , param })
end
end )
2024-09-11 19:04:10 +01:00
-- *** *** --
--*** ADMIN COMMANDS ***--
-- *** *** --
2022-06-02 14:47:23 +01:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'set_max_crews' ,
{ 'pirates.cmd_explain_set_max_crews' },
function ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
local global_memory = Memory.get_global_memory ()
2022-06-02 14:47:23 +01:00
2024-09-12 13:27:22 +01:00
if tonumber ( param ) then
global_memory.active_crews_cap_in_memory = tonumber ( param )
Common.notify_player_expected ( player , { 'pirates.cmd_notify_set_max_crews' , param })
end
2022-06-02 14:47:23 +01:00
end
2024-09-12 13:27:22 +01:00
end )
2022-06-02 14:47:23 +01:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'setcaptain' ,
{ 'pirates.cmd_explain_setcaptain' },
function ( cmd )
cmd_set_memory ( cmd )
2022-06-02 19:54:47 +01:00
2024-09-12 13:27:22 +01:00
local memory = Memory.get_crew_memory ()
if not Common.is_id_valid ( memory.id ) then return end
2022-07-07 23:01:45 +03:00
2024-09-12 13:27:22 +01:00
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
if param and game.players [ param ] and game.players [ param ]. index then
Roles.make_captain ( game.players [ param ])
else
Common.notify_player_error ( player , { 'pirates.cmd_error_invalid_player_name' , param })
end
2022-06-02 14:47:23 +01:00
end
2024-09-12 13:27:22 +01:00
end )
2022-06-02 14:47:23 +01:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'summoncrew' ,
{ 'pirates.cmd_explain_summoncrew' },
function ( cmd )
cmd_set_memory ( cmd )
2022-06-02 19:54:47 +01:00
2024-09-12 13:27:22 +01:00
local memory = Memory.get_crew_memory ()
if not Common.is_id_valid ( memory.id ) then return end
2022-07-07 23:01:45 +03:00
2024-09-12 13:27:22 +01:00
--local param = tostring(cmd.parameter)
if check_admin ( cmd ) then
Crew.summon_crew ()
end
end )
2022-06-02 14:47:23 +01:00
2023-06-24 23:49:36 +03:00
-- Force undock from an island or dock
commands.add_command (
2024-09-12 13:27:22 +01:00
'ret' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
cmd_set_memory ( cmd )
2023-06-24 23:49:36 +03:00
2022-02-26 18:25:48 +00:00
local memory = Memory.get_crew_memory ()
2024-09-12 13:27:22 +01:00
if not Common.is_id_valid ( memory.id ) then return end
-- local param = tostring(cmd.parameter)
if check_admin ( cmd ) then
if memory.boat . state == Boats.enum_state . DOCKED then
Progression.undock_from_dock ( true )
elseif memory.boat . state == Boats.enum_state . LANDED then
Progression.retreat_from_island ( true )
2022-02-26 18:25:48 +00:00
end
end
2024-09-12 13:27:22 +01:00
end )
2022-02-26 18:25:48 +00:00
2024-09-09 17:02:34 +01:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'dump_highscores' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
cmd_set_memory ( cmd )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
if not Common.validate_player ( player ) then return end
Highscore.dump_highscores ()
player.print ( 'Highscores dumped.' )
end
end )
2024-09-09 17:02:34 +01:00
2022-03-15 18:50:19 +00:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'setevo' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
cmd_set_memory ( cmd )
2022-07-16 21:46:23 +03:00
2024-09-12 13:27:22 +01:00
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
Common.set_evo ( tonumber ( param ))
end
end )
commands.add_command (
'modi' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
cmd_set_memory ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
local memory = Memory.get_crew_memory ()
local surface = game.surfaces [ Common.current_destination (). surface_name ]
local entities = surface.find_entities_filtered { position = player.position , radius = 500 }
for _ , e in pairs ( entities ) do
if e and e.valid then
-- e.force = memory.force
e.minable = true
e.destructible = true
e.rotatable = true
end
end
player.print ( 'nearby entities made modifiable' )
end
end )
commands.add_command (
'night' ,
'night' ,
function ( cmd )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
local surface = player.surface
surface.daytime = 0.5
end
end )
commands.add_command (
'overwrite_scores_specific' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
cmd_set_memory ( cmd )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
if not Common.validate_player ( player ) then return end
local memory = Memory.get_crew_memory ()
if Highscore.overwrite_scores_specific () then player.print ( 'Highscores overwritten.' ) end
end
end )
2022-03-15 18:50:19 +00:00
2022-07-28 18:15:31 +01:00
-- Unlock a class
commands.add_command (
2024-09-12 13:27:22 +01:00
'unlock' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
cmd_set_memory ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local memory = Memory.get_crew_memory ()
if not Common.is_id_valid ( memory.id ) then return end
local player = game.players [ cmd.player_index ]
if not Classes.try_unlock_class ( param , player , true ) then
Common.notify_player_error ( player , { 'pirates.cmd_error_invalid_class_name' , param })
end
2022-10-11 20:52:23 +03:00
end
2024-09-12 13:27:22 +01:00
end )
2022-07-28 18:15:31 +01:00
-- Remove all classes
commands.add_command (
2024-09-12 13:27:22 +01:00
'remove_classes' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
cmd_set_memory ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local memory = Memory.get_crew_memory ()
if not Common.is_id_valid ( memory.id ) then return end
2022-07-28 18:15:31 +01:00
2024-09-12 13:27:22 +01:00
if not Gui.classes then return end
2022-07-28 18:15:31 +01:00
2024-09-12 13:27:22 +01:00
memory.classes_table = {}
memory.spare_classes = {}
memory.recently_purchased_classes = {}
memory.unlocked_classes = {}
memory.available_classes_pool = Classes.initial_class_pool ()
memory.class_entry_count = 0
2022-07-28 18:15:31 +01:00
2024-09-12 13:27:22 +01:00
local players = Common.crew_get_crew_members_and_spectators ()
2022-07-28 18:15:31 +01:00
2024-09-12 13:27:22 +01:00
for _ , player in pairs ( players ) do
Gui.classes . full_update ( player , true )
end
2022-07-28 18:15:31 +01:00
end
2024-09-12 13:27:22 +01:00
end )
2022-02-26 18:25:48 +00:00
2024-09-11 19:04:10 +01:00
-- *** *** --
--*** DEVELOPER COMMANDS ***--
-- *** *** --
2021-10-13 09:21:53 +01:00
if _DEBUG then
2024-09-11 19:04:10 +01:00
local go_2 = Token.register (
2024-09-12 13:27:22 +01:00
function ( data )
2024-09-11 19:04:10 +01:00
Memory.set_working_id ( data.id )
local memory = Memory.get_crew_memory ()
2024-09-27 17:44:33 +01:00
memory.loading_ticks = 0
2024-09-11 19:04:10 +01:00
-- local surface = game.surfaces[Common.current_destination().surface_name]
-- surface.request_to_generate_chunks({x = 0, y = 0}, 10)
-- surface.force_generate_chunk_requests()
Progression.go_from_starting_dock_to_first_destination ()
end
)
local go_1 = Token.register (
2024-09-12 13:27:22 +01:00
function ( data )
2024-09-11 19:04:10 +01:00
Memory.set_working_id ( data.id )
local memory = Memory.get_crew_memory ()
2024-09-12 12:30:33 +01:00
Overworld.ensure_lane_generated_up_to ( 0 , Crowsnest.Data . visibilitywidth )
Overworld.ensure_lane_generated_up_to ( 24 , Crowsnest.Data . visibilitywidth )
Overworld.ensure_lane_generated_up_to ( - 24 , Crowsnest.Data . visibilitywidth )
2024-09-12 12:56:20 +01:00
for i = 1 , # memory.destinations do
if memory.destinations [ i ]. overworld_position.x == 0 then
2024-09-27 17:44:33 +01:00
memory.map_being_loaded_destination_index = i
2024-09-12 12:56:20 +01:00
break
end
end
2024-09-27 17:44:33 +01:00
memory.currentdestination_index = memory.map_being_loaded_destination_index
2024-09-11 19:04:10 +01:00
Surfaces.create_surface ( Common.current_destination ())
2024-09-12 13:27:22 +01:00
Task.set_timeout_in_ticks ( 60 , go_2 , { id = data.id })
2024-09-11 19:04:10 +01:00
end
)
-- Move overworld boat right by a lot (you can jump over islands that way to skip them)
commands.add_command (
2024-09-12 13:27:22 +01:00
'jump' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
cmd_set_memory ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
Overworld.try_overworld_move_v2 ({ x = 40 , y = 0 })
end
end )
2024-09-11 19:04:10 +01:00
-- Move overworld boat up
commands.add_command (
2024-09-12 13:27:22 +01:00
'advu' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
cmd_set_memory ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
Overworld.try_overworld_move_v2 { x = 0 , y = - 24 }
end
end )
2024-09-11 19:04:10 +01:00
-- Move overworld boat down
commands.add_command (
2024-09-12 13:27:22 +01:00
'advd' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
cmd_set_memory ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
Overworld.try_overworld_move_v2 { x = 0 , y = 24 }
end
end )
2021-10-13 09:21:53 +01:00
2022-07-16 21:46:23 +03:00
-- Teleport player to available boat in lobby, automatically start journey and arrive at sea faster
2022-03-04 17:57:58 +00:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'go' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
cmd_set_memory ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
-- Doesn't completely prevent server from crashing when used twice at lobby, but at least saves from crashing when boat leaves lobby
if not Common.get_id_from_force_name ( player.character . force.name ) then
local proposal = {
capacity_option = 3 ,
difficulty_option = 4 ,
-- mode_option = 'left',
name = "AdminRun" ,
created_by_player = cmd.player_index
}
2024-09-13 12:31:33 +01:00
Crew.initialise_crew ( proposal , player.position )
2024-09-12 13:27:22 +01:00
Crew.initialise_crowsnest () --contains a Task
local memory = Memory.get_crew_memory ()
local boat = Utils.deepcopy ( Surfaces.Lobby . StartingBoats [ memory.id ])
for _ , p in pairs ( game.connected_players ) do
p.teleport ({ x = - 30 , y = boat.position . y }, game.surfaces [ boat.surface_name ])
end
Progression.set_off_from_starting_dock ()
-- local memory = Memory.get_crew_memory()
-- local boat = Utils.deepcopy(Surfaces.Lobby.StartingBoats[memory.id])
-- memory.boat = boat
-- boat.dockedposition = boat.position
-- boat.decksteeringchests = {}
2024-09-27 17:44:33 +01:00
-- boat.crows_nest_steering_chests = {}
2024-09-12 13:27:22 +01:00
Task.set_timeout_in_ticks ( 120 , go_1 , { id = memory.id })
else
game.print ( 'Can \' t use this command when run has already launched' )
end
end
end )
commands.add_command (
'chnk' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
cmd_set_memory ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
local memory = Memory.get_crew_memory ()
for i = 0 , 13 do
for j = 0 , 13 do
PiratesApiEvents.event_on_chunk_generated ({ surface = player.surface , area = { left_top = { x = - 7 * 32 + i * 32 , y = - 7 * 32 + j * 32 } } })
end
end
game.print ( 'chunks generated' )
end
end )
commands.add_command (
'spd' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
cmd_set_memory ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
local memory = Memory.get_crew_memory ()
memory.boat . speed = 60
end
end )
commands.add_command (
'stp' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
cmd_set_memory ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
local memory = Memory.get_crew_memory ()
memory.boat . speed = 0
end
end )
commands.add_command (
'rms' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
local rms = 0
local n = 100000
local seed = Math.random ( n ^ 2 )
for i = 1 , n do
local noise = simplex_noise ( i , 7.11 , seed )
rms = rms + noise ^ 2
end
rms = rms / n
game.print ( rms )
end
end )
commands.add_command (
'pro' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
local global_memory = Memory.get_global_memory ()
2022-07-02 18:42:22 +03:00
local proposal = {
capacity_option = 3 ,
2024-09-12 13:27:22 +01:00
difficulty_option = 2 ,
2022-07-02 18:42:22 +03:00
-- mode_option = 'left',
2024-09-12 13:27:22 +01:00
name = "TestRun" ,
2024-09-09 14:47:43 +01:00
created_by_player = cmd.player_index
2022-07-02 18:42:22 +03:00
}
2022-07-16 21:46:23 +03:00
2024-09-12 13:27:22 +01:00
global_memory.crewproposals [ # global_memory.crewproposals + 1 ] = proposal
2022-03-04 17:57:58 +00:00
end
2024-09-12 13:27:22 +01:00
end )
2022-03-19 21:20:55 +00:00
2022-07-16 21:46:23 +03:00
-- Leave island, or dock immediately
2022-03-08 23:36:03 +00:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'lev' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
cmd_set_memory ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
local memory = Memory.get_crew_memory ()
Progression.go_from_currentdestination_to_sea ()
end
end )
2022-03-19 21:20:55 +00:00
2022-07-16 21:46:23 +03:00
-- Add another hold
2022-03-08 23:36:03 +00:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'hld' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
cmd_set_memory ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
local memory = Memory.get_crew_memory ()
Upgrades.execute_upgade ( Upgrades.enum . EXTRA_HOLD )
end
end )
2022-03-19 21:20:55 +00:00
2022-07-16 21:46:23 +03:00
-- Upgrade power generators
2022-03-08 23:36:03 +00:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'pwr' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
cmd_set_memory ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
local memory = Memory.get_crew_memory ()
Upgrades.execute_upgade ( Upgrades.enum . MORE_POWER )
end
end )
2022-03-19 21:20:55 +00:00
2022-03-08 23:36:03 +00:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'score' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
cmd_set_memory ( cmd )
2022-03-19 21:20:55 +00:00
2024-09-12 13:27:22 +01:00
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
local memory = Memory.get_crew_memory ()
game.print ( 'faking a highscore...' )
Highscore.write_score ( memory.secs_id , 'fakers' , 0 , 40 , CoreData.version_string , 1 , 1 )
end
end )
2022-03-19 21:20:55 +00:00
2022-03-08 23:36:03 +00:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'scrget' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
game.print ( 'running Highscore.load_in_scores()' )
Highscore.load_in_scores ()
end
end )
2022-03-08 23:36:03 +00:00
2021-10-13 09:21:53 +01:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'tim' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
cmd_set_memory ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
local memory = Memory.get_crew_memory ()
Common.current_destination (). dynamic_data.timer = 88
game.print ( 'time set to 88 seconds' )
end
end )
2021-10-13 09:21:53 +01:00
2022-07-16 21:46:23 +03:00
-- Add 20000 coal fuel to ship
2021-10-13 09:21:53 +01:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'gld' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
cmd_set_memory ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
local memory = Memory.get_crew_memory ()
memory.stored_fuel = memory.stored_fuel + 20000
end
end )
2022-03-19 21:20:55 +00:00
2021-10-13 09:21:53 +01:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'rad' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
cmd_set_memory ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local destination = Common.current_destination ()
Islands.spawn_enemy_boat ( Boats.enum . RAFT )
local boat = destination.dynamic_data . enemyboats [ 1 ]
Ai.spawn_boat_biters ( boat , 0.89 , Boats.get_scope ( boat ). Data.capacity , Boats.get_scope ( boat ). Data.width )
game.print ( 'enemy boat spawned' )
end
end )
2022-03-19 21:20:55 +00:00
2022-02-28 16:36:46 +00:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'rad2' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
cmd_set_memory ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local destination = Common.current_destination ()
Islands.spawn_enemy_boat ( Boats.enum . RAFTLARGE )
local boat = destination.dynamic_data . enemyboats [ 1 ]
Ai.spawn_boat_biters ( boat , 0.89 , Boats.get_scope ( boat ). Data.capacity , Boats.get_scope ( boat ). Data.width )
game.print ( 'large enemy boat spawned' )
end
end )
2021-10-13 09:21:53 +01:00
2022-07-16 21:46:23 +03:00
-- Spawns kraken if at sea
2021-10-13 09:21:53 +01:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'krk' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
cmd_set_memory ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
local memory = Memory.get_crew_memory ()
Kraken.try_spawn_kraken ()
end
end )
2021-10-13 09:21:53 +01:00
2022-07-16 21:46:23 +03:00
-- Sets game speed to 0.25
2022-05-26 12:47:05 +01:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'1/4' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
game.speed = 0.25
end
end )
2022-05-26 12:47:05 +01:00
2022-07-16 21:46:23 +03:00
-- Sets game speed to 0.5
2022-05-26 12:47:05 +01:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'1/2' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
game.speed = 0.5
end
end )
2022-05-26 12:47:05 +01:00
2022-07-16 21:46:23 +03:00
-- Sets game speed to 1
2021-10-13 09:21:53 +01:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'1' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
game.speed = 1
end
end )
2022-03-19 21:20:55 +00:00
2022-07-16 21:46:23 +03:00
-- Sets game speed to 2
2022-03-04 17:57:58 +00:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'2' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
game.speed = 2
end
end )
2022-03-19 21:20:55 +00:00
2022-07-16 21:46:23 +03:00
-- Sets game speed to 4
2021-10-13 09:21:53 +01:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'4' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
game.speed = 4
end
end )
2022-03-19 21:20:55 +00:00
2022-07-16 21:46:23 +03:00
-- Sets game speed to 8
2021-10-13 09:21:53 +01:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'8' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
game.speed = 8
end
end )
2022-03-19 21:20:55 +00:00
2022-07-16 21:46:23 +03:00
-- Sets game speed to 16
2021-10-13 09:21:53 +01:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'16' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
game.speed = 16
end
end )
2022-03-19 21:20:55 +00:00
2022-07-16 21:46:23 +03:00
-- Sets game speed to 32
2021-10-13 09:21:53 +01:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'32' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
game.speed = 32
end
end )
2022-03-19 21:20:55 +00:00
2022-07-16 21:46:23 +03:00
-- Sets game speed to 64
2021-10-13 09:21:53 +01:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'64' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
game.speed = 64
end
end )
2022-03-19 21:20:55 +00:00
2021-10-13 09:21:53 +01:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'ef1' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
cmd_set_memory ( cmd )
2022-07-16 21:46:23 +03:00
2024-09-12 13:27:22 +01:00
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
local memory = Memory.get_crew_memory ()
local surface = game.surfaces [ Common.current_destination (). surface_name ]
Effects.worm_movement_effect ( surface , { x = - 45 , y = 0 }, false , true )
end
end )
2022-03-19 21:20:55 +00:00
2021-10-13 09:21:53 +01:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'ef2' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
cmd_set_memory ( cmd )
2022-07-16 21:46:23 +03:00
2024-09-12 13:27:22 +01:00
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
local memory = Memory.get_crew_memory ()
local surface = game.surfaces [ Common.current_destination (). surface_name ]
Effects.worm_movement_effect ( surface , { x = - 45 , y = 0 }, false , false )
end
end )
2022-03-19 21:20:55 +00:00
2021-10-13 09:21:53 +01:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'ef3' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
cmd_set_memory ( cmd )
2022-07-16 21:46:23 +03:00
2024-09-12 13:27:22 +01:00
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
local memory = Memory.get_crew_memory ()
local surface = game.surfaces [ Common.current_destination (). surface_name ]
Effects.worm_movement_effect ( surface , { x = - 45 , y = 0 }, true , false )
end
end )
2022-03-19 21:20:55 +00:00
2021-10-13 09:21:53 +01:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'ef4' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
cmd_set_memory ( cmd )
2022-07-16 21:46:23 +03:00
2024-09-12 13:27:22 +01:00
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
local memory = Memory.get_crew_memory ()
local surface = game.surfaces [ Common.current_destination (). surface_name ]
Effects.worm_emerge_effect ( surface , { x = - 45 , y = 0 })
end
end )
2022-03-19 21:20:55 +00:00
2021-10-13 09:21:53 +01:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'ef5' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
cmd_set_memory ( cmd )
2022-07-16 21:46:23 +03:00
2024-09-12 13:27:22 +01:00
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
local memory = Memory.get_crew_memory ()
local surface = game.surfaces [ Common.current_destination (). surface_name ]
Effects.biters_emerge ( surface , { x = - 30 , y = 0 })
end
end )
2022-03-19 21:20:55 +00:00
2021-10-13 09:21:53 +01:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'emoji' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
Server.to_discord_embed_raw ( CoreData.comfy_emojis . despair )
end
end )
2022-06-02 16:07:17 +03:00
2022-07-16 21:46:23 +03:00
-- Spawn friendly gun turrets with ammo to defend your ship
commands.add_command (
2024-09-12 13:27:22 +01:00
'def' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
cmd_set_memory ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
local memory = Memory.get_crew_memory ()
if not Common.is_id_valid ( memory.id ) then return end
2022-10-21 20:16:42 +03:00
2024-09-12 13:27:22 +01:00
local boat = memory.boat
local scope = Boats.get_scope ( boat )
local surface = game.surfaces [ boat.surface_name ]
if not surface then return end
2022-07-16 21:46:23 +03:00
2024-09-12 13:27:22 +01:00
if scope.Data . cannons then
for i = - 2 , 2 do
local p1 = scope.Data . cannons [ 1 ]
local p2 = { x = boat.position . x + p1.x + i * 2 , y = boat.position . y + p1.y - 4 }
local e = surface.create_entity ({ name = 'gun-turret' , position = p2 , force = boat.force_name , create_build_effect_smoke = false })
if e and e.valid then
e.insert ({ name = "uranium-rounds-magazine" , count = 200 })
end
2022-07-16 21:46:23 +03:00
end
2024-09-12 13:27:22 +01:00
for i = - 2 , 2 do
local p1 = scope.Data . cannons [ 2 ]
local p2 = { x = boat.position . x + p1.x + i * 2 , y = boat.position . y + p1.y + 3 }
local e = surface.create_entity ({ name = 'gun-turret' , position = p2 , force = boat.force_name , create_build_effect_smoke = false })
if e and e.valid then
e.insert ({ name = "uranium-rounds-magazine" , count = 200 })
end
2022-07-16 21:46:23 +03:00
end
end
end
2024-09-12 13:27:22 +01:00
end )
2022-07-16 21:46:23 +03:00
-- Spawn friendly gun turrets with ammo around you
commands.add_command (
2024-09-12 13:27:22 +01:00
'atk' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
cmd_set_memory ( cmd )
local param = tostring ( cmd.parameter )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
local memory = Memory.get_crew_memory ()
if not Common.is_id_valid ( memory.id ) then return end
local boat = memory.boat
2022-07-16 21:46:23 +03:00
2024-09-12 13:27:22 +01:00
local p = player.character . position
local turret_positions = {
{ x = p.x - 2 , y = p.y - 2 },
{ x = p.x - 2 , y = p.y + 2 },
{ x = p.x + 2 , y = p.y - 2 },
{ x = p.x + 2 , y = p.y + 2 },
}
2022-07-16 21:46:23 +03:00
2024-09-12 13:27:22 +01:00
for _ , pos in pairs ( turret_positions ) do
local e = player.surface . create_entity ({ name = 'gun-turret' , position = pos , force = boat.force_name , create_build_effect_smoke = false })
if e and e.valid then
e.insert ({ name = "uranium-rounds-magazine" , count = 200 })
end
2022-07-16 21:46:23 +03:00
end
end
2024-09-12 13:27:22 +01:00
end )
2022-07-16 21:46:23 +03:00
-- Give advanced starter kit to make exploration easier
commands.add_command (
2024-09-12 13:27:22 +01:00
'kit' ,
{ 'pirates.cmd_explain_dev' },
function ( cmd )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
2022-07-16 21:46:23 +03:00
2024-09-12 13:27:22 +01:00
player.insert { name = 'substation' , count = 50 }
player.insert { name = 'solar-panel' , count = 50 }
player.insert { name = 'vehicle-machine-gun' , count = 1 }
player.insert { name = 'uranium-rounds-magazine' , count = 200 }
player.insert { name = 'raw-fish' , count = 100 }
player.insert { name = 'coin' , count = 50000 }
player.insert { name = 'cluster-grenade' , count = 100 }
player.insert { name = 'steel-chest' , count = 50 }
player.insert { name = 'express-loader' , count = 50 }
player.insert { name = 'burner-inserter' , count = 50 }
player.insert { name = 'accumulator' , count = 50 }
end
end )
2024-09-12 12:25:24 +01:00
commands.add_command (
2024-09-12 13:27:22 +01:00
'buff' ,
'buffs all damage by 10%' ,
function ( cmd )
if check_admin ( cmd ) then
local player = game.players [ cmd.player_index ]
Crew.buff_all_damage ( 0.1 )
end
end )
end