Modifers, Requirements, TEST_ANY - Help Needed

racha

Prince
Joined
Jul 27, 2013
Messages
335
Location
Over there --->
I've been playing around with an edited version of the Great Governors mod and have run into a brick wall with a change I'm trying to make.

The original mod has a promotion that gives +3 production to horse tiles. Because I run Sukritact's resource mod I want to also apply a similar promotion to both horses and camels. I looked at how Wondrous Wonders applies the same bonus to all the civ-specific versions of the temple (in addition to the temple itself) and uses TEST_ANY in requirements so that if one of the buildings exists the bonus applies.

Here's my code for the governor in question. Instead of applying the bonus to any tile in this governor's city that has either horses or camels, it instead applies the bonus to all camel tiles everywhere and ignores all horse tiles. What am I doing wrong? If I comment the camel line out it all works as intended with horses only, so I assume I'm making a fundamental mistake with the requirements witchcraft.

Code:
INSERT OR REPLACE INTO Types
       (Type,                               Kind)
VALUES   ('GOVERNOR_ANIMAL',                   'KIND_GOVERNOR'),
       ('GOVERNOR_ANIMAL_PROMO_BASE',       'KIND_GOVERNOR_PROMOTION'),
       ('GOVERNOR_ANIMAL_PROMO_CATTLE',   'KIND_GOVERNOR_PROMOTION'),
       ('GOVERNOR_ANIMAL_PROMO_HORSES',   'KIND_GOVERNOR_PROMOTION'),
       ('GOVERNOR_ANIMAL_PROMO_DEER',       'KIND_GOVERNOR_PROMOTION'),
       ('GOVERNOR_ANIMAL_PROMO_SHEEP',       'KIND_GOVERNOR_PROMOTION'),
       ('GOVERNOR_ANIMAL_PROMO_IVORY',       'KIND_GOVERNOR_PROMOTION');

INSERT OR REPLACE INTO Governors
       (GovernorType,       Image,               Name,                       Title,                           ShortTitle,                       Description,                       IdentityPressure,   TransitionStrength,   PortraitImage,                       PortraitImageSelected)
VALUES   ('GOVERNOR_ANIMAL',   'GOVERNOR_ANIMAL',   'LOC_GOVERNOR_ANIMAL_NAME',   'LOC_GOVERNOR_ANIMAL_TITLE',   'LOC_GOVERNOR_ANIMAL_TITLE',   'LOC_GOVERNOR_ANIMAL_DESCRIPTION',   3,                   100,               'GovernorNormal_ResourceManager',   'GovernorSelected_ResourceManager');

INSERT OR REPLACE INTO GovernorPromotions
       (GovernorPromotionType,               Name,                                       Description,                                   Level,   Column,   BaseAbility)
VALUES   ('GOVERNOR_ANIMAL_PROMO_BASE',       'LOC_GOVERNOR_ANIMAL_PROMO_BASE_NAME',       'LOC_GOVERNOR_ANIMAL_PROMO_BASE_DESCRIPTION',   0,       1,       1),
       ('GOVERNOR_ANIMAL_PROMO_CATTLE',   'LOC_GOVERNOR_ANIMAL_PROMO_CATTLE_NAME',   'LOC_GOVERNOR_ANIMAL_PROMO_CATTLE_DESCRIPTION',   1,       0,       0),
       ('GOVERNOR_ANIMAL_PROMO_HORSES',   'LOC_GOVERNOR_ANIMAL_PROMO_HORSES_NAME',   'LOC_GOVERNOR_ANIMAL_PROMO_HORSES_DESCRIPTION',   1,       2,       0),
       ('GOVERNOR_ANIMAL_PROMO_DEER',       'LOC_GOVERNOR_ANIMAL_PROMO_DEER_NAME',       'LOC_GOVERNOR_ANIMAL_PROMO_DEER_DESCRIPTION',   2,       0,       0),
       ('GOVERNOR_ANIMAL_PROMO_SHEEP',       'LOC_GOVERNOR_ANIMAL_PROMO_SHEEP_NAME',       'LOC_GOVERNOR_ANIMAL_PROMO_SHEEP_DESCRIPTION',   2,       2,       0),
       ('GOVERNOR_ANIMAL_PROMO_IVORY',       'LOC_GOVERNOR_ANIMAL_PROMO_IVORY_NAME',       'LOC_GOVERNOR_ANIMAL_PROMO_IVORY_DESCRIPTION',   3,       1,       0);

INSERT OR REPLACE INTO GovernorPromotionSets
       (GovernorType,       GovernorPromotion)
VALUES   ('GOVERNOR_ANIMAL',   'GOVERNOR_ANIMAL_PROMO_BASE'),
       ('GOVERNOR_ANIMAL',   'GOVERNOR_ANIMAL_PROMO_CATTLE'),
       ('GOVERNOR_ANIMAL',   'GOVERNOR_ANIMAL_PROMO_HORSES'),
       ('GOVERNOR_ANIMAL',   'GOVERNOR_ANIMAL_PROMO_DEER'),
       ('GOVERNOR_ANIMAL',   'GOVERNOR_ANIMAL_PROMO_SHEEP'),
       ('GOVERNOR_ANIMAL',   'GOVERNOR_ANIMAL_PROMO_IVORY');

INSERT OR REPLACE INTO GovernorPromotionPrereqs
       (GovernorPromotionType,               PrereqGovernorPromotion)
