1
0
mirror of https://github.com/ComfyFactory/ComfyFactorio.git synced 2025-05-13 21:56:29 +02:00

rewrite Public_event.mining_buffs() to be relative and more intentional

This commit is contained in:
Jacob 2020-04-10 12:32:10 -04:00
parent fc1148def2
commit 5f8205539c
2 changed files with 45 additions and 20 deletions

View File

@ -273,26 +273,51 @@ function Public_event.flamer_nerfs()
game.forces.player.set_turret_attack_modifier("flamethrower-turret", flamer_power - 0.02 * difficulty * objective.chronojumps)
end
function Public_event.mining_buffs()
local mining_power = 0
local mining_researches = {
[1] = {name = "mining-productivity-1", bonus = 0.2},
[2] = {name = "mining-productivity-2", bonus = 0.2},
[3] = {name = "mining-productivity-3", bonus = 0.2},
[4] = {name = "mining-productivity-4", bonus = 0.2}
}
for i = 1, 3, 1 do
if game.forces.player.technologies[mining_researches[i].name].researched then
mining_power = mining_power + mining_researches[i].bonus
local mining_researches = {
-- these already give .1 productivity so we're only adding .1 to get to 20%
["mining-productivity-1"] = {bonus_productivity = .1, bonus_mining_speed = .2, bonus_inventory = 10},
["mining-productivity-2"] = {bonus_productivity = .1, bonus_mining_speed = .2, bonus_inventory = 10},
["mining-productivity-3"] = {bonus_productivity = .1, bonus_mining_speed = .2, bonus_inventory = 10},
["mining-productivity-4"] = {bonus_productivity = .1, bonus_mining_speed = .2, bonus_inventory = 10, infinite = true, infinite_level = 4},
}
function Public_event.mining_buffs(event)
if event == nil then
-- initialization call
if game.forces.player.mining_drill_productivity_bonus <= 1 then
game.forces.player.mining_drill_productivity_bonus = game.forces.player.mining_drill_productivity_bonus + 1
end
if game.forces.player.manual_mining_speed_modifier <= 1 then
game.forces.player.manual_mining_speed_modifier = game.forces.player.manual_mining_speed_modifier + 1
end
end
mining_power = mining_power + (game.forces.player.technologies[mining_researches[4].name].level - 4) * 0.2
game.forces.player.mining_drill_productivity_bonus = 1 + mining_power
local bonusinv = 0
if game.forces.player.technologies["toolbelt"].researched then bonusinv = 10 end
game.forces.player.character_inventory_slots_bonus = mining_power * 50 + global.objective.invupgradetier * 10 + bonusinv
if game.forces.player.technologies["steel-axe"].researched then
game.forces.player.manual_mining_speed_modifier = 1 + mining_power * 2
if mining_researches[event.technology.name] == nil then return end
local tech = mining_researches[event.technology.name]
if tech.bonus_productivity then
if tech.infinite then
game.forces.player.mining_drill_productivity_bonus = game.forces.player.mining_drill_productivity_bonus + tech.bonus_productivity * (event.technology.level - tech.infinite_level)
else
game.forces.player.mining_drill_productivity_bonus = game.forces.player.mining_drill_productivity_bonus + tech.bonus_productivity
end
end
if tech.bonus_mining_speed then
if tech.infinite then
game.forces.player.manual_mining_speed_modifier = game.forces.player.manual_mining_speed_modifier + tech.bonus_mining_speed * (event.technology.level - tech.infinite_level)
else
game.forces.player.manual_mining_speed_modifier = game.forces.player.manual_mining_speed_modifier + tech.bonus_mining_speed
end
end
if tech.bonus_inventory then
if tech.infinite then
game.forces.player.character_inventory_slots_bonus = game.forces.player.character_inventory_slots_bonus + tech.bonus_inventory * (event.technology.level - tech.infinite_level)
else
game.forces.player.character_inventory_slots_bonus = game.forces.player.character_inventory_slots_bonus + tech.bonus_inventory
end
end
end

View File

@ -344,7 +344,7 @@ local function on_init()
game.surfaces["nauvis"].clear()
reset_map()
Chrono.init_setup()
Event_functions.mining_buffs()
Event_functions.mining_buffs(nil)
--if game.surfaces["nauvis"] then game.delete_surface(game.surfaces["nauvis"]) end
end
@ -462,7 +462,7 @@ end
local function on_research_finished(event)
Event_functions.flamer_nerfs()
Event_functions.mining_buffs()
Event_functions.mining_buffs(event)
end
local function on_player_driving_changed_state(event)