用途:面向《文明6》(Gathering Storm)的区域机制参考与计算库,适用于区域放置校验、相邻加成计算、理解游戏规则等场景。
主要能力:主要模块为 placement_rules.py(区域放置校验规则)与 adjacency_rules.py(相邻加成计算引擎)。放置规则涵盖城市最小间距(同陆地4格、不同陆地3格)、无效定居地块(水域、山脉、自然奇观)、所有区域通用限制(距市中心3格内、不可建于山脉/自然奇观/战略与奢侈资源、不可占用已有区域)及区域专属要求(港口须在海岸/湖泊且临陆、飞机场与太空港须平地、军营与保护区不可邻市中心、水渠须临市中心与淡水、水坝须在泛滥平原且河流经过2条以上边)。区域数量上限公式为 1 + floor((population - 1)/3),水渠、社区、运河、水坝、太空港不计入;唯一性上多数区域每城一个,社区可多个,政府广场与外交区每文明一个。相邻加成引擎处理关键规则:+0.5 类加成需分别向下取整后再求和,不可先合并;各区域(学院、圣地、剧场广场、商业中心、港口、工业区)有不同加成来源;娱乐中心、水上乐园、军营、飞机场、太空港、政府广场、保护区无相邻加成;政府广场为相邻专业区域提供+1。破坏效果:放置任何区域会摧毁森林、雨林、沼泽与加成资源,影响其他区域相邻加成。
使用方式:通过 from civ6lib import ... 导入 DistrictType、Tile、PlacementRules、get_placement_rules、validate_district_count、validate_district_uniqueness、AdjacencyCalculator、get_adjacency_calculator 等。调用 get_placement_rules(tiles, city_center=(21, 13), population=7) 获取规则,再调用 rules.validate_placement(DistrictType.CAMPUS, 21, 14, {}) 校验;用 get_adjacency_calculator(tiles) 与 calculate_total_adjacency(placements) 计算加成。六角格工具(邻居、距离等)需使用 hex-grid-spatial 技能或从 src.hex_utils 导入。
限制:具体安装方式、许可、版本与依赖暂未提供;资料未说明是否覆盖其他资料片。