命令百科

trigger · has_idea_with_trait

Definition

  • Supported scope:COUNTRY
  • Supported target:none

Description

check if country has idea with specified trait

实战 · 配合 · 坑

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

实战用法

has_idea_with_trait 常用于检测某国是否拥有带特定 trait 标签的顾问或国策思潮,例如判断是否存在"军事顾问"系列中带有 military_theorist 特征的 idea,从而决定是否解锁后续选项或触发事件。在顾问系统扩展 mod 中,可用它来防止重复添加功能重叠的 idea,或为特定 trait 的 idea 存在时提供加成。

# 若该国拥有任何带 military_theorist trait 的 idea,则该决策可用
available = {
    has_idea_with_trait = military_theorist
}

配合关系

  • [has_available_idea_with_traits](/wiki/trigger/has_available_idea_with_traits):两者经常对比使用——前者检查"已拥有",后者检查"可用但未激活",共同构成完整的顾问状态判断链。
  • [has_allowed_idea_with_traits](/wiki/trigger/has_allowed_idea_with_traits):用于进一步区分 idea 是否被规则允许,与 has_idea_with_trait 组合可精确筛选顾问池状态。
  • [add_ideas](/wiki/effect/add_ideas):确认当前不存在同 trait 的 idea 后,再用此 effect 添加新 idea,避免同类顾问叠加导致逻辑冲突。
  • [deactivate_advisor](/wiki/effect/deactivate_advisor):在检测到已有同 trait idea 时,先移除旧顾问再触发替换流程,实现顾问升级机制。

常见坑

  1. trait 名称与 idea 定义不一致has_idea_with_trait 检查的是 idea 上 traits = { ... } 字段中声明的 trait,而非 idea 本身的 id 名,新手容易误将 idea 的 token 名当作 trait 名填入,导致条件永远为假。
  2. scope 用错:此 trigger 仅在 COUNTRY scope 下有效,若在 STATE 或 CHARACTER scope 的代码块中直接调用而未先切换 scope,脚本会静默失效或报错,调试时需注意日志中的 scope mismatch 警告。