Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@IllianiBird
Copy link
Collaborator

This PR introduces the first phase of the upcoming Advanced Character Builder (ACB). Specifically, this PR introduces the ability for users and developers to write, load, and customize their own Life Paths.

These Life Paths will be used by ACB to construct ATOW-style characters with rich backgrounds and diverse skills.

The Life Path Builder can be accessed here:

image

This PR is still WIP and is being posted solely so @HammerGS can have a play - he's been waiting very patiently.

@IllianiBird IllianiBird self-assigned this Sep 27, 2025
@IllianiBird IllianiBird added the Personnel Personnel-related Issues label Sep 27, 2025
@IllianiBird IllianiBird requested a review from a team as a code owner September 27, 2025 17:21
@IllianiBird IllianiBird added the New Feature Used with the RFE tag to indicate a new feature label Sep 27, 2025
@IllianiBird IllianiBird marked this pull request as draft September 27, 2025 17:21
@HammerGS HammerGS requested a review from Copilot September 27, 2025 17:27
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces the first phase of the Advanced Character Builder (ACB) feature, specifically implementing a Life Path Builder that allows users and developers to create, load, and customize Life Paths for ATOW-style character creation with rich backgrounds and diverse skills.

Key changes:

  • Addition of Life Path Builder dialog accessible through the Manage menu
  • Complete Life Path creation system with basic information, requirements, exclusions, and XP awards
  • Support for importing/exporting Life Path configurations via JSON
  • New skill subtypes and validation systems for Life Path data

Reviewed Changes

Copilot reviewed 64 out of 64 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
LifePathBuilderDialog.java Main dialog implementation for Life Path creation and management
LifePathTab.java Tab implementation for different Life Path configuration sections
LifePathTabBasicInformation.java Basic information tab for Life Path metadata
Various picker classes UI components for selecting attributes, skills, traits, factions, etc.
LifePathXPCostCalculator.java XP cost calculation logic for Life Paths
LifePathValidator.java Validation system for Life Path data integrity
SkillSubType.java Enhanced skill subtype enumeration with display support
Test files Unit tests for Life Path functionality validation

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@codecov
Copy link

codecov bot commented Sep 27, 2025

Codecov Report

❌ Patch coverage is 2.60664% with 3699 lines in your changes missing coverage. Please review.
✅ Project coverage is 11.77%. Comparing base (b48d26b) to head (514f742).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
...dCharacterBuilder/lifePathBuilder/LifePathTab.java 0.00% 628 Missing ⚠️
...Builder/lifePathBuilder/LifePathBuilderDialog.java 0.00% 456 Missing ⚠️
...r/lifePathBuilder/LifePathTabBasicInformation.java 0.00% 302 Missing ⚠️
...erBuilder/lifePathBuilder/LifePathSkillPicker.java 0.00% 240 Missing ⚠️
...cterBuilder/lifePathBuilder/LifePathSPAPicker.java 0.00% 228 Missing ⚠️
...uilder/lifePathBuilder/LifePathLifePathPicker.java 0.00% 215 Missing ⚠️
...personnel/advancedCharacterBuilder/LifePathIO.java 0.00% 210 Missing ⚠️
...Builder/lifePathBuilder/LifePathFactionPicker.java 0.00% 201 Missing ⚠️
...r/lifePathBuilder/LifePathCategoryCountPicker.java 0.00% 181 Missing ⚠️
...erBuilder/lifePathBuilder/LifePathTraitPicker.java 0.00% 169 Missing ⚠️
... and 21 more
Additional details and impacted files
@@             Coverage Diff              @@
##               main    #7625      +/-   ##
============================================
- Coverage     12.12%   11.77%   -0.36%     
+ Complexity     7296     7237      -59     
============================================
  Files          1201     1219      +18     
  Lines        151532   155074    +3542     
  Branches      22951    23266     +315     
============================================
- Hits          18372    18254     -118     
- Misses       131261   134932    +3671     
+ Partials       1899     1888      -11     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

implementation 'org.jfree:jfreechart:1.5.6'

implementation 'com.fasterxml.jackson.core:jackson-core:2.19.2'
implementation 'com.fasterxml.jackson.core:jackson-databind:2.19.2'
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

iirc I needed this for handling JSON as until now we only worked in csv, yml, and xml in mhq

}

Integer workingFlexibleAttributes = storedFlexibleAttributes.get(index);
int flexibleMinimumValue = getAttributeMinimumValue(tabType, true);

Check notice

Code scanning / CodeQL

Unread local variable Note

Variable 'int flexibleMinimumValue' is never read.

Integer workingFlexibleAttributes = storedFlexibleAttributes.get(index);
int flexibleMinimumValue = getAttributeMinimumValue(tabType, true);
int flexibleMaximumValue = getAttributeMaximumValue(tabType);

Check notice

Code scanning / CodeQL

Unread local variable Note

Variable 'int flexibleMaximumValue' is never read.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

For New Dev Cycle New Feature Used with the RFE tag to indicate a new feature Personnel Personnel-related Issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant