实战用法
modify_timed_idea 常用于事件或决策中动态调整某个限时国策/理念的剩余时间,例如在完成某项国策后延长 buff 的持续时间,或通过负值惩罚加速移除某个临时增益。典型场景包括:玩家触发某个外交事件后,作为奖励给本国正在计时的战时动员令额外续期数天。
country_event = {
id = my_mod.10
option = {
name = my_mod.10.a
# 玩家选择"接受援助"时,延长战时动员令30天
modify_timed_idea = {
idea = war_mobilization_bonus
days = 30
}
}
option = {
name = my_mod.10.b
# 玩家选择"拒绝"时,因内部压力缩短该理念剩余时间
modify_timed_idea = {
idea = war_mobilization_bonus
days = -15
}
}
}
配合关系
[add_timed_idea](/wiki/effect/add_timed_idea):通常先用此命令为国家添加一个带有时限的理念,之后才有意义调用 modify_timed_idea 对其进行续期或缩短。
[has_country_flag](/wiki/trigger/has_country_flag):在执行时限修改前,先通过国家旗帜判断是否已经触发过该逻辑,防止同一理念被重复延长。
[has_dynamic_modifier](/wiki/trigger/has_dynamic_modifier):若限时理念附带动态修正器,可先确认动态修正器存在再做时限调整,保证逻辑一致性。
[add_days_remove](/wiki/effect/add_days_remove):功能上类似,但作用对象是动态修正器而非理念,两者常在同一效果块中配套使用,分别管理理念和修正器的剩余时间。
常见坑
- 忘记该理念必须是限时理念:
modify_timed_idea 只能作用于通过 add_timed_idea 添加、或在 ideas 定义中指定了时限的理念;对普通永久性理念使用此命令不会报错但也不会产生任何效果,容易导致 bug 难以排查。
- days/months/years 至少填写一个:三个参数必须出现至少一个,若全部省略脚本将报错或静默失效;同时注意这些字段接受变量名,但变量必须提前赋值,否则计算结果为 0 而非报错,产生隐蔽的逻辑问题。