update death
This commit is contained in:
@@ -11,8 +11,12 @@ const emit = defineEmits<{
|
||||
(e: 'avatarSelected', payload: { type: 'avatar'; id: string; name?: string }): void
|
||||
}>()
|
||||
|
||||
const visibleAvatars = computed(() => {
|
||||
return worldStore.avatarList.filter(a => !a.is_dead)
|
||||
})
|
||||
|
||||
const avatarOffsets = computed(() => {
|
||||
return calculateVisualOffsets(worldStore.avatarList)
|
||||
return calculateVisualOffsets(visibleAvatars.value)
|
||||
})
|
||||
|
||||
function handleAvatarSelect(payload: { type: 'avatar'; id: string; name?: string }) {
|
||||
@@ -23,7 +27,7 @@ function handleAvatarSelect(payload: { type: 'avatar'; id: string; name?: string
|
||||
<template>
|
||||
<container sortable-children>
|
||||
<AnimatedAvatar
|
||||
v-for="avatar in worldStore.avatarList"
|
||||
v-for="avatar in visibleAvatars"
|
||||
:key="avatar.id"
|
||||
:avatar="avatar"
|
||||
:tile-size="TILE_SIZE"
|
||||
|
||||
@@ -67,10 +67,13 @@ async function handleClearObjective() {
|
||||
/>
|
||||
|
||||
<!-- Actions Bar -->
|
||||
<div class="actions-bar">
|
||||
<div class="actions-bar" v-if="!data.is_dead">
|
||||
<button class="btn primary" @click="showObjectiveModal = true">设定目标</button>
|
||||
<button class="btn" @click="handleClearObjective">清空目标</button>
|
||||
</div>
|
||||
<div class="dead-banner" v-else>
|
||||
已故 ({{ data.death_info?.reason || '未知原因' }})
|
||||
</div>
|
||||
|
||||
<div class="content-scroll">
|
||||
<!-- Stats Grid -->
|
||||
@@ -212,6 +215,17 @@ async function handleClearObjective() {
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.dead-banner {
|
||||
background: #4a1a1a;
|
||||
color: #ffaaaa;
|
||||
padding: 8px;
|
||||
border-radius: 4px;
|
||||
text-align: center;
|
||||
font-size: 13px;
|
||||
margin-bottom: 12px;
|
||||
border: 1px solid #7a2a2a;
|
||||
}
|
||||
|
||||
.content-scroll {
|
||||
flex: 1;
|
||||
overflow-y: auto;
|
||||
|
||||
@@ -9,7 +9,10 @@ const eventListRef = ref<HTMLElement | null>(null)
|
||||
|
||||
const filterOptions = computed(() => [
|
||||
{ label: '所有人', value: 'all' },
|
||||
...worldStore.avatarList.map(avatar => ({ label: avatar.name ?? avatar.id, value: avatar.id }))
|
||||
...worldStore.avatarList.map(avatar => ({
|
||||
label: (avatar.name ?? avatar.id) + (avatar.is_dead ? ' (已故)' : ''),
|
||||
value: avatar.id
|
||||
}))
|
||||
])
|
||||
|
||||
const filteredEvents = computed(() => {
|
||||
|
||||
Reference in New Issue
Block a user