Update 2.1 also fixes an issue:
Previously, even if the startup settings were configured to enable only two quality tiers, the third tier would still load. This was inconvenient because using the hotkey/scroll wheel would cycle to the "Singularity" quality; if it isn't enabled, it shouldn't be loaded into the game at all.
You can implement this fix in prototypes/mythicquality.lua using the following code:
local mythicOdds = settings.startup["tb-mq-mythic-odds"].value
local celestialOdds = settings.startup["tb-mq-celestial-odds"].value
local singularityOdds = settings.startup["tb-mq-singularity-odds"].value
local singularityEnabled = settings.startup["tb-mq-singularity-enabled"].value
data.raw.quality.legendary.next_probability = mythicOdds
data.raw.quality.legendary.next = "tb-mq-mythic"
-- 1. 先构建基础的神话和星体品质
local qualities_to_add = {
{
type = "quality",
name = "tb-mq-mythic",
level = 8,
color = { 100, 90, 0 },
order = "f",
next = "tb-mq-celestial",
next_probability = celestialOdds,
subgroup = "qualities",
icon = "MythicQuality/graphics/icons/quality-mythic.png",
beacon_power_usage_multiplier = 1 / 12,
mining_drill_resource_drain_multiplier = 1 / 12,
science_pack_drain_multiplier = 92 / 100,
},
{
type = "quality",
name = "tb-mq-celestial",
level = 12,
color = { 0, 100, 98 },
order = "g",
-- 如果禁用了奇点,这里就不应该有 next 和 next_probability
subgroup = "qualities",
icon = "MythicQuality/graphics/icons/quality-celestial.png",
beacon_power_usage_multiplier = 1 / 24,
mining_drill_resource_drain_multiplier = 1 / 24,
science_pack_drain_multiplier = 88 / 100,
}
}
-- 2. 根据设置决定是否将奇点品质接入系统
if singularityEnabled then
qualities_to_add[2].next = "tb-mq-singularity"
qualities_to_add[2].next_probability = singularityOdds
table.insert(qualities_to_add, {
type = "quality",
name = "tb-mq-singularity",
level = 17,
color = { 156, 156, 156 },
order = "h",
subgroup = "qualities",
icon = "__MythicQuality__/graphics/icons/quality-singularity.png",
beacon_power_usage_multiplier = 1 / 48,
mining_drill_resource_drain_multiplier = 1 / 48,
science_pack_drain_multiplier = 75 / 100,
})
end
-- 将构建好的表注册到游戏中
data:extend(qualities_to_add)
local scale = settings.startup["tb-mq-scale-factor"].value
-- 3. 在修改 level 时,增加对奇点品质是否存在的安全检查
if scale == "linear" then
data.raw.quality["tb-mq-mythic"].level = 8
data.raw.quality["tb-mq-celestial"].level = 10
if singularityEnabled then data.raw.quality["tb-mq-singularity"].level = 12 end
elseif scale == "normal" then
data.raw.quality["tb-mq-mythic"].level = 8
data.raw.quality["tb-mq-celestial"].level = 12
if singularityEnabled then data.raw.quality["tb-mq-singularity"].level = 16 end
elseif scale == "high" then
data.raw.quality["tb-mq-mythic"].level = 9
data.raw.quality["tb-mq-celestial"].level = 13
if singularityEnabled then data.raw.quality["tb-mq-singularity"].level = 19 end
elseif scale == "higher" then
data.raw.quality["tb-mq-mythic"].level = 10
data.raw.quality["tb-mq-celestial"].level = 15
if singularityEnabled then data.raw.quality["tb-mq-singularity"].level = 21 end
elseif scale == "extreme" then
data.raw.quality["tb-mq-mythic"].level = 10
data.raw.quality["tb-mq-celestial"].level = 18
if singularityEnabled then data.raw.quality["tb-mq-singularity"].level = 30 end
end