@rpg-engine/long-bow 0.8.82 → 0.8.84

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -36516,29 +36516,51 @@ var SkillProgressBar = function SkillProgressBar(_ref) {
36516
36516
  characterClass = _ref.characterClass,
36517
36517
  level = _ref.level,
36518
36518
  currentSkillPoints = _ref.skillPoints,
36519
- skillPointsToNextLevel = _ref.skillPointsToNextLevel,
36520
36519
  texturePath = _ref.texturePath,
36521
36520
  _ref$showSkillPoints = _ref.showSkillPoints,
36522
36521
  showSkillPoints = _ref$showSkillPoints === void 0 ? true : _ref$showSkillPoints,
36523
36522
  atlasIMG = _ref.atlasIMG,
36524
36523
  atlasJSON = _ref.atlasJSON,
36525
36524
  buffAndDebuff = _ref.buffAndDebuff;
36526
- // Skill points needed to start the current level
36527
- var baseSkillPoints = React.useMemo(function () {
36528
- if (skillKey && characterClass) {
36529
- var _getSkillConstants = shared.getSkillConstants(skillKey, characterClass),
36530
- A = _getSkillConstants.A,
36531
- b = _getSkillConstants.b,
36532
- c = _getSkillConstants.c;
36533
- return shared.getSPForLevelExponential(level, A, b, c);
36525
+ // Use CharacterClass.None as default if skillKey is provided but characterClass is not
36526
+ var effectiveClass = characterClass != null ? characterClass : shared.CharacterClass.None;
36527
+ // Calculate the effective level based on actual SP (handles data inconsistencies)
36528
+ var calculateEffectiveLevel = function calculateEffectiveLevel() {
36529
+ if (!skillKey) {
36530
+ return level; // Fallback to stored level for general "Level" display
36534
36531
  }
36535
- // Fallback to old formula for backwards compatibility
36536
- return shared.getSPForLevel(level);
36537
- }, [level, skillKey, characterClass]);
36532
+ var _getSkillConstants = shared.getSkillConstants(skillKey, effectiveClass),
36533
+ A = _getSkillConstants.A,
36534
+ b = _getSkillConstants.b,
36535
+ c = _getSkillConstants.c;
36536
+ var actualLevel = Math.floor(shared.getLevelFromSP(currentSkillPoints, A, b, c));
36537
+ return Math.max(1, actualLevel); // Minimum level is always 1 in our system
36538
+ };
36539
+ var effectiveLevel = calculateEffectiveLevel();
36540
+ // Calculate progress based on actual SP position
36538
36541
  var calculateProgress = function calculateProgress() {
36539
- var totalPointsForLevelUp = Math.max(1, skillPointsToNextLevel - baseSkillPoints);
36540
- var excessSkillPoints = Math.max(0, currentSkillPoints - baseSkillPoints);
36541
- return Math.min(100, Math.max(0, excessSkillPoints / totalPointsForLevelUp * 100));
36542
+ if (!skillKey) {
36543
+ // Fallback for general "Level" display: simple ratio of current SP to next level
36544
+ var spForCurrentLevel = shared.getSPForLevel(level);
36545
+ var _spForNextLevel = shared.getSPForLevel(level + 1);
36546
+ var _range = _spForNextLevel - spForCurrentLevel;
36547
+ var _progress = currentSkillPoints - spForCurrentLevel;
36548
+ return Math.min(100, Math.max(0, _progress / _range * 100));
36549
+ }
36550
+ var _getSkillConstants2 = shared.getSkillConstants(skillKey, effectiveClass),
36551
+ A = _getSkillConstants2.A,
36552
+ b = _getSkillConstants2.b,
36553
+ c = _getSkillConstants2.c;
36554
+ // Get the actual calculated level (might be 0 for magic)
36555
+ var actualLevel = Math.floor(shared.getLevelFromSP(currentSkillPoints, A, b, c));
36556
+ var calcLevel = Math.max(c, actualLevel); // Use c as minimum for calculation
36557
+ // Calculate SP thresholds based on actual position
36558
+ var spForCalcLevel = shared.getSPForLevelExponential(calcLevel, A, b, c);
36559
+ var spForNextLevel = shared.getSPForLevelExponential(calcLevel + 1, A, b, c);
36560
+ // Progress within current level range
36561
+ var range = spForNextLevel - spForCalcLevel;
36562
+ var progressInLevel = currentSkillPoints - spForCalcLevel;
36563
+ return Math.min(100, Math.max(0, progressInLevel / Math.max(1, range) * 100));
36542
36564
  };
36543
36565
  var progress = calculateProgress();
36544
36566
  var formatBuffAndDebuff = function formatBuffAndDebuff(value) {
@@ -36549,7 +36571,7 @@ var SkillProgressBar = function SkillProgressBar(_ref) {
36549
36571
  var result = level * (buffAndDebuff / 100);
36550
36572
  return result > 0 ? "+" + result.toFixed(2) : "" + result.toFixed(2);
36551
36573
  };
36552
- return React__default.createElement(React__default.Fragment, null, React__default.createElement(ProgressTitle, null, buffAndDebuff !== undefined && React__default.createElement(React__default.Fragment, null, buffAndDebuff > 0 ? React__default.createElement(BuffAndDebuffContainer, null, React__default.createElement(TitleNameContainer, null, React__default.createElement(TitleNameBuff, null, skillName), React__default.createElement(TitleNameBuff, null, "lv ", level, " (", skillsBuffsCalc(level, buffAndDebuff), ")")), React__default.createElement(TitleNameBuffContainer, null, React__default.createElement(TitleNameBuff, null, "(+", formatBuffAndDebuff(buffAndDebuff), "%)"))) : buffAndDebuff < 0 ? React__default.createElement(React__default.Fragment, null, React__default.createElement(TitleNameContainer, null, React__default.createElement(TitleNameDebuff, null, skillName), React__default.createElement(TitleNameDebuff, null, "lv ", level, " (", skillsBuffsCalc(level, buffAndDebuff), ")")), React__default.createElement("div", null, React__default.createElement(TitleNameDebuff, null, "(", formatBuffAndDebuff(buffAndDebuff), "%)"))) : React__default.createElement(TitleName, null, skillName)), !buffAndDebuff && React__default.createElement(TitleNameContainer, null, React__default.createElement(TitleName, null, skillName), React__default.createElement(ValueDisplay, null, "lv ", level))), React__default.createElement(ProgressBody, null, React__default.createElement(ProgressIconContainer, null, atlasIMG && atlasJSON ? React__default.createElement(SpriteContainer$4, null, React__default.createElement(ErrorBoundary, null, React__default.createElement(SpriteFromAtlas, {
36574
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(ProgressTitle, null, buffAndDebuff !== undefined && React__default.createElement(React__default.Fragment, null, buffAndDebuff > 0 ? React__default.createElement(BuffAndDebuffContainer, null, React__default.createElement(TitleNameContainer, null, React__default.createElement(TitleNameBuff, null, skillName), React__default.createElement(TitleNameBuff, null, "lv ", effectiveLevel, " (", skillsBuffsCalc(effectiveLevel, buffAndDebuff), ")")), React__default.createElement(TitleNameBuffContainer, null, React__default.createElement(TitleNameBuff, null, "(+", formatBuffAndDebuff(buffAndDebuff), "%)"))) : buffAndDebuff < 0 ? React__default.createElement(React__default.Fragment, null, React__default.createElement(TitleNameContainer, null, React__default.createElement(TitleNameDebuff, null, skillName), React__default.createElement(TitleNameDebuff, null, "lv ", effectiveLevel, " (", skillsBuffsCalc(effectiveLevel, buffAndDebuff), ")")), React__default.createElement("div", null, React__default.createElement(TitleNameDebuff, null, "(", formatBuffAndDebuff(buffAndDebuff), "%)"))) : React__default.createElement(TitleName, null, skillName)), !buffAndDebuff && React__default.createElement(TitleNameContainer, null, React__default.createElement(TitleName, null, skillName), React__default.createElement(ValueDisplay, null, "lv ", effectiveLevel))), React__default.createElement(ProgressBody, null, React__default.createElement(ProgressIconContainer, null, atlasIMG && atlasJSON ? React__default.createElement(SpriteContainer$4, null, React__default.createElement(ErrorBoundary, null, React__default.createElement(SpriteFromAtlas, {
36553
36575
  atlasIMG: atlasIMG,
36554
36576
  atlasJSON: atlasJSON,
36555
36577
  spriteKey: texturePath,