Mountain Adjacency Bonus

VainApocalypse

Warlord
Joined
Aug 10, 2010
Messages
245
I've been looking through the game files, and there are almost no RequirementTypes or EffectTypes that interact with adjacent TerrainTypes (though FeatureType modifiers are popular). I'm looking to attach an adjacency bonus to districts for mountains for a specific Civilization.

Any idea how?
 
Japan has a specific one for district adjacency to other districts, and Brazil uses the aforementioned Feature adjacency. I have found no way to do a Terrain Adjacency using modifiers either, OP.
 
BTW this works for adding adjacency bonuses for Industrial Zones in Tundra. It's used by my Combine Tweaks mod for Russia's "+1 Hammer per Tundra hill adjacent to an Industrial Zone" bonus. I see no reason it shouldn't work for mountains, which are also a terrain.

Code:
INSERT INTO Types
   (Type,                Kind)
VALUES    ('QUO_MODTYPE_RUSSIA_PLAYER_CITY_TERRAIN_AJACENCY',   'KIND_MODIFIER'   ) ;

INSERT INTO DynamicModifiers
       (ModifierType, CollectionType, EffectType)
VALUES    ('QUO_MODTYPE_RUSSIA_PLAYER_CITY_TERRAIN_AJACENCY', 'COLLECTION_OWNER','EFFECT_TERRAIN_ADJACENCY');


INSERT INTO Modifiers
   (ModifierId, ModifierType, RunOnce, Permanent, OwnerRequirementSetId, SubjectRequirementSetId)
VALUES   ('QUO_RUSSIA_IZ_ADJACENCY', 'QUO_MODTYPE_RUSSIA_PLAYER_CITY_TERRAIN_AJACENCY', 0, 0, NULL, NULL) ;


INSERT INTO ModifierArguments
   (ModifierId,            Name,        Type,            Value,            Extra,    SecondExtra)
VALUES   ('QUO_RUSSIA_IZ_ADJACENCY',    'Amount',    'ARGTYPE_IDENTITY',    '1',           NULL,    NULL) ,
   ('QUO_RUSSIA_IZ_ADJACENCY',    'Description',    'ARGTYPE_IDENTITY',    'QUO_LOC_RUSSIA_IZ_ADJACENCY',           NULL,    NULL) ,
   ('QUO_RUSSIA_IZ_ADJACENCY',    'DistrictType', 'ARGTYPE_IDENTITY',    'DISTRICT_INDUSTRIAL_ZONE',           NULL,    NULL) ,
   ('QUO_RUSSIA_IZ_ADJACENCY',    'TerrainType',    'ARGTYPE_IDENTITY',    'TERRAIN_TUNDRA_HILLS',           NULL,    NULL) ,
   ('QUO_RUSSIA_IZ_ADJACENCY',    'YieldType',    'ARGTYPE_IDENTITY',    'YIELD_PRODUCTION',           NULL,    NULL) ;



INSERT INTO TraitModifiers
   (TraitType,            ModifierID)
VALUES   ('TRAIT_CIVILIZATION_MOTHER_RUSSIA',   'QUO_RUSSIA_IZ_ADJACENCY') ;
 
Last edited:
Derp, yes of course that's a thing. I can't believe I forgot it. However, there still seems to be no way to check for 1 adjacent mountain, rather than a true adjacency bonus of per mountain.
 
I believe I found the solution some days ago.

I had to make a new ModifierType modeled after Brazil's Amazon. It turns out there is an unused EffectType that works with terrain instead of features, and I used that in the new ModifierType. It requires you to write your own tooltip, and It has to be repeated for each of the five Mountain types (grass, plains, desert, tundra, snow), but on initial trial, it appears to work.

Let me know if anyone wants to see the code.
 
I believe I found the solution some days ago.

I had to make a new ModifierType modeled after Brazil's Amazon. It turns out there is an unused EffectType that works with terrain instead of features, and I used that in the new ModifierType. It requires you to write your own tooltip, and It has to be repeated for each of the five Mountain types (grass, plains, desert, tundra, snow), but on initial trial, it appears to work.

Let me know if anyone wants to see the code.


Actually yes I would like to see the code. Good detective work finding the unused Effect.
 
Actually yes I would like to see the code. Good detective work finding the unused Effect.

I spent all of five minutes testing it, so I don't promise that it's the right solution, but it appears to be so far.

