@rpg-engine/long-bow 0.4.85 → 0.4.87

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.
Files changed (48) hide show
  1. package/dist/components/PartySystem/PartyCreate/PartyCreate.d.ts +6 -0
  2. package/dist/components/PartySystem/PartyCreate/index.d.ts +1 -0
  3. package/dist/components/PartySystem/PartyDashboard/PartyDashboard.d.ts +6 -0
  4. package/dist/components/PartySystem/PartyDashboard/PartyRows.d.ts +11 -0
  5. package/dist/components/PartySystem/PartyDashboard/index.d.ts +2 -0
  6. package/dist/components/PartySystem/PartyInvite/PartyInvite.d.ts +6 -0
  7. package/dist/components/PartySystem/PartyInvite/PlayersRows.d.ts +9 -0
  8. package/dist/components/PartySystem/PartyInvite/index.d.ts +2 -0
  9. package/dist/components/PartySystem/PartyManager/PartyManager.d.ts +6 -0
  10. package/dist/components/PartySystem/PartyManager/PartyManagerRows.d.ts +8 -0
  11. package/dist/components/PartySystem/PartyManager/index.d.ts +2 -0
  12. package/dist/components/PartySystem/index.d.ts +5 -0
  13. package/dist/components/PartySystem/mockedConstantes/index.d.ts +1 -0
  14. package/dist/components/PartySystem/mockedConstantes/mockedValues.d.ts +6 -0
  15. package/dist/constants/uiColors.d.ts +1 -0
  16. package/dist/index.d.ts +5 -4
  17. package/dist/long-bow.cjs.development.js +491 -114
  18. package/dist/long-bow.cjs.development.js.map +1 -1
  19. package/dist/long-bow.cjs.production.min.js +1 -1
  20. package/dist/long-bow.cjs.production.min.js.map +1 -1
  21. package/dist/long-bow.esm.js +482 -115
  22. package/dist/long-bow.esm.js.map +1 -1
  23. package/dist/stories/PartyCreate.stories.d.ts +5 -0
  24. package/dist/stories/PartyDashboard.stories.d.ts +5 -0
  25. package/dist/stories/PartyInvite.stories.d.ts +5 -0
  26. package/dist/stories/PartyManager.stories.d.ts +5 -0
  27. package/package.json +2 -2
  28. package/src/components/PartySystem/PartyCreate/PartyCreate.tsx +79 -0
  29. package/src/components/PartySystem/PartyCreate/index.ts +1 -0
  30. package/src/components/PartySystem/PartyDashboard/PartyDashboard.tsx +67 -0
  31. package/src/components/PartySystem/PartyDashboard/PartyRows.tsx +57 -0
  32. package/src/components/PartySystem/PartyDashboard/index.ts +2 -0
  33. package/src/components/PartySystem/PartyInvite/PartyInvite.tsx +60 -0
  34. package/src/components/PartySystem/PartyInvite/PlayersRows.tsx +49 -0
  35. package/src/components/PartySystem/PartyInvite/index.ts +2 -0
  36. package/src/components/PartySystem/PartyManager/PartyManager.tsx +57 -0
  37. package/src/components/PartySystem/PartyManager/PartyManagerRows.tsx +43 -0
  38. package/src/components/PartySystem/PartyManager/index.ts +2 -0
  39. package/src/components/PartySystem/index.ts +6 -0
  40. package/src/components/PartySystem/mockedConstantes/index.ts +1 -0
  41. package/src/components/PartySystem/mockedConstantes/mockedValues.tsx +150 -0
  42. package/src/components/SkillProgressBar.tsx +9 -6
  43. package/src/constants/uiColors.ts +1 -0
  44. package/src/index.tsx +5 -4
  45. package/src/stories/PartyCreate.stories.tsx +24 -0
  46. package/src/stories/PartyDashboard.stories.tsx +27 -0
  47. package/src/stories/PartyInvite.stories.tsx +27 -0
  48. package/src/stories/PartyManager.stories.tsx +27 -0
