Code feels right, but doesn't work. Ideas?

rian222

Chieftain
Joined
Jul 31, 2013
Messages
39
Location
Japan
I'm working on a totally awesome mod that really is going make the game a whole lot better without changing much of its identity. Currently working on trying to make religious beliefs better. This specific set of code is basically supposed change Desert Folklore so that it grants +1 faith on every desert tile in the city, as long as that city has a Holy Site. EVEN IF those tiles are not adjacent to the Holy Site. I looked at modifiers such as Petra for tile-yield changes as a guide, and I feel like I should have erased the adjacency requirement, but now it seems that Desert Folklore gives absolutely no faith at all. Anyone able to help me out? I would really appreciate it.

Code:
INSERT INTO RequirementSets (RequirementSetId, RequirementSetType) VALUES
('CITY_HAS_HOLY_SITE_AND_PANTHEON', 'REQUIREMENTSET_TEST_ALL'),
('FAITH_PLOT_HAS_DESERT_REQUIREMENTS', 'REQUIREMENTSET_TEST_ALL'),
('FAITH_PLOT_HAS_DESERT_HILLS_REQUIREMENTS', 'REQUIREMENTSET_TEST_ALL');

INSERT INTO Requirements (RequirementId, RequirementType) VALUES
('REQUIRES_CITY_HAS_HOLY_SITE', 'REQUIREMENTSET_TEST_ALL');

INSERT INTO RequirementArguments (RequirementId, Name, Type, Value) VALUES
('REQUIRES_CITY_HAS_HOLY_SITE', 'DistrictType', 'ARGTYPE_IDENTITY', 'DISTRICT_HOLY_SITE');

INSERT INTO RequirementSetRequirements (RequirementSetId, RequirementId) VALUES
('CITY_HAS_HOLY_SITE_AND_PANTHEON', 'REQUIRES_CITY_FOLLOWS_PANTHEON'),
('CITY_HAS_HOLY_SITE_AND_PANTHEON', 'REQUIRES_CITY_HAS_HOLY_SITE'),
('FAITH_PLOT_HAS_DESERT_REQUIREMENTS', 'REQUIRES_PLOT_HAS_DESERT'),
('FAITH_PLOT_HAS_DESERT_HILLS_REQUIREMENTS', 'REQUIRES_PLOT_HAS_DESERT_HILLS');

INSERT INTO Modifiers (ModifierId, ModifierType, SubjectRequirementSetId) VALUES
('DESERT_FOLKLORE_FAITHDESERTADJACENCY_MODIFIER', 'MODIFIER_CITY_PLOT_YIELDS_ADJUST_PLOT_YIELD', 'FAITH_PLOT_HAS_DESERT_REQUIREMENTS'),
('DESERT_FOLKLORE_FAITHDESERTHILLSADJACENCY_MODIFIER', 'MODIFIER_CITY_PLOT_YIELDS_ADJUST_PLOT_YIELD', 'FAITH_PLOT_HAS_DESERT_HILLS_REQUIREMENTS');

UPDATE Modifiers SET ModifierType='MODIFIER_ALL_CITIES_ATTACH_MODIFIER' WHERE ModifierId='DESERT_FOLKLORE_FAITHDESERTADJACENCY';
UPDATE Modifiers SET ModifierType='MODIFIER_ALL_CITIES_ATTACH_MODIFIER' WHERE ModifierId='DESERT_FOLKLORE_FAITHDESERTHILLSADJACENCY';
UPDATE Modifiers SET SubjectRequirementSetId='CITY_HAS_HOLY_SITE_AND_PANTHEON' WHERE ModifierId='DESERT_FOLKLORE_FAITHDESERTADJACENCY';
UPDATE Modifiers SET SubjectRequirementSetId='CITY_HAS_HOLY_SITE_AND_PANTHEON' WHERE ModifierId='DESERT_FOLKLORE_FAITHDESERTHILLSADJACENCY';

