forked from noxious/client
Worked on creating new characters
This commit is contained in:
parent
da728a1fc6
commit
8cd0e9254a
@ -49,12 +49,12 @@ watch (() => zoneStore.tiles, () => { // @TODO : change to tiles for when loadin
|
||||
|
||||
// Load the zone from the server
|
||||
onBeforeMount(() => {
|
||||
socket.connection?.emit('character:connect');
|
||||
socket.connection?.emit('character:zone:load');
|
||||
socket.getConnection.emit('character:connect');
|
||||
socket.getConnection.emit('character:zone:load');
|
||||
})
|
||||
|
||||
// Listen for the zone event from the server and load the zone
|
||||
socket.connection?.on('character:zone:load', (data) => {
|
||||
socket.getConnection.on('character:zone:load', (data) => {
|
||||
console.log('character:zone:load', data);
|
||||
zoneStore.loadTiles(data.zone.tiles)
|
||||
/**
|
||||
@ -66,22 +66,22 @@ socket.connection?.on('character:zone:load', (data) => {
|
||||
// console.log(data.players[1]); // key is user id
|
||||
//
|
||||
// // remove self from the players list
|
||||
// delete data.players[socket.connection?.id];
|
||||
// delete data.players[socket.getConnection.id];
|
||||
//
|
||||
// zoneStore.addPlayers(data.players);
|
||||
})
|
||||
|
||||
// Listen for player join events
|
||||
socket.connection?.on('player_join', (data) => {
|
||||
socket.getConnection.on('player_join', (data) => {
|
||||
console.log('player_join', data)
|
||||
if (data.id === socket.connection?.id) {
|
||||
if (data.id === socket.getConnection.id) {
|
||||
console.log('self');
|
||||
return;
|
||||
}
|
||||
zoneStore.addPlayer(data);
|
||||
})
|
||||
|
||||
socket.connection?.on('ping', (data) => {
|
||||
socket.getConnection.on('ping', (data) => {
|
||||
console.log('ping', data)
|
||||
})
|
||||
|
||||
|
@ -1,32 +1,42 @@
|
||||
<template>
|
||||
<div>
|
||||
<!-- radio controls with characters that belongs to user in plain html -->
|
||||
<div id="characters-wrapper">
|
||||
<div id="characters">
|
||||
<h1>Select your character</h1>
|
||||
<div>
|
||||
<input type="radio" id="character1" name="character" value="character1">
|
||||
<label for="character1">
|
||||
Weed
|
||||
</label>
|
||||
<input type="radio" id="character2" name="character" value="character2">
|
||||
<label for="character2">
|
||||
Ethereal
|
||||
</label>
|
||||
<div v-for="character in characters" :key="character.id">
|
||||
<input type="radio" :id="character.id" name="character" :value="character.id">
|
||||
<label :for="character.id">
|
||||
<img src="/assets/avatar/default/base_right_down.png" />
|
||||
{{ character.name }}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button>Play</button>
|
||||
|
||||
<hr>
|
||||
<Create />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { useSocketStore } from '@/stores/socket'
|
||||
import { ref } from 'vue'
|
||||
import Create from '@/components/screens/partials/characters/Create.vue'
|
||||
|
||||
const socket = useSocketStore();
|
||||
socket.connection.emit('characters:get');
|
||||
const characters = ref([]);
|
||||
socket.getConnection.emit('character:list');
|
||||
|
||||
socket.getConnection.on('character:list', (data: any) => {
|
||||
console.log(data);
|
||||
characters.value = data;
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
|
@ -28,7 +28,7 @@
|
||||
<script setup>
|
||||
import { onMounted, ref } from 'vue'
|
||||
import { useSocketStore } from '@/stores/socket.ts'
|
||||
import {login, register} from '@/services/authService'
|
||||
import {login, register} from '@/services/authentication.ts'
|
||||
import { useCookies } from '@vueuse/integrations/useCookies'
|
||||
|
||||
const bgm = ref('bgm');
|
||||
|
28
src/components/screens/partials/characters/Create.vue
Normal file
28
src/components/screens/partials/characters/Create.vue
Normal file
@ -0,0 +1,28 @@
|
||||
<template>
|
||||
<form method="post" @submit.prevent="create">
|
||||
<h1>Create your character</h1>
|
||||
<div>
|
||||
<label for="name">Name</label>
|
||||
<input v-model="name" type="text" name="name" id="name">
|
||||
</div>
|
||||
<div>
|
||||
<button>Create</button>
|
||||
</div>
|
||||
</form>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { useSocketStore } from '@/stores/socket'
|
||||
import { ref, defineEmits } from 'vue'
|
||||
|
||||
const socket = useSocketStore();
|
||||
|
||||
// const emit = defineEmits(['character:create']);
|
||||
let name: any = ref('');
|
||||
|
||||
function create() {
|
||||
socket.getConnection.emit('character:create', { name: name.value });
|
||||
// emit('character:create');
|
||||
name.value = '';
|
||||
}
|
||||
</script>
|
@ -44,7 +44,7 @@ function onPointerClick(pointer: Phaser.Input.Pointer) {
|
||||
position.x = worldPoint.x + config.tile_size.y;
|
||||
position.y = worldPoint.y;
|
||||
|
||||
socket.connection?.emit('move', { x: position.x, y: position.y });
|
||||
socket.getConnection.emit('move', { x: position.x, y: position.y });
|
||||
}
|
||||
|
||||
//Directions for player sprites + animations
|
||||
@ -57,14 +57,13 @@ function onPointerClick(pointer: Phaser.Input.Pointer) {
|
||||
} else if (px > 0 && py < 0) {
|
||||
console.log('top right');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (!props.player) {
|
||||
scene.input.on(Phaser.Input.Events.POINTER_UP, onPointerClick);
|
||||
}
|
||||
|
||||
socket.connection?.on('player_moved', (data) => {
|
||||
socket.getConnection.on('player_moved', (data: any) => {
|
||||
console.log('player_moved', data);
|
||||
|
||||
if (data.id !== props.player?.id) {
|
||||
|
@ -9,7 +9,7 @@ export const useSocketStore: StoreDefinition<any> = defineStore('socket', {
|
||||
character: null as any,
|
||||
}),
|
||||
getters: {
|
||||
getConnection: (state: any) => state.connection,
|
||||
getConnection: (state: any) => state.connection as Socket,
|
||||
getCharacter: (state: any) => state.character,
|
||||
},
|
||||
actions: {
|
||||
|
9
src/types/TCharacter.ts
Normal file
9
src/types/TCharacter.ts
Normal file
@ -0,0 +1,9 @@
|
||||
import { z } from "zod";
|
||||
|
||||
const CharacterObject = z.object({
|
||||
name: z.string(),
|
||||
});
|
||||
|
||||
type TCharacter = z.infer<typeof CharacterObject>;
|
||||
|
||||
export { CharacterObject, type TCharacter };
|
@ -4,6 +4,6 @@ const UserObject = z.object({
|
||||
username: z.string(),
|
||||
});
|
||||
|
||||
type UserType = z.infer<typeof UserObject>;
|
||||
type TUser = z.infer<typeof UserObject>;
|
||||
|
||||
export { UserObject, type UserType };
|
||||
export { UserObject, type TUser };
|
Loading…
x
Reference in New Issue
Block a user