RogueAustralian
Warlord
- Joined
- Feb 8, 2025
- Messages
- 116
Irrationally excited. I think I've found a way to propagate a modifier to everyone if a certain civ is in the game.
(example from narrative-stories-gameeffects.xml). Interested primarily in the REQUIREMENT_COLLECTION_ANY_MET criteria here. Now, there's a COLLECTION_MAJOR_PLAYERS which as best I can surmise, refers to the players themselves, which is prominently used in religion and city-state elements:
Thus, I think the two can be combined to achieve a modifier for someone if any player meets a criteria, specifically if any player is of a certain civilization (
REQUIREMENT_PLAYER_CIVILIZATION_TYPE_MATCHES, args are "CivilizationType").
I think - without testing - to achieve a modifier for all players in a game where Greece is active, this would look something like:
(REQSET_CIV_IS_GREECE is a requirement set that does the type checking already)
My intended use case here is for a civ I'm experimenting with diverse culture tree mechanics - if this works like how I think it will, I plan to play with a civilization that has some sort of powerful civic tree, and grants a lesser civic tree to all other civs in the age. (just playing with mechanics for now, unsure how that'll flavor)
RE Legacy Paths: That seems to be a no-go. They seem to be fairly hardcoded in and difficult to change for just one player if that's even a possibility. (let alone for anyone - that seems more possible, but I couldn't find a clean way to do it)
Code:
<RequirementSet id="REQSET_1A_NARRATIVE">
<Requirement xref="REQ_STORY_CIVILIZATION_EGYPT"/>
<Requirement xref="REQ_STORY_LEADER_HATSHEPSUT"/>
<Requirement type="REQUIREMENT_COLLECTION_ANY_MET">
<Argument name="CollectionType">COLLECTION_PLAYER_CAPITAL_CITY</Argument>
<Argument name="RequirementSetId">SUBREQSET_1A_NARRATIVE</Argument>
</Requirement>
</RequirementSet>
(example from narrative-stories-gameeffects.xml). Interested primarily in the REQUIREMENT_COLLECTION_ANY_MET criteria here. Now, there's a COLLECTION_MAJOR_PLAYERS which as best I can surmise, refers to the players themselves, which is prominently used in religion and city-state elements:
Code:
<Modifier id="BONUS_18_NATURAL_WONDER_GOLD" collection="COLLECTION_MAJOR_PLAYERS" effect="EFFECT_ATTACH_MODIFIERS">
<SubjectRequirements>
<Requirement type="REQUIREMENT_PLAYER_IS_RELIGION_FOUNDER"/>
</SubjectRequirements>
<Argument name="ModifierId">ATTACH_NATURAL_WONDER_GOLD</Argument>
</Modifier>
Thus, I think the two can be combined to achieve a modifier for someone if any player meets a criteria, specifically if any player is of a certain civilization (
REQUIREMENT_PLAYER_CIVILIZATION_TYPE_MATCHES, args are "CivilizationType").
I think - without testing - to achieve a modifier for all players in a game where Greece is active, this would look something like:
Code:
<Modifier ... collection="COLLECTION_MAJOR_PLAYERS">
<SubjectRequirements>
<Requirement type="REQUIREMENT_COLLECTION_ANY_MET">
<Argument name="CollectionType">COLLECTION_MAJOR_PLAYERS</Argument>
<Argument name="RequirementSetId">REQSET_CIV_IS_GREECE</Argument>
</Requirement>
</SubjectRequirements>
</Modifier>
(REQSET_CIV_IS_GREECE is a requirement set that does the type checking already)
My intended use case here is for a civ I'm experimenting with diverse culture tree mechanics - if this works like how I think it will, I plan to play with a civilization that has some sort of powerful civic tree, and grants a lesser civic tree to all other civs in the age. (just playing with mechanics for now, unsure how that'll flavor)
RE Legacy Paths: That seems to be a no-go. They seem to be fairly hardcoded in and difficult to change for just one player if that's even a possibility. (let alone for anyone - that seems more possible, but I couldn't find a clean way to do it)