This commit is contained in:
2024-10-29 15:40:01 +09:00
parent c137eef573
commit 1daf994153
11 changed files with 291 additions and 351 deletions

View File

@@ -243,6 +243,90 @@ local items = {
min = 2, min = 2,
max = settings.startup['PHI-WE-RADAR-TIER'].value max = settings.startup['PHI-WE-RADAR-TIER'].value
} }
},
['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-POWER-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-POWER-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-POWER-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-DEFENSE-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-DEFENSE-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-TOOL-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-UTILITY-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-UTILITY-TIER'].value
}
} }
} }

View File

@@ -16,3 +16,16 @@ for _, v in pairs(items['item']) do
main.EL(v) main.EL(v)
end end
end end
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

View File

@@ -8,7 +8,6 @@ if settings.startup['PHI-EN'].value and settings.startup['PHI-EN-SOLAR-TIER'].va
for i=1, 7 do for i=1, 7 do
local tn = 'compound-energy-' .. i local tn = 'compound-energy-' .. i
local prereq local prereq
local e = true
if i > 1 then if i > 1 then
prereq = {'compound-energy-' .. (i - 1)} prereq = {'compound-energy-' .. (i - 1)}
@@ -17,14 +16,10 @@ if settings.startup['PHI-EN'].value and settings.startup['PHI-EN-SOLAR-TIER'].va
prereq = {'solar-energy', 'advanced-circuit', 'electric-energy-accumulators'} prereq = {'solar-energy', 'advanced-circuit', 'electric-energy-accumulators'}
end end
if i > ml then
e = false
end
data:extend({{ data:extend({{
type = 'technology', type = 'technology',
name = tn, name = tn,
enabled = e, enabled = (i <= ml),
prerequisites = prereq, prerequisites = prereq,
effects = {}, effects = {},
unit = { unit = {
@@ -602,7 +597,7 @@ if settings.startup['PHI-CT'].value and settings.startup['PHI-CT-FLUID'].value t
main_product = v.name, main_product = v.name,
hide_from_player_crafting = true, hide_from_player_crafting = true,
allow_productivity = false, allow_productivity = false,
crafting_machine_tint = v.flow_color, crafting_machine_tint = {primary=v.flow_color},
localised_name = v.localised_name, localised_name = v.localised_name,
localised_description = nil localised_description = nil
}}) }})
@@ -624,3 +619,16 @@ for _, v in pairs(items['item']) do
main.EL(v) main.EL(v)
end end
end end
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

View File

@@ -1,13 +1,13 @@
{ {
"name": "PHI-CL", "name": "PHI-CL",
"version": "3.0.0", "version": "3.0.1",
"factorio_version": "2.0", "factorio_version": "2.0",
"date": "2024-10-16", "date": "2024-10-29",
"title": "Phidias Collection", "title": "Phidias Collection",
"author": "PHIDIAS0303", "author": "PHIDIAS0303",
"contributers": "", "contributers": "",
"homepage": "", "homepage": "",
"description": "Additional compound entities and items to reduce the space needed\nSuch as better solar panel, accumulator\nAnd other feature such as water pump placement anywhere, large range radar, trash chest and pipe, passive power void, linked chest, empty world generation", "description": "Additional compound entities and items to reduce the space needed\nSuch as better solar panel, accumulator\nAnd other feature such as large range radar, trash chest and pipe, passive power void, linked chest, empty world generation",
"dependencies": [ "dependencies": [
"base >= 2.0.0", "base >= 2.0.0",
"? space-age", "? space-age",

View File

@@ -60,6 +60,7 @@ thruster=Thruster
solar-panel-equipment=Portable solar panel solar-panel-equipment=Portable solar panel
battery-mk2-equipment=Personal battery battery-mk2-equipment=Personal battery
battery-mk3-equipment=Personal battery
fusion-reactor-equipment=Portable fusion reactor fusion-reactor-equipment=Portable fusion reactor
energy-shield-mk2-equipment=Energy shield energy-shield-mk2-equipment=Energy shield
personal-laser-defense-equipment=Personal laser defense personal-laser-defense-equipment=Personal laser defense
@@ -101,15 +102,11 @@ PHI-WE-TURRET-TIER=WE1 turret tier
PHI-WE-RADAR-TIER=WE2 Radar tier PHI-WE-RADAR-TIER=WE2 Radar tier
PHI-EQ=EQ Armor equipment PHI-EQ=EQ Armor equipment
PHI-EQ-SOLAR-TIER=EQ1 Portable solar panel tier PHI-EQ-POWER-TIER=EQ1 Power tier
PHI-EQ-BATTERY-TIER=EQ2 Personal battery tier PHI-EQ-DEFENSE-TIER=EQ2 Defense tier
PHI-EQ-REACTOR-TIER=EQ3 Portable fusion reactor tier PHI-EQ-TOOL-TIER=EQ3 Tool tier
PHI-EQ-LASER-TIER=EQ4 Personal laser defense tier PHI-EQ-UTILITY-TIER=EQ4 Utility tier
PHI-EQ-ROBOPORT-TIER=EQ5 Personal roboport tier PHI-EQ-ARMOR=EQ5 Enable armor
PHI-EQ-SHIELD-TIER=EQ6 Energy shield tier
PHI-EQ-NIGHT-TIER=EQ7 Nightvision equipment tier
PHI-EQ-EXO-TIER=EQ8 Exoskeleton tier
PHI-EQ-ARMOR=EQ9 Enable armor
PHI-MI=MI Miscellaneous change PHI-MI=MI Miscellaneous change
PHI-MI-LANDFILL=MI1 Landfill requirement PHI-MI-LANDFILL=MI1 Landfill requirement
@@ -143,14 +140,10 @@ PHI-MB-MACHINE-TIER=Default 3 ; Disable 1
PHI-WE-TURRET-TIER=Default 3 ; Disable 1 PHI-WE-TURRET-TIER=Default 3 ; Disable 1
PHI-WE-RADAR-TIER=Default 3 ; Disable 1 PHI-WE-RADAR-TIER=Default 3 ; Disable 1
PHI-EQ-SOLAR-TIER=Default 8 ; Disable 1 PHI-EQ-POWER-TIER=Default 8 ; Disable 1
PHI-EQ-BATTERY-TIER=Default 8 ; Disable 2 PHI-EQ-DEFENSE-TIER=Default 8 ; Disable 1
PHI-EQ-REACTOR-TIER=Default 8 ; Disable 1 PHI-EQ-TOOL-TIER=Default 8 ; Disable 1
PHI-EQ-LASER-TIER=Default 8 ; Disable 1 PHI-EQ-UTILITY-TIER=Default 2 ; Disable 1
PHI-EQ-ROBOPORT-TIER=Default 8 ; Disable 2
PHI-EQ-SHIELD-TIER=Default 8 ; Disable 2
PHI-EQ-NIGHT-TIER=Default 2 ; Disable 1
PHI-EQ-EXO-TIER=Default 2 ; Disable 1
PHI-MI-LANDFILL=Default 20 PHI-MI-LANDFILL=Default 20
PHI-MI-REPAIR=Default 1 PHI-MI-REPAIR=Default 1

View File

@@ -59,6 +59,7 @@ thruster=スラスター
solar-panel-equipment=携帯ソーラーパネルモジュール solar-panel-equipment=携帯ソーラーパネルモジュール
battery-mk2-equipment=個人用バッテリー battery-mk2-equipment=個人用バッテリー
battery-mk3-equipment=個人用バッテリー
fusion-reactor-equipment=携帯核融合炉モジュール fusion-reactor-equipment=携帯核融合炉モジュール
energy-shield-mk2-equipment=エネルギーシールドモジュール energy-shield-mk2-equipment=エネルギーシールドモジュール
personal-laser-defense-equipment=携帯レーザー防御モジュール personal-laser-defense-equipment=携帯レーザー防御モジュール
@@ -100,15 +101,11 @@ PHI-WE-TURRET-TIER=WE1 タレットの最高等級
PHI-WE-RADAR-TIER=WE2 レーダーの最高等級 PHI-WE-RADAR-TIER=WE2 レーダーの最高等級
PHI-EQ=EQ アーマー設備を有効にする PHI-EQ=EQ アーマー設備を有効にする
PHI-EQ-SOLAR-TIER=EQ1 携帯ソーラーパネルモジュールの最高等級 PHI-EQ-POWER-TIER=EQ1 発電モジュールの最高等級
PHI-EQ-BATTERY-TIER=EQ2 個人用バッテリーの最高等級 PHI-EQ-DEFENSE-TIER=EQ2 防御モジュールの最高等級
PHI-EQ-REACTOR-TIER=EQ3 携帯核融合炉モジュールの最高等級 PHI-EQ-TOOL-TIER=EQ3 ツールモジュールの最高等級
PHI-EQ-LASER-TIER=EQ4 携帯レーザー防御モジュールの最高等級 PHI-EQ-UTILITY-TIER=EQ4 ユーティリティモジュールの最高等級
PHI-EQ-ROBOPORT-TIER=EQ5 携帯ロボットステーションの最高等級 PHI-EQ-ARMOR=EQ5 アーマーを有効にする
PHI-EQ-SHIELD-TIER=EQ6 エネルギーシールドモジュールの最高等級
PHI-EQ-NIGHT-TIER=EQ7 暗視モジュールの最高等級
PHI-EQ-EXO-TIER=EQ8 強化外骨格モジュールの最高等級
PHI-EQ-ARMOR=EQ9 アーマーを有効にする
PHI-MI=MI その他の変更 PHI-MI=MI その他の変更
PHI-MI-LANDFILL=MI1 埋立地要件 PHI-MI-LANDFILL=MI1 埋立地要件
@@ -142,14 +139,10 @@ PHI-MB-MACHINE-TIER=デフォルト 3 ; 止める 1
PHI-WE-TURRET-TIER=デフォルト 3 ; 止める 1 PHI-WE-TURRET-TIER=デフォルト 3 ; 止める 1
PHI-WE-RADAR-TIER=デフォルト 3 ; 止める 1 PHI-WE-RADAR-TIER=デフォルト 3 ; 止める 1
PHI-EQ-SOLAR-TIER=デフォルト 8 ; 止める 1 PHI-EQ-POWER-TIER=デフォルト 8 ; 止める 1
PHI-EQ-BATTERY-TIER=デフォルト 8 ; 止める 2 PHI-EQ-DEFENSE-TIER=デフォルト 8 ; 止める 1
PHI-EQ-REACTOR-TIER=デフォルト 8 ; 止める 1 PHI-EQ-TOOL-TIER=デフォルト 8 ; 止める 1
PHI-EQ-LASER-TIER=デフォルト 8 ; 止める 1 PHI-EQ-UTILITY-TIER=デフォルト 2 ; 止める 1
PHI-EQ-ROBOPORT-TIER=デフォルト 8 ; 止める 2
PHI-EQ-SHIELD-TIER=デフォルト 8 ; 止める 2
PHI-EQ-NIGHT-TIER=デフォルト 2 ; 止める 1
PHI-EQ-EXO-TIER=デフォルト 2 ; 止める 1
PHI-MI-LANDFILL=デフォルト 20 PHI-MI-LANDFILL=デフォルト 20
PHI-MI-REPAIR=デフォルト 1 PHI-MI-REPAIR=デフォルト 1

View File

@@ -59,6 +59,7 @@ thruster=推進器
solar-panel-equipment=攜帶式太陽能板 solar-panel-equipment=攜帶式太陽能板
battery-mk2-equipment=電池設備 battery-mk2-equipment=電池設備
battery-mk3-equipment=電池設備
fusion-reactor-equipment=攜帶式核融合反應器 fusion-reactor-equipment=攜帶式核融合反應器
energy-shield-mk2-equipment=能量護盾 energy-shield-mk2-equipment=能量護盾
personal-laser-defense-equipment=個人雷射防禦 personal-laser-defense-equipment=個人雷射防禦
@@ -100,15 +101,11 @@ PHI-WE-TURRET-TIER=WE1 炮塔的最高等級
PHI-WE-RADAR-TIER=WE2 雷達的最高等級 PHI-WE-RADAR-TIER=WE2 雷達的最高等級
PHI-EQ=EQ 啟用裝甲設備 PHI-EQ=EQ 啟用裝甲設備
PHI-EQ-SOLAR-TIER=EQ1 攜帶式太陽能板的最高等級 PHI-EQ-POWER-TIER=EQ1 發電的最高等級
PHI-EQ-BATTERY-TIER=EQ2 電池設備的最高等級 PHI-EQ-DEFENSE-TIER=EQ2 防禦的最高等級
PHI-EQ-REACTOR-TIER=EQ3 攜帶式核融合反應器的最高等級 PHI-EQ-TOOL-TIER=EQ3 工具的最高等級
PHI-EQ-LASER-TIER=EQ4 個人雷射防禦的最高等級 PHI-EQ-UTILITY-TIER=EQ4 雜項的最高等級
PHI-EQ-ROBOPORT-TIER=EQ5 機動無人機調度站的最高等級 PHI-EQ-ARMOR=EQ5 護甲啟用
PHI-EQ-SHIELD-TIER=EQ6 能量護盾的最高等級
PHI-EQ-NIGHT-TIER=EQ7 夜視鏡的最高等級
PHI-EQ-EXO-TIER=EQ8 動力外骨骼的最高等級
PHI-EQ-ARMOR=EQ9 護甲啟用
PHI-MI=MI 雜項小變化 PHI-MI=MI 雜項小變化
PHI-MI-LANDFILL=MI1 人造陸地需求 PHI-MI-LANDFILL=MI1 人造陸地需求
@@ -142,14 +139,10 @@ PHI-MB-MACHINE-TIER=預設 3 ; 停用 1
PHI-WE-TURRET-TIER=預設 3 ; 停用 1 PHI-WE-TURRET-TIER=預設 3 ; 停用 1
PHI-WE-RADAR-TIER=預設 3 ; 停用 1 PHI-WE-RADAR-TIER=預設 3 ; 停用 1
PHI-EQ-SOLAR-TIER=預設 8 ; 停用 1 PHI-EQ-POWER-TIER=預設 8 ; 停用 1
PHI-EQ-BATTERY-TIER=預設 8 ; 停用 2 PHI-EQ-DEFENSE-TIER=預設 8 ; 停用 1
PHI-EQ-REACTOR-TIER=預設 8 ; 停用 1 PHI-EQ-TOOL-TIER=預設 8 ; 停用 1
PHI-EQ-LASER-TIER=預設 8 ; 停用 1 PHI-EQ-UTILITY-TIER=預設 2 ; 停用 1
PHI-EQ-ROBOPORT-TIER=預設 8 ; 停用 2
PHI-EQ-SHIELD-TIER=預設 8 ; 停用 2
PHI-EQ-NIGHT-TIER=預設 2 ; 停用 1
PHI-EQ-EXO-TIER=預設 2 ; 停用 1
PHI-MI-LANDFILL=預設 20 PHI-MI-LANDFILL=預設 20
PHI-MI-REPAIR=預設 1 PHI-MI-REPAIR=預設 1

View File

@@ -59,6 +59,7 @@ thruster=推進器
solar-panel-equipment=攜帶式太陽能板 solar-panel-equipment=攜帶式太陽能板
battery-mk2-equipment=電池設備 battery-mk2-equipment=電池設備
battery-mk3-equipment=電池設備
fusion-reactor-equipment=攜帶式核融合反應器 fusion-reactor-equipment=攜帶式核融合反應器
energy-shield-mk2-equipment=能量護盾 energy-shield-mk2-equipment=能量護盾
personal-laser-defense-equipment=個人雷射防禦 personal-laser-defense-equipment=個人雷射防禦
@@ -100,15 +101,11 @@ PHI-WE-TURRET-TIER=WE1 炮塔的最高等級
PHI-WE-RADAR-TIER=WE2 雷達的最高等級 PHI-WE-RADAR-TIER=WE2 雷達的最高等級
PHI-EQ=EQ 啟用裝甲設備 PHI-EQ=EQ 啟用裝甲設備
PHI-EQ-SOLAR-TIER=EQ1 攜帶式太陽能板的最高等級 PHI-EQ-POWER-TIER=EQ1 發電的最高等級
PHI-EQ-BATTERY-TIER=EQ2 電池設備的最高等級 PHI-EQ-DEFENSE-TIER=EQ2 防禦的最高等級
PHI-EQ-REACTOR-TIER=EQ3 攜帶式核融合反應器的最高等級 PHI-EQ-TOOL-TIER=EQ3 工具的最高等級
PHI-EQ-LASER-TIER=EQ4 個人雷射防禦的最高等級 PHI-EQ-UTILITY-TIER=EQ4 雜項的最高等級
PHI-EQ-ROBOPORT-TIER=EQ5 機動無人機調度站的最高等級 PHI-EQ-ARMOR=EQ5 護甲啟用
PHI-EQ-SHIELD-TIER=EQ6 能量護盾的最高等級
PHI-EQ-NIGHT-TIER=EQ7 夜視鏡的最高等級
PHI-EQ-EXO-TIER=EQ8 動力外骨骼的最高等級
PHI-EQ-ARMOR=EQ9 護甲啟用
PHI-MI=MI 雜項小變化 PHI-MI=MI 雜項小變化
PHI-MI-LANDFILL=MI1 人造陸地需求 PHI-MI-LANDFILL=MI1 人造陸地需求
@@ -142,14 +139,10 @@ PHI-MB-MACHINE-TIER=預設 3 ; 停用 1
PHI-WE-TURRET-TIER=預設 3 ; 停用 1 PHI-WE-TURRET-TIER=預設 3 ; 停用 1
PHI-WE-RADAR-TIER=預設 3 ; 停用 1 PHI-WE-RADAR-TIER=預設 3 ; 停用 1
PHI-EQ-SOLAR-TIER=預設 8 ; 停用 1 PHI-EQ-POWER-TIER=預設 8 ; 停用 1
PHI-EQ-BATTERY-TIER=預設 8 ; 停用 2 PHI-EQ-DEFENSE-TIER=預設 8 ; 停用 1
PHI-EQ-REACTOR-TIER=預設 8 ; 停用 1 PHI-EQ-TOOL-TIER=預設 8 ; 停用 1
PHI-EQ-LASER-TIER=預設 8 ; 停用 1 PHI-EQ-UTILITY-TIER=預設 2 ; 停用 1
PHI-EQ-ROBOPORT-TIER=預設 8 ; 停用 2
PHI-EQ-SHIELD-TIER=預設 8 ; 停用 2
PHI-EQ-NIGHT-TIER=預設 2 ; 停用 1
PHI-EQ-EXO-TIER=預設 2 ; 停用 1
PHI-MI-LANDFILL=預設 20 PHI-MI-LANDFILL=預設 20
PHI-MI-REPAIR=預設 1 PHI-MI-REPAIR=預設 1

View File

@@ -220,6 +220,94 @@ function main.EEE(source, tier)
data:extend({item}) data:extend({item})
end end
-- 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
-- item -- item
function main.EI(source, tier) function main.EI(source, tier)
local item = table.deepcopy(data.raw.item[source.ref_name]) local item = table.deepcopy(data.raw.item[source.ref_name])

View File

@@ -11,91 +11,6 @@
max = settings.startup['PHI-MB-MACHINE-TIER'].value max = settings.startup['PHI-MB-MACHINE-TIER'].value
} }
['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 if mods['aai-industry'] then
items['item']['industrial-furnace'] = { items['item']['industrial-furnace'] = {
enabled = settings.startup['PHI-MB'].value, enabled = settings.startup['PHI-MB'].value,
@@ -700,96 +615,6 @@
end end
** MAIN ** 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 for _, tc in pairs({'layers', 'sheets'}) do
if item[ve][tc] and item[ve][tc][1] then if item[ve][tc] and item[ve][tc][1] then
item[ve][tc][1].tint = items['tint'][tier] item[ve][tc][1].tint = items['tint'][tier]
@@ -834,20 +659,6 @@ end
end end
** DATA ** 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 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']) local item = table.deepcopy(data.raw['item']['used-up-uranium-fuel-cell'])
item.name = 'empty-train-battery' item.name = 'empty-train-battery'
@@ -1120,76 +931,6 @@ if settings.startup['PHI-CT'].value and settings.startup['PHI-CT-TILE'].value th
end end
** SETTING ** SETTING
{
type = 'bool-setting',
name = 'PHI-EQ',
setting_type = 'startup',
default_value = false,
order = 'D00'
},
, {
type = 'int-setting',
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,
allowed_values = {1, 2},
order = 'D07'
}, {
type = 'int-setting',
name = 'PHI-EQ-EXO-TIER',
setting_type = 'startup',
default_value = 2,
allowed_values = {1, 2},
order = 'D08'
}, {
type = 'bool-setting',
name = 'PHI-EQ-ARMOR',
setting_type = 'startup',
default_value = true,
order = 'D09'
},
{ {
type = 'int-setting', type = 'int-setting',
name = 'PHI-MI-REPAIR', name = 'PHI-MI-REPAIR',
@@ -1224,6 +965,19 @@ end
setting_type = 'startup', setting_type = 'startup',
default_value = true, default_value = true,
order = 'E10' order = 'E10'
}, {
type = 'bool-setting',
name = 'PHI-CT-TILE',
setting_type = 'startup',
default_value = true,
order = 'J03'
}, {
type = 'string-setting',
name = 'PHI-CT-TILE-CHOICE',
setting_type = 'startup',
default_value = 'grass-1',
allowed_values = {'concrete', 'deepwater', 'deepwater-green', 'dirt-1', 'dirt-2', 'dirt-3', 'dirt-4', 'dirt-5', 'dirt-6', 'dirt-7', 'dry-dirt', 'grass-1', 'grass-2', 'grass-3', 'grass-4', 'hazard-concrete-left', 'hazard-concrete-right', 'lab-dark-1', 'lab-dark-2', 'lab-white', 'landfill', 'out-of-map', 'red-desert-0', 'red-desert-1', 'red-desert-2', 'red-desert-3', 'refined-concrete', 'refined-hazard-concrete-left', 'refined-hazard-concrete-right', 'sand-1', 'sand-2', 'sand-3', 'stone-path', 'tutorial-grid', 'water', 'water-green', 'water-mud', 'water-shallow'},
order = 'J04'
}, },
"? aai-industry >= 0.5.0", "? aai-industry >= 0.5.0",

View File

@@ -52,6 +52,40 @@ data:extend({
default_value = 3, default_value = 3,
allowed_values = {1, 2, 3}, allowed_values = {1, 2, 3},
order = 'C02' order = 'C02'
}, {
type = 'bool-setting',
name = 'PHI-EQ',
setting_type = 'startup',
default_value = false,
order = 'D00'
}, {
type = 'int-setting',
name = 'PHI-EQ-POWER-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-DEFENSE-TIER',
setting_type = 'startup',
default_value = 8,
allowed_values = {1, 2, 3, 4, 5, 6, 7, 8},
order = 'D02'
}, {
type = 'int-setting',
name = 'PHI-EQ-TOOL-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-UTILITY-TIER',
setting_type = 'startup',
default_value = 2,
allowed_values = {1, 2},
order = 'D04'
}, { }, {
type = 'bool-setting', type = 'bool-setting',
name = 'PHI-MI', name = 'PHI-MI',
@@ -108,19 +142,6 @@ data:extend({
setting_type = 'startup', setting_type = 'startup',
default_value = true, default_value = true,
order = 'J02' order = 'J02'
}, {
type = 'bool-setting',
name = 'PHI-CT-TILE',
setting_type = 'startup',
default_value = true,
order = 'J03'
}, {
type = 'string-setting',
name = 'PHI-CT-TILE-CHOICE',
setting_type = 'startup',
default_value = 'grass-1',
allowed_values = {'concrete', 'deepwater', 'deepwater-green', 'dirt-1', 'dirt-2', 'dirt-3', 'dirt-4', 'dirt-5', 'dirt-6', 'dirt-7', 'dry-dirt', 'grass-1', 'grass-2', 'grass-3', 'grass-4', 'hazard-concrete-left', 'hazard-concrete-right', 'lab-dark-1', 'lab-dark-2', 'lab-white', 'landfill', 'out-of-map', 'red-desert-0', 'red-desert-1', 'red-desert-2', 'red-desert-3', 'refined-concrete', 'refined-hazard-concrete-left', 'refined-hazard-concrete-right', 'sand-1', 'sand-2', 'sand-3', 'stone-path', 'tutorial-grid', 'water', 'water-green', 'water-mud', 'water-shallow'},
order = 'J04'
}, { }, {
type = 'bool-setting', type = 'bool-setting',
name = 'PHI-CT-TRASH', name = 'PHI-CT-TRASH',