国策制作:修订间差异

本页面所适用的版本可能已经过时,最后更新于1.8
无编辑摘要
无编辑摘要
第8行: 第8行:
==== id ====
==== id ====
(变量类型: 字符串string) 国策的独一无二的标识符。
(变量类型: 字符串string) 国策的独一无二的标识符。
==== text ====
==== 文本id(text) ====
(变量类型: 字符串string, 默认: id) 一个可替换的文本标识符。这允许多个国策使用同一个名称和描述。
(变量类型: 字符串string, 默认: id) 一个可替换的文本标识符。这允许多个国策使用同一个名称和描述。
==== dynamic ====
==== 动态(dynamic) ====
(变量类型: 布尔boolean, 默认: no) 如果为真,本地化的字符串可以包括占位符,例如可以允许国策名字根据意识形态改变。
(变量类型: 布尔boolean, 默认: no) 如果为真,本地化的字符串可以包括占位符,例如可以允许国策名字根据意识形态改变。
==== cost ====
==== 花费时间(cost) ====
(变量类型: number (three decimal places precision), 默认: 0) 国策将要花费多长时间(乘以{{hover|NFocus.FOCUS_POINT_DAYS|7}}天)。
(变量类型: number (three decimal places precision), 默认: 0) 国策将要花费多长时间(乘以{{hover|NFocus.FOCUS_POINT_DAYS|7}}天)。
==== allow_branch ====
==== 允许国策支(allow_branch) ====
(变量类型: AND trigger, 默认: <code>{ }</code>) If this trigger is non-empty it decides exclusively whether a focus is available. If it is false, the focus and all its dependants will be unavailable and invisible.
(变量类型: AND trigger, 默认: <code>{ }</code>) 如果这个trigger非空,它就可以专有地决定一个国策是否可用。如果这个trigger为假,这个国策及其依赖项都不可用且不可见。


==== 前提条件(prerequisite) ====
==== 前提条件(prerequisite) ====
第23行: 第23行:
 在上面的例子中,<code>GER_kdf_wagen</code>和<code>GER_synthetic_rubber</code>中的一个完成了,就是满足了国策的第一个前提条件,但是<code>GER_important_focus</code>也需要完成。第一行也可以等效地写成<code>prerequisite = { focus = GER_kdf_wagen focus = GER_synthetic_rubber }</code>.
 在上面的例子中,<code>GER_kdf_wagen</code>和<code>GER_synthetic_rubber</code>中的一个完成了,就是满足了国策的第一个前提条件,但是<code>GER_important_focus</code>也需要完成。第一行也可以等效地写成<code>prerequisite = { focus = GER_kdf_wagen focus = GER_synthetic_rubber }</code>.
==== 互斥(mutually_exclusive) ====
==== 互斥(mutually_exclusive) ====
 定义一系列国策,每个国策都和该国策互斥。语法规则和<code>prerequisites</code>相同。 Can be provided multiple times, to make the focus part of multiple sets of mutually exclusive focuses.
 定义一系列国策,每个国策都和该国策互斥。语法规则和<code>prerequisites</code>相同。 可以出现多次,以使该国策与其他多个国策互斥。
