实战用法
has_wargoal_against 常用于判断某国是否已经对目标国家宣告了战争目标,从而控制决策或焦点的可用条件——例如"只有当玩家已对目标国拥有特定战争目标时,才允许触发后续外交事件或强化战争选项"。在多路线 mod 中也常用于互斥判断,防止玩家重复添加相同性质的战争目标。
# 只有当本国已对德国持有夺取州省类战争目标时,决策才可用
available = {
has_wargoal_against = {
target = GER
type = take_state
}
}
配合关系
[create_wargoal](/wiki/effect/create_wargoal):最直接的搭档,先用 has_wargoal_against 检查战争目标是否存在,不存在时才执行 create_wargoal,避免重复创建。
[declare_war_on](/wiki/effect/declare_war_on):通常在确认已有战争目标后再触发宣战 effect,逻辑上保持"先有目标再宣战"的顺序。
[has_defensive_war_with](/wiki/trigger/has_defensive_war_with):两者配合可以区分"我主动持有战争目标"与"我处于防御战"两种战争状态,用于编写更精细的条件分支。
[any_enemy_country](/wiki/trigger/any_enemy_country):与 has_wargoal_against 组合可以遍历当前敌国并检查是否对特定敌国持有指定类型战争目标,适合多目标国场景。
常见坑
- 混淆"有战争目标"与"处于交战状态":
has_wargoal_against 只检查是否存在战争目标,即使尚未宣战也会返回真;新手常误以为它等同于"正在与该国交战",需要额外配合 [has_defensive_war_with](/wiki/trigger/has_defensive_war_with) 或其他交战状态 trigger 才能准确判断。
- target 填写了不支持的 scope 关键字:
target 字段只接受白名单内的 scope 指向(如 THIS、ROOT、FROM 等)或具体国家 tag,直接写省份或州省 ID 会导致脚本报错或条件永远不成立,务必确认填入的是合法的国家 scope。