enemy7's picture
Upload 1553 files
898c672
local config = {script_data = {}}
config.get_config = function()
local data = {}
data.game_config =
{
time_limit = 0,
allow_spectators = false,
no_rush_time = 0,
base_exclusion_time = 0,
reveal_team_positions = true,
reveal_map_center = true,
team_walls = true,
team_moat = true,
team_turrets = true,
turret_ammunition =
{
options = {"firearm-magazine"},
selected = "firearm-magazine"
},
team_artillery = false,
give_artillery_remote = false,
auto_new_round_time = 0,
protect_empty_teams = false,
enemy_building_restriction = false,
neutral_chests = false,
seed = 0
}
data.victory =
{
last_silo_standing =
{
active = true
},
space_race =
{
active = true,
required_rockets_sent = 1
},
production_score =
{
active = false,
required_production_score = 50000000
},
oil_harvest =
{
active = false,
required_oil = 1000000
},
kill_score =
{
active = false,
required_kill_score = 1000000
}
}
local items = game.item_prototypes
local entity_name = "gun-turret"
local prototype = game.entity_prototypes[entity_name]
if not prototype then
data.game_config.team_turrets = nil
data.game_config.turret_ammunition = nil
else
local category = prototype.attack_parameters.ammo_category
if category then
local ammos = {}
for name, item in pairs (items) do
if item.type == "ammo" then
local ammo = item.get_ammo_type()
if ammo and ammo.category == category then
table.insert(ammos, name)
end
end
end
data.game_config.turret_ammunition.options = ammos
if not items["firearm-magazine"] then
data.game_config.turret_ammunition.selected = ammos[1] or ""
end
end
end
data.team_config =
{
friendly_fire = true,
unlock_combat_research = false,
defcon_mode = false,
max_players = 0,
defcon_timer = 5,
starting_chest_multiplier = 5,
research_level =
{
options = {"none"},
selected = "none"
},
average_team_displacement = math.floor(game.surfaces[1].get_starting_area_radius()) * 6 ,
always_day = false,
evolution_factor = 0,
duplicate_starting_area_entities = false,
technology_price_multiplier = 1
}
local packs = {}
local sorted_packs = {}
local techs = game.technology_prototypes
for k, tech in pairs (techs) do
for k, ingredient in pairs (tech.research_unit_ingredients) do
if not packs[ingredient.name] then
packs[ingredient.name] = true
local order = tostring(items[ingredient.name].order) or "Z-Z"
local added = false
for k, t in pairs (sorted_packs) do
if order < t.order then
table.insert(sorted_packs, k, {name = ingredient.name, order = order})
added = true
break
end
end
if not added then
table.insert(sorted_packs, {name = ingredient.name, order = order})
end
end
end
end
for k, t in pairs (sorted_packs) do
table.insert(data.team_config.research_level.options, t.name)
end
data.research_ingredient_list = {}
for k, research in pairs (data.team_config.research_level.options) do
data.research_ingredient_list[research] = false
end
data.colors =
{
{ name = "orange" , color = { r = 0.869, g = 0.5 , b = 0.130, a = 0.5 }},
{ name = "purple" , color = { r = 0.485, g = 0.111, b = 0.659, a = 0.5 }},
{ name = "red" , color = { r = 0.815, g = 0.024, b = 0.0 , a = 0.5 }},
{ name = "green" , color = { r = 0.093, g = 0.768, b = 0.172, a = 0.5 }},
{ name = "blue" , color = { r = 0.155, g = 0.540, b = 0.898, a = 0.5 }},
{ name = "yellow" , color = { r = 0.835, g = 0.666, b = 0.077, a = 0.5 }},
{ name = "pink" , color = { r = 0.929, g = 0.386, b = 0.514, a = 0.5 }},
{ name = "white" , color = { r = 0.8 , g = 0.8 , b = 0.8 , a = 0.5 }},
{ name = "black" , color = { r = 0.1 , g = 0.1 , b = 0.1, a = 0.5 }},
{ name = "gray" , color = { r = 0.4 , g = 0.4 , b = 0.4, a = 0.5 }},
{ name = "brown" , color = { r = 0.300, g = 0.117, b = 0.0, a = 0.5 }},
{ name = "cyan" , color = { r = 0.275, g = 0.755, b = 0.712, a = 0.5 }},
{ name = "acid" , color = { r = 0.559, g = 0.761, b = 0.157, a = 0.5 }}
}
data.color_map = {}
for k, color in pairs (data.colors) do
data.color_map[color.name] = k
end
data.teams =
{
{name = game.backer_names[math.random(#game.backer_names)], color = "orange", team = "-", members = {}},
{name = game.backer_names[math.random(#game.backer_names)], color = "purple", team = "-", members = {}}
}
data.starting_equipment =
{
options = {"none", "small", "medium", "large"},
selected = "none"
}
data.starting_chest =
{
options = {"none", "small", "medium", "large"},
selected = "none"
}
data.inventory_list =
{
none =
{},
small =
{
["iron-plate"] = 200,
["pipe"] = 100,
["pipe-to-ground"] = 20,
["copper-plate"] = 200,
["iron-gear-wheel"] = 200,
["electronic-circuit"] = 200,
["transport-belt"] = 400,
["repair-pack"] = 20,
["inserter"] = 100,
["small-electric-pole"] = 50,
["burner-mining-drill"] = 50,
["stone-furnace"] = 50,
["burner-inserter"] = 100,
["assembling-machine-1"] = 20,
["electric-mining-drill"] = 20,
["boiler"] = 5,
["steam-engine"] = 10,
["offshore-pump"] = 2,
["wood"] = 50
},
medium =
{
["iron-plate"] = 200,
["pipe"] = 100,
["pipe-to-ground"] = 20,
["iron-gear-wheel"] = 100,
["copper-plate"] = 100,
["steel-plate"] = 100,
["electronic-circuit"] = 400,
["transport-belt"] = 400,
["underground-belt"] = 20,
["splitter"] = 20,
["repair-pack"] = 20,
["inserter"] = 150,
["small-electric-pole"] = 100,
["medium-electric-pole"] = 50,
["fast-inserter"] = 50,
["long-handed-inserter"] = 50,
["burner-inserter"] = 100,
["burner-mining-drill"] = 50,
["electric-mining-drill"] = 40,
["stone-furnace"] = 100,
["steel-furnace"] = 30,
["assembling-machine-1"] = 40,
["assembling-machine-2"] = 20,
["boiler"] = 10,
["steam-engine"] = 20,
["chemical-plant"] = 20,
["oil-refinery"] = 5,
["pumpjack"] = 8,
["offshore-pump"] = 2,
["wood"] = 50
},
large =
{
["iron-plate"] = 200,
["pipe"] = 100,
["pipe-to-ground"] = 20,
["copper-plate"] = 200,
["steel-plate"] = 200,
["electronic-circuit"] = 400,
["iron-gear-wheel"] = 250,
["transport-belt"] = 400,
["underground-belt"] = 40,
["splitter"] = 40,
["repair-pack"] = 20,
["inserter"] = 200,
["burner-inserter"] = 50,
["small-electric-pole"] = 50,
["burner-mining-drill"] = 50,
["electric-mining-drill"] = 50,
["stone-furnace"] = 100,
["steel-furnace"] = 50,
["electric-furnace"] = 20,
["assembling-machine-1"] = 50,
["assembling-machine-2"] = 40,
["assembling-machine-3"] = 20,
["fast-inserter"] = 100,
["long-handed-inserter"] = 100,
["medium-electric-pole"] = 50,
["substation"] = 10,
["big-electric-pole"] = 10,
["boiler"] = 10,
["steam-engine"] = 20,
["chemical-plant"] = 20,
["oil-refinery"] = 5,
["pumpjack"] = 10,
["offshore-pump"] = 2,
["wood"] = 50
}
}
data.equipment_list =
{
none =
{
["pistol"] = 1,
["firearm-magazine"] = 10
},
small =
{
["submachine-gun"] = 1,
["firearm-magazine"] = 30,
["shotgun"] = 1,
["shotgun-shell"] = 20,
["heavy-armor"] = 1
},
medium =
{
["submachine-gun"] = 1,
["firearm-magazine"] = 40,
["shotgun"] = 1,
["shotgun-shell"] = 20,
["car"] = 1,
["modular-armor"] = 1
},
large =
{
["submachine-gun"] = 1,
["piercing-rounds-magazine"] = 40,
["combat-shotgun"] = 1,
["piercing-shotgun-shell"] = 20,
["rocket-launcher"] = 1,
["rocket"] = 80,
["construction-robot"] = 25,
["car"] = 1,
["power-armor"] = 1,
["fusion-reactor-equipment"] = 1,
["exoskeleton-equipment"] = 1,
["energy-shield-equipment"] = 2,
["personal-roboport-mk2-equipment"] = 1
}
}
data.prototypes =
{
chest = "steel-chest",
wall = "stone-wall",
gate = "gate",
turret = "gun-turret",
artillery = "artillery-turret",
artillery_ammo = "artillery-shell",
silo = "rocket-silo",
tile_1 = "refined-concrete",
tile_2 = "refined-hazard-concrete-left",
artillery_remote = "artillery-targeting-remote",
oil = "crude-oil",
oil_resource = "crude-oil",
moat = "water"
}
data.silo_offset = {x = 0, y = 0}
data.chest_offset = {x = 0, y = 16}
return data
end
config.give_equipment = function(player)
if not config.script_data.config.equipment_list then return end
if not config.script_data.config.starting_equipment then return end
local setting = config.script_data.config.starting_equipment.selected
if not setting then return end
local equipment = config.script_data.config.equipment_list[setting]
if not equipment then return end
local items = game.item_prototypes
local list = {items = {}, armor, equipment = {}}
for name, count in pairs (equipment) do
local item = items[name]
if item then
if item.type == "armor" then
local count = count
if not list.armor then
list.armor = item
end
count = count - 1
if count > 0 then
list.items[item] = (list.items[item] or 0) + count
end
elseif item.place_as_equipment_result then
list.equipment[item] = (list.equipment[item] or 0) + count
else
list.items[item] = (list.items[item] or 0) + count
end
else
equipment[name] = nil
end
end
local put_equipment = false
if list.armor then
local stack = player.get_inventory(defines.inventory.character_armor)[1]
stack.set_stack{name = list.armor.name}
local grid = stack.grid
if grid then
put_equipment = true
for prototype, count in pairs (list.equipment) do
local equipment = prototype.place_as_equipment_result
for k = 1, count do
if not grid.put{name = equipment.name} then
player.insert{name = prototype.name}
end
end
end
end
end
if not put_equipment then
for prototype, count in pairs (list.equipment) do
player.insert{name = prototype.name, count = count}
end
end
for prototype, count in pairs (list.items) do
player.insert{name = prototype.name, count = count}
end
end
config.localised_names =
{
seed = {"gui-map-generator.map-seed"}
}
-- "" for no tooltip
config.localised_tooltips =
{
friendly_fire = "",
always_day = "",
evolution_factor = "",
duplicate_starting_area_entities = "",
friendly_fire = "",
technology_price_multiplier = ""
}
return config