Zarathustrani
Chieftain
- Joined
- Oct 28, 2017
- Messages
- 3
Hey guys, I'm still pretty new to modding and have been racking my brain over this. I was hoping someone might be able to help out.
Basically, I want to have a building that gives extra food and production to improved "food resources"(CLASS_NEW_BUILDING_FOOD) and an amenity for each type of luxury " food resource" improved in the city (and only apply the extra amenity to that city). This is the code I currently have but doesn't seem to work for amenities, and my adjustment (see below the code) just makes it apply to ALL improved luxuries.
Any suggestions?
I'd be grateful for any advice and thanks in advance.
INSERT OR IGNORE INTO Tags
(Tag , Vocabulary)
VALUES
('CLASS_NEW_BUILDING_FOOD' , 'RESOURCE_CLASS');
INSERT OR IGNORE INTO TypeTags
(Type , Tag)
VALUES
('RESOURCE_WHEAT' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_CATTLE' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_RICE' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_SALT' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_DEER' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_BANANAS' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_CRABS' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_SHEEP' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_CITRUS' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_COCOA' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_COFFEE' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_SPICES' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_SUGAR' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_TEA' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_TRUFFLES', 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_WINE' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_OLIVES' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_HONEY' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_MAIZE' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_FISH' , 'CLASS_NEW_BUILDING_FOOD');
INSERT OR IGNORE INTO Modifiers
(ModifierId , ModifierType , SubjectRequirementSetId)
VALUES
('NEW_BUILDING_TAG_FOOD' , 'MODIFIER_SINGLE_CITY_ATTACH_MODIFIER' , 'CITY_HAS_NEW_BUILDING' ),
('NEW_BUILDING_TAG_FOOD_MODIFIER' , 'MODIFIER_CITY_PLOT_YIELDS_ADJUST_PLOT_YIELD' , 'PLOT_HAS_TAG_FOOD_RESOURCE_REQUIREMENTS'),
('NEW_BUILDING_TAG_PROD' , 'MODIFIER_SINGLE_CITY_ATTACH_MODIFIER' , 'CITY_HAS_NEW_BUILDING' ),
('NEW_BUILDING_TAG_PROD_MODIFIER' , 'MODIFIER_CITY_PLOT_YIELDS_ADJUST_PLOT_YIELD' , 'PLOT_HAS_TAG_FOOD_RESOURCE_REQUIREMENTS'),
('NEW_BUILDING_TAG_AMEN_MODIFIER' , 'MODIFIER_SINGLE_CITY_ADJUST_EXTRA_AMENITY_FOR_LUXURY_DIVERSITY' , NULL);
INSERT OR IGNORE INTO ModifierArguments
(ModifierId , Name , Value)
VALUES
('NEW_BUILDING_TAG_FOOD' , 'ModifierId' , 'NEW_BUILDING_TAG_FOOD_MODIFIER' ),
('NEW_BUILDING_TAG_FOOD_MODIFIER' , 'YieldType' , 'YIELD_FOOD' ),
('NEW_BUILDING_TAG_FOOD_MODIFIER' , 'Amount' , '1' ),
('NEW_BUILDING_TAG_PROD' , 'ModifierId' , 'NEW_BUILDING_TAG_PROD_MODIFIER' ),
('NEW_BUILDING_TAG_PROD_MODIFIER' , 'YieldType' , 'YIELD_PRODUCTION' ),
('NEW_BUILDING_TAG_PROD_MODIFIER' , 'Amount' , '1' ),
('NEW_BUILDING_TAG_AMEN_MODIFIER' , 'Amount' , '1' );
INSERT OR IGNORE INTO Requirements -- Validation of requirements --
(RequirementId , RequirementType)
VALUES
('REQUIRES_PLOT_HAS_TAG_FOOD_RESOURCE' , 'CLASS_NEW_BUILDING_FOOD'),
('REQUIRES_IMPROVEMENT' , 'REQUIREMENT_REQUIREMENTSET_IS_MET'),
('REQUIRES_CITY_HAS_NEW_BUILDING' , 'REQUIREMENT_CITY_HAS_BUILDING');
INSERT OR IGNORE INTO RequirementArguments -- Sets specific requirements --
(RequirementId , Name , Value)
VALUES
('REQUIRES_PLOT_HAS_TAG_FOOD_RESOURCE' , 'Tag' , 'CLASS_FERTILITY_RITES_FOOD'),
('REQUIRES_IMPROVEMENT' , 'RequirementSetId' , 'PLOT_HAS_AN_IMPROVEMENT'),
('REQUIRES_CITY_HAS_NEW_BUILDING' , 'BuildingType' , 'BUILDING_NEW_BUILDING');
INSERT OR IGNORE INTO RequirementSets -- Indicate whether one has to be true or all --
(RequirementSetId , RequirementSetType)
VALUES
('PLOT_HAS_TAG_FOOD_RESOURCE_REQUIREMENTS' , 'REQUIREMENTSET_TEST_ALL'),
('PLOT_HAS_AN_IMPROVEMENT' , 'REQUIREMENTSET_TEST_ANY'),
('CITY_HAS_NEW_BUILDING' , 'REQUIREMENTSET_TEST_ALL');
INSERT OR IGNORE INTO RequirementSetRequirements -- Adds the specific requirements into a set --
(RequirementSetId , RequirementId)
VALUES
('PLOT_HAS_TAG_FOOD_RESOURCE_REQUIREMENTS' , 'REQUIRES_PLOT_HAS_TAG_FOOD_RESOURCE'),
('PLOT_HAS_TAG_FOOD_RESOURCE_REQUIREMENTS' , 'REQUIRES_IMPROVEMENT'),
('PLOT_HAS_AN_IMPROVEMENT' , 'REQUIRES_PLOT_HAS_FARM'),
('PLOT_HAS_AN_IMPROVEMENT' , 'REQUIRES_PLOT_HAS_FISHINGBOATS'),
('PLOT_HAS_AN_IMPROVEMENT' , 'REQUIRES_PLOT_HAS_PASTURE'),
('PLOT_HAS_AN_IMPROVEMENT' , 'REQUIRES_PLOT_HAS_PLANTATION'),
('PLOT_HAS_AN_IMPROVEMENT' , 'REQUIRES_PLOT_HAS_CAMP'),
('PLOT_HAS_AN_IMPROVEMENT' , 'REQUIRES_PLOT_HAS_MINE'),
('CITY_HAS_NEW_BUILDING' , 'REQUIRES_CITY_HAS_NEW_BUILDING');
INSERT OR IGNORE INTO BuildingModifiers
(BuildingType, ModifierId) VALUES
('BUILDING_NEW_BUILDING','NEW_BUILDING_TAG_FOOD'),
('BUILDING_NEW_BUILDING','NEW_BUILDING_TAG_PROD'),
('BUILDING_NEW_BUILDING','NEW_BUILDING_TAG_AMEN_MODIFIER');
Basically, I want to have a building that gives extra food and production to improved "food resources"(CLASS_NEW_BUILDING_FOOD) and an amenity for each type of luxury " food resource" improved in the city (and only apply the extra amenity to that city). This is the code I currently have but doesn't seem to work for amenities, and my adjustment (see below the code) just makes it apply to ALL improved luxuries.
Any suggestions?
I'd be grateful for any advice and thanks in advance.
INSERT OR IGNORE INTO Tags
(Tag , Vocabulary)
VALUES
('CLASS_NEW_BUILDING_FOOD' , 'RESOURCE_CLASS');
INSERT OR IGNORE INTO TypeTags
(Type , Tag)
VALUES
('RESOURCE_WHEAT' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_CATTLE' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_RICE' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_SALT' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_DEER' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_BANANAS' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_CRABS' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_SHEEP' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_CITRUS' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_COCOA' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_COFFEE' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_SPICES' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_SUGAR' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_TEA' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_TRUFFLES', 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_WINE' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_OLIVES' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_HONEY' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_MAIZE' , 'CLASS_NEW_BUILDING_FOOD'),
('RESOURCE_FISH' , 'CLASS_NEW_BUILDING_FOOD');
INSERT OR IGNORE INTO Modifiers
(ModifierId , ModifierType , SubjectRequirementSetId)
VALUES
('NEW_BUILDING_TAG_FOOD' , 'MODIFIER_SINGLE_CITY_ATTACH_MODIFIER' , 'CITY_HAS_NEW_BUILDING' ),
('NEW_BUILDING_TAG_FOOD_MODIFIER' , 'MODIFIER_CITY_PLOT_YIELDS_ADJUST_PLOT_YIELD' , 'PLOT_HAS_TAG_FOOD_RESOURCE_REQUIREMENTS'),
('NEW_BUILDING_TAG_PROD' , 'MODIFIER_SINGLE_CITY_ATTACH_MODIFIER' , 'CITY_HAS_NEW_BUILDING' ),
('NEW_BUILDING_TAG_PROD_MODIFIER' , 'MODIFIER_CITY_PLOT_YIELDS_ADJUST_PLOT_YIELD' , 'PLOT_HAS_TAG_FOOD_RESOURCE_REQUIREMENTS'),
('NEW_BUILDING_TAG_AMEN_MODIFIER' , 'MODIFIER_SINGLE_CITY_ADJUST_EXTRA_AMENITY_FOR_LUXURY_DIVERSITY' , NULL);
INSERT OR IGNORE INTO ModifierArguments
(ModifierId , Name , Value)
VALUES
('NEW_BUILDING_TAG_FOOD' , 'ModifierId' , 'NEW_BUILDING_TAG_FOOD_MODIFIER' ),
('NEW_BUILDING_TAG_FOOD_MODIFIER' , 'YieldType' , 'YIELD_FOOD' ),
('NEW_BUILDING_TAG_FOOD_MODIFIER' , 'Amount' , '1' ),
('NEW_BUILDING_TAG_PROD' , 'ModifierId' , 'NEW_BUILDING_TAG_PROD_MODIFIER' ),
('NEW_BUILDING_TAG_PROD_MODIFIER' , 'YieldType' , 'YIELD_PRODUCTION' ),
('NEW_BUILDING_TAG_PROD_MODIFIER' , 'Amount' , '1' ),
('NEW_BUILDING_TAG_AMEN_MODIFIER' , 'Amount' , '1' );
INSERT OR IGNORE INTO Requirements -- Validation of requirements --
(RequirementId , RequirementType)
VALUES
('REQUIRES_PLOT_HAS_TAG_FOOD_RESOURCE' , 'CLASS_NEW_BUILDING_FOOD'),
('REQUIRES_IMPROVEMENT' , 'REQUIREMENT_REQUIREMENTSET_IS_MET'),
('REQUIRES_CITY_HAS_NEW_BUILDING' , 'REQUIREMENT_CITY_HAS_BUILDING');
INSERT OR IGNORE INTO RequirementArguments -- Sets specific requirements --
(RequirementId , Name , Value)
VALUES
('REQUIRES_PLOT_HAS_TAG_FOOD_RESOURCE' , 'Tag' , 'CLASS_FERTILITY_RITES_FOOD'),
('REQUIRES_IMPROVEMENT' , 'RequirementSetId' , 'PLOT_HAS_AN_IMPROVEMENT'),
('REQUIRES_CITY_HAS_NEW_BUILDING' , 'BuildingType' , 'BUILDING_NEW_BUILDING');
INSERT OR IGNORE INTO RequirementSets -- Indicate whether one has to be true or all --
(RequirementSetId , RequirementSetType)
VALUES
('PLOT_HAS_TAG_FOOD_RESOURCE_REQUIREMENTS' , 'REQUIREMENTSET_TEST_ALL'),
('PLOT_HAS_AN_IMPROVEMENT' , 'REQUIREMENTSET_TEST_ANY'),
('CITY_HAS_NEW_BUILDING' , 'REQUIREMENTSET_TEST_ALL');
INSERT OR IGNORE INTO RequirementSetRequirements -- Adds the specific requirements into a set --
(RequirementSetId , RequirementId)
VALUES
('PLOT_HAS_TAG_FOOD_RESOURCE_REQUIREMENTS' , 'REQUIRES_PLOT_HAS_TAG_FOOD_RESOURCE'),
('PLOT_HAS_TAG_FOOD_RESOURCE_REQUIREMENTS' , 'REQUIRES_IMPROVEMENT'),
('PLOT_HAS_AN_IMPROVEMENT' , 'REQUIRES_PLOT_HAS_FARM'),
('PLOT_HAS_AN_IMPROVEMENT' , 'REQUIRES_PLOT_HAS_FISHINGBOATS'),
('PLOT_HAS_AN_IMPROVEMENT' , 'REQUIRES_PLOT_HAS_PASTURE'),
('PLOT_HAS_AN_IMPROVEMENT' , 'REQUIRES_PLOT_HAS_PLANTATION'),
('PLOT_HAS_AN_IMPROVEMENT' , 'REQUIRES_PLOT_HAS_CAMP'),
('PLOT_HAS_AN_IMPROVEMENT' , 'REQUIRES_PLOT_HAS_MINE'),
('CITY_HAS_NEW_BUILDING' , 'REQUIRES_CITY_HAS_NEW_BUILDING');
INSERT OR IGNORE INTO BuildingModifiers
(BuildingType, ModifierId) VALUES
('BUILDING_NEW_BUILDING','NEW_BUILDING_TAG_FOOD'),
('BUILDING_NEW_BUILDING','NEW_BUILDING_TAG_PROD'),
('BUILDING_NEW_BUILDING','NEW_BUILDING_TAG_AMEN_MODIFIER');
INSERT OR IGNORE INTO Modifiers
(ModifierId , ModifierType , SubjectRequirementSetId)
VALUES
('NEW_BUILDING_TAG_FOOD' , 'MODIFIER_SINGLE_CITY_ATTACH_MODIFIER' , 'CITY_HAS_NEW_BUILDING' ),
('NEW_BUILDING_TAG_FOOD_MODIFIER' , 'MODIFIER_CITY_PLOT_YIELDS_ADJUST_PLOT_YIELD' , 'PLOT_HAS_TAG_FOOD_RESOURCE_REQUIREMENTS'),
('NEW_BUILDING_TAG_PROD' , 'MODIFIER_SINGLE_CITY_ATTACH_MODIFIER' , 'CITY_HAS_NEW_BUILDING' ),
('NEW_BUILDING_TAG_PROD_MODIFIER' , 'MODIFIER_CITY_PLOT_YIELDS_ADJUST_PLOT_YIELD' , 'PLOT_HAS_TAG_FOOD_RESOURCE_REQUIREMENTS'),
('NEW_BUILDING_TAG_AMEN_MODIFIER' , 'MODIFIER_SINGLE_CITY_ADJUST_EXTRA_AMENITY_FOR_LUXURY_DIVERSITY' , NULL);