diff --git a/back/src/Controller/IoSocketController.ts b/back/src/Controller/IoSocketController.ts index edd29e7b..28dd2da2 100644 --- a/back/src/Controller/IoSocketController.ts +++ b/back/src/Controller/IoSocketController.ts @@ -177,7 +177,7 @@ export class IoSocketController { //add function to refresh position user in real time. //this.refreshUserPosition(Client); - const messageUserJoined = new MessageUserJoined(Client.userId, Client.name, Client.character, Client.position); + const messageUserJoined = new MessageUserJoined(Client.userId, Client.name, Client.characterLayers, Client.position); socket.to(roomId).emit(SockerIoEvent.JOIN_ROOM, messageUserJoined); @@ -188,7 +188,7 @@ export class IoSocketController { console.warn('Something went wrong. The World contains a user "'+user.id+"' but this user does not exist in the sockets list!"); return null; } - return new MessageUserPosition(user.id, player.name, player.character, player.position); + return new MessageUserPosition(user.id, player.name, player.characterLayers, player.position); }).filter((item: MessageUserPosition|null) => item !== null); answerFn(listOfUsers); } catch (e) { @@ -278,7 +278,7 @@ export class IoSocketController { } const Client = (socket as ExSocketInterface); Client.name = playerDetails.name; - Client.character = playerDetails.character; + Client.characterLayers = playerDetails.characterLayers; answerFn(Client.userId); }); }); diff --git a/back/src/Model/Websocket/ExSocketInterface.ts b/back/src/Model/Websocket/ExSocketInterface.ts index 5827ccc9..108c61cb 100644 --- a/back/src/Model/Websocket/ExSocketInterface.ts +++ b/back/src/Model/Websocket/ExSocketInterface.ts @@ -9,6 +9,6 @@ export interface ExSocketInterface extends Socket, Identificable { webRtcRoomId: string; userId: string; name: string; - character: string; + characterLayers: string[]; position: PointInterface; } diff --git a/back/src/Model/Websocket/MessageUserJoined.ts b/back/src/Model/Websocket/MessageUserJoined.ts index d3143a6b..9e993dd3 100644 --- a/back/src/Model/Websocket/MessageUserJoined.ts +++ b/back/src/Model/Websocket/MessageUserJoined.ts @@ -1,6 +1,6 @@ import {PointInterface} from "_Model/Websocket/PointInterface"; export class MessageUserJoined { - constructor(public userId: string, public name: string, public character: string, public position: PointInterface) { + constructor(public userId: string, public name: string, public characterLayers: string[], public position: PointInterface) { } } diff --git a/back/src/Model/Websocket/MessageUserPosition.ts b/back/src/Model/Websocket/MessageUserPosition.ts index ed604940..03fc6f09 100644 --- a/back/src/Model/Websocket/MessageUserPosition.ts +++ b/back/src/Model/Websocket/MessageUserPosition.ts @@ -6,6 +6,6 @@ export class Point implements PointInterface{ } export class MessageUserPosition { - constructor(public userId: string, public name: string, public character: string, public position: PointInterface) { + constructor(public userId: string, public name: string, public characterLayers: string[], public position: PointInterface) { } } diff --git a/back/src/Model/Websocket/SetPlayerDetailsMessage.ts b/back/src/Model/Websocket/SetPlayerDetailsMessage.ts index 21461812..1693f9a0 100644 --- a/back/src/Model/Websocket/SetPlayerDetailsMessage.ts +++ b/back/src/Model/Websocket/SetPlayerDetailsMessage.ts @@ -3,6 +3,6 @@ import * as tg from "generic-type-guard"; export const isSetPlayerDetailsMessage = new tg.IsInterface().withProperties({ name: tg.isString, - character: tg.isString + characterLayers: tg.isArray(tg.isString) }).get(); export type SetPlayerDetailsMessage = tg.GuardedType; diff --git a/front/dist/resources/customisation/character_accessories/character_accessories1.png b/front/dist/resources/customisation/character_accessories/character_accessories1.png new file mode 100644 index 00000000..fc15513b Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories1.png differ diff --git a/front/dist/resources/customisation/character_accessories/character_accessories10.png b/front/dist/resources/customisation/character_accessories/character_accessories10.png new file mode 100644 index 00000000..c6372bfb Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories10.png differ diff --git a/front/dist/resources/customisation/character_accessories/character_accessories11.png b/front/dist/resources/customisation/character_accessories/character_accessories11.png new file mode 100644 index 00000000..30f53605 Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories11.png differ diff --git a/front/dist/resources/customisation/character_accessories/character_accessories12.png b/front/dist/resources/customisation/character_accessories/character_accessories12.png new file mode 100644 index 00000000..33759db8 Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories12.png differ diff --git a/front/dist/resources/customisation/character_accessories/character_accessories13.png b/front/dist/resources/customisation/character_accessories/character_accessories13.png new file mode 100644 index 00000000..14607d74 Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories13.png differ diff --git a/front/dist/resources/customisation/character_accessories/character_accessories14.png b/front/dist/resources/customisation/character_accessories/character_accessories14.png new file mode 100644 index 00000000..5f617b86 Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories14.png differ diff --git a/front/dist/resources/customisation/character_accessories/character_accessories15.png b/front/dist/resources/customisation/character_accessories/character_accessories15.png new file mode 100644 index 00000000..161b4e77 Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories15.png differ diff --git a/front/dist/resources/customisation/character_accessories/character_accessories16.png b/front/dist/resources/customisation/character_accessories/character_accessories16.png new file mode 100644 index 00000000..5f011337 Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories16.png differ diff --git a/front/dist/resources/customisation/character_accessories/character_accessories17.png b/front/dist/resources/customisation/character_accessories/character_accessories17.png new file mode 100644 index 00000000..7aad3d45 Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories17.png differ diff --git a/front/dist/resources/customisation/character_accessories/character_accessories18.png b/front/dist/resources/customisation/character_accessories/character_accessories18.png new file mode 100644 index 00000000..71a7655d Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories18.png differ diff --git a/front/dist/resources/customisation/character_accessories/character_accessories19.png b/front/dist/resources/customisation/character_accessories/character_accessories19.png new file mode 100644 index 00000000..022f402d Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories19.png differ diff --git a/front/dist/resources/customisation/character_accessories/character_accessories2.png b/front/dist/resources/customisation/character_accessories/character_accessories2.png new file mode 100644 index 00000000..030a6ae6 Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories2.png differ diff --git a/front/dist/resources/customisation/character_accessories/character_accessories20.png b/front/dist/resources/customisation/character_accessories/character_accessories20.png new file mode 100644 index 00000000..82d7c15c Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories20.png differ diff --git a/front/dist/resources/customisation/character_accessories/character_accessories21.png b/front/dist/resources/customisation/character_accessories/character_accessories21.png new file mode 100644 index 00000000..3fd72ef0 Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories21.png differ diff --git a/front/dist/resources/customisation/character_accessories/character_accessories22.png b/front/dist/resources/customisation/character_accessories/character_accessories22.png new file mode 100644 index 00000000..a824fc86 Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories22.png differ diff --git a/front/dist/resources/customisation/character_accessories/character_accessories23.png b/front/dist/resources/customisation/character_accessories/character_accessories23.png new file mode 100644 index 00000000..f91fee3b Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories23.png differ diff --git a/front/dist/resources/customisation/character_accessories/character_accessories24.png b/front/dist/resources/customisation/character_accessories/character_accessories24.png new file mode 100644 index 00000000..b4890ee7 Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories24.png differ diff --git a/front/dist/resources/customisation/character_accessories/character_accessories25.png b/front/dist/resources/customisation/character_accessories/character_accessories25.png new file mode 100644 index 00000000..3be60221 Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories25.png differ diff --git a/front/dist/resources/customisation/character_accessories/character_accessories26.png b/front/dist/resources/customisation/character_accessories/character_accessories26.png new file mode 100644 index 00000000..d5485744 Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories26.png differ diff --git a/front/dist/resources/customisation/character_accessories/character_accessories27.png b/front/dist/resources/customisation/character_accessories/character_accessories27.png new file mode 100644 index 00000000..3d90a526 Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories27.png differ diff --git a/front/dist/resources/customisation/character_accessories/character_accessories28.png b/front/dist/resources/customisation/character_accessories/character_accessories28.png new file mode 100644 index 00000000..d653d302 Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories28.png differ diff --git a/front/dist/resources/customisation/character_accessories/character_accessories29.png b/front/dist/resources/customisation/character_accessories/character_accessories29.png new file mode 100644 index 00000000..ac49af38 Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories29.png differ diff --git a/front/dist/resources/customisation/character_accessories/character_accessories3.png b/front/dist/resources/customisation/character_accessories/character_accessories3.png new file mode 100644 index 00000000..91127dc2 Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories3.png differ diff --git a/front/dist/resources/customisation/character_accessories/character_accessories30.png b/front/dist/resources/customisation/character_accessories/character_accessories30.png new file mode 100644 index 00000000..07a7c00c Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories30.png differ diff --git a/front/dist/resources/customisation/character_accessories/character_accessories31.png b/front/dist/resources/customisation/character_accessories/character_accessories31.png new file mode 100644 index 00000000..df282a68 Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories31.png differ diff --git a/front/dist/resources/customisation/character_accessories/character_accessories32.png b/front/dist/resources/customisation/character_accessories/character_accessories32.png new file mode 100644 index 00000000..b8671332 Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories32.png differ diff --git a/front/dist/resources/customisation/character_accessories/character_accessories4.png b/front/dist/resources/customisation/character_accessories/character_accessories4.png new file mode 100644 index 00000000..842df71e Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories4.png differ diff --git a/front/dist/resources/customisation/character_accessories/character_accessories5.png b/front/dist/resources/customisation/character_accessories/character_accessories5.png new file mode 100644 index 00000000..4bca9461 Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories5.png differ diff --git a/front/dist/resources/customisation/character_accessories/character_accessories6.png b/front/dist/resources/customisation/character_accessories/character_accessories6.png new file mode 100644 index 00000000..b2c6726a Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories6.png differ diff --git a/front/dist/resources/customisation/character_accessories/character_accessories7.png b/front/dist/resources/customisation/character_accessories/character_accessories7.png new file mode 100644 index 00000000..7efb5636 Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories7.png differ diff --git a/front/dist/resources/customisation/character_accessories/character_accessories8.png b/front/dist/resources/customisation/character_accessories/character_accessories8.png new file mode 100644 index 00000000..9d4843d7 Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories8.png differ diff --git a/front/dist/resources/customisation/character_accessories/character_accessories9.png b/front/dist/resources/customisation/character_accessories/character_accessories9.png new file mode 100644 index 00000000..f59ee0f5 Binary files /dev/null and b/front/dist/resources/customisation/character_accessories/character_accessories9.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes0.png b/front/dist/resources/customisation/character_clothes/character_clothes0.png new file mode 100644 index 00000000..dc58cd21 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes0.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes1.png b/front/dist/resources/customisation/character_clothes/character_clothes1.png new file mode 100644 index 00000000..1520acc5 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes1.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes10.png b/front/dist/resources/customisation/character_clothes/character_clothes10.png new file mode 100644 index 00000000..599f0ebb Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes10.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes11.png b/front/dist/resources/customisation/character_clothes/character_clothes11.png new file mode 100644 index 00000000..24816063 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes11.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes12.png b/front/dist/resources/customisation/character_clothes/character_clothes12.png new file mode 100644 index 00000000..0e9ae0d9 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes12.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes13.png b/front/dist/resources/customisation/character_clothes/character_clothes13.png new file mode 100644 index 00000000..7d177cc5 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes13.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes14.png b/front/dist/resources/customisation/character_clothes/character_clothes14.png new file mode 100644 index 00000000..d35c42fb Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes14.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes15.png b/front/dist/resources/customisation/character_clothes/character_clothes15.png new file mode 100644 index 00000000..dee8c910 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes15.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes16.png b/front/dist/resources/customisation/character_clothes/character_clothes16.png new file mode 100644 index 00000000..3b2f9b3a Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes16.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes17.png b/front/dist/resources/customisation/character_clothes/character_clothes17.png new file mode 100644 index 00000000..df94fbf6 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes17.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes18.png b/front/dist/resources/customisation/character_clothes/character_clothes18.png new file mode 100644 index 00000000..7b302d04 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes18.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes19.png b/front/dist/resources/customisation/character_clothes/character_clothes19.png new file mode 100644 index 00000000..41181b80 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes19.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes2.png b/front/dist/resources/customisation/character_clothes/character_clothes2.png new file mode 100644 index 00000000..debc2960 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes2.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes20.png b/front/dist/resources/customisation/character_clothes/character_clothes20.png new file mode 100644 index 00000000..b97a1a0a Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes20.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes21.png b/front/dist/resources/customisation/character_clothes/character_clothes21.png new file mode 100644 index 00000000..bd08eca1 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes21.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes22.png b/front/dist/resources/customisation/character_clothes/character_clothes22.png new file mode 100644 index 00000000..d2e2d124 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes22.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes23.png b/front/dist/resources/customisation/character_clothes/character_clothes23.png new file mode 100644 index 00000000..4d5dc584 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes23.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes24.png b/front/dist/resources/customisation/character_clothes/character_clothes24.png new file mode 100644 index 00000000..eb051a56 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes24.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes25.png b/front/dist/resources/customisation/character_clothes/character_clothes25.png new file mode 100644 index 00000000..c9f3f168 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes25.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes26.png b/front/dist/resources/customisation/character_clothes/character_clothes26.png new file mode 100644 index 00000000..ed98a37d Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes26.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes27.png b/front/dist/resources/customisation/character_clothes/character_clothes27.png new file mode 100644 index 00000000..74f13d03 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes27.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes28.png b/front/dist/resources/customisation/character_clothes/character_clothes28.png new file mode 100644 index 00000000..35b6c3d0 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes28.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes29.png b/front/dist/resources/customisation/character_clothes/character_clothes29.png new file mode 100644 index 00000000..38ce8a9f Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes29.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes3.png b/front/dist/resources/customisation/character_clothes/character_clothes3.png new file mode 100644 index 00000000..e5a4ea0a Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes3.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes30.png b/front/dist/resources/customisation/character_clothes/character_clothes30.png new file mode 100644 index 00000000..2d2fec59 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes30.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes31.png b/front/dist/resources/customisation/character_clothes/character_clothes31.png new file mode 100644 index 00000000..3df91de5 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes31.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes32.png b/front/dist/resources/customisation/character_clothes/character_clothes32.png new file mode 100644 index 00000000..9c7dcd3c Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes32.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes33.png b/front/dist/resources/customisation/character_clothes/character_clothes33.png new file mode 100644 index 00000000..d2e01637 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes33.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes34.png b/front/dist/resources/customisation/character_clothes/character_clothes34.png new file mode 100644 index 00000000..319850e3 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes34.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes35.png b/front/dist/resources/customisation/character_clothes/character_clothes35.png new file mode 100644 index 00000000..5a19d3a1 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes35.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes36.png b/front/dist/resources/customisation/character_clothes/character_clothes36.png new file mode 100644 index 00000000..e07698dd Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes36.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes37.png b/front/dist/resources/customisation/character_clothes/character_clothes37.png new file mode 100644 index 00000000..e100a8b0 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes37.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes38.png b/front/dist/resources/customisation/character_clothes/character_clothes38.png new file mode 100644 index 00000000..db5145dc Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes38.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes39.png b/front/dist/resources/customisation/character_clothes/character_clothes39.png new file mode 100644 index 00000000..4e518a41 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes39.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes4.png b/front/dist/resources/customisation/character_clothes/character_clothes4.png new file mode 100644 index 00000000..ec0519e7 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes4.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes40.png b/front/dist/resources/customisation/character_clothes/character_clothes40.png new file mode 100644 index 00000000..4ef018d5 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes40.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes41.png b/front/dist/resources/customisation/character_clothes/character_clothes41.png new file mode 100644 index 00000000..f127d951 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes41.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes42.png b/front/dist/resources/customisation/character_clothes/character_clothes42.png new file mode 100644 index 00000000..6f323147 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes42.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes43.png b/front/dist/resources/customisation/character_clothes/character_clothes43.png new file mode 100644 index 00000000..67033823 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes43.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes44.png b/front/dist/resources/customisation/character_clothes/character_clothes44.png new file mode 100644 index 00000000..4b363afe Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes44.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes45.png b/front/dist/resources/customisation/character_clothes/character_clothes45.png new file mode 100644 index 00000000..b27e42d8 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes45.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes46.png b/front/dist/resources/customisation/character_clothes/character_clothes46.png new file mode 100644 index 00000000..cb85a84a Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes46.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes47.png b/front/dist/resources/customisation/character_clothes/character_clothes47.png new file mode 100644 index 00000000..f0aa12ab Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes47.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes48.png b/front/dist/resources/customisation/character_clothes/character_clothes48.png new file mode 100644 index 00000000..b83c3d0e Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes48.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes49.png b/front/dist/resources/customisation/character_clothes/character_clothes49.png new file mode 100644 index 00000000..6e84dc53 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes49.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes5.png b/front/dist/resources/customisation/character_clothes/character_clothes5.png new file mode 100644 index 00000000..70d28602 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes5.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes50.png b/front/dist/resources/customisation/character_clothes/character_clothes50.png new file mode 100644 index 00000000..d36c2f47 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes50.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes51.png b/front/dist/resources/customisation/character_clothes/character_clothes51.png new file mode 100644 index 00000000..661fe619 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes51.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes52.png b/front/dist/resources/customisation/character_clothes/character_clothes52.png new file mode 100644 index 00000000..ba67f555 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes52.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes53.png b/front/dist/resources/customisation/character_clothes/character_clothes53.png new file mode 100644 index 00000000..76614bbe Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes53.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes54.png b/front/dist/resources/customisation/character_clothes/character_clothes54.png new file mode 100644 index 00000000..7615925f Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes54.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes55.png b/front/dist/resources/customisation/character_clothes/character_clothes55.png new file mode 100644 index 00000000..8e418848 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes55.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes56.png b/front/dist/resources/customisation/character_clothes/character_clothes56.png new file mode 100644 index 00000000..d25363bc Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes56.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes57.png b/front/dist/resources/customisation/character_clothes/character_clothes57.png new file mode 100644 index 00000000..6d59d65c Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes57.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes58.png b/front/dist/resources/customisation/character_clothes/character_clothes58.png new file mode 100644 index 00000000..a4d70a70 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes58.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes59.png b/front/dist/resources/customisation/character_clothes/character_clothes59.png new file mode 100644 index 00000000..8a24fbdc Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes59.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes6.png b/front/dist/resources/customisation/character_clothes/character_clothes6.png new file mode 100644 index 00000000..8fe88e5c Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes6.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes60.png b/front/dist/resources/customisation/character_clothes/character_clothes60.png new file mode 100644 index 00000000..d9cdcb99 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes60.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes61.png b/front/dist/resources/customisation/character_clothes/character_clothes61.png new file mode 100644 index 00000000..c77b3bd5 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes61.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes62.png b/front/dist/resources/customisation/character_clothes/character_clothes62.png new file mode 100644 index 00000000..70c6494c Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes62.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes63.png b/front/dist/resources/customisation/character_clothes/character_clothes63.png new file mode 100644 index 00000000..0dd417ee Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes63.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes64.png b/front/dist/resources/customisation/character_clothes/character_clothes64.png new file mode 100644 index 00000000..9038cad7 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes64.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes65.png b/front/dist/resources/customisation/character_clothes/character_clothes65.png new file mode 100644 index 00000000..c4bcf4ed Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes65.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes66.png b/front/dist/resources/customisation/character_clothes/character_clothes66.png new file mode 100644 index 00000000..6ab82166 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes66.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes67.png b/front/dist/resources/customisation/character_clothes/character_clothes67.png new file mode 100644 index 00000000..6ca779ff Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes67.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes68.png b/front/dist/resources/customisation/character_clothes/character_clothes68.png new file mode 100644 index 00000000..6d343cc8 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes68.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes69.png b/front/dist/resources/customisation/character_clothes/character_clothes69.png new file mode 100644 index 00000000..6a570e6a Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes69.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes7.png b/front/dist/resources/customisation/character_clothes/character_clothes7.png new file mode 100644 index 00000000..c19a0de8 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes7.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes8.png b/front/dist/resources/customisation/character_clothes/character_clothes8.png new file mode 100644 index 00000000..7d6258a0 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes8.png differ diff --git a/front/dist/resources/customisation/character_clothes/character_clothes9.png b/front/dist/resources/customisation/character_clothes/character_clothes9.png new file mode 100644 index 00000000..7c8149c4 Binary files /dev/null and b/front/dist/resources/customisation/character_clothes/character_clothes9.png differ diff --git a/front/dist/resources/customisation/character_color/_‚È‚µ.png b/front/dist/resources/customisation/character_color/_‚È‚µ.png new file mode 100644 index 00000000..fc15513b Binary files /dev/null and b/front/dist/resources/customisation/character_color/_‚È‚µ.png differ diff --git a/front/dist/resources/customisation/character_color/character_color0.png b/front/dist/resources/customisation/character_color/character_color0.png new file mode 100644 index 00000000..e4e95d3c Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color0.png differ diff --git a/front/dist/resources/customisation/character_color/character_color1.png b/front/dist/resources/customisation/character_color/character_color1.png new file mode 100644 index 00000000..cea139ec Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color1.png differ diff --git a/front/dist/resources/customisation/character_color/character_color10.png b/front/dist/resources/customisation/character_color/character_color10.png new file mode 100644 index 00000000..a4fd0ad7 Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color10.png differ diff --git a/front/dist/resources/customisation/character_color/character_color11.png b/front/dist/resources/customisation/character_color/character_color11.png new file mode 100644 index 00000000..86ade06f Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color11.png differ diff --git a/front/dist/resources/customisation/character_color/character_color12.png b/front/dist/resources/customisation/character_color/character_color12.png new file mode 100644 index 00000000..c246d027 Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color12.png differ diff --git a/front/dist/resources/customisation/character_color/character_color13.png b/front/dist/resources/customisation/character_color/character_color13.png new file mode 100644 index 00000000..006d174f Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color13.png differ diff --git a/front/dist/resources/customisation/character_color/character_color14.png b/front/dist/resources/customisation/character_color/character_color14.png new file mode 100644 index 00000000..61022543 Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color14.png differ diff --git a/front/dist/resources/customisation/character_color/character_color15.png b/front/dist/resources/customisation/character_color/character_color15.png new file mode 100644 index 00000000..d0569ce4 Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color15.png differ diff --git a/front/dist/resources/customisation/character_color/character_color16.png b/front/dist/resources/customisation/character_color/character_color16.png new file mode 100644 index 00000000..7de9ded0 Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color16.png differ diff --git a/front/dist/resources/customisation/character_color/character_color17.png b/front/dist/resources/customisation/character_color/character_color17.png new file mode 100644 index 00000000..0a7a2e57 Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color17.png differ diff --git a/front/dist/resources/customisation/character_color/character_color18.png b/front/dist/resources/customisation/character_color/character_color18.png new file mode 100644 index 00000000..97488b5e Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color18.png differ diff --git a/front/dist/resources/customisation/character_color/character_color19.png b/front/dist/resources/customisation/character_color/character_color19.png new file mode 100644 index 00000000..22450d5a Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color19.png differ diff --git a/front/dist/resources/customisation/character_color/character_color2.png b/front/dist/resources/customisation/character_color/character_color2.png new file mode 100644 index 00000000..da1355b5 Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color2.png differ diff --git a/front/dist/resources/customisation/character_color/character_color20.png b/front/dist/resources/customisation/character_color/character_color20.png new file mode 100644 index 00000000..69818425 Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color20.png differ diff --git a/front/dist/resources/customisation/character_color/character_color21.png b/front/dist/resources/customisation/character_color/character_color21.png new file mode 100644 index 00000000..62598f5d Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color21.png differ diff --git a/front/dist/resources/customisation/character_color/character_color22.png b/front/dist/resources/customisation/character_color/character_color22.png new file mode 100644 index 00000000..216f88cf Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color22.png differ diff --git a/front/dist/resources/customisation/character_color/character_color23.png b/front/dist/resources/customisation/character_color/character_color23.png new file mode 100644 index 00000000..87780624 Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color23.png differ diff --git a/front/dist/resources/customisation/character_color/character_color24.png b/front/dist/resources/customisation/character_color/character_color24.png new file mode 100644 index 00000000..c2edd550 Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color24.png differ diff --git a/front/dist/resources/customisation/character_color/character_color25.png b/front/dist/resources/customisation/character_color/character_color25.png new file mode 100644 index 00000000..f3184772 Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color25.png differ diff --git a/front/dist/resources/customisation/character_color/character_color26.png b/front/dist/resources/customisation/character_color/character_color26.png new file mode 100644 index 00000000..f4b5745a Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color26.png differ diff --git a/front/dist/resources/customisation/character_color/character_color27.png b/front/dist/resources/customisation/character_color/character_color27.png new file mode 100644 index 00000000..a606036c Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color27.png differ diff --git a/front/dist/resources/customisation/character_color/character_color28.png b/front/dist/resources/customisation/character_color/character_color28.png new file mode 100644 index 00000000..6779582f Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color28.png differ diff --git a/front/dist/resources/customisation/character_color/character_color29.png b/front/dist/resources/customisation/character_color/character_color29.png new file mode 100644 index 00000000..25ce5560 Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color29.png differ diff --git a/front/dist/resources/customisation/character_color/character_color3.png b/front/dist/resources/customisation/character_color/character_color3.png new file mode 100644 index 00000000..a3356f4d Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color3.png differ diff --git a/front/dist/resources/customisation/character_color/character_color30.png b/front/dist/resources/customisation/character_color/character_color30.png new file mode 100644 index 00000000..b16eb499 Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color30.png differ diff --git a/front/dist/resources/customisation/character_color/character_color31.png b/front/dist/resources/customisation/character_color/character_color31.png new file mode 100644 index 00000000..70de6c87 Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color31.png differ diff --git a/front/dist/resources/customisation/character_color/character_color32.png b/front/dist/resources/customisation/character_color/character_color32.png new file mode 100644 index 00000000..7b83badc Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color32.png differ diff --git a/front/dist/resources/customisation/character_color/character_color4.png b/front/dist/resources/customisation/character_color/character_color4.png new file mode 100644 index 00000000..0bcec7cf Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color4.png differ diff --git a/front/dist/resources/customisation/character_color/character_color5.png b/front/dist/resources/customisation/character_color/character_color5.png new file mode 100644 index 00000000..f2300a13 Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color5.png differ diff --git a/front/dist/resources/customisation/character_color/character_color6.png b/front/dist/resources/customisation/character_color/character_color6.png new file mode 100644 index 00000000..21360820 Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color6.png differ diff --git a/front/dist/resources/customisation/character_color/character_color7.png b/front/dist/resources/customisation/character_color/character_color7.png new file mode 100644 index 00000000..3ccad1ac Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color7.png differ diff --git a/front/dist/resources/customisation/character_color/character_color8.png b/front/dist/resources/customisation/character_color/character_color8.png new file mode 100644 index 00000000..062b4c7e Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color8.png differ diff --git a/front/dist/resources/customisation/character_color/character_color9.png b/front/dist/resources/customisation/character_color/character_color9.png new file mode 100644 index 00000000..b20f19de Binary files /dev/null and b/front/dist/resources/customisation/character_color/character_color9.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes1.png b/front/dist/resources/customisation/character_eyes/character_eyes1.png new file mode 100644 index 00000000..c672be93 Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes1.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes10.png b/front/dist/resources/customisation/character_eyes/character_eyes10.png new file mode 100644 index 00000000..968f11b0 Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes10.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes11.png b/front/dist/resources/customisation/character_eyes/character_eyes11.png new file mode 100644 index 00000000..3ff3cf5a Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes11.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes12.png b/front/dist/resources/customisation/character_eyes/character_eyes12.png new file mode 100644 index 00000000..8690475a Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes12.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes13.png b/front/dist/resources/customisation/character_eyes/character_eyes13.png new file mode 100644 index 00000000..d546acdb Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes13.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes14.png b/front/dist/resources/customisation/character_eyes/character_eyes14.png new file mode 100644 index 00000000..ec7fb215 Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes14.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes15.png b/front/dist/resources/customisation/character_eyes/character_eyes15.png new file mode 100644 index 00000000..bb2cf595 Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes15.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes16.png b/front/dist/resources/customisation/character_eyes/character_eyes16.png new file mode 100644 index 00000000..bfb2d38d Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes16.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes17.png b/front/dist/resources/customisation/character_eyes/character_eyes17.png new file mode 100644 index 00000000..a15736d7 Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes17.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes18.png b/front/dist/resources/customisation/character_eyes/character_eyes18.png new file mode 100644 index 00000000..47ba6f3a Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes18.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes19.png b/front/dist/resources/customisation/character_eyes/character_eyes19.png new file mode 100644 index 00000000..c1e140dc Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes19.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes2.png b/front/dist/resources/customisation/character_eyes/character_eyes2.png new file mode 100644 index 00000000..4f452c2e Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes2.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes20.png b/front/dist/resources/customisation/character_eyes/character_eyes20.png new file mode 100644 index 00000000..dd446bfb Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes20.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes21.png b/front/dist/resources/customisation/character_eyes/character_eyes21.png new file mode 100644 index 00000000..d1e8e06c Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes21.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes22.png b/front/dist/resources/customisation/character_eyes/character_eyes22.png new file mode 100644 index 00000000..3ce8d422 Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes22.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes23.png b/front/dist/resources/customisation/character_eyes/character_eyes23.png new file mode 100644 index 00000000..6781e822 Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes23.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes24.png b/front/dist/resources/customisation/character_eyes/character_eyes24.png new file mode 100644 index 00000000..6aa5e45d Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes24.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes25.png b/front/dist/resources/customisation/character_eyes/character_eyes25.png new file mode 100644 index 00000000..5798be3c Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes25.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes26.png b/front/dist/resources/customisation/character_eyes/character_eyes26.png new file mode 100644 index 00000000..345cb455 Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes26.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes27.png b/front/dist/resources/customisation/character_eyes/character_eyes27.png new file mode 100644 index 00000000..3044c2e3 Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes27.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes28.png b/front/dist/resources/customisation/character_eyes/character_eyes28.png new file mode 100644 index 00000000..c19166a6 Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes28.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes29.png b/front/dist/resources/customisation/character_eyes/character_eyes29.png new file mode 100644 index 00000000..ac2e4c83 Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes29.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes3.png b/front/dist/resources/customisation/character_eyes/character_eyes3.png new file mode 100644 index 00000000..d1bb67e6 Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes3.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes30.png b/front/dist/resources/customisation/character_eyes/character_eyes30.png new file mode 100644 index 00000000..15d5c423 Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes30.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes31.png b/front/dist/resources/customisation/character_eyes/character_eyes31.png new file mode 100644 index 00000000..1d6b3d5a Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes31.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes32.png b/front/dist/resources/customisation/character_eyes/character_eyes32.png new file mode 100644 index 00000000..df3007f1 Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes32.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes33.png b/front/dist/resources/customisation/character_eyes/character_eyes33.png new file mode 100644 index 00000000..ce7cfd1b Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes33.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes34.png b/front/dist/resources/customisation/character_eyes/character_eyes34.png new file mode 100644 index 00000000..3f110c66 Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes34.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes4.png b/front/dist/resources/customisation/character_eyes/character_eyes4.png new file mode 100644 index 00000000..92016ee5 Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes4.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes5.png b/front/dist/resources/customisation/character_eyes/character_eyes5.png new file mode 100644 index 00000000..ed7a7eb9 Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes5.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes6.png b/front/dist/resources/customisation/character_eyes/character_eyes6.png new file mode 100644 index 00000000..4cbbc1df Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes6.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes7.png b/front/dist/resources/customisation/character_eyes/character_eyes7.png new file mode 100644 index 00000000..cb3f1326 Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes7.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes8.png b/front/dist/resources/customisation/character_eyes/character_eyes8.png new file mode 100644 index 00000000..8326729c Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes8.png differ diff --git a/front/dist/resources/customisation/character_eyes/character_eyes9.png b/front/dist/resources/customisation/character_eyes/character_eyes9.png new file mode 100644 index 00000000..dbbe6ce1 Binary files /dev/null and b/front/dist/resources/customisation/character_eyes/character_eyes9.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs0.png b/front/dist/resources/customisation/character_hairs/character_hairs0.png new file mode 100644 index 00000000..fc15513b Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs0.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs1.png b/front/dist/resources/customisation/character_hairs/character_hairs1.png new file mode 100644 index 00000000..b7b3f810 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs1.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs10.png b/front/dist/resources/customisation/character_hairs/character_hairs10.png new file mode 100644 index 00000000..d26a4c85 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs10.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs11.png b/front/dist/resources/customisation/character_hairs/character_hairs11.png new file mode 100644 index 00000000..da5d38f7 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs11.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs12.png b/front/dist/resources/customisation/character_hairs/character_hairs12.png new file mode 100644 index 00000000..87fa1143 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs12.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs13.png b/front/dist/resources/customisation/character_hairs/character_hairs13.png new file mode 100644 index 00000000..f49f04b8 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs13.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs14.png b/front/dist/resources/customisation/character_hairs/character_hairs14.png new file mode 100644 index 00000000..1f7d4f98 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs14.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs15.png b/front/dist/resources/customisation/character_hairs/character_hairs15.png new file mode 100644 index 00000000..a6ea3f48 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs15.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs16.png b/front/dist/resources/customisation/character_hairs/character_hairs16.png new file mode 100644 index 00000000..cee3757c Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs16.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs17.png b/front/dist/resources/customisation/character_hairs/character_hairs17.png new file mode 100644 index 00000000..ee5e72a5 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs17.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs18.png b/front/dist/resources/customisation/character_hairs/character_hairs18.png new file mode 100644 index 00000000..0e8a4e3f Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs18.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs19.png b/front/dist/resources/customisation/character_hairs/character_hairs19.png new file mode 100644 index 00000000..c4b7b9f1 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs19.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs2.png b/front/dist/resources/customisation/character_hairs/character_hairs2.png new file mode 100644 index 00000000..cc9563fa Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs2.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs20.png b/front/dist/resources/customisation/character_hairs/character_hairs20.png new file mode 100644 index 00000000..2ae71bc6 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs20.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs21.png b/front/dist/resources/customisation/character_hairs/character_hairs21.png new file mode 100644 index 00000000..1010291c Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs21.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs22.png b/front/dist/resources/customisation/character_hairs/character_hairs22.png new file mode 100644 index 00000000..89bc1592 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs22.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs23.png b/front/dist/resources/customisation/character_hairs/character_hairs23.png new file mode 100644 index 00000000..b4d49149 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs23.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs24.png b/front/dist/resources/customisation/character_hairs/character_hairs24.png new file mode 100644 index 00000000..61f872eb Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs24.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs25.png b/front/dist/resources/customisation/character_hairs/character_hairs25.png new file mode 100644 index 00000000..02c9d501 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs25.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs26.png b/front/dist/resources/customisation/character_hairs/character_hairs26.png new file mode 100644 index 00000000..d266a115 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs26.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs27.png b/front/dist/resources/customisation/character_hairs/character_hairs27.png new file mode 100644 index 00000000..3920e8b9 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs27.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs28.png b/front/dist/resources/customisation/character_hairs/character_hairs28.png new file mode 100644 index 00000000..56a1654a Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs28.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs29.png b/front/dist/resources/customisation/character_hairs/character_hairs29.png new file mode 100644 index 00000000..73e50253 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs29.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs3.png b/front/dist/resources/customisation/character_hairs/character_hairs3.png new file mode 100644 index 00000000..56cbeebc Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs3.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs30.png b/front/dist/resources/customisation/character_hairs/character_hairs30.png new file mode 100644 index 00000000..5644f00f Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs30.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs31.png b/front/dist/resources/customisation/character_hairs/character_hairs31.png new file mode 100644 index 00000000..76c83bfc Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs31.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs32.png b/front/dist/resources/customisation/character_hairs/character_hairs32.png new file mode 100644 index 00000000..a1691f9d Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs32.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs33.png b/front/dist/resources/customisation/character_hairs/character_hairs33.png new file mode 100644 index 00000000..d916dff9 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs33.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs34.png b/front/dist/resources/customisation/character_hairs/character_hairs34.png new file mode 100644 index 00000000..b12882bb Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs34.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs35.png b/front/dist/resources/customisation/character_hairs/character_hairs35.png new file mode 100644 index 00000000..362776b0 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs35.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs36.png b/front/dist/resources/customisation/character_hairs/character_hairs36.png new file mode 100644 index 00000000..0ccad45f Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs36.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs37.png b/front/dist/resources/customisation/character_hairs/character_hairs37.png new file mode 100644 index 00000000..f7265773 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs37.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs38.png b/front/dist/resources/customisation/character_hairs/character_hairs38.png new file mode 100644 index 00000000..e08b80c9 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs38.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs39.png b/front/dist/resources/customisation/character_hairs/character_hairs39.png new file mode 100644 index 00000000..72427258 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs39.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs4.png b/front/dist/resources/customisation/character_hairs/character_hairs4.png new file mode 100644 index 00000000..1102785e Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs4.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs40.png b/front/dist/resources/customisation/character_hairs/character_hairs40.png new file mode 100644 index 00000000..e503818d Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs40.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs41.png b/front/dist/resources/customisation/character_hairs/character_hairs41.png new file mode 100644 index 00000000..9e970d56 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs41.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs42.png b/front/dist/resources/customisation/character_hairs/character_hairs42.png new file mode 100644 index 00000000..b594e4ec Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs42.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs43.png b/front/dist/resources/customisation/character_hairs/character_hairs43.png new file mode 100644 index 00000000..4d7bc534 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs43.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs44.png b/front/dist/resources/customisation/character_hairs/character_hairs44.png new file mode 100644 index 00000000..1bf6f603 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs44.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs45.png b/front/dist/resources/customisation/character_hairs/character_hairs45.png new file mode 100644 index 00000000..5260d9b8 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs45.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs46.png b/front/dist/resources/customisation/character_hairs/character_hairs46.png new file mode 100644 index 00000000..c7cc4d37 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs46.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs47.png b/front/dist/resources/customisation/character_hairs/character_hairs47.png new file mode 100644 index 00000000..8e6471c9 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs47.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs48.png b/front/dist/resources/customisation/character_hairs/character_hairs48.png new file mode 100644 index 00000000..f08147bc Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs48.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs49.png b/front/dist/resources/customisation/character_hairs/character_hairs49.png new file mode 100644 index 00000000..68c8c894 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs49.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs5.png b/front/dist/resources/customisation/character_hairs/character_hairs5.png new file mode 100644 index 00000000..23538b24 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs5.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs50.png b/front/dist/resources/customisation/character_hairs/character_hairs50.png new file mode 100644 index 00000000..8617d48c Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs50.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs51.png b/front/dist/resources/customisation/character_hairs/character_hairs51.png new file mode 100644 index 00000000..0b46dc79 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs51.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs52.png b/front/dist/resources/customisation/character_hairs/character_hairs52.png new file mode 100644 index 00000000..5bf7bb80 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs52.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs53.png b/front/dist/resources/customisation/character_hairs/character_hairs53.png new file mode 100644 index 00000000..44acb342 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs53.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs54.png b/front/dist/resources/customisation/character_hairs/character_hairs54.png new file mode 100644 index 00000000..209c7f9a Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs54.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs55.png b/front/dist/resources/customisation/character_hairs/character_hairs55.png new file mode 100644 index 00000000..aac652b0 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs55.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs56.png b/front/dist/resources/customisation/character_hairs/character_hairs56.png new file mode 100644 index 00000000..b294a6a6 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs56.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs57.png b/front/dist/resources/customisation/character_hairs/character_hairs57.png new file mode 100644 index 00000000..9c75dd2b Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs57.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs58.png b/front/dist/resources/customisation/character_hairs/character_hairs58.png new file mode 100644 index 00000000..830b6786 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs58.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs59.png b/front/dist/resources/customisation/character_hairs/character_hairs59.png new file mode 100644 index 00000000..97b59477 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs59.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs6.png b/front/dist/resources/customisation/character_hairs/character_hairs6.png new file mode 100644 index 00000000..638aefcb Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs6.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs60.png b/front/dist/resources/customisation/character_hairs/character_hairs60.png new file mode 100644 index 00000000..efa19c14 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs60.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs61.png b/front/dist/resources/customisation/character_hairs/character_hairs61.png new file mode 100644 index 00000000..1ee93467 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs61.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs62.png b/front/dist/resources/customisation/character_hairs/character_hairs62.png new file mode 100644 index 00000000..45580128 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs62.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs63.png b/front/dist/resources/customisation/character_hairs/character_hairs63.png new file mode 100644 index 00000000..74f666b9 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs63.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs64.png b/front/dist/resources/customisation/character_hairs/character_hairs64.png new file mode 100644 index 00000000..16bd4e39 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs64.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs65.png b/front/dist/resources/customisation/character_hairs/character_hairs65.png new file mode 100644 index 00000000..907105fe Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs65.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs66.png b/front/dist/resources/customisation/character_hairs/character_hairs66.png new file mode 100644 index 00000000..fda15aab Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs66.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs67.png b/front/dist/resources/customisation/character_hairs/character_hairs67.png new file mode 100644 index 00000000..77768cb4 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs67.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs68.png b/front/dist/resources/customisation/character_hairs/character_hairs68.png new file mode 100644 index 00000000..b7d248c6 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs68.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs69.png b/front/dist/resources/customisation/character_hairs/character_hairs69.png new file mode 100644 index 00000000..f670c342 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs69.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs7.png b/front/dist/resources/customisation/character_hairs/character_hairs7.png new file mode 100644 index 00000000..82359f60 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs7.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs70.png b/front/dist/resources/customisation/character_hairs/character_hairs70.png new file mode 100644 index 00000000..a5bdfb66 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs70.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs71.png b/front/dist/resources/customisation/character_hairs/character_hairs71.png new file mode 100644 index 00000000..fb3e25a7 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs71.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs72.png b/front/dist/resources/customisation/character_hairs/character_hairs72.png new file mode 100644 index 00000000..b440321c Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs72.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs73.png b/front/dist/resources/customisation/character_hairs/character_hairs73.png new file mode 100644 index 00000000..cc83cc42 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs73.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs8.png b/front/dist/resources/customisation/character_hairs/character_hairs8.png new file mode 100644 index 00000000..02f022df Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs8.png differ diff --git a/front/dist/resources/customisation/character_hairs/character_hairs9.png b/front/dist/resources/customisation/character_hairs/character_hairs9.png new file mode 100644 index 00000000..786aeee1 Binary files /dev/null and b/front/dist/resources/customisation/character_hairs/character_hairs9.png differ diff --git a/front/dist/resources/customisation/character_hats/character_hats1.png b/front/dist/resources/customisation/character_hats/character_hats1.png new file mode 100644 index 00000000..fc15513b Binary files /dev/null and b/front/dist/resources/customisation/character_hats/character_hats1.png differ diff --git a/front/dist/resources/customisation/character_hats/character_hats10.png b/front/dist/resources/customisation/character_hats/character_hats10.png new file mode 100644 index 00000000..14cdb14c Binary files /dev/null and b/front/dist/resources/customisation/character_hats/character_hats10.png differ diff --git a/front/dist/resources/customisation/character_hats/character_hats11.png b/front/dist/resources/customisation/character_hats/character_hats11.png new file mode 100644 index 00000000..4f9f8320 Binary files /dev/null and b/front/dist/resources/customisation/character_hats/character_hats11.png differ diff --git a/front/dist/resources/customisation/character_hats/character_hats12.png b/front/dist/resources/customisation/character_hats/character_hats12.png new file mode 100644 index 00000000..e2636a7f Binary files /dev/null and b/front/dist/resources/customisation/character_hats/character_hats12.png differ diff --git a/front/dist/resources/customisation/character_hats/character_hats13.png b/front/dist/resources/customisation/character_hats/character_hats13.png new file mode 100644 index 00000000..384b5e1f Binary files /dev/null and b/front/dist/resources/customisation/character_hats/character_hats13.png differ diff --git a/front/dist/resources/customisation/character_hats/character_hats14.png b/front/dist/resources/customisation/character_hats/character_hats14.png new file mode 100644 index 00000000..f40f76b4 Binary files /dev/null and b/front/dist/resources/customisation/character_hats/character_hats14.png differ diff --git a/front/dist/resources/customisation/character_hats/character_hats15.png b/front/dist/resources/customisation/character_hats/character_hats15.png new file mode 100644 index 00000000..3e1a635e Binary files /dev/null and b/front/dist/resources/customisation/character_hats/character_hats15.png differ diff --git a/front/dist/resources/customisation/character_hats/character_hats16.png b/front/dist/resources/customisation/character_hats/character_hats16.png new file mode 100644 index 00000000..d7dd7654 Binary files /dev/null and b/front/dist/resources/customisation/character_hats/character_hats16.png differ diff --git a/front/dist/resources/customisation/character_hats/character_hats17.png b/front/dist/resources/customisation/character_hats/character_hats17.png new file mode 100644 index 00000000..7adc46bd Binary files /dev/null and b/front/dist/resources/customisation/character_hats/character_hats17.png differ diff --git a/front/dist/resources/customisation/character_hats/character_hats18.png b/front/dist/resources/customisation/character_hats/character_hats18.png new file mode 100644 index 00000000..5cec2c16 Binary files /dev/null and b/front/dist/resources/customisation/character_hats/character_hats18.png differ diff --git a/front/dist/resources/customisation/character_hats/character_hats19.png b/front/dist/resources/customisation/character_hats/character_hats19.png new file mode 100644 index 00000000..794dbbdc Binary files /dev/null and b/front/dist/resources/customisation/character_hats/character_hats19.png differ diff --git a/front/dist/resources/customisation/character_hats/character_hats2.png b/front/dist/resources/customisation/character_hats/character_hats2.png new file mode 100644 index 00000000..cfc00e20 Binary files /dev/null and b/front/dist/resources/customisation/character_hats/character_hats2.png differ diff --git a/front/dist/resources/customisation/character_hats/character_hats20.png b/front/dist/resources/customisation/character_hats/character_hats20.png new file mode 100644 index 00000000..0d77a1c8 Binary files /dev/null and b/front/dist/resources/customisation/character_hats/character_hats20.png differ diff --git a/front/dist/resources/customisation/character_hats/character_hats21.png b/front/dist/resources/customisation/character_hats/character_hats21.png new file mode 100644 index 00000000..ad8d7399 Binary files /dev/null and b/front/dist/resources/customisation/character_hats/character_hats21.png differ diff --git a/front/dist/resources/customisation/character_hats/character_hats22.png b/front/dist/resources/customisation/character_hats/character_hats22.png new file mode 100644 index 00000000..ef054b22 Binary files /dev/null and b/front/dist/resources/customisation/character_hats/character_hats22.png differ diff --git a/front/dist/resources/customisation/character_hats/character_hats23.png b/front/dist/resources/customisation/character_hats/character_hats23.png new file mode 100644 index 00000000..a06ce23b Binary files /dev/null and b/front/dist/resources/customisation/character_hats/character_hats23.png differ diff --git a/front/dist/resources/customisation/character_hats/character_hats24.png b/front/dist/resources/customisation/character_hats/character_hats24.png new file mode 100644 index 00000000..a70aea52 Binary files /dev/null and b/front/dist/resources/customisation/character_hats/character_hats24.png differ diff --git a/front/dist/resources/customisation/character_hats/character_hats25.png b/front/dist/resources/customisation/character_hats/character_hats25.png new file mode 100644 index 00000000..fa55d532 Binary files /dev/null and b/front/dist/resources/customisation/character_hats/character_hats25.png differ diff --git a/front/dist/resources/customisation/character_hats/character_hats26.png b/front/dist/resources/customisation/character_hats/character_hats26.png new file mode 100644 index 00000000..6c805fd5 Binary files /dev/null and b/front/dist/resources/customisation/character_hats/character_hats26.png differ diff --git a/front/dist/resources/customisation/character_hats/character_hats3.png b/front/dist/resources/customisation/character_hats/character_hats3.png new file mode 100644 index 00000000..f5858738 Binary files /dev/null and b/front/dist/resources/customisation/character_hats/character_hats3.png differ diff --git a/front/dist/resources/customisation/character_hats/character_hats4.png b/front/dist/resources/customisation/character_hats/character_hats4.png new file mode 100644 index 00000000..2503c96b Binary files /dev/null and b/front/dist/resources/customisation/character_hats/character_hats4.png differ diff --git a/front/dist/resources/customisation/character_hats/character_hats5.png b/front/dist/resources/customisation/character_hats/character_hats5.png new file mode 100644 index 00000000..67ae54ba Binary files /dev/null and b/front/dist/resources/customisation/character_hats/character_hats5.png differ diff --git a/front/dist/resources/customisation/character_hats/character_hats6.png b/front/dist/resources/customisation/character_hats/character_hats6.png new file mode 100644 index 00000000..6d16feaf Binary files /dev/null and b/front/dist/resources/customisation/character_hats/character_hats6.png differ diff --git a/front/dist/resources/customisation/character_hats/character_hats7.png b/front/dist/resources/customisation/character_hats/character_hats7.png new file mode 100644 index 00000000..1dc05927 Binary files /dev/null and b/front/dist/resources/customisation/character_hats/character_hats7.png differ diff --git a/front/dist/resources/customisation/character_hats/character_hats8.png b/front/dist/resources/customisation/character_hats/character_hats8.png new file mode 100644 index 00000000..35e70ecf Binary files /dev/null and b/front/dist/resources/customisation/character_hats/character_hats8.png differ diff --git a/front/dist/resources/customisation/character_hats/character_hats9.png b/front/dist/resources/customisation/character_hats/character_hats9.png new file mode 100644 index 00000000..55680ef6 Binary files /dev/null and b/front/dist/resources/customisation/character_hats/character_hats9.png differ diff --git a/front/dist/resources/objects/customize.png b/front/dist/resources/objects/customize.png new file mode 100644 index 00000000..27cfe310 Binary files /dev/null and b/front/dist/resources/objects/customize.png differ diff --git a/front/dist/resources/objects/customize_selected.png b/front/dist/resources/objects/customize_selected.png new file mode 100644 index 00000000..060a6a8b Binary files /dev/null and b/front/dist/resources/objects/customize_selected.png differ diff --git a/front/src/Connection.ts b/front/src/Connection.ts index c4ac92c6..04715df6 100644 --- a/front/src/Connection.ts +++ b/front/src/Connection.ts @@ -44,7 +44,7 @@ export class Point implements PointInterface{ export interface MessageUserPositionInterface { userId: string; name: string; - character: string; + characterLayers: string[]; position: PointInterface; } @@ -56,7 +56,7 @@ export interface MessageUserMovedInterface { export interface MessageUserJoined { userId: string; name: string; - character: string; + characterLayers: string[]; position: PointInterface } @@ -109,7 +109,7 @@ export class Connection implements Connection { }) } - public static createConnection(name: string, characterSelected: string): Promise { + public static createConnection(name: string, characterLayersSelected: string[]): Promise { return Axios.post(`${API_URL}/login`, {name: name}) .then((res) => { @@ -123,7 +123,7 @@ export class Connection implements Connection { connection.socket.emit(EventMessage.SET_PLAYER_DETAILS, { name: name, - character: characterSelected + characterLayers: characterLayersSelected } as SetPlayerDetailsMessage, (id: string) => { connection.userId = id; }); @@ -135,7 +135,7 @@ export class Connection implements Connection { // Let's retry in 4-6 seconds return new Promise((resolve, reject) => { setTimeout(() => { - Connection.createConnection(name, characterSelected).then((connection) => resolve(connection)) + Connection.createConnection(name, characterLayersSelected).then((connection) => resolve(connection)) .catch((error) => reject(error)); }, 4000 + Math.floor(Math.random() * 2000) ); }); diff --git a/front/src/Messages/SetPlayerDetailsMessage.ts b/front/src/Messages/SetPlayerDetailsMessage.ts index 2f3cc707..789833ff 100644 --- a/front/src/Messages/SetPlayerDetailsMessage.ts +++ b/front/src/Messages/SetPlayerDetailsMessage.ts @@ -1,4 +1,4 @@ export interface SetPlayerDetailsMessage { name: string, - character: string + characterLayers: string[] } diff --git a/front/src/Phaser/Entity/Character.ts b/front/src/Phaser/Entity/Character.ts index 7453dc75..c3c4def4 100644 --- a/front/src/Phaser/Entity/Character.ts +++ b/front/src/Phaser/Entity/Character.ts @@ -1,6 +1,8 @@ import {PlayerAnimationNames} from "../Player/Animation"; import {SpeechBubble} from "./SpeechBubble"; import BitmapText = Phaser.GameObjects.BitmapText; +import Container = Phaser.GameObjects.Container; +import Sprite = Phaser.GameObjects.Sprite; export interface PlayerResourceDescriptionInterface { name: string, @@ -38,57 +40,62 @@ interface AnimationData { frameEnd: number; } -export abstract class Character extends Phaser.Physics.Arcade.Sprite { +export abstract class Character extends Container { private bubble: SpeechBubble|null = null; private readonly playerName: BitmapText; public PlayerValue: string; - public PlayerTexture: string; - + public sprites: Map; + private lastDirection: string = PlayerAnimationNames.WalkDown; constructor(scene: Phaser.Scene, x: number, y: number, - texture: string, + textures: string[], name: string, direction: string, moving: boolean, frame?: string | number ) { - super(scene, x, y, texture, frame); + super(scene, x, y/*, texture, frame*/); + + this.sprites = new Map(); + + for (const texture of textures) { + const sprite = new Sprite(scene, 0, 0, texture, frame); + this.getPlayerAnimations(texture).forEach(d => { + this.scene.anims.create({ + key: d.key, + frames: this.scene.anims.generateFrameNumbers(d.frameModel, {start: d.frameStart, end: d.frameEnd}), + frameRate: d.frameRate, + repeat: d.repeat + }); + }) + this.add(sprite); + this.scene.sys.updateList.add(sprite); + this.scene.sys.displayList.add(sprite); + this.sprites.set(texture, sprite); + } this.PlayerValue = name; - this.PlayerTexture = texture; this.playerName = new BitmapText(scene, x, y - 25, 'main_font', name, 8); this.playerName.setOrigin(0.5).setCenterAlign().setDepth(99999); scene.add.existing(this.playerName); - this.scene.sys.updateList.add(this); - this.scene.sys.displayList.add(this); - //this.setScale(2); + scene.add.existing(this); + this.scene.physics.world.enableBody(this); - this.setImmovable(true); - this.setCollideWorldBounds(true); - this.setSize(16, 16); //edit the hitbox to better match the character model - this.setOffset(8, 16); + this.getBody().setImmovable(true); + this.getBody().setCollideWorldBounds(true); + this.setSize(16, 16); + this.getBody().setSize(16, 16); //edit the hitbox to better match the character model + this.getBody().setOffset(0, 8); this.setDepth(-1); this.scene.events.on('postupdate', this.postupdate.bind(this)); - this.initAnimation(); this.playAnimation(direction, moving); } - private initAnimation(): void { - this.getPlayerAnimations(this.PlayerTexture).forEach(d => { - this.scene.anims.create({ - key: d.key, - frames: this.scene.anims.generateFrameNumbers(d.frameModel, {start: d.frameStart, end: d.frameEnd}), - frameRate: d.frameRate, - repeat: d.repeat - }); - }) - } - private getPlayerAnimations(name: string): AnimationData[] { return [{ key: `${name}-${PlayerAnimationNames.WalkDown}`, @@ -122,34 +129,53 @@ export abstract class Character extends Phaser.Physics.Arcade.Sprite { } protected playAnimation(direction : string, moving: boolean): void { - if (!this.anims) { - console.error('ANIMS IS NOT DEFINED!!!'); - return; - } - if (moving && (!this.anims.currentAnim || this.anims.currentAnim.key !== direction)) { - this.play(this.PlayerTexture+'-'+direction, true); - } else if (!moving) { - /*if (this.anims.currentAnim) { - this.anims.stop(); - }*/ - this.play(this.PlayerTexture+'-'+direction, true); - this.stop(); + for (const [texture, sprite] of this.sprites.entries()) { + if (!sprite.anims) { + console.error('ANIMS IS NOT DEFINED!!!'); + return; + } + if (moving && (!sprite.anims.currentAnim || sprite.anims.currentAnim.key !== direction)) { + sprite.play(texture+'-'+direction, true); + } else if (!moving) { + /*if (this.anims.currentAnim) { + this.anims.stop(); + }*/ + sprite.play(texture+'-'+direction, true); + sprite.anims.stop(); + } } } - move(x: number, y: number) { + protected getBody(): Phaser.Physics.Arcade.Body { + const body = this.body; + if (!(body instanceof Phaser.Physics.Arcade.Body)) { + throw new Error('Container does not have arcade body'); + } + return body; + } - this.setVelocity(x, y); + move(x: number, y: number) { + const body = this.getBody(); + + body.setVelocity(x, y); // up or down animations are prioritized over left and right - if (this.body.velocity.y < 0) { //moving up - this.play(`${this.PlayerTexture}-${PlayerAnimationNames.WalkUp}`, true); - } else if (this.body.velocity.y > 0) { //moving down - this.play(`${this.PlayerTexture}-${PlayerAnimationNames.WalkDown}`, true); - } else if (this.body.velocity.x > 0) { //moving right - this.play(`${this.PlayerTexture}-${PlayerAnimationNames.WalkRight}`, true); - } else if (this.body.velocity.x < 0) { //moving left - this.anims.playReverse(`${this.PlayerTexture}-${PlayerAnimationNames.WalkLeft}`, true); + if (body.velocity.y < 0) { //moving up + this.lastDirection = PlayerAnimationNames.WalkUp; + this.playAnimation(PlayerAnimationNames.WalkUp, true); + //this.play(`${this.PlayerTexture}-${PlayerAnimationNames.WalkUp}`, true); + } else if (body.velocity.y > 0) { //moving down + this.lastDirection = PlayerAnimationNames.WalkDown; + this.playAnimation(PlayerAnimationNames.WalkDown, true); + //this.play(`${this.PlayerTexture}-${PlayerAnimationNames.WalkDown}`, true); + } else if (body.velocity.x > 0) { //moving right + this.lastDirection = PlayerAnimationNames.WalkRight; + this.playAnimation(PlayerAnimationNames.WalkRight, true); + //this.play(`${this.PlayerTexture}-${PlayerAnimationNames.WalkRight}`, true); + } else if (body.velocity.x < 0) { //moving left + this.lastDirection = PlayerAnimationNames.WalkLeft; + this.playAnimation(PlayerAnimationNames.WalkLeft, true); + //this.anims.playReverse(`${this.PlayerTexture}-${PlayerAnimationNames.WalkLeft}`, true); } if (this.bubble) { @@ -166,8 +192,8 @@ export abstract class Character extends Phaser.Physics.Arcade.Sprite { } stop(){ - this.setVelocity(0, 0); - this.anims.stop(); + this.getBody().setVelocity(0, 0); + this.playAnimation(this.lastDirection, false); } say(text: string) { diff --git a/front/src/Phaser/Entity/RemotePlayer.ts b/front/src/Phaser/Entity/RemotePlayer.ts index 36911bb6..18785331 100644 --- a/front/src/Phaser/Entity/RemotePlayer.ts +++ b/front/src/Phaser/Entity/RemotePlayer.ts @@ -16,11 +16,11 @@ export class RemotePlayer extends Character { x: number, y: number, name: string, - PlayerTexture: string, + PlayerTextures: string[], direction: string, moving: boolean ) { - super(Scene, x, y, PlayerTexture, name, direction, moving, 1); + super(Scene, x, y, PlayerTextures, name, direction, moving, 1); //set data this.userId = userId; diff --git a/front/src/Phaser/Entity/body_character.ts b/front/src/Phaser/Entity/body_character.ts new file mode 100644 index 00000000..efa82c15 --- /dev/null +++ b/front/src/Phaser/Entity/body_character.ts @@ -0,0 +1,298 @@ +export interface BodyResourceDescriptionInterface { + name: string, + img: string +} + +export const COLOR_RESOURCES: Array = [ + {name:"color_1", img: "resources/customisation/character_color/character_color0.png"}, + {name:"color_2", img: "resources/customisation/character_color/character_color1.png"}, + {name:"color_3", img: "resources/customisation/character_color/character_color2.png"}, + {name:"color_4", img: "resources/customisation/character_color/character_color3.png"}, + {name:"color_5", img: "resources/customisation/character_color/character_color4.png"}, + {name:"color_6", img: "resources/customisation/character_color/character_color5.png"}, + {name:"color_7", img: "resources/customisation/character_color/character_color6.png"}, + {name:"color_8", img: "resources/customisation/character_color/character_color7.png"}, + {name:"color_9", img: "resources/customisation/character_color/character_color8.png"}, + {name:"color_10",img: "resources/customisation/character_color/character_color9.png"}, + {name:"color_11",img: "resources/customisation/character_color/character_color10.png"}, + {name:"color_12",img: "resources/customisation/character_color/character_color11.png"}, + {name:"color_13",img: "resources/customisation/character_color/character_color12.png"}, + {name:"color_14",img: "resources/customisation/character_color/character_color13.png"}, + {name:"color_15",img: "resources/customisation/character_color/character_color14.png"}, + {name:"color_16",img: "resources/customisation/character_color/character_color15.png"}, + {name:"color_17",img: "resources/customisation/character_color/character_color16.png"}, + {name:"color_18",img: "resources/customisation/character_color/character_color17.png"}, + {name:"color_19",img: "resources/customisation/character_color/character_color18.png"}, + {name:"color_20",img: "resources/customisation/character_color/character_color19.png"}, + {name:"color_21",img: "resources/customisation/character_color/character_color20.png"}, + {name:"color_22",img: "resources/customisation/character_color/character_color21.png"}, + {name:"color_23",img: "resources/customisation/character_color/character_color22.png"}, + {name:"color_24",img: "resources/customisation/character_color/character_color23.png"}, + {name:"color_25",img: "resources/customisation/character_color/character_color24.png"}, + {name:"color_26",img: "resources/customisation/character_color/character_color25.png"}, + {name:"color_27",img: "resources/customisation/character_color/character_color26.png"}, + {name:"color_28",img: "resources/customisation/character_color/character_color27.png"}, + {name:"color_29",img: "resources/customisation/character_color/character_color28.png"}, + {name:"color_30",img: "resources/customisation/character_color/character_color29.png"}, + {name:"color_31",img: "resources/customisation/character_color/character_color30.png"}, + {name:"color_32",img: "resources/customisation/character_color/character_color31.png"}, + {name:"color_33",img: "resources/customisation/character_color/character_color32.png"} +]; + +export const EYES_RESOURCES: Array = [ + {name: "eyes_1", img: "resources/customisation/character_eyes/character_eyes1.png"}, + {name: "eyes_2", img: "resources/customisation/character_eyes/character_eyes2.png"}, + {name: "eyes_3", img: "resources/customisation/character_eyes/character_eyes3.png"}, + {name: "eyes_4", img: "resources/customisation/character_eyes/character_eyes4.png"}, + {name: "eyes_5", img: "resources/customisation/character_eyes/character_eyes5.png"}, + {name: "eyes_6", img: "resources/customisation/character_eyes/character_eyes6.png"}, + {name: "eyes_7", img: "resources/customisation/character_eyes/character_eyes7.png"}, + {name: "eyes_8", img: "resources/customisation/character_eyes/character_eyes8.png"}, + {name: "eyes_9", img: "resources/customisation/character_eyes/character_eyes9.png"}, + {name: "eyes_10", img: "resources/customisation/character_eyes/character_eyes10.png"}, + {name: "eyes_11", img: "resources/customisation/character_eyes/character_eyes11.png"}, + {name: "eyes_12", img: "resources/customisation/character_eyes/character_eyes12.png"}, + {name: "eyes_13", img: "resources/customisation/character_eyes/character_eyes13.png"}, + {name: "eyes_14", img: "resources/customisation/character_eyes/character_eyes14.png"}, + {name: "eyes_15", img: "resources/customisation/character_eyes/character_eyes15.png"}, + {name: "eyes_16", img: "resources/customisation/character_eyes/character_eyes16.png"}, + {name: "eyes_17", img: "resources/customisation/character_eyes/character_eyes17.png"}, + {name: "eyes_18", img: "resources/customisation/character_eyes/character_eyes18.png"}, + {name: "eyes_19", img: "resources/customisation/character_eyes/character_eyes19.png"}, + {name: "eyes_20", img: "resources/customisation/character_eyes/character_eyes20.png"}, + {name: "eyes_21", img: "resources/customisation/character_eyes/character_eyes21.png"}, + {name: "eyes_22", img: "resources/customisation/character_eyes/character_eyes22.png"}, + {name: "eyes_23", img: "resources/customisation/character_eyes/character_eyes23.png"}, + {name: "eyes_24", img: "resources/customisation/character_eyes/character_eyes24.png"}, + {name: "eyes_25", img: "resources/customisation/character_eyes/character_eyes25.png"}, + {name: "eyes_26", img: "resources/customisation/character_eyes/character_eyes26.png"}, + {name: "eyes_27", img: "resources/customisation/character_eyes/character_eyes27.png"}, + {name: "eyes_28", img: "resources/customisation/character_eyes/character_eyes28.png"}, + {name: "eyes_29", img: "resources/customisation/character_eyes/character_eyes29.png"}, + {name: "eyes_30", img: "resources/customisation/character_eyes/character_eyes30.png"} + +] + +export const HAIR_RESOURCES: Array = [ + {name:"hair_1", img: "resources/customisation/character_hairs/character_hairs0.png"}, + {name:"hair_2", img: "resources/customisation/character_hairs/character_hairs1.png"}, + {name:"hair_3", img: "resources/customisation/character_hairs/character_hairs2.png"}, + {name:"hair_4", img: "resources/customisation/character_hairs/character_hairs3.png"}, + {name:"hair_5", img: "resources/customisation/character_hairs/character_hairs4.png"}, + {name:"hair_6", img: "resources/customisation/character_hairs/character_hairs5.png"}, + {name:"hair_7", img: "resources/customisation/character_hairs/character_hairs6.png"}, + {name:"hair_8", img: "resources/customisation/character_hairs/character_hairs7.png"}, + {name:"hair_9", img: "resources/customisation/character_hairs/character_hairs8.png"}, + {name:"hair_10",img: "resources/customisation/character_hairs/character_hairs9.png"}, + {name:"hair_11",img: "resources/customisation/character_hairs/character_hairs10.png"}, + {name:"hair_12",img: "resources/customisation/character_hairs/character_hairs11.png"}, + {name:"hair_13",img: "resources/customisation/character_hairs/character_hairs12.png"}, + {name:"hair_14",img: "resources/customisation/character_hairs/character_hairs13.png"}, + {name:"hair_15",img: "resources/customisation/character_hairs/character_hairs14.png"}, + {name:"hair_16",img: "resources/customisation/character_hairs/character_hairs15.png"}, + {name:"hair_17",img: "resources/customisation/character_hairs/character_hairs16.png"}, + {name:"hair_18",img: "resources/customisation/character_hairs/character_hairs17.png"}, + {name:"hair_19",img: "resources/customisation/character_hairs/character_hairs18.png"}, + {name:"hair_20",img: "resources/customisation/character_hairs/character_hairs19.png"}, + {name:"hair_21",img: "resources/customisation/character_hairs/character_hairs20.png"}, + {name:"hair_22",img: "resources/customisation/character_hairs/character_hairs21.png"}, + {name:"hair_23",img: "resources/customisation/character_hairs/character_hairs22.png"}, + {name:"hair_24",img: "resources/customisation/character_hairs/character_hairs23.png"}, + {name:"hair_25",img: "resources/customisation/character_hairs/character_hairs24.png"}, + {name:"hair_26",img: "resources/customisation/character_hairs/character_hairs25.png"}, + {name:"hair_27",img: "resources/customisation/character_hairs/character_hairs26.png"}, + {name:"hair_28",img: "resources/customisation/character_hairs/character_hairs27.png"}, + {name:"hair_29",img: "resources/customisation/character_hairs/character_hairs28.png"}, + {name:"hair_30",img: "resources/customisation/character_hairs/character_hairs29.png"}, + {name:"hair_31",img: "resources/customisation/character_hairs/character_hairs30.png"}, + {name:"hair_32",img: "resources/customisation/character_hairs/character_hairs31.png"}, + {name:"hair_33",img: "resources/customisation/character_hairs/character_hairs32.png"}, + {name:"hair_34",img: "resources/customisation/character_hairs/character_hairs33.png"}, + {name:"hair_35",img: "resources/customisation/character_hairs/character_hairs34.png"}, + {name:"hair_36",img: "resources/customisation/character_hairs/character_hairs35.png"}, + {name:"hair_37",img: "resources/customisation/character_hairs/character_hairs36.png"}, + {name:"hair_38",img: "resources/customisation/character_hairs/character_hairs37.png"}, + {name:"hair_39",img: "resources/customisation/character_hairs/character_hairs38.png"}, + {name:"hair_40",img: "resources/customisation/character_hairs/character_hairs39.png"}, + {name:"hair_41",img: "resources/customisation/character_hairs/character_hairs40.png"}, + {name:"hair_42",img: "resources/customisation/character_hairs/character_hairs41.png"}, + {name:"hair_43",img: "resources/customisation/character_hairs/character_hairs42.png"}, + {name:"hair_44",img: "resources/customisation/character_hairs/character_hairs43.png"}, + {name:"hair_45",img: "resources/customisation/character_hairs/character_hairs44.png"}, + {name:"hair_46",img: "resources/customisation/character_hairs/character_hairs45.png"}, + {name:"hair_47",img: "resources/customisation/character_hairs/character_hairs46.png"}, + {name:"hair_48",img: "resources/customisation/character_hairs/character_hairs47.png"}, + {name:"hair_49",img: "resources/customisation/character_hairs/character_hairs48.png"}, + {name:"hair_50",img: "resources/customisation/character_hairs/character_hairs49.png"}, + {name:"hair_51",img: "resources/customisation/character_hairs/character_hairs50.png"}, + {name:"hair_52",img: "resources/customisation/character_hairs/character_hairs51.png"}, + {name:"hair_53",img: "resources/customisation/character_hairs/character_hairs52.png"}, + {name:"hair_54",img: "resources/customisation/character_hairs/character_hairs53.png"}, + {name:"hair_55",img: "resources/customisation/character_hairs/character_hairs54.png"}, + {name:"hair_56",img: "resources/customisation/character_hairs/character_hairs55.png"}, + {name:"hair_57",img: "resources/customisation/character_hairs/character_hairs56.png"}, + {name:"hair_58",img: "resources/customisation/character_hairs/character_hairs57.png"}, + {name:"hair_59",img: "resources/customisation/character_hairs/character_hairs58.png"}, + {name:"hair_60",img: "resources/customisation/character_hairs/character_hairs59.png"}, + {name:"hair_61",img: "resources/customisation/character_hairs/character_hairs60.png"}, + {name:"hair_62",img: "resources/customisation/character_hairs/character_hairs61.png"}, + {name:"hair_63",img: "resources/customisation/character_hairs/character_hairs62.png"}, + {name:"hair_64",img: "resources/customisation/character_hairs/character_hairs63.png"}, + {name:"hair_65",img: "resources/customisation/character_hairs/character_hairs64.png"}, + {name:"hair_66",img: "resources/customisation/character_hairs/character_hairs65.png"}, + {name:"hair_67",img: "resources/customisation/character_hairs/character_hairs66.png"}, + {name:"hair_68",img: "resources/customisation/character_hairs/character_hairs67.png"}, + {name:"hair_69",img: "resources/customisation/character_hairs/character_hairs68.png"}, + {name:"hair_70",img: "resources/customisation/character_hairs/character_hairs69.png"}, + {name:"hair_71",img: "resources/customisation/character_hairs/character_hairs70.png"}, + {name:"hair_72",img: "resources/customisation/character_hairs/character_hairs71.png"}, + {name:"hair_73",img: "resources/customisation/character_hairs/character_hairs72.png"}, + {name:"hair_74",img: "resources/customisation/character_hairs/character_hairs73.png"} +]; + + +export const CLOTHES_RESOURCES: Array = [ + {name:"clothes_1", img: "resources/customisation/character_clothes/character_clothes0.png"}, + {name:"clothes_2", img: "resources/customisation/character_clothes/character_clothes1.png"}, + {name:"clothes_3", img: "resources/customisation/character_clothes/character_clothes2.png"}, + {name:"clothes_4", img: "resources/customisation/character_clothes/character_clothes3.png"}, + {name:"clothes_5", img: "resources/customisation/character_clothes/character_clothes4.png"}, + {name:"clothes_6", img: "resources/customisation/character_clothes/character_clothes5.png"}, + {name:"clothes_7", img: "resources/customisation/character_clothes/character_clothes6.png"}, + {name:"clothes_8", img: "resources/customisation/character_clothes/character_clothes7.png"}, + {name:"clothes_9", img: "resources/customisation/character_clothes/character_clothes8.png"}, + {name:"clothes_10",img: "resources/customisation/character_clothes/character_clothes9.png"}, + {name:"clothes_11",img: "resources/customisation/character_clothes/character_clothes10.png"}, + {name:"clothes_12",img: "resources/customisation/character_clothes/character_clothes11.png"}, + {name:"clothes_13",img: "resources/customisation/character_clothes/character_clothes12.png"}, + {name:"clothes_14",img: "resources/customisation/character_clothes/character_clothes13.png"}, + {name:"clothes_15",img: "resources/customisation/character_clothes/character_clothes14.png"}, + {name:"clothes_16",img: "resources/customisation/character_clothes/character_clothes15.png"}, + {name:"clothes_17",img: "resources/customisation/character_clothes/character_clothes16.png"}, + {name:"clothes_18",img: "resources/customisation/character_clothes/character_clothes17.png"}, + {name:"clothes_19",img: "resources/customisation/character_clothes/character_clothes18.png"}, + {name:"clothes_20",img: "resources/customisation/character_clothes/character_clothes19.png"}, + {name:"clothes_21",img: "resources/customisation/character_clothes/character_clothes20.png"}, + {name:"clothes_22",img: "resources/customisation/character_clothes/character_clothes21.png"}, + {name:"clothes_23",img: "resources/customisation/character_clothes/character_clothes22.png"}, + {name:"clothes_24",img: "resources/customisation/character_clothes/character_clothes23.png"}, + {name:"clothes_25",img: "resources/customisation/character_clothes/character_clothes24.png"}, + {name:"clothes_26",img: "resources/customisation/character_clothes/character_clothes25.png"}, + {name:"clothes_27",img: "resources/customisation/character_clothes/character_clothes26.png"}, + {name:"clothes_28",img: "resources/customisation/character_clothes/character_clothes27.png"}, + {name:"clothes_29",img: "resources/customisation/character_clothes/character_clothes28.png"}, + {name:"clothes_30",img: "resources/customisation/character_clothes/character_clothes29.png"}, + {name:"clothes_31",img: "resources/customisation/character_clothes/character_clothes30.png"}, + {name:"clothes_32",img: "resources/customisation/character_clothes/character_clothes31.png"}, + {name:"clothes_33",img: "resources/customisation/character_clothes/character_clothes32.png"}, + {name:"clothes_34",img: "resources/customisation/character_clothes/character_clothes33.png"}, + {name:"clothes_35",img: "resources/customisation/character_clothes/character_clothes34.png"}, + {name:"clothes_36",img: "resources/customisation/character_clothes/character_clothes35.png"}, + {name:"clothes_37",img: "resources/customisation/character_clothes/character_clothes36.png"}, + {name:"clothes_38",img: "resources/customisation/character_clothes/character_clothes37.png"}, + {name:"clothes_39",img: "resources/customisation/character_clothes/character_clothes38.png"}, + {name:"clothes_40",img: "resources/customisation/character_clothes/character_clothes39.png"}, + {name:"clothes_41",img: "resources/customisation/character_clothes/character_clothes40.png"}, + {name:"clothes_42",img: "resources/customisation/character_clothes/character_clothes41.png"}, + {name:"clothes_43",img: "resources/customisation/character_clothes/character_clothes42.png"}, + {name:"clothes_44",img: "resources/customisation/character_clothes/character_clothes43.png"}, + {name:"clothes_45",img: "resources/customisation/character_clothes/character_clothes44.png"}, + {name:"clothes_46",img: "resources/customisation/character_clothes/character_clothes45.png"}, + {name:"clothes_47",img: "resources/customisation/character_clothes/character_clothes46.png"}, + {name:"clothes_48",img: "resources/customisation/character_clothes/character_clothes47.png"}, + {name:"clothes_49",img: "resources/customisation/character_clothes/character_clothes48.png"}, + {name:"clothes_50",img: "resources/customisation/character_clothes/character_clothes49.png"}, + {name:"clothes_51",img: "resources/customisation/character_clothes/character_clothes50.png"}, + {name:"clothes_52",img: "resources/customisation/character_clothes/character_clothes51.png"}, + {name:"clothes_53",img: "resources/customisation/character_clothes/character_clothes52.png"}, + {name:"clothes_54",img: "resources/customisation/character_clothes/character_clothes53.png"}, + {name:"clothes_55",img: "resources/customisation/character_clothes/character_clothes54.png"}, + {name:"clothes_56",img: "resources/customisation/character_clothes/character_clothes55.png"}, + {name:"clothes_57",img: "resources/customisation/character_clothes/character_clothes56.png"}, + {name:"clothes_58",img: "resources/customisation/character_clothes/character_clothes57.png"}, + {name:"clothes_59",img: "resources/customisation/character_clothes/character_clothes58.png"}, + {name:"clothes_60",img: "resources/customisation/character_clothes/character_clothes59.png"}, + {name:"clothes_61",img: "resources/customisation/character_clothes/character_clothes60.png"}, + {name:"clothes_62",img: "resources/customisation/character_clothes/character_clothes61.png"}, + {name:"clothes_63",img: "resources/customisation/character_clothes/character_clothes62.png"}, + {name:"clothes_64",img: "resources/customisation/character_clothes/character_clothes63.png"}, + {name:"clothes_65",img: "resources/customisation/character_clothes/character_clothes64.png"}, + {name:"clothes_66",img: "resources/customisation/character_clothes/character_clothes65.png"}, + {name:"clothes_67",img: "resources/customisation/character_clothes/character_clothes66.png"}, + {name:"clothes_68",img: "resources/customisation/character_clothes/character_clothes67.png"}, + {name:"clothes_69",img: "resources/customisation/character_clothes/character_clothes68.png"}, + {name:"clothes_70",img: "resources/customisation/character_clothes/character_clothes69.png"}, +]; + +export const HATS_RESOURCES: Array = [ + {name: "hats_1", img: "resources/customisation/character_hats/character_hats1.png"}, + {name: "hats_2", img: "resources/customisation/character_hats/character_hats2.png"}, + {name: "hats_3", img: "resources/customisation/character_hats/character_hats3.png"}, + {name: "hats_4", img: "resources/customisation/character_hats/character_hats4.png"}, + {name: "hats_5", img: "resources/customisation/character_hats/character_hats5.png"}, + {name: "hats_6", img: "resources/customisation/character_hats/character_hats6.png"}, + {name: "hats_7", img: "resources/customisation/character_hats/character_hats7.png"}, + {name: "hats_8", img: "resources/customisation/character_hats/character_hats8.png"}, + {name: "hats_9", img: "resources/customisation/character_hats/character_hats9.png"}, + {name: "hats_10", img: "resources/customisation/character_hats/character_hats10.png"}, + {name: "hats_11", img: "resources/customisation/character_hats/character_hats11.png"}, + {name: "hats_12", img: "resources/customisation/character_hats/character_hats12.png"}, + {name: "hats_13", img: "resources/customisation/character_hats/character_hats13.png"}, + {name: "hats_14", img: "resources/customisation/character_hats/character_hats14.png"}, + {name: "hats_15", img: "resources/customisation/character_hats/character_hats15.png"}, + {name: "hats_16", img: "resources/customisation/character_hats/character_hats16.png"}, + {name: "hats_17", img: "resources/customisation/character_hats/character_hats17.png"}, + {name: "hats_18", img: "resources/customisation/character_hats/character_hats18.png"}, + {name: "hats_19", img: "resources/customisation/character_hats/character_hats19.png"}, + {name: "hats_20", img: "resources/customisation/character_hats/character_hats20.png"}, + {name: "hats_21", img: "resources/customisation/character_hats/character_hats21.png"}, + {name: "hats_22", img: "resources/customisation/character_hats/character_hats22.png"}, + {name: "hats_23", img: "resources/customisation/character_hats/character_hats23.png"}, + {name: "hats_24", img: "resources/customisation/character_hats/character_hats24.png"}, + {name: "hats_25", img: "resources/customisation/character_hats/character_hats25.png"}, + {name: "hats_26", img: "resources/customisation/character_hats/character_hats26.png"} +]; + +export const ACCESSORIES_RESOURCES: Array = [ + {name: "accessory_1", img: "resources/customisation/character_accessories/character_accessories1.png"}, + {name: "accessory_2", img: "resources/customisation/character_accessories/character_accessories2.png"}, + {name: "accessory_3", img: "resources/customisation/character_accessories/character_accessories3.png"}, + {name: "accessory_4", img: "resources/customisation/character_accessories/character_accessories4.png"}, + {name: "accessory_5", img: "resources/customisation/character_accessories/character_accessories5.png"}, + {name: "accessory_6", img: "resources/customisation/character_accessories/character_accessories6.png"}, + {name: "accessory_7", img: "resources/customisation/character_accessories/character_accessories7.png"}, + {name: "accessory_8", img: "resources/customisation/character_accessories/character_accessories8.png"}, + {name: "accessory_9", img: "resources/customisation/character_accessories/character_accessories9.png"}, + {name: "accessory_10", img: "resources/customisation/character_accessories/character_accessories10.png"}, + {name: "accessory_11", img: "resources/customisation/character_accessories/character_accessories11.png"}, + {name: "accessory_12", img: "resources/customisation/character_accessories/character_accessories12.png"}, + {name: "accessory_13", img: "resources/customisation/character_accessories/character_accessories13.png"}, + {name: "accessory_14", img: "resources/customisation/character_accessories/character_accessories14.png"}, + {name: "accessory_15", img: "resources/customisation/character_accessories/character_accessories15.png"}, + {name: "accessory_16", img: "resources/customisation/character_accessories/character_accessories16.png"}, + {name: "accessory_17", img: "resources/customisation/character_accessories/character_accessories17.png"}, + {name: "accessory_18", img: "resources/customisation/character_accessories/character_accessories18.png"}, + {name: "accessory_19", img: "resources/customisation/character_accessories/character_accessories19.png"}, + {name: "accessory_20", img: "resources/customisation/character_accessories/character_accessories20.png"}, + {name: "accessory_21", img: "resources/customisation/character_accessories/character_accessories21.png"}, + {name: "accessory_22", img: "resources/customisation/character_accessories/character_accessories22.png"}, + {name: "accessory_23", img: "resources/customisation/character_accessories/character_accessories23.png"}, + {name: "accessory_24", img: "resources/customisation/character_accessories/character_accessories24.png"}, + {name: "accessory_25", img: "resources/customisation/character_accessories/character_accessories25.png"}, + {name: "accessory_26", img: "resources/customisation/character_accessories/character_accessories26.png"}, + {name: "accessory_27", img: "resources/customisation/character_accessories/character_accessories27.png"}, + {name: "accessory_28", img: "resources/customisation/character_accessories/character_accessories28.png"}, + {name: "accessory_29", img: "resources/customisation/character_accessories/character_accessories29.png"}, + {name: "accessory_30", img: "resources/customisation/character_accessories/character_accessories30.png"}, + {name: "accessory_31", img: "resources/customisation/character_accessories/character_accessories31.png"}, + {name: "accessory_32", img: "resources/customisation/character_accessories/character_accessories32.png"} +]; + +export const LAYERS: Array> = [ + COLOR_RESOURCES, + EYES_RESOURCES, + HAIR_RESOURCES, + CLOTHES_RESOURCES, + HATS_RESOURCES, + ACCESSORIES_RESOURCES +]; diff --git a/front/src/Phaser/Game/AddPlayerInterface.ts b/front/src/Phaser/Game/AddPlayerInterface.ts index 9570c765..a3f50de3 100644 --- a/front/src/Phaser/Game/AddPlayerInterface.ts +++ b/front/src/Phaser/Game/AddPlayerInterface.ts @@ -3,6 +3,6 @@ import {PointInterface} from "../../Connection"; export interface AddPlayerInterface { userId: string; name: string; - character: string; + characterLayers: string[]; position: PointInterface; } diff --git a/front/src/Phaser/Game/GameManager.ts b/front/src/Phaser/Game/GameManager.ts index 04cb1bbe..3dcf3474 100644 --- a/front/src/Phaser/Game/GameManager.ts +++ b/front/src/Phaser/Game/GameManager.ts @@ -14,11 +14,18 @@ export interface HasMovedEvent { export class GameManager { private playerName: string; - private characterUserSelected: string; + private characterLayers: string[]; - public storePlayerDetails(name: string, characterUserSelected : string): void { + public setPlayerName(name: string): void { this.playerName = name; - this.characterUserSelected = characterUserSelected; + } + + public setCharacterUserSelected(characterUserSelected : string): void { + this.characterLayers = [characterUserSelected]; + } + + public setCharacterLayers(layers: string[]) { + this.characterLayers = layers; } loadStartMap() : Promise { @@ -35,8 +42,8 @@ export class GameManager { return this.playerName; } - getCharacterSelected(): string { - return this.characterUserSelected; + getCharacterSelected(): string[] { + return this.characterLayers; } loadMap(mapUrl: string, scene: Phaser.Scenes.ScenePlugin, instance: string): string { diff --git a/front/src/Phaser/Game/GameScene.ts b/front/src/Phaser/Game/GameScene.ts index a46672ee..8034bfbe 100644 --- a/front/src/Phaser/Game/GameScene.ts +++ b/front/src/Phaser/Game/GameScene.ts @@ -166,7 +166,7 @@ export class GameScene extends Phaser.Scene { connection.onUserJoins((message: MessageUserJoined) => { const userMessage: AddPlayerInterface = { userId: message.userId, - character: message.character, + characterLayers: message.characterLayers, name: message.name, position: message.position } @@ -704,7 +704,7 @@ export class GameScene extends Phaser.Scene { addPlayerData.position.x, addPlayerData.position.y, addPlayerData.name, - addPlayerData.character, + addPlayerData.characterLayers, addPlayerData.position.direction, addPlayerData.position.moving ); diff --git a/front/src/Phaser/Login/CustomizeScene.ts b/front/src/Phaser/Login/CustomizeScene.ts new file mode 100644 index 00000000..7a1dd12e --- /dev/null +++ b/front/src/Phaser/Login/CustomizeScene.ts @@ -0,0 +1,285 @@ +import {EnableCameraSceneName} from "./EnableCameraScene"; +import {TextField} from "../Components/TextField"; +import Image = Phaser.GameObjects.Image; +import Rectangle = Phaser.GameObjects.Rectangle; +import {LAYERS} from "../Entity/body_character"; +import Sprite = Phaser.GameObjects.Sprite; +import Container = Phaser.GameObjects.Container; +import {gameManager} from "../Game/GameManager"; + +export const CustomizeSceneName = "CustomizeScene"; + +enum CustomizeTextures{ + icon = "icon", + arrowRight = "arrow_right", + mainFont = "main_font", + arrowUp = "arrow_up", +} + +export class CustomizeScene extends Phaser.Scene { + + private textField: TextField; + private enterField: TextField; + + private arrowRight: Image; + private arrowLeft: Image; + + private arrowDown: Image; + private arrowUp: Image; + + private Rectangle: Rectangle; + + private logo: Image; + + private selectedLayers: Array = [0]; + private containersRow: Array> = new Array>(); + private activeRow = 0; + + private repositionCallback: (this: Window, ev: UIEvent) => void; + + constructor() { + super({ + key: CustomizeSceneName + }); + } + + preload() { + this.load.image(CustomizeTextures.arrowRight, "resources/objects/arrow_right.png"); + this.load.image(CustomizeTextures.icon, "resources/logos/tcm_full.png"); + this.load.image(CustomizeTextures.arrowUp, "resources/objects/arrow_up.png"); + this.load.bitmapFont(CustomizeTextures.mainFont, 'resources/fonts/arcade.png', 'resources/fonts/arcade.xml'); + + //load all the png files + for (let j = 0; j < LAYERS.length; j++) { + for (let i = 0; i < LAYERS[j].length; i++) { + this.load.spritesheet( + LAYERS[j][i].name, + LAYERS[j][i].img, + {frameWidth: 32, frameHeight: 32} + ) + } + } + } + + create() { + this.textField = new TextField(this, this.game.renderer.width / 2, 30, 'Customize your own Avatar!'); + this.textField.setOrigin(0.5).setCenterAlign(); + this.textField.setVisible(true); + + this.enterField = new TextField(this, this.game.renderer.width / 2, 500, 'you can start the game by pressing SPACE..'); + this.enterField.setOrigin(0.5).setCenterAlign(); + this.enterField.setVisible(true); + + this.logo = new Image(this, this.game.renderer.width - 30, this.game.renderer.height - 20, CustomizeTextures.icon); + this.add.existing(this.logo); + + + this.arrowRight = new Image(this, this.game.renderer.width*0.9, this.game.renderer.height/2, CustomizeTextures.arrowRight); + this.add.existing(this.arrowRight); + + this.arrowLeft = new Image(this, this.game.renderer.width/9, this.game.renderer.height/2, CustomizeTextures.arrowRight); + this.arrowLeft.flipX = true; + this.add.existing(this.arrowLeft); + + + this.Rectangle = this.add.rectangle(this.cameras.main.worldView.x + this.cameras.main.width / 2, this.cameras.main.worldView.y + this.cameras.main.height / 2, 32, 33) + this.Rectangle.setStrokeStyle(2, 0xFFFFFF); + this.add.existing(this.Rectangle); + + this.arrowDown = new Image(this, this.game.renderer.width - 30, 100, CustomizeTextures.arrowUp); + this.arrowDown.flipY = true; + this.add.existing(this.arrowDown); + + this.arrowUp = new Image(this, this.game.renderer.width - 30, 60, CustomizeTextures.arrowUp); + this.add.existing(this.arrowUp); + + this.createCustomizeLayer(0, 0, 0); + this.createCustomizeLayer(0, 0, 1); + this.createCustomizeLayer(0, 0, 2); + this.createCustomizeLayer(0, 0, 3); + this.createCustomizeLayer(0, 0, 4); + this.createCustomizeLayer(0, 0, 5); + + this.moveLayers(); + this.input.keyboard.on('keyup-ENTER', () => { + const layers: string[] = []; + let i = 0; + for (const layerItem of this.selectedLayers) { + console.log(i, layerItem, LAYERS); + if (layerItem !== undefined) { + layers.push(LAYERS[i][layerItem].name); + } + i++; + } + + console.log(layers); + gameManager.setCharacterLayers(layers); + + return this.scene.start(EnableCameraSceneName); + }); + + this.input.keyboard.on('keydown-RIGHT', () => { + if (this.selectedLayers[this.activeRow] === undefined) { + this.selectedLayers[this.activeRow] = 0; + } + if (this.selectedLayers[this.activeRow] < LAYERS[this.activeRow].length - 1) { + this.selectedLayers[this.activeRow]++; + this.moveLayers(); + this.updateSelectedLayer(); + } + }); + + this.input.keyboard.on('keydown-LEFT', () => { + if (this.selectedLayers[this.activeRow] > 0) { + if (this.selectedLayers[this.activeRow] === 0) { + delete this.selectedLayers[this.activeRow]; + } else { + this.selectedLayers[this.activeRow]--; + } + this.moveLayers(); + this.updateSelectedLayer(); + } + }); + + this.input.keyboard.on('keydown-DOWN', () => { + if (this.activeRow < LAYERS.length - 1) { + this.activeRow++; + this.moveLayers(); + } + }); + + this.input.keyboard.on('keydown-UP', () => { + if (this.activeRow > 0) { + this.activeRow--; + this.moveLayers(); + } + }); + + this.repositionCallback = this.reposition.bind(this); + window.addEventListener('resize', this.repositionCallback); + + } + update(time: number, delta: number): void { + super.update(time, delta); + this.enterField.setVisible(!!(Math.floor(time / 500) % 2)); + } + + /** + * @param x, the layer's vertical position + * @param y, the layer's horizontal position + * @param layerNumber, index of the LAYERS array + * create the layer and display it on the scene + */ + private createCustomizeLayer(x: number, y: number, layerNumber: number): void { + this.containersRow[layerNumber] = new Array(); + let alpha = 0; + let layerPosX = 0; + for (let i = 0; i < LAYERS[layerNumber].length; i++) { + const container = this.generateCharacter(300 + x + layerPosX, y, layerNumber, i); + + this.containersRow[layerNumber][i] = container; + this.add.existing(container); + layerPosX += 30; + alpha += 0.1; + } + } + + /** + * Generates a character from the current selected items BUT replaces + * one layer item with an item we pass in parameter. + * + * Current selected items are fetched from this.selectedLayers + * + * @param x, + * @param y, + * @param layerNumber, The selected layer number (0 for body...) + * @param selectedItem, The number of the item select (0 for black body...) + */ + private generateCharacter(x: number, y: number, layerNumber: number, selectedItem: number) { + return new Container(this, x, y,this.getContainerChildren(layerNumber,selectedItem)); + } + + private getContainerChildren(layerNumber: number, selectedItem: number): Array { + const children: Array = new Array(); + for (let j = 0; j <= layerNumber; j++) { + if (j === layerNumber) { + children.push(this.generateLayers(0, 0, LAYERS[j][selectedItem].name)); + } else { + const layer = this.selectedLayers[j]; + if (layer === undefined) { + continue; + } + children.push(this.generateLayers(0, 0, LAYERS[j][layer].name)); + } + } + return children; + } + + /** + * Move the layer left, right, up and down and update the selected layer + */ + private moveLayers(): void { + const screenCenterX = this.cameras.main.worldView.x + this.cameras.main.width / 2; + const screenCenterY = this.cameras.main.worldView.y + this.cameras.main.height / 2; + const screenWidth = this.game.renderer.width; + const screenHeight = this.game.renderer.height; + for (let i = 0; i < this.containersRow.length; i++) { + for (let j = 0; j < this.containersRow[i].length; j++) { + let selectedX = this.selectedLayers[i]; + if (selectedX === undefined) { + selectedX = 0; + } + this.containersRow[i][j].x = screenCenterX + (j - selectedX) * 40; + this.containersRow[i][j].y = screenCenterY + (i - this.activeRow) * 40; + const alpha1 = Math.abs(selectedX - j)*47*2/screenWidth; + const alpha2 = Math.abs(this.activeRow - i)*49*2/screenHeight; + this.containersRow[i][j].setAlpha((1 -alpha1)*(1 - alpha2)); + } + + } + } + + /** + * @param x, the sprite's vertical position + * @param y, the sprites's horizontal position + * @param name, the sprite's name + * @return a new sprite + */ + private generateLayers(x: number, y: number, name: string): Sprite { + return new Sprite(this, x, y, name); + } + + private updateSelectedLayer() { + for(let i = 0; i < this.containersRow.length; i++){ + for(let j = 0; j < this.containersRow[i].length; j++){ + const children = this.getContainerChildren(i, j); + this.containersRow[i][j].removeAll(true); + this.containersRow[i][j].add(children); + } + } + } + + private reposition() { + this.moveLayers(); + + this.Rectangle.x = this.cameras.main.worldView.x + this.cameras.main.width / 2; + this.Rectangle.y = this.cameras.main.worldView.y + this.cameras.main.height / 2; + + this.textField.x = this.game.renderer.width/2; + + this.logo.x = this.game.renderer.width - 30; + this.logo.y = this.game.renderer.height - 20; + + this.arrowUp.x = this.game.renderer.width - 30; + this.arrowUp.y = 60; + + this.arrowDown.x = this.game.renderer.width - 30; + this.arrowDown.y = 100; + + this.arrowLeft.x = this.game.renderer.width/9; + this.arrowLeft.y = this.game.renderer.height/2; + + this.arrowRight.x = this.game.renderer.width*0.9; + this.arrowRight.y = this.game.renderer.height/2; + } +} diff --git a/front/src/Phaser/Login/LoginScene.ts b/front/src/Phaser/Login/LoginScene.ts index 5177659b..308ba3ae 100644 --- a/front/src/Phaser/Login/LoginScene.ts +++ b/front/src/Phaser/Login/LoginScene.ts @@ -6,7 +6,7 @@ import Image = Phaser.GameObjects.Image; import Rectangle = Phaser.GameObjects.Rectangle; import {PLAYER_RESOURCES, PlayerResourceDescriptionInterface} from "../Entity/Character"; import {cypressAsserter} from "../../Cypress/CypressAsserter"; -import {SelectCharacterSceneInitDataInterface, SelectCharacterSceneName} from "./SelectCharacterScene"; +import {SelectCharacterSceneName} from "./SelectCharacterScene"; //todo: put this constants in a dedicated file export const LoginSceneName = "LoginScene"; @@ -89,6 +89,8 @@ export class LoginScene extends Phaser.Scene { } private login(name: string): void { - this.scene.start(SelectCharacterSceneName, { name } as SelectCharacterSceneInitDataInterface); + gameManager.setPlayerName(name); + + this.scene.start(SelectCharacterSceneName); } } diff --git a/front/src/Phaser/Login/SelectCharacterScene.ts b/front/src/Phaser/Login/SelectCharacterScene.ts index ddfd5c3b..535529ee 100644 --- a/front/src/Phaser/Login/SelectCharacterScene.ts +++ b/front/src/Phaser/Login/SelectCharacterScene.ts @@ -1,23 +1,22 @@ import {gameManager} from "../Game/GameManager"; import {TextField} from "../Components/TextField"; -import {ClickButton} from "../Components/ClickButton"; import Image = Phaser.GameObjects.Image; import Rectangle = Phaser.GameObjects.Rectangle; import {PLAYER_RESOURCES, PlayerResourceDescriptionInterface} from "../Entity/Character"; import {GameSceneInitInterface} from "../Game/GameScene"; import {StartMapInterface} from "../../Connection"; import {EnableCameraSceneName} from "./EnableCameraScene"; +import {CustomizeSceneName} from "./CustomizeScene"; + //todo: put this constants in a dedicated file export const SelectCharacterSceneName = "SelectCharacterScene"; enum LoginTextures { playButton = "play_button", icon = "icon", - mainFont = "main_font" -} - -export interface SelectCharacterSceneInitDataInterface { - name: string + mainFont = "main_font", + customizeButton = "customize_button", + customizeButtonSelected = "customize_button_selected" } export class SelectCharacterScene extends Phaser.Scene { @@ -25,12 +24,13 @@ export class SelectCharacterScene extends Phaser.Scene { private textField: TextField; private pressReturnField: TextField; private logo: Image; - private loginName: string; + private customizeButton: Image; + private customizeButtonSelected: Image; private selectedRectangle: Rectangle; private selectedRectangleXPos = 0; // Number of the character selected in the rows private selectedRectangleYPos = 0; // Number of the character selected in the columns - private selectedPlayer: Phaser.Physics.Arcade.Sprite; + private selectedPlayer: Phaser.Physics.Arcade.Sprite|null; // null if we are selecting the "customize" option private players: Array = new Array(); constructor() { @@ -39,10 +39,6 @@ export class SelectCharacterScene extends Phaser.Scene { }); } - init({ name }: SelectCharacterSceneInitDataInterface) { - this.loginName = name; - } - preload() { this.load.image(LoginTextures.playButton, "resources/objects/play_button.png"); this.load.image(LoginTextures.icon, "resources/logos/tcm_full.png"); @@ -56,13 +52,15 @@ export class SelectCharacterScene extends Phaser.Scene { {frameWidth: 32, frameHeight: 32} ); }); + this.load.image(LoginTextures.customizeButton, 'resources/objects/customize.png'); + this.load.image(LoginTextures.customizeButtonSelected, 'resources/objects/customize_selected.png'); } create() { this.textField = new TextField(this, this.game.renderer.width / 2, 50, 'Select your character'); this.textField.setOrigin(0.5).setCenterAlign() - this.pressReturnField = new TextField(this, this.game.renderer.width / 2, 230, 'Press enter to start'); + this.pressReturnField = new TextField(this, this.game.renderer.width / 2, 256, 'Press enter to start'); this.pressReturnField.setOrigin(0.5).setCenterAlign() const rectangleXStart = this.game.renderer.width / 2 - (this.nbCharactersPerRow / 2) * 32 + 16; @@ -73,7 +71,7 @@ export class SelectCharacterScene extends Phaser.Scene { this.add.existing(this.logo); this.input.keyboard.on('keyup-ENTER', () => { - return this.login(this.loginName); + return this.nextScene(); }); this.input.keyboard.on('keydown-RIGHT', () => { @@ -89,7 +87,7 @@ export class SelectCharacterScene extends Phaser.Scene { this.updateSelectedPlayer(); }); this.input.keyboard.on('keydown-DOWN', () => { - if (this.selectedRectangleYPos < Math.ceil(PLAYER_RESOURCES.length / this.nbCharactersPerRow) - 1) { + if (this.selectedRectangleYPos < Math.ceil(PLAYER_RESOURCES.length / this.nbCharactersPerRow)) { this.selectedRectangleYPos++; } this.updateSelectedPlayer(); @@ -117,10 +115,15 @@ export class SelectCharacterScene extends Phaser.Scene { this.pressReturnField.setVisible(!!(Math.floor(time / 500) % 2)); } - private login(name: string): void { - gameManager.storePlayerDetails(name, this.selectedPlayer.texture.key); + private nextScene(): void { - this.scene.start(EnableCameraSceneName); + if (this.selectedPlayer !== null) { + gameManager.setCharacterUserSelected(this.selectedPlayer.texture.key); + + this.scene.start(EnableCameraSceneName); + } else { + this.scene.start(CustomizeSceneName); + } // Do we have a start URL in the address bar? If so, let's redirect to this address /*const instanceAndMapUrl = this.findMapUrl(); @@ -188,6 +191,20 @@ export class SelectCharacterScene extends Phaser.Scene { }); this.players.push(player); } + + this.customizeButton = new Image(this, this.game.renderer.width / 2, 90 + 32 * 4 + 6, LoginTextures.customizeButton); + this.customizeButton.setOrigin(0.5, 0.5); + this.add.existing(this.customizeButton); + this.customizeButtonSelected = new Image(this, this.game.renderer.width / 2, 90 + 32 * 4 + 6, LoginTextures.customizeButtonSelected); + this.customizeButtonSelected.setOrigin(0.5, 0.5); + this.customizeButtonSelected.setVisible(false); + this.add.existing(this.customizeButtonSelected); + + this.customizeButton.setInteractive().on("pointerdown", () => { + this.selectedRectangleYPos = Math.ceil(PLAYER_RESOURCES.length / this.nbCharactersPerRow); + this.updateSelectedPlayer(); + }); + this.selectedPlayer = this.players[0]; this.selectedPlayer.play(PLAYER_RESOURCES[0].name); } @@ -203,10 +220,22 @@ export class SelectCharacterScene extends Phaser.Scene { } private updateSelectedPlayer(): void { - this.selectedPlayer.anims.pause(); + this.selectedPlayer?.anims.pause(); + // If we selected the customize button + if (this.selectedRectangleYPos === Math.ceil(PLAYER_RESOURCES.length / this.nbCharactersPerRow)) { + this.selectedPlayer = null; + this.selectedRectangle.setVisible(false); + this.customizeButtonSelected.setVisible(true); + this.customizeButton.setVisible(false); + return; + } + this.customizeButtonSelected.setVisible(false); + this.customizeButton.setVisible(true); const [x, y] = this.getCharacterPosition(this.selectedRectangleXPos, this.selectedRectangleYPos); + this.selectedRectangle.setVisible(true); this.selectedRectangle.setX(x); this.selectedRectangle.setY(y); + this.selectedRectangle.setSize(32, 32); const playerNumber = this.selectedRectangleXPos + this.selectedRectangleYPos * this.nbCharactersPerRow; const player = this.players[playerNumber]; player.play(PLAYER_RESOURCES[playerNumber].name); diff --git a/front/src/Phaser/Player/Player.ts b/front/src/Phaser/Player/Player.ts index f912d110..b9490c8d 100644 --- a/front/src/Phaser/Player/Player.ts +++ b/front/src/Phaser/Player/Player.ts @@ -21,17 +21,17 @@ export class Player extends Character implements CurrentGamerInterface { x: number, y: number, name: string, - PlayerTexture: string, + PlayerTextures: string[], direction: string, moving: boolean ) { - super(Scene, x, y, PlayerTexture, name, direction, moving, 1); + super(Scene, x, y, PlayerTextures, name, direction, moving, 1); //create input to move this.userInputManager = new UserInputManager(Scene); //the current player model should be push away by other players to prevent conflict - this.setImmovable(false); + this.getBody().setImmovable(false); } moveUser(delta: number): void { diff --git a/front/src/Phaser/Reconnecting/FourOFourScene.ts b/front/src/Phaser/Reconnecting/FourOFourScene.ts index 4fe4ff24..8c71ae65 100644 --- a/front/src/Phaser/Reconnecting/FourOFourScene.ts +++ b/front/src/Phaser/Reconnecting/FourOFourScene.ts @@ -1,7 +1,6 @@ import {TextField} from "../Components/TextField"; import Image = Phaser.GameObjects.Image; import Sprite = Phaser.GameObjects.Sprite; -import {SelectCharacterSceneInitDataInterface} from "../Login/SelectCharacterScene"; import Text = Phaser.GameObjects.Text; export const FourOFourSceneName = "FourOFourScene"; diff --git a/front/src/index.ts b/front/src/index.ts index eb63b6d0..7634351f 100644 --- a/front/src/index.ts +++ b/front/src/index.ts @@ -8,13 +8,14 @@ import {gameManager} from "./Phaser/Game/GameManager"; import {SelectCharacterScene} from "./Phaser/Login/SelectCharacterScene"; import {EnableCameraScene} from "./Phaser/Login/EnableCameraScene"; import {FourOFourScene} from "./Phaser/Reconnecting/FourOFourScene"; +import {CustomizeScene} from "./Phaser/Login/CustomizeScene"; const config: GameConfig = { title: "Office game", width: window.innerWidth / RESOLUTION, height: window.innerHeight / RESOLUTION, parent: "game", - scene: [LoginScene, SelectCharacterScene, EnableCameraScene, ReconnectingScene, FourOFourScene], + scene: [LoginScene, SelectCharacterScene, EnableCameraScene, ReconnectingScene, FourOFourScene, CustomizeScene], zoom: RESOLUTION, physics: { default: "arcade", diff --git a/front/webpack.config.js b/front/webpack.config.js index e162b4f8..61424eeb 100644 --- a/front/webpack.config.js +++ b/front/webpack.config.js @@ -43,5 +43,6 @@ module.exports = { Phaser: 'phaser' }), new webpack.EnvironmentPlugin(['API_URL', 'DEBUG_MODE']) - ] + ], + };