==== available ====
==== 可用(available) ====
(变量类型: AND trigger, 默认: <code>{ }</code>) In the absence of <code>allow_branch</code>, a focus will not be available if this trigger is false.
(变量类型: AND trigger, 默认: <code>{ }</code>) <code>allow_branch</code> 不存在时,若这个trigger为假,国策将不可用。
==== available_if_capitulated ====
==== 投降后可用(available_if_capitulated) ====
(变量类型: 布尔boolean, 默认: no) If false, the focus is unavailable to countries that are capitulated, and if currently active, it will cancel when the country capitulates.
(变量类型: 布尔boolean, 默认: no) 如果为假,这个国策对已投降的国家将不可用,如果国策正在进行,国家投降时国策将会取消。
==== cancelable ====
==== 可取消(cancelable) ====
(变量类型: 布尔boolean, 默认: yes) If set to false, the focus may not be cancelled explicitly.
(变量类型: 布尔boolean, 默认: yes) 如果为假,国策将不能手动取消。
==== cancel ====
==== 取消(cancel) ====
(变量类型: AND trigger, 默认: <code>{ }</code>) When a focus is in progress and the cancel trigger becomes true, the progress will get canceled. In contrast to normal AND triggers, an empty trigger is treated as false.
(变量类型: AND trigger, 默认: <code>{ }</code>) 当国策进行中而取消触发器变为真时,国策将会取消。与普通的AND触发器不同,一个空的取消触发器被视为假。
==== cancel_if_invalid ====
==== 无效时取消(cancel_if_invalid) ====
(变量类型: 布尔boolean, 默认: yes) If true, the active focus will cancel when <code>available</code> becomes false.
(变量类型: 布尔boolean, 默认: yes) 如果为真,当<code>available</code> 变为假时正在进行的国策会被取消。
==== continue_if_invalid ====
==== 无效时继续(continue_if_invalid) ====
(变量类型: 布尔boolean, 默认: no) If true, <code>cancel</code> and <code>cancel_if_invalid</code> get ignored
(变量类型: 布尔boolean, 默认: no) 如果为真,<code>cancel</code> <code>cancel_if_invalid</code> 会被忽略
==== select_effect ====
==== 开始效果(select_effect) ====
(变量类型: [[Commands|effect]]) When the focus gets selected, this effect will be executed.
(变量类型: [[Commands|effect]]) 当国策被选中开始时,效果将会实施。
==== completion_reward ====
==== 完成奖励(completion_reward) ====
(变量类型: effect) 当国策完成时,效果将会实施。
(变量类型: effect) 当国策完成时,效果将会实施。
==== complete_tooltip ====
==== 完成提示(complete_tooltip) ====
(变量类型: effect) The focus' tooltip will show this effect instead of the actual <code>completion_reward</code>.
(变量类型: effect) 国策的完成提示将会显示这里面的效果而不是真正的完成奖励<code>completion_reward</code>
==== 跳过(bypass) ====
==== 跳过(bypass) ====
(变量类型: AND trigger, 默认: <code>{ }</code>) Any focus that is currently running or available will bypass if this trigger is true. In contrast to normal AND triggers, an empty trigger is treated as false. Bypassing ignores the <code>available</code> trigger. If a focus has a mutually exclusive choice, the player needs to bypass it explicitly, otherwise the bypass happens automatically as soon as the conditions are fulfilled.
(变量类型: AND trigger, 默认: <code>{ }</code>) 当跳过触发器为真时,任意当前正在进行中或者可用的国策都会跳过。与普通的AND触发器不同,一个空的跳过触发器被视为假。Bypassing ignores the <code>available</code> trigger. 当一个国策有互斥选项时,玩家需要手动选择跳过。otherwise the bypass happens automatically as soon as the conditions are fulfilled.
==== icon ====
==== 图标(icon) ====
(变量类型: 字符串string) Graphical icon name, normally defined in {{path|interface/goals.gfx}}.
(变量类型: 字符串string) 图形图标名,一般是在{{path|interface/goals.gfx}} 中定义。
==== x ====
==== x 坐标(x) ====
(变量类型: 整数integer, 默认: 0) Horizontal visual position of the focus, in grid columns.
(变量类型: 整数integer, 默认: 0) 国策的水平坐标,网格行。
==== y ====
==== y 坐标(y) ====
(变量类型: 整数integer, 默认: 0) Vertical visual position of the focus, in grid rows.
(变量类型: 整数integer, 默认: 0) 国策的垂直坐标,网格列。
==== offset ====
==== 坐标移动(offset) ====
An additional shift of the <code>x</code> and <code>y</code> attributes, conditioned on a <code>trigger</code>. The <code>x</code> and <code>y</code> attributes are  整数integers, <code>trigger</code> is an AND trigger. Example:
一个对<code>x</code> <code>y</code> 坐标属性的额外转换,以一个触发器为条件。<code>x</code> <code>y</code> 坐标属性是 整数integers ,其中的触发器是一个AND触发器。例子如下:
<pre>offset = {
<pre>offset = {
x = -1
x = -1
第59行: 第59行:
}
}
}</pre>
}</pre>
==== relative_position_id ====
==== (相对位置id)relative_position_id ====
(变量类型: 字符串string) The graphical coordinates of this focus will be taken relative to the referenced focus. Usually this is one of the prerequisites, allowing an entire branch to moved around by just moving the root focus.
(变量类型: 字符串string) 此国策的图形坐标将相对于参考原点国策的位置生成。通常来说参考原点国策会是该国策的前置国策,这样就可以做到移动根国策就可以移动整棵国策树。'''在编辑国策树时推荐使用相对位置。'''代码样例如下:
<pre>focus = {
id = root_focus
x = 2
y = 0
}
focus = {
id = branch_focus
relative_position_id = root_focus
x = -1
y = 1
}
</pre>
在这种情况下,<code>root_focus</code>的坐标为(2,0),而<code>branch_focus</code>的实际坐标为(1,1),可以通过移动<code>root_focus</code>来一起移动其后的整个国策树。
==== historical ====
==== historical ====
(变量类型: 布尔boolean, 默认: no) unused
(变量类型: 布尔boolean, 默认: no) 从未使用
==== historical_ai ====
==== (历史AI)historical_ai ====
(变量类型: AND trigger, 默认: <code>{ }</code>) If historical AI focus is enabled, the AI will only pick the focus if this trigger is true.
(变量类型: AND trigger, 默认: <code>{ }</code>) 如果历史AI国策是开启状态,AI只会当这个触发器为真时才会选择这个国策。
==== ai_will_do ====
==== ai_will_do ====
(变量类型: MTTH, 默认: <code>{ base = 1 }</code>) Defines the probability of the AI picking this focus. The value is further modified by {{hover|NAI.FOCUS_TREE_CONTINUE_FACTOR|+50%}} if the focus is not at the root of a branch, proportionately reduced if a mutually exclusive choice, as well as multiplied by any <code>focus_factor</code>s in [[AI strategy plan]]s. For each available focus, the AI generates a random number between 0 and the calculated value. It chooses the focus with the highest resulting number.
(变量类型: MTTH, 默认: <code>{ base = 1 }</code>) Defines the probability of the AI picking this focus. The value is further modified by {{hover|NAI.FOCUS_TREE_CONTINUE_FACTOR|+50%}} if the focus is not at the root of a branch, proportionately reduced if a mutually exclusive choice, as well as multiplied by any <code>focus_factor</code>s in [[AI strategy plan]]s. For each available focus, the AI generates a random number between 0 and the calculated value. It chooses the focus with the highest resulting number.
第71行: 第84行:
==== will_lead_to_war_with ====
==== will_lead_to_war_with ====
(变量类型: country tag) The specified country will receive a warning that war goals are being justified against it while the focus is running. Can appear multiple times.
(变量类型: country tag) The specified country will receive a warning that war goals are being justified against it while the focus is running. Can appear multiple times.
=== Localization ===
=== 本地化(Localization) ===
The localization keys of focuses are prefixed with its <code>id</code> (or <code>text</code>). Given a focus with <code>id = XYZ</code>, the localization keys are
The localization keys of focuses are prefixed with its <code>id</code> (or <code>text</code>). Given a focus with <code>id = XYZ</code>, the localization keys are
* XYZ: name
* XYZ: name

