All Seeing Satellite


[WIP] Once again launch satellites into space! Let them be your eyes in the sky. After launching sufficient satellites, unlock the ability to toggle on and off the fog of war.

Content
15 days ago
2.0
256
Cheats
Owner:
TheEckelmonster
Source:
https://github.com/pje279/all-seeing-...
Homepage:
N/A
License:
MIT
Created:
20 days ago
Latest Version:
0.4.0 (15 days ago)
Factorio version:
2.0
Downloaded by:
256 users

[WIP]

Once again launch satellites into space! Let them be your eyes in the sky. After launching enough satellites, unlock the ability to toggle on and off the fog of war, if you can maintain satellites in orbit, that is.

What does this mod do?

Adds back Satellites as a craftable item. Unlocked with Rocket Silo research. Presently no changes to the vanilla recipe.

Rocket Silos loaded with a satellite, either manually, or automatically via an inserter (make sure to disable "Automatic requests from space platforms" on the rocket silo) will automatically (about once a second) try to launch into "orbit"; satellites launched to a platform/spaceship will not count towards the count of satellites in orbit around the given planet.

Once the satellite launch threshold has been met for a given planet (default of 3; configurable), pressing the new hotkey ('N' by default; configurable) will enable/disable the fog-of-war (FoW) from the map view based on the surface the player is currently viewing. Has no effect in space.

i.e. if you're viewing Nauvis, it will toggle the FoW for only Nauvis, and so on for each surface

Supports quality satellites!

Quality satellites confer a ~30% boost to the their duration as follows, in minutes:

  • normal -> 20 * 1 = 20
  • uncommon -> 20 * 1.3 = 26
  • rare -> 20 * 1.69 = 33.8
  • epic -> 20 * 2.197 = 43.94
  • legendary -> 20 * 2.8561 = 57.122

Satellite duration is 20 minutes by default, but is configurable.

Planet size/magnitude affects minimum satellite launch threshold

Default is 3 (Nauvis), configurable

formula is:

return_val = launch_threshold_setting * planet_magnitude * planet_magnitude

if (planet_magnitude) < 1 then
  return_val = math.floor(return_val)
else
  return_val = math.ceil(return_val)
end

Works out to as follows for the vanilla planets:

  • Fulgora: magnitude of 0.9 -> 2 satellites
  • Nauvis: magnitude of 1 -> 3 satellites
  • Aquilo: magnitude of 1 -> 3 satellites
  • Gleba: magnitude of 1.1 -> 4 satellites
  • Vulcanus: magnitude of 1.5 -> 7 satellites

Should in theory support additional planets/surfaces.

Please report any issues.


Configurable logging levels

Logging levels are:

  • None
  • Error
  • Warn
  • Debug
  • Info

By default, the logging level is 'None'


Console commands

  • /all_seeing.init
    • Initialize the supporting data structures from scratch, erasing any existing data
  • /all_seeing.reinit
    • Reinitialize the supporting data structures, making a moderate attempt to maintain existing data
  • /all_seeing.print_storage
    • Prints the contents of the supporting data structures

Future plans

  • Reveal new areas, either via a remote, or a remote view a la "Satellite View" in Space Exploration
  • Potential researches for better/longer lasting satellites
    • i.e. thinking standard -> nuclear fueled -> fusion powered
    • Each would have a longer life span, with fusion potentially being infinite
  • Potentially a chance for satellites to crash into asteroids when in orbit outside of Nauvis (or starting planet equivalent)
    • Would be configurable
    • Really stretching my limits, but debris from said destroyed satellites raining down on the planet a la a crashed rocket in Space Exploration
  • Configurable settings, i.e. things like:
    • Satellite crafting requirements
    • Research requirements
    • Etc..
  • Open to suggestions!