Modifier改変 2

公式での効果差し替え

標準ルール

バビロン陥落
有力な文明に奇襲戦争を宣言してから10ターンの間、移動力+2。
占領している都市で産出量ペナルティが発生しない。
奇襲戦争を宣言しても戦争による疲労と好戦性ペナルティが増加しない (正式に宣戦布告した場合と同じ)。

RaF

バビロン陥落
有力な文明に奇襲戦争を宣言してから10ターンの間、移動力+2。
占領中の都市に守備隊ユニットがいると忠誠心+5。
奇襲戦争を宣言しても戦争による疲労と好戦性ペナルティが増加しない (正式に宣戦布告した場合と同じ)。

キュロスのUAであるバビロン陥落は、RaFでのシステム変更に伴い
ペナルティ無しから、忠誠心増加に変更になった

Modifierの構成

標準ルールでキュロスUAに設定されているModifierの構成は以下の通り

Traits
TraitType
TRAIT_LEADER_FALL_BABYLON
TraitModifiers
TraitType
TRAIT_LEADER_FALL_BABYLON
ModifierId
TRAIT_FALLBABYLON_NO_OCCUPATION_PENALTIES
TraitModifiers
TraitType
TRAIT_LEADER_FALL_BABYLON
ModifierId
TRAIT_FALLBABYLON_SURPRISE_MOVEMENT
TraitModifiers
TraitType
TRAIT_LEADER_FALL_BABYLON
ModifierId
TRAIT_FALLBABYLON_WARMONGER_MAX
Name
LOC_TRAIT_LEADER_FALL_BABYLON_NAME
Description
LOC_TRAIT_LEADER_FALL_BABYLON_DESCRIPTION
Modifiers
ModifierId
TRAIT_FALLBABYLON_NO_OCCUPATION_PENALTIES
ModifierType
MODIFIER_PLAYER_ADJUST_NO_OCCUPATION_PENALTIES
ModifierArguments
ModifierId
TRAIT_FALLBABYLON_NO_OCCUPATION_PENALTIES
Name
NoPenalties
Value
true
  • プレイヤーの占領ペナルティ無効を調整する
    • ペナルティなし:有効

RaFでの改変

<Modifiers>
	<Row>
		<ModifierId>TRAIT_ADDITIONAL_MARTIAL_LAW</ModifierId>
		<ModifierType>MODIFIER_PLAYER_LOYALTY_ADJUST_MARTIAL_LAW_MODIFIER</ModifierType>
	</Row>
</Modifiers>
<ModifierArguments>
	<Row>
		<ModifierId>TRAIT_ADDITIONAL_MARTIAL_LAW</ModifierId>
		<Name>Amount</Name>
		<Value>5</Value>
	</Row>
</ModifierArguments>
<TraitModifiers>
	<Update>
		<Where ModifierId="TRAIT_FALLBABYLON_NO_OCCUPATION_PENALTIES"/>
		<Set ModifierId="TRAIT_ADDITIONAL_MARTIAL_LAW"/>
	</Update>
</TraitModifiers>

RaFでは上記の内容が読み込まれて、キュロスUAが一部変更される

変更後の構成は以下のようになり

Traits
TraitType
TRAIT_LEADER_FALL_BABYLON
TraitModifiers
TraitType
TRAIT_LEADER_FALL_BABYLON
ModifierId
TRAIT_FALLBABYLON_NO_OCCUPATION_PENALTIES
TRAIT_ADDITIONAL_MARTIAL_LAW
TraitModifiers
TraitType
TRAIT_LEADER_FALL_BABYLON
ModifierId
TRAIT_FALLBABYLON_SURPRISE_MOVEMENT
TraitModifiers
TraitType
TRAIT_LEADER_FALL_BABYLON
ModifierId
TRAIT_FALLBABYLON_WARMONGER_MAX
Name
LOC_TRAIT_LEADER_FALL_BABYLON_NAME
Description
LOC_TRAIT_LEADER_FALL_BABYLON_DESCRIPTION
Modifiers
ModifierId
TRAIT_FALLBABYLON_NO_OCCUPATION_PENALTIES
ModifierType
MODIFIER_PLAYER_ADJUST_NO_OCCUPATION_PENALTIES
ModifierArguments
ModifierId
TRAIT_FALLBABYLON_NO_OCCUPATION_PENALTIES
Name
NoPenalties
Value
true
Modifiers
ModifierId
TRAIT_ADDITIONAL_MARTIAL_LAW
ModifierType
MODIFIER_PLAYER_LOYALTY_ADJUST_MARTIAL_LAW_MODIFIER
ModifierArguments
ModifierId
TRAIT_ADDITIONAL_MARTIAL_LAW
Name
Amount
Value
5

新しいModifierを作成して、旧効果が<TraitModifiers>にセットされている箇所を差し替えている

応用

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

INSERT INTO Modifiers (ModifierId, ModifierType)
VALUES ('TRAIT_ADDITIONAL_MARTIAL_LAW', 'MODIFIER_PLAYER_LOYALTY_ADJUST_MARTIAL_LAW_MODIFIER')
;
INSERT INTO ModifierArguments (ModifierId, Name, Value)
VALUES ('TRAIT_ADDITIONAL_MARTIAL_LAW', 'Amount', 5)
;
UPDATE TraitModifiers											/* TraitModifiers で更新 */
SET ModifierId = 'TRAIT_ADDITIONAL_MARTIAL_LAW'					/* ModifierId の内容を TRAIT_ADDITIONAL_MARTIAL_LAW に */
WHERE ModifierId = 'TRAIT_FALLBABYLON_NO_OCCUPATION_PENALTIES'	/* ModifierId が TRAIT_FALLBABYLON_NO_OCCUPATION_PENALTIES の箇所を */
;																/* 終了 */

になる

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

INSERT INTO Modifiers (ModifierId, ModifierType)
VALUES ('EIFFEL_TOWER_ADJUST_GARRISON_STRENGTH', 'MODIFIER_PLAYER_CITIES_ADJUST_INNER_DEFENSE')
;
INSERT INTO ModifierArguments (ModifierId, Name, Value)
VALUES ('EIFFEL_TOWER_ADJUST_GARRISON_STRENGTH', 'Amount', 10)
;
UPDATE BuildingModifiers
SET ModifierId = 'EIFFEL_TOWER_ADJUST_GARRISON_STRENGTH'
WHERE ModifierId = 'EIFFEL_TOWER_ADDAPPEAL'
;

エッフェル塔の効果が「すべてのタイルがアピール+2」から
「建てた都市の都市戦闘力+10」に差し替わる