Skip to content

Add FIO Burn solver for ship size - #472

Open
theit8514 wants to merge 4 commits into
PRUNplanner:mainfrom
theit8514:feature/burn-solver
Open

theit8514 wants to merge 4 commits into
PRUNplanner:mainfrom
theit8514:feature/burn-solver

Conversation

@theit8514

Copy link
Copy Markdown
Contributor

Uses the existing yalps solver and implements a ship storage solver for FIO Burn. The process will attempt to fill items that are below the Full Cover amount to the target days, then uses the solver to optimize target ship storage.

image

Increasing Full Cover to 2 will change how PWO (1.8/day) is calculated. It will now include enough to fill the 90 target days ((73 + 89) / 1.8 = 90) before the other materials are added:

image

@netlify

netlify Bot commented Jun 7, 2026 •

Copy link
Copy Markdown

👷 Deploy request for prunplanner-preview pending review.

Visit the deploys page to approve it

Name Link
🔨 Latest commit 562815e

@codacy-production

codacy-production Bot commented Jun 7, 2026 •

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 82 complexity · 4 duplication

Metric Results
Complexity 82
Duplication 4

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@theit8514
theit8514 force-pushed the feature/burn-solver branch from e859871 to 332bd55 Compare June 7, 2026 16:11
@jplacht

jplacht commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

@theit8514 Thank you, first glance: You only need to update the english translation file, all other updates will then be handled from Crowdin which generates the additional files based on translation or fills up from EN. Could you please only have EN in this PR?

@jplacht

jplacht commented Sep 26, 2026

Copy link
Copy Markdown
Contributor

Thanks @theit8514, and thanks for cutting it down to English only! A few things before this can go in:

  1. Persistence: the backend's preference serializer doesn't have burnDefaultMode or burnFullCoverThreshold yet. They're dropped on save and reset to the defaults (via the .preprocess/.catch fallback) the next time preferences load. This needs a backend PR that adds both fields; Remember supply cart days backend#38 (supplyCartDays) is a good template. Once that's in, the schema can use a plain z.enum / z.number().
  2. Mode select: the mode dropdown in the burn drawer is bound to the global burnDefaultMode preference, so switching mode for one burn changes the user's default. A local ref that starts from the preference would avoid that.
  3. useBurnXITAction(burnMode = ref("simple"), elements, ...): a default on the first parameter never takes effect. Please either move burnMode after the required parameters or drop the default.
  4. Unused options: the caller never sets allowOverTarget or integer in IBurnSolveOptions, and minDays is exported only for the tests. Please drop what isn't needed.
  5. Performance: the integer solve runs in a watchEffect on every input change. Could you try it on a large burn (40+ materials) and add a debounce if it feels slow?
  6. Minor: in UserPreferences.vue, PInputNumber takes show-buttons, not show-button. The typo is on main too, but please don't copy it.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants