Agenda learning resources?

luei333

Warlord
Joined
May 25, 2014
Messages
185
Hey there everyone. I'm building some new civs for Civ 6, as you do, and I'm at the point where I need to code the agendas, and they're giving me some trouble. Are there any resources on the forums yet pertaining to how agendas should be structured and work? How the AILists and Modifiers are supposed to work together, and what modifier effects are pertinent to certain Agenda effects? In particular for my civ, how do spies and espionage interact with agendas? The only thing I can think to look up is Catherine's Agenda, but its implementation in the game's data is frustratingly vague.
 
Here's an example from my mod... was file named Denmark_Agendas.xml I think:

Code:
<GameInfo>   
    <Types>       
        <Row Type="TRAIT_AGENDA_DANELAW" Kind="KIND_TRAIT"/>
    </Types>
    <AiLists>   
        <Row ListType="SettleAllContinents" AgendaType="TRAIT_AGENDA_DANELAW" System="PlotEvaluations"/>
        <Row ListType="DarwinistIgnoreWarmongerValue" AgendaType="TRAIT_AGENDA_DANELAW" System="PseudoYields"/>
    </AiLists>
    <Traits>
        <Row TraitType="TRAIT_AGENDA_DANELAW" Name="LOC_PLACEHOLDER" Description="LOC_PLACEHOLDER"/>
    </Traits>
    <ExclusiveAgendas>
        <Row AgendaOne="AGENDA_DANELAW" AgendaTwo="AGENDA_DARWINIST"/>       
        <Row AgendaOne="AGENDA_DANELAW" AgendaTwo="AGENDA_STANDING_ARMY"/>
    </ExclusiveAgendas>
    <AgendaTraits>   
        <Row AgendaType="AGENDA_DANELAW" TraitType="TRAIT_AGENDA_DANELAW"/>
    </AgendaTraits>
    <TraitModifiers>
        <Row TraitType="TRAIT_AGENDA_DANELAW" ModifierId="AGENDA_DANELAW_HOME_CONTINENT"/>
        <Row TraitType="TRAIT_AGENDA_DANELAW" ModifierId="AGENDA_DANELAW_NEW_CONTINENT"/>
        <Row TraitType="TRAIT_AGENDA_DANELAW" ModifierId="AGENDA_DANELAW_ENJ0YS_WAR"/>
        <Row TraitType="TRAIT_AGENDA_DANELAW" ModifierId="AGENDA_DANELAW_IGNORE_WARMONGERING"/>
        <Row TraitType="TRAIT_AGENDA_DANELAW" ModifierId="AGENDA_DANELAW_LOW_STANDING_ARMY"/>   
    </TraitModifiers>
    <Modifiers>
        <Row>
            <ModifierId>AGENDA_DANELAW_HOME_CONTINENT</ModifierId>
            <ModifierType>MODIFIER_PLAYER_DIPLOMACY_SIMPLE_MODIFIER</ModifierType>
            <SubjectRequirementSetId>PLAYER_SAME_HOME_CONTINENT</SubjectRequirementSetId>
        </Row>
        <Row>
            <ModifierId>AGENDA_DANELAW_NEW_CONTINENT</ModifierId>
            <ModifierType>MODIFIER_PLAYER_DIPLOMACY_SIMPLE_MODIFIER</ModifierType>
            <SubjectRequirementSetId>PLAYER_ON_NEW_CONTINENT</SubjectRequirementSetId>
        </Row>
        <Row>
            <ModifierId>AGENDA_DANELAW_ENJOYS_WAR</ModifierId>
            <ModifierType>MODIFIER_PLAYER_DIPLOMACY_SIMPLE_MODIFIER</ModifierType>
            <SubjectRequirementSetId>PLAYER_DECLARES_WAR</SubjectRequirementSetId>
        </Row>
        <Row>
            <ModifierId>AGENDA_DANELAW_IGNORE_WARMONGERING</ModifierId>
            <ModifierType>MODIFIER_PLAYER_ADJUST_WARMONGER_MULTIPLIER</ModifierType>
        </Row>
        <Row>
            <ModifierId>AGENDA_DANELAW_LOW_STANDING_ARMY</ModifierId>
            <ModifierType>MODIFIER_PLAYER_DIPLOMACY_SIMPLE_MODIFIER</ModifierType>
            <SubjectRequirementSetId>PLAYER_HAS_LOW_STANDING_ARMY</SubjectRequirementSetId>
        </Row>
    </Modifiers>
    <ModifierArguments>
        <Row>
            <ModifierId>AGENDA_DANELAW_HOME_CONTINENT</ModifierId>
            <Name>InitialValue</Name>
            <Value>12</Value>
        </Row>
        <Row>
            <ModifierId>AGENDA_DANELAW_HOME_CONTINENT</ModifierId>
            <Name>StatementKey</Name>
            <Value>LOC_DIPLO_KUDO_LEADER_VICTORIA_REASON_ANY</Value>
        </Row>
        <Row>
            <ModifierId>AGENDA_DANELAW_HOME_CONTINENT</ModifierId>
            <Name>SimpleModifierDescription</Name>
            <Value>LOC_DIPLO_MODIFIER_SUN_SETS_HOME_CONTINENT</Value>
        </Row>
        <Row>
            <ModifierId>AGENDA_DANELAW_NEW_CONTINENT</ModifierId>
            <Name>InitialValue</Name>
            <Value>-5</Value>
        </Row>
        <Row>
            <ModifierId>AGENDA_DANELAW_NEW_CONTINENT</ModifierId>
            <Name>StatementKey</Name>
            <Value>LOC_DIPLO_WARNING_LEADER_VICTORIA_REASON_ANY</Value>
        </Row>
        <Row>
            <ModifierId>AGENDA_DANELAW_NEW_CONTINENT</ModifierId>
            <Name>SimpleModifierDescription</Name>
            <Value>LOC_DIPLO_MODIFIER_SUN_SETS_NEW_CONTINENT</Value>
        </Row>
        <Row>
            <ModifierId>AGENDA_DANELAW_ENJOYS_WAR</ModifierId>
            <Name>InitialValue</Name>
            <Value>8</Value>
        </Row>
        <Row>
            <ModifierId>AGENDA_DANELAW_ENJOYS_WAR</ModifierId>
            <Name>ReductionTurns</Name>
            <Value>10</Value>
        </Row>
        <Row>
            <ModifierId>AGENDA_DANELAW_ENJOYS_WAR</ModifierId>
            <Name>ReductionValue</Name>
            <Value>-1</Value>
        </Row>
        <Row>
            <ModifierId>AGENDA_DANELAW_ENJOYS_WAR</ModifierId>
            <Name>StatementKey</Name>
            <Value>LOC_DIPLO_KUDO_LEADER_ANY_REASON_AGENDA_ENJOYS_WAR</Value>
        </Row>
        <Row>
            <ModifierId>AGENDA_DANELAW_ENJOYS_WAR</ModifierId>
            <Name>SimpleModifierDescription</Name>
            <Value>LOC_DIPLO_MODIFIER_DESCRIPTION_ENJOYS_WAR</Value>
        </Row>
            <Row>
            <ModifierId>AGENDA_DANELAW_IGNORE_WARMONGERING</ModifierId>
            <Name>Amount</Name>
            <Value>0</Value>
        </Row>
            <Row>
            <ModifierId>AGENDA_DANELAW_LOW_STANDING_ARMY</ModifierId>
            <Name>InitialValue</Name>
            <Value>-6</Value>
        </Row>
        <Row>
            <ModifierId>AGENDA_DANELAW_LOW_STANDING_ARMY</ModifierId>
            <Name>StatementKey</Name>
            <Value>LOC_DIPLO_WARNING_LEADER_ANY_REASON_AGENDA_LOW_STANDING_ARMY</Value>
        </Row>
        <Row>
            <ModifierId>AGENDA_DANELAW_LOW_STANDING_ARMY</ModifierId>
            <Name>SimpleModifierDescription</Name>
            <Value>LOC_DIPLO_MODIFIER_DESCRIPTION_LOW_STANDING_ARMY</Value>
        </Row>
    </ModifierArguments>
    <ModifierStrings>   
        <Row ModifierId="AGENDA_DANELAW_HOME_CONTINENT" Context="Sample" Text="LOC_TOOLTIP_SAMPLE_DIPLOMACY_ALL"/>
        <Row ModifierId="AGENDA_DANELAW_NEW_CONTINENT" Context="Sample" Text="LOC_TOOLTIP_SAMPLE_DIPLOMACY_ALL"/>
        <Row ModifierId="AGENDA_DANELAW_LOW_STANDING_ARMY" Context="Sample" Text="LOC_TOOLTIP_SAMPLE_DIPLOMACY_ALL"/>
    </ModifierStrings>
