fix tile region = none bug

This commit is contained in:
bridge
2025-12-20 19:26:53 +08:00
parent c772edfff0
commit 3d117c2fb2
9 changed files with 19 additions and 11 deletions

View File

@@ -80,7 +80,7 @@ class Catch(TimedAction):
# 清理状态
self._caught_result = None
region = self.avatar.tile.region
return Event(self.world.month_stamp, f"{self.avatar.name}{region.name} 尝试御兽", related_avatars=[self.avatar.id])
return Event(self.world.month_stamp, f"{self.avatar.name}{self.avatar.tile.location_name} 尝试御兽", related_avatars=[self.avatar.id])
async def finish(self) -> list[Event]:
res = self._caught_result

View File

@@ -95,7 +95,7 @@ class Cultivate(TimedAction):
else:
efficiency = "进境缓慢(灵气稀薄)"
return Event(self.world.month_stamp, f"{self.avatar.name}{region.name} 开始修炼,{efficiency}", related_avatars=[self.avatar.id])
return Event(self.world.month_stamp, f"{self.avatar.name}{self.avatar.tile.location_name} 开始修炼,{efficiency}", related_avatars=[self.avatar.id])
async def finish(self) -> list[Event]:
return []

View File

@@ -62,7 +62,7 @@ class Harvest(TimedAction):
def start(self) -> Event:
region = self.avatar.tile.region
return Event(self.world.month_stamp, f"{self.avatar.name}{region.name} 开始采集", related_avatars=[self.avatar.id])
return Event(self.world.month_stamp, f"{self.avatar.name}{self.avatar.tile.location_name} 开始采集", related_avatars=[self.avatar.id])
# TimedAction 已统一 step 逻辑

View File

@@ -62,7 +62,7 @@ class Hunt(TimedAction):
def start(self) -> Event:
region = self.avatar.tile.region
return Event(self.world.month_stamp, f"{self.avatar.name}{region.name} 开始狩猎", related_avatars=[self.avatar.id])
return Event(self.world.month_stamp, f"{self.avatar.name}{self.avatar.tile.location_name} 开始狩猎", related_avatars=[self.avatar.id])
# TimedAction 已统一 step 逻辑

View File

@@ -36,7 +36,7 @@ class SelfHeal(TimedAction):
if not isinstance(region, SectRegion):
return False
hq_name = getattr(getattr(sect, "headquarter", None), "name", None) or getattr(sect, "name", None)
return bool(hq_name) and region.name == hq_name
return bool(hq_name) and region and region.name == hq_name
def can_start(self) -> tuple[bool, str]:
# 必须是宗门弟子且在自身宗门总部且当前HP未满