Skip to content

Gravship Basic Behavior#631

Merged
notfood merged 20 commits intorwmt:devfrom
Tick-git:Gravship
Aug 19, 2025
Merged

Gravship Basic Behavior#631
notfood merged 20 commits intorwmt:devfrom
Tick-git:Gravship

Conversation

@Tick-git
Copy link
Copy Markdown
Contributor

Label: 1.6 Odyssey

This is a polished version of @Reznal’s SPACESHIP branch.

This PR introduces the following gravship behaviors:

  • Flying to new maps, anchors, and asteroids
  • Attacking NPC settlements and space stations

Known issues:

  • The gravship in multi-faction mode doesn’t currently work and hasn’t been tested
  • Aborting a landing can sometimes select a different map, which causes a desync

There are still some parts to refactor. This should be seen as a first iteration, intended to make collaboration easier.

Reznal and others added 19 commits August 13, 2025 15:32
- Synced up some of the basic for traveliing, works with no desync if temp terrain and vtr are off.
- Fixed some issues with map swapping.
- Reenabled vtr
- Synced dev tools for Pilot Console and Breakdownable.
… specs.

Syncing landing outcome defs
Cleaned up some things, remove unnecessary sync methods.
- Added serialization for Designator_MoveGravship
- Added some scribe data to GravshipTravelSession - still needs work
- Moved Cancelling while in world map so that it is only checked and called when cancelled, not selected.
A recent commit introduced a change that causes session cancellation to result in a desync and leaving the session open.
This commit fixes an incorrect call to TilePicker.StopTargeting on non-Issuers when the gravship has a valid destination tile selected and is about to start.

Issuers clean up the TargetPicker after selecting a valid tile and preparing to launch the gravship.

This commit introduces the same behavior for non-Issuers.
Refactor to use the original method for StopTargeting.

I spent quite a while trying to find what in the source code causes the map to not close for the non-issuer. I found that, for the issuer, the wantedMode is set to None and for the issuer to planet, but I couldn’t find where this happens in the source code. So I just set it manually.
The gravship travel session was not closed correctly, so it was saved and caused errors on the next load.
This commit fixes loading session errors, and joining a client during takeoff, landing, or an active session is now possible.

When a user joins, the current session is canceled. This works well for the takeoff session. In the landing session, however, when the landing position is selected, the session is not recreated. As a result, the time can still be controlled. I think this is fine for now, but I’ll note it down for future change.

We now use separate takeoff and landing sessions.
The world session has been removed.
Exposable sessions have also been removed.
The take-off session wasn’t opened due to a different code path, so our prefix for opening the session was never executed.

In other words, the map destruction confirmation window isn’t displayed because the map itself isn’t being destroyed with a anchor.
Flying back to an anchored map is handled differently.

Fixes:

Map could not be found when opening a session due to the marker being initialized differently.

Marker could not be synced correctly because it was not spawned or did not have a parent map.

Deselects the gravship designator if another client selects a landing position.
Removes half copied WorldComponentOnGUI and syncs the confirmation button in another way.
This commit implements the abort button which redirects you to a random map nearby.

I did experience really rare Rand problems, where a other abort map was picked between clients.
@notfood notfood added fix Fixes for a bug or desync. 1.6 Fixes or bugs relating to 1.6 (Not Odyssey). odyssey Fix or bugs relating to Odyssey (Not 1.6) labels Aug 19, 2025
@notfood notfood moved this to In review in 1.6 and Odyssey Aug 19, 2025
@notfood notfood merged commit 8b9b44e into rwmt:dev Aug 19, 2025
1 check passed
@github-project-automation github-project-automation bot moved this from In review to Done in 1.6 and Odyssey Aug 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

1.6 Fixes or bugs relating to 1.6 (Not Odyssey). fix Fixes for a bug or desync. odyssey Fix or bugs relating to Odyssey (Not 1.6)

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants