racha
Prince
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.
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);