实战用法
swap_country_leader_traits 常用于剧情事件中动态改变领袖特质,例如某位领袖经历战争洗礼后,将"新手政客"替换为"老练政治家"。也可用于 focus tree 完成后自动调整领袖特质,模拟政策转变或性格成长的叙事效果。
# 在某个 focus 完成事件中,将领袖特质从温和派换成强硬派
country_event = {
id = my_mod.42
...
option = {
name = my_mod.42.a
# 此时 scope 为 CHARACTER(通过 country_leader 触发)
swap_country_leader_traits = {
remove = trait_pacifist_leader
add = trait_warlord_leader
ideology = fascism
}
}
}
配合关系
[is_country_leader](/wiki/trigger/is_country_leader) — 在执行 swap 前先校验当前角色确实担任国家领袖,避免对非领袖角色误操作。
[has_trait](/wiki/trigger/has_trait) — 确认角色身上确实拥有要被移除的 trait,防止因 trait 不存在导致效果静默失败。
[add_country_leader_trait](/wiki/effect/add_country_leader_trait) — 若只需新增特质而非替换,可与之配合分支处理,保持 trait 管理逻辑统一。
[set_leader_description](/wiki/effect/set_leader_description) — 换完特质后同步更新领袖描述文本,让 UI 展示与逻辑状态保持一致。
常见坑
- 忽略
ideology 字段的必要性:若领袖同时拥有多个意识形态角色(如同时担任民族主义与法西斯领袖),不指定 ideology 时游戏可能对错误的意识形态角色执行 swap,务必显式声明目标意识形态。
- remove 的 trait 不存在时不报错:游戏不会抛出错误提示,swap 会静默失败(整条命令无效),新手常误以为 add 成功了,实际上角色既没有移除旧 trait 也没有获得新 trait,应配合
[has_trait](/wiki/trigger/has_trait) 在执行前做保护性检查。