Skip to content

/astrogation: Star Map #121

Description

@utricularian

What is normally at /astrogation should now be at /astrogation?system=current (and is now known as the System Map). The /astrogation path without a system parameter now points at the Star Map, which is a rendering of a directed graph of all the player-known star systems. The server should make the player-known star systems available to the client and we should seed the db with some connections as seen below. The Star Map is also a map, much like the System Map, with pan and zoom abilities. Each node in the graph is a clickable star with the name hovering above it. When clicked, the name should be rendered in a slightly accented way to show it is the actively selected star system. Each directed edge in the graph is a chevron alignment arrow - care to draw them slightly curved in a counter-clockwise bend to account for system pairs with reciprocal directed edges. The background of the map should be a picture of looking down on the milky way, with the center of the milky way being the coordinates of 0, 0. The edges of the picture of the milky way vertically and horizontally should be from [-10000,10000].

When a star is selected in teh System Map, a Star Details box appears in the lower left of the System Map. When a star is selected and the user clicks in empty space, the star is unselected and the Star Details box disappears.

The Star Details box should have a heading with the name of the star. It should then have <label>: <details> of the following:

  • Gates: number of gates
  • Planets: number of planets
  • Stations: number of stations

As far as data model:

  • a StarSystem represents a star. It has:

    • name (string)
    • galactic_coordinates_x (int)
    • galactic_coordinates_y (int)
    • star_class (enum matching star_classes.yml keys)
  • Each CelestialBody has a parent StarSystem

  • a GateTransitPath represents the directed edge between StarSystems

    • a from which is a foreign key to a CelestialBody with kind: gate
    • a to which is a foreign key to a CelestialBody with kind: gate

When writing this story, help me generate a graph with 6 nodes, including our Tejat system. Codify the generation in the seeds file.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions