Focus Mockup

Just a test of mermaid diagram syntax

Just a test of mermaid diagram syntax

flowchart TD
    xwsImportReducer.importXWS --> PilotStateService(PilotStateService.createPilotState_throws) --> buildPilotStateData --> UpgradeUtility.buildAllUpgrades("UpgradeUtility.buildAllUpgrades(allUpgrades)");
    buildPilotStateData --> calculateActiveHull("calculateActiveTest(hull)");
    buildPilotStateData --> calculateActiveShield("calculateActiveTest(shiled)");
    buildPilotStateData --> |.shield| calculateActive(calculateActive);
    buildPilotStateData --> calculate_force_active(calculate_force_active);
    buildPilotStateData --> ship.pilotCharge;
    buildPilotStateData --> buildUpgradeStates("buildUpgradeStates(allUpgrades)");

Current UpgradeUtility

classDiagram
class UpgradeUtility {
    - enum upgradeCategories : String, CaseIterable
    - var updgradesByCategory : Dictionary~String#44; Array~String~~
    - var upgradesByName: Dictionary~String#44; String~
    + static func getCategory(upgrade : String) -> String?
    + static func buildUpgradesDictionary() -> Dictionary~String#44; Arrary~String~~
    + static func buildUpgradesByNameDictionary() -> Dictionary~String#44; String~
    + func buildUpgradesByUpgradeNames(upgradeNames: Array~String~) -> Array~Upgrade~
    + static func getJSONForUpgrade(forType: String, inDirectory: String) -> String
    + static func getUpgrades(upgradeCategory: String) -> Array~Upgrade~
    
    + static func buildAllUpgrades(...) -> Array~Upgrade~
    + static func buildAllUpgrades_throws(upgrades: SquadPilotUpgrade) throws -> Array~Upgrade~
    + static func getCategory(for: String) -> String
}

New UpgradeUtility

classDiagram
class UpgradesData {
    - enum upgradeCategories : String, CaseIterable
      - categoryToUpgradesDictionary : Dictionary~String#44; Array~Upgrade~~
      -namesToUpgrades : Dictionary~String#44; Upgrade~
      + func getUpgrades(upgradeCategory: String) -> Array~Upgrade~
      + func getUpgrade(upgradeName: String) -> Upgrade?
      + func buildCategoryToUpgradesDictionary()
    }

class UpgradeUtilityNew {
    + init()
    - upgradesData : UpgradesData
    + static func getCategory(upgrade : String) -> String?
    + static func getUpgrades(upgradeCategory : String) -> Array~Upgrade~
    + func getUpgradesForSquadPilotUpgrades(upgrades: SquadPilotUpgrade) -> Array~Upgrade~
    + func getUpgradesForNames(upgradeNames: [String]) -> Array~Upgrade~
    - func getSquadPilotUpgradesFromUpgradesData(_ upgrades: SquadPilotUpgrade) -> [Upgrade]
}

class CacheService {
    - func getShipV2.getPilot.getUpgradesFromCache() -> [Upgrade]
}

class PilotStateService {
    + func createPilotState.buildPilotStateData()
    + func createPilotState_throws.buildPilotStateData()
}

class SquadData {
    + func getShip()
}

class global_getShip {
    + global_getShip()
}

UpgradeUtilityNew --> UpgradesData
CacheService --> UpgradeUtilityNew
PilotStateService --> UpgradeUtilityNew
SquadData --> UpgradeUtilityNew
global_getShip --> UpgradeUtilityNew

UpgradeUtility Dependencies

CacheService.getShipV2.getPilot.getUpgradesFromCache() -> UpgradeUtiliy.buildAllUpgrades() CacheService.getShipV2.getPilot.getUpgradesFromCache() -> UpgradeUtility.getUpgrades() PilotStateService.createPilotState.buildPilotStateData() -> UpgradeUtility.buildAllUpgrades() PilotStateService.createPilotState_throws.buildPilotStateData() -> UpgradeUtility.buildAllUpgrades() SquadData.getShip -> UpgradeUtility.buildAllUpgrades() global_getShip() -> UpgradeUtility.buildAllUpgrades()

UpgradeUtiltyNew Dependencies

CacheService.getShipV2.getPilot.getUpgradesFromCache() -> UpgradeUtiliy.getUpgradesForSquadPilotUpgrade() CacheService.getShipV2.getPilot.getUpgradesFromCache() -> UpgradeUtility.getUpgrades() PilotStateService.createPilotState.buildPilotStateData() -> UpgradeUtility.getUpgradesForSquadPilotUpgrade() PilotStateService.createPilotState_throws.buildPilotStateData() -> UpgradeUtility.getUpgradesForSquadPilotUpgrade() SquadData.getShip -> UpgradeUtility.getUpgradesForSquadPilotUpgrade() global_getShip() -> UpgradeUtility.getUpgradesForSquadPilotUpgrade()

flowchart TD
    importXWS -->|&squad, squadData| B{createPilotState_throws}
    B -->|&squad| C[updateSquadPilotsWithStandardLoadoutUpgrades]
    C -->|&squad, squadData| D[createAndSavePilotStateData]
    B --> importXWS
    importXWS -->|return| E["Just#60;MyAppAction#62;(.xwsImport(.importSuccess))"]

#Sub Graphs

flowchart TB
    a1-->c1
    subgraph A
    a1-->a2
    end
    subgraph B
    b1-->b2
    end
    subgraph C
    c1-->c2
    end