DELETE FROM ModifierArguments WHERE ModifierId='DESERT_FOLKLORE_FAITHDESERTADJACENCY' AND Value='DISTRICT_HOLY_SITE';
DELETE FROM ModifierArguments WHERE ModifierId='DESERT_FOLKLORE_FAITHDESERTHILLSADJACENCY' AND Value='DISTRICT_HOLY_SITE';
DELETE FROM ModifierArguments WHERE ModifierId='DESERT_FOLKLORE_FAITHDESERTADJACENCY' AND Value='TERRAIN_DESERT';
DELETE FROM ModifierArguments WHERE ModifierId='DESERT_FOLKLORE_FAITHDESERTHILLSADJACENCY' AND Value='TERRAIN_DESERT_HILLS';
DELETE FROM ModifierArguments WHERE ModifierId='DESERT_FOLKLORE_FAITHDESERTADJACENCY' AND Value='YIELD_FAITH';
DELETE FROM ModifierArguments WHERE ModifierId='DESERT_FOLKLORE_FAITHDESERTHILLSADJACENCY' AND Value='YIELD_FAITH';
DELETE FROM ModifierArguments WHERE ModifierId='DESERT_FOLKLORE_FAITHDESERTADJACENCY' AND Value='1';
DELETE FROM ModifierArguments WHERE ModifierId='DESERT_FOLKLORE_FAITHDESERTHILLSADJACENCY' AND Value='1';

INSERT INTO ModifierArguments (ModifierId, Name, Type, Value) VALUES
('DESERT_FOLKLORE_FAITHDESERTADJACENCY', 'ModifierId', 'ARGTYPE_IDENTITY', 'DESERT_FOLKLORE_FAITHDESERTADJACENCY_MODIFIER'),
('DESERT_FOLKLORE_FAITHDESERTADJACENCY_MODIFIER', 'Amount', 'ARGTYPE_IDENTITY', '1'),
('DESERT_FOLKLORE_FAITHDESERTADJACENCY_MODIFIER', 'YieldType', 'ARGTYPE_IDENTITY', 'YIELD_FAITH'),
('DESERT_FOLKLORE_FAITHDESERTHILLSADJACENCY', 'ModifierId', 'ARGTYPE_IDENTITY', 'DESERT_FOLKLORE_FAITHDESERTHILLSADJACENCY_MODIFIER'),
('DESERT_FOLKLORE_FAITHDESERTHILLSADJACENCY_MODIFIER', 'Amount', 'ARGTYPE_IDENTITY', '1'),
('DESERT_FOLKLORE_FAITHDESERTHILLSADJACENCY_MODIFIER', 'YieldType', 'ARGTYPE_IDENTITY', 'YIELD_FAITH');
 
'REQUIREMENTSET_TEST_ALL' does not belong in table Requirements

Column RequirementType in table Requirements wants designations such as 'REQUIREMENT_PLOT_RESOURCE_TYPE_MATCHES' not a boolean test-type designation.

The Persia/Macedonia DLC already has a requirement defined as "REQUIRES_CITY_HAS_HOLY_SITE", which also may be causing your code to fail because it may cause your code to violate the uniqueness rule:
Code:
	<Requirements>
		-----------
		<Row>
			<RequirementId>REQUIRES_CITY_HAS_HOLY_SITE</RequirementId>
			<RequirementType>REQUIREMENT_CITY_HAS_DISTRICT</RequirementType>
		</Row>
If you want to be sure there are no conflicts you need to define your requirement with added text unique to you, such as I would do this for one of my mods:
Code:
<Requirements>
	<Row>
		<RequirementId>REQUIRES_CITY_HAS_HOLY_SITE_LRS</RequirementId>
		<RequirementType>REQUIREMENT_CITY_HAS_DISTRICT</RequirementType>
	</Row>
</Requirements>
I get to use the pre-existing <RequirementType> but I need a unique designation for the <RequirementId>, which the method shown will provide.

---------------------------------------------------------

I did not look past this issue in your code to see if there is anything else that is in error.
 
Last edited:
Dang, it's always a little mistake! That fixed it, everything works as intended now. Thanks man!
 
Top Bottom