npm run format
This commit is contained in:
@ -1,50 +1,50 @@
|
||||
<template>
|
||||
<div class="character-select-screen">
|
||||
<div class="ui-wrapper">
|
||||
<div class="characters-wrapper">
|
||||
<div v-for="character in characters" :key="character.id" class="character" :class="{active: selected_character == character.id}">
|
||||
<input type="radio" :id="character.id" name="character" :value="character.id" v-model="selected_character" />
|
||||
<label :for="character.id">{{ character.name }}</label>
|
||||
<div class="sprite-container">
|
||||
<img src="/assets/avatar/default/base_right_down.png" />
|
||||
<div class="character-select-screen">
|
||||
<div class="ui-wrapper">
|
||||
<div class="characters-wrapper">
|
||||
<div v-for="character in characters" :key="character.id" class="character" :class="{ active: selected_character == character.id }">
|
||||
<input type="radio" :id="character.id" name="character" :value="character.id" v-model="selected_character" />
|
||||
<label :for="character.id">{{ character.name }}</label>
|
||||
<div class="sprite-container">
|
||||
<img src="/assets/avatar/default/base_right_down.png" />
|
||||
</div>
|
||||
<span>Lvl. </span>
|
||||
</div>
|
||||
|
||||
<div class="character new-character">
|
||||
<button @click="isModalOpen = true">
|
||||
<img src="/assets/icons/plus-icon.svg" />
|
||||
<span>Create new</span>
|
||||
</button>
|
||||
</div>
|
||||
<span>Lvl. </span>
|
||||
</div>
|
||||
|
||||
<div class="character new-character">
|
||||
<button @click="isModalOpen = true">
|
||||
<img src="/assets/icons/plus-icon.svg" />
|
||||
<span>Create new</span>
|
||||
</button>
|
||||
<div class="buttons-wrapper">
|
||||
<button v-if="selected_character" @click="select_character()">Play</button>
|
||||
<!-- @TODO : Add a confirmation dialog -->
|
||||
<button v-if="selected_character" @click="delete_character()">Delete</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="buttons-wrapper">
|
||||
<button v-if="selected_character" @click="select_character()">Play</button>
|
||||
<!-- @TODO : Add a confirmation dialog -->
|
||||
<button v-if="selected_character" @click="delete_character()">Delete</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<Modal :isModalOpen="isModalOpen" @modal:close="isModalOpen = false">
|
||||
<template #modal-header>
|
||||
<h2 class="modal-title">Create your character</h2>
|
||||
</template>
|
||||
<Modal :isModalOpen="isModalOpen" @modal:close="isModalOpen = false">
|
||||
<template #modal-header>
|
||||
<h2 class="modal-title">Create your character</h2>
|
||||
</template>
|
||||
|
||||
<template #modal-body>
|
||||
<form method="post" @submit.prevent="create" class="modal-form">
|
||||
<div class="form-fields">
|
||||
<label for="name">Name</label>
|
||||
<input v-model="name" name="name" id="name">
|
||||
</div>
|
||||
<div class="submit">
|
||||
<button @click="create">Create</button>
|
||||
</div>
|
||||
</form>
|
||||
<button @click="isModalOpen = false">Cancel</button>
|
||||
</template>
|
||||
</Modal>
|
||||
<template #modal-body>
|
||||
<form method="post" @submit.prevent="create" class="modal-form">
|
||||
<div class="form-fields">
|
||||
<label for="name">Name</label>
|
||||
<input v-model="name" name="name" id="name" />
|
||||
</div>
|
||||
<div class="submit">
|
||||
<button @click="create">Create</button>
|
||||
</div>
|
||||
</form>
|
||||
<button @click="isModalOpen = false">Cancel</button>
|
||||
</template>
|
||||
</Modal>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
@ -53,38 +53,38 @@ import { ref } from 'vue'
|
||||
import type { Character } from '../../../env'
|
||||
import Modal from '@/components/utilities/Modal.vue'
|
||||
|
||||
const socket = useSocketStore();
|
||||
const socket = useSocketStore()
|
||||
|
||||
// Fetch characters
|
||||
socket.getConnection.emit('character:list');
|
||||
socket.getConnection.emit('character:list')
|
||||
socket.getConnection.on('character:list', (data: any) => {
|
||||
console.log(data);
|
||||
characters.value = data;
|
||||
});
|
||||
console.log(data)
|
||||
characters.value = data
|
||||
})
|
||||
|
||||
// Select character logics
|
||||
const characters = ref([]);
|
||||
const selected_character = ref(null);
|
||||
const characters = ref([])
|
||||
const selected_character = ref(null)
|
||||
function select_character() {
|
||||
console.log(selected_character.value);
|
||||
if (!selected_character.value) return;
|
||||
socket.getConnection.emit('character:connect', {character_id: selected_character.value});
|
||||
socket.getConnection.on('character:connect', (data: Character) => socket.setCharacter(data));
|
||||
console.log(selected_character.value)
|
||||
if (!selected_character.value) return
|
||||
socket.getConnection.emit('character:connect', { character_id: selected_character.value })
|
||||
socket.getConnection.on('character:connect', (data: Character) => socket.setCharacter(data))
|
||||
}
|
||||
|
||||
// Delete character logics
|
||||
function delete_character() {
|
||||
if (!selected_character.value) return;
|
||||
socket.getConnection.emit('character:delete', {character_id: selected_character.value});
|
||||
if (!selected_character.value) return
|
||||
socket.getConnection.emit('character:delete', { character_id: selected_character.value })
|
||||
}
|
||||
|
||||
// Create character logics
|
||||
const isModalOpen = ref(false);
|
||||
let name: any = ref('');
|
||||
const isModalOpen = ref(false)
|
||||
let name: any = ref('')
|
||||
function create() {
|
||||
socket.getConnection.emit('character:create', { name: name.value });
|
||||
name.value = '';
|
||||
isModalOpen.value = false;
|
||||
socket.getConnection.emit('character:create', { name: name.value })
|
||||
name.value = ''
|
||||
isModalOpen.value = false
|
||||
}
|
||||
</script>
|
||||
|
||||
@ -92,7 +92,7 @@ function create() {
|
||||
@import '@/assets/scss/main';
|
||||
|
||||
.character-select-screen {
|
||||
background-image: url("/assets/bglogin.png");
|
||||
background-image: url('/assets/bglogin.png');
|
||||
.ui-wrapper {
|
||||
// vertical and vertical center
|
||||
height: 100vh;
|
||||
@ -104,7 +104,6 @@ function create() {
|
||||
padding: 0 5rem;
|
||||
&::before {
|
||||
content: '';
|
||||
|
||||
}
|
||||
|
||||
.characters-wrapper {
|
||||
@ -139,7 +138,6 @@ function create() {
|
||||
text-align: center;
|
||||
&::before {
|
||||
content: '';
|
||||
|
||||
}
|
||||
img {
|
||||
width: 100px;
|
||||
@ -155,7 +153,8 @@ function create() {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
&::before, &::after {
|
||||
&::before,
|
||||
&::after {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
@ -181,12 +180,11 @@ function create() {
|
||||
}
|
||||
|
||||
// hide the radio buttons
|
||||
input[type="radio"] {
|
||||
input[type='radio'] {
|
||||
opacity: 0;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
|
||||
}
|
||||
|
||||
label {
|
||||
@ -251,7 +249,4 @@ function create() {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
</style>
|
||||
</style>
|
||||
|
Reference in New Issue
Block a user