Skip to content

Latest commit

 

History

History
143 lines (105 loc) · 3.57 KB

ARCHITECTURE.md

File metadata and controls

143 lines (105 loc) · 3.57 KB
graph LR
  subgraph Data from Destiny 2 API
    CharacterData
    SeparateCharacterInventories[(Separate Chacter Inventories)]
    CharacterInventories
    ProfileInventory
    Sockets
    PlugObjectives
  end

  subgraph Destiny 2 Manifest
    Manifest
  end

  SeparateCharacterInventories --> CharacterInventories

  CharacterInventories[(Merged Character Inventories)] --> Items
  ProfileInventory[(Profile Inventory)] --> Items

  Items[(ItemInstances)] --> MergeItems
  Sockets[(Socket Data)] --> MergeItems
  PlugObjectives[(Plug Objective Data)] --> MergeItems
  Manifest[(Destiny 2 Manifest)] --> MergeItems

  MergeItems[Merge item component, instance data, sockets, plug objectives, manifest definition together] --> MergedItems[(Merged Item Objects)]

  CharacterData[(Character Data)]

  MergedItems --> FilterEquippable[Filter Equippable Items]

  FilterEquippable --> FindTop[Find Top Items with Exotic restriction]
  FilterEquippable --> FindTopUnrestricted[Find Top Items]

  FindTop --> FindMinimum
  FindTop --> FindPotential[Find potential power which can be reached by upgrading items]
  FindTop --> TopItemsBySlot
  FindTop --> FindAveragePower
  FindAveragePower --> OverallPower
  FindAveragePower --> OverallPowerExact

  CharacterData --> MapClassName[Map class name to formatted string]

  CharacterData --> Character
  MapClassName --> ClassName
  FindTopUnrestricted --> UnrestrictedTopItems
  FindMinimum --> MinPower
  FindPotential --> PotentialOverallPower

  CharacterData --> FindTitleData
  Manifest --> FindTitleData
  FindTitleData --> TitleDataOutput

  CharacterData --> FindArtifactData
  Manifest --> FindArtifactData
  FindArtifactData --> ArtifactDataOutput

  CharacterInventories --> GetSingleCharacterInventory
  GetSingleCharacterInventory --> GetEngrams
  Manifest --> GetEngrams
  GetEngrams --> FilterEngrams[Filter to relevant engrams]

  FilterEquippable --> CheckForRedacted[Check for any redacted items]
  CheckForRedacted --> HasRedactedEquippableItems

  FilterEngrams --> EngramDataOutput


  subgraph Outputs

    subgraph CharacterDataOutput [Character Data]
      Character
      ClassName
    end

    subgraph TopItemsBySlot
      ItemName
      ItemSlot
      ItemPower
      ItemIcon
    end

    subgraph TopItemsSummary [Top Items Summary]
      OverallPower(Overall Power)
      OverallPowerExact(Overall Power Exact)
      MinPower(Minimum Power)
      PotentialOverallPower(Potential Overall Power)
    end

    subgraph UnrestrictedTopItems [Unrestricted Top Items]
      UnrestrictedOverallPower(Unrestricted Overall Power)
      UnrestrictedOverallPowerExact(Unrestricted Overall Power Exact)
      TopUnrestrictedItemBySlot(Unrestricted Top Item By Slot)
    end

    HasRedactedEquippableItems

    subgraph ArtifactDataOutput [Artifact Data]
      ArtifactName
      ArtifactPower
      ArtifactIcon
    end

    subgraph TitleDataOutput [Title Data]
      TitleName
      TitleGildedCount
    end

    subgraph EngramDataOutput [Engram Data]
      EngramName
      EngramPower
      EngramIcon
    end

  end

  Outputs --> Components

  subgraph Components

    ClassName --> Header

    TopItemsSummary --> PowerDisplay
    ArtifactDataOutput --> PowerDisplay

    TitleDataOutput --> TitleDisplay

    ArtifactDataOutput --> ArtifactDisplay

    TopItemsBySlot --> ItemsDisplay
    TopItemsSummary --> ItemsDisplay

    EngramDataOutput --> EngramDisplay
    TopItemsSummary --> EngramDisplay
    MinPower --> EngramDisplay

    TopItemsSummary --> PowerHints
    PotentialOverallPower --> PowerHints

    HasRedactedEquippableItems --> RedactedWarning

  end
Loading