1
0
mirror of https://github.com/ComfyFactory/ComfyFactorio.git synced 2025-03-17 20:58:13 +02:00
This commit is contained in:
danielmartin0 2022-07-31 10:23:59 +01:00
parent 9774fd4254
commit 0cd02ed024
12 changed files with 58 additions and 53 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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},
},
{

View File

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