实战用法
has_mined 常用于海战相关 mod 中,判断某国是否已在目标国海岸线布设足够数量的水雷,从而触发特定事件或解锁决策——例如封锁胜利条件、潜艇战奖励等。以下示例检测德国是否在英国海岸布设了超过 500 枚水雷,以激活封锁相关事件:
# 在某个 country_event 的 trigger 块中
GER = {
has_mined = {
target = ENG
value > 500
}
}
配合关系
[add_mines](/wiki/effect/add_mines):最直接的配合——先用 add_mines 向目标国海岸播雷,再用 has_mined 检测积累量是否达到阈值,形成"布雷→判断→奖励"的完整链条。
[convoy_threat](/wiki/trigger/convoy_threat):两者常同时出现在海上封锁判断逻辑中,水雷数量与护航威胁度共同衡量对敌方海上交通线的压制程度。
[controls_state](/wiki/trigger/controls_state):封锁 mod 里常与 has_mined 联用,确认己方同时控制了相邻沿海州,确保封锁在陆海两个维度同时成立。
[any_owned_state](/wiki/trigger/any_owned_state):可在 any_owned_state 遍历己方沿海州时配合使用,筛选出哪些沿岸确实已经布雷完毕。
常见坑
- scope 写反:
has_mined 的外层 scope 必须是布雷国(即实施布雷的一方),target 才是被布雷的目标国;新手容易把两者对调,写成在目标国 scope 下检测,导致条件永远不成立。
- value 比较符遗漏:
value 字段需要带比较运算符(如 value > 1000),直接写 value = 1000 属于语法错误,游戏日志会静默报错或忽略该 trigger。