1
0
mirror of https://github.com/ComfyFactory/ComfyFactorio.git synced 2025-03-17 20:58:13 +02:00

food tweaks

This commit is contained in:
MewMew 2019-04-21 02:45:24 +02:00
parent 186c8e189d
commit ae00a20462
3 changed files with 28 additions and 28 deletions

View File

@ -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)

View File

@ -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

View File

@ -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