@@ -0,0 +1,5 @@
1
+ import { Meta } from '@storybook/react';
2
+ import { IPartyCreateProps } from '../components/PartySystem';
3
+ declare const meta: Meta;
4
+ export default meta;
5
+ export declare const Default: import("@storybook/csf").AnnotatedStoryFn<import("@storybook/react").ReactFramework, IPartyCreateProps>;
@@ -0,0 +1,5 @@
1
+ import { Meta } from '@storybook/react';
2
+ import { IPartyDashboardProps } from '../components/PartySystem/PartyDashboard/PartyDashboard';
3
+ declare const meta: Meta;
4
+ export default meta;
5
+ export declare const Default: import("@storybook/csf").AnnotatedStoryFn<import("@storybook/react").ReactFramework, IPartyDashboardProps>;
@@ -0,0 +1,5 @@
1
+ import { Meta } from '@storybook/react';
2
+ import { IPartyInviteProps } from '../components/PartySystem/PartyInvite/PartyInvite';
3
+ declare const meta: Meta;
4
+ export default meta;
5
+ export declare const Default: import("@storybook/csf").AnnotatedStoryFn<import("@storybook/react").ReactFramework, IPartyInviteProps>;
@@ -0,0 +1,5 @@
1
+ import { Meta } from '@storybook/react';
2
+ import { IPartyManagerProps } from '../components/PartySystem/PartyManager/PartyManager';
3
+ declare const meta: Meta;
4
+ export default meta;
5
+ export declare const Default: import("@storybook/csf").AnnotatedStoryFn<import("@storybook/react").ReactFramework, IPartyManagerProps>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rpg-engine/long-bow",
3
- "version": "0.4.85",
3
+ "version": "0.4.87",
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.28",
86
+ "@rpg-engine/shared": "^0.8.42",
87
87
  "dayjs": "^1.11.2",
88
88
  "font-awesome": "^4.7.0",
89
89
  "fs-extra": "^10.1.0",
