命令百科

effect · set_state_category

Definition

  • Supported scope:STATE
  • Supported target:none

Description

Sets the category of a state
Example: set_state_category = large_town

实战 · 配合 · 坑

实战内容由 AI 生成,并已对照 vanilla 命令词表校验 —— 请当作起点而非权威依据。上方的定义节才是游戏自带文档原文。

实战用法

set_state_category 常用于动态改变省份的发展等级,例如在工业化事件中将偏远地区升级为城市,或在战争破坏事件中将城市降级为废墟。它也适合用于 focus 树或决策系统中,让玩家通过投资解锁更高建筑槽位上限。

# 某个决策的 complete_effect 中:将目标州升级为大城市
complete_effect = {
    every_owned_state = {
        limit = {
            has_state_category = large_town
            is_core_of = ROOT
        }
        set_state_category = city
        add_extra_state_shared_building_slots = 2
    }
}

配合关系

  • [has_state_category](/wiki/trigger/has_state_category):在执行升降级之前先检查当前类别,避免对不符合条件的州重复操作或跳级。
  • [add_extra_state_shared_building_slots](/wiki/effect/add_extra_state_shared_building_slots):升级州类别后通常同步增加建筑槽位,使两者效果保持逻辑一致。
  • [set_building_level](/wiki/effect/set_building_level):降级惩罚场景中,往往需要同时降低建筑等级来体现破坏效果,与类别降级配套使用。
  • [add_state_modifier](/wiki/effect/add_state_modifier):升级后附加州修正(如生产加成),为类别变化提供实际的游戏数值支撑。

常见坑

  1. 在非 STATE scope 下调用set_state_category 只能在 STATE scope 内使用,若误写在 COUNTRY scope(如直接放在 country_eventoption 顶层而不用 every_owned_state 包裹),游戏会报作用域错误甚至静默失效,检查时要确认上下文已正确切换到 STATE。
  2. 类别字符串拼写错误:类别名称(如 ruraltownlarge_towncitylarge_city 等)必须与游戏定义完全一致,拼错不会报语法错误但不会生效,建议直接参照 common/state_category 目录下的原版文件核对名称。