实战用法
常用于判断某国是否正在对特定州发动两栖登陆,例如在防御方事件或决策中检测敌方登陆威胁,从而触发紧急援军或特殊加成。也可以在 AI 策略决策的 available 块中,确认己方的海上入侵计划已到达一定准备度后再允许外交或军事行动。
# 检测敌方是否对本国某州发动了海上入侵,且入侵已激活
add_ideas = emergency_coastal_defense
trigger = {
any_enemy_country = {
has_naval_invasion_against_state = {
state = 42
preparation > 0.5
activated = yes
}
}
}
配合关系
[any_enemy_country](/wiki/trigger/any_enemy_country):遍历所有交战敌国,通常嵌套在外层用于逐一检查是否有任何敌国正在执行登陆,是该 trigger 最常见的包裹层。
[controls_state](/wiki/trigger/controls_state):配合使用以额外确认目标州的当前控制权,区分"有登陆计划但尚未得手"与"已失守"两种状态,避免逻辑误判。
[divisions_in_state](/wiki/trigger/divisions_in_state):在检测到登陆威胁后,联合判断该州内的兵力是否充足,为事件或决策提供更精细的条件分支。
[has_defensive_war_with](/wiki/trigger/has_defensive_war_with):与之搭配确认当前处于防御战争状态,防止在非战争情形下因脚本 bug 导致 trigger 意外触发。
常见坑
- 忽略
activated 字段的语义:不填 activated 时默认只检查入侵计划是否存在(无论激活与否),新手常以为"有计划 = 已发起攻击",导致在入侵尚处于准备阶段时就误触发应急事件;若要区分"准备中"和"已激活",务必显式写明 activated = yes 或 activated = no。
- scope 方向混淆:该 trigger 的 scope 是发动入侵的国家,而不是被入侵的国家。新手容易在被攻击方的 scope 下直接使用,导致永远返回假;正确做法是先切换到敌方 scope(如用
any_enemy_country),再在其内部调用此 trigger。