升级系统改版
这是数据集合系统和新指挥官系统的重要组成部分。
旧版的升级系统无法独立运作,而这与新的数据集合的理念背道而驰。在旧版的升级系统中,升级指定了受其影响的技能或单位,以及相对应的升级效果。
而新版系统让升级可以更加独立。单位现在需要声明自身使用的升级,而不是让升级决定其所影响单位。比如,升级不应再以“使陆战队员的生命值提高10点”这样的样式进行应用。而应表述为“使任何使用本升级的单位的生命值提高10点”。
新CUpgrade字段:EffectArrayTemplate
该字段与旧的EffectArray字段相似,但有以下例外:
该字段支持两个额外的符号:
^ParamId^:使用升级的任何数据集合的ID。
^ParamLevel^:当前升级的等级。
该字段支持数据引用和算术(Arithmetic)的使用。使用“{”和"}"创建公式,和在文本编辑器中一样。
数据集合已经在鼓励模组作者们用特定的命名规范命名所有的相关数据,所以模组作者们能够轻松地为与单位相关的数据条目使用^ParamId^字段。
例如:
EffectArrayTemplate Reference="Effect,^ParamId^@Weapon,Amount" Value="{DataCollection,^ParamId^,UpgradeInfoWeapon.DamagePerLevel+3}"/
此升级将提高使用该升级的单位的武器伤害,提高点数为此单位的数据集合的 UpgradeInfoWeapon.DamagePerLevel字段加3。
你可以在数值栏输入一个固定的值,比如Value=”4”。
CUpgrade的旧版字段仍然存在且功能仍保持不变,所以所有的旧版升级依然可用。你可以继续以旧版的方式创建升级,但是我们不建议这样做。
全单位升级支持
由于有一些升级旨在用于“所有单位”(特定类型),所以CUpgrade现在设有一个标旗用于枚举所有的数据集合单位。
两个过滤字段,EnumExcludedUserFlags和EnumRequiredUserFlags现也已添加至CUpgrade,允许升级根据标旗过滤所有的数据集合单位。
新升级操作:AddBaseMultiply和SubtractBaseMultiply
这些操作根据目标字段的默认值而不是当前值对其进行修改,这种操作通常比Multiply操作更为实用。比如,假如你有100个等级的“单位生命值增加10%”升级,你可能会想让这个升级在每个等级上提高固定的生命值,而不是每次乘以最后一个等级的生命值。另外,Add/SubtractBaseMultiply支持科技降级,因为它可以随时撤销自己,而Multiply无法做到这一点。
升级现在可以用来为玩家启用或禁用单位。
新CWeapon字段:比率乘法器
默认值为1
游戏在尝试获取某个武器或者CP效果的周期时会将此倍率算入在内。
这一变化使你可以按百分比的形式升级武器速度,而不是直接更改其武器周期。
