实战用法
has_mio_policy_active 常用于根据 MIO 当前激活的政策动态调整其行为或解锁特定特性,例如当某项生产政策启用时才允许完成某个科研加成特性。典型场景包括:在 MIO 的 available 条件块中限制某项特性仅在对应政策激活后才可解锁,或在事件/决议中根据政策状态做分支判断。
# 示例:某个 MIO 特性仅在激活了"大规模生产"政策时才可用
mio:my_tank_mio = {
is_mio_trait_available = {
token = my_advanced_armor_trait
available = {
has_mio_policy_active = mass_production_policy
}
}
}
配合关系
[has_mio_trait](/wiki/trigger/has_mio_trait):通常与 has_mio_policy_active 联合使用,在条件块中同时检查"已持有某特性"且"激活了某政策",以构成更严格的解锁前置条件。
[is_mio_trait_completed](/wiki/trigger/is_mio_trait_completed):配合使用可区分"特性是否已完成"与"政策是否激活"两个维度,避免重复奖励或逻辑冲突。
[complete_mio_trait](/wiki/effect/complete_mio_trait):在 effect 侧,当 has_mio_policy_active 条件满足后触发该 effect 自动完成某特性,实现政策驱动的自动化特性解锁。
[add_mio_research_bonus](/wiki/effect/add_mio_research_bonus):根据激活政策的不同给予差异化的研究加成,与 has_mio_policy_active 搭配可实现政策分支奖励逻辑。
常见坑
- 将该 trigger 写在国家 scope 而非 MIO scope 下:
has_mio_policy_active 只能在 INDUSTRIAL_ORG scope 内使用,若直接写在国家事件或决议的 trigger 块顶层而不先用 mio:xxx = { } 进入 MIO scope,游戏会报 scope 错误并导致条件永远不生效。
- token 填写的是政策名称字符串而非 token 标识符:该 trigger 接受的是政策的 token(即在政策定义中声明的标识符),不是本地化显示名称或文件名,填错会导致条件静默失败,始终返回假。