VALUES   ('GOVERNOR_ANIMAL_PROMO_CATTLE',   'GOVERNOR_ANIMAL_PROMO_BASE'),
       ('GOVERNOR_ANIMAL_PROMO_HORSES',   'GOVERNOR_ANIMAL_PROMO_BASE'),
       ('GOVERNOR_ANIMAL_PROMO_DEER',       'GOVERNOR_ANIMAL_PROMO_BASE'),
       ('GOVERNOR_ANIMAL_PROMO_SHEEP',       'GOVERNOR_ANIMAL_PROMO_BASE'),
       ('GOVERNOR_ANIMAL_PROMO_IVORY',       'GOVERNOR_ANIMAL_PROMO_BASE');

INSERT OR REPLACE INTO GovernorPromotionModifiers
       (GovernorPromotionType,               ModifierId)
VALUES   ('GOVERNOR_ANIMAL_PROMO_BASE',       'ANIMAL_PROMO_BASE'),
       ('GOVERNOR_ANIMAL_PROMO_BASE',       'ANIMAL_PROMO_BASE2'),

       ('GOVERNOR_ANIMAL_PROMO_CATTLE',   'ANIMAL_PROMO_CATTLEIDENTITY'),
       ('GOVERNOR_ANIMAL_PROMO_CATTLE',   'ANIMAL_PROMO_CATTLEBONUS'),
       ('GOVERNOR_ANIMAL_PROMO_CATTLE',   'ANIMAL_PROMO_CATTLEBONUSTWO'),

       ('GOVERNOR_ANIMAL_PROMO_HORSES',   'ANIMAL_PROMO_HORSESIDENTITY'),
       ('GOVERNOR_ANIMAL_PROMO_HORSES',   'ANIMAL_PROMO_HORSESBONUS'),
       ('GOVERNOR_ANIMAL_PROMO_HORSES',   'ANIMAL_PROMO_HORSESBONUSTWO'),

       ('GOVERNOR_ANIMAL_PROMO_DEER',       'ANIMAL_PROMO_DEERIDENTITY'),
       ('GOVERNOR_ANIMAL_PROMO_DEER',       'ANIMAL_PROMO_DEERBONUS'),
       ('GOVERNOR_ANIMAL_PROMO_DEER',       'ANIMAL_PROMO_DEERBONUSTWO'),

       ('GOVERNOR_ANIMAL_PROMO_SHEEP',       'ANIMAL_PROMO_SHEEPIDENTITY'),
       ('GOVERNOR_ANIMAL_PROMO_SHEEP',       'ANIMAL_PROMO_SHEEPBONUS'),
       ('GOVERNOR_ANIMAL_PROMO_SHEEP',       'ANIMAL_PROMO_SHEEPBONUSTWO'),

       ('GOVERNOR_ANIMAL_PROMO_IVORY',       'ANIMAL_PROMO_IVORYIDENTITY'),
       ('GOVERNOR_ANIMAL_PROMO_IVORY',       'ANIMAL_PROMO_IVORYBONUS'),
       ('GOVERNOR_ANIMAL_PROMO_IVORY',       'ANIMAL_PROMO_IVORYBONUSTWO');

INSERT OR REPLACE INTO Requirements
       (RequirementId,                   RequirementType)
VALUES   ('REQUIRES_RESOURCE_IS_CATTLE',   'REQUIREMENT_PLOT_RESOURCE_TYPE_MATCHES'),
       ('REQUIRES_RESOURCE_IS_HORSES',   'REQUIREMENT_PLOT_RESOURCE_TYPE_MATCHES'),
       ('REQUIRES_RESOURCE_IS_DEER',   'REQUIREMENT_PLOT_RESOURCE_TYPE_MATCHES'),
       ('REQUIRES_RESOURCE_IS_SHEEP',   'REQUIREMENT_PLOT_RESOURCE_TYPE_MATCHES'),
       ('REQUIRES_RESOURCE_IS_IVORY',   'REQUIREMENT_PLOT_RESOURCE_TYPE_MATCHES');

INSERT OR REPLACE INTO RequirementArguments
       (RequirementId,                   Name,           Value)
VALUES   ('REQUIRES_RESOURCE_IS_CATTLE',   'ResourceType',   'RESOURCE_CATTLE'),
       -- ('REQUIRES_RESOURCE_IS_CATTLE',   'ResourceType',   'RESOURCE_DLV_BISON'),
       ('REQUIRES_RESOURCE_IS_HORSES',   'ResourceType',   'RESOURCE_HORSES'),       -- }
       ('REQUIRES_RESOURCE_IS_HORSES',   'ResourceType',   'RESOURCE_SUK_CAMEL'),  -- } This, plus TEST_ANY should mean both resources get the benefit, no?
       ('REQUIRES_RESOURCE_IS_DEER',   'ResourceType',   'RESOURCE_DEER'),
       -- ('REQUIRES_RESOURCE_IS_DEER',   'ResourceType',   'RESOURCE_AOM_REINDEER'),
       ('REQUIRES_RESOURCE_IS_SHEEP',   'ResourceType',   'RESOURCE_SHEEP'),
       ('REQUIRES_RESOURCE_IS_IVORY',   'ResourceType',   'RESOURCE_IVORY');

INSERT OR REPLACE INTO RequirementSets
       (RequirementSetId,           RequirementSetType)