Code:
<GameData>
    <Types>
        <Row Type="MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY" Kind="KIND_MODIFIER"/>
    </Types>
    <DynamicModifiers>
        <Row>
            <ModifierType>MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY</ModifierType>
            <CollectionType>COLLECTION_PLAYER_CITIES</CollectionType>
            <EffectType>EFFECT_TERRAIN_ADJACENCY</EffectType>
        </Row>
    </DynamicModifiers>
</GameData>

In an XML file, I've created the above ModifierType. It turns out that this EffectType IS used. It turns up in Beliefs like Desert Folklore and Dance of the Aurora. I don't know how I missed it before.


Code:
--------------------------------------------------------------------------------------------------------------------------           
-- Traits           
--------------------------------------------------------------------------------------------------------------------------               
INSERT INTO Traits               
        (TraitType,                                                Name,                                                    Description)
VALUES    ('TRAIT_JEA_ARMED_NEUTRALITY',                        'LOC_TRAIT_JEA_ARMED_NEUTRALITY_NAME',                    'LOC_TRAIT_JEA_ARMED_NEUTRALITY_DESCRIPTION'),
        ('TRAIT_CIVILIZATION_BUILDING_JEA_SWISS_BANK',            'LOC_TRAIT_CIVILIZATION_BUILDING_JEA_SWISS_BANK_NAME',        'LOC_TRAIT_CIVILIZATION_BUILDING_JEA_SWISS_BANK_DESCRIPTION'),
        ('TRAIT_CIVILIZATION_UNIT_JEA_SWISS_GUARD',            'LOC_TRAIT_CIVILIZATION_UNIT_JEA_SWISS_GUARD_NAME',        'LOC_TRAIT_CIVILIZATION_UNIT_JEA_SWISS_GUARD_DESCRIPTION');   



--------------------------------------------------------------------------------------------------------------------------       
-- TraitModifiers       
--------------------------------------------------------------------------------------------------------------------------           
INSERT INTO TraitModifiers           
        (TraitType,                                            ModifierId)
VALUES    --Mountain Adjacency Bonus--
        ('TRAIT_JEA_ARMED_NEUTRALITY',                    'TRAIT_THEATER_ADJACENT_MOUNTAIN_GRASS'),
        ('TRAIT_JEA_ARMED_NEUTRALITY',                    'TRAIT_THEATER_ADJACENT_MOUNTAIN_PLAINS'),
        ('TRAIT_JEA_ARMED_NEUTRALITY',                    'TRAIT_THEATER_ADJACENT_MOUNTAIN_DESERT'),
        ('TRAIT_JEA_ARMED_NEUTRALITY',                    'TRAIT_THEATER_ADJACENT_MOUNTAIN_TUNDRA'),
        ('TRAIT_JEA_ARMED_NEUTRALITY',                    'TRAIT_THEATER_ADJACENT_MOUNTAIN_SNOW'),

        ('TRAIT_JEA_ARMED_NEUTRALITY',                    'TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_GRASS'),
        ('TRAIT_JEA_ARMED_NEUTRALITY',                    'TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_PLAINS'),
        ('TRAIT_JEA_ARMED_NEUTRALITY',                    'TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_DESERT'),
        ('TRAIT_JEA_ARMED_NEUTRALITY',                    'TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_TUNDRA'),
        ('TRAIT_JEA_ARMED_NEUTRALITY',                    'TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_SNOW'),

        ('TRAIT_JEA_ARMED_NEUTRALITY',                    'TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_GRASS'),
        ('TRAIT_JEA_ARMED_NEUTRALITY',                    'TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_PLAINS'),
        ('TRAIT_JEA_ARMED_NEUTRALITY',                    'TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_DESERT'),
        ('TRAIT_JEA_ARMED_NEUTRALITY',                    'TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_TUNDRA'),
        ('TRAIT_JEA_ARMED_NEUTRALITY',                    'TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_SNOW'),

        ('TRAIT_JEA_ARMED_NEUTRALITY',                    'TRAIT_CAMPUS_ADJACENT_MOUNTAIN_GRASS'),
        ('TRAIT_JEA_ARMED_NEUTRALITY',                    'TRAIT_CAMPUS_ADJACENT_MOUNTAIN_PLAINS'),
        ('TRAIT_JEA_ARMED_NEUTRALITY',                    'TRAIT_CAMPUS_ADJACENT_MOUNTAIN_DESERT'),
        ('TRAIT_JEA_ARMED_NEUTRALITY',                    'TRAIT_CAMPUS_ADJACENT_MOUNTAIN_TUNDRA'),
        ('TRAIT_JEA_ARMED_NEUTRALITY',                    'TRAIT_CAMPUS_ADJACENT_MOUNTAIN_SNOW'),

        ('TRAIT_JEA_ARMED_NEUTRALITY',                    'TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_GRASS'),
        ('TRAIT_JEA_ARMED_NEUTRALITY',                    'TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_PLAINS'),
        ('TRAIT_JEA_ARMED_NEUTRALITY',                    'TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_DESERT'),
        ('TRAIT_JEA_ARMED_NEUTRALITY',                    'TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_TUNDRA'),
        ('TRAIT_JEA_ARMED_NEUTRALITY',                    'TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_SNOW'),

        ('TRAIT_JEA_ARMED_NEUTRALITY',                    'TRAIT_HARBOR_ADJACENT_MOUNTAIN_GRASS'),
        ('TRAIT_JEA_ARMED_NEUTRALITY',                    'TRAIT_HARBOR_ADJACENT_MOUNTAIN_PLAINS'),
        ('TRAIT_JEA_ARMED_NEUTRALITY',                    'TRAIT_HARBOR_ADJACENT_MOUNTAIN_DESERT'),
        ('TRAIT_JEA_ARMED_NEUTRALITY',                    'TRAIT_HARBOR_ADJACENT_MOUNTAIN_TUNDRA'),
        ('TRAIT_JEA_ARMED_NEUTRALITY',                    'TRAIT_HARBOR_ADJACENT_MOUNTAIN_SNOW');

