实战用法
在特殊项目(Special Project)的研究推进流程中,当某个原型奖励已满足解锁条件时,可通过此 effect 在脚本中程序化地完成该奖励选项,常用于自动化触发奖励或在事件选项中让玩家跳过手动选择。例如,在项目完成事件中直接兑现指定奖励:
# 在某个 SPECIAL_PROJECT scope 的事件 option 中
complete_prototype_reward_option = {
prototype_reward = jet_engine_breakthrough
prototyp_reward_option = high_thrust_variant
show_modifiers = yes
}
配合关系
[has_project_flag](/wiki/trigger/has_project_flag):在执行奖励前先检查项目是否达到特定阶段标记,避免奖励在错误时机被触发。
[set_project_flag](/wiki/effect/set_project_flag):完成奖励后立即设置一个标记,用于防止后续逻辑重复执行同一奖励分支。
[add_project_progress_ratio](/wiki/effect/add_project_progress_ratio):常与奖励完成配合,在兑现原型奖励的同时额外推进项目进度,模拟研究突破带来的加速效果。
[add_dynamic_modifier](/wiki/effect/add_dynamic_modifier):奖励完成后附加动态修正值,进一步扩展奖励的实际游戏影响。
常见坑
prototyp_reward_option 字段名本身存在拼写缺陷(少一个 e),这是官方定义的原始写法,新手若按正常英文拼写写成 prototype_reward_option 会导致字段无法识别,选项静默回退到默认值而不报错,难以察觉。
- 忽略
fire only once 约束:此 effect 会遵守原型奖励自身的"仅触发一次"属性,若脚本逻辑中多次调用同一奖励,后续调用会被静默忽略,而不是报错或覆盖,导致预期外的奖励缺失。建议配合 [set_project_flag](/wiki/effect/set_project_flag) 和 [has_project_flag](/wiki/trigger/has_project_flag) 做显式的执行状态管理。