VALUES   ('RACHA_PLOT_IS_CATTLE',   'REQUIREMENTSET_TEST_ALL'),
       ('RACHA_PLOT_IS_HORSES',   'REQUIREMENTSET_TEST_ANY'),
       ('RACHA_PLOT_IS_DEER',       'REQUIREMENTSET_TEST_ALL'),
       ('RACHA_PLOT_IS_SHEEP',       'REQUIREMENTSET_TEST_ALL'),
       ('RACHA_PLOT_IS_IVORY',       'REQUIREMENTSET_TEST_ALL');
   
INSERT OR REPLACE INTO RequirementSetRequirements
       (RequirementSetId,           RequirementId)
VALUES   ('RACHA_PLOT_IS_CATTLE',   'REQUIRES_RESOURCE_IS_CATTLE'),
       ('RACHA_PLOT_IS_HORSES',   'REQUIRES_RESOURCE_IS_HORSES'),
       ('RACHA_PLOT_IS_DEER',       'REQUIRES_RESOURCE_IS_DEER'),
       ('RACHA_PLOT_IS_SHEEP',       'REQUIRES_RESOURCE_IS_SHEEP'),
       ('RACHA_PLOT_IS_IVORY',       'REQUIRES_RESOURCE_IS_IVORY');

INSERT OR REPLACE INTO Modifiers
       (ModifierId,                   ModifierType,                                           SubjectRequirementSetId)
VALUES   ('ANIMAL_PROMO_BASE',           'MODIFIER_PLAYER_ADJUST_GREAT_PERSON_POINTS',           NULL),
       ('ANIMAL_PROMO_BASETWO',       'MODIFIER_PLAYER_CITIES_ADJUST_BUILDING_YIELD_CHANGE',   NULL),

       ('ANIMAL_PROMO_CATTLEIDENTITY',   'MODIFIER_SINGLE_CITY_ADJUST_IDENTITY_PER_TURN',       NULL),
       ('ANIMAL_PROMO_CATTLEBONUS',   'MODIFIER_PLAYER_ADJUST_PLOT_YIELD',                   'RACHA_PLOT_IS_CATTLE'),
       ('ANIMAL_PROMO_CATTLEBONUSTWO',   'MODIFIER_PLAYER_ADJUST_PLOT_YIELD',                   'RACHA_PLOT_IS_CATTLE'),
       
       ('ANIMAL_PROMO_HORSESIDENTITY',   'MODIFIER_SINGLE_CITY_ADJUST_IDENTITY_PER_TURN',       NULL),
       ('ANIMAL_PROMO_HORSESBONUS',   'MODIFIER_PLAYER_ADJUST_PLOT_YIELD',                   'RACHA_PLOT_IS_HORSES'),
       ('ANIMAL_PROMO_HORSESBONUSTWO',   'MODIFIER_PLAYER_ADJUST_PLOT_YIELD',                   'RACHA_PLOT_IS_HORSES'),

       ('ANIMAL_PROMO_DEERIDENTITY',   'MODIFIER_SINGLE_CITY_ADJUST_IDENTITY_PER_TURN',       NULL),
       ('ANIMAL_PROMO_DEERBONUS',       'MODIFIER_PLAYER_ADJUST_PLOT_YIELD',                   'RACHA_PLOT_IS_DEER'),
       ('ANIMAL_PROMO_DEERBONUSTWO',   'MODIFIER_PLAYER_ADJUST_PLOT_YIELD',                   'RACHA_PLOT_IS_DEER'),

       ('ANIMAL_PROMO_SHEEPIDENTITY',   'MODIFIER_SINGLE_CITY_ADJUST_IDENTITY_PER_TURN',       NULL),
       ('ANIMAL_PROMO_SHEEPBONUS',       'MODIFIER_PLAYER_ADJUST_PLOT_YIELD',                   'RACHA_PLOT_IS_SHEEP'),
       ('ANIMAL_PROMO_SHEEPBONUSTWO',   'MODIFIER_PLAYER_ADJUST_PLOT_YIELD',                   'RACHA_PLOT_IS_SHEEP'),
       
       ('ANIMAL_PROMO_IVORYIDENTITY',   'MODIFIER_SINGLE_CITY_ADJUST_IDENTITY_PER_TURN',       NULL),
       ('ANIMAL_PROMO_IVORYBONUS',       'MODIFIER_PLAYER_ADJUST_PLOT_YIELD',                   'RACHA_PLOT_IS_IVORY'),
       ('ANIMAL_PROMO_IVORYBONUSTWO',   'MODIFIER_PLAYER_ADJUST_PLOT_YIELD',                   'RACHA_PLOT_IS_IVORY');

INSERT OR REPLACE INTO ModifierArguments
       (ModifierId,                   Name,                   Value)
