@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.
- package/dist/long-bow.cjs.development.js +38 -16
- package/dist/long-bow.cjs.development.js.map +1 -1
- package/dist/long-bow.cjs.production.min.js +1 -1
- package/dist/long-bow.cjs.production.min.js.map +1 -1
- package/dist/long-bow.esm.js +39 -17
- package/dist/long-bow.esm.js.map +1 -1
- package/package.json +2 -2
- package/src/components/SkillProgressBar.tsx +47 -24
- package/src/mocks/skills.mocks.ts +0 -1
- package/src/stories/Character/skills/SkillsContainer.stories.tsx +3 -0
|
@@ -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
|
-
//
|
|
36527
|
-
var
|
|
36528
|
-
|
|
36529
|
-
|
|
36530
|
-
|
|
36531
|
-
|
|
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
|
-
|
|
36536
|
-
|
|
36537
|
-
|
|
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
|
-
|
|
36540
|
-
|
|
36541
|
-
|
|
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 ",
|
|
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,
|