@@ -0,0 +1,79 @@
1
+ import React from 'react';
2
+ import styled from 'styled-components';
3
+ import { uiColors } from '../../../constants/uiColors';
4
+ import { Button, ButtonTypes } from '../../Button';
5
+ import { DraggableContainer } from '../../DraggableContainer';
6
+ import { Input } from '../../Input';
7
+ import { RPGUIContainerTypes } from '../../RPGUIContainer';
8
+
9
+ export interface IPartyCreateProps {
10
+ onClose: () => void;
11
+ onCreate: () => void;
12
+ }
13
+
14
+ export const PartyCreate: React.FC<IPartyCreateProps> = ({
15
+ onClose,
16
+ onCreate,
17
+ }) => {
18
+ return (
19
+ <DraggableContainer
20
+ type={RPGUIContainerTypes.Framed}
21
+ onCloseButton={() => {
22
+ if (onClose) onClose();
23
+ }}
24
+ width="500px"
25
+ height="300px"
26
+ cancelDrag=".partyRows"
27
+ >
28
+ <Wrapper>
29
+ <div style={{ width: '100%' }}>
30
+ <Title>Create Party</Title>
31
+ <hr className="golden" />
32
+ </div>
33
+ </Wrapper>
34
+ <h1>Type your party name</h1>
35
+ <Input placeholder="Type party name" type="text" />
36
+ <ButtonWrapper>
37
+ <Button
38
+ buttonType={ButtonTypes.RPGUIButton}
39
+ onPointerDown={() => {
40
+ onCreate();
41
+ }}
42
+ >
43
+ Confirm
44
+ </Button>
45
+ <div className="cancel-button">
46
+ <Button
47
+ buttonType={ButtonTypes.RPGUIButton}
48
+ onPointerDown={() => {
49
+ close();
50
+ }}
51
+ >
52
+ Cancel
53
+ </Button>
54
+ </div>
55
+ </ButtonWrapper>
56
+ </DraggableContainer>
57
+ );
58
+ };
59
+
60
+ const Wrapper = styled.div`
61
+ display: flex;
62
+ flex-direction: column;
63
+ width: 100%;
64
+ `;
65
+ const Title = styled.h1`
66
+ font-size: 0.6rem;
67
+ color: ${uiColors.yellow} !important;
68
+ `;
69
+
70
+ const ButtonWrapper = styled.div`
71
+ margin-top: 10px;
72
+ width: 100%;
73
+ display: flex;
74
+ justify-content: space-around;
75
+ align-items: center;
76
+ .cancel-button {
77
+ filter: grayscale(0.7);
78
+ }
79
+ `;
@@ -0,0 +1 @@
1
+ export * from './PartyCreate';
@@ -0,0 +1,67 @@
1
+ import React from 'react';
2
+ import styled from 'styled-components';
3
+ import { uiColors } from '../../../constants/uiColors';
4
+ import { Button, ButtonTypes } from '../../Button';
5
+ import { DraggableContainer } from '../../DraggableContainer';
6
+ import { RPGUIContainerTypes } from '../../RPGUIContainer';
7
+ import { IPartyRowProps, PartyRow } from './PartyRows';
8
+
9
+ export interface IPartyDashboardProps {
10
+ partyRows: IPartyRowProps[];
11
+ }
12
+
13
+ export const PartyDashboard: React.FC<IPartyDashboardProps> = ({
14
+ partyRows,
15
+ }) => {
16
+ return (
17
+ <DraggableContainer
18
+ type={RPGUIContainerTypes.Framed}
19
+ onCloseButton={() => {
20
+ console.log('Close');
21
+ }}
22
+ width="800px"
23
+ height="400px"
24
+ cancelDrag=".partyRows"
25
+ >
26
+ <Wrapper>
27
+ <div style={{ width: '100%' }}>
28
+ <Title>Party Dashboard</Title>
29
+ <Button buttonType={ButtonTypes.RPGUIButton}>Create</Button>
30
+ <hr className="golden" />
31
+ </div>
32
+ </Wrapper>
33
+ <RowsWrapper className="partyRows">
34
+ {partyRows.map(partyRows => (
35
+ <PartyRow
36
+ key={partyRows.id}
37
+ charName={partyRows.charName}
38
+ charClass={partyRows.charClass}
39
+ charLevel={partyRows.charLevel}
40
+ playerQty={partyRows.playerQty}
41
+ id={partyRows.id}
42
+ isInvited={partyRows.isInvited}
43
+ partyName={partyRows.partyName}
44
+ />
45
+ ))}
46
+ </RowsWrapper>
47
+ </DraggableContainer>
48
+ );
49
+ };
50
+
51
+ const Wrapper = styled.div`
52
+ display: flex;
53
+ flex-direction: column;
54
+ width: 100%;
55
+ `;
56
+
57
+ const RowsWrapper = styled.div`
58
+ overflow-y: scroll;
59
+ -webkit-overflow-scrolling: touch;
60
+ width: 100%;
61
+ height: 200px;
62
+ `;
63
+
64
+ const Title = styled.h1`
65
+ font-size: 0.6rem;
66
+ color: ${uiColors.yellow} !important;
67
+ `;
@@ -0,0 +1,57 @@
1
+ import React from 'react';
2
+ import styled from 'styled-components';
3
+ import { uiColors } from '../../../constants/uiColors';
4
+ import { Button, ButtonTypes } from '../../Button';
5
+
6
+ export interface IPartyRowProps {
7
+ id: string;
8
+ charName: string;
9
+ charClass: string;
10
+ charLevel: number;
11
+ playerQty: number;
12
+ isInvited: boolean;
13
+ partyName: string;
14
+ }
15
+
16
+ export const PartyRow: React.FC<IPartyRowProps> = ({
17
+ charName,
18
+ charClass,
19
+ charLevel,
20
+ playerQty,
21
+ isInvited,
22
+ partyName,
23
+ }) => {
24
+ return (
25
+ <PartyWrapper>
26
+ <TextContainer>{partyName}</TextContainer>
27
+ <TextContainer>{charName}</TextContainer>
28
+ <TextContainer>{charClass}</TextContainer>
29
+ <TextContainer>{charLevel}</TextContainer>
30
+ <TextContainer>{playerQty}/5</TextContainer>
31
+ {isInvited ? (
32
+ <>
33
+ <Button buttonType={ButtonTypes.RPGUIButton}>Accept</Button>
34
+ <div className="cancel-button">
35
+ <Button buttonType={ButtonTypes.RPGUIButton}>Decline</Button>
36
+ </div>
37
+ </>
38
+ ) : (
39
+ <Button buttonType={ButtonTypes.RPGUIButton}>Join</Button>
40
+ )}
41
+ </PartyWrapper>
42
+ );
43
+ };
44
+
45
+ const PartyWrapper = styled.div`
46
+ width: 100%;
47
+ display: flex;
48
+ align-items: center;
49
+ justify-content: space-around;
50
+ .cancel-button {
51
+ filter: grayscale(0.7);
52
+ }
53
+ `;
54
+
55
+ const TextContainer = styled.div`
56
+ color: ${uiColors.white};
57
+ `;
@@ -0,0 +1,2 @@
1
+ export * from './PartyDashboard'
2
+ export * from './PartyRows'
@@ -0,0 +1,60 @@
1
+ import React from 'react';
2
+ import styled from 'styled-components';
3
+ import { uiColors } from '../../../constants/uiColors';
4
+ import { DraggableContainer } from '../../DraggableContainer';
5
+ import { RPGUIContainerTypes } from '../../RPGUIContainer';
6
+ import { IPlayersRowProps, PlayersRow } from './PlayersRows';
7
+
8
+ export interface IPartyInviteProps {
9
+ playersRows: IPlayersRowProps[];
10
+ }
11
+
12
+ export const PartyInvite: React.FC<IPartyInviteProps> = ({ playersRows }) => {
13
+ return (
14
+ <DraggableContainer
15
+ type={RPGUIContainerTypes.Framed}
16
+ onCloseButton={() => {
17
+ console.log('Close');
18
+ }}
19
+ width="600px"
20
+ height="400px"
21
+ cancelDrag=".playersRows"
22
+ >
23
+ <Wrapper>
24
+ <div style={{ width: '100%' }}>
25
+ <Title>Invite for Party</Title>
26
+ <hr className="golden" />
27
+ </div>
28
+ </Wrapper>
29
+ <RowsWrapper className="playersRows">
30
+ {playersRows.map(playersRows => (
31
+ <PlayersRow
32
+ key={playersRows.id}
33
+ charName={playersRows.charName}
34
+ charClass={playersRows.charClass}
35
+ charLevel={playersRows.charLevel}
36
+ id={playersRows.id}
37
+ isNotInvited={playersRows.isNotInvited}
38
+ />
39
+ ))}
40
+ </RowsWrapper>
41
+ </DraggableContainer>
42
+ );
43
+ };
44
+
45
+ const Wrapper = styled.div`
46
+ display: flex;
47
+ flex-direction: column;
48
+ width: 100%;
49
+ `;
50
+ const Title = styled.h1`
51
+ font-size: 0.6rem;
52
+ color: ${uiColors.yellow} !important;
53
+ `;
54
+
55
+ const RowsWrapper = styled.div`
56
+ overflow-y: scroll;
57
+ -webkit-overflow-scrolling: touch;
58
+ width: 100%;
59
+ height: 200px;
60
+ `;
@@ -0,0 +1,49 @@
1
+ import React from 'react';
2
+ import styled from 'styled-components';
3
+ import { uiColors } from '../../../constants/uiColors';
4
+ import { Button, ButtonTypes } from '../../Button';
5
+
6
+ export interface IPlayersRowProps {
7
+ id: string;
8
+ charName: string;
9
+ charClass: string;
10
+ charLevel: number;
11
+ isNotInvited: boolean;
12
+ }
13
+
14
+ export const PlayersRow: React.FC<IPlayersRowProps> = ({
15
+ charName,
16
+ charClass,
17
+ charLevel,
18
+ isNotInvited,
19
+ }) => {
20
+ return (
21
+ <PartyWrapper>
22
+ <TextContainer>{charName}</TextContainer>
23
+ <TextContainer>{charClass}</TextContainer>
24
+ <TextContainer>{charLevel}</TextContainer>
25
+ {isNotInvited ? (
26
+ <>
27
+ <Button buttonType={ButtonTypes.RPGUIButton}>Invite</Button>
28
+ </>
29
+ ) : (
30
+ <TextContainer>Invited</TextContainer>
31
+ )}
32
+ </PartyWrapper>
33
+ );
34
+ };
35
+
36
+ const PartyWrapper = styled.div`
37
+ width: 100%;
38
+ display: flex;
39
+ align-items: center;
40
+ justify-content: space-around;
41
+ flex-direction: row;
42
+ flex: auto;
43
+ `;
44
+
45
+ const TextContainer = styled.div`
46
+ color: ${uiColors.white};
47
+ flex: auto;
48
+ margin: auto;
49
+ `;
@@ -0,0 +1,2 @@
1
+ export * from './PartyInvite'
2
+ export * from './PlayersRows'
@@ -0,0 +1,57 @@
1
+ import React from 'react';
2
+ import styled from 'styled-components';
3
+ import { uiColors } from '../../../constants/uiColors';
4
+ import { DraggableContainer } from '../../DraggableContainer';
5
+ import { RPGUIContainerTypes } from '../../RPGUIContainer';
6
+ import { IPartyManagerRowProps, PartyManagerRow } from './PartyManagerRows';
7
+
8
+ export interface IPartyManagerProps {
9
+ partyRows: IPartyManagerRowProps[];
10
+ }
11
+
12
+ export const PartyManager: React.FC<IPartyManagerProps> = ({ partyRows }) => {
13
+ return (
14
+ <DraggableContainer
15
+ type={RPGUIContainerTypes.Framed}
16
+ onCloseButton={() => {
17
+ console.log('Close');
18
+ }}
19
+ width="800px"
20
+ height="400px"
21
+ cancelDrag=".partyRows"
22
+ >
23
+ <Wrapper>
24
+ <div style={{ width: '100%' }}>
25
+ <Title>Party Dashboard</Title>
26
+ <hr className="golden" />
27
+ </div>
28
+ </Wrapper>
29
+ <RowsWrapper className="partyRows">
30
+ {partyRows.map(partyRows => (
31
+ <PartyManagerRow
32
+ key={partyRows.id}
33
+ charName={partyRows.charName}
34
+ charClass={partyRows.charClass}
35
+ charLevel={partyRows.charLevel}
36
+ id={partyRows.id}
37
+ />
38
+ ))}
39
+ </RowsWrapper>
40
+ </DraggableContainer>
41
+ );
42
+ };
43
+
44
+ const Wrapper = styled.div`
45
+ display: flex;
46
+ flex-direction: column;
47
+ width: 100%;
48
+ `;
49
+
50
+ const RowsWrapper = styled.div`
51
+ width: 100%;
52
+ `;
53
+
54
+ const Title = styled.h1`
55
+ font-size: 0.6rem;
56
+ color: ${uiColors.yellow} !important;
57
+ `;
@@ -0,0 +1,43 @@
1
+ import React from 'react';
2
+ import styled from 'styled-components';
3
+ import { uiColors } from '../../../constants/uiColors';
4
+ import { Button, ButtonTypes } from '../../Button';
5
+
6
+ export interface IPartyManagerRowProps {
7
+ id: string;
8
+ charName: string;
9
+ charClass: string;
10
+ charLevel: number;
11
+ }
12
+
13
+ export const PartyManagerRow: React.FC<IPartyManagerRowProps> = ({
14
+ charName,
15
+ charClass,
16
+ charLevel,
17
+ }) => {
18
+ return (
19
+ <PartyWrapper>
20
+ <TextContainer>{charName}</TextContainer>
21
+ <TextContainer>{charClass}</TextContainer>
22
+ <TextContainer>{charLevel}</TextContainer>
23
+ <div className="cancel-button">
24
+ <Button buttonType={ButtonTypes.RPGUIButton}>Remove</Button>
25
+ </div>
26
+ <Button buttonType={ButtonTypes.RPGUIButton}>New Leader</Button>
27
+ </PartyWrapper>
28
+ );
29
+ };
30
+
31
+ const PartyWrapper = styled.div`
32
+ width: 100%;
33
+ display: flex;
34
+ align-items: center;
35
+ justify-content: space-around;
36
+ .cancel-button {
37
+ filter: grayscale(0.7);
38
+ }
39
+ `;
40
+
41
+ const TextContainer = styled.div`
42
+ color: ${uiColors.white};
43
+ `;
@@ -0,0 +1,2 @@
1
+ export * from './PartyManager'
2
+ export * from './PartyManagerRows'
@@ -0,0 +1,6 @@
1
+ export * from './PartyCreate'
2
+ export * from './PartyDashboard'
3
+ export * from './PartyInvite'
4
+ export * from './PartyManager'
5
+ export * from './mockedConstantes'
6
+
@@ -0,0 +1 @@
1
+ export * from './mockedValues';
@@ -0,0 +1,150 @@
1
+ import { v4 as uuidv4 } from 'uuid';
2
+ import { IPartyRowProps } from '../PartyDashboard/PartyRows';
3
+ import { IPlayersRowProps } from '../PartyInvite';
4
+ import { IPartyManagerRowProps } from '../PartyManager';
5
+
6
+ export const mockedPartyRows: IPartyRowProps[] = [
7
+ {
8
+ id: uuidv4(),
9
+ charName: 'CharNome',
10
+ charClass: 'CharClass',
11
+ charLevel: 1,
12
+ playerQty: 3,
13
+ isInvited: true,
14
+ partyName: 'Party',
15
+ },
16
+ {
17
+ id: uuidv4(),
18
+ charName: 'CharNome',
19
+ charClass: 'CharClass',
20
+ charLevel: 1,
21
+ playerQty: 3,
22
+ isInvited: true,
23
+ partyName: 'Party',
24
+ },
25
+ {
26
+ id: uuidv4(),
27
+ charName: 'CharNome',
28
+ charClass: 'CharClass',
29
+ charLevel: 1,
30
+ playerQty: 3,
31
+ isInvited: true,
32
+ partyName: 'Party',
33
+ },
34
+ {
35
+ id: uuidv4(),
36
+ charName: 'CharNome',
37
+ charClass: 'CharClass',
38
+ charLevel: 1,
39
+ playerQty: 3,
40
+ isInvited: true,
41
+ partyName: 'Party',
42
+ },
43
+ {
44
+ id: uuidv4(),
45
+ charName: 'CharNome',
46
+ charClass: 'CharClass',
47
+ charLevel: 1,
48
+ playerQty: 3,
49
+ isInvited: true,
50
+ partyName: 'Party',
51
+ },
52
+ {
53
+ id: uuidv4(),
54
+ charName: 'CharNome',
55
+ charClass: 'CharClass',
56
+ charLevel: 1,
57
+ playerQty: 3,
58
+ isInvited: true,
59
+ partyName: 'Party',
60
+ },
61
+ {
62
+ id: uuidv4(),
63
+ charName: 'CharNome',
64
+ charClass: 'CharClass',
65
+ charLevel: 1,
66
+ playerQty: 3,
67
+ isInvited: true,
68
+ partyName: 'Party',
69
+ },
70
+ {
71
+ id: uuidv4(),
72
+ charName: 'CharNome',
73
+ charClass: 'CharClass',
74
+ charLevel: 1,
75
+ playerQty: 3,
76
+ isInvited: true,
77
+ partyName: 'Party',
78
+ },
79
+ ];
80
+
81
+ export const mockedPlayersRows: IPlayersRowProps[] = [
82
+ {
83
+ id: uuidv4(),
84
+ charName: 'CharNome',
85
+ charClass: 'CharClass',
86
+ charLevel: 1,
87
+ isNotInvited: true,
88
+ },
89
+ {
90
+ id: uuidv4(),
91
+ charName: 'CharNome',
92
+ charClass: 'CharClass',
93
+ charLevel: 1,
94
+ isNotInvited: true,
95
+ },
96
+ {
97
+ id: uuidv4(),
98
+ charName: 'CharNome',
99
+ charClass: 'CharClass',
100
+ charLevel: 1,
101
+ isNotInvited: true,
102
+ },
103
+ {
104
+ id: uuidv4(),
105
+ charName: 'CharNome',
106
+ charClass: 'CharClass',
107
+ charLevel: 1,
108
+ isNotInvited: true,
109
+ },
110
+ {
111
+ id: uuidv4(),
112
+ charName: 'CharNome',
113
+ charClass: 'CharClass',
114
+ charLevel: 1,
115
+ isNotInvited: true,
116
+ },
117
+ ];
118
+
119
+ export const mockedPartyManager: IPartyManagerRowProps[] = [
120
+ {
121
+ id: uuidv4(),
122
+ charName: 'CharNome',
123
+ charClass: 'CharClass',
124
+ charLevel: 1,
125
+ },
126
+ {
127
+ id: uuidv4(),
128
+ charName: 'CharNome',
129
+ charClass: 'CharClass',
130
+ charLevel: 1,
131
+ },
132
+ {
133
+ id: uuidv4(),
134
+ charName: 'CharNome',
135
+ charClass: 'CharClass',
136
+ charLevel: 1,
137
+ },
138
+ {
139
+ id: uuidv4(),
140
+ charName: 'CharNome',
141
+ charClass: 'CharClass',
142
+ charLevel: 1,
143
+ },
144
+ {
145
+ id: uuidv4(),
146
+ charName: 'CharNome',
147
+ charClass: 'CharClass',
148
+ charLevel: 1,
149
+ },
150
+ ];
@@ -37,11 +37,14 @@ export const SkillProgressBar: React.FC<ISkillProgressBarProps> = ({
37
37
  skillPointsToNextLevel = getSPForLevel(level + 1);
38
38
  }
39
39
 
40
- const skillsBuffsCalc = () => {
41
- if (buffAndDebuff) {
42
- return 1 + buffAndDebuff / 100;
40
+ const skillsBuffsCalc = (level: number, buffAndDebuff: number): string => {
41
+ const result = level * (buffAndDebuff / 100);
42
+
43
+ if (result > 0) {
44
+ return `+${result.toFixed(2)}`;
45
+ } else {
46
+ return `${result.toFixed(2)}`;
43
47
  }
44
- return;
45
48
  };
46
49
 
47
50
  return (
@@ -54,7 +57,7 @@ export const SkillProgressBar: React.FC<ISkillProgressBarProps> = ({
54
57
  <TitleNameContainer>
55
58
  <TitleNameBuff>{skillName}</TitleNameBuff>
56
59
  <TitleNameBuff>
57
- lv {level} ({skillsBuffsCalc()})
60
+ lv {level} ({skillsBuffsCalc(level, buffAndDebuff)})
58
61
  </TitleNameBuff>
59
62
  </TitleNameContainer>
60
63
  <TitleNameBuffContainer>
@@ -66,7 +69,7 @@ export const SkillProgressBar: React.FC<ISkillProgressBarProps> = ({
66
69
  <TitleNameContainer>
67
70
  <TitleNameDebuff>{skillName}</TitleNameDebuff>
68
71
  <TitleNameDebuff>
69
- lv {level} ({skillsBuffsCalc()})
72
+ lv {level} ({skillsBuffsCalc(level, buffAndDebuff)})
70
73
  </TitleNameDebuff>
71
74
  </TitleNameContainer>
72
75
  <div>
@@ -17,4 +17,5 @@ export const uiColors = {
17
17
  brown: '#854C30',
18
18
  lightGreen: '#66cd1c',
19
19
  brownGreen: '#346524',
20
+ white: '#fff'
20
21
  };