add lode
This commit is contained in:
@@ -12,7 +12,6 @@ from src.classes.avatar.core import (
|
||||
from src.classes.avatar.info_presenter import (
|
||||
get_avatar_info,
|
||||
get_avatar_structured_info,
|
||||
get_avatar_hover_info,
|
||||
get_avatar_expanded_info,
|
||||
get_other_avatar_info,
|
||||
)
|
||||
|
||||
@@ -289,10 +289,6 @@ class Avatar(
|
||||
from src.classes.avatar.info_presenter import get_avatar_structured_info
|
||||
return get_avatar_structured_info(self)
|
||||
|
||||
def get_hover_info(self) -> list[str]:
|
||||
from src.classes.avatar.info_presenter import get_avatar_hover_info
|
||||
return get_avatar_hover_info(self)
|
||||
|
||||
def get_expanded_info(
|
||||
self,
|
||||
co_region_avatars: Optional[List["Avatar"]] = None,
|
||||
|
||||
@@ -228,90 +228,6 @@ def get_avatar_structured_info(avatar: "Avatar") -> dict:
|
||||
return info
|
||||
|
||||
|
||||
def get_avatar_hover_info(avatar: "Avatar") -> list[str]:
|
||||
"""
|
||||
返回用于前端悬浮提示的多行信息。
|
||||
"""
|
||||
def add_kv(lines: list[str], key: str, value: object) -> None:
|
||||
lines.append(f"{key}: {value}")
|
||||
|
||||
def add_section(lines: list[str], title: str, body: list[str]) -> None:
|
||||
lines.append("")
|
||||
lines.append(f"{title}:")
|
||||
lines.extend(body)
|
||||
|
||||
lines: list[str] = []
|
||||
# 基础信息
|
||||
if avatar.nickname:
|
||||
add_kv(lines, "绰号", f"「{avatar.nickname.value}」")
|
||||
|
||||
add_kv(lines, "性别", avatar.gender)
|
||||
add_kv(lines, "年龄", avatar.age)
|
||||
add_kv(lines, "外貌", avatar.appearance.get_info())
|
||||
add_kv(lines, "阵营", avatar.alignment)
|
||||
add_kv(lines, "境界", str(avatar.cultivation_progress))
|
||||
add_kv(lines, "HP", avatar.hp)
|
||||
add_kv(lines, "战斗力", int(get_base_strength(avatar)))
|
||||
add_kv(lines, "宗门", avatar.get_sect_str())
|
||||
|
||||
from src.classes.root import format_root_cn
|
||||
add_kv(lines, "灵根", format_root_cn(avatar.root))
|
||||
|
||||
tech_str = avatar.technique.get_colored_info() if avatar.technique is not None else "无"
|
||||
add_kv(lines, "功法", tech_str)
|
||||
|
||||
if avatar.personas:
|
||||
persona_parts = [p.get_colored_info() for p in avatar.personas]
|
||||
add_kv(lines, "特质", ", ".join(persona_parts))
|
||||
|
||||
add_kv(lines, "灵石", str(avatar.magic_stone))
|
||||
|
||||
# 物品
|
||||
if avatar.items:
|
||||
items_lines = [f" {item.name} x{quantity}" for item, quantity in avatar.items.items()]
|
||||
add_section(lines, "物品", items_lines)
|
||||
else:
|
||||
add_kv(lines, "物品", "无")
|
||||
|
||||
# 思考与目标
|
||||
if avatar.thinking:
|
||||
add_section(lines, "正在思考", [avatar.thinking])
|
||||
if avatar.long_term_objective:
|
||||
add_section(lines, "长期目标", [avatar.long_term_objective.content])
|
||||
if avatar.short_term_objective:
|
||||
add_section(lines, "短期目标", [avatar.short_term_objective])
|
||||
|
||||
# 兵器(必有,使用颜色标记等级)
|
||||
if avatar.weapon is not None:
|
||||
weapon_text = avatar.weapon.get_colored_info()
|
||||
if avatar.weapon.desc:
|
||||
weapon_text += f"({avatar.weapon.desc})"
|
||||
add_kv(lines, "兵器", weapon_text)
|
||||
|
||||
# 辅助装备(可选,使用颜色标记等级)
|
||||
if avatar.auxiliary is not None:
|
||||
auxiliary_text = avatar.auxiliary.get_colored_info()
|
||||
if avatar.auxiliary.desc:
|
||||
auxiliary_text += f"({avatar.auxiliary.desc})"
|
||||
add_kv(lines, "辅助装备", auxiliary_text)
|
||||
else:
|
||||
add_kv(lines, "辅助装备", "无")
|
||||
|
||||
# 灵兽:仅在存在时显示
|
||||
if avatar.spirit_animal is not None:
|
||||
add_kv(lines, "灵兽", avatar.spirit_animal.get_info())
|
||||
|
||||
# 关系(从自身视角分组展示)
|
||||
from src.classes.relation import get_relations_strs
|
||||
relation_lines = get_relations_strs(avatar, max_lines=15)
|
||||
if relation_lines:
|
||||
add_section(lines, "关系", [f" {s}" for s in relation_lines])
|
||||
else:
|
||||
add_kv(lines, "关系", "无")
|
||||
|
||||
return lines
|
||||
|
||||
|
||||
def get_avatar_expanded_info(
|
||||
avatar: "Avatar",
|
||||
co_region_avatars: Optional[List["Avatar"]] = None,
|
||||
|
||||
Reference in New Issue
Block a user