Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions data-updates.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,11 @@
-- TODO: Move new files (globals, adjustments, whatever) into a single extra folder instead of having them spread between scripts/prototypes/whatever?
local adjustments = require("prototypes/adjustments")
local custom_exclusion_ranges = { -- these beacons are given custom exclusion ranges: "strict" ranges disable beacons whose distribution areas overlap them, "solo" means the smallest range for "strict" beacons which is large enough to prevent synergy with other beacons; the same values are also provided in control.lua
["ab-focused-beacon"] = {add=1},
["ab-conflux-beacon"] = {add=3},
["ab-hub-beacon"] = {add=20},
["ab-isolation-beacon"] = {add=8, mode="strict"},
["ab-focused-beacon"] = {add=startup["ab-focused-beacon-exclusion-range"].value},
["ab-node-beacon"] = {add=startup["ab-node-beacon-exclusion-range"].value},
["ab-conflux-beacon"] = {add=startup["ab-conflux-beacon-exclusion-range"].value},
["ab-hub-beacon"] = {add=startup["ab-hub-beacon-exclusion-range"].value},
["ab-isolation-beacon"] = {add=startup["ab-isolation-beacon-exclusion-range"].value, mode="strict"},
["se-basic-beacon"] = {value="solo", mode="strict"},
["se-compact-beacon"] = {value="solo", mode="strict"},
["se-compact-beacon-2"] = {value="solo", mode="strict"},
Expand Down
75 changes: 72 additions & 3 deletions locale/en/locale.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,47 @@ ab-update-rate=Time between updates (seconds)
ab-persistent-alerts=Persistent alerts

ab-disable-exclusion-areas=DEV: Disable exclusion areas
ab-focused-beacon-exclusion-range=Focused beacon exclusion range
ab-node-beacon-exclusion-range=Node beacon exclusion range
ab-conflux-beacon-exclusion-range=Conflux beacon exclusion range
ab-hub-beacon-exclusion-range=Hub beacon exclusion range
ab-isolation-beacon-exclusion-range=Isolation beacon exclusion range
ab-node-beacon-supply-area-distance=Node beacon supply area distance
ab-node-beacon-module-slots=Node beacon module slots
ab-node-beacon-distribution-effectivity=Node beacon distribution effectivity
ab-node-beacon-distribution-effectivity-bonus-per-quality-level=Node beacon quality bonus

ab-standard-beacon-supply-area-distance=Standard beacon supply area distance
ab-standard-beacon-module-slots=Standard beacon module slots
ab-standard-beacon-distribution-effectivity=Standard beacon distribution effectivity
ab-standard-beacon-distribution-effectivity-bonus-per-quality-level=Standard beacon quality bonus

ab-focused-beacon-supply-area-distance=Focused beacon supply area distance
ab-focused-beacon-module-slots=Focused beacon module slots
ab-focused-beacon-distribution-effectivity=Focused beacon distribution effectivity
ab-focused-beacon-distribution-effectivity-bonus-per-quality-level=Focused beacon quality bonus

ab-conflux-beacon-supply-area-distance=Conflux beacon supply area distance
ab-conflux-beacon-module-slots=Conflux beacon module slots
ab-conflux-beacon-distribution-effectivity=Conflux beacon distribution effectivity
ab-conflux-beacon-distribution-effectivity-bonus-per-quality-level=Conflux beacon quality bonus

ab-hub-beacon-supply-area-distance=Hub beacon supply area distance
ab-hub-beacon-module-slots=Hub beacon module slots
ab-hub-beacon-distribution-effectivity=Hub beacon distribution effectivity
ab-hub-beacon-distribution-effectivity-bonus-per-quality-level=Hub beacon quality bonus

ab-isolation-beacon-supply-area-distance=Isolation beacon supply area distance
ab-isolation-beacon-module-slots=Isolation beacon module slots
ab-isolation-beacon-distribution-effectivity=Isolation beacon distribution effectivity
ab-isolation-beacon-distribution-effectivity-bonus-per-quality-level=Isolation beacon quality bonus
ab-isolation-beacon-size-six=Isolation beacon even size

[mod-setting-description]
ab-balance-other-beacons=Adjusts stats of beacons from the following mods to be fairer:\nBob's Modules\n5Dim's Modules\nAdvanced Modules\nMini Machines\nMicro Machines\nElgskred's Extension\nZombies Extended Modules\nTarawind Beacons\nBetter Beacons\nStarry Sakura\nFast Furnaces
ab-override-vanilla-beacons=Overrides some balance changes made to vanilla beacons by other mods; creates a replacement instead if vanilla beacons have scripted behavior or cannot be cleanly overridden\nStats: 3x3, 2 modules, 0.5 effiency, 3 range, 3 exclusion range
ab-enable-focused-beacons=Small beacons which are excellent in tight spaces\nStats: 2x2, 3 modules, 0.75 effiency, 2 range, 3 exclusion range
ab-enable-node-beacons=Medium beacons which can fill multiple roles\nStats: 3x3, 3 modules, 0.5 effiency, 8 range, 8 exclusion range
ab-enable-node-beacons=Medium beacons which can fill multiple roles\nStats: 3x3, 3 modules, 0.5 effiency, configurable range (default 8), 8 exclusion range
ab-enable-conflux-beacons=Large beacons which support decentralized building\nStats: 4x4, 6 modules, 0.5 effiency, 9 range, 12 exclusion range
ab-enable-hub-beacons=Huge beacons which support centralized building\nStats: 4x4, 9 modules, 0.5 effiency, 14 range, 34 exclusion range
ab-enable-isolation-beacons=Giant beacons which don't interact with other beacons\nStats: 5x5, 10 modules, 0.5 effiency, 30 range, 38 strict exclusion range
Expand All @@ -42,7 +77,41 @@ ab-update-rate=Controls whether the game updates all beacons periodically and ho
ab-persistent-alerts=Alerts for disabled beacons persist until the issue is resolved.\nHas a minor performance impact.

ab-disable-exclusion-areas=Disables exclusion areas. This will stop the mod from working as intended. Meant as a last resort for other mods to disable all scripting and implement their own.
ei_beacon-overload=If disabled, supercooled beacons will be far more powerful than intended and smaller beacons such as standard and focused beacons will behave more normally.
ab-focused-beacon-exclusion-range=Sets the additional exclusion range for focused beacons. Default is 1, which results in a 3 tile exclusion range.
ab-node-beacon-exclusion-range=Sets the additional exclusion range for node beacons. Default is 2, which results in a 7 tile exclusion range.
ab-conflux-beacon-exclusion-range=Sets the additional exclusion range for conflux beacons. Default is 3, which results in a 12 tile exclusion range.
ab-hub-beacon-exclusion-range=Sets the additional exclusion range for hub beacons. Default is 20, which results in a 34 tile exclusion range.
ab-isolation-beacon-exclusion-range=Sets the additional exclusion range for isolation beacons. Default is 8, which results in a 38 tile strict exclusion range.
ab-node-beacon-supply-area-distance=Sets the supply area distance for node beacons. Default is 8, which extends from edge of collision box (19x19 tiles total coverage).
ab-node-beacon-module-slots=Sets the number of module slots for node beacons. Default is 3.
ab-node-beacon-distribution-effectivity=Sets the distribution effectivity for node beacons. Default is 0.5.
ab-node-beacon-distribution-effectivity-bonus-per-quality-level=Sets the distribution effectivity bonus per quality level for node beacons. Default is 0.1.

ab-standard-beacon-supply-area-distance=Sets the supply area distance for standard beacons. Default is 3.
ab-standard-beacon-module-slots=Sets the number of module slots for standard beacons. Default is 2.
ab-standard-beacon-distribution-effectivity=Sets the distribution effectivity for standard beacons. Default is 0.5.
ab-standard-beacon-distribution-effectivity-bonus-per-quality-level=Sets the distribution effectivity bonus per quality level for standard beacons. Default is 0.1.

ab-focused-beacon-supply-area-distance=Sets the supply area distance for focused beacons. Default is 2.
ab-focused-beacon-module-slots=Sets the number of module slots for focused beacons. Default is 3.
ab-focused-beacon-distribution-effectivity=Sets the distribution effectivity for focused beacons. Default is 0.75.
ab-focused-beacon-distribution-effectivity-bonus-per-quality-level=Sets the distribution effectivity bonus per quality level for focused beacons. Default is 0.1.

ab-conflux-beacon-supply-area-distance=Sets the supply area distance for conflux beacons. Default is 9.
ab-conflux-beacon-module-slots=Sets the number of module slots for conflux beacons. Default is 6.
ab-conflux-beacon-distribution-effectivity=Sets the distribution effectivity for conflux beacons. Default is 0.5.
ab-conflux-beacon-distribution-effectivity-bonus-per-quality-level=Sets the distribution effectivity bonus per quality level for conflux beacons. Default is 0.1.

ab-hub-beacon-supply-area-distance=Sets the supply area distance for hub beacons. Default is 14.
ab-hub-beacon-module-slots=Sets the number of module slots for hub beacons. Default is 9.
ab-hub-beacon-distribution-effectivity=Sets the distribution effectivity for hub beacons. Default is 0.5.
ab-hub-beacon-distribution-effectivity-bonus-per-quality-level=Sets the distribution effectivity bonus per quality level for hub beacons. Default is 0.1.

ab-isolation-beacon-supply-area-distance=Sets the supply area distance for isolation beacons. Default is 30.
ab-isolation-beacon-module-slots=Sets the number of module slots for isolation beacons. Default is 10.
ab-isolation-beacon-distribution-effectivity=Sets the distribution effectivity for isolation beacons. Default is 0.5.
ab-isolation-beacon-distribution-effectivity-bonus-per-quality-level=Sets the distribution effectivity bonus per quality level for isolation beacons. Default is 0.1.
ab-isolation-beacon-size-six=Sets the size of the isolation beacon to 6 instead of 5 to make it centralizable in even grids.

[string-mod-setting]
ab-technology-layout-tech-1=1 - No new technologies
Expand Down Expand Up @@ -156,7 +225,7 @@ effect_transmission_novel=Beacons with novel behaviors.
effect_transmission_medium_range=Beacons with longer range.
effect_transmission_long_range=Beacons with even longer range.
ab-focused-beacon=Beacons with less range and more power.
ab-node-beacon=Beacons with more range and slightly more power.
ab-node-beacon=Beacons with configurable range and slightly more power.
ab-conflux-beacon=Beacons with more range and significantly more power.
ab-hub-beacon=Powerful long range beacons which change how closely nearby beacons can be placed to each other.
ab-isolation-beacon=Powerful beacons with extra long range and strict exclusion areas. Cannot be used alongside other beacons.
Expand Down
4 changes: 2 additions & 2 deletions prototypes/conflux-beacon.lua
Original file line number Diff line number Diff line change
Expand Up @@ -99,9 +99,9 @@ local beacon = {
distribution_effectivity_bonus_per_quality_level = 0.1,
profile = {1.3334, 1.2, 1.08, 1, 0.9, 0.7978, 0.7042, 0.6258, 0.567, 0.5158, 0.4741, 0.438, 0.4052, 0.3786, 0.3534, 0.3313, 0.3118, 0.2945, 0.2789, 0.265},
beacon_counter = "total",
supply_area_distance = 9, -- extends from edge of collision box (22x22)
supply_area_distance = settings.startup["ab-conflux-beacon-supply-area-distance"].value, -- extends from edge of collision box (22x22)
-- exclusion_area_distance = 12 (28x28; hardcoded in control.lua)
module_slots = 6,
module_slots = settings.startup["ab-conflux-beacon-module-slots"].value,
icons_positioning = {{
inventory_index = defines.inventory.beacon_modules,
shift = {0, 0.5},
Expand Down
8 changes: 4 additions & 4 deletions prototypes/focused-beacon.lua
Original file line number Diff line number Diff line change
Expand Up @@ -95,13 +95,13 @@ local beacon = {
selection_box = { { -1, -1 }, { 1, 1 } },
drawing_box_vertical_extension = 0.6,
allowed_effects = {"consumption", "speed", "pollution"},
distribution_effectivity = 0.75,
distribution_effectivity_bonus_per_quality_level = 0.1,
distribution_effectivity = settings.startup["ab-focused-beacon-distribution-effectivity"].value,
distribution_effectivity_bonus_per_quality_level = settings.startup["ab-focused-beacon-distribution-effectivity-bonus-per-quality-level"].value,
profile = {1.556, 1.334, 1.15, 1, 0.86, 0.75, 0.66, 0.59, 0.5333, 0.4868, 0.45, 0.414, 0.3872, 0.3635, 0.3423, 0.3233, 0.3059, 0.2901, 0.2755, 0.2621},
beacon_counter = "total",
supply_area_distance = 2, -- extends from edge of collision box (6x6)
supply_area_distance = settings.startup["ab-focused-beacon-supply-area-distance"].value, -- extends from edge of collision box (6x6)
-- exclusion_area_distance = 3 (8x8; hardcoded in control.lua)
module_slots = 3,
module_slots = settings.startup["ab-focused-beacon-module-slots"].value,
icons_positioning = {{
inventory_index = defines.inventory.beacon_modules,
shift = {0, 0.25},
Expand Down
8 changes: 4 additions & 4 deletions prototypes/hub-beacon.lua
Original file line number Diff line number Diff line change
Expand Up @@ -96,13 +96,13 @@ local beacon = {
selection_box = { { -2, -2 }, { 2, 2 } },
drawing_box_vertical_extension = 2.7,
allowed_effects = {"consumption", "speed", "pollution"},
distribution_effectivity = 0.5,
distribution_effectivity_bonus_per_quality_level = 0.1,
distribution_effectivity = settings.startup["ab-hub-beacon-distribution-effectivity"].value,
distribution_effectivity_bonus_per_quality_level = settings.startup["ab-hub-beacon-distribution-effectivity-bonus-per-quality-level"].value,
profile = {1, 0.97, 0.95, 0.9334, 0.93, 0.9275, 0.925, 0.9225, 0.92, 0},
beacon_counter = "total",
supply_area_distance = 14, -- extends from edge of collision box (32x32)
supply_area_distance = settings.startup["ab-hub-beacon-supply-area-distance"].value, -- extends from edge of collision box (32x32)
-- exclusion_area_distance = 34 (72x72; hardcoded in control.lua)
module_slots = 9,
module_slots = settings.startup["ab-hub-beacon-module-slots"].value,
icons_positioning = {{
inventory_index = defines.inventory.beacon_modules,
shift = {0, 0.1},
Expand Down
17 changes: 11 additions & 6 deletions prototypes/isolation-beacon.lua
Original file line number Diff line number Diff line change
Expand Up @@ -71,14 +71,15 @@ local beacon = {
selection_box = { { -2.5, -2.5 }, { 2.5, 2.5 } },
drawing_box_vertical_extension = 3.3,
allowed_effects = {"consumption", "speed", "pollution"},
distribution_effectivity = 0.5,
distribution_effectivity_bonus_per_quality_level = 0.1,
profile = {1,0},
distribution_effectivity = settings.startup["ab-isolation-beacon-distribution-effectivity"].value,
distribution_effectivity_bonus_per_quality_level = settings.startup
["ab-isolation-beacon-distribution-effectivity-bonus-per-quality-level"].value,
profile = { 1, 0 },
beacon_counter = "same_type",
supply_area_distance = 30, -- extends from edge of collision box (65x65)
supply_area_distance = settings.startup["ab-isolation-beacon-supply-area-distance"].value, -- extends from edge of collision box (65x65)
-- exclusion_area_distance = 38 (81x81 strict; hardcoded in control.lua)
module_slots = 10,
icons_positioning = {{
module_slots = settings.startup["ab-isolation-beacon-module-slots"].value,
icons_positioning = { {
inventory_index = defines.inventory.beacon_modules,
shift = {0, 0.5},
max_icons_per_row = 5,
Expand Down Expand Up @@ -128,6 +129,10 @@ local beacon = {
if not feature_flags["freezing"] then beacon.heating_energy = nil end
if not feature_flags["quality"] then beacon.distribution_effectivity_bonus_per_quality_level = nil end

if settings.startup["ab-isolation-beacon-size-six"] then
beacon.collision_box = { { -2.75, -2.75 }, { 2.75, 2.75 } }
end

local technology = {{
icon = "__alternative-beacons__/graphics/tech-isolation.png",
icon_size = 256
Expand Down
8 changes: 4 additions & 4 deletions prototypes/node-beacon.lua
Original file line number Diff line number Diff line change
Expand Up @@ -95,13 +95,13 @@ local beacon = {
selection_box = { { -1.5, -1.5 }, { 1.5, 1.5 } },
drawing_box_vertical_extension = 1,
allowed_effects = {"consumption", "speed", "pollution"},
distribution_effectivity = 0.5,
distribution_effectivity_bonus_per_quality_level = 0.1,
distribution_effectivity = settings.startup["ab-node-beacon-distribution-effectivity"].value,
distribution_effectivity_bonus_per_quality_level = settings.startup["ab-node-beacon-distribution-effectivity-bonus-per-quality-level"].value,
profile = {2, 1.5, 1.22, 1.07, 0.9597, 0.8875, 0.833, 0.7805, 0.735, 0.6893, 0.6507, 0.6151, 0.5876, 0.5597, 0.5359, 0.516, 0.4976, 0.4795, 0.4626, 0.4468},
beacon_counter = "total",
supply_area_distance = 8, -- extends from edge of collision box (19x19)
supply_area_distance = settings.startup["ab-node-beacon-supply-area-distance"].value, -- extends from edge of collision box
-- exclusion_area_distance = 8 (19x19; coded in control.lua)
module_slots = 3,
module_slots = settings.startup["ab-node-beacon-module-slots"].value,
icons_positioning = {{
inventory_index = defines.inventory.beacon_modules,
shift = {0, 0.5},
Expand Down
8 changes: 4 additions & 4 deletions prototypes/standard-beacon.lua
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,12 @@ local beacon = {
selection_box = {{-1.5, -1.5}, {1.5, 1.5}},
drawing_box_vertical_extension = 0.2,
allowed_effects = {"consumption", "speed", "pollution"},
distribution_effectivity = 1.5,
distribution_effectivity_bonus_per_quality_level = 0.2,
distribution_effectivity = settings.startup["ab-standard-beacon-distribution-effectivity"].value,
distribution_effectivity_bonus_per_quality_level = settings.startup["ab-standard-beacon-distribution-effectivity-bonus-per-quality-level"].value,
profile = {1, 0.7071, 0.5773, 0.5, 0.4472, 0.4082, 0.3779, 0.3535, 0.3333, 0.3162, 0.3015, 0.2887, 0.2773, 0.2672, 0.2582, 0.25, 0.2425, 0.2357, 0.2294, 0.2236, 0.2182, 0.2132, 0.2085, 0.2041, 0.2, 0.1961, 0.1924, 0.189, 0.1857, 0.1825, 0.1796, 0.1768, 0.1741, 0.1715, 0.169, 0.1666, 0.1644, 0.1622, 0.1601, 0.1581, 0.1561, 0.1543, 0.1525, 0.1507, 0.149, 0.1474, 0.1458, 0.1443, 0.1428, 0.1414, 0.14, 0.1387, 0.1373, 0.1361, 0.1348, 0.1336, 0.1324, 0.1313, 0.1302, 0.1291, 0.128, 0.127, 0.126, 0.125, 0.124, 0.1231, 0.1221, 0.1212, 0.1204, 0.1195, 0.1187, 0.1178, 0.117, 0.1162, 0.1154, 0.1147, 0.1139, 0.1132, 0.1125, 0.1118, 0.1111, 0.1104, 0.1097, 0.1091, 0.1084, 0.1078, 0.1072, 0.1066, 0.106, 0.1054, 0.1048, 0.1042, 0.1037, 0.1031, 0.1026, 0.102, 0.1015, 0.101, 0.1005, 0.1},
beacon_counter = "total",
supply_area_distance = 3, -- changed from 3.0 so the range is exactly 1/4 of a tile away from the edge of the distribution area to match other beacons
module_slots = 2,
supply_area_distance = settings.startup["ab-standard-beacon-supply-area-distance"].value, -- extends from edge of collision box
module_slots = settings.startup["ab-standard-beacon-module-slots"].value,
icons_positioning = {{
inventory_index = defines.inventory.beacon_modules,
shift = {0, 0.5},
Expand Down
Loading