Ok, so I had a crack at this one. I managed to give myself ONLY 99 builder charges, and it worked. I know it works because Chao's UI displays on the Unit how many charges are left. China AI had 4 charges whilst I had 97. Here is the code:
INSERT INTO Types (Type, Kind) VALUES
('TRAIT_SUPER_CIVILIAN', 'KIND_TRAIT');
INSERT INTO Traits (TraitType, Name, Description) VALUES
('TRAIT_SUPER_CIVILIAN', 'LOC_TRAIT_SUPER_CIVILIAN_NAME', 'LOC_TRAIT_SUPER_CIVILIAN_DESC');
INSERT INTO TraitModifiers (TraitType, ModifierId) VALUES
('TRAIT_SUPER_CIVILIAN', 'SUPER_BUILDCHARGES_MODIFIER'),
('TRAIT_SUPER_CIVILIAN', 'SUPER_FAST_MODIFIER'),
('TRAIT_SUPER_CIVILIAN', 'SUPER_FAST_MODIFIER_2');
INSERT INTO CivilizationTraits (CivilizationType, TraitType) VALUES
('CIVILIZATION_AMERICA', 'TRAIT_SUPER_CIVILIAN'),
('CIVILIZATION_ARABIA', 'TRAIT_SUPER_CIVILIAN'),
('CIVILIZATION_AUSTRALIA', 'TRAIT_SUPER_CIVILIAN'),
('CIVILIZATION_BRAZIL', 'TRAIT_SUPER_CIVILIAN'),
('CIVILIZATION_CHINA', 'TRAIT_SUPER_CIVILIAN'),
('CIVILIZATION_EGYPT', 'TRAIT_SUPER_CIVILIAN'),
('CIVILIZATION_ENGLAND', 'TRAIT_SUPER_CIVILIAN'),
('CIVILIZATION_FRANCE', 'TRAIT_SUPER_CIVILIAN'),
('CIVILIZATION_GERMANY', 'TRAIT_SUPER_CIVILIAN'),
('CIVILIZATION_GREECE', 'TRAIT_SUPER_CIVILIAN'),
('CIVILIZATION_INDIA', 'TRAIT_SUPER_CIVILIAN'),
('CIVILIZATION_JAPAN', 'TRAIT_SUPER_CIVILIAN'),
('CIVILIZATION_KONGO', 'TRAIT_SUPER_CIVILIAN'),
('CIVILIZATION_MACEDON', 'TRAIT_SUPER_CIVILIAN'),
('CIVILIZATION_NORWAY', 'TRAIT_SUPER_CIVILIAN'),
('CIVILIZATION_PERSIA', 'TRAIT_SUPER_CIVILIAN'),
('CIVILIZATION_POLAND', 'TRAIT_SUPER_CIVILIAN'),
('CIVILIZATION_ROME', 'TRAIT_SUPER_CIVILIAN'),
('CIVILIZATION_RUSSIA', 'TRAIT_SUPER_CIVILIAN'),
('CIVILIZATION_SCYTHIA', 'TRAIT_SUPER_CIVILIAN'),
('CIVILIZATION_SPAIN', 'TRAIT_SUPER_CIVILIAN'),
('CIVILIZATION_SUMERIA', 'TRAIT_SUPER_CIVILIAN');
INSERT INTO Modifiers (ModifierId, ModifierType,
SubjectRequirementSetId, Permanent)
VALUES
('SUPER_BUILDCHARGES_MODIFIER', 'MODIFIER_PLAYER_UNITS_ADJUST_BUILDER_CHARGES',
'PLAYER_TOBE_HUMAN', 1);
INSERT INTO ModifierArguments (ModifierId, Name, Value)
VALUES
('SUPER_BUILDCHARGES_MODIFIER', 'Amount', 95);
INSERT INTO RequirementSets
(RequirementSetId,
RequirementSetType)
VALUES
('PLAYER_TOBE_HUMAN',
'REQUIREMENTSET_TEST_ALL');
INSERT INTO RequirementSetRequirements
(RequirementSetId,
RequirementId)
VALUES ('PLAYER_TOBE_HUMAN',
'REQUIRES_PLAYER_BE_HUMAN');
INSERT INTO Requirements
(RequirementId,
RequirementType)
VALUES ('REQUIRES_PLAYER_BE_HUMAN',
'REQUIREMENT_PLAYER_IS_HUMAN');
--
However, I didn't succeed applying IGNORE_TERRAIN and IGNORE_CROSSING_RIVERS_COST at all. Here is the code:
INSERT INTO Types (Kind, Type) VALUES
('KIND_ABILITY', 'ABILITY_CIVILIAN_IGNORE_TERRAIN'),
('KIND_ABILITY', 'ABILITY_CIVILIAN_IGNORE_RIVERS');
INSERT INTO Tags (Vocabulary, Tag) VALUES
('ABILITY_CLASS', 'CLASS_IGNORE_TERRAIN'),
('ABILITY_CLASS', 'CLASS_IGNORE_RIVERS');
INSERT INTO TypeTags
(Type,
Tag)
VALUES ('ABILITY_CIVILIAN_IGNORE_TERRAIN',
'CLASS_IGNORE_TERRAIN'),
('ABILITY_CIVILIAN_IGNORE_RIVERS',
'CLASS_IGNORE_RIVERS');
INSERT INTO TypeTags (Tag, Type) VALUES
('CLASS_IGNORE_TERRAIN', 'UNIT_BUILDER'),
('CLASS_IGNORE_TERRAIN', 'UNIT_SETTLER'),
('CLASS_IGNORE_RIVERS', 'UNIT_BUILDER'),
('CLASS_IGNORE_RIVERS', 'UNIT_SETTLER');
INSERT INTO Modifiers
(ModifierId,
ModifierType,
SubjectRequirementSetId,
Permanent)
VALUES ('SUPER_FAST_MODIFIER',
'MODIFIER_PLAYER_UNIT_GRANT_ABILITY',
'PLAYER_TOBE_HUMAN', 1),
('SUPER_FAST_MODIFIER_2',
'MODIFIER_PLAYER_UNIT_GRANT_ABILITY',
'PLAYER_TOBE_HUMAN', 1);
INSERT INTO ModifierArguments
(ModifierId,
Name, Value)
VALUES ('SUPER_FAST_MODIFIER',
'AbilityType', 'ABILITY_CIVILIAN_IGNORE_TERRAIN'),
('SUPER_FAST_MODIFIER_2',
'AbilityType', 'ABILITY_CIVILIAN_IGNORE_RIVERS');
INSERT INTO UnitAbilities
(UnitAbilityType,
Name,
Description,
Inactive)
VALUES ('ABILITY_CIVILIAN_IGNORE_TERRAIN',
'LOC_ABILITY_CIVILIAN_IGNORE_TERRAIN_NAME',
'LOC_ABILITY_CIVILIAN_IGNORE_TERRAIN_DESC', 1),
('ABILITY_CIVILIAN_IGNORE_RIVERS',
'LOC_ABILITY_CIVILIAN_IGNORE_RIVERS_NAME',
'LOC_ABILITY_CIVILIAN_IGNORE_RIVERS_DESC', 1);
INSERT INTO UnitAbilityModifiers
(UnitAbilityType,
ModifierId)
VALUES ('ABILITY_CIVILIAN_IGNORE_TERRAIN',
'MOD_IGNORE_TERRAIN_COST'),
('ABILITY_CIVILIAN_IGNORE_RIVERS',
'MOD_IGNORE_CROSSING_RIVERS_COST');
The idea behind this was to use TypeTags to specifically define to which Units I wanted to apply the Ability with the Requirement that PLAYER_IS_HUMAN as worked with the BuilderCharges.
I'm not sure if I can define more than one Requirement for a single ModifierId.
--
After clearing up all the Syntax Errors, the Log Report came back as:
[500045.770] [Localization]: Validating Foreign Key Constraints...
[500045.772] [Localization]: Passed Validation.
[500045.791] [Configuration]: Validating Foreign Key Constraints...
[500045.792] [Configuration]: Passed Validation.
[500062.460] [FullTextSearch]: Initializing FullTextSearch
[500064.404] [Gameplay]: Validating Foreign Key Constraints...
[500064.420] [Gameplay]: Passed Validation.
[500065.963] [Configuration] ERROR: no such table: Types
[500065.964] [Configuration] ERROR: no such table: Types
[500066.012] [Configuration]: Validating Foreign Key Constraints...
[500066.013] [Configuration]: Passed Validation.
[500087.877] [FullTextSearch]: FTS - Creating Context
[500096.095] [Configuration] ERROR: no such table: Types
[500096.097] [Configuration] ERROR: no such table: Types
[500096.097] [Configuration]: Validating Foreign Key Constraints...
[500096.098] [Configuration]: Passed Validation.
[500098.197] [Localization] ERROR: UNIQUE constraint failed: LocalizedText.Language, LocalizedText.Tag
[500098.197] [Localization]: While executing - 'insert into BaseGameText('Tag', 'Text') values (?, ?);'
[500098.197] [Localization]: In XMLSerializer while inserting row into table insert into BaseGameText('Tag', 'Text') with values (LOC_HUD_REPORTS_TAB_CURRENT_DEALS, Current Deals, ).
[500098.197] [Localization]: In XMLSerializer while updating table BaseGameText from file ids_text.xml.
[500098.197] [Localization] ERROR: UNIQUE constraint failed: LocalizedText.Language, LocalizedText.Tag
[500098.446] [Gameplay]: Validating Foreign Key Constraints...
[500098.464] [Gameplay]: Passed Validation.
[500116.146] [FullTextSearch]: FTS - Creating Context
[500119.138] [FullTextSearch]: FTS - Creating Context
[500124.934] [FullTextSearch]: FTS - Creating Context
[500215.764] [FullTextSearch]: FullTextSearch - Shutting down
Cheers.