@rpg-engine/long-bow 0.8.80 → 0.8.82

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.
@@ -1,6 +1,9 @@
1
+ import { CharacterClass } from '@rpg-engine/shared';
1
2
  import React from 'react';
2
3
  export interface ISkillProgressBarProps {
3
4
  skillName: string;
5
+ skillKey?: string;
6
+ characterClass?: CharacterClass;
4
7
  bgColor: string;
5
8
  level: number;
6
9
  skillPoints: number;
@@ -1,7 +1,8 @@
1
- import { ISkill } from '@rpg-engine/shared';
1
+ import { ISkill, CharacterClass } from '@rpg-engine/shared';
2
2
  import React from 'react';
3
3
  export interface ISkillContainerProps {
4
4
  skill: ISkill;
5
+ characterClass?: CharacterClass;
5
6
  onCloseButton: () => void;
6
7
  atlasJSON: any;
7
8
  atlasIMG: any;
@@ -36512,6 +36512,8 @@ var Tooltip = /*#__PURE__*/styled__default.div.withConfig({
36512
36512
  var SkillProgressBar = function SkillProgressBar(_ref) {
36513
36513
  var bgColor = _ref.bgColor,
36514
36514
  skillName = _ref.skillName,
36515
+ skillKey = _ref.skillKey,
36516
+ characterClass = _ref.characterClass,
36515
36517
  level = _ref.level,
36516
36518
  currentSkillPoints = _ref.skillPoints,
36517
36519
  skillPointsToNextLevel = _ref.skillPointsToNextLevel,
@@ -36522,7 +36524,17 @@ var SkillProgressBar = function SkillProgressBar(_ref) {
36522
36524
  atlasJSON = _ref.atlasJSON,
36523
36525
  buffAndDebuff = _ref.buffAndDebuff;
36524
36526
  // Skill points needed to start the current level
36525
- var baseSkillPoints = shared.getSPForLevel(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);
36534
+ }
36535
+ // Fallback to old formula for backwards compatibility
36536
+ return shared.getSPForLevel(level);
36537
+ }, [level, skillKey, characterClass]);
36526
36538
  var calculateProgress = function calculateProgress() {
36527
36539
  var totalPointsForLevelUp = Math.max(1, skillPointsToNextLevel - baseSkillPoints);
36528
36540
  var excessSkillPoints = Math.max(0, currentSkillPoints - baseSkillPoints);
@@ -36668,6 +36680,7 @@ var skillNameMap = {
36668
36680
  var SkillsContainer = function SkillsContainer(_ref) {
36669
36681
  var onCloseButton = _ref.onCloseButton,
36670
36682
  skill = _ref.skill,
36683
+ characterClass = _ref.characterClass,
36671
36684
  atlasIMG = _ref.atlasIMG,
36672
36685
  atlasJSON = _ref.atlasJSON,
36673
36686
  scale = _ref.scale;
@@ -36675,30 +36688,48 @@ var SkillsContainer = function SkillsContainer(_ref) {
36675
36688
  var skillCategory = skillProps[category];
36676
36689
  var skillCategoryColor = skillCategory.color;
36677
36690
  var output = [];
36691
+ var _loop = function _loop() {
36692
+ var _Object$entries$_i = _Object$entries[_i],
36693
+ key = _Object$entries$_i[0],
36694
+ value = _Object$entries$_i[1];
36695
+ if (key === 'stamina') {
36696
+ return 0; // continue
36697
+ }
36698
+ //@ts-ignore
36699
+ var skillDetails = skill[key];
36700
+ if (!skillDetails) {
36701
+ return 0; // continue
36702
+ }
36703
+ // Calculate skillPointsToNextLevel using exponential formula if characterClass available
36704
+ var calcSkillPointsToNextLevel = function calcSkillPointsToNextLevel() {
36705
+ if (characterClass) {
36706
+ var _getSkillConstants = shared.getSkillConstants(key, characterClass),
36707
+ A = _getSkillConstants.A,
36708
+ b = _getSkillConstants.b,
36709
+ c = _getSkillConstants.c;
36710
+ return Math.round(shared.getSPForLevelExponential(skillDetails.level + 1, A, b, c));
36711
+ }
36712
+ return Math.round(shared.getSPForLevel(skillDetails.level + 1));
36713
+ };
36714
+ output.push(React__default.createElement(SkillProgressBar, {
36715
+ key: key,
36716
+ skillName: skillNameMap[key],
36717
+ skillKey: key,
36718
+ characterClass: characterClass,
36719
+ bgColor: skillCategoryColor,
36720
+ level: skillDetails.level || 0,
36721
+ skillPoints: Math.round(skillDetails.skillPoints) || 0,
36722
+ skillPointsToNextLevel: calcSkillPointsToNextLevel(),
36723
+ texturePath: value,
36724
+ atlasIMG: atlasIMG,
36725
+ atlasJSON: atlasJSON,
36726
+ buffAndDebuff: skillDetails.buffAndDebuff
36727
+ }));
36728
+ },
36729
+ _ret;
36678
36730
  for (var _i = 0, _Object$entries = Object.entries(skillCategory.values); _i < _Object$entries.length; _i++) {
36679
- var _Object$entries$_i = _Object$entries[_i],
36680
- key = _Object$entries$_i[0],
36681
- value = _Object$entries$_i[1];
36682
- if (key === 'stamina') {
36683
- continue;
36684
- }
36685
- //@ts-ignore
36686
- var skillDetails = skill[key];
36687
- if (!skillDetails) {
36688
- continue;
36689
- }
36690
- output.push(React__default.createElement(SkillProgressBar, {
36691
- key: key,
36692
- skillName: skillNameMap[key],
36693
- bgColor: skillCategoryColor,
36694
- level: skillDetails.level || 0,
36695
- skillPoints: Math.round(skillDetails.skillPoints) || 0,
36696
- skillPointsToNextLevel: Math.round(shared.getSPForLevel(skillDetails.level + 1)) || 0,
36697
- texturePath: value,
36698
- atlasIMG: atlasIMG,
36699
- atlasJSON: atlasJSON,
36700
- buffAndDebuff: skillDetails.buffAndDebuff
36701
- }));
36731
+ _ret = _loop();
36732
+ if (_ret === 0) continue;
36702
36733
  }
36703
36734
  return output;
36704
36735
  };