VALUES   ('ANIMAL_PROMO_BASE',           'GreatPersonClassType',   'GREAT_PERSON_CLASS_SCIENTIST'),
       ('ANIMAL_PROMO_BASE',           'Amount',               2),
       ('ANIMAL_PROMO_BASETWO',       'BuildingType',           'BUILDING_RESEARCH_LAB'),
       ('ANIMAL_PROMO_BASETWO',       'YieldType',           'YIELD_FOOD'),
       ('ANIMAL_PROMO_BASETWO',       'Amount',               2),

       ('ANIMAL_PROMO_CATTLEIDENTITY',   'Amount',               -2),
       ('ANIMAL_PROMO_CATTLEBONUS',   'YieldType',           'YIELD_FOOD'),
       ('ANIMAL_PROMO_CATTLEBONUS',   'Amount',               2),
       ('ANIMAL_PROMO_CATTLEBONUSTWO',   'YieldType',           'YIELD_SCIENCE'),
       ('ANIMAL_PROMO_CATTLEBONUSTWO',   'Amount',               1),
       
       ('ANIMAL_PROMO_HORSESIDENTITY',   'Amount',               -2),
       ('ANIMAL_PROMO_HORSESBONUS',   'YieldType',           'YIELD_PRODUCTION'),
       ('ANIMAL_PROMO_HORSESBONUS',   'Amount',               2),
       ('ANIMAL_PROMO_HORSESBONUSTWO',   'YieldType',           'YIELD_SCIENCE'),
       ('ANIMAL_PROMO_HORSESBONUSTWO',   'Amount',               1),
       
       ('ANIMAL_PROMO_DEERIDENTITY',   'Amount',               -2),
       ('ANIMAL_PROMO_DEERBONUS',       'YieldType',           'YIELD_FOOD'),
       ('ANIMAL_PROMO_DEERBONUS',       'Amount',               1),
       ('ANIMAL_PROMO_DEERBONUSTWO',   'YieldType',           'YIELD_GOLD'),
       ('ANIMAL_PROMO_DEERBONUSTWO',   'Amount',               2),
       
       ('ANIMAL_PROMO_SHEEPIDENTITY',   'Amount',               -2),
       ('ANIMAL_PROMO_SHEEPBONUS',       'YieldType',           'YIELD_FOOD'),
       ('ANIMAL_PROMO_SHEEPBONUS',       'Amount',               2),
       ('ANIMAL_PROMO_SHEEPBONUSTWO',   'YieldType',           'YIELD_GOLD'),
       ('ANIMAL_PROMO_SHEEPBONUSTWO',   'Amount',               1),

       ('ANIMAL_PROMO_IVORYIDENTITY',   'Amount',               -2),
       ('ANIMAL_PROMO_IVORYBONUS',       'YieldType',           'YIELD_PRODUCTION'),
       ('ANIMAL_PROMO_IVORYBONUS',       'Amount',               2),
       ('ANIMAL_PROMO_IVORYBONUSTWO',   'YieldType',           'YIELD_SCIENCE'),
       ('ANIMAL_PROMO_IVORYBONUSTWO',   'Amount',               1);
 
Code:
INSERT OR REPLACE INTO Requirements
       (RequirementId,                   RequirementType)
VALUES   ('REQUIRES_RESOURCE_IS_CATTLE',   'REQUIREMENT_PLOT_RESOURCE_TYPE_MATCHES'),
       ('REQUIRES_RESOURCE_IS_HORSES',   'REQUIREMENT_PLOT_RESOURCE_TYPE_MATCHES'),
       ('REQUIRES_RESOURCE_IS_SUK_CAMEL',   'REQUIREMENT_PLOT_RESOURCE_TYPE_MATCHES'),
       ('REQUIRES_RESOURCE_IS_DEER',   'REQUIREMENT_PLOT_RESOURCE_TYPE_MATCHES'),
       ('REQUIRES_RESOURCE_IS_SHEEP',   'REQUIREMENT_PLOT_RESOURCE_TYPE_MATCHES'),
       ('REQUIRES_RESOURCE_IS_IVORY',   'REQUIREMENT_PLOT_RESOURCE_TYPE_MATCHES');

INSERT OR REPLACE INTO RequirementArguments
       (RequirementId,                   Name,           Value)
VALUES   ('REQUIRES_RESOURCE_IS_CATTLE',   'ResourceType',   'RESOURCE_CATTLE'),
       -- ('REQUIRES_RESOURCE_IS_CATTLE',   'ResourceType',   'RESOURCE_DLV_BISON'),
       ('REQUIRES_RESOURCE_IS_HORSES',   'ResourceType',   'RESOURCE_HORSES'),
       ('REQUIRES_RESOURCE_IS_SUK_CAMEL',   'ResourceType',   'RESOURCE_SUK_CAMEL'),
       ('REQUIRES_RESOURCE_IS_DEER',   'ResourceType',   'RESOURCE_DEER'),
       -- ('REQUIRES_RESOURCE_IS_DEER',   'ResourceType',   'RESOURCE_AOM_REINDEER'),
       ('REQUIRES_RESOURCE_IS_SHEEP',   'ResourceType',   'RESOURCE_SHEEP'),
       ('REQUIRES_RESOURCE_IS_IVORY',   'ResourceType',   'RESOURCE_IVORY');

INSERT OR REPLACE INTO RequirementSetRequirements
       (RequirementSetId,           RequirementId)
VALUES   ('RACHA_PLOT_IS_CATTLE',   'REQUIRES_RESOURCE_IS_CATTLE'),
       ('RACHA_PLOT_IS_HORSES',   'REQUIRES_RESOURCE_IS_HORSES'),
       ('RACHA_PLOT_IS_HORSES',   'REQUIRES_RESOURCE_IS_SUK_CAMEL'),
       ('RACHA_PLOT_IS_DEER',       'REQUIRES_RESOURCE_IS_DEER'),
       ('RACHA_PLOT_IS_SHEEP',       'REQUIRES_RESOURCE_IS_SHEEP'),
       ('RACHA_PLOT_IS_IVORY',       'REQUIRES_RESOURCE_IS_IVORY');