</GameInfo>

And here is the relevant part of my leader file:

Code:
<Agendas>       
        <Row AgendaType="AGENDA_DANELAW" Name="LOC_AGENDA_DANELAW_NAME" Description="LOC_AGENDA_DANELAW_DESCRIPTION"/>       
    </Agendas>
    <HistoricalAgendas>
        <Row LeaderType="LEADER_BLUETOOTH" AgendaType="AGENDA_DANELAW"/>
    </HistoricalAgendas>   
    <AiListTypes>
        <Row ListType="BluetoothCivics"/>
        <Row ListType="BluetoothTechs"/>
        <Row ListType="BluetoothWonders"/>
    </AiListTypes>
    <AiLists>
        <Row ListType="BluetoothWonders" LeaderType="TRAIT_LEADER_TRELLEBORG_FORTRESSES" System="Buildings"/>
        <Row ListType="BluetoothCivics" LeaderType="TRAIT_LEADER_TRELLEBORG_FORTRESSES" System="Civics"/>
        <Row ListType="BluetoothTechs" LeaderType="TRAIT_LEADER_TRELLEBORG_FORTRESSES" System="Technologies"/>
    </AiLists>
    <AiFavoredItems>
        <Row ListType="BluetoothWonders" Item="BUILDING_GREAT_LIGHTHOUSE"/>
        <Row ListType="BluetoothWonders" Item="BUILDING_TERRACOTTA_ARMY"/>
        <Row ListType="BluetoothCivics" Item="CIVIC_MILITARY_TRAINING"/>
        <Row ListType="BluetoothCivics" Item="CIVIC_MERCENARIES"/>
        <Row ListType="BluetoothTechs" Item="TECH_SHIPBUILDING"/>
        <Row ListType="BluetoothTechs" Item="TECH_IRON_WORKING"/>
    </AiFavoredItems>

