mirror of
https://github.com/PHIDIAS0303/factorio-mod-PHI.git
synced 2025-12-27 02:55:22 +09:00
.
This commit is contained in:
342
PHI-CL/note.lua
342
PHI-CL/note.lua
@@ -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',
|
||||
|
||||
Reference in New Issue
Block a user