Skip to content

Commit

Permalink
Update for journey
Browse files Browse the repository at this point in the history
  • Loading branch information
hanakocz committed Jan 14, 2025
1 parent 1da5548 commit af0d9e3
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 14 deletions.
2 changes: 1 addition & 1 deletion locale/en/journey.cfg
Original file line number Diff line number Diff line change
@@ -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.
Expand Down
30 changes: 19 additions & 11 deletions maps/journey/functions.lua
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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' },
Expand Down Expand Up @@ -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
Expand All @@ -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)
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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 })
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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)

Expand Down Expand Up @@ -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
Expand Down
3 changes: 3 additions & 0 deletions maps/journey/main.lua
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions maps/journey/unique_modifiers.lua
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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(
Expand Down

0 comments on commit af0d9e3

Please sign in to comment.