Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Space Age - Space #316

Open
9 of 26 tasks
SWeini opened this issue Oct 14, 2024 · 0 comments
Open
9 of 26 tasks

Space Age - Space #316

SWeini opened this issue Oct 14, 2024 · 0 comments
Labels
2.0 The transition to supporting 2.0

Comments

@SWeini
Copy link
Collaborator

SWeini commented Oct 14, 2024

Support space travel and multiple planets

Space Map
The space map is part of the tech tree

  • Reconstruct space map using SpaceLocationPrototype and SpaceConnectionPrototype
  • Integrate into tech tree with UnlockSpaceLocationModifier
  • Trigger technologies for CreateSpacePlatformTechnologyTrigger and SendItemToOrbitTechnologyTrigger

Space Platforms

  • CreateSpacePlatformTechnologyTrigger
  • SpacePlatformStarterPackPrototype
    Contains links to surface (with its properties) and initial items which might be important for milestones

Asteroids
Model asteroid collection

  • Read all AsteroidChunkPrototype::minable
  • Read all AsteroidCollectorPrototype that can mine asteroid chunks
    I couldn't find any category, so every collector can mine every chunk
  • What is the speed of 1 collector entity?
  • Support AsteroidPrototype
    • Model damage to destroy them
    • Model dying_trigger_effect with CreateAsteroidChunkEffectItem
  • Each location and connection has a unique combination of asteroids and asteroid chunks
    This could be made into specific recipes that mine in the "correct" ratio.
    Asteroid collectors can be filtered, so it should still be possible to mine only a single asteroid chunk prototype.

Surface Conditions
Planets are different

  • Read PlanetPrototype and their surface_properties
  • Provide GUI to select a planet per sheet and/or nested table
  • Entities only work with compatible EntityPrototype::surface_conditions
  • Recipes only work with compatible RecipePrototype::surface_conditions
  • Read PlanetPrototype::map_gen_settings to have different resources available on each planet
  • Entities only work with compatible EntityPrototype::tile_buildability_rules, tile availability according to map_gen_settings
  • Variable solar panel / accumulator output defined by "solar-power"/"day-night-cycle" surface properties and PlanetPrototype::solar_power_in_space

Space Travel
Model flying and asteroids along the way.

  • Introduce traveled distance imaginary good
  • Read ThrusterPrototype
    Consumes fuel and oxidizer
    Variable performance according to min_performance and max_performance, this would allow for fixed building count of fuel/oxidizer production, plus fixed building count for thrusters, automatically adjusting the performance. This is totally different from other forms of "fixed" things.
    Generates traveled distance.
    Does speed depend on the weight of the platform?
  • Asteroid spawning
    Generate asteroids per distance according to SpaceConnectionPrototype::asteroid_spawn_definitions

Interplanetary Logistics
Model sending items to other planets.

  • Attach planet information to each good
  • Sending item from planet into space costs rocket launches
    Like normal rocket launches, but has to respect ItemPrototype::weight and UtilityConstants::rocket_lift_weight
  • Sending items from space to planet is free
  • Assume space travel is free/self-sufficient
@Dorus Dorus added the 2.0 The transition to supporting 2.0 label Oct 14, 2024
@DaleStan DaleStan self-assigned this Nov 12, 2024
@DaleStan DaleStan mentioned this issue Nov 16, 2024
@DaleStan DaleStan removed their assignment Nov 17, 2024
shpaass added a commit that referenced this issue Nov 18, 2024
This is some more parts of #316. I think it covers all location
information required by dependency/milestone analysis, except
space-connections (which don't add any additional unlocks): It knows
that lava isn't accessible until you get to Vulcanus and knows that
Promethium science pack is accessible. It is happy loading new and
existing pY and SA projects, though the pY projects [need a change to
pypostprocessing](pyanodon/pypostprocessing#58).

In order to not break Space science when fixing Promethium science, I
had to implement these, both internally and in the UI:

![image](https://github.com/user-attachments/assets/51fbfe78-3784-41ca-9b11-cd0ea28b625b)
![image](https://github.com/user-attachments/assets/64dac276-6e2e-4051-b646-d0b78bbc68a7)
The vertical bar will connect as many horizontal OR bars as necessary.
Lists that are not separated by an OR bar (almost all of them) use the
standard AND behavior.

I also decided this (1364 pixels high) was bad

![image](https://github.com/user-attachments/assets/7f533d19-c14b-4791-8867-1034918d4151)
and changed it to this instead (down to 970 px)

![image](https://github.com/user-attachments/assets/358b6820-fcdd-4940-8921-bc394a49a97d)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2.0 The transition to supporting 2.0
Projects
None yet
Development

No branches or pull requests

3 participants