[SOLVED] Help with Code: Neighborhood - Industrial Zone Adjacency Housing

Ulixes

Prince
Joined
May 2, 2010
Messages
312
I'm trying to give Neighborhood District +1 Housing when adjacent to Industrial Zone and when adjacent to Harbor but the increase is more than 1. (at least 2 or 3, I'm still testing but it seem to work fine with the first and it increase with each neighborhood district placed)

Here's the code:

Code:
INSERT INTO Modifiers (ModifierId,            ModifierType,                                RunOnce,    Permanent,    SubjectRequirementSetId                    ) VALUES
('U_NEIGHBORHOOD_INDUSTRIAL_ZONE_HOUSING',    'MODIFIER_PLAYER_DISTRICTS_ADJUST_HOUSING',    1,             1,             'U_PLOT_ADJACENT_TO_INDUSTRIAL_ZONE'    ),
('U_NEIGHBORHOOD_HARBOR_HOUSING',            'MODIFIER_PLAYER_DISTRICTS_ADJUST_HOUSING',    1,             1,             'U_PLOT_ADJACENT_TO_HARBOR'                );

INSERT INTO ModifierArguments (ModifierId,    Name,        Value    ) VALUES
('U_NEIGHBORHOOD_INDUSTRIAL_ZONE_HOUSING',    'Amount',    '1'        ),
('U_NEIGHBORHOOD_HARBOR_HOUSING',            'Amount',    '1'        );

INSERT INTO DistrictModifiers (DistrictType,     ModifierId                                    ) VALUES
('DISTRICT_NEIGHBORHOOD',                         'U_NEIGHBORHOOD_INDUSTRIAL_ZONE_HOUSING'    ),
('DISTRICT_NEIGHBORHOOD',                         'U_NEIGHBORHOOD_HARBOR_HOUSING'                );

INSERT INTO RequirementSets    (RequirementSetId,    RequirementSetType            )    VALUES
('U_PLOT_ADJACENT_TO_INDUSTRIAL_ZONE',            'REQUIREMENTSET_TEST_ALL'    ),
('U_PLOT_ADJACENT_TO_HARBOR',                    'REQUIREMENTSET_TEST_ALL'    );

INSERT INTO RequirementSetRequirements    (RequirementSetId,    RequirementID                                    )    VALUES
('U_PLOT_ADJACENT_TO_INDUSTRIAL_ZONE',                        'U_REQUIRES_PLOT_ADJACENT_TO_INDUSTRIAL_ZONE'    ),
('U_PLOT_ADJACENT_TO_INDUSTRIAL_ZONE',                        'REQUIRES_DISTRICT_IS_NEIGHBORHOOD'                ),
('U_PLOT_ADJACENT_TO_HARBOR',                                'U_REQUIRES_PLOT_ADJACENT_TO_HARBOR'            ),
('U_PLOT_ADJACENT_TO_HARBOR',                                'REQUIRES_DISTRICT_IS_NEIGHBORHOOD'                );

INSERT INTO Requirements    (RequirementId,        RequirementType                                        )    VALUES
('U_REQUIRES_PLOT_ADJACENT_TO_INDUSTRIAL_ZONE',    'REQUIREMENT_PLOT_ADJACENT_DISTRICT_TYPE_MATCHES'    ),
('U_REQUIRES_PLOT_ADJACENT_TO_HARBOR',            'REQUIREMENT_PLOT_ADJACENT_DISTRICT_TYPE_MATCHES'    );

INSERT INTO RequirementArguments    (RequirementId,    Name,            Value                        )    VALUES
('U_REQUIRES_PLOT_ADJACENT_TO_INDUSTRIAL_ZONE',        'DistrictType',    'DISTRICT_INDUSTRIAL_ZONE'    ),
('U_REQUIRES_PLOT_ADJACENT_TO_HARBOR',                'DistrictType',    'DISTRICT_HARBOR'            );

Can someone please help me figure out what I'm doing wrong?

(Also: is there someone who already did this, or something similar?)
 
Last edited:
If I understand you correctly, what happens is that the first neighborhood works correctly, but any additional neighborhood increases housing by more than 1?
My guess is that because your modifier uses COLLECTION_PLAYER_DISTRICTS, each modifier applies to every district and not just the one it's attached to, so they stack up.
That way, the first modifier adds 1 to the first neighborhood. When you get another neighborhood the first modifier adds 1 to it, and its modifier adds 1 both to it and to the first neighborhood.
Try using COLLECTION_OWNER instead, it might solve the problem.
 
