Forge

LegacyPlayer: {
    createPlayer()
    updateAttribues()
    setTeam()
    trackProgress()
    exportToPros()
}

GrowthPath: {
    updatePath()
    calculateGrowth()
    getProjectedStats()
}

DynastyMode: {
    integratePlayer()
    progressSeason()
    generateEvents()
}

Position: {
    getRequiredAttributes()
    validateAttributes()
}

Team: {
    addPlayer()
    removePlayer()
    updateRoster()
}

Achievement: {
    unlock()
    notifyPlayer()
}

PlayerGoal: {
    updateProgress()
    complete()
    checkDeadline()
}

This class diagram represents the key components of the Legacy Player Builder system. The main relationships and responsibilities:

LegacyPlayer (Core Class):

  • Contains player’s basic info, attributes, and relationships
  • Manages growth, achievements, and goals
  • Handles pro export functionality

GrowthPath:

  • Defines how player attributes develop over time
  • Manages growth rates for different attributes
  • Projects future stats based on current trajectory

Team:

  • Represents both college and pro teams
  • Manages roster and player assignments
  • Handles team-specific operations

Achievement & PlayerGoal:

  • Track player accomplishments and objectives
  • Provide notification system for milestones
  • Support different types of achievements/goals

DynastyMode:

  • Integrates legacy players into the existing game mode
  • Manages season progression
  • Coordinates teams and events

Position:

  • Defines position-specific attributes and requirements
  • Validates player attributes against position requirements

Relationships:

  • A LegacyPlayer belongs to one Team
  • Each LegacyPlayer has one GrowthPath
  • Players can have multiple Achievements and Goals
  • DynastyMode manages multiple Teams and LegacyPlayers