1
0
mirror of https://github.com/ComfyFactory/ComfyFactorio.git synced 2025-01-26 03:52:22 +02:00

Update for journey

This commit is contained in:
hanakocz 2025-01-14 17:01:17 +01:00
parent 1da5548398
commit af0d9e3226
4 changed files with 25 additions and 14 deletions

View File

@ -1,6 +1,6 @@
[journey]
map_info_main_caption=The Journey
map_info_sub_caption=v 1.9
map_info_sub_caption=v 2.0
map_info_text=The selectors in the mothership, allow you to choose a destination.\nWorlds can be rerolled by spending a satellite at the top selector.\nOnce enough players are on a selector, mothership will start traveling.\n\nA teleporter will be deployed, after reaching the target.\nIt is however, only capable of transfering the subjects body.\n\nWorlds will get more difficult with each jump, stacking the chosen modifiers.\nLaunch uranium fuel cells via rocket cargo, to advance to the next world.\nThe tooltips on the top buttons yield informations about the current world.\nIf the journey ends, an admin can fully reset the map via command "/journey-reset".\n\nHow far will the journey lead?
tooltip_satellite=Satellites stored: __1__ / __2__\nSatellites are used by Mothership to scout for alternative destinations.

View File

@ -27,7 +27,7 @@ local function clear_selectors(journey)
end
local function protect(entity, operable)
entity.minable = false
entity.minable_flag = false
entity.destructible = false
entity.operable = operable
end
@ -62,7 +62,7 @@ local function place_teleporter(journey, surface, position, build_beacon)
local beacon = surface.create_entity({ name = 'cargo-landing-pad', position = { x = position.x + 3, y = position.y + 2 }, force = 'player' })
journey.beacon_objective_health = 10000
beacon.operable = true
beacon.minable = false
beacon.minable_flag = false
beacon.active = true
rendering.draw_text {
text = { 'journey.teleporter' },
@ -235,7 +235,7 @@ local function delete_nauvis_chunks(journey)
table.insert(journey.nauvis_chunk_positions, { chunk.x, chunk.y })
end
journey.size_of_nauvis_chunk_positions = #journey.nauvis_chunk_positions
for _, e in pairs(surface.find_entities_filtered { type = 'radar' }) do
for _, e in pairs(surface.find_entities_filtered { type = {'radar', 'roboport', 'spider-vehicle'} }) do
e.destroy()
end
for _, player in pairs(game.players) do
@ -253,7 +253,7 @@ local function delete_nauvis_chunks(journey)
return
end
for _ = 1, 12, 1 do
for _ = 1, 1, 1 do --1 chunk per action until 2.0.31! TODO: fix back to 12 when version released
local chunk_position = journey.nauvis_chunk_positions[journey.size_of_nauvis_chunk_positions]
if chunk_position then
surface.delete_chunk(chunk_position)
@ -526,6 +526,7 @@ function Public.hard_reset(journey)
Autostash.bottom_button(true)
Misc.bottom_button(true)
if game.surfaces.mothership and game.surfaces.mothership.valid then
game.surfaces.mothership.destroy_global_electric_network()
game.delete_surface(game.surfaces.mothership)
end
@ -608,6 +609,7 @@ function Public.create_mothership(journey)
local surface = game.create_surface('mothership', Constants.mothership_gen_settings)
surface.request_to_generate_chunks({ x = 0, y = 0 }, 6)
surface.force_generate_chunk_requests()
surface.create_global_electric_network()
surface.freeze_daytime = true
journey.game_state = 'draw_mothership'
end
@ -694,7 +696,7 @@ function Public.draw_mothership(journey)
only_in_alt_mode = false
}
for k, item_name in pairs({ 'arithmetic-combinator', 'constant-combinator', 'decider-combinator', 'selector-combinator', 'display-panel', 'programmable-speaker', 'small-lamp', 'substation', 'pipe', 'gate', 'stone-wall', 'transport-belt' }) do
for k, item_name in pairs({ 'arithmetic-combinator', 'constant-combinator', 'decider-combinator', 'selector-combinator', 'display-panel', 'programmable-speaker', 'small-lamp', 'pipe', 'gate', 'stone-wall', 'transport-belt' }) do
local chest = surface.create_entity({ name = 'infinity-chest', position = { -7 + k, Constants.mothership_radius - 3 }, force = 'player' })
if not chest or not chest.valid then break end
chest.set_infinity_container_filter(1, { name = item_name, count = prototypes.item[item_name].stack_size, index = 1 })
@ -707,8 +709,6 @@ function Public.draw_mothership(journey)
for m = -1, 1, 2 do
local inter = surface.create_entity({ name = 'electric-energy-interface', position = { 11 * m, Constants.mothership_radius - 4 }, force = 'player' })
protect(inter, true)
local sub = surface.create_entity({ name = 'substation', position = { 9 * m, Constants.mothership_radius - 4 }, force = 'player' })
protect(sub, true)
end
for m = -1, 1, 2 do
@ -1445,10 +1445,15 @@ function Public.dispatch_goods(journey)
if journey.dispatch_beacon_position then
local good = goods_to_dispatch[journey.dispatch_key]
local pod = surface.create_entity({name = 'cargo-pod-container', position = journey.dispatch_beacon_position, force = game.forces.player})
local itemcount = good[2]
if pod and pod.valid then
pod.insert({name = good[1], count = good[2]})
else
surface.spill_item_stack({ position = journey.dispatch_beacon_position, stack = { name = good[1], count = good[2] }, enable_looted = true, allow_belts = false })
local inserted = pod.insert({name = good[1], count = itemcount})
if inserted > 0 then
itemcount = itemcount - inserted
end
end
if itemcount > 0 then
surface.spill_item_stack({ position = journey.dispatch_beacon_position, stack = { name = good[1], count = itemcount }, enable_looted = true, allow_belts = false })
end
table.remove(journey.goods_to_dispatch, journey.dispatch_key)
journey.dispatch_beacon = nil
@ -1469,7 +1474,7 @@ function Public.dispatch_goods(journey)
end
journey.dispatch_beacon = surface.create_entity({ name = 'stone-wall', position = position, force = 'neutral' })
journey.dispatch_beacon.minable = false
journey.dispatch_beacon.minable_flag = false
journey.dispatch_beacon_position = { x = position.x, y = position.y }
journey.dispatch_key = Math.random(1, size_of_goods_to_dispatch)
@ -1576,6 +1581,9 @@ function Public.teleporters(journey, player)
if not player.character.valid then
return
end
if player.vehicle then
return
end
local surface = player.physical_surface
local tile = surface.get_tile(player.physical_position)
if not tile or not tile.valid then

View File

@ -194,6 +194,9 @@ local function on_rocket_launched(event)
force.technologies['space-science-pack'].researched = true
force.print('[technology=space-science-pack] researched.')
force.play_sound({path = 'utility/research_completed'})
table.insert(journey.goods_to_dispatch, { 'loader', 3 })
table.insert(journey.mothership_messages, 'I am sending you some loaders. Use them to load the rocket silos with all needed items.')
journey.game_state = 'dispatch_goods'
end
Functions.draw_gui(journey)
end

View File

@ -239,7 +239,7 @@ Public.tarball = {
if tarball_minable[entity.type] then
return
end
entity.minable = false
entity.minable_flag = false
end,
on_built_entity = function (event)
local entity = event.entity
@ -252,7 +252,7 @@ Public.tarball = {
if tarball_minable[entity.type] then
return
end
entity.minable = false
entity.minable_flag = false
end,
on_chunk_generated = function (event, journey)
table.insert(