Table "RequirementArguments" must have a unique combination of RequirementId and Name for each row added to the table, so you cannot do this part of your original code
Code:
('REQUIRES_RESOURCE_IS_HORSES',   'ResourceType',   'RESOURCE_HORSES'),
('REQUIRES_RESOURCE_IS_HORSES',   'ResourceType',   'RESOURCE_SUK_CAMEL'),
The second row you are stating is repeating a combination already given in the first for columns RequirementId and Name. It is necessary to create a second RequirementId for the second resouce, and to link that RequirementId to the RequirementSetId in table RequirementSetRequirements. Theoretically an infinite number of discreet RequirementId's can be attached to the same RequirementSet, whereas only one ResourceType can be linked to a single RequirementId.
 
Thanks, LeeS! I've now got two resources getting the benefits from a single promotion, but I still have the problem of the bonus applying to all of my cities, even thought I've specified MODIFIER_SINGLE_CITY_ADJUST_IDENTITY_PER_TURN. Can anyone tell me where I'm going wrong with this?

Code:
INSERT OR REPLACE INTO Types
       (Type,                               Kind)
VALUES   ('GOVERNOR_ANIMAL',                   'KIND_GOVERNOR'),
       ('GOVERNOR_ANIMAL_PROMO_BASE',       'KIND_GOVERNOR_PROMOTION'),
       ('GOVERNOR_ANIMAL_PROMO_CATTLE',   'KIND_GOVERNOR_PROMOTION'),
       ('GOVERNOR_ANIMAL_PROMO_HORSES',   'KIND_GOVERNOR_PROMOTION'),
       ('GOVERNOR_ANIMAL_PROMO_DEER',       'KIND_GOVERNOR_PROMOTION'),
       ('GOVERNOR_ANIMAL_PROMO_SHEEP',       'KIND_GOVERNOR_PROMOTION'),
       ('GOVERNOR_ANIMAL_PROMO_IVORY',       'KIND_GOVERNOR_PROMOTION');

INSERT OR REPLACE INTO Governors
       (GovernorType,       Image,               Name,                       Title,                           ShortTitle,                       Description,                       IdentityPressure,   TransitionStrength,   PortraitImage,                       PortraitImageSelected)
VALUES   ('GOVERNOR_ANIMAL',   'GOVERNOR_ANIMAL',   'LOC_GOVERNOR_ANIMAL_NAME',   'LOC_GOVERNOR_ANIMAL_TITLE',   'LOC_GOVERNOR_ANIMAL_TITLE',   'LOC_GOVERNOR_ANIMAL_DESCRIPTION',   -8,                   100,               'GovernorNormal_ResourceManager',   'GovernorSelected_ResourceManager');

INSERT OR REPLACE INTO GovernorPromotions
       (GovernorPromotionType,               Name,                                       Description,                                   Level,   Column,   BaseAbility)
VALUES   ('GOVERNOR_ANIMAL_PROMO_BASE',       'LOC_GOVERNOR_ANIMAL_PROMO_BASE_NAME',       'LOC_GOVERNOR_ANIMAL_PROMO_BASE_DESCRIPTION',   0,       1,       1),
       ('GOVERNOR_ANIMAL_PROMO_CATTLE',   'LOC_GOVERNOR_ANIMAL_PROMO_CATTLE_NAME',   'LOC_GOVERNOR_ANIMAL_PROMO_CATTLE_DESCRIPTION',   1,       0,       0),
       ('GOVERNOR_ANIMAL_PROMO_HORSES',   'LOC_GOVERNOR_ANIMAL_PROMO_HORSES_NAME',   'LOC_GOVERNOR_ANIMAL_PROMO_HORSES_DESCRIPTION',   1,       2,       0),
       ('GOVERNOR_ANIMAL_PROMO_DEER',       'LOC_GOVERNOR_ANIMAL_PROMO_DEER_NAME',       'LOC_GOVERNOR_ANIMAL_PROMO_DEER_DESCRIPTION',   2,       0,       0),
       ('GOVERNOR_ANIMAL_PROMO_SHEEP',       'LOC_GOVERNOR_ANIMAL_PROMO_SHEEP_NAME',       'LOC_GOVERNOR_ANIMAL_PROMO_SHEEP_DESCRIPTION',   2,       2,       0),
       ('GOVERNOR_ANIMAL_PROMO_IVORY',       'LOC_GOVERNOR_ANIMAL_PROMO_IVORY_NAME',       'LOC_GOVERNOR_ANIMAL_PROMO_IVORY_DESCRIPTION',   3,       1,       0);

INSERT OR REPLACE INTO GovernorPromotionSets
       (GovernorType,       GovernorPromotion)
VALUES   ('GOVERNOR_ANIMAL',   'GOVERNOR_ANIMAL_PROMO_BASE'),
       ('GOVERNOR_ANIMAL',   'GOVERNOR_ANIMAL_PROMO_CATTLE'),
       ('GOVERNOR_ANIMAL',   'GOVERNOR_ANIMAL_PROMO_HORSES'),
       ('GOVERNOR_ANIMAL',   'GOVERNOR_ANIMAL_PROMO_DEER'),
       ('GOVERNOR_ANIMAL',   'GOVERNOR_ANIMAL_PROMO_SHEEP'),
       ('GOVERNOR_ANIMAL',   'GOVERNOR_ANIMAL_PROMO_IVORY');

