This commit is contained in:
2024-10-25 00:23:26 +09:00
parent 0119818911
commit f011cc7290
11 changed files with 337 additions and 722 deletions

View File

@@ -1,5 +1,90 @@
--[[
** CONFIG
['equipment'] = {
['solar-panel-equipment'] = {
enabled = settings.startup['PHI-EQ'].value,
stage = 1,
type = 'solar-panel-equipment',
name = 'solar-panel',
ref_name = 'solar-panel-equipment',
tech = 'solar-panel-equipment',
min = 2,
max = settings.startup['PHI-EQ-SOLAR-TIER'].value,
base = 30,
graphics_name = 'solar-panel-equipment'
},
['fusion-reactor-equipment'] = {
enabled = settings.startup['PHI-EQ'].value,
stage = 1,
type = 'generator-equipment',
name = 'fusion-reactor',
ref_name = 'fusion-reactor-equipment',
tech = 'fusion-reactor-equipment',
min = 2,
max = settings.startup['PHI-EQ-REACTOR-TIER'].value
},
['battery-equipment'] = {
enabled = settings.startup['PHI-EQ'].value,
stage = 1,
type = 'battery-equipment',
name = 'battery',
ref_name = 'battery-mk3-equipment',
tech = 'battery-mk3-equipment',
min = 4,
max = settings.startup['PHI-EQ-BATTERY-TIER'].value
},
['personal-laser-defense-equipment'] = {
enabled = settings.startup['PHI-EQ'].value,
stage = 1,
type = 'active-defense-equipment',
name = 'personal-laser-defense',
ref_name = 'personal-laser-defense-equipment',
tech = 'personal-laser-defense-equipment',
min = 2,
max = settings.startup['PHI-EQ-LASER-TIER'].value
},
['energy-shield-equipment'] = {
enabled = settings.startup['PHI-EQ'].value,
stage = 1,
type = 'energy-shield-equipment',
name = 'energy-shield',
ref_name = 'energy-shield-mk2-equipment',
tech = 'energy-shield-mk2-equipment',
min = 3,
max = settings.startup['PHI-EQ-SHIELD-TIER'].value
},
['personal-roboport-equipment'] = {
enabled = settings.startup['PHI-EQ'].value,
stage = 1,
type = 'roboport-equipment',
name = 'personal-roboport',
ref_name = 'personal-roboport-mk2-equipment',
tech = 'personal-roboport-mk2-equipment',
min = 3,
max = settings.startup['PHI-EQ-ROBOPORT-TIER'].value
},
['night-vision-equipment'] = {
enabled = settings.startup['PHI-EQ'].value,
stage = 1,
type = 'night-vision-equipment',
name = 'night-vision',
ref_name = 'night-vision-equipment',
tech = 'night-vision-equipment',
min = 2,
max = settings.startup['PHI-EQ-NIGHT-TIER'].value
},
['exoskeleton-equipment'] = {
enabled = settings.startup['PHI-EQ'].value,
stage = 1,
type = 'movement-bonus-equipment',
name = 'exoskeleton',
ref_name = 'exoskeleton-equipment',
tech = 'exoskeleton-equipment',
min = 2,
max = settings.startup['PHI-EQ-EXO-TIER'].value
}
},
if mods['aai-industry'] then
items['item']['industrial-furnace'] = {
enabled = settings.startup['PHI-MB'].value,
@@ -605,6 +690,94 @@
** MAIN
-- equipment
function main.EEQ(source, tier)
local item = table.deepcopy(data.raw[source.type][source.ref_name])
item.name = source.name .. '-mk' .. tier .. '-equipment'
item.take_result = source.name .. '-mk' .. tier .. '-equipment'
if item.power then
item.power = tostring(tonumber(string.match(item.power, '[%d%.]+')) * (2 ^ (tier - source.min + 1))) .. string.match(item.power, '%a+')
end
if item.energy_source then
if item.energy_source.buffer_capacity then
item.energy_source.buffer_capacity = tostring(tonumber(string.match(item.energy_source.buffer_capacity, '[%d%.]+')) * (2 ^ (tier - source.min + 1))) .. string.match(item.energy_source.buffer_capacity, '%a+')
end
if item.energy_source.input_flow_limit then
item.energy_source.input_flow_limit = tostring(tonumber(string.match(item.energy_source.input_flow_limit, '[%d%.]+')) * (2 ^ (tier - source.min + 1))) .. string.match(item.energy_source.input_flow_limit, '%a+')
end
if item.energy_source.output_flow_limit then
item.energy_source.output_flow_limit = tostring(tonumber(string.match(item.energy_source.output_flow_limit, '[%d%.]+')) * (2 ^ (tier - source.min + 1))) .. string.match(item.energy_source.output_flow_limit, '%a+')
end
end
if item.energy_consumption then
item.energy_consumption = tostring(tonumber(string.match(item.energy_consumption, '[%d%.]+')) * (2 ^ (tier - source.min + 1))) .. string.match(item.energy_consumption, '%a+')
elseif item.energy_input then
item.energy_input = tostring(tonumber(string.match(item.energy_input, '[%d%.]+')) * (2 ^ (tier - source.min + 1))) .. string.match(item.energy_input, '%a+')
end
if item.darkness_to_turn_on and item.color_lookup then
item.darkness_to_turn_on = 0
item.color_lookup = {{0, '__core__/graphics/color_luts/lut-sunset.png'}}
elseif item.attack_parameters then
if item.attack_parameters.cooldown then
item.attack_parameters.cooldown = math.floor(item.attack_parameters.cooldown * ((32 - (tier - source.min + 1)) / 32))
end
if item.attack_parameters.damage_modifier then
item.attack_parameters.damage_modifier = item.attack_parameters.damage_modifier * (2 ^ (tier - source.min + 1))
end
if item.attack_parameters.ammo_type then
if item.attack_parameters.ammo_type.energy_consumption then
item.attack_parameters.ammo_type.energy_consumption = tostring(tonumber(string.match(item.attack_parameters.ammo_type.energy_consumption, '[%d%.]+')) * (2 ^ (tier - source.min + 1))) .. string.match(item.attack_parameters.ammo_type.energy_consumption, '%a+')
end
if item.attack_parameters.ammo_type.action_delivery then
if item.attack_parameters.ammo_type.action_delivery then
item.attack_parameters.ammo_type.action_delivery.max_length = item.attack_parameters.ammo_type.action_delivery.max_length + (tier - source.min + 1)
end
end
end
if item.attack_parameters.range then
item.attack_parameters.range = item.attack_parameters.range + (tier - source.min + 1)
end
elseif item.max_shield_value and item.energy_per_shield then
item.max_shield_value = item.max_shield_value * (2 ^ (tier - source.min + 1))
item.energy_per_shield = tostring(math.floor(tonumber(string.match(item.energy_per_shield, '[%d%.]+')) * ((32 - (tier - source.min + 1)) / 32))) .. string.match(item.energy_per_shield, '%a+')
elseif item.movement_bonus then
item.movement_bonus = item.movement_bonus * (2 ^ (tier - source.min + 1))
elseif item.charging_energy and item.charging_station_count then
item.charging_station_count = math.max(item.charging_station_count, 4)
item.charging_energy = tostring(tonumber(string.match(item.charging_energy, '[%d%.]+')) * (2 ^ (tier - source.min + 2))) .. string.match(item.charging_energy, '%a+')
end
if item.sprite then
item.sprite.tint = items['tint'][tier]
if item.sprite.hr_version then
item.sprite.hr_version.tint = items['tint'][tier]
end
end
item.localised_name = {'phi-cl.combine-gen', {'name.' .. source.ref_name}, tostring(tier)}
item.localised_description = item.localised_description
data:extend({item})
end
for _, tc in pairs({'layers', 'sheets'}) do
if item[ve][tc] and item[ve][tc][1] then
@@ -650,6 +823,19 @@
end
** DATA
for _, v in pairs(items['equipment']) do
if (v.stage == file_stage) and v.enabled and (v.max >= v.min) then
v.category = 'equipment'
for j=v.min, v.max, 1 do
main.EEQ(v, j)
main.EI(v, j)
main.ER(v, j)
main.ET(v, j)
end
end
end
if settings.startup['PHI-CT'].value and settings.startup['PHI-CT-TRAIN'].value then
local item = table.deepcopy(data.raw['item']['used-up-uranium-fuel-cell'])
@@ -775,41 +961,6 @@ if settings.startup['PHI-MB'].value and mods['space-exploration'] and settings.s
end
end
if settings.startup['PHI-CT'].value and settings.startup['PHI-CT-MINER'].value then
local item = table.deepcopy(data.raw['item']['electric-mining-drill'])
item.name = 'large-area-electric-mining-drill'
item.place_result = 'large-area-electric-mining-drill'
item.order = 'zc'
item.localised_name = {'name.large-area-electric-mining-drill'}
item.localised_description = {'description.large-area-electric-mining-drill'}
data:extend({item})
local entity = table.deepcopy(data.raw['mining-drill']['electric-mining-drill'])
entity.name = 'large-area-electric-mining-drill'
entity.minable.result = 'large-area-electric-mining-drill'
entity.max_health = entity.max_health * 16
entity.energy_usage = (tonumber(string.match(entity.energy_usage, '%d+')) * 16) .. 'kW'
entity.resource_searching_radius = 9.99
entity.mining_speed = entity.mining_speed * 16
entity.energy_source.emissions_per_minute = entity.energy_source.emissions_per_minute * 16
entity.module_specification.module_slots = 8
entity.se_allow_in_space = true
entity.localised_name = {'name.large-area-electric-mining-drill'}
entity.localised_description = {'description.large-area-electric-mining-drill'}
data:extend({entity})
data:extend({{
type = 'recipe',
name = 'large-area-electric-mining-drill',
energy_required = 2,
enabled = true,
ingredients = {{'electric-mining-drill', 16}},
result = 'large-area-electric-mining-drill',
localised_name = {'name.large-area-electric-mining-drill'},
localised_description = {'description.large-area-electric-mining-drill'}
}})
end
if settings.startup['PHI-MI'].value and settings.startup['PHI-MI-REPAIR'].value then
for _, v in pairs(data.raw['repair-tool']) do
v.speed = v.speed * settings.startup['PHI-MI-REPAIR'].value
@@ -964,80 +1115,69 @@ if settings.startup['PHI-CT'].value and settings.startup['PHI-CT-TILE'].value th
end
** SETTING
,
--[[ {
, {
type = 'int-setting',
name = 'PHI-PB-FMMS',
name = 'PHI-EQ-SOLAR-TIER',
setting_type = 'startup',
default_value = 8,
allowed_values = {1, 2, 3, 4, 5, 6, 7, 8},
order = 'D01'
}, {
type = 'int-setting',
name = 'PHI-EQ-BATTERY-TIER',
setting_type = 'startup',
default_value = 8,
allowed_values = {2, 3, 4, 5, 6, 7, 8},
order = 'D02'
}, {
type = 'int-setting',
name = 'PHI-EQ-REACTOR-TIER',
setting_type = 'startup',
default_value = 8,
allowed_values = {1, 2, 3, 4, 5, 6, 7, 8},
order = 'D03'
}, {
type = 'int-setting',
name = 'PHI-EQ-LASER-TIER',
setting_type = 'startup',
default_value = 8,
allowed_values = {1, 2, 3, 4, 5, 6, 7, 8},
order = 'D04'
}, {
type = 'int-setting',
name = 'PHI-EQ-ROBOPORT-TIER',
setting_type = 'startup',
default_value = 8,
allowed_values = {2, 3, 4, 5, 6, 7, 8},
order = 'D05'
}, {
type = 'int-setting',
name = 'PHI-EQ-SHIELD-TIER',
setting_type = 'startup',
default_value = 8,
allowed_values = {2, 3, 4, 5, 6, 7, 8},
order = 'D06'
}, {
type = 'int-setting',
name = 'PHI-EQ-NIGHT-TIER',
setting_type = 'startup',
default_value = 2,
minimum_value = 0,
maximum_value = 10,
order = 'IB01'
}, {
type = 'double-setting',
name = 'PHI-PB-FRS',
setting_type = 'startup',
default_value = 1.5,
minimum_value = 0,
maximum_value = 10,
order = 'IB02'
allowed_values = {1, 2},
order = 'D07'
}, {
type = 'int-setting',
name = 'PHI-PB-FCS',
name = 'PHI-EQ-EXO-TIER',
setting_type = 'startup',
default_value = 5,
minimum_value = 0,
maximum_value = 20,
order = 'IB03'
default_value = 2,
allowed_values = {1, 2},
order = 'D08'
}, {
type = 'int-setting',
name = 'PHI-PB-FISB',
type = 'bool-setting',
name = 'PHI-EQ-ARMOR',
setting_type = 'startup',
default_value = 100,
minimum_value = 0,
maximum_value = 200,
order = 'IB04'
}, {
type = 'int-setting',
name = 'PHI-PB-FHB',
setting_type = 'startup',
default_value = 200,
minimum_value = 0,
maximum_value = 1000,
order = 'IB05'
}, {
type = 'double-setting',
name = 'PHI-PB-FWRSM',
setting_type = 'startup',
default_value = 1.3,
minimum_value = 0,
maximum_value = 20,
order = 'IB06'
}, {
type = 'double-setting',
name = 'PHI-PB-FWRBM',
setting_type = 'startup',
default_value = 1,
minimum_value = 0,
maximum_value = 20,
order = 'IB07'
}, {
type = 'int-setting',
name = 'PHI-PB-FWRSB',
setting_type = 'startup',
default_value = 1,
minimum_value = 0,
maximum_value = 40,
order = 'IB08'
}, {
type = 'int-setting',
name = 'PHI-PB-FFRLM',
setting_type = 'startup',
default_value = 1,
minimum_value = 0,
maximum_value = 20,
order = 'IB09'
},
default_value = true,
order = 'D09'
},
{
type = 'int-setting',
name = 'PHI-MI-REPAIR',