refactor map info
This commit is contained in:
@@ -85,28 +85,22 @@ class Map():
|
||||
"""
|
||||
return self.tiles[(x, y)].region
|
||||
|
||||
def get_info(self) -> str:
|
||||
"""返回地图的简要信息,按类型分组罗列区域并说明用途。"""
|
||||
parts: list[str] = []
|
||||
def get_info(self, detailed: bool = False) -> dict:
|
||||
"""
|
||||
返回地图信息(dict)。
|
||||
- detailed=False:各类区域返回名称列表
|
||||
- detailed=True:各类区域返回详细信息字符串列表
|
||||
"""
|
||||
def build_regions_info(regions_dict) -> list[str]:
|
||||
if detailed:
|
||||
return [r.get_detailed_info() for r in regions_dict.values()]
|
||||
return [r.get_info() for r in regions_dict.values()]
|
||||
|
||||
# 修炼区域
|
||||
parts.append("修炼区域(可以修炼以增进修为):")
|
||||
parts.extend([f"- {str(region)}" for region in self.cultivate_regions.values()])
|
||||
parts.append("")
|
||||
|
||||
# 普通区域
|
||||
parts.append("普通区域(可以狩猎或采集):")
|
||||
parts.extend([f"- {str(region)}" for region in self.normal_regions.values()])
|
||||
parts.append("")
|
||||
|
||||
# 城市区域
|
||||
parts.append("城市区域(可以交易):")
|
||||
parts.extend([f"- {str(region)}" for region in self.city_regions.values()])
|
||||
parts.append("")
|
||||
|
||||
# 宗门总部区域(使用维护的缓存)
|
||||
parts.append("宗门总部(宗门弟子可在此进行疗伤等操作):")
|
||||
parts.extend([f"- {region.name} - {region.desc}" for region in self.sect_regions.values()])
|
||||
return "\n".join(parts)
|
||||
return {
|
||||
"修炼区域(可以修炼以增进修为)": build_regions_info(self.cultivate_regions),
|
||||
"普通区域(可以狩猎或采集)": build_regions_info(self.normal_regions),
|
||||
"城市区域(可以交易)": build_regions_info(self.city_regions),
|
||||
"宗门总部(宗门弟子可在此进行疗伤等操作)": build_regions_info(self.sect_regions),
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -15,11 +15,12 @@ class World():
|
||||
month_stamp: MonthStamp
|
||||
avatar_manager: AvatarManager = field(default_factory=AvatarManager)
|
||||
|
||||
def get_info(self) -> str:
|
||||
map_intro = "世界上的区域为:"
|
||||
map_info = self.map.get_info()
|
||||
info = f"{map_intro}\n{map_info}"
|
||||
return info
|
||||
def get_info(self, detailed: bool = False) -> dict:
|
||||
"""
|
||||
返回世界信息(dict),其中包含地图信息(dict)。
|
||||
"""
|
||||
map_info = self.map.get_info(detailed=detailed)
|
||||
return map_info
|
||||
|
||||
def get_avatars_in_same_region(self, avatar: "Avatar"):
|
||||
return self.avatar_manager.get_avatars_in_same_region(avatar)
|
||||
|
||||
@@ -16,6 +16,8 @@ def intentify_prompt_infos(infos: dict) -> dict:
|
||||
processed: dict = dict(infos or {})
|
||||
if "avatar_infos" in processed:
|
||||
processed["avatar_infos"] = to_json_str_with_intent(processed["avatar_infos"])
|
||||
if "global_info" in processed:
|
||||
processed["global_info"] = to_json_str_with_intent(processed["global_info"])
|
||||
if "general_action_infos" in processed:
|
||||
processed["general_action_infos"] = to_json_str_with_intent(processed["general_action_infos"])
|
||||
return processed
|
||||
|
||||
Reference in New Issue
Block a user