refactor death
This commit is contained in:
@@ -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)
|
||||
|
||||
# 可以在这里触发其他逻辑,比如检查是否有继承人等
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user