2020年9月4日 (五) 00:12的版本

国策的定义在/Hearts of Iron IV/common/national_focus/*.txt

国策

单个国策被捆绑于国策树上。

属性

id

(变量类型: 字符串string) 国策的独一无二的标识符。

文本id(text)

(变量类型: 字符串string, 默认: id) 一个可替换的文本标识符。这允许多个国策使用同一个名称和描述。

动态(dynamic)

(变量类型: 布尔boolean, 默认: no) 如果为真,本地化的字符串可以包括占位符,例如可以允许国策名字根据意识形态改变。

花费时间(cost)

(变量类型: number (three decimal places precision), 默认: 0) 国策将要花费多长时间(乘以7天)。

允许国策支(allow_branch)

(变量类型: AND trigger, 默认: { }) 如果这个trigger非空,它就可以专有地决定一个国策是否可用。如果这个trigger为假,这个国策及其依赖项都不可用且不可见。

前提条件(prerequisite)

定义一系列作为该国策前提条件的国策(至少一个)。前提国策的id可以由focusOR给出。可以出现多次,在这种情况下每一个prerequisite都需要满足。例如:

prerequisite = { focus = GER_kdf_wagen OR = GER_synthetic_rubber }
prerequisite = { focus = GER_important_focus }

在上面的例子中,GER_kdf_wagenGER_synthetic_rubber中的一个完成了,就是满足了国策的第一个前提条件,但是GER_important_focus也需要完成。第一行也可以等效地写成prerequisite = { focus = GER_kdf_wagen focus = GER_synthetic_rubber }.

互斥(mutually_exclusive)

定义一系列国策,每个国策都和该国策互斥。语法规则和prerequisites相同。可以出现多次,以使该国策与其他多个国策互斥。

可用(available)

(变量类型: AND trigger, 默认: { }) 当allow_branch不存在时,若这个trigger为假,国策将不可用。

投降后可用(available_if_capitulated)

(变量类型: 布尔boolean, 默认: no) 如果为假,这个国策对已投降的国家将不可用,如果国策正在进行,国家投降时国策将会取消。

可取消(cancelable)

(变量类型: 布尔boolean, 默认: yes) 如果为假,国策将不能手动取消。

取消(cancel)

(变量类型: AND trigger, 默认: { }) 当国策进行中而取消触发器变为真时,国策将会取消。与普通的AND触发器不同,一个空的取消触发器被视为假。

无效时取消(cancel_if_invalid)

(变量类型: 布尔boolean, 默认: yes) 如果为真,当available变为假时正在进行的国策会被取消。

无效时继续(continue_if_invalid)

(变量类型: 布尔boolean, 默认: no) 如果为真,cancelcancel_if_invalid会被忽略

开始效果(select_effect)

(变量类型: effect) 当国策被选中开始时,效果将会实施。

完成奖励(completion_reward)

(变量类型: effect) 当国策完成时,效果将会实施。

完成提示(complete_tooltip)

(变量类型: effect) 国策的完成提示将会显示这里面的效果而不是真正的完成奖励completion_reward

跳过(bypass)

(变量类型: AND trigger, 默认: { }) 当跳过触发器为真时,任意当前正在进行中或者可用的国策都会跳过。与普通的AND触发器不同,一个空的跳过触发器被视为假。Bypassing ignores the available trigger. 当一个国策有互斥选项时,玩家需要手动选择跳过。otherwise the bypass happens automatically as soon as the conditions are fulfilled.

图标(icon)

(变量类型: 字符串string) 图形图标名,一般是在/Hearts of Iron IV/interface/goals.gfx中定义。

x坐标(x)

(变量类型: 整数integer, 默认: 0) 国策的水平坐标,网格行。

y坐标(y)

(变量类型: 整数integer, 默认: 0) 国策的垂直坐标,网格列。

坐标移动(offset)

一个对xy坐标属性的额外转换,以一个触发器为条件。xy坐标属性是整数integers,其中的触发器是一个AND触发器。例子如下:

offset = {
	x = -1
	y = 0
	trigger = {
		NOT = { has_dlc = "Man the Guns" }
	}
}

(相对位置id)relative_position_id

(变量类型: 字符串string) 此国策的图形坐标将相对于参考原点国策的位置生成。通常来说参考原点国策会是该国策的前置国策,这样就可以做到移动根国策就可以移动整棵国策树。在编辑国策树时推荐使用相对位置。代码样例如下:

focus = {
	id = root_focus
	x = 2
	y = 0
}
focus = {
	id = branch_focus
	relative_position_id = root_focus
	x = -1
	y = 1
}

在这种情况下,root_focus的坐标为(2,0),而branch_focus的实际坐标为(1,1),可以通过移动root_focus来一起移动其后的整个国策树。

historical

(变量类型: 布尔boolean, 默认: no) 从未使用

(历史AI)historical_ai

(变量类型: AND trigger, 默认: { }) 如果历史AI国策是开启状态,AI只会当这个触发器为真时才会选择这个国策。

ai_will_do

(变量类型: MTTH, 默认: { base = 1 }) Defines the probability of the AI picking this focus. The value is further modified by +50% if the focus is not at the root of a branch, proportionately reduced if a mutually exclusive choice, as well as multiplied by any focus_factors in AI strategy plans. For each available focus, the AI generates a random number between 0 and the calculated value. It chooses the focus with the highest resulting number.

For example if two focuses are available with calculated values of 1.5 and 3 respectively, the former has a chance of 1-in-6 to be picked and the latter 5-in-6.

will_lead_to_war_with

(变量类型: country tag) The specified country will receive a warning that war goals are being justified against it while the focus is running. Can appear multiple times.

本地化(Localization)

The localization keys of focuses are prefixed with its id (or text). Given a focus with id = XYZ, the localization keys are

  • XYZ: name
  • XYZ_desc: description

国策树

Each country is assigned a focus tree, which is a collection of national focuses. It can get amended by continuous focuses and shared focuses.

Attributes

id

(变量类型: 字符串string) A unique identifier for the focus tree.

country

(变量类型: MTTH, 默认: { base = 1 }) A score for the fit of this tree for the given tag. A country uses the national focus tree with the highest score. To assign a tree to a particular country, the score should be zero by 默认 and modified to a high value for just that country.

默认

(变量类型: 布尔boolean, 默认 no) If set to yes, this focus tree will be used for all countries that did not get a score greater than 0 on any focus tree. Only one focus tree should be set to be the 默认, generic_focus in the base game.

reset_on_civil_war

(变量类型: 布尔boolean, 默认: yes) If set to no, if the newly spawned tag in a civil war gets the same focus tree, it will copy the progress unlocked by the original country. Otherwise it starts the focus tree from the beginning.

continuous_focus_position

(变量类型: point, 默认: { x = 0, y = 0 }) The visual location of the continuous focus palette.

focus

(变量类型: national focus) Defines a national focus as described above that is added to this tree. Can appear multiple times.

shared_focus

(变量类型: 字符串string) Causes the referenced shared focus and its dependants to be inserted in this tree. Can appear multiple times. A shared focus is declared outside of any focus tree using shared_focus. It otherwise has the same semantics as a normal national focus.

例子

shared_focus = {
    id = shared_1
    x = 10
    offset = {
        x = 10
        trigger = {
            tag = LIT
        }
    }
    completion_reward = {
        army_experience = 10
    }
}
focus_tree = {
    id = lithuania_focus
    country = {
        base = 0
        modifier = {
            add = 10
            tag = LIT
        }
    }
    shared_focus = shared_1

    focus = {
        id = LIT_focus_1
        x = 10
        completion_reward = {
            navy_experience = 10
        }
    }
    focus = {
        id = LIT_focus_2
        prerequisite = { focus = LIT_focus_1 }
        relative_position_id = LIT_focus_1
        y = 10
        completion_reward = {
            navy_experience = 10
        }
    }
}
focus_tree = {
    id = basic_focus
    country = {
        base = 1
    }
    shared_focus = shared_1
}