refactor death

This commit is contained in:
bridge
2025-12-29 21:46:26 +08:00
parent aef6fe6f74
commit 6a4059280a
7 changed files with 192 additions and 19 deletions

View File

@@ -6,7 +6,7 @@ if TYPE_CHECKING:
from src.classes.world import World
from src.classes.avatar import Avatar
def handle_death(world: World, avatar: Avatar, reason: Union[str, DeathReason] = DeathReason.UNKNOWN) -> None:
def handle_death(world: World, avatar: Avatar, reason: Union[str, DeathReason]) -> None:
"""
处理角色死亡的统一入口。
负责将角色标记为死亡,清理行动队列,但保留角色数据。
@@ -14,14 +14,11 @@ def handle_death(world: World, avatar: Avatar, reason: Union[str, DeathReason] =
Args:
world: 世界对象
avatar: 死亡的角色
reason: 死亡原因DeathReason枚举或字符串)
reason: 死亡原因DeathReason对象或字符串)
"""
# 如果传入的是枚举,转为字符串值
reason_str = reason.value if isinstance(reason, DeathReason) else str(reason)
reason_str = str(reason)
# 标记为死亡(软删除)
avatar.set_dead(reason_str, world.month_stamp)
# 可以在这里触发其他逻辑,比如检查是否有继承人等