@rpg-engine/long-bow 0.4.83 → 0.4.85

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rpg-engine/long-bow",
3
- "version": "0.4.83",
3
+ "version": "0.4.85",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
@@ -83,7 +83,7 @@
83
83
  },
84
84
  "dependencies": {
85
85
  "@rollup/plugin-image": "^2.1.1",
86
- "@rpg-engine/shared": "^0.8.15",
86
+ "@rpg-engine/shared": "^0.8.28",
87
87
  "dayjs": "^1.11.2",
88
88
  "font-awesome": "^4.7.0",
89
89
  "fs-extra": "^10.1.0",
@@ -17,6 +17,7 @@ export interface ISkillProgressBarProps {
17
17
  atlasJSON: any;
18
18
  atlasIMG: any;
19
19
  buffAndDebuff?: number;
20
+ ratio: number;
20
21
  }
21
22
 
22
23
  export const SkillProgressBar: React.FC<ISkillProgressBarProps> = ({
@@ -30,15 +31,12 @@ export const SkillProgressBar: React.FC<ISkillProgressBarProps> = ({
30
31
  atlasIMG,
31
32
  atlasJSON,
32
33
  buffAndDebuff,
34
+ ratio,
33
35
  }) => {
34
36
  if (!skillPointsToNextLevel) {
35
37
  skillPointsToNextLevel = getSPForLevel(level + 1);
36
38
  }
37
39
 
38
- const nextLevelSPWillbe = skillPoints + skillPointsToNextLevel;
39
-
40
- const ratio = (skillPoints / nextLevelSPWillbe) * 100;
41
-
42
40
  const skillsBuffsCalc = () => {
43
41
  if (buffAndDebuff) {
44
42
  return 1 + buffAndDebuff / 100;
@@ -115,7 +113,7 @@ export const SkillProgressBar: React.FC<ISkillProgressBarProps> = ({
115
113
  {showSkillPoints && (
116
114
  <SkillDisplayContainer>
117
115
  <SkillPointsDisplay>
118
- {skillPoints}/{nextLevelSPWillbe}
116
+ {skillPoints}/{skillPointsToNextLevel}
119
117
  </SkillPointsDisplay>
120
118
  </SkillDisplayContainer>
121
119
  )}
@@ -1,4 +1,9 @@
1
- import { ISkill, ISkillDetails } from '@rpg-engine/shared';
1
+ import {
2
+ ISkill,
3
+ ISkillDetails,
4
+ getSPForLevel,
5
+ getXPForLevel,
6
+ } from '@rpg-engine/shared';
2
7
  import React from 'react';
3
8
  import styled from 'styled-components';
4
9
  import { uiColors } from '../constants/uiColors';
@@ -83,6 +88,26 @@ export const SkillsContainer: React.FC<ISkillContainerProps> = ({
83
88
  atlasJSON,
84
89
  scale,
85
90
  }) => {
91
+ const SPRatio = (level: number, skillPoints: number) => {
92
+ const SPLevelActual = getSPForLevel(level + 1);
93
+ const SPLevelBefore = getSPForLevel(level);
94
+ const SPCalc = SPLevelActual - SPLevelBefore;
95
+ if (level === 1) {
96
+ return (skillPoints / SPLevelActual) * 100;
97
+ }
98
+ return ((skillPoints - SPLevelBefore) / SPCalc) * 100;
99
+ };
100
+
101
+ const XPRatio = (level: number, skillPoints: number) => {
102
+ const XPLevelActual = getXPForLevel(level + 1);
103
+ const XPLevelBefore = getXPForLevel(level);
104
+ const XPCalc = XPLevelActual - XPLevelBefore;
105
+ if (level === 1) {
106
+ return (skillPoints / XPLevelActual) * 100;
107
+ }
108
+ return ((skillPoints - XPLevelBefore) / XPCalc) * 100;
109
+ };
110
+
86
111
  const onRenderSkillCategory = (
87
112
  category: 'attributes' | 'combat' | 'crafting'
88
113
  ) => {
@@ -107,12 +132,13 @@ export const SkillsContainer: React.FC<ISkillContainerProps> = ({
107
132
  level={skillDetails.level || 0}
108
133
  skillPoints={Math.round(skillDetails.skillPoints) || 0}
109
134
  skillPointsToNextLevel={
110
- Math.round(skillDetails.skillPointsToNextLevel) || 0
135
+ Math.round(getSPForLevel(skillDetails.level + 1)) || 0
111
136
  }
112
137
  texturePath={value}
113
138
  atlasIMG={atlasIMG}
114
139
  atlasJSON={atlasJSON}
115
140
  buffAndDebuff={skillDetails.buffAndDebuff}
141
+ ratio={SPRatio(skillDetails.level, skillDetails.skillPoints)}
116
142
  />
117
143
  );
118
144
  }
@@ -140,10 +166,13 @@ export const SkillsContainer: React.FC<ISkillContainerProps> = ({
140
166
  bgColor={uiColors.navyBlue}
141
167
  level={Math.round(skill.level) || 0}
142
168
  skillPoints={Math.round(skill.experience) || 0}
143
- skillPointsToNextLevel={Math.round(skill.xpToNextLevel) || 0}
169
+ skillPointsToNextLevel={
170
+ Math.round(getXPForLevel(skill.level + 1)) || 0
171
+ }
144
172
  texturePath={'swords/broad-sword.png'}
145
173
  atlasIMG={atlasIMG}
146
174
  atlasJSON={atlasJSON}
175
+ ratio={XPRatio(skill.level, skill.experience)}
147
176
  />
148
177
 
149
178
  <p>Combat Skills</p>
@@ -1,18 +1,18 @@
1
- import { ISkill, SkillType } from '@rpg-engine/shared';
1
+ import { ISkill, SkillType, getSPForLevel } from '@rpg-engine/shared';
2
2
 
3
3
  export const skillMock = {
4
4
  _id: '62aebda8785a9f0089a4f757',
5
5
  stamina: {
6
6
  type: SkillType.BasicAttributes,
7
- level: 1,
8
- skillPoints: 50,
9
- skillPointsToNextLevel: 100,
7
+ level: 2,
8
+ skillPoints: 50.03,
9
+ skillPointsToNextLevel: getSPForLevel(2),
10
10
  },
11
11
  magic: {
12
12
  type: SkillType.BasicAttributes,
13
- level: 1,
13
+ level: 2,
14
14
  skillPoints: 22,
15
- skillPointsToNextLevel: 80,
15
+ skillPointsToNextLevel: getSPForLevel(2.4),
16
16
  buffAndDebuff: -10
17
17
  },
18
18
  magicResistance: {