INSERT OR REPLACE INTO GovernorPromotionPrereqs
       (GovernorPromotionType,               PrereqGovernorPromotion)
VALUES   ('GOVERNOR_ANIMAL_PROMO_CATTLE',   'GOVERNOR_ANIMAL_PROMO_BASE'),
       ('GOVERNOR_ANIMAL_PROMO_HORSES',   'GOVERNOR_ANIMAL_PROMO_BASE'),
       ('GOVERNOR_ANIMAL_PROMO_DEER',       'GOVERNOR_ANIMAL_PROMO_BASE'),
       ('GOVERNOR_ANIMAL_PROMO_SHEEP',       'GOVERNOR_ANIMAL_PROMO_BASE'),
       ('GOVERNOR_ANIMAL_PROMO_IVORY',       'GOVERNOR_ANIMAL_PROMO_BASE');

INSERT OR REPLACE INTO GovernorPromotionModifiers
       (GovernorPromotionType,               ModifierId)
VALUES   ('GOVERNOR_ANIMAL_PROMO_BASE',       'ANIMAL_PROMO_BASE'),
       ('GOVERNOR_ANIMAL_PROMO_BASE',       'ANIMAL_PROMO_BASE2'),

       ('GOVERNOR_ANIMAL_PROMO_CATTLE',   'ANIMAL_PROMO_CATTLEIDENTITY'),
       ('GOVERNOR_ANIMAL_PROMO_CATTLE',   'ANIMAL_PROMO_CATTLEBONUS'),
       ('GOVERNOR_ANIMAL_PROMO_CATTLE',   'ANIMAL_PROMO_CATTLEBONUSTWO'),

       ('GOVERNOR_ANIMAL_PROMO_HORSES',   'ANIMAL_PROMO_HORSESIDENTITY'),
       ('GOVERNOR_ANIMAL_PROMO_HORSES',   'ANIMAL_PROMO_HORSESBONUS'),
       ('GOVERNOR_ANIMAL_PROMO_HORSES',   'ANIMAL_PROMO_HORSESBONUSTWO'),

       ('GOVERNOR_ANIMAL_PROMO_DEER',       'ANIMAL_PROMO_DEERIDENTITY'),
       ('GOVERNOR_ANIMAL_PROMO_DEER',       'ANIMAL_PROMO_DEERBONUS'),
       ('GOVERNOR_ANIMAL_PROMO_DEER',       'ANIMAL_PROMO_DEERBONUSTWO'),

       ('GOVERNOR_ANIMAL_PROMO_SHEEP',       'ANIMAL_PROMO_SHEEPIDENTITY'),
       ('GOVERNOR_ANIMAL_PROMO_SHEEP',       'ANIMAL_PROMO_SHEEPBONUS'),
       ('GOVERNOR_ANIMAL_PROMO_SHEEP',       'ANIMAL_PROMO_SHEEPBONUSTWO'),

       ('GOVERNOR_ANIMAL_PROMO_IVORY',       'ANIMAL_PROMO_IVORYIDENTITY'),
       ('GOVERNOR_ANIMAL_PROMO_IVORY',       'ANIMAL_PROMO_IVORYBONUS'),
       ('GOVERNOR_ANIMAL_PROMO_IVORY',       'ANIMAL_PROMO_IVORYBONUSTWO');

INSERT OR REPLACE INTO Requirements
       (RequirementId,                       RequirementType)
VALUES   ('REQUIRES_RESOURCE_IS_CATTLE',       'REQUIREMENT_PLOT_RESOURCE_TYPE_MATCHES'),
       ('REQUIRES_RESOURCE_IS_REINDEER',   'REQUIREMENT_PLOT_RESOURCE_TYPE_MATCHES'),
       ('REQUIRES_RESOURCE_IS_HORSES',       'REQUIREMENT_PLOT_RESOURCE_TYPE_MATCHES'),
       ('REQUIRES_RESOURCE_IS_CAMELS',       'REQUIREMENT_PLOT_RESOURCE_TYPE_MATCHES'),
       ('REQUIRES_RESOURCE_IS_DEER',       'REQUIREMENT_PLOT_RESOURCE_TYPE_MATCHES'),
       ('REQUIRES_RESOURCE_IS_BISON',       'REQUIREMENT_PLOT_RESOURCE_TYPE_MATCHES'),
       ('REQUIRES_RESOURCE_IS_SHEEP',       'REQUIREMENT_PLOT_RESOURCE_TYPE_MATCHES'),
       ('REQUIRES_RESOURCE_IS_IVORY',       'REQUIREMENT_PLOT_RESOURCE_TYPE_MATCHES');

INSERT OR REPLACE INTO RequirementArguments
       (RequirementId,                       Name,           Value)
