Modifier改変 1

公式での数値修正

標準ルール・RaF

格納庫
この都市で訓練を受けた航空ユニットの戦闘経験値+25%。飛行場 (区域) の航空機スロット+2。

GS

格納庫
この都市で訓練を受けた航空ユニットの戦闘経験値+25%。飛行場区域の航空機スロット+1。

飛行場区域の建造物である格納庫はGSでは航空機スロットの増加が+1に変更になっている

Modifierの構成

標準ルールで格納庫に設定されているModifierの構成は以下の通り

BuildingModifiers
BuildingType
BUILDING_HANGAR
ModifierId
HANGAR_TRAINED_AIRCRAFT_XP_MODIFIER
BuildingModifiers
BuildingType
BUILDING_HANGAR
ModifierId
HANGAR_BONUS_AIR_SLOTS
Modifiers
ModifierId
HANGAR_BONUS_AIR_SLOTS
ModifierType
MODIFIER_PLAYER_DISTRICT_GRANT_AIR_SLOTS
ModifierArguments
ModifierId
HANGAR_BONUS_AIR_SLOTS
Name
Amount
Value
2
Permanent
true
  • 区域に航空機スロットを付与する
    • 付与する数:+2

GSでの改変

<ModifierArguments>
	<Update>
		<Where ModifierId="HANGAR_BONUS_AIR_SLOTS"/>
		<Set>
			<Name>Amount</Name>
			<Value>1</Value>
		</Set>
	</Update>
</ModifierArguments>

GSでは上記の内容が読み込まれて航空機スロットの増加数が+2から+1に修正される
Modifier構成内の増加量の数値をピンポイントで上書きしている

応用

先のxml形式での更新をsql形式にすると

UPDATE ModifierArguments					/* ModifierArguments で更新 */
SET
	Name = 'Amount'							/* Name の内容を Amount に */
,	Value = 1								/* Value の内容を 1 に */
WHERE ModifierId = 'HANGAR_BONUS_AIR_SLOTS'	/* ModifierId が HANGAR_BONUS_AIR_SLOTS のとこだけで */
;											/* 終了 */

になる

これを応用して以下のような内容にすると

UPDATE ModifierArguments
SET Value = 10
WHERE ModifierId = 'TRAIT_CULTURE_PER_CITY_STATE_TRIBUTARY' AND Name = 'Amount'
;

ペリクレスのUAでの、「宗主国になっている都市国家ひとつにつき文化力+5%」が
「ひとつにつき文化力+10%」になる

応用の構成

Traits
TraitType
TRAIT_LEADER_SURROUNDED_BY_GLORY
TraitModifiers
TraitType
TRAIT_LEADER_SURROUNDED_BY_GLORY
ModifierId
TRAIT_CULTURE_PER_CITY_STATE_TRIBUTARY
Name
LOC_TRAIT_LEADER_SURROUNDED_BY_GLORY_NAME
Description
LOC_TRAIT_LEADER_SURROUNDED_BY_GLORY_DESCRIPTION
Modifiers
ModifierId
TRAIT_CULTURE_PER_CITY_STATE_TRIBUTARY
ModifierType
MODIFIER_PLAYER_ADJUST_YIELD_MODIFIER_PER_TRIBUTARY
ModifierArguments
ModifierId
TRAIT_CULTURE_PER_CITY_STATE_TRIBUTARY
Name
YieldType
Value
YIELD_CULTURE
ModifierArguments
ModifierId
TRAIT_CULTURE_PER_CITY_STATE_TRIBUTARY
Name
Amount
Value
5 → 10
  • プレイヤーの属国の数だけプレイヤーの産出量を調整する
    • 産出物の種類:文化力
    • 調整する産出量:+5% → +10%

応用の解説

このペリクレスのUAで使われてる「属国の数だけ産出量調整」のModifierTypeでは
ModifierArgumentsを複数使っているので

WHERE ModifierId = 'TRAIT_CULTURE_PER_CITY_STATE_TRIBUTARY'

WHEREModifierIdだけを指定していると
「文化力を調整する」となっている部分も更新してしまう

ModifierArguments
ModifierId
TRAIT_CULTURE_PER_CITY_STATE_TRIBUTARY
Name
YieldType
Value
YIELD_CULTURE → 10
ModifierArguments
ModifierId
TRAIT_CULTURE_PER_CITY_STATE_TRIBUTARY
Name
Amount
Value
5 → 10

【「10」を10%増加させる】 ではエラーでUA自体が無効になってしまうので

ModifierArgumentsが複数ある場合は
ModifierIdだけでなくNameも指定する