And finally, text in my overall Denmark_Text file:

Code:
<BaseGameText>
        <Row Tag="LOC_AGENDA_DANELAW_NAME">
            <Text>The Danelaw</Text>
        </Row>
        <Row Tag="LOC_AGENDA_DANELAW_DESCRIPTION">
            <Text>Likes civilizations from his home continent, and wants to expand to all continents. Doesn’t like civilizations on continents where Denmark has no city. Doesn't like civilizations with small armies and likes war.</Text>
        </Row>
    </BaseGameText>

Hope this helps as an example...
 
That does help, thanks. What I still don't get, though, is why the AILists are necessary (SettleAllContinents, DarwinistIgnoreWarmongerValue). From what I see, there's no interaction with those list values or systems and the rest of the agenda. And what do the InitialValue entries in the modifier arguments add to/subtract from in play; the diplomacy value between the AI and another civ, or maybe those AIList values? Also, I'm curious what all the possible arguments for the simple diplomacy modifier type are.
 
Oh, I see what you did now. I didn't realize that the AILists entries you used were existing entries from the base games. I also missed the part where it related them to your agenda in that same code. Looking at the favored items for those lists, it all makes a lot more sense, though I suppose I'm still relying on the stuff from the base game xml files until some resource gets put together on them.
 
Back
Top Bottom