diff --git a/env.d.ts b/env.d.ts
index 11f02fe..773d2bb 100644
--- a/env.d.ts
+++ b/env.d.ts
@@ -1 +1,45 @@
///
+export type User = {
+ id: number;
+ username: string;
+ password: string;
+ characters: Character[];
+};
+
+export type Character = {
+ id: number;
+ userId: number;
+ user: User;
+ name: string;
+ hitpoints: number;
+ mana: number;
+ level: number;
+ experience: number;
+ role: string;
+ position_x: number;
+ position_y: number;
+ rotation: number;
+ zoneId: number;
+ zone: Zone;
+ chats: Chat[];
+};
+
+export type Zone = {
+ id: number;
+ name: string;
+ width: number;
+ height: number;
+ tiles: Record;
+ characters: Character[];
+ chats: Chat[];
+};
+
+export type Chat = {
+ id: number;
+ characterId: number;
+ character: Character;
+ zoneId: number;
+ zone: Zone;
+ message: string;
+ createdAt: Date;
+};
diff --git a/package-lock.json b/package-lock.json
index a17990f..da8b4aa 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1746,9 +1746,9 @@
"license": "MIT"
},
"node_modules/@types/jsdom": {
- "version": "21.1.6",
- "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.6.tgz",
- "integrity": "sha512-/7kkMsC+/kMs7gAYmmBR9P0vGTnOoLhQhyhQJSlXGI5bzTHp6xdo0TtKWQAsz6pmSAeVqKSbqeyP6hytqr9FDw==",
+ "version": "21.1.7",
+ "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.7.tgz",
+ "integrity": "sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1765,9 +1765,9 @@
"license": "MIT"
},
"node_modules/@types/node": {
- "version": "20.12.12",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz",
- "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==",
+ "version": "20.12.13",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.13.tgz",
+ "integrity": "sha512-gBGeanV41c1L171rR7wjbMiEpEI/l5XFQdLLfhr/REwpgDy/4U8y89+i8kRiLzDyZdOkXh+cRaTetUnCYutoXA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2480,9 +2480,9 @@
}
},
"node_modules/@vueuse/core/node_modules/vue-demi": {
- "version": "0.14.7",
- "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.7.tgz",
- "integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==",
+ "version": "0.14.8",
+ "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz",
+ "integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==",
"hasInstallScript": true,
"license": "MIT",
"bin": {
@@ -2572,9 +2572,9 @@
}
},
"node_modules/@vueuse/integrations/node_modules/vue-demi": {
- "version": "0.14.7",
- "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.7.tgz",
- "integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==",
+ "version": "0.14.8",
+ "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz",
+ "integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==",
"hasInstallScript": true,
"license": "MIT",
"bin": {
@@ -2619,9 +2619,9 @@
}
},
"node_modules/@vueuse/shared/node_modules/vue-demi": {
- "version": "0.14.7",
- "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.7.tgz",
- "integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==",
+ "version": "0.14.8",
+ "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz",
+ "integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==",
"hasInstallScript": true,
"license": "MIT",
"bin": {
@@ -3401,9 +3401,9 @@
}
},
"node_modules/electron-to-chromium": {
- "version": "1.4.783",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.783.tgz",
- "integrity": "sha512-bT0jEz/Xz1fahQpbZ1D7LgmPYZ3iHVY39NcWWro1+hA2IvjiPeaXtfSqrQ+nXjApMvQRE2ASt1itSLRrebHMRQ==",
+ "version": "1.4.787",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.787.tgz",
+ "integrity": "sha512-d0EFmtLPjctczO3LogReyM2pbBiiZbnsKnGF+cdZhsYzHm/A0GV7W94kqzLD8SN4O3f3iHlgLUChqghgyznvCQ==",
"dev": true,
"license": "ISC"
},
@@ -5525,9 +5525,9 @@
}
},
"node_modules/pinia/node_modules/vue-demi": {
- "version": "0.14.7",
- "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.7.tgz",
- "integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==",
+ "version": "0.14.8",
+ "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz",
+ "integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==",
"hasInstallScript": true,
"license": "MIT",
"bin": {
@@ -5956,9 +5956,9 @@
"license": "MIT"
},
"node_modules/sass": {
- "version": "1.77.2",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.2.tgz",
- "integrity": "sha512-eb4GZt1C3avsX3heBNlrc7I09nyT00IUuo4eFhAbeXWU2fvA7oXI53SxODVAA+zgZCk9aunAZgO+losjR3fAwA==",
+ "version": "1.77.3",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.3.tgz",
+ "integrity": "sha512-WJHo+jmFp0dwRuymPmIovuxHaBntcCyja5hCB0yYY9wWrViEp4kF5Cdai98P72v6FzroPuABqu+ddLMbQWmwzA==",
"dev": true,
"license": "MIT",
"dependencies": {
diff --git a/src/components/screens/Characters.vue b/src/components/screens/Characters.vue
index ad882b3..23c3a62 100644
--- a/src/components/screens/Characters.vue
+++ b/src/components/screens/Characters.vue
@@ -5,7 +5,7 @@
Select your character
-
+
@@ -28,6 +28,7 @@
import { useSocketStore } from '@/stores/socket'
import { ref } from 'vue'
import Create from '@/components/screens/partials/characters/Create.vue'
+import type { Character } from '../../../env'
const socket = useSocketStore();
const characters = ref([]);
@@ -37,6 +38,17 @@ socket.getConnection.on('character:list', (data: any) => {
console.log(data);
characters.value = data;
});
+
+const selected_character = ref(null);
+function select_character() {
+ console.log(selected_character.value);
+ if (selected_character.value) {
+ socket.getConnection.emit('character:connect', {character_id: selected_character.value});
+ socket.getConnection.on('character:connect', (data: Character) => {
+ socket.setCharacter(data);
+ });
+ }
+}