This commit is contained in:
bridge
2025-12-20 21:43:18 +08:00
parent 55a3f3f8cb
commit e8489fcc25
3 changed files with 7 additions and 4 deletions

View File

@@ -23,6 +23,10 @@ class DriveAway(MutualAction):
def _can_start(self, target: "Avatar") -> tuple[bool, str]:
"""驱赶无额外检查条件"""
# 必须在有效区域内才能驱赶(因为需要指定 MoveAwayFromRegion 的目标区域)
if self.avatar.tile.region is None:
return False, "荒野之中无法驱赶"
from src.classes.observe import is_within_observation
if not is_within_observation(self.avatar, target):
return False, "目标不在交互范围内"

View File

@@ -57,11 +57,10 @@ class Occupy(MutualAction):
def start(self, region_name: str) -> Event:
region, host, _ = self._get_region_and_host(region_name)
# 必须初始化开始时间
self._start_month_stamp = self.world.month_stamp
target_name = host.name if host else "无主之地"
event_text = f"{self.avatar.name}{target_name}{self.avatar.tile.location_name} 发起抢夺"
region_display_name = region.name if region else self.avatar.tile.location_name
event_text = f"{self.avatar.name}{host.name}{region_display_name} 发起抢夺"
rel_ids = [self.avatar.id]
if host:

View File

@@ -87,7 +87,7 @@ class Simulator:
# 记录事件
event = Event(
self.world.month_stamp,
f"{avatar.name} 路过 {avatar.tile.location_name},发现无主,将其占据。",
f"{avatar.name} 路过 {region.name},发现无主,将其占据。",
related_avatars=[avatar.id]
)
avatar.add_event(event)