mirror of
https://github.com/ComfyFactory/ComfyFactorio.git
synced 2025-02-09 13:37:02 +02:00
fix crafting disabled time
This commit is contained in:
parent
95f16e7423
commit
74827d2208
@ -79,6 +79,7 @@ parrot_buried_treasure_tip=Squawk! If X marks the spot - use an item to dig!
|
|||||||
parrot_captain_left_protected_run=The captain has disconnected. Since this crew is captain-protected, the captain role will not be redistributed for __1__ hours. Squawk!
|
parrot_captain_left_protected_run=The captain has disconnected. Since this crew is captain-protected, the captain role will not be redistributed for __1__ hours. Squawk!
|
||||||
parrot_player_joins_protected_run_with_no_captain=Hello there! Since this crew is captain-protected, you will have to wait for captain to return in order to control the ship.
|
parrot_player_joins_protected_run_with_no_captain=Hello there! Since this crew is captain-protected, you will have to wait for captain to return in order to control the ship.
|
||||||
parrot_create_new_crew_tip=You can always create or join another crew. To do this, press the red flag on top, click 'Quit Crew', then press 'Crews'.
|
parrot_create_new_crew_tip=You can always create or join another crew. To do this, press the red flag on top, click 'Quit Crew', then press 'Crews'.
|
||||||
|
parrot_crafters_disabled=Our machines have stopped whilst we're waiting at sea. Gotta keep moving!
|
||||||
|
|
||||||
difficulty_easy=Easy
|
difficulty_easy=Easy
|
||||||
difficulty_normal=Normal
|
difficulty_normal=Normal
|
||||||
|
@ -101,12 +101,20 @@ function Public.apply_restrictions_to_machines(tickinterval)
|
|||||||
local memory = Memory.get_crew_memory()
|
local memory = Memory.get_crew_memory()
|
||||||
local boat = memory.boat
|
local boat = memory.boat
|
||||||
|
|
||||||
-- Skip redundant checks if there's nobody on the ship:
|
if boat.state == Boats.enum_state.ATSEA_VICTORIOUS or Boats.enum_state.ATSEA_WAITING_TO_SAIL then
|
||||||
local disable_crafters = boat.state == Boats.enum_state.ATSEA_VICTORIOUS or (
|
if boat.state == Boats.enum_state.ATSEA_VICTORIOUS then
|
||||||
boat.state == Boats.enum_state.ATSEA_WAITING_TO_SAIL and game.tick >= boat.at_sea_waiting_game_tick + Balance.at_sea_waiting_crafters_disable_time_seconds * 60
|
memory.crafted_disabled = true
|
||||||
)
|
else
|
||||||
if Common.activecrewcount() == 0 and disable_crafters == memory.disable_crafters_last_seen then return end
|
if not memory.crafters_disabled and (
|
||||||
memory.disable_crafters_last_seen = disable_crafters
|
game.tick > boat.at_sea_waiting_game_tick + Balance.max_time_crafting_while_waiting_seconds() * 60
|
||||||
|
) then
|
||||||
|
memory.crafters_disabled = true
|
||||||
|
Common.parrot_speak(memory.force, {'pirates.crafters_disabled'})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
memory.crafters_disabled = false
|
||||||
|
end
|
||||||
|
|
||||||
local surfaces_to_check = {}
|
local surfaces_to_check = {}
|
||||||
|
|
||||||
@ -141,7 +149,7 @@ function Public.apply_restrictions_to_machines(tickinterval)
|
|||||||
|
|
||||||
for _, machine in ipairs(crafters) do
|
for _, machine in ipairs(crafters) do
|
||||||
if machine and machine.valid then
|
if machine and machine.valid then
|
||||||
machine.active = not disable_crafters
|
machine.active = not memory.crafters_disabled
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -90,7 +90,6 @@ Public.biter_boats_start_arrive_x = 40 * 5
|
|||||||
Public.need_resources_to_undock_x = 40 * 20
|
Public.need_resources_to_undock_x = 40 * 20
|
||||||
Public.biters_spawned_on_elite_biter_death = 4
|
Public.biters_spawned_on_elite_biter_death = 4
|
||||||
Public.walkways_frozen_pool_damage = 12
|
Public.walkways_frozen_pool_damage = 12
|
||||||
Public.at_sea_waiting_crafters_disable_time_seconds = 60 * 5
|
|
||||||
|
|
||||||
function Public.starting_boatEEIpower_production_MW()
|
function Public.starting_boatEEIpower_production_MW()
|
||||||
-- return 3 * Math.sloped(Common.capacity_scale(), 1/2) / 2 --/2 as we have 2
|
-- return 3 * Math.sloped(Common.capacity_scale(), 1/2) / 2 --/2 as we have 2
|
||||||
@ -172,25 +171,28 @@ function Public.game_slowness_scale()
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-- In seconds
|
function Public.max_time_on_island_formula_seconds() --always >0 --tuned
|
||||||
function Public.max_time_on_island_formula() --always >0 --tuned
|
|
||||||
-- return 60 * (
|
-- return 60 * (
|
||||||
-- -- (32 + 2.2 * (Common.overworldx()/40)^(1/3))
|
-- -- (32 + 2.2 * (Common.overworldx()/40)^(1/3))
|
||||||
-- (33 + 0.2 * (Common.overworldx()/40)^(1/3)) --based on observing x=2000, lets try killing the extra time
|
-- (33 + 0.2 * (Common.overworldx()/40)^(1/3)) --based on observing x=2000, lets try killing the extra time
|
||||||
-- ) * Public.game_slowness_scale()
|
-- ) * Public.game_slowness_scale()
|
||||||
|
|
||||||
local minimum_mins_on_island = 30
|
local minimum_mins = 30
|
||||||
return Math.ceil(60 * minimum_mins_on_island * Public.game_slowness_scale())
|
return Math.ceil(60 * minimum_mins * Public.game_slowness_scale())
|
||||||
end
|
end
|
||||||
|
|
||||||
-- In seconds
|
function Public.max_time_crafting_while_waiting_seconds()
|
||||||
function Public.max_time_on_island(island_subtype)
|
local minimum_mins = 3
|
||||||
|
return Math.ceil(60 * minimum_mins * Public.game_slowness_scale())
|
||||||
|
end
|
||||||
|
|
||||||
|
function Public.max_time_on_island_seconds(island_subtype)
|
||||||
local x = Common.overworldx()
|
local x = Common.overworldx()
|
||||||
if x == 0 then
|
if x == 0 then
|
||||||
-- if Common.overworldx() == 0 or ((Common.overworldx()/40) > 20 and (Common.overworldx()/40) < 25) then
|
-- if Common.overworldx() == 0 or ((Common.overworldx()/40) > 20 and (Common.overworldx()/40) < 25) then
|
||||||
return -1
|
return -1
|
||||||
else
|
else
|
||||||
local time = Public.max_time_on_island_formula()
|
local time = Public.max_time_on_island_formula_seconds()
|
||||||
|
|
||||||
if x == 40 then -- it's important for this island to be somewhat chill, so that it's not such a shock to go here from the first lobby chill island
|
if x == 40 then -- it's important for this island to be somewhat chill, so that it's not such a shock to go here from the first lobby chill island
|
||||||
time = time * 1.2
|
time = time * 1.2
|
||||||
@ -208,7 +210,7 @@ end
|
|||||||
Public.expected_time_fraction = 0.7
|
Public.expected_time_fraction = 0.7
|
||||||
|
|
||||||
function Public.expected_time_on_island() --always >0
|
function Public.expected_time_on_island() --always >0
|
||||||
return Public.expected_time_fraction * Public.max_time_on_island_formula()
|
return Public.expected_time_fraction * Public.max_time_on_island_formula_seconds()
|
||||||
end
|
end
|
||||||
|
|
||||||
function Public.fuel_depletion_rate_static()
|
function Public.fuel_depletion_rate_static()
|
||||||
@ -243,7 +245,7 @@ function Public.silo_total_pollution()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function Public.boat_passive_pollution_per_minute(time)
|
function Public.boat_passive_pollution_per_minute(time)
|
||||||
local T = Public.max_time_on_island_formula()
|
local T = Public.max_time_on_island_formula_seconds()
|
||||||
if (Common.overworldx()/40) > 25 then T = T * 0.9 end
|
if (Common.overworldx()/40) > 25 then T = T * 0.9 end
|
||||||
|
|
||||||
local boost
|
local boost
|
||||||
@ -350,7 +352,7 @@ function Public.evolution_per_nest_kill() --it's important to have evo go up wit
|
|||||||
|
|
||||||
local time = destination.dynamic_data.timer
|
local time = destination.dynamic_data.timer
|
||||||
-- local time_to_jump_to = Public.expected_time_on_island() * ((1/Public.expected_time_fraction)^(2/3))
|
-- local time_to_jump_to = Public.expected_time_on_island() * ((1/Public.expected_time_fraction)^(2/3))
|
||||||
local time_to_jump_to = Public.max_time_on_island_formula()
|
local time_to_jump_to = Public.max_time_on_island_formula_seconds()
|
||||||
if time > time_to_jump_to then return base_evo_jump
|
if time > time_to_jump_to then return base_evo_jump
|
||||||
else
|
else
|
||||||
-- evo it 'would have' contributed:
|
-- evo it 'would have' contributed:
|
||||||
|
@ -174,8 +174,8 @@ function Public.update_EEIs(boat)
|
|||||||
boat.EEIpower_production = Balance.starting_boatEEIpower_production_MW() * 1000000 / 60 * multiplier
|
boat.EEIpower_production = Balance.starting_boatEEIpower_production_MW() * 1000000 / 60 * multiplier
|
||||||
boat.EEIelectric_buffer_size = Balance.starting_boatEEIelectric_buffer_size_MJ() * 1000000 * multiplier
|
boat.EEIelectric_buffer_size = Balance.starting_boatEEIelectric_buffer_size_MJ() * 1000000 * multiplier
|
||||||
|
|
||||||
local disable_EEIs = (boat.state == Public.enum_state.ATSEA_WAITING_TO_SAIL)
|
local disable_EEIs = boat.state == Public.enum_state.ATSEA_WAITING_TO_SAIL or boat.state == Public.enum_state.ATSEA_VICTORIOUS
|
||||||
|
|
||||||
for _, e in pairs(boat.EEIs) do
|
for _, e in pairs(boat.EEIs) do
|
||||||
if e and e.valid then
|
if e and e.valid then
|
||||||
if disable_EEIs then
|
if disable_EEIs then
|
||||||
|
@ -234,7 +234,7 @@ function Public.destination_on_collide(destination)
|
|||||||
-- end
|
-- end
|
||||||
-- end
|
-- end
|
||||||
|
|
||||||
local max_time = Balance.max_time_on_island(destination.subtype)
|
local max_time = Balance.max_time_on_island_seconds(destination.subtype)
|
||||||
local arrival_rate = Balance.biter_boat_average_arrival_rate()
|
local arrival_rate = Balance.biter_boat_average_arrival_rate()
|
||||||
local boat_count = Math.floor(max_time / arrival_rate) - 2 -- avoid spawning biter boats at very last seconds
|
local boat_count = Math.floor(max_time / arrival_rate) - 2 -- avoid spawning biter boats at very last seconds
|
||||||
|
|
||||||
@ -285,7 +285,7 @@ function Public.destination_on_arrival(destination)
|
|||||||
|
|
||||||
destination.dynamic_data.rocketsiloenergyneeded = Balance.silo_energy_needed_MJ() * 1000000
|
destination.dynamic_data.rocketsiloenergyneeded = Balance.silo_energy_needed_MJ() * 1000000
|
||||||
|
|
||||||
destination.dynamic_data.time_remaining = Balance.max_time_on_island(destination.subtype)
|
destination.dynamic_data.time_remaining = Balance.max_time_on_island_seconds(destination.subtype)
|
||||||
|
|
||||||
if destination.subtype ~= IslandEnum.enum.FIRST and destination.subtype ~= IslandEnum.enum.RADIOACTIVE and destination.destination_index ~= 2 then
|
if destination.subtype ~= IslandEnum.enum.FIRST and destination.subtype ~= IslandEnum.enum.RADIOACTIVE and destination.destination_index ~= 2 then
|
||||||
-- if not destination.overworld_position.x ~= Common.first_cost_to_leave_macrox * 40 then
|
-- if not destination.overworld_position.x ~= Common.first_cost_to_leave_macrox * 40 then
|
||||||
|
Loading…
x
Reference in New Issue
Block a user