--------------------------------------------------------------------------------------------------------------------------
-- Modifiers
--------------------------------------------------------------------------------------------------------------------------
INSERT INTO Modifiers   
        (ModifierId,                                                ModifierType)
VALUES    ('TRAIT_THEATER_ADJACENT_MOUNTAIN_GRASS',                    'MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY'),
        ('TRAIT_THEATER_ADJACENT_MOUNTAIN_PLAINS',                    'MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY'),
        ('TRAIT_THEATER_ADJACENT_MOUNTAIN_DESERT',                    'MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY'),
        ('TRAIT_THEATER_ADJACENT_MOUNTAIN_TUNDRA',                    'MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY'),
        ('TRAIT_THEATER_ADJACENT_MOUNTAIN_SNOW',                    'MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY'),

        ('TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_GRASS',                    'MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY'),
        ('TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_PLAINS',                    'MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY'),
        ('TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_DESERT',                    'MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY'),
        ('TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_TUNDRA',                    'MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY'),
        ('TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_SNOW',                        'MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY'),

        ('TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_GRASS',                    'MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY'),
        ('TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_PLAINS',                    'MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY'),
        ('TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_DESERT',                    'MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY'),
        ('TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_TUNDRA',                    'MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY'),
        ('TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_SNOW',                    'MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY'),

        ('TRAIT_CAMPUS_ADJACENT_MOUNTAIN_GRASS',                    'MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY'),
        ('TRAIT_CAMPUS_ADJACENT_MOUNTAIN_PLAINS',                    'MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY'),
        ('TRAIT_CAMPUS_ADJACENT_MOUNTAIN_DESERT',                    'MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY'),
        ('TRAIT_CAMPUS_ADJACENT_MOUNTAIN_TUNDRA',                    'MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY'),
        ('TRAIT_CAMPUS_ADJACENT_MOUNTAIN_SNOW',                        'MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY'),

        ('TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_GRASS',                        'MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY'),
        ('TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_PLAINS',                    'MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY'),
        ('TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_DESERT',                    'MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY'),
        ('TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_TUNDRA',                    'MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY'),
        ('TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_SNOW',                        'MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY'),

        ('TRAIT_HARBOR_ADJACENT_MOUNTAIN_GRASS',                    'MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY'),
        ('TRAIT_HARBOR_ADJACENT_MOUNTAIN_PLAINS',                    'MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY'),
        ('TRAIT_HARBOR_ADJACENT_MOUNTAIN_DESERT',                    'MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY'),
        ('TRAIT_HARBOR_ADJACENT_MOUNTAIN_TUNDRA',                    'MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY'),
        ('TRAIT_HARBOR_ADJACENT_MOUNTAIN_SNOW',                        'MODIFIER_PLAYER_CITIES_TERRAIN_ADJACENCY');
        