VALUES   ('REQUIRES_RESOURCE_IS_CATTLE',       'ResourceType',   'RESOURCE_CATTLE'),
       ('REQUIRES_RESOURCE_IS_REINDEER',   'ResourceType',   'RESOURCE_AOM_REINDEER'),
       ('REQUIRES_RESOURCE_IS_HORSES',       'ResourceType',   'RESOURCE_HORSES'),
       ('REQUIRES_RESOURCE_IS_CAMELS',       'ResourceType',   'RESOURCE_SUK_CAMEL'),
       ('REQUIRES_RESOURCE_IS_DEER',       'ResourceType',   'RESOURCE_DEER'),
       ('REQUIRES_RESOURCE_IS_BISON',       'ResourceType',   'RESOURCE_DLV_BISON'),
       ('REQUIRES_RESOURCE_IS_SHEEP',       'ResourceType',   'RESOURCE_SHEEP'),
       ('REQUIRES_RESOURCE_IS_IVORY',       'ResourceType',   'RESOURCE_IVORY');

INSERT OR REPLACE INTO RequirementSets
       (RequirementSetId,                   RequirementSetType)
VALUES   ('RACHA_PLOT_IS_CATTLE_REINDEER',   'REQUIREMENTSET_TEST_ANY'),
       ('RACHA_PLOT_IS_HORSES_CAMELS',       'REQUIREMENTSET_TEST_ANY'),
       ('RACHA_PLOT_IS_DEER_BISON',       'REQUIREMENTSET_TEST_ANY'),
       ('RACHA_PLOT_IS_SHEEP',               'REQUIREMENTSET_TEST_ALL'),
       ('RACHA_PLOT_IS_IVORY',               'REQUIREMENTSET_TEST_ALL');
   
INSERT OR REPLACE INTO RequirementSetRequirements
       (RequirementSetId,                   RequirementId)
VALUES   ('RACHA_PLOT_IS_CATTLE_REINDEER',   'REQUIRES_RESOURCE_IS_CATTLE'),
       ('RACHA_PLOT_IS_CATTLE_REINDEER',   'REQUIRES_RESOURCE_IS_REINDEER'),
       ('RACHA_PLOT_IS_HORSES_CAMELS',       'REQUIRES_RESOURCE_IS_HORSES'),
       ('RACHA_PLOT_IS_HORSES_CAMELS',       'REQUIRES_RESOURCE_IS_CAMELS'),
       ('RACHA_PLOT_IS_DEER_BISON',       'REQUIRES_RESOURCE_IS_DEER'),
       ('RACHA_PLOT_IS_DEER_BISON',       'REQUIRES_RESOURCE_IS_BISON'),
       ('RACHA_PLOT_IS_SHEEP',               'REQUIRES_RESOURCE_IS_SHEEP'),
       ('RACHA_PLOT_IS_IVORY',               'REQUIRES_RESOURCE_IS_IVORY');

INSERT OR REPLACE INTO Modifiers
       (ModifierId,                   ModifierType,                                           SubjectRequirementSetId)
VALUES   ('ANIMAL_PROMO_BASE',           'MODIFIER_PLAYER_ADJUST_GREAT_PERSON_POINTS',           NULL),
       ('ANIMAL_PROMO_BASETWO',       'MODIFIER_PLAYER_CITIES_ADJUST_BUILDING_YIELD_CHANGE',   NULL),

       ('ANIMAL_PROMO_CATTLEIDENTITY',   'MODIFIER_SINGLE_CITY_ADJUST_IDENTITY_PER_TURN',       NULL),
       ('ANIMAL_PROMO_CATTLEBONUS',   'MODIFIER_PLAYER_ADJUST_PLOT_YIELD',                   'RACHA_PLOT_IS_CATTLE_REINDEER'),
       ('ANIMAL_PROMO_CATTLEBONUSTWO',   'MODIFIER_PLAYER_ADJUST_PLOT_YIELD',                   'RACHA_PLOT_IS_CATTLE_REINDEER'),
       
       ('ANIMAL_PROMO_HORSESIDENTITY',   'MODIFIER_SINGLE_CITY_ADJUST_IDENTITY_PER_TURN',       NULL),
       ('ANIMAL_PROMO_HORSESBONUS',   'MODIFIER_PLAYER_ADJUST_PLOT_YIELD',                   'RACHA_PLOT_IS_HORSES_CAMELS'),
       ('ANIMAL_PROMO_HORSESBONUSTWO',   'MODIFIER_PLAYER_ADJUST_PLOT_YIELD',                   'RACHA_PLOT_IS_HORSES_CAMELS'),

       ('ANIMAL_PROMO_DEERIDENTITY',   'MODIFIER_SINGLE_CITY_ADJUST_IDENTITY_PER_TURN',       NULL),
       ('ANIMAL_PROMO_DEERBONUS',       'MODIFIER_PLAYER_ADJUST_PLOT_YIELD',                   'RACHA_PLOT_IS_DEER_BISON'),
       ('ANIMAL_PROMO_DEERBONUSTWO',   'MODIFIER_PLAYER_ADJUST_PLOT_YIELD',                   'RACHA_PLOT_IS_DEER_BISON'),

       ('ANIMAL_PROMO_SHEEPIDENTITY',   'MODIFIER_SINGLE_CITY_ADJUST_IDENTITY_PER_TURN',       NULL),
       ('ANIMAL_PROMO_SHEEPBONUS',       'MODIFIER_PLAYER_ADJUST_PLOT_YIELD',                   'RACHA_PLOT_IS_SHEEP'),
       ('ANIMAL_PROMO_SHEEPBONUSTWO',   'MODIFIER_PLAYER_ADJUST_PLOT_YIELD',                   'RACHA_PLOT_IS_SHEEP'),
       
       ('ANIMAL_PROMO_IVORYIDENTITY',   'MODIFIER_SINGLE_CITY_ADJUST_IDENTITY_PER_TURN',       NULL),
       ('ANIMAL_PROMO_IVORYBONUS',       'MODIFIER_PLAYER_ADJUST_PLOT_YIELD',                   'RACHA_PLOT_IS_IVORY'),
       ('ANIMAL_PROMO_IVORYBONUSTWO',   'MODIFIER_PLAYER_ADJUST_PLOT_YIELD',                   'RACHA_PLOT_IS_IVORY');

