@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.
- package/dist/components/PartySystem/PartyCreate/PartyCreate.d.ts +6 -0
- package/dist/components/PartySystem/PartyCreate/index.d.ts +1 -0
- package/dist/components/PartySystem/PartyDashboard/PartyDashboard.d.ts +6 -0
- package/dist/components/PartySystem/PartyDashboard/PartyRows.d.ts +11 -0
- package/dist/components/PartySystem/PartyDashboard/index.d.ts +2 -0
- package/dist/components/PartySystem/PartyInvite/PartyInvite.d.ts +6 -0
- package/dist/components/PartySystem/PartyInvite/PlayersRows.d.ts +9 -0
- package/dist/components/PartySystem/PartyInvite/index.d.ts +2 -0
- package/dist/components/PartySystem/PartyManager/PartyManager.d.ts +6 -0
- package/dist/components/PartySystem/PartyManager/PartyManagerRows.d.ts +8 -0
- package/dist/components/PartySystem/PartyManager/index.d.ts +2 -0
- package/dist/components/PartySystem/index.d.ts +5 -0
- package/dist/components/PartySystem/mockedConstantes/index.d.ts +1 -0
- package/dist/components/PartySystem/mockedConstantes/mockedValues.d.ts +6 -0
- package/dist/constants/uiColors.d.ts +1 -0
- package/dist/index.d.ts +5 -4
- package/dist/long-bow.cjs.development.js +491 -114
- 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 +482 -115
- package/dist/long-bow.esm.js.map +1 -1
- package/dist/stories/PartyCreate.stories.d.ts +5 -0
- package/dist/stories/PartyDashboard.stories.d.ts +5 -0
- package/dist/stories/PartyInvite.stories.d.ts +5 -0
- package/dist/stories/PartyManager.stories.d.ts +5 -0
- package/package.json +2 -2
- package/src/components/PartySystem/PartyCreate/PartyCreate.tsx +79 -0
- package/src/components/PartySystem/PartyCreate/index.ts +1 -0
- package/src/components/PartySystem/PartyDashboard/PartyDashboard.tsx +67 -0
- package/src/components/PartySystem/PartyDashboard/PartyRows.tsx +57 -0
- package/src/components/PartySystem/PartyDashboard/index.ts +2 -0
- package/src/components/PartySystem/PartyInvite/PartyInvite.tsx +60 -0
- package/src/components/PartySystem/PartyInvite/PlayersRows.tsx +49 -0
- package/src/components/PartySystem/PartyInvite/index.ts +2 -0
- package/src/components/PartySystem/PartyManager/PartyManager.tsx +57 -0
- package/src/components/PartySystem/PartyManager/PartyManagerRows.tsx +43 -0
- package/src/components/PartySystem/PartyManager/index.ts +2 -0
- package/src/components/PartySystem/index.ts +6 -0
- package/src/components/PartySystem/mockedConstantes/index.ts +1 -0
- package/src/components/PartySystem/mockedConstantes/mockedValues.tsx +150 -0
- package/src/components/SkillProgressBar.tsx +9 -6
- package/src/constants/uiColors.ts +1 -0
- package/src/index.tsx +5 -4
- package/src/stories/PartyCreate.stories.tsx +24 -0
- package/src/stories/PartyDashboard.stories.tsx +27 -0
- package/src/stories/PartyInvite.stories.tsx +27 -0
- 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.
|
|
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.
|
|
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,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,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 @@
|
|
|
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
|
-
|
|
42
|
-
|
|
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>
|