命令百科

trigger · has_terrain

Definition

  • Supported scope:COUNTRY
  • Supported target:none

Description

Checks if a country has any province of the specified terrain type.
Example: has_terrain = mountain

实战 · 配合 · 坑

实战内容由 AI 生成,并已对照 vanilla 命令词表校验 —— 请当作起点而非权威依据。上方的定义节才是游戏自带文档原文。

实战用法

has_terrain 常用于地理主题 mod 中,根据国家是否拥有特定地形省份来解锁专属决议、国策或顾问——例如"山地国家"才能研究特定山地战学说,或沙漠国家才能获得某种后勤加成。也可用在 available 块中动态限制某些内容对地形匮乏的国家不可见。

# 只有拥有山地省份的国家才能激活此决议
available = {
    has_terrain = mountain
}

配合关系

  • [any_owned_state](/wiki/trigger/any_owned_state) — 若需要检查更细粒度的地形条件(如某个州同时满足地形与资源要求),可与 has_terrain 在不同层级互补使用。
  • [controls_state](/wiki/trigger/controls_state) — 结合使用可区分"拥有"与"控制",避免玩家通过占领他国山地省份意外触发本国专属内容。
  • [add_ideas](/wiki/effect/add_ideas) — 当 has_terrain 条件满足后,常用于授予对应地形风格的国家精神(如山地作战加成)。
  • [add_tech_bonus](/wiki/effect/add_tech_bonus) — 搭配地形判断给予特定科技折扣,例如拥有沙漠地形的国家获得步兵装备研究加速。

常见坑

  1. Scope 用错has_terrain 只能在 COUNTRY scope 下使用,新手有时误将其写进 STATE scope(如 any_owned_state 的子块内),导致脚本报错或静默失效——在州 scope 检查地形应使用州层级的地形相关写法。
  2. 语义误解:此 trigger 检查的是"该国是否拥有(owns)至少一个该地形的省份",而非"控制",因此被占领的山地省份不再计入;若 mod 设计意图是基于控制范围判断,需配合其他条件补充逻辑。