Policies modding:修订间差异

本页面部分全部内容上次核对于2.6版本
(文本替换 - 替换“Category:Modding]]”为“Category:模组制作]]”)
(文本替换 - 替换“Relevant Dynamic Modding Statements”为“相关的动态修改语句”)
 
第106行: 第106行:
  }
  }


== Relevant Dynamic Modding Statements ==
== 相关的动态修改语句 ==
Conditions:
Conditions:
* <code>has_policy_flag = <policy flag key></code> - Checks if the empire has any active policy option with this policy flag.
* <code>has_policy_flag = <policy flag key></code> - Checks if the empire has any active policy option with this policy flag.

2022年3月16日 (三) 07:11的最新版本


This page is about how to modify existing and how to create new Policies.

Policies are defined at "common/policies/xxx.txt".

Data Structure[编辑 | 编辑源代码]

  • potential - A block of Conditions to determine is an empire able to see this policy. If an empire can't see a policy, it won't have any of its options active. (Country scope)
  • allow - A block of Conditions to determine is an empire able to change this policy. Vanilla use this to prevent switching diplomatic stance and war philosophy during a war. (Country scope)
  • option - An instance that adds an option to this policy. Multiple allowed. A policy should have at least one valid option for each empire.
    • name - A localisation key that determines the name and description of this option.
    • icon - A reference to a GFX entry that determines the icon of this option. Only diplomatic stance has this. Other policy options will never have their icons displayed.
    • potential & valid - Blocks of Conditions to determine is an empire able to see / choose this option. If either is rendered false while the empire have this option active, the empire will be forced out of it and switched to a valid choice of highest ai_weight, even for players. (Country scope)
    • policy_flags = { flag_xxx flag_yyy } - A list of strings to be checked by the condition has_policy_flag. A policy option without any policy flags can't be checked by Conditions.
    • modifier - A block of Modifiers that applies to the empire with this option active.
    • on_enabled & on_disabled - Blocks of Effects to be executed to the empire when this option is selected / switched out. (Country scope)
    • AI_weight - The AI will always choose a option of highest weight for each policy. The player will also have each policy fall into an option of highest ai_weight by default.

Vanilla Example[编辑 | 编辑源代码]

This is the Diplomatic Stance policy.

diplomatic_stance = {
	potential = {
		OR = {
			is_country_type = default
			is_country_type = fallen_empire
			is_country_type = awakened_fallen_empire
			is_country_type = primitive
			is_country_type = awakened_marauders
		}
	}

	option = {
		name = "diplo_stance_belligerent"
		icon = "GFX_diplomatic_stance_belligerent"

		potential = {
			OR = {
				is_country_type = default
				is_country_type = awakened_fallen_empire
			}

			is_homicidal = no # They have their own variants of this
			NOT = { has_valid_civic = civic_inwards_perfection }
		}

		policy_flags = {
			diplo_stance_belligerent
		}

		modifier = {
			country_war_exhaustion_mult = -0.1
			country_naval_cap_mult = 0.1
			country_claim_influence_cost_mult = -0.1
		}

		ai_weight = {
			weight = 10

			modifier = {
				factor = 0
				NOT = { has_country_flag = has_encountered_other_empire }
			}

			...
		}
	}

	option = {
		name = "diplo_stance_cooperative"
		icon = "GFX_diplomatic_stance_cooperative"

		potential = {
			OR = {
				is_country_type = default
				is_country_type = awakened_fallen_empire
			}
			is_unfriendly = no # Not homicidal or barbaric despoilers
			NOT = { has_valid_civic = civic_inwards_perfection }
		}

		policy_flags = {
			diplo_stance_cooperative
		}

		modifier = {
			diplo_weight_mult = 0.25
			envoy_improve_relations_mult = 0.5
			country_border_friction_mult = -0.5
		}

		ai_weight = {
			weight = 10

			modifier = {
				factor = 0
				NOT = { has_country_flag = has_encountered_other_empire }
			}

			...
		}
	}

	...

}

相关的动态修改语句[编辑 | 编辑源代码]

Conditions:

  • has_policy_flag = <policy flag key> - Checks if the empire has any active policy option with this policy flag.
  • last_changed_policy = <policy key> - Checks if the last policy the empire has changed was the specified policy. Used for on_action events.

Effects:

# changes an empire's policy
set_policy = {
	policy = <policy key>
	option = <policy option name>
	cooldown = <yes/no> # determines should this effect set a 10-year cooldown of policy change
}
帝国 帝国思潮政府 • 国民理念 • 起源承诺议程传统 • 飞升天赋法令政策遗珍科技自定义帝国
人口 岗位派系
领袖 领袖领袖特质
物种 物种物种特质
行星 行星行星特征 • 轨道矿藏建筑 • 区划行星决议
星系 星系恒星基地巨型结构虫洞 • 星门地图
舰队 舰队舰船 • 部件
地面战 陆军轰炸姿态
外交 外交 • 联邦 • 星海共同体评价修正宣战理由 • 战争目标
事件 事件异常现象特殊项目考古遗址
游玩 游玩定义研究 • 经济游戏开局
动态修改 动态指令效果触发条件作用域修正变量AI
媒体/本地化 Maya 导出器图形肖像旗帜事件图片界面图标音乐本地化
Other 控制台命令存档编辑Steam 创意工坊模组制作教程