update death
This commit is contained in:
@@ -117,32 +117,17 @@ export const useWorldStore = defineStore('world', () => {
|
||||
setTime(payload.year, payload.month);
|
||||
|
||||
// 检查并处理死亡事件,移除已死亡的角色
|
||||
if (payload.events && Array.isArray(payload.events)) {
|
||||
const deathEvents = (payload.events as any[]).filter((e: any) => {
|
||||
const c = e.content || '';
|
||||
return c.includes('身亡') || c.includes('老死');
|
||||
});
|
||||
|
||||
if (deathEvents.length > 0) {
|
||||
const next = new Map(avatars.value);
|
||||
let changed = false;
|
||||
|
||||
for (const de of deathEvents) {
|
||||
if (de.related_avatar_ids && Array.isArray(de.related_avatar_ids)) {
|
||||
for (const id of de.related_avatar_ids) {
|
||||
if (next.has(id)) {
|
||||
next.delete(id);
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (changed) {
|
||||
avatars.value = next;
|
||||
}
|
||||
}
|
||||
}
|
||||
// if (payload.events && Array.isArray(payload.events)) {
|
||||
// const deathEvents = (payload.events as any[]).filter((e: any) => {
|
||||
// const c = e.content || '';
|
||||
// return c.includes('身亡') || c.includes('老死');
|
||||
// });
|
||||
//
|
||||
// if (deathEvents.length > 0) {
|
||||
// // 旧逻辑:主动删除死人。现在改为软删除,后端会在 avatars 更新中推送 is_dead 状态,
|
||||
// // 所以这里不再需要主动操作。前端展示层根据 is_dead 决定是否隐藏。
|
||||
// }
|
||||
// }
|
||||
|
||||
if (payload.avatars) updateAvatars(payload.avatars);
|
||||
if (payload.events) addEvents(payload.events);
|
||||
|
||||
Reference in New Issue
Block a user