factorio-light/factorio-light/data.lua
Simon Brodtmann 5ef2af8ca9 Several fixes and tweaks
Changes:
    - The satellite recipe cost is divided by 4-5
    - Spidertron added back as expensive end-game technology
  Bug Fixes:
    - Added missing prerequisites to the rocket silo technology
    - Adds circuit wires to autmoation 2
2026-02-03 00:46:05 +01:00

155 lines
No EOL
7.1 KiB
Lua

require "__cf-lib__/util/table"
local util = require "util"
local Technology = require("__cf-lib__/data/Technology")
local Recipe = require("__cf-lib__/data/Recipe")
-- Clear space science
util.removeTechWithPrerequisite("space-science-pack")
-- Move spidertron
Technology:new("spidertron")
:replacePrerequisite("military-4", "military-3")
:replacePrerequisite("fission-reactor-equipment", "speed-module-3")
Recipe:new("spidertron")
:replaceIngredient("fission-reactor-equipment", "rocket-fuel", 100)
:replaceIngredient("efficiency-module-3", 50)
:addIngredient("speed-module-3", 50)
-- Clear production/utility science
util.removeEverythingRecursivelyByTechnology("uranium-mining", { hideEntities = { "heat-pipe", "nuclear-reactor" } })
util.removeEverythingRecursivelyByTechnology("circuit-network", { skip = { "iron-stick" }, hideEntity = true })
util.removeEverythingRecursivelyByTechnology("follower-robot-count-1")
util.removeEverythingRecursivelyByTechnology("military-4", { hideEntities = { "power-armor-mk2", "artillery-turret", "artillery-wagon" } })
util.removeEverythingRecursivelyByTechnology("defender")
util.removeEverythingByTechnology("coal-liquefaction")
util.removeEverythingByTechnology("effect-transmission", { hideEntity = true })
util.removeEverythingByTechnology("discharge-defense-equipment")
util.removeEverythingByTechnology("energy-shield-mk2-equipment")
util.removeEverythingByTechnology("personal-roboport-mk2-equipment")
util.removeEverythingByTechnology("battery-mk2-equipment")
util.removeEverythingByItem("discharge-defense-remote")
-- Add circuit network again
table.insert(data.raw.technology["automation-2"].effects, {
type = "unlock-circuit-network",
modifier = true
})
-- Move rocket
Technology:new("rocket-silo")
:removePrerequisite("productivity-module-3")
:removePrerequisite("speed-module-3")
:removePrerequisite("utility-science-pack")
:removeIngredient("production-science-pack")
:removeIngredient("utility-science-pack")
:addPrerequisite("electric-engine")
:addPrerequisite("low-density-structure")
-- Move production/utility techs to space science
util.replacePrerequisite("production-science-pack", "space-science-pack")
util.replacePrerequisite("utility-science-pack", "space-science-pack")
util.replaceTechIngredient("production-science-pack", "space-science-pack")
util.replaceTechIngredient("utility-science-pack", "space-science-pack")
util.removeEverythingByTechnology("production-science-pack")
util.removeEverythingByTechnology("utility-science-pack")
data.raw["lab"]["lab"].inputs = table.filter(
data.raw["lab"]["lab"].inputs,
function(value)
return not table.contains({ "production-science-pack", "utility-science-pack" }, value)
end
)
-- Remove processing unit
local recipes = { "speed-module-2", "speed-module-3", "efficiency-module-2", "efficiency-module-3", "productivity-module-2", "productivity-module-3" }
for _, recipe in pairs(recipes) do
Recipe:new(recipe):replaceIngredient("advanced-circuit", "electronic-circuit")
end
util.replaceRecipeIngredient("processing-unit", "advanced-circuit", 2)
util.replacePrerequisite("processing-unit", "chemical-science-pack")
util.removeEverythingByTechnology("processing-unit", { skip = { "advanced-circuit" } })
-- Remove tips and tricks
data.raw["tips-and-tricks-item"]["spidertron-control"] = nil
data.raw["tips-and-tricks-item"]["copy-paste-spidertron"] = nil
data.raw["tips-and-tricks-item"]["circuit-network"] = nil
data.raw["tips-and-tricks-item"]["connect-switch"] = nil
-- Remove menu simulations
data.raw["utility-constants"]["default"].main_menu_simulations.nauvis_biter_base_laser_defense = nil
-- Remove behemoth enemies
data.raw["unit"]["behemoth-biter"] = nil
data.raw["unit"]["behemoth-spitter"] = nil
data.raw["turret"]["behemoth-worm-turret"] = nil
data.raw["corpse"]["behemoth-biter-corpse"] = nil
data.raw["corpse"]["behemoth-spitter-corpse"] = nil
data.raw["corpse"]["behemoth-worm-corpse"] = nil
data.raw["corpse"]["behemoth-worm-corpse-burrowed"] = nil
data.raw["unit-spawner"]["biter-spawner"].result_units = (function()
local res = {}
res[1] = { "small-biter", { { 0.0, 0.3 }, { 0.6, 0.0 } } }
if not data.is_demo then
res[2] = { "medium-biter", { { 0.4, 0.0 }, { 0.6, 0.3 }, { 0.8, 0.1 } } }
res[3] = { "big-biter", { { 0.8, 0.0 }, { 1.0, 0.4 } } }
end
return res
end)()
data.raw["unit-spawner"]["spitter-spawner"].result_units = {
{ "small-biter", { { 0.0, 0.3 }, { 0.55, 0 } } },
{ "small-spitter", { { 0.2, 0.0 }, { 0.4, 0.3 }, { 0.6, 0.0 } } },
{ "medium-spitter", { { 0.4, 0.0 }, { 0.6, 0.3 }, { 0.8, 0.1 } } },
{ "big-spitter", { { 0.8, 0.0 }, { 1.0, 0.4 } } }
}
data.raw["group-attack-achievement"]["it-stinks-and-they-dont-like-it"].entities = table.filter(
data.raw["group-attack-achievement"]["it-stinks-and-they-dont-like-it"].entities,
function(value)
return not table.contains({ "behemoth-biter", "behemoth-spitter" }, value)
end
)
-- Remove uranium
data.raw["resource"]["uranium-ore"] = nil
data.raw["autoplace-control"]["uranium-ore"] = nil
data.raw["planet"]["nauvis"].map_gen_settings.autoplace_controls["uranium-ore"] = nil
data.raw["planet"]["nauvis"].map_gen_settings.autoplace_settings["entity"].settings["uranium-ore"] = nil
data.raw["map-gen-presets"]["default"]["rich-resources"].basic_settings.autoplace_controls["uranium-ore"] = nil
data.raw["map-gen-presets"]["default"]["rail-world"].basic_settings.autoplace_controls["uranium-ore"] = nil
data.raw["map-gen-presets"]["default"]["ribbon-world"].basic_settings.autoplace_controls["uranium-ore"] = nil
util.removeEverythingByItem("uranium-235")
util.removeEverythingByItem("uranium-238")
util.removeEverythingByItem("depleted-uranium-fuel-cell")
-- Remove combat robots and remotes
util.removeEntity("defender", { hideEntity = true })
util.removeEntity("distractor", { hideEntity = true })
util.removeEntity("destroyer", { hideEntity = true })
util.removeEverythingByItem("spidertron-remote")
util.removeEverythingByItem("artillery-targeting-remote")
-- Buff rocket silo
data.raw["rocket-silo"]["rocket-silo"].rocket_parts_required = 25
-- Manually set satellite recipe
data.raw.recipe["satellite"].ingredients = {
{ type = "item", name = "advanced-circuit", amount = 50 },
{ type = "item", name = "low-density-structure", amount = 25 },
{ type = "item", name = "rocket-fuel", amount = 20 },
{ type = "item", name = "solar-panel", amount = 20 },
{ type = "item", name = "accumulator", amount = 20 },
{ type = "item", name = "radar", amount = 1 },
}
-- Buff LDS
Recipe:new("low-density-structure")
:replaceIngredient("copper-plate", 2)
:replaceIngredient("steel-plate", 1)
-- Update character
data.raw["character"]["character"].animations[3].armors = table.filter(data.raw["character"]["character"].animations[3].armors, function(value)
return value ~= "power-armor-mk2"
end)
data.raw["character-corpse"]["character-corpse"].armor_picture_mapping["power-armor-mk2"] = nil
-- Increase moisture
data.raw.planet["nauvis"].map_gen_settings.autoplace_controls["starting_area_moisture"] = { size = 2, richness = 6 }