--------------------------------------------------------------------------------------------------------------------------
-- ModifierArguments
--------------------------------------------------------------------------------------------------------------------------
INSERT INTO ModifierArguments
        (ModifierId,                                                    Name,                        Value)
VALUES                        --Theater Mountain Adjacency--
        ('TRAIT_THEATER_ADJACENT_MOUNTAIN_GRASS',        'DistrictType',                'DISTRICT_THEATER'),
        ('TRAIT_THEATER_ADJACENT_MOUNTAIN_GRASS',        'TerrainType',                'TERRAIN_GRASS_MOUNTAIN'),
        ('TRAIT_THEATER_ADJACENT_MOUNTAIN_GRASS',        'YieldType',                'YIELD_CULTURE'),
        ('TRAIT_THEATER_ADJACENT_MOUNTAIN_GRASS',        'Amount',                    '1'),
        ('TRAIT_THEATER_ADJACENT_MOUNTAIN_GRASS',        'Description',                'LOC_DISTRICT_MOUNTAIN_2_CULTURE'),
        
        ('TRAIT_THEATER_ADJACENT_MOUNTAIN_PLAINS',        'DistrictType',                'DISTRICT_THEATER'),
        ('TRAIT_THEATER_ADJACENT_MOUNTAIN_PLAINS',        'TerrainType',                'TERRAIN_PLAINS_MOUNTAIN'),
        ('TRAIT_THEATER_ADJACENT_MOUNTAIN_PLAINS',        'YieldType',                'YIELD_CULTURE'),
        ('TRAIT_THEATER_ADJACENT_MOUNTAIN_PLAINS',        'Amount',                    '1'),
        ('TRAIT_THEATER_ADJACENT_MOUNTAIN_PLAINS',        'Description',                'LOC_DISTRICT_MOUNTAIN_2_CULTURE'),   
        
        ('TRAIT_THEATER_ADJACENT_MOUNTAIN_DESERT',        'DistrictType',                'DISTRICT_THEATER'),
        ('TRAIT_THEATER_ADJACENT_MOUNTAIN_DESERT',        'TerrainType',                'TERRAIN_DESERT_MOUNTAIN'),
        ('TRAIT_THEATER_ADJACENT_MOUNTAIN_DESERT',        'YieldType',                'YIELD_CULTURE'),
        ('TRAIT_THEATER_ADJACENT_MOUNTAIN_DESERT',        'Amount',                    '1'),
        ('TRAIT_THEATER_ADJACENT_MOUNTAIN_DESERT',        'Description',                'LOC_DISTRICT_MOUNTAIN_2_CULTURE'),   

        ('TRAIT_THEATER_ADJACENT_MOUNTAIN_TUNDRA',        'DistrictType',                'DISTRICT_THEATER'),
        ('TRAIT_THEATER_ADJACENT_MOUNTAIN_TUNDRA',        'TerrainType',                'TERRAIN_TUNDRA_MOUNTAIN'),
        ('TRAIT_THEATER_ADJACENT_MOUNTAIN_TUNDRA',        'YieldType',                'YIELD_CULTURE'),
        ('TRAIT_THEATER_ADJACENT_MOUNTAIN_TUNDRA',        'Amount',                    '1'),
        ('TRAIT_THEATER_ADJACENT_MOUNTAIN_TUNDRA',        'Description',                'LOC_DISTRICT_MOUNTAIN_2_CULTURE'),   
        
        ('TRAIT_THEATER_ADJACENT_MOUNTAIN_SNOW',        'DistrictType',                'DISTRICT_THEATER'),
        ('TRAIT_THEATER_ADJACENT_MOUNTAIN_SNOW',        'TerrainType',                'TERRAIN_SNOW_MOUNTAIN'),
        ('TRAIT_THEATER_ADJACENT_MOUNTAIN_SNOW',        'YieldType',                'YIELD_CULTURE'),
        ('TRAIT_THEATER_ADJACENT_MOUNTAIN_SNOW',        'Amount',                    '1'),
        ('TRAIT_THEATER_ADJACENT_MOUNTAIN_SNOW',        'Description',                'LOC_DISTRICT_MOUNTAIN_2_CULTURE'),   

                        --COMMERCIAL_HUB Mountain Adjacency--
        ('TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_GRASS',        'DistrictType',                'DISTRICT_COMMERCIAL_HUB'),
        ('TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_GRASS',        'TerrainType',                'TERRAIN_GRASS_MOUNTAIN'),
        ('TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_GRASS',        'YieldType',                'YIELD_GOLD'),
        ('TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_GRASS',        'Amount',                    '1'),
        ('TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_GRASS',        'Description',                'LOC_DISTRICT_MOUNTAIN_2_GOLD'),
        
        ('TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_PLAINS',        'DistrictType',                'DISTRICT_COMMERCIAL_HUB'),
        ('TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_PLAINS',        'TerrainType',                'TERRAIN_PLAINS_MOUNTAIN'),
        ('TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_PLAINS',        'YieldType',                'YIELD_GOLD'),
        ('TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_PLAINS',        'Amount',                    '1'),
        ('TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_PLAINS',        'Description',                'LOC_DISTRICT_MOUNTAIN_2_GOLD'),   
        
        ('TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_DESERT',        'DistrictType',                'DISTRICT_COMMERCIAL_HUB'),
        ('TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_DESERT',        'TerrainType',                'TERRAIN_DESERT_MOUNTAIN'),
        ('TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_DESERT',        'YieldType',                'YIELD_GOLD'),
        ('TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_DESERT',        'Amount',                    '1'),
        ('TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_DESERT',        'Description',                'LOC_DISTRICT_MOUNTAIN_2_GOLD'),   

        ('TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_TUNDRA',        'DistrictType',                'DISTRICT_COMMERCIAL_HUB'),
        ('TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_TUNDRA',        'TerrainType',                'TERRAIN_TUNDRA_MOUNTAIN'),
        ('TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_TUNDRA',        'YieldType',                'YIELD_GOLD'),
        ('TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_TUNDRA',        'Amount',                    '1'),
        ('TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_TUNDRA',        'Description',                'LOC_DISTRICT_MOUNTAIN_2_GOLD'),   
        
        ('TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_SNOW',            'DistrictType',                'DISTRICT_COMMERCIAL_HUB'),
        ('TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_SNOW',            'TerrainType',                'TERRAIN_SNOW_MOUNTAIN'),
        ('TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_SNOW',            'YieldType',                'YIELD_GOLD'),
        ('TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_SNOW',            'Amount',                    '1'),
        ('TRAIT_COMMERCIAL_HUB_ADJACENT_MOUNTAIN_SNOW',            'Description',                'LOC_DISTRICT_MOUNTAIN_2_GOLD'),

                        --INDUSTRIAL_ZONE Mountain Adjacency--
        ('TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_GRASS',        'DistrictType',                'DISTRICT_INDUSTRIAL_ZONE'),
        ('TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_GRASS',        'TerrainType',                'TERRAIN_GRASS_MOUNTAIN'),
        ('TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_GRASS',        'YieldType',                'YIELD_PRODUCTION'),
        ('TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_GRASS',        'Amount',                    '1'),
        ('TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_GRASS',        'Description',                'LOC_DISTRICT_MOUNTAIN_2_PRODUCTION'),
        
        ('TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_PLAINS',        'DistrictType',                'DISTRICT_INDUSTRIAL_ZONE'),
        ('TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_PLAINS',        'TerrainType',                'TERRAIN_PLAINS_MOUNTAIN'),
        ('TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_PLAINS',        'YieldType',                'YIELD_PRODUCTION'),
        ('TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_PLAINS',        'Amount',                    '1'),
        ('TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_PLAINS',        'Description',                'LOC_DISTRICT_MOUNTAIN_2_PRODUCTION'),   
        
        ('TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_DESERT',        'DistrictType',                'DISTRICT_INDUSTRIAL_ZONE'),
        ('TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_DESERT',        'TerrainType',                'TERRAIN_DESERT_MOUNTAIN'),
        ('TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_DESERT',        'YieldType',                'YIELD_PRODUCTION'),
        ('TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_DESERT',        'Amount',                    '1'),
        ('TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_DESERT',        'Description',                'LOC_DISTRICT_MOUNTAIN_2_PRODUCTION'),   

        ('TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_TUNDRA',        'DistrictType',                'DISTRICT_INDUSTRIAL_ZONE'),
        ('TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_TUNDRA',        'TerrainType',                'TERRAIN_TUNDRA_MOUNTAIN'),
        ('TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_TUNDRA',        'YieldType',                'YIELD_PRODUCTION'),
        ('TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_TUNDRA',        'Amount',                    '1'),
        ('TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_TUNDRA',        'Description',                'LOC_DISTRICT_MOUNTAIN_2_PRODUCTION'),   
        
        ('TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_SNOW',        'DistrictType',                'DISTRICT_INDUSTRIAL_ZONE'),
        ('TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_SNOW',        'TerrainType',                'TERRAIN_SNOW_MOUNTAIN'),
        ('TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_SNOW',        'YieldType',                'YIELD_PRODUCTION'),
        ('TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_SNOW',        'Amount',                    '1'),
        ('TRAIT_INDUSTRIAL_ZONE_ADJACENT_MOUNTAIN_SNOW',        'Description',                'LOC_DISTRICT_MOUNTAIN_2_PRODUCTION'),

                        --CAMPUS Mountain Adjacency--
        ('TRAIT_CAMPUS_ADJACENT_MOUNTAIN_GRASS',        'DistrictType',                'DISTRICT_CAMPUS'),
        ('TRAIT_CAMPUS_ADJACENT_MOUNTAIN_GRASS',        'TerrainType',                'TERRAIN_GRASS_MOUNTAIN'),
        ('TRAIT_CAMPUS_ADJACENT_MOUNTAIN_GRASS',        'YieldType',                'YIELD_SCIENCE'),
        ('TRAIT_CAMPUS_ADJACENT_MOUNTAIN_GRASS',        'Amount',                    '1'),
        ('TRAIT_CAMPUS_ADJACENT_MOUNTAIN_GRASS',        'Description',                'LOC_DISTRICT_MOUNTAIN_2_SCIENCE'),
        
        ('TRAIT_CAMPUS_ADJACENT_MOUNTAIN_PLAINS',        'DistrictType',                'DISTRICT_CAMPUS'),
        ('TRAIT_CAMPUS_ADJACENT_MOUNTAIN_PLAINS',        'TerrainType',                'TERRAIN_PLAINS_MOUNTAIN'),
        ('TRAIT_CAMPUS_ADJACENT_MOUNTAIN_PLAINS',        'YieldType',                'YIELD_SCIENCE'),
        ('TRAIT_CAMPUS_ADJACENT_MOUNTAIN_PLAINS',        'Amount',                    '1'),
        ('TRAIT_CAMPUS_ADJACENT_MOUNTAIN_PLAINS',        'Description',                'LOC_DISTRICT_MOUNTAIN_2_SCIENCE'),   
        
        ('TRAIT_CAMPUS_ADJACENT_MOUNTAIN_DESERT',        'DistrictType',                'DISTRICT_CAMPUS'),
        ('TRAIT_CAMPUS_ADJACENT_MOUNTAIN_DESERT',        'TerrainType',                'TERRAIN_DESERT_MOUNTAIN'),
        ('TRAIT_CAMPUS_ADJACENT_MOUNTAIN_DESERT',        'YieldType',                'YIELD_SCIENCE'),
        ('TRAIT_CAMPUS_ADJACENT_MOUNTAIN_DESERT',        'Amount',                    '1'),
        ('TRAIT_CAMPUS_ADJACENT_MOUNTAIN_DESERT',        'Description',                'LOC_DISTRICT_MOUNTAIN_2_SCIENCE'),   

        ('TRAIT_CAMPUS_ADJACENT_MOUNTAIN_TUNDRA',        'DistrictType',                'DISTRICT_CAMPUS'),
        ('TRAIT_CAMPUS_ADJACENT_MOUNTAIN_TUNDRA',        'TerrainType',                'TERRAIN_TUNDRA_MOUNTAIN'),
        ('TRAIT_CAMPUS_ADJACENT_MOUNTAIN_TUNDRA',        'YieldType',                'YIELD_SCIENCE'),
        ('TRAIT_CAMPUS_ADJACENT_MOUNTAIN_TUNDRA',        'Amount',                    '1'),
        ('TRAIT_CAMPUS_ADJACENT_MOUNTAIN_TUNDRA',        'Description',                'LOC_DISTRICT_MOUNTAIN_2_SCIENCE'),   
        
        ('TRAIT_CAMPUS_ADJACENT_MOUNTAIN_SNOW',            'DistrictType',                'DISTRICT_CAMPUS'),
        ('TRAIT_CAMPUS_ADJACENT_MOUNTAIN_SNOW',            'TerrainType',                'TERRAIN_SNOW_MOUNTAIN'),
        ('TRAIT_CAMPUS_ADJACENT_MOUNTAIN_SNOW',            'YieldType',                'YIELD_SCIENCE'),
        ('TRAIT_CAMPUS_ADJACENT_MOUNTAIN_SNOW',            'Amount',                    '1'),
        ('TRAIT_CAMPUS_ADJACENT_MOUNTAIN_SNOW',            'Description',                'LOC_DISTRICT_MOUNTAIN_2_SCIENCE'),

                        --HOLY_SITE Mountain Adjacency--
        ('TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_GRASS',            'DistrictType',                'DISTRICT_HOLY_SITE'),
        ('TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_GRASS',            'TerrainType',                'TERRAIN_GRASS_MOUNTAIN'),
        ('TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_GRASS',            'YieldType',                'YIELD_FAITH'),
        ('TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_GRASS',            'Amount',                    '1'),
        ('TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_GRASS',            'Description',                'LOC_DISTRICT_MOUNTAIN_2_FAITH'),
        
        ('TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_PLAINS',        'DistrictType',                'DISTRICT_HOLY_SITE'),
        ('TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_PLAINS',        'TerrainType',                'TERRAIN_PLAINS_MOUNTAIN'),
        ('TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_PLAINS',        'YieldType',                'YIELD_FAITH'),
        ('TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_PLAINS',        'Amount',                    '1'),
        ('TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_PLAINS',        'Description',                'LOC_DISTRICT_MOUNTAIN_2_FAITH'),   
        
        ('TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_DESERT',        'DistrictType',                'DISTRICT_HOLY_SITE'),
        ('TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_DESERT',        'TerrainType',                'TERRAIN_DESERT_MOUNTAIN'),
        ('TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_DESERT',        'YieldType',                'YIELD_FAITH'),
        ('TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_DESERT',        'Amount',                    '1'),
        ('TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_DESERT',        'Description',                'LOC_DISTRICT_MOUNTAIN_2_FAITH'),   

        ('TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_TUNDRA',        'DistrictType',                'DISTRICT_HOLY_SITE'),
        ('TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_TUNDRA',        'TerrainType',                'TERRAIN_TUNDRA_MOUNTAIN'),
        ('TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_TUNDRA',        'YieldType',                'YIELD_FAITH'),
        ('TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_TUNDRA',        'Amount',                    '1'),
        ('TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_TUNDRA',        'Description',                'LOC_DISTRICT_MOUNTAIN_2_FAITH'),   
        
        ('TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_SNOW',            'DistrictType',                'DISTRICT_HOLY_SITE'),
        ('TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_SNOW',            'TerrainType',                'TERRAIN_SNOW_MOUNTAIN'),
        ('TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_SNOW',            'YieldType',                'YIELD_FAITH'),
        ('TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_SNOW',            'Amount',                    '1'),
        ('TRAIT_HOLY_SITE_ADJACENT_MOUNTAIN_SNOW',            'Description',                'LOC_DISTRICT_MOUNTAIN_2_FAITH'),

                        --HARBOR Mountain Adjacency--
        ('TRAIT_HARBOR_ADJACENT_MOUNTAIN_GRASS',        'DistrictType',                'DISTRICT_HARBOR'),
        ('TRAIT_HARBOR_ADJACENT_MOUNTAIN_GRASS',        'TerrainType',                'TERRAIN_GRASS_MOUNTAIN'),
        ('TRAIT_HARBOR_ADJACENT_MOUNTAIN_GRASS',        'YieldType',                'YIELD_GOLD'),
        ('TRAIT_HARBOR_ADJACENT_MOUNTAIN_GRASS',        'Amount',                    '1'),
        ('TRAIT_HARBOR_ADJACENT_MOUNTAIN_GRASS',        'Description',                'LOC_DISTRICT_MOUNTAIN_2_GOLD'),
        
        ('TRAIT_HARBOR_ADJACENT_MOUNTAIN_PLAINS',        'DistrictType',                'DISTRICT_HARBOR'),
        ('TRAIT_HARBOR_ADJACENT_MOUNTAIN_PLAINS',        'TerrainType',                'TERRAIN_PLAINS_MOUNTAIN'),
        ('TRAIT_HARBOR_ADJACENT_MOUNTAIN_PLAINS',        'YieldType',                'YIELD_GOLD'),
        ('TRAIT_HARBOR_ADJACENT_MOUNTAIN_PLAINS',        'Amount',                    '1'),
        ('TRAIT_HARBOR_ADJACENT_MOUNTAIN_PLAINS',        'Description',                'LOC_DISTRICT_MOUNTAIN_2_GOLD'),   
        
        ('TRAIT_HARBOR_ADJACENT_MOUNTAIN_DESERT',        'DistrictType',                'DISTRICT_HARBOR'),
        ('TRAIT_HARBOR_ADJACENT_MOUNTAIN_DESERT',        'TerrainType',                'TERRAIN_DESERT_MOUNTAIN'),
        ('TRAIT_HARBOR_ADJACENT_MOUNTAIN_DESERT',        'YieldType',                'YIELD_GOLD'),
        ('TRAIT_HARBOR_ADJACENT_MOUNTAIN_DESERT',        'Amount',                    '1'),
        ('TRAIT_HARBOR_ADJACENT_MOUNTAIN_DESERT',        'Description',                'LOC_DISTRICT_MOUNTAIN_2_GOLD'),   

        ('TRAIT_HARBOR_ADJACENT_MOUNTAIN_TUNDRA',        'DistrictType',                'DISTRICT_HARBOR'),
        ('TRAIT_HARBOR_ADJACENT_MOUNTAIN_TUNDRA',        'TerrainType',                'TERRAIN_TUNDRA_MOUNTAIN'),
        ('TRAIT_HARBOR_ADJACENT_MOUNTAIN_TUNDRA',        'YieldType',                'YIELD_GOLD'),
        ('TRAIT_HARBOR_ADJACENT_MOUNTAIN_TUNDRA',        'Amount',                    '1'),
        ('TRAIT_HARBOR_ADJACENT_MOUNTAIN_TUNDRA',        'Description',                'LOC_DISTRICT_MOUNTAIN_2_GOLD'),   
        
        ('TRAIT_HARBOR_ADJACENT_MOUNTAIN_SNOW',            'DistrictType',                'DISTRICT_HARBOR'),
        ('TRAIT_HARBOR_ADJACENT_MOUNTAIN_SNOW',            'TerrainType',                'TERRAIN_SNOW_MOUNTAIN'),
        ('TRAIT_HARBOR_ADJACENT_MOUNTAIN_SNOW',            'YieldType',                'YIELD_GOLD'),
        ('TRAIT_HARBOR_ADJACENT_MOUNTAIN_SNOW',            'Amount',                    '1'),
        ('TRAIT_HARBOR_ADJACENT_MOUNTAIN_SNOW',            'Description',                'LOC_DISTRICT_MOUNTAIN_2_GOLD');

