政体、国家理念与起源
governments 文件夹下的权力结构、国家理念、起源与政府名称,以及它们特有的列表式条件语法
文件夹结构
| 位置 | 内容 |
|---|---|
common/governments/authorities/ | 权力结构(民主制、寡头制、独裁制……) |
common/governments/civics/ | 国家理念与起源,起源就是 is_origin = yes 的理念 |
common/governments/*.txt | 政府名称(如“科学理事会”),由权力结构、理念、思潮组合推出 |
common/governments/councilors/ | 议会职位 |
common/governments/99_README_GOVERNMENT.txt | 原版说明,包括下面的列表式语法 |
列表式条件:权力结构和理念的特殊语法
权力结构与理念的 potential、possible 不是普通触发器,而是一种列表语法:先写类别,再在类别里用 value = 列出取值。README 中的规则:
possible = {
ethics = {
value = ethic_1 # 必须有
OR = { # 至少有一个
text = translation_key # 可选,覆盖自动生成的提示
value = ethic_3
value = ethic_4
}
NOT = { # 不能有(只能写一个 value)
value = ethic_5
}
NOR = { # 一个都不能有
value = ethic_6
value = ethic_7
}
}
authority = { ... }
civics = { ... }
}可用的类别有 ethics、authority、civics、country_type、ship_categories、graphical_culture、traits、preferred_planet_class 等;最外层是 AND,也可以再包 OR、AND 组合不同类别。原版中还能看到 origin = { ... }、species_archetype = { ... }。
potential不成立时,选项在帝国创建界面不显示;possible不成立时,选项显示但不可选,并用text键作提示。
README 还列了各类对象支持哪些类别:权力结构只支持 country_type、ethics、船只类别和图形文化,理念额外支持 authority 和 civics。
国家理念
原版“技术治国”(common/governments/civics/00_civics.txt):
civic_technocracy = {
description = civic_tooltip_technocracy_effects
potential = {
ethics = { NOT = { value = ethic_gestalt_consciousness } }
authority = { NOT = { value = auth_corporate } }
}
possible = {
ethics = {
OR = {
text = civic_tooltip_materialist
value = ethic_materialist
value = ethic_fanatic_materialist
}
}
civics = {
NOT = {
value = civic_shared_burden
}
}
}
modifier = {
num_tech_alternatives_add = 1
country_scientist_cap_add = 1
country_official_cap_add = -1
}
random_weight = { base = @civic_default_random_weight }
}常用字段(据 00_civics.txt 开头的注释):
| 字段 | 说明 |
|---|---|
potential / possible | 列表式条件,见上文 |
playable / ai_playable | 普通触发器(无作用域);不成立时玩家/AI 不能选 |
pickable_at_start | 开局能否选,默认 yes |
modification | 开局后能否增删;可写 no,或写成 { add = { } remove = { } } 两个条件 |
modifier | 理念生效时给国家的修正 |
description / negative_description | “效果”“惩罚”标题下的自定义文本 |
random_weight / ai_weight | 随机生成帝国时、AI 游戏中途解锁新槽位时的权重 |
traits = { trait = … } | 强制主种族带上的特质 |
has_secondary_species | 启用第二物种 |
swap_type | 按条件换名字、描述和修正 |
alternate_civic_version | 改革成其他权力结构时用来替换本理念的版本(如公司版) |
icon | 不写时按键名读取 gfx/interface/icons/governments/civics/<键>.dds |
要判断国家有没有某个理念,用 has_valid_civic = <键>(理念有效时才成立)或 has_civic。
起源
起源也写在 civics/ 里(原版放在 00_origins.txt),加上 is_origin = yes。原版“机械主义者”:
origin_mechanists = {
is_origin = yes
icon = "gfx/interface/icons/origins/origins_mechanist.dds"
picture = GFX_origin_mechanist
possible = {
ethics = {
NOT = { value = ethic_gestalt_consciousness }
OR = {
text = civic_tooltip_materialist
value = ethic_materialist
value = ethic_fanatic_materialist
}
}
civics = { NOT = { value = civic_permanent_employment } }
species_archetype = { NOT = { value = MACHINE } }
}
modifier = {
planet_pop_assembly_mult = 0.15
ROBOT_species_trait_picks_add = 1
ROBOT_species_trait_points_add = 2
}
description = "origin_tooltip_mechanists_effects"
advanced_start = yes
blocks_random_machine_empire_generation = yes
random_weight = {
base = 10
}
}起源特有的字段:
picture:帝国创建界面的大图(一个 sprite);soft_traits:与traits类似,但可以被去掉而不使政体失效;blocks_random_machine_empire_generation:防止随机生成出与个体机械不兼容的组合;initializers、starting_colony、habitability_preference、preferred_planet_class_neighbor等:改变开局星系和母星,原版的特殊起源大量使用。
起源的大部分“剧情”不写在这里,而是通过 has_origin = <键> 在事件、on_action 和开局效果里实现。
权力结构
原版 common/governments/authorities/00_authorities.txt 开头的注释列出了全部字段,民主制的片段:
auth_democratic = {
election_term_years = 10
re_election_allowed = yes
election_type = democratic
uses_mandates = yes
ruler_council_position = councilor_ruler_democratic
country_modifier = {
faction_approval = 0.10
country_leader_pool_size = 1
}
random_weight = {
base = 2
}
}| 字段 | 说明 |
|---|---|
has_heir | 世袭(yes)还是选举 |
election_type | democratic、oligarchic、none |
election_term_years / election_term_variance | 任期及浮动 |
re_election_allowed / can_have_emergency_elections | 连任、紧急选举 |
can_reform | 能否改革进出这种权力结构 |
ruler_council_position | 统治者在议会中的职位,定义在 councilors/ |
advanced_authority_swap | 条件满足时换成进阶版本(名字、修正、选举规则都可换) |
注意 注释说明权力结构可以“可扩展地”覆盖:再定义一个同名的
auth_democratic可以追加 swap。但这种扩展在运行中修改后需要重启才能正确生效。
政府名称
common/governments/ 根目录下的 gov_* 只决定名字和称号,没有游戏效果。这里的 possible 是普通触发器,README 说只应使用 has_ethic、has_authority、has_valid_civic,其他触发器属于未定义行为(原版用的 is_oligarchic_authority 只是包了一层 has_authority = auth_oligarchic 的脚本化触发器)。原版 gov_science_directorate:
gov_science_directorate = {
ruler_title = RT_DIRECTOR_GENERAL
ruler_title_female = RT_DIRECTOR_GENERAL_FEMALE
should_force_rename = yes
possible = {
is_oligarchic_authority = yes
has_valid_civic = civic_technocracy
}
weight = {
base = @gov_civic_weight
}
}多个名称同时满足时取 weight 最高的。README 给出的优先级从高到低是:AI 政府、权力结构 swap 政府、理念政府、思潮政府、权力结构政府、兜底政府;对应的权重变量在 common/scripted_variables/08_scripted_variables_governments.txt。
本地化
| 对象 | 键 |
|---|---|
| 理念、起源、权力结构 | <键>、<键>_desc |
| 政府名称 | <键>;游牧版本可另加 <键>_nomadic |
| 统治者称号 | ruler_title 等字段引用的键 |
在脚本里修改
change_government 可以改权力结构和理念,add_ascension_perk 加飞升天赋;具体参数见 effects.log。