mirror of
https://github.com/ComfyFactory/ComfyFactorio.git
synced 2025-03-17 20:58:13 +02:00
food tweaks
This commit is contained in:
parent
186c8e189d
commit
ae00a20462
@ -155,11 +155,18 @@ local function ignore_pvp(event)
|
||||
end
|
||||
|
||||
--Biter Evasion
|
||||
local random_max = 10000
|
||||
|
||||
local function get_evade_chance(force_name)
|
||||
return random_max - (random_max / global.bb_evasion[force_name])
|
||||
end
|
||||
|
||||
local function evade(event)
|
||||
if not event.entity.valid then return end
|
||||
if event.entity.type ~= "unit" then return end
|
||||
if global.bb_evasion[event.entity.force.name] < math_random(1,1000) then return end
|
||||
event.entity.health = event.entity.health + event.final_damage_amount
|
||||
if not global.bb_evasion[event.entity.force.name] then return end
|
||||
if event.final_damage_amount > event.entity.prototype.max_health * global.bb_evasion[event.entity.force.name] then return end
|
||||
if math_random(1, random_max) > get_evade_chance(event.entity.force.name) then return end
|
||||
event.entity.health = event.entity.health + event.final_damage_amount
|
||||
end
|
||||
|
||||
local function on_entity_damaged(event)
|
||||
|
@ -122,7 +122,6 @@ local function init_forces()
|
||||
global.spectator_rejoin_delay = {}
|
||||
global.spy_fish_timeout = {}
|
||||
global.force_area = {}
|
||||
global.bb_total_food = {}
|
||||
global.bb_evolution = {}
|
||||
global.bb_evasion = {}
|
||||
global.bb_threat_income = {}
|
||||
@ -138,9 +137,8 @@ local function init_forces()
|
||||
game.forces[force.name].set_ammo_damage_modifier("shotgun-shell", 1)
|
||||
game.forces[force.name].research_queue_enabled = true
|
||||
global.spy_fish_timeout[force.name] = 0
|
||||
global.bb_total_food[force.name] = 0
|
||||
global.bb_evolution[force.name] = 0
|
||||
global.bb_evasion[force.name] = 0
|
||||
global.bb_evasion[force.name] = false
|
||||
global.bb_threat_income[force.name] = 0
|
||||
global.bb_threat[force.name] = 0
|
||||
end
|
||||
|
@ -18,15 +18,18 @@ local enemy_team_of = {
|
||||
["south"] = "north"
|
||||
}
|
||||
|
||||
local function set_biter_endgame_damage(force_name, biter_force)
|
||||
if biter_force.evolution_factor ~= 1 then return end
|
||||
local m = (math.ceil(global.bb_evolution[force_name] * 100) / 100) - 1
|
||||
m = m * 3
|
||||
biter_force.set_ammo_damage_modifier("melee", m)
|
||||
biter_force.set_ammo_damage_modifier("biological", m)
|
||||
biter_force.set_ammo_damage_modifier("artillery-shell", m)
|
||||
biter_force.set_ammo_damage_modifier("flamethrower", m)
|
||||
biter_force.set_ammo_damage_modifier("laser-turret", m)
|
||||
local function set_biter_endgame_modifiers(force)
|
||||
if force.evolution_factor ~= 1 then return end
|
||||
local damage_mod = (global.bb_evolution[force.name] - 1) * 2
|
||||
local evasion_mod = ((global.bb_evolution[force.name] - 1) * 2) + 1
|
||||
|
||||
force.set_ammo_damage_modifier("melee", damage_mod)
|
||||
force.set_ammo_damage_modifier("biological", damage_mod)
|
||||
force.set_ammo_damage_modifier("artillery-shell", damage_mod)
|
||||
force.set_ammo_damage_modifier("flamethrower", damage_mod)
|
||||
force.set_ammo_damage_modifier("laser-turret", damage_mod)
|
||||
|
||||
global.bb_evasion[force.name] = evasion_mod
|
||||
end
|
||||
|
||||
local function feed_biters(player, food)
|
||||
@ -54,8 +57,6 @@ local function feed_biters(player, food)
|
||||
end
|
||||
end
|
||||
|
||||
--ADD TOTAL FOOD FEED
|
||||
--global.bb_total_food[biter_force_name] = global.bb_total_food[biter_force_name] + (food_values[food].value * flask_amount)
|
||||
local decimals = 12
|
||||
local math_round = math.round
|
||||
|
||||
@ -68,7 +69,7 @@ local function feed_biters(player, food)
|
||||
|
||||
---SET EVOLUTION
|
||||
local e2 = (game.forces[biter_force_name].evolution_factor * 100) + 1
|
||||
local diminishing_modifier = (1 / (10 ^ (e2 * 0.016))) / (e2 * 0.5)
|
||||
local diminishing_modifier = (1 / (10 ^ (e2 * 0.017))) / (e2 * 0.5)
|
||||
local evo_gain = (food_values[food].value * diminishing_modifier)
|
||||
global.bb_evolution[biter_force_name] = global.bb_evolution[biter_force_name] + evo_gain
|
||||
global.bb_evolution[biter_force_name] = math_round(global.bb_evolution[biter_force_name], decimals)
|
||||
@ -76,21 +77,15 @@ local function feed_biters(player, food)
|
||||
game.forces[biter_force_name].evolution_factor = global.bb_evolution[biter_force_name]
|
||||
else
|
||||
game.forces[biter_force_name].evolution_factor = 1
|
||||
|
||||
--SET EVASION
|
||||
local e3 = global.bb_evasion[biter_force_name] + 1
|
||||
local diminishing_modifier = 1 / (0.05 + (e3 * 0.0005))
|
||||
global.bb_evasion[biter_force_name] = global.bb_evasion[biter_force_name] + 125 * evo_gain * diminishing_modifier
|
||||
global.bb_evasion[biter_force_name] = math_round(global.bb_evasion[biter_force_name], decimals)
|
||||
if global.bb_evasion[biter_force_name] > 950 then global.bb_evasion[biter_force_name] = 950 end
|
||||
end
|
||||
|
||||
--ADD INSTANT THREAT
|
||||
local diminishing_modifier = 1 / (0.2 + (e2 * 0.018))
|
||||
global.bb_threat[biter_force_name] = global.bb_threat[biter_force_name] + (food_values[food].value * 200 * diminishing_modifier)
|
||||
global.bb_threat[biter_force_name] = global.bb_threat[biter_force_name] + (food_values[food].value * 175 * diminishing_modifier)
|
||||
global.bb_threat[biter_force_name] = math_round(global.bb_threat[biter_force_name], decimals)
|
||||
end
|
||||
set_biter_endgame_damage(biter_force_name, game.forces[biter_force_name])
|
||||
end
|
||||
|
||||
set_biter_endgame_modifiers(game.forces[biter_force_name])
|
||||
end
|
||||
|
||||
return feed_biters
|
Loading…
x
Reference in New Issue
Block a user