Modifier改変 4
Owner(所有者)の必要条件
タイルの必要条件のセクションにて、資源の種類が一致するかの条件を
<Modifiers>のSubjectRequirementSetIdにセットすることで
タイルに効果が発揮される条件を設定した
-
都市の領土の産出量を調整する
-
調整する産出量:+1
-
基本出力の種類:食料
-
調整するタイルに条件をつける (SubjectRequirementSetId)
これとは別に
<Modifiers>のOwnerRequirementSetIdにセットすることで
所有者(Owner)に、効果が発揮される条件を設定することができる
Owner条件の設定
水車小屋の「小麦の食料+1」のModifierに
以下のようにOwnerの条件を設定すると
BuildingModifiers
BuildingType
BUILDING_WATER_MILL
ModifierId
WATERMILL_ADDWHEATYIELD
Modifiers
ModifierId
WATERMILL_ADDWHEATYIELD
ModifierType
MODIFIER_CITY_PLOT_YIELDS_ADJUST_PLOT_YIELD
ModifierArguments
ModifierId
WATERMILL_ADDWHEATYIELD
Name
Amount
Value
1
ModifierArguments
ModifierId
WATERMILL_ADDWHEATYIELD
Name
YieldType
Value
YIELD_FOOD
SubjectRequirementSetId
RESOURCE_IS_WHEAT
OwnerRequirementSetId
CITY_HAS_4_POPULATION_REQUIREMENTS
RequirementSets
RequirementSetId
RESOURCE_IS_WHEAT
RequirementSetType
REQUIREMENTSET_TEST_ALL
RequirementSetRequirements
RequirementSetId
RESOURCE_IS_WHEAT
RequirementId
REQUIRES_WHEAT_IN_PLOT
RequirementSets
RequirementSetId
CITY_HAS_4_POPULATION_REQUIREMENTS
RequirementSetType
REQUIREMENTSET_TEST_ALL
RequirementSetRequirements
RequirementSetId
CITY_HAS_4_POPULATION_REQUIREMENTS
RequirementId
REQUIRES_POPULATION_4
Requirements
RequirementId
REQUIRES_WHEAT_IN_PLOT
RequirementType
REQUIREMENT_PLOT_RESOURCE_TYPE_MATCHES
RequirementArguments
RequirementId
REQUIRES_WHEAT_IN_PLOT
Name
ResourceType
Value
RESOURCE_WHEAT
Requirements
RequirementId
REQUIRES_POPULATION_4
RequirementType
REQUIREMENT_CITY_HAS_X_POPULATION
RequirementArguments
RequirementId
REQUIRES_POPULATION_4
Name
Amount
Value
4
-
都市の領土の産出量を調整する
-
調整する産出量:+1
-
基本出力の種類:食料
-
調整するタイルに条件をつける
-
所有者に条件をつける
赤字の部分の条件が加わり
これも満たさないと効果が発揮されなくなる
この状態の水車小屋の特性を説明文にすると
(水車小屋を建設したこの都市の領土内の)米の食料+1
この都市の人口が4以上の場合は、(この都市の領土内の)小麦の食料+1
となる
条件のRequirementTypeに使った "REQUIREMENT_CITY_HAS_X_POPULATION" は
都市の人口がX以上であることを条件づけるので
ここにおいては所有者=水車小屋が建設されている都市ということになる
別パターンのOwner条件
先ほどとは別の条件をOwnerRequirementSetIdにセットすると
BuildingModifiers
BuildingType
BUILDING_WATER_MILL
ModifierId
WATERMILL_ADDWHEATYIELD
Modifiers
ModifierId
WATERMILL_ADDWHEATYIELD
ModifierType
MODIFIER_CITY_PLOT_YIELDS_ADJUST_PLOT_YIELD
ModifierArguments
ModifierId
WATERMILL_ADDWHEATYIELD
Name
Amount
Value
1
ModifierArguments
ModifierId
WATERMILL_ADDWHEATYIELD
Name
YieldType
Value
YIELD_FOOD
SubjectRequirementSetId
RESOURCE_IS_WHEAT
OwnerRequirementSetId
PLAYER_HAS_CRAFTSMANSHIP_REQUIREMENTS
RequirementSets
RequirementSetId
RESOURCE_IS_WHEAT
RequirementSetType
REQUIREMENTSET_TEST_ALL
RequirementSetRequirements
RequirementSetId
RESOURCE_IS_WHEAT
RequirementId
REQUIRES_WHEAT_IN_PLOT
RequirementSets
RequirementSetId
PLAYER_HAS_CRAFTSMANSHIP_REQUIREMENTS
RequirementSetType
REQUIREMENTSET_TEST_ALL
RequirementSetRequirements
RequirementSetId
PLAYER_HAS_CRAFTSMANSHIP_REQUIREMENTS
RequirementId
REQUIRES_PLAYER_HAS_CRAFTSMANSHIP
Requirements
RequirementId
REQUIRES_WHEAT_IN_PLOT
RequirementType
REQUIREMENT_PLOT_RESOURCE_TYPE_MATCHES
RequirementArguments
RequirementId
REQUIRES_WHEAT_IN_PLOT
Name
ResourceType
Value
RESOURCE_WHEAT
Requirements
RequirementId
REQUIRES_PLAYER_HAS_CRAFTSMANSHIP
RequirementType
REQUIREMENT_PLAYER_HAS_CIVIC
RequirementArguments
RequirementId
REQUIRES_PLAYER_HAS_CRAFTSMANSHIP
Name
CivicType
Value
CIVIC_CRAFTSMANSHIP
-
都市の領土の産出量を調整する
-
調整する産出量:+1
-
基本出力の種類:食料
-
調整するタイルに条件をつける
-
所有者に条件をつける
この状態の特性は
(水車小屋を建設したこの都市の領土内の)米の食料+1
「職人技」 (社会制度) を研究済みの場合、(この都市の領土内の)小麦の食料+1
となる
RequirementTypeの"REQUIREMENT_PLAYER_HAS_CIVIC" は
特定の社会制度を持っているかの条件なので
このパターンでは所有者=水車小屋を持っているプレイヤーになる
OwnerとSubject
OwnerRequirementSetIdとSubjectRequirementSetIdは
Modifierを何にセットしたかと、ModifierTypeの種類によって、条件の対象が変わってくるので注意する必要がある
解説に使った水車小屋改変のsql
(水車小屋を建設したこの都市の領土内の)米の食料+1
この都市の人口が4以上の場合は、(この都市の領土内の)小麦の食料+1
INSERT INTO RequirementSets (RequirementSetId, RequirementSetType)
VALUES ('CITY_HAS_4_POPULATION_REQUIREMENTS', 'REQUIREMENTSET_TEST_ALL')
;
INSERT INTO RequirementSetRequirements (RequirementSetId, RequirementId)
VALUES ('CITY_HAS_4_POPULATION_REQUIREMENTS', 'REQUIRES_POPULATION_4')
;
INSERT INTO Requirements (RequirementId, RequirementType)
VALUES ('REQUIRES_POPULATION_4', 'REQUIREMENT_CITY_HAS_X_POPULATION')
;
INSERT INTO RequirementArguments (RequirementId, Name, Value)
VALUES ('REQUIRES_POPULATION_4', 'Amount', 4)
;
UPDATE Modifiers
SET OwnerRequirementSetId = 'CITY_HAS_4_POPULATION_REQUIREMENTS'
WHERE ModifierId = 'WATERMILL_ADDWHEATYIELD'
;
(水車小屋を建設したこの都市の領土内の)米の食料+1
「職人技」 (社会制度) を研究済みの場合、(この都市の領土内の)小麦の食料+1
INSERT INTO RequirementSets (RequirementSetId, RequirementSetType)
VALUES ('PLAYER_HAS_CRAFTSMANSHIP_REQUIREMENTS', 'REQUIREMENTSET_TEST_ALL')
;
INSERT INTO RequirementSetRequirements (RequirementSetId, RequirementId)
VALUES ('PLAYER_HAS_CRAFTSMANSHIP_REQUIREMENTS', 'REQUIRES_PLAYER_HAS_CRAFTSMANSHIP')
;
INSERT INTO Requirements (RequirementId, RequirementType)
VALUES ('REQUIRES_PLAYER_HAS_CRAFTSMANSHIP', 'REQUIREMENT_PLAYER_HAS_CIVIC')
;
INSERT INTO RequirementArguments (RequirementId, Name, Value)
VALUES ('REQUIRES_PLAYER_HAS_CRAFTSMANSHIP', 'CivicType', 'CIVIC_CRAFTSMANSHIP')
;
UPDATE Modifiers
SET OwnerRequirementSetId = 'PLAYER_HAS_CRAFTSMANSHIP_REQUIREMENTS'
WHERE ModifierId = 'WATERMILL_ADDWHEATYIELD'
;