实战用法
has_tactic 常用于 mod 中根据国家是否解锁特定战术来决定是否可用某决议、显示特殊事件选项或激活 advisor。例如,当玩家设计一条"精锐装甲"科技线时,可以用它确保只有真正解锁了闪电战战术的国家才能触发相关奖励事件。
# 仅当国家已解锁 tactic_masterful_blitz 时才允许激活该决议
available = {
has_tactic = tactic_masterful_blitz
}
配合关系
[has_doctrine](/wiki/trigger/has_doctrine):战术通常随学说研究解锁,两者联用可精确区分"已研究学说但战术尚未默认激活"与"战术完全可用"的边界情况。
[has_completed_focus](/wiki/trigger/has_completed_focus):部分战术通过国策而非科技解锁,与本 trigger 配合可构建"国策完成 → 战术可用 → 决议开放"的完整逻辑链。
[can_research](/wiki/trigger/can_research):用于判断是否还有战术相关科技待研究,与 has_tactic 互补,一个检测"已有",另一个检测"能研究",避免重复提示。
[add_tech_bonus](/wiki/effect/add_tech_bonus):在确认国家已持有某战术后,通过该 effect 给予后续科技加速,形成"解锁战术 → 享受研究红利"的激励设计。
常见坑
- 将战术 key 与科技 key 混淆:
has_tactic 的参数是战术本身的标识符(如 tactic_masterful_blitz),而不是解锁该战术的科技 token,直接填写科技名会导致 trigger 永远返回 false 且不报错,难以排查。
- 忽略"默认激活"的战术:官方描述明确指出默认激活的战术也会返回 true,因此若你的逻辑想区分"主动研究解锁"与"初始自带",仅靠本 trigger 无法做到,需结合
[has_doctrine](/wiki/trigger/has_doctrine) 或国策完成状态进行二次过滤。