fix bugs
This commit is contained in:
@@ -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, "目标不在交互范围内"
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user