命令百科

trigger · has_war_with_wargoal_against

Definition

  • Supported scope:COUNTRY
  • Supported target:THIS, ROOT, PREV, FROM, OWNER, CONTROLLER, OCCUPIED, CAPITAL

Description

Checks if country has a war started with a wargoal against the target.
Example 1:
has_war_with_wargoal_against = {
  target = GER
  type = take_state  # (optional: if not specified any wargoal will do)
}
Example 2:
has_war_with_wargoal_against = GER  # (any wargoal will do)

实战 · 配合 · 坑

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

实战用法

has_war_with_wargoal_against 常用于判断当前国家是否对某一特定目标发动了带有特定战争目标的战争,典型场景包括:决策或国策的解锁条件(例如只有当玩家以"吞并国土"为战争目标进攻德国时才能激活某个特殊决策),或者 AI 逻辑中检测战争意图以决定是否触发事件。

# 仅当本国以"占领州省"为战争目标对 GER 开战时,该决策才可用
available = {
    has_war_with_wargoal_against = {
        target = GER
        type = take_state
    }
}

配合关系

  • [has_defensive_war_with](/wiki/trigger/has_defensive_war_with):常与本 trigger 一起构成"攻守双向检测",一个判断我方是否主动持有战争目标,另一个判断我方是否在被动防御,避免逻辑混淆。
  • [any_enemy_country](/wiki/trigger/any_enemy_country):用于在不确定目标的情况下遍历所有敌国,再在子条件中调用本 trigger 筛选出拥有特定战争目标的那场战争。
  • [create_wargoal](/wiki/effect/create_wargoal):通常在 effect 块中与本 trigger 的结果联动——先用本 trigger 确认战争目标是否已存在,再决定是否补充创建新战争目标,防止重复添加。
  • [declare_war_on](/wiki/effect/declare_war_on):宣战 effect 执行后,往往需要在后续 trigger 中用本命令验证宣战是否携带了预期的战争目标类型,常见于事件链的条件校验节点。

常见坑

  1. 省略 type 时误以为只匹配某种战争目标:不填 type 字段时,trigger 会对"任意战争目标"返回真,因此如果只想检测特定类型(如 take_state),必须显式写出 type = take_state,否则只要双方处于交战状态且存在任何战争目标即会触发,容易造成条件过于宽松。
  2. 混淆 scope 方向:本 trigger 检测的是"当前 scope 国家对 target 持有战争目标",而非反向。新手常把 target 写成本国自身,或在错误的 scope(如 STATE scope)下调用,导致条件永远不成立;务必确认外层 scope 为 COUNTRY,且 target 指向的是被攻击方。