实战用法
has_any_grand_doctrine 常用于判断某国是否已在特定学说文件夹中分配了"大学说",从而解锁后续国策、决议或顾问。例如在军事改革类 mod 中,可以用它来检查玩家是否已经激活了陆地或海军学说方向,再决定是否显示对应的专项奖励决议。
# 仅当该国已在 land 文件夹配有大学说时才可用
available = {
has_any_grand_doctrine = land
}
配合关系
[has_completed_subdoctrine](/wiki/trigger/has_completed_subdoctrine):配合使用可进一步区分"已分配大学说"与"已完成某具体子学说",实现更精细的学说进度门槛。
[has_doctrine](/wiki/trigger/has_doctrine):用于检查是否解锁了具体的某条学说节点,与 has_any_grand_doctrine 搭配可构建"大方向已选 + 具体节点已研究"的双重判断。
[has_completed_track](/wiki/trigger/has_completed_track):检查整条学说轨道是否完成,可与 has_any_grand_doctrine 一同作为高阶国策或决议的前提条件。
[add_doctrine_cost_reduction](/wiki/effect/add_doctrine_cost_reduction):在触发条件满足后给予学说费用折扣,是常见的"已选大学说方向→后续研究更便宜"设计模式。
常见坑
- scope 写错:该 trigger 只能在 COUNTRY scope 下使用,若写在 STATE 或 CHARACTER scope 中脚本会报错或静默失效,务必确认外层作用域是国家。
- 文件夹名拼写错误:参数是学说文件夹的名称(如
land、naval),必须与 common/technologies/ 下对应的文件夹标识完全一致,大小写或命名不符会导致条件永远为假。