1
0
mirror of https://github.com/ComfyFactory/ComfyFactorio.git synced 2025-04-11 11:21:54 +02:00

Merge pull request #10 from jacobwatkinsgit/master

Relative adding of mining buff bonuses
This commit is contained in:
hanakocz 2020-04-12 05:47:10 +02:00 committed by GitHub
commit f3248328a8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 62 additions and 20 deletions

View File

@ -273,26 +273,47 @@ 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/reset call
game.forces.player.mining_drill_productivity_bonus = game.forces.player.mining_drill_productivity_bonus + 1
game.forces.player.manual_mining_speed_modifier = game.forces.player.manual_mining_speed_modifier + 1
return
end
if mining_researches[event.research.name] == nil then return end
local tech = mining_researches[event.research.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
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 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
@ -312,5 +333,21 @@ function Public_event.pistol_buffs(event)
event.entity.damage(event.final_damage_amount * 4, player.force, "physical", player)
end
function Public_event.on_technology_effects_reset(event)
if event.force.name == "player" then
game.forces.player.character_inventory_slots_bonus = game.forces.player.character_inventory_slots_bonus + global.objective.invupgradetier * 10
game.forces.player.character_loot_pickup_distance_bonus = game.forces.player.character_loot_pickup_distance_bonus + global.objective.pickupupgradetier
local fake_event = {}
Public_event.mining_buffs(nil)
for tech in pairs(mining_researches) do
tech = game.forces.player.technologies[tech]
if tech.researched == true then
fake_event.research = tech
Public_event.mining_buffs(fake_event)
end
end
end
end
return Public_event

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)
@ -515,6 +515,10 @@ local function on_player_changed_position(event)
end
end
local function on_technology_effects_reset(event)
Event_functions.on_technology_effects_reset(event)
end
local event = require 'utils.event'
event.on_init(on_init)
event.on_load(on_load)
@ -528,6 +532,7 @@ event.add(defines.events.on_player_mined_entity, on_player_mined_entity)
event.add(defines.events.on_research_finished, on_research_finished)
event.add(defines.events.on_player_driving_changed_state, on_player_driving_changed_state)
event.add(defines.events.on_player_changed_position, on_player_changed_position)
event.add(defines.events.on_technology_effects_reset, on_technology_effects_reset)
if _DEBUG then
local Session = require 'utils.session_data'