mirror of
https://github.com/ComfyFactory/ComfyFactorio.git
synced 2025-03-17 20:58:13 +02:00
tweaks
This commit is contained in:
parent
9774fd4254
commit
0cd02ed024
@ -275,10 +275,10 @@ class_smoldering_explanation_advanced=They periodically convert wood into coal,
|
||||
class_gourmet=Gourmet
|
||||
# class_gourmet_explanation=They generate ore for the cabin by eating fish in fancy locations.
|
||||
class_gourmet_explanation_advanced=They generate ore for the cabin by eating fish in fancy locations.
|
||||
class_chief=Chief
|
||||
class_chief_explanation_advanced=They cook meat of defeated enemies and turn it into something tasty.
|
||||
class_roc_eater=Roc Eater
|
||||
class_roc_eater_explanation_advanced=When eating fish, if they have stone furnaces in their inventory, they will eat those instead.\nIn addition, they receive __1__% less damage.
|
||||
class_chef=Chef
|
||||
class_chef_explanation_advanced=They cook meat of defeated enemies and turn it into something tasty.
|
||||
class_rock_eater=Rock Eater
|
||||
class_rock_eater_explanation_advanced=When eating fish, if they have stone furnaces in their inventory, they will eat those instead.\nIn addition, they receive __1__% less damage.
|
||||
class_soldier=Soldier
|
||||
class_soldier_explanation_advanced=When eating fish, they have __1__% chance to summon defender to protect them.
|
||||
class_veteran=Veteran
|
||||
|
@ -129,7 +129,7 @@ end
|
||||
function Public.wave_size_rng() -- random variance in attack sizes
|
||||
local memory = Memory.get_crew_memory()
|
||||
|
||||
local wave_percentage_chance = Math.clamp(0, 36, 11 + 8 * memory.floating_pollution/1500)
|
||||
local wave_percentage_chance = Math.clamp(0, 48, 11 + 9 * memory.floating_pollution/1500)
|
||||
|
||||
local wave_size_multiplier = 1
|
||||
local rng1 = Math.random(100)
|
||||
@ -788,7 +788,7 @@ function Public.revenge_group(surface, p, target, type, bonus_evo, amount_multip
|
||||
if name == 'small-spitter' then
|
||||
count = 7
|
||||
elseif name == 'medium-spitter' then
|
||||
count = 5
|
||||
count = 4
|
||||
elseif name == 'big-spitter' then
|
||||
count = 3
|
||||
elseif name == 'behemoth-spitter' then
|
||||
|
@ -335,8 +335,8 @@ local function damage_to_players_changes(event)
|
||||
damage_multiplier = damage_multiplier * Balance.samurai_damage_taken_multiplier
|
||||
elseif class == Classes.enum.HATAMOTO then
|
||||
damage_multiplier = damage_multiplier * Balance.hatamoto_damage_taken_multiplier
|
||||
elseif class == Classes.enum.ROC_EATER then
|
||||
damage_multiplier = damage_multiplier * Balance.roc_eater_damage_taken_multiplier
|
||||
elseif class == Classes.enum.ROCK_EATER then
|
||||
damage_multiplier = damage_multiplier * Balance.rock_eater_damage_taken_multiplier
|
||||
elseif class == Classes.enum.IRON_LEG then
|
||||
if memory.class_auxiliary_data[player_index] and memory.class_auxiliary_data[player_index].iron_leg_active then
|
||||
damage_multiplier = damage_multiplier * Balance.iron_leg_damage_taken_multiplier
|
||||
@ -997,12 +997,12 @@ local function base_kill_rewards(event)
|
||||
class = memory.classes_table[revenge_target.player.index]
|
||||
end
|
||||
|
||||
local class_is_chief = (class and class == Classes.enum.CHIEF) and true or false
|
||||
local class_is_chef = (class and class == Classes.enum.CHEF) and true or false
|
||||
|
||||
|
||||
-- no worm loot in the maze except for chiefs:
|
||||
-- no worm loot in the maze except for chefs:
|
||||
local maze = (destination.subtype and destination.subtype == Islands.enum.MAZE)
|
||||
if maze and not (entity_name == 'biter-spawner' or entity_name == 'spitter-spawner') and not (class_is_chief) then return end
|
||||
if maze and not (entity_name == 'biter-spawner' or entity_name == 'spitter-spawner') and not (class_is_chef) then return end
|
||||
|
||||
local iron_amount
|
||||
local coin_amount
|
||||
@ -1011,12 +1011,12 @@ local function base_kill_rewards(event)
|
||||
if entity_name == 'small-worm-turret' then
|
||||
iron_amount = 5
|
||||
coin_amount = 50
|
||||
fish_amount = 1 * Balance.chief_fish_received_for_worm_kill
|
||||
fish_amount = 1 * Balance.chef_fish_received_for_worm_kill
|
||||
memory.playtesting_stats.coins_gained_by_nests_and_worms = memory.playtesting_stats.coins_gained_by_nests_and_worms + coin_amount
|
||||
elseif entity_name == 'medium-worm-turret' then
|
||||
iron_amount = 20
|
||||
coin_amount = 90
|
||||
fish_amount = 1 * Balance.chief_fish_received_for_worm_kill
|
||||
fish_amount = 2 * Balance.chef_fish_received_for_worm_kill
|
||||
memory.playtesting_stats.coins_gained_by_nests_and_worms = memory.playtesting_stats.coins_gained_by_nests_and_worms + coin_amount
|
||||
elseif entity_name == 'biter-spawner' or entity_name == 'spitter-spawner' then
|
||||
iron_amount = 30
|
||||
@ -1026,12 +1026,12 @@ local function base_kill_rewards(event)
|
||||
elseif entity_name == 'big-worm-turret' then
|
||||
iron_amount = 30
|
||||
coin_amount = 140
|
||||
fish_amount = 2 * Balance.chief_fish_received_for_worm_kill
|
||||
fish_amount = 2 * Balance.chef_fish_received_for_worm_kill
|
||||
memory.playtesting_stats.coins_gained_by_nests_and_worms = memory.playtesting_stats.coins_gained_by_nests_and_worms + coin_amount
|
||||
elseif entity_name == 'behemoth-worm-turret' then
|
||||
iron_amount = 50
|
||||
coin_amount = 260
|
||||
fish_amount = 3 * Balance.chief_fish_received_for_worm_kill
|
||||
fish_amount = 3 * Balance.chef_fish_received_for_worm_kill
|
||||
memory.playtesting_stats.coins_gained_by_nests_and_worms = memory.playtesting_stats.coins_gained_by_nests_and_worms + coin_amount
|
||||
elseif memory.overworldx > 0 then --avoid coin farming on first island
|
||||
if entity_name == 'small-biter' then
|
||||
@ -1039,35 +1039,35 @@ local function base_kill_rewards(event)
|
||||
-- coin_amount = 1
|
||||
-- end
|
||||
coin_amount = 1
|
||||
fish_amount = 1 * Balance.chief_fish_received_for_biter_kill
|
||||
fish_amount = 0 * Balance.chef_fish_received_for_biter_kill
|
||||
memory.playtesting_stats.coins_gained_by_biters = memory.playtesting_stats.coins_gained_by_biters + coin_amount
|
||||
elseif entity_name == 'small-spitter' then
|
||||
coin_amount = 1
|
||||
fish_amount = 1 * Balance.chief_fish_received_for_biter_kill
|
||||
fish_amount = 0 * Balance.chef_fish_received_for_biter_kill
|
||||
memory.playtesting_stats.coins_gained_by_biters = memory.playtesting_stats.coins_gained_by_biters + coin_amount
|
||||
elseif entity_name == 'medium-biter' then
|
||||
coin_amount = 2
|
||||
fish_amount = 1 * Balance.chief_fish_received_for_biter_kill
|
||||
fish_amount = 1 * Balance.chef_fish_received_for_biter_kill
|
||||
memory.playtesting_stats.coins_gained_by_biters = memory.playtesting_stats.coins_gained_by_biters + coin_amount
|
||||
elseif entity_name == 'medium-spitter' then
|
||||
coin_amount = 2
|
||||
fish_amount = 1 * Balance.chief_fish_received_for_biter_kill
|
||||
fish_amount = 1 * Balance.chef_fish_received_for_biter_kill
|
||||
memory.playtesting_stats.coins_gained_by_biters = memory.playtesting_stats.coins_gained_by_biters + coin_amount
|
||||
elseif entity_name == 'big-biter' then
|
||||
coin_amount = 4
|
||||
fish_amount = 2 * Balance.chief_fish_received_for_biter_kill
|
||||
fish_amount = 2 * Balance.chef_fish_received_for_biter_kill
|
||||
memory.playtesting_stats.coins_gained_by_biters = memory.playtesting_stats.coins_gained_by_biters + coin_amount
|
||||
elseif entity_name == 'big-spitter' then
|
||||
coin_amount = 4
|
||||
fish_amount = 2 * Balance.chief_fish_received_for_biter_kill
|
||||
fish_amount = 2 * Balance.chef_fish_received_for_biter_kill
|
||||
memory.playtesting_stats.coins_gained_by_biters = memory.playtesting_stats.coins_gained_by_biters + coin_amount
|
||||
elseif entity_name == 'behemoth-biter' then
|
||||
coin_amount = 8
|
||||
fish_amount = 3 * Balance.chief_fish_received_for_biter_kill
|
||||
fish_amount = 3 * Balance.chef_fish_received_for_biter_kill
|
||||
memory.playtesting_stats.coins_gained_by_biters = memory.playtesting_stats.coins_gained_by_biters + coin_amount
|
||||
elseif entity_name == 'behemoth-spitter' then
|
||||
coin_amount = 8
|
||||
fish_amount = 3 * Balance.chief_fish_received_for_biter_kill
|
||||
fish_amount = 3 * Balance.chef_fish_received_for_biter_kill
|
||||
memory.playtesting_stats.coins_gained_by_biters = memory.playtesting_stats.coins_gained_by_biters + coin_amount
|
||||
end
|
||||
end
|
||||
@ -1082,7 +1082,7 @@ local function base_kill_rewards(event)
|
||||
stack[#stack + 1] = {name = 'coin', count = coin_amount}
|
||||
end
|
||||
|
||||
if class_is_chief and fish_amount and fish_amount > 0 then
|
||||
if class_is_chef and fish_amount and fish_amount > 0 then
|
||||
stack[#stack + 1] = {name = 'raw-fish', count = fish_amount}
|
||||
end
|
||||
|
||||
|
@ -67,10 +67,10 @@ Public.rocket_launch_coin_reward = 5000
|
||||
Public.dredger_reach_bonus = 16
|
||||
Public.dredger_fish_bonus = 2
|
||||
Public.gourmet_ore_scaling_enabled = false
|
||||
Public.chief_fish_received_for_biter_kill = 1
|
||||
Public.chief_fish_received_for_worm_kill = 3
|
||||
Public.roc_eater_damage_taken_multiplier = 0.8
|
||||
Public.roc_eater_required_stone_furnace_to_heal_count = 1
|
||||
Public.chef_fish_received_for_biter_kill = 1
|
||||
Public.chef_fish_received_for_worm_kill = 3
|
||||
Public.rock_eater_damage_taken_multiplier = 0.8
|
||||
Public.rock_eater_required_stone_furnace_to_heal_count = 1
|
||||
Public.soldier_defender_summon_chance = 0.2
|
||||
Public.veteran_destroyer_summon_chance = 0.2
|
||||
Public.veteran_on_hit_slow_chance = 0.1
|
||||
@ -157,12 +157,12 @@ function Public.max_time_on_island_formula() --always >0 --tuned
|
||||
end
|
||||
|
||||
|
||||
Public.rockets_needed_x = 40*21
|
||||
Public.rockets_needed_x = 40*20
|
||||
|
||||
|
||||
function Public.max_time_on_island()
|
||||
local x = Common.overworldx()
|
||||
if x == 0 or (x >= Public.rockets_needed_x and x ~= 40*22) then
|
||||
if x == 0 or (x >= Public.rockets_needed_x and x ~= 40*21) then
|
||||
-- if Common.overworldx() == 0 or ((Common.overworldx()/40) > 20 and (Common.overworldx()/40) < 25) then
|
||||
return -1
|
||||
else
|
||||
|
@ -126,7 +126,7 @@ function Public.try_lose(loss_reason)
|
||||
-- if (not memory.game_lost) and (not memory.game_won) then
|
||||
memory.game_lost = true
|
||||
memory.crew_disband_tick_message = game.tick + 60*10
|
||||
memory.crew_disband_tick = game.tick + 60*35
|
||||
memory.crew_disband_tick = game.tick + 60*40
|
||||
|
||||
local playtimetext = Utils.time_longform((memory.age or 0)/60)
|
||||
|
||||
|
@ -152,6 +152,8 @@ function Public.full_update(player)
|
||||
button.sprite = 'entity/big-biter'
|
||||
elseif evolution_total >= 0.4 then
|
||||
button.sprite = 'entity/medium-spitter'
|
||||
elseif evolution_total >= 0.25 then
|
||||
button.sprite = 'entity/small-spitter'
|
||||
elseif evolution_total >= 0.2 then
|
||||
button.sprite = 'entity/medium-biter'
|
||||
else
|
||||
|
@ -607,7 +607,8 @@ function Public.process_etaframe_update(player, flow1, bools)
|
||||
|
||||
-- local caption
|
||||
if bools.atsea_loading_bool then
|
||||
if memory.overworldx >= Balance.rockets_needed_x then --bools.eta_bool is not helpful yet
|
||||
-- @TODO: Fix magic numbers here
|
||||
if memory.overworldx >= Balance.rockets_needed_x and (not memory.overworldx == 21 * 40) then --bools.eta_bool is not helpful yet
|
||||
flow2.etaframe_label_3.caption = {'pirates.gui_etaframe_nest_escape_cost'}
|
||||
if bools.cost_includes_rocket_launch_bool then
|
||||
tooltip = {'pirates.resources_needed_tooltip_0_rocketvariant'}
|
||||
|
@ -279,7 +279,7 @@ local function crew_tick()
|
||||
if memory.crew_disband_tick_message < tick then
|
||||
memory.crew_disband_tick_message = nil
|
||||
|
||||
local message1 = {'pirates.crew_disband_tick_message', 25}
|
||||
local message1 = {'pirates.crew_disband_tick_message', 30}
|
||||
|
||||
Common.notify_force(memory.force, message1)
|
||||
|
||||
|
@ -70,9 +70,9 @@ local destinationScheme = {
|
||||
[17] = {B, B, B},
|
||||
[18] = {C, C, C}, --first showing of robot frame cost
|
||||
[19] = {DOCK, B, B},
|
||||
[20] = {NIL, NIL, NIL},
|
||||
[21] = {WALKWAYS, WALKWAYS, WALKWAYS}, --rocket launch cost begins
|
||||
[22] = {SWAMP, RED_DESERT, STANDARD_VARIANT}, -- uniquely, this has a rocket launch cost, but still has an auto-undock timer
|
||||
[20] = {WALKWAYS, WALKWAYS, WALKWAYS}, --rocket launch cost begins
|
||||
[21] = {SWAMP, RED_DESERT, STANDARD_VARIANT}, -- uniquely, this has a rocket launch cost, but still has an auto-undock timer
|
||||
[22] = {NIL, NIL, NIL},
|
||||
[23] = {C, C, C},
|
||||
[24] = {MAZE, MAZE, MAZE}, -- current 'boss map'
|
||||
[25] = {NIL, NIL, NIL},
|
||||
@ -197,14 +197,14 @@ function Public.generate_destination_base_cost_to_undock(p, subtype)
|
||||
end
|
||||
elseif macro_p.x == 18 then --a super small amount of flying-robot-frame on a relatively early level so that they see they need lubricant
|
||||
base_cost_to_undock = base_cost_2b
|
||||
elseif macro_p.x <= 20 then
|
||||
elseif macro_p.x <= 19 then
|
||||
if macro_p.x % 3 == 0 then
|
||||
base_cost_to_undock = nil
|
||||
else
|
||||
base_cost_to_undock = base_cost_2
|
||||
end
|
||||
-- after this point, mandatory. except for 22
|
||||
elseif macro_p.x == 22 then
|
||||
-- after this point, mandatory to pay. except for 21
|
||||
elseif macro_p.x == 21 then
|
||||
base_cost_to_undock = base_cost_2
|
||||
elseif macro_p.x <= 23 then
|
||||
base_cost_to_undock = base_cost_3
|
||||
@ -450,6 +450,8 @@ function Public.generate_overworld_destination(p)
|
||||
kraken_count = 0
|
||||
elseif macro_p.x == 10 then
|
||||
kraken_count = 1
|
||||
elseif macro_p.x == 22 then
|
||||
kraken_count = 1
|
||||
end
|
||||
|
||||
-- if _DEBUG then
|
||||
|
@ -31,8 +31,8 @@ local enum = {
|
||||
DREDGER = 'dredger',
|
||||
SMOLDERING = 'smoldering',
|
||||
GOURMET = 'gourmet',
|
||||
CHIEF = 'chief',
|
||||
ROC_EATER = 'roc_eater',
|
||||
CHEF = 'chef',
|
||||
ROCK_EATER = 'rock_eater',
|
||||
SOLDIER = 'soldier',
|
||||
VETERAN = 'veteran',
|
||||
}
|
||||
@ -64,8 +64,8 @@ Public.eng_form = {
|
||||
[enum.DREDGER] = 'Dredger',
|
||||
[enum.SMOLDERING] = 'Smoldering',
|
||||
[enum.GOURMET] = 'Gourmet',
|
||||
[enum.CHIEF] = 'Chief',
|
||||
[enum.ROC_EATER] = 'Roc Eater',
|
||||
[enum.CHEF] = 'Chef',
|
||||
[enum.ROCK_EATER] = 'Rock Eater',
|
||||
[enum.SOLDIER] = 'Soldier',
|
||||
[enum.VETERAN] = 'Veteran',
|
||||
}
|
||||
@ -128,8 +128,8 @@ function Public.explanation(class, add_is_class_obtainable)
|
||||
local received_damage = Public.percentage_points_difference_from_100_percent(Balance.iron_leg_damage_taken_multiplier)
|
||||
local iron_ore_required = Balance.iron_leg_iron_ore_required
|
||||
full_explanation = {'', {explanation, received_damage, iron_ore_required}}
|
||||
elseif class == enum.ROC_EATER then
|
||||
local received_damage = Public.percentage_points_difference_from_100_percent(Balance.roc_eater_damage_taken_multiplier)
|
||||
elseif class == enum.ROCK_EATER then
|
||||
local received_damage = Public.percentage_points_difference_from_100_percent(Balance.rock_eater_damage_taken_multiplier)
|
||||
full_explanation = {'', {explanation, received_damage}}
|
||||
elseif class == enum.SOLDIER then
|
||||
local chance = Balance.soldier_defender_summon_chance * 100
|
||||
@ -203,8 +203,8 @@ function Public.initial_class_pool()
|
||||
enum.IRON_LEG,
|
||||
-- enum.SMOLDERING, --tedious
|
||||
enum.GOURMET,
|
||||
enum.CHIEF,
|
||||
enum.ROC_EATER,
|
||||
enum.CHEF,
|
||||
enum.ROCK_EATER,
|
||||
enum.SOLDIER,
|
||||
}
|
||||
end
|
||||
@ -377,16 +377,16 @@ local function class_on_player_used_capsule(event)
|
||||
if multiplier > 0 then
|
||||
local timescale = 60*30 * Math.max((Balance.game_slowness_scale())^(2/3),0.8)
|
||||
if memory.gourmet_recency_tick then
|
||||
multiplier = multiplier *Math.clamp(0.2, 5, (1/5)^((memory.gourmet_recency_tick - game.tick)/(60*300)))
|
||||
multiplier = multiplier * Math.clamp(0.2, 5, (1/5)^((memory.gourmet_recency_tick - game.tick)/(60*300)))
|
||||
memory.gourmet_recency_tick = Math.max(memory.gourmet_recency_tick, game.tick - timescale*10) + timescale
|
||||
else
|
||||
multiplier = multiplier * 5
|
||||
memory.gourmet_recency_tick = game.tick - timescale*10 + timescale
|
||||
end
|
||||
Public.class_ore_grant(player, 10 * multiplier, Balance.gourmet_ore_scaling_enabled)
|
||||
Public.class_ore_grant(player, 15 * multiplier, Balance.gourmet_ore_scaling_enabled)
|
||||
end
|
||||
elseif class == Public.enum.ROC_EATER then
|
||||
local required_count = Balance.roc_eater_required_stone_furnace_to_heal_count
|
||||
elseif class == Public.enum.ROCK_EATER then
|
||||
local required_count = Balance.rock_eater_required_stone_furnace_to_heal_count
|
||||
if player.get_item_count('stone-furnace') >= required_count then
|
||||
player.remove_item({name='stone-furnace', count=required_count})
|
||||
player.insert({name='raw-fish', count=1})
|
||||
|
@ -99,7 +99,7 @@ Public.Data.surfacename_rendering_pos = {x = -0.5, y = -15}
|
||||
|
||||
Public.cabin_shop_data = {
|
||||
{
|
||||
price = {{'coin', 400}, {'coal', 20}, {'iron-plate', 30}},--should be inefficient on resources to merely buy arty to shoot nests
|
||||
price = {{'coin', 400}, {'coal', 10}, {'iron-plate', 20}},--should be inefficient on resources to merely buy arty to shoot nests
|
||||
offer = {type='give-item', item = 'artillery-shell', count = 5},
|
||||
},
|
||||
{
|
||||
|
@ -12,7 +12,7 @@ Public.display_names = {{'pirates.location_displayname_swamp_1'}}
|
||||
Public.terraingen_frame_width = 400
|
||||
Public.terraingen_frame_height = 400
|
||||
Public.static_params_default = {
|
||||
starting_time_of_day = 0.28,
|
||||
starting_time_of_day = 0.26,
|
||||
daynightcycletype = 1,
|
||||
brightness_visual_weights = {0, 0, 0},
|
||||
default_decoratives = true,
|
||||
|
Loading…
x
Reference in New Issue
Block a user