Then in a separate SQL file I've attached the modifier to a trait and passed the arguments to it.

Code:
    <BaseGameText>
        <!--======================================================================================-->
        <!--Mountain Adjacencies-->
        <!--======================================================================================-->

        <Row Tag="LOC_DISTRICT_MOUNTAIN_2_CULTURE">
            <Text>+{2_num} [ICON_Culture] Culture from the adjacent Mountain {1_Num : plural 1?tile; other?tiles;}.</Text>
        </Row>
        
        <Row Tag="LOC_DISTRICT_MOUNTAIN_2_GOLD">
            <Text>+{2_num} [ICON_Gold] Gold from the adjacent Mountain {1_Num : plural 1?tile; other?tiles;}.</Text>
        </Row>

        <Row Tag="LOC_DISTRICT_MOUNTAIN_2_PRODUCTION">
            <Text>+{2_num} [ICON_Production] Production from the adjacent Mountain {1_Num : plural 1?tile; other?tiles;}.</Text>
        </Row>

        <Row Tag="LOC_DISTRICT_MOUNTAIN_2_FAITH">
            <Text>+{2_num} [ICON_Faith] Faith from the adjacent Mountain {1_Num : plural 1?tile; other?tiles;}.</Text>
        </Row>

        <Row Tag="LOC_DISTRICT_MOUNTAIN_2_SCIENCE">
            <Text>+{2_num} [ICON_Science] Science from the adjacent Mountain {1_Num : plural 1?tile; other?tiles;}.</Text>
        </Row>
    </BaseGameText>

These are the texts used for the tooltips. For some reason they're not showing up in game though it's in exactly the same format as what Brazil uses.
 
Ah yes. The EFFECT_TERRAIN_ADJACENCY effect. It's the same one I use in my Combined Tweaks mod for Russia's bonuses. I think the adjacency bonus does show up in my mod, although to be honest maybe I should check more closely because it's been a while.
 
I just checked and for Tundra Hills at least the adjacency bonus does show up. I didn't test for Mountains.

If it's not working you might want to make sure that the string you create in the ModifierArguments ('Description') points to a legit place in the text strings.

upload_2017-8-23_18-46-27.png
 
Back
Top Bottom