Thanks, I'll test your suggestion as soon as possible and report the results here.
 
RL got in the way but I finally tested the new modifier, it seems to work like a charm! Thank you for your advice.

Here the full code, in case someone is interested:

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

INSERT INTO DynamicModifiers    (ModifierType,    CollectionType,        EffectType                            )    VALUES
('U_MODIFIER_PLAYER_DISTRICTS_ADJUST_HOUSING',    'COLLECTION_OWNER',    'EFFECT_ADJUST_DISTRICT_HOUSING'    );

INSERT INTO Modifiers (ModifierId,            ModifierType,                                    RunOnce,    Permanent,    SubjectRequirementSetId                    ) VALUES
('U_NEIGHBORHOOD_INDUSTRIAL_ZONE_HOUSING',    'U_MODIFIER_PLAYER_DISTRICTS_ADJUST_HOUSING',    1,             1,             'U_PLOT_ADJACENT_TO_INDUSTRIAL_ZONE'    ),
('U_NEIGHBORHOOD_HARBOR_HOUSING',            'U_MODIFIER_PLAYER_DISTRICTS_ADJUST_HOUSING',    1,             1,             'U_PLOT_ADJACENT_TO_HARBOR'                );

INSERT INTO ModifierArguments (ModifierId,    Name,        Value    ) VALUES
('U_NEIGHBORHOOD_INDUSTRIAL_ZONE_HOUSING',    'Amount',    '1'        ),
('U_NEIGHBORHOOD_HARBOR_HOUSING',            'Amount',    '1'        );

INSERT INTO DistrictModifiers (DistrictType,     ModifierId                                    ) VALUES
('DISTRICT_NEIGHBORHOOD',                         'U_NEIGHBORHOOD_INDUSTRIAL_ZONE_HOUSING'    ),
('DISTRICT_NEIGHBORHOOD',                         'U_NEIGHBORHOOD_HARBOR_HOUSING'                );

INSERT INTO RequirementSets    (RequirementSetId,    RequirementSetType            )    VALUES
('U_PLOT_ADJACENT_TO_INDUSTRIAL_ZONE',            'REQUIREMENTSET_TEST_ALL'    ),
('U_PLOT_ADJACENT_TO_HARBOR',                    'REQUIREMENTSET_TEST_ALL'    );

INSERT INTO RequirementSetRequirements    (RequirementSetId,    RequirementID                                    )    VALUES
('U_PLOT_ADJACENT_TO_INDUSTRIAL_ZONE',                        'U_REQUIRES_PLOT_ADJACENT_TO_INDUSTRIAL_ZONE'    ),
('U_PLOT_ADJACENT_TO_INDUSTRIAL_ZONE',                        'REQUIRES_DISTRICT_IS_NEIGHBORHOOD'                ),
('U_PLOT_ADJACENT_TO_HARBOR',                                'U_REQUIRES_PLOT_ADJACENT_TO_HARBOR'            ),
('U_PLOT_ADJACENT_TO_HARBOR',                                'REQUIRES_DISTRICT_IS_NEIGHBORHOOD'                );

INSERT INTO Requirements    (RequirementId,        RequirementType                                        )    VALUES
('U_REQUIRES_PLOT_ADJACENT_TO_INDUSTRIAL_ZONE',    'REQUIREMENT_PLOT_ADJACENT_DISTRICT_TYPE_MATCHES'    ),
('U_REQUIRES_PLOT_ADJACENT_TO_HARBOR',            'REQUIREMENT_PLOT_ADJACENT_DISTRICT_TYPE_MATCHES'    );

INSERT INTO RequirementArguments    (RequirementId,    Name,            Value                        )    VALUES
('U_REQUIRES_PLOT_ADJACENT_TO_INDUSTRIAL_ZONE',        'DistrictType',    'DISTRICT_INDUSTRIAL_ZONE'    ),
('U_REQUIRES_PLOT_ADJACENT_TO_HARBOR',                'DistrictType',    'DISTRICT_HARBOR'            );
 
Top Bottom