mirror of
https://github.com/ComfyFactory/ComfyFactorio.git
synced 2025-01-08 00:39:30 +02:00
49 lines
2.0 KiB
Lua
49 lines
2.0 KiB
Lua
local string_sub = string.sub
|
|
local string_len = string.len
|
|
|
|
-- ammo damage modifiers are static values that increase with research
|
|
-- modifier is multiplied by base damage and then added to damage, so a negative value will reduce base damage and a positive value will increase damage
|
|
local balance_functions = {
|
|
['land-mine'] = function(force_name)
|
|
-- landmines normally have a modifier of 0, so have them start at 25% of normal
|
|
if force_name ~= nil then
|
|
game.forces[force_name].set_ammo_damage_modifier('landmine', -0.75)
|
|
end
|
|
end,
|
|
['military-2'] = function(force_name)
|
|
-- grenades normally have a modifier of 0, so have them start at 50% of normal
|
|
if force_name ~= nil then
|
|
game.forces[force_name].set_ammo_damage_modifier('grenade', -0.5)
|
|
end
|
|
end,
|
|
['military-4'] = function(force_name)
|
|
-- cluster-grenades normally have a modifier of 0, so have them start at 50% of normal
|
|
if force_name ~= nil then
|
|
game.forces[force_name].set_ammo_damage_modifier('grenade', -0.5)
|
|
end
|
|
end,
|
|
['stronger-explosives'] = function(force_name)
|
|
-- landmines should never increase in damage with stronger explosives
|
|
if force_name ~= nil then
|
|
game.forces[force_name].set_ammo_damage_modifier('landmine', -0.75)
|
|
-- allow grenades to increase by 10%
|
|
game.forces[force_name].set_ammo_damage_modifier('grenade', game.forces[force_name].get_ammo_damage_modifier('grenade') + 0.1)
|
|
end
|
|
end
|
|
}
|
|
|
|
local function on_research_finished(event)
|
|
local research_name = event.research.name
|
|
local force_name = event.research.force.name
|
|
for b = 1, string_len(research_name), 1 do
|
|
local key = string_sub(research_name, 0, b)
|
|
if balance_functions[key] then
|
|
balance_functions[key](force_name)
|
|
return
|
|
end
|
|
end
|
|
end
|
|
|
|
local Event = require 'utils.event'
|
|
Event.add(defines.events.on_research_finished, on_research_finished)
|