实战用法
non_damaged_building_level 常用于工业战争损伤检测场景,例如判断某州是否保有足够完好的军工厂才能触发某项决策或事件。典型应用包括:战略轰炸后限制敌方特定选项、或在剧本 mod 中要求某州工业未受破坏才能开启生产奖励事件。
# 仅当该州拥有至少 3 座未受损的基础设施时,决策才可用
available = {
non_damaged_building_level = {
building = infrastructure
level = 3
}
}
配合关系
[building_count_trigger](/wiki/trigger/building_count_trigger):检查建筑总等级(含受损),与 non_damaged_building_level 搭配可同时判断"建了多少"与"完好多少",区分建造量和实际可用量。
[days_since_last_strategic_bombing](/wiki/trigger/days_since_last_strategic_bombing):检测上次战略轰炸距今天数,结合完好建筑判断,可精确描述"轰炸后恢复前"的状态窗口。
[damage_building](/wiki/effect/damage_building):主动损毁建筑的 effect,常在测试或剧本 mod 中与本 trigger 配合,先手动制造损伤再用 trigger 验证结果是否符合阈值。
[free_building_slots](/wiki/trigger/free_building_slots):检查州内剩余建筑槽,与完好建筑数量一同构成对州工业状况的全面判断,常用于限制"能否继续建造"的条件块。
常见坑
- 混淆"总等级"与"完好等级":新手常误用
building_count_trigger 替代本 trigger,但前者计入受损建筑的全部等级,后者只计完好部分——在战略轰炸频繁的情境下两者结果可能差异显著,选错会导致条件在建筑受损后仍意外成立。
- scope 必须是 STATE:该 trigger 只能在州 scope 下使用,若写在国家 scope(如
country_event 的 trigger 块内未先转入州 scope),脚本会静默报错或永远返回假,需用 any_owned_state、capital_scope 等先切换至州 scope 再调用。