INSERT OR REPLACE INTO ModifierArguments
       (ModifierId,                   Name,                   Value)
VALUES   ('ANIMAL_PROMO_BASE',           'GreatPersonClassType',   'GREAT_PERSON_CLASS_SCIENTIST'),
       ('ANIMAL_PROMO_BASE',           'Amount',               2),
       ('ANIMAL_PROMO_BASETWO',       'BuildingType',           'BUILDING_RESEARCH_LAB'),
       ('ANIMAL_PROMO_BASETWO',       'YieldType',           'YIELD_FOOD'),
       ('ANIMAL_PROMO_BASETWO',       'Amount',               2),

       ('ANIMAL_PROMO_CATTLEIDENTITY',   'Amount',               -2),
       ('ANIMAL_PROMO_CATTLEBONUS',   'YieldType',           'YIELD_FOOD'),
       ('ANIMAL_PROMO_CATTLEBONUS',   'Amount',               2),
       ('ANIMAL_PROMO_CATTLEBONUSTWO',   'YieldType',           'YIELD_SCIENCE'),
       ('ANIMAL_PROMO_CATTLEBONUSTWO',   'Amount',               1),
       
       ('ANIMAL_PROMO_HORSESIDENTITY',   'Amount',               -2),
       ('ANIMAL_PROMO_HORSESBONUS',   'YieldType',           'YIELD_PRODUCTION'),
       ('ANIMAL_PROMO_HORSESBONUS',   'Amount',               2),
       ('ANIMAL_PROMO_HORSESBONUSTWO',   'YieldType',           'YIELD_SCIENCE'),
       ('ANIMAL_PROMO_HORSESBONUSTWO',   'Amount',               1),
       
       ('ANIMAL_PROMO_DEERIDENTITY',   'Amount',               -2),
       ('ANIMAL_PROMO_DEERBONUS',       'YieldType',           'YIELD_FOOD'),
       ('ANIMAL_PROMO_DEERBONUS',       'Amount',               1),
       ('ANIMAL_PROMO_DEERBONUSTWO',   'YieldType',           'YIELD_GOLD'),
       ('ANIMAL_PROMO_DEERBONUSTWO',   'Amount',               2),
       
       ('ANIMAL_PROMO_SHEEPIDENTITY',   'Amount',               -2),
       ('ANIMAL_PROMO_SHEEPBONUS',       'YieldType',           'YIELD_FOOD'),
       ('ANIMAL_PROMO_SHEEPBONUS',       'Amount',               2),
       ('ANIMAL_PROMO_SHEEPBONUSTWO',   'YieldType',           'YIELD_GOLD'),
       ('ANIMAL_PROMO_SHEEPBONUSTWO',   'Amount',               1),

       ('ANIMAL_PROMO_IVORYIDENTITY',   'Amount',               -2),
       ('ANIMAL_PROMO_IVORYBONUS',       'YieldType',           'YIELD_PRODUCTION'),
       ('ANIMAL_PROMO_IVORYBONUS',       'Amount',               2),
       ('ANIMAL_PROMO_IVORYBONUSTWO',   'YieldType',           'YIELD_SCIENCE'),
       ('ANIMAL_PROMO_IVORYBONUSTWO',   'Amount',               1);
 
Is it your loyalty penalty or yields that are incorrectly being applied to all cities? The loyalty looks set up correctly, but it looks like MODIFIER_PLAYER_ADJUST_PLOT_YIELD would grant the bonus yields empire-wide, not just in one city. MODIFIER_CITY_PLOT_YIELDS_ADJUST_PLOT_YIELD would affect just the city the governor is stationed in (that's what RnF Magnus uses for his Industrialist promotion).

Although, reading the Great Governor's mod description it seems like the empire-wide bonus yields are intentional.
 
Is it your loyalty penalty or yields that are incorrectly being applied to all cities? The loyalty looks set up correctly, but it looks like MODIFIER_PLAYER_ADJUST_PLOT_YIELD would grant the bonus yields empire-wide, not just in one city. MODIFIER_CITY_PLOT_YIELDS_ADJUST_PLOT_YIELD would affect just the city the governor is stationed in (that's what RnF Magnus uses for his Industrialist promotion).

Although, reading the Great Governor's mod description it seems like the empire-wide bonus yields are intentional.

The original modder's intent was for bonuses to be empire-wide, but I like to poke around and tweak things. Loyalty is, as far as I can tell, being correctly applied per-city (is it even possible to apply empire-wide)? It looks like you've found my issue, though - I'll change to MODIFIER_CITY_PLOT_YIELDS_ADJUST_PLOT_YIELD.

As an aside, it looks like you may have also solved an issue with another mod, where a wonder bonus is only applying to the city but I want it empire-wide. Many thanks for your help!

Dear Firaxis, some of us get easily confused and have the attention span of a gnat. Modding tools that essentially do the work for us would really be nice. Hint. :P
 
Back
Top Bottom