blob: 6f483f5a96637cdb9893b463acf2fa307516fa67 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<metaabm:SContext xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:act="http://metaabm.org/act" xmlns:function="http://metaabm.org/function" xmlns:metaabm="http://metaabm.org/structure" label="Demographic Prisoner_s Dilemma" ID="demographicPrisoner_sDilemma" pluralLabel="Demographic Prisoner_s Dilemmas">
<attributes label="Player Count" ID="playerCount" pluralLabel="Player Counts" description="The number of players to create." sType="INTEGER" defaultValue="100"/>
<attributes label="Minimum Wealth" ID="minimumWealth" pluralLabel="Minimum Wealths" sType="INTEGER" defaultValue="20"/>
<attributes label="Maximum Wealth" ID="maximumWealth" pluralLabel="Maximum Wealths" sType="INTEGER" defaultValue="100"/>
<attributes label="Maximum Age" ID="maximumAge" pluralLabel="Maximum Ages" sType="INTEGER" defaultValue="100"/>
<attributes label="Payoff Cooperate Cooperate" ID="payoffCC" pluralLabel="Payoff Cooperate Cooperates" description="The change in wealth for a player when playing cooperate against cooperate." sType="INTEGER" defaultValue="2"/>
<attributes label="Payoff Cooperate Defect" ID="payoffCD" pluralLabel="Payoff Cooperate Defects" description="The change in wealth for a player when playing cooperate against defect." sType="INTEGER" defaultValue="-6"/>
<attributes label="Payoff Defect Cooperate" ID="payoffDC" pluralLabel="Payoff Defect Cooperates" description="The change in wealth for a player when playing defect against cooperate." sType="INTEGER" defaultValue="6"/>
<attributes label="Payoff Defect Defect" ID="payoffDD" pluralLabel="Payoff Defect Defects" description="The change in wealth for a player when both players defect." sType="INTEGER" defaultValue="-5"/>
<attributes label="Fission Wealth" ID="fissionWealth" pluralLabel="Fission Wealths" description="The wealth level at which an agent can fission." sType="INTEGER" defaultValue="11"/>
<attributes label="Inheirited Wealth" ID="inheiritedWealth" pluralLabel="Inheirited Wealths" description="The wealth that is passed from parent to child." sType="INTEGER" defaultValue="6"/>
<attributes label="Initial Wealth" ID="initialWealth" pluralLabel="Initial Wealths" description="The wealth initially assigned to an agent at the beginning of model run." sType="INTEGER" defaultValue="6"/>
<attributes label="Mutation Rate" ID="mutationRate" pluralLabel="Mutation Rates" description="The probabaility that a given agent will change strategies in a given period, expressed as a value from 0.0 to 1.0." sType="REAL" defaultValue=".1"/>
<attributes label="Death Age" ID="deathAge" pluralLabel="Death Ages" description="The number of periods before an agent will be removed from game when Die At Age rule is active." sType="INTEGER" defaultValue="100"/>
<attributes label="Birth Age" ID="birthAge" pluralLabel="Birth Ages" description="The actual age in years as determined by data set." sType="INTEGER" units="Years"/>
<rootActivity xsi:type="act:AGroup" label="Root Act Group" ID="rootActGroup" pluralLabel="Root Acts">
<members xsi:type="act:ABuild" label="Build Demographic Prisonner's Dillema" ID="buildDemographicPrisonnersDillema" targets="//@rootActivity/@members[ID='createPlayers'] //@rootActivity/@members[ID='buildGrid']" selected="//@rootActivity/@members[ID='buildDemographicPrisonnersDillema']" agent="/" pluralLabel="Build Demographic Prisonner's Dillemas"/>
<members xsi:type="act:ACreateAgents" label="Create Players" ID="createPlayers" sources="//@rootActivity/@members[ID='buildDemographicPrisonnersDillema']" selected="//@rootActivity/@members[ID='buildDemographicPrisonnersDillema']" agent="//@agents[ID='player']" agentCount="//@attributes[ID='playerCount']"/>
<members xsi:type="act:ABuildGrid" label="Build Grid" ID="buildGrid" sources="//@rootActivity/@members[ID='buildDemographicPrisonnersDillema']" selected="//@rootActivity/@members[ID='buildDemographicPrisonnersDillema']" pluralLabel="Build Grids" agents="//@agents[ID='player']" projection="//@projections[ID='gameSpace']" fillAgent="//@agents[ID='playCell']"/>
</rootActivity>
<implementation package="edu.brook" className="DemographicPrisonersDilemma" basePath=""/>
<agents label="Player" ID="player" pluralLabel="Players">
<attributes label="Cooperate" ID="cooperate" pluralLabel="Cooperates" gatherData="true"/>
<attributes label="Age" ID="age" pluralLabel="Ages" sType="INTEGER" gatherData="true"/>
<attributes label="Wealth" ID="wealth" pluralLabel="Wealths" sType="INTEGER" gatherData="true"/>
<rootActivity xsi:type="act:AGroup" label="Root Act Group" ID="rootActGroup" pluralLabel="Root Acts">
<members xsi:type="act:AInitialize" label="Initialize" ID="initialize" targets="//@agents[ID='player']/@rootActivity/@members[ID='randomToMaxAge'] //@agents[ID='player']/@rootActivity/@members[ID='randomStrategy'] //@agents[ID='player']/@rootActivity/@members[ID='setWealthToInitialWealth']" selected="//@agents[ID='player']/@rootActivity/@members[ID='initialize']" agent="//@agents[ID='player']" space="//@projections[ID='gameSpace']" pluralLabel="Initializes"/>
<members xsi:type="act:AInitialize" label="Move To Random Location" ID="moveToRandomLocation" targets="//@agents[ID='player']/@rootActivity/@members[ID='randomCell2']" selected="//@agents[ID='player']/@rootActivity/@members[ID='moveToRandomLocation']" agent="//@agents[ID='player']" space="//@projections[ID='gameSpace']" pluralLabel="Move To Random Locations"/>
<members xsi:type="act:AEvaluate" label="Random To Max Age" ID="randomToMaxAge" sources="//@agents[ID='player']/@rootActivity/@members[ID='initialize']" targets="//@agents[ID='player']/@rootActivity/@members[ID='setRandomAge']" selected="//@agents[ID='player']/@rootActivity/@members[ID='initialize']">
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='initialize']" value="//@attributes[ID='maximumAge']"/>
<function xsi:type="function:FGenericFunction" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='random']/@functions[ID='randomToLimit']"/>
</members>
<members xsi:type="act:ASet" label="Set Random Age" ID="setRandomAge" sources="//@agents[ID='player']/@rootActivity/@members[ID='randomToMaxAge']" selected="//@agents[ID='player']/@rootActivity/@members[ID='initialize']" attribute="//@agents[ID='player']/@attributes[ID='age']" parameter="//@agents[ID='player']/@rootActivity/@members[ID='randomToMaxAge']"/>
<members xsi:type="act:AEvaluate" label="Random Strategy" ID="randomStrategy" sources="//@agents[ID='player']/@rootActivity/@members[ID='initialize']" targets="//@agents[ID='player']/@rootActivity/@members[ID='setRandomStrategy']" selected="//@agents[ID='player']/@rootActivity/@members[ID='initialize']">
<function xsi:type="function:FGenericLogical" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='random']/@functions[ID='randomIs']"/>
</members>
<members xsi:type="act:ASelect" label="Random Neighbor" ID="randomNeighbor" sources="//@agents[ID='player']/@rootActivity/@members[ID='randomWalk']" targets="//@agents[ID='player']/@rootActivity/@members[ID='neighbor'] //@agents[ID='player']/@rootActivity/@members[ID='available']" selected="//@agents[ID='player']/@rootActivity/@members[ID='randomWalk']" agent="//@agents[ID='playCell']" space="//@projections[ID='gameSpace']"/>
<members xsi:type="act:AQuery" label="Neighbor" ID="neighbor" sources="//@agents[ID='player']/@rootActivity/@members[ID='randomNeighbor']" targets="//@agents[ID='player']/@rootActivity/@members[ID='availableNeighbor']" selected="//@agents[ID='player']/@rootActivity/@members[ID='randomNeighbor']">
<function xsi:type="function:FGenericLogical" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='spatial']/@functions[ID='neighbor']"/>
</members>
<members xsi:type="act:AMove" label="Move to Demographic Prisonners Dillema in Game Space" ID="movetoDemographicPrisonnersDillemainGameSpace" sources="//@agents[ID='player']/@rootActivity/@members[ID='availableNeighbor']" selected="//@agents[ID='player']/@rootActivity/@members[ID='randomWalk']" destination="//@agents[ID='player']/@rootActivity/@members[ID='randomNeighbor']"/>
<members xsi:type="act:ARule" label="Random Walk" ID="randomWalk" targets="//@agents[ID='player']/@rootActivity/@members[ID='randomNeighbor']" selected="//@agents[ID='player']/@rootActivity/@members[ID='randomWalk']" agent="//@agents[ID='player']" space="//@projections[ID='gameSpace']" pluralLabel="Random Walks"/>
<members xsi:type="act:ARule" label="Play Neighbor" ID="playNeighbor" targets="//@agents[ID='player']/@rootActivity/@members[ID='playerDefect'] //@agents[ID='player']/@rootActivity/@members[ID='playerCooperate'] //@agents[ID='player']/@rootActivity/@members[ID='otherPlayer']" selected="//@agents[ID='player']/@rootActivity/@members[ID='playNeighbor']" agent="//@agents[ID='player']" space="//@projections[ID='gameSpace']" pluralLabel="Play Neighbors"/>
<members xsi:type="act:ASet" label="Set Random Strategy" ID="setRandomStrategy" sources="//@agents[ID='player']/@rootActivity/@members[ID='randomStrategy']" selected="//@agents[ID='player']/@rootActivity/@members[ID='initialize']" attribute="//@agents[ID='player']/@attributes[ID='cooperate']" parameter="//@agents[ID='player']/@rootActivity/@members[ID='randomStrategy']"/>
<members xsi:type="act:ASelect" label="Random Cell 2" ID="randomCell2" sources="//@agents[ID='player']/@rootActivity/@members[ID='moveToRandomLocation']" targets="//@agents[ID='player']/@rootActivity/@members[ID='spaceAvailable']" selected="//@agents[ID='player']/@rootActivity/@members[ID='moveToRandomLocation']" agent="//@agents[ID='playCell']" space="//@projections[ID='gameSpace']"/>
<members xsi:type="act:AMove" label="Move to Player in Game Spac" ID="movetoPlayerinGameSpac" sources="//@agents[ID='player']/@rootActivity/@members[ID='spaceAvailable']" selected="//@agents[ID='player']/@rootActivity/@members[ID='moveToRandomLocation']" destination="//@agents[ID='player']/@rootActivity/@members[ID='randomCell2']"/>
<members xsi:type="act:ARule" label="Update Age" ID="updateAge" targets="//@agents[ID='player']/@rootActivity/@members[ID='incrementAge']" selected="//@agents[ID='player']/@rootActivity/@members[ID='updateAge']" agent="//@agents[ID='player']" space="//@projections[ID='gameSpace']" pluralLabel="Update Ages" description="Increment the Age by One."/>
<members xsi:type="act:AEvaluate" label="Increment Age" ID="incrementAge" sources="//@agents[ID='player']/@rootActivity/@members[ID='updateAge']" targets="//@agents[ID='player']/@rootActivity/@members[ID='setToCopyCopyCopyCopy']" selected="//@agents[ID='player']/@rootActivity/@members[ID='updateAge']">
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='updateAge']" value="//@agents[ID='player']/@attributes[ID='age']"/>
<function xsi:type="function:FOperator" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='operators']/@subs[ID='numericOperators']/@functions[ID='increment']"/>
</members>
<members xsi:type="act:ASet" label="Set [?] To [?] Copy Copy Copy Copy" ID="setToCopyCopyCopyCopy" sources="//@agents[ID='player']/@rootActivity/@members[ID='incrementAge']" selected="//@agents[ID='player']/@rootActivity/@members[ID='updateAge']" attribute="//@agents[ID='player']/@attributes[ID='age']" parameter="//@agents[ID='player']/@rootActivity/@members[ID='incrementAge']"/>
<members xsi:type="act:ARule" label="Fission Rule" ID="fissionRule" targets="//@agents[ID='player']/@rootActivity/@members[ID='wealthGreaterorEqualFissionWealth']" selected="//@agents[ID='player']/@rootActivity/@members[ID='fissionRule']" agent="//@agents[ID='player']" space="//@projections[ID='gameSpace']" pluralLabel="Fission Rules"/>
<members xsi:type="act:ARule" label="Die At Age" ID="dieAtAge" targets="//@agents[ID='player']/@rootActivity/@members[ID='ageGreaterDeathAge']" selected="//@agents[ID='player']/@rootActivity/@members[ID='dieAtAge']" agent="//@agents[ID='player']" space="//@projections[ID='gameSpace']" pluralLabel="Die At Ages"/>
<members xsi:type="act:AQuery" label="Age Greater Death Age" ID="ageGreaterDeathAge" sources="//@agents[ID='player']/@rootActivity/@members[ID='dieAtAge']" targets="//@agents[ID='player']/@rootActivity/@members[ID='playerDieinDieAtAge']" selected="//@agents[ID='player']/@rootActivity/@members[ID='dieAtAge']">
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='dieAtAge']" value="//@agents[ID='player']/@attributes[ID='age']"/>
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='dieAtAge']" value="//@attributes[ID='deathAge']"/>
<function xsi:type="function:FLogicalOperator" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='operators']/@subs[ID='logicalOperators']/@functions[ID='greater']"/>
</members>
<members xsi:type="act:ADie" label="Player Die in Die At Age" ID="playerDieinDieAtAge" sources="//@agents[ID='player']/@rootActivity/@members[ID='ageGreaterDeathAge']" selected="//@agents[ID='player']/@rootActivity/@members[ID='dieAtAge']" destination="//@agents[ID='player']/@rootActivity/@members[ID='dieAtAge']"/>
<members xsi:type="act:ARule" label="Die At Wealth 0" ID="dieAtWealth0" targets="//@agents[ID='player']/@rootActivity/@members[ID='wealthLesserLiteral0']" selected="//@agents[ID='player']/@rootActivity/@members[ID='dieAtWealth0']" agent="//@agents[ID='player']" space="//@projections[ID='gameSpace']" pluralLabel="Die At Wealth 0s"/>
<members xsi:type="act:AQuery" label="Wealth Lesser Literal 0" ID="wealthLesserLiteral0" sources="//@agents[ID='player']/@rootActivity/@members[ID='dieAtWealth0']" targets="//@agents[ID='player']/@rootActivity/@members[ID='playerDieinDieAtWealth0']" selected="//@agents[ID='player']/@rootActivity/@members[ID='dieAtWealth0']">
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='dieAtWealth0']" value="//@agents[ID='player']/@attributes[ID='wealth']"/>
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='dieAtWealth0']" value="//@agents[ID='player']/@rootActivity/@members[ID='wealthLesserLiteral0']/@inputs.1/@literal">
<literal label="Literal 0" ID="literal0" valueLiteral="0"/>
</inputs>
<function xsi:type="function:FLogicalOperator" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='operators']/@subs[ID='logicalOperators']/@functions[ID='lesser']"/>
</members>
<members xsi:type="act:ADie" label="Player Die in Die At Wealth 0" ID="playerDieinDieAtWealth0" sources="//@agents[ID='player']/@rootActivity/@members[ID='wealthLesserLiteral0']" selected="//@agents[ID='player']/@rootActivity/@members[ID='dieAtWealth0']" destination="//@agents[ID='player']/@rootActivity/@members[ID='dieAtWealth0']"/>
<members xsi:type="act:ASelect" label="Other Player" ID="otherPlayer" sources="//@agents[ID='player']/@rootActivity/@members[ID='playNeighbor']" targets="//@agents[ID='player']/@rootActivity/@members[ID='spaceNeighborCopy']" selected="//@agents[ID='player']/@rootActivity/@members[ID='playNeighbor']" agent="//@agents[ID='player']" space="//@projections[ID='gameSpace']"/>
<members xsi:type="act:AQuery" label="Space Available" ID="spaceAvailable" sources="//@agents[ID='player']/@rootActivity/@members[ID='randomCell2']" targets="//@agents[ID='player']/@rootActivity/@members[ID='movetoPlayerinGameSpac']" selected="//@agents[ID='player']/@rootActivity/@members[ID='randomCell2']">
<function xsi:type="function:FGenericLogical" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='spatial']/@functions[ID='available']"/>
</members>
<members xsi:type="act:AQuery" label="Available" ID="available" sources="//@agents[ID='player']/@rootActivity/@members[ID='randomNeighbor']" targets="//@agents[ID='player']/@rootActivity/@members[ID='availableNeighbor']" selected="//@agents[ID='player']/@rootActivity/@members[ID='randomNeighbor']">
<function xsi:type="function:FGenericLogical" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='spatial']/@functions[ID='available']"/>
</members>
<members xsi:type="act:AQuery" label="Space Neighbor Copy" ID="spaceNeighborCopy" sources="//@agents[ID='player']/@rootActivity/@members[ID='otherPlayer']" targets="//@agents[ID='player']/@rootActivity/@members[ID='otherCooperate'] //@agents[ID='player']/@rootActivity/@members[ID='otherDefect']" selected="//@agents[ID='player']/@rootActivity/@members[ID='otherPlayer']">
<function xsi:type="function:FGenericLogical" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='spatial']/@functions[ID='neighbor']"/>
</members>
<members xsi:type="act:AAll" label="Available Neighbor" ID="availableNeighbor" sources="//@agents[ID='player']/@rootActivity/@members[ID='available'] //@agents[ID='player']/@rootActivity/@members[ID='neighbor']" targets="//@agents[ID='player']/@rootActivity/@members[ID='movetoDemographicPrisonnersDillemainGameSpace']" selected="//@agents[ID='player']/@rootActivity/@members[ID='randomNeighbor']"/>
<members xsi:type="act:AQuery" label="Player Cooperate" ID="playerCooperate" sources="//@agents[ID='player']/@rootActivity/@members[ID='playNeighbor']" targets="//@agents[ID='player']/@rootActivity/@members[ID='bothCooperate'] //@agents[ID='player']/@rootActivity/@members[ID='cooperateDefect']" selected="//@agents[ID='player']/@rootActivity/@members[ID='playNeighbor']">
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='playNeighbor']" value="//@agents[ID='player']/@attributes[ID='cooperate']"/>
<function xsi:type="function:FLogicalOperator" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='operators']/@subs[ID='logicalOperators']/@functions[ID='identity']"/>
</members>
<members xsi:type="act:AQuery" label="Other Cooperate" ID="otherCooperate" sources="//@agents[ID='player']/@rootActivity/@members[ID='spaceNeighborCopy']" targets="//@agents[ID='player']/@rootActivity/@members[ID='bothCooperate'] //@agents[ID='player']/@rootActivity/@members[ID='defectCooperate']" selected="//@agents[ID='player']/@rootActivity/@members[ID='otherPlayer']">
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='otherPlayer']" value="//@agents[ID='player']/@attributes[ID='cooperate']"/>
<function xsi:type="function:FLogicalOperator" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='operators']/@subs[ID='logicalOperators']/@functions[ID='identity']"/>
</members>
<members xsi:type="act:AQuery" label="Other Defect" ID="otherDefect" sources="//@agents[ID='player']/@rootActivity/@members[ID='spaceNeighborCopy']" targets="//@agents[ID='player']/@rootActivity/@members[ID='cooperateDefect'] //@agents[ID='player']/@rootActivity/@members[ID='bothDefect']" selected="//@agents[ID='player']/@rootActivity/@members[ID='otherPlayer']">
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='otherPlayer']" value="//@agents[ID='player']/@attributes[ID='cooperate']"/>
<function xsi:type="function:FLogicalOperator" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='operators']/@subs[ID='logicalOperators']/@functions[ID='not']"/>
</members>
<members xsi:type="act:AQuery" label="Player Defect" ID="playerDefect" sources="//@agents[ID='player']/@rootActivity/@members[ID='playNeighbor']" targets="//@agents[ID='player']/@rootActivity/@members[ID='defectCooperate'] //@agents[ID='player']/@rootActivity/@members[ID='bothDefect']" selected="//@agents[ID='player']/@rootActivity/@members[ID='playNeighbor']">
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='playNeighbor']" value="//@agents[ID='player']/@attributes[ID='cooperate']"/>
<function xsi:type="function:FLogicalOperator" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='operators']/@subs[ID='logicalOperators']/@functions[ID='not']"/>
</members>
<members xsi:type="act:AAll" label="Both Cooperate" ID="bothCooperate" sources="//@agents[ID='player']/@rootActivity/@members[ID='otherCooperate'] //@agents[ID='player']/@rootActivity/@members[ID='playerCooperate']" targets="//@agents[ID='player']/@rootActivity/@members[ID='valueWealthAddPayoffCooperateCooperate'] //@agents[ID='player']/@rootActivity/@members[ID='valueWealthAddPayoffCooperateCooperateCopy']" selected="//@agents[ID='player']/@rootActivity/@members[ID='otherPlayer']"/>
<members xsi:type="act:AAll" label="Defect Cooperate" ID="defectCooperate" sources="//@agents[ID='player']/@rootActivity/@members[ID='otherCooperate'] //@agents[ID='player']/@rootActivity/@members[ID='playerDefect']" targets="//@agents[ID='player']/@rootActivity/@members[ID='valueWealthAddPayoffDefectCooperate'] //@agents[ID='player']/@rootActivity/@members[ID='valueWealthAddPayoffCooperateDefectCopy']" selected="//@agents[ID='player']/@rootActivity/@members[ID='otherPlayer']"/>
<members xsi:type="act:AAll" label="Cooperate Defect" ID="cooperateDefect" sources="//@agents[ID='player']/@rootActivity/@members[ID='otherDefect'] //@agents[ID='player']/@rootActivity/@members[ID='playerCooperate']" targets="//@agents[ID='player']/@rootActivity/@members[ID='valueWealthAddPayoffCooperateDefect'] //@agents[ID='player']/@rootActivity/@members[ID='valueWealthAddPayoffDefectCooperateCopy']" selected="//@agents[ID='player']/@rootActivity/@members[ID='otherPlayer']"/>
<members xsi:type="act:AAll" label="Both Defect" ID="bothDefect" sources="//@agents[ID='player']/@rootActivity/@members[ID='playerDefect'] //@agents[ID='player']/@rootActivity/@members[ID='otherDefect']" targets="//@agents[ID='player']/@rootActivity/@members[ID='valueWealthAddPayoffDefectDefect'] //@agents[ID='player']/@rootActivity/@members[ID='valueWealthAddPayoffDefectDefectCopy']" selected="//@agents[ID='player']/@rootActivity/@members[ID='otherPlayer']"/>
<members xsi:type="act:AEvaluate" label="Value Wealth Add Payoff Defect Cooperate" ID="valueWealthAddPayoffDefectCooperate" sources="//@agents[ID='player']/@rootActivity/@members[ID='defectCooperate']" targets="//@agents[ID='player']/@rootActivity/@members[ID='setWealthToValueWealthAddPayoffDefectCooperate']" selected="//@agents[ID='player']/@rootActivity/@members[ID='playNeighbor']">
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='playNeighbor']" value="//@agents[ID='player']/@attributes[ID='wealth']"/>
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='playNeighbor']" value="//@attributes[ID='payoffDC']"/>
<function xsi:type="function:FOperator" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='operators']/@subs[ID='numericOperators']/@functions[ID='add']"/>
</members>
<members xsi:type="act:AEvaluate" label="Value Wealth Add Payoff Cooperate Cooperate" ID="valueWealthAddPayoffCooperateCooperate" sources="//@agents[ID='player']/@rootActivity/@members[ID='bothCooperate']" targets="//@agents[ID='player']/@rootActivity/@members[ID='setWealthToValueWealthAddPayoffCooperateCooperate']" selected="//@agents[ID='player']/@rootActivity/@members[ID='playNeighbor']">
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='playNeighbor']" value="//@agents[ID='player']/@attributes[ID='wealth']"/>
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='playNeighbor']" value="//@attributes[ID='payoffCC']"/>
<function xsi:type="function:FOperator" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='operators']/@subs[ID='numericOperators']/@functions[ID='add']"/>
</members>
<members xsi:type="act:AEvaluate" label="Value Wealth Add Payoff Defect Defect" ID="valueWealthAddPayoffDefectDefect" sources="//@agents[ID='player']/@rootActivity/@members[ID='bothDefect']" targets="//@agents[ID='player']/@rootActivity/@members[ID='setWealthToValueWealthAddPayoffDefectDefect']" selected="//@agents[ID='player']/@rootActivity/@members[ID='playNeighbor']">
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='playNeighbor']" value="//@agents[ID='player']/@attributes[ID='wealth']"/>
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='playNeighbor']" value="//@attributes[ID='payoffDD']"/>
<function xsi:type="function:FOperator" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='operators']/@subs[ID='numericOperators']/@functions[ID='add']"/>
</members>
<members xsi:type="act:AEvaluate" label="Value Wealth Add Payoff Cooperate Defect" ID="valueWealthAddPayoffCooperateDefect" sources="//@agents[ID='player']/@rootActivity/@members[ID='cooperateDefect']" targets="//@agents[ID='player']/@rootActivity/@members[ID='setWealthToValueWealthAddPayoffCooperateDefect']" selected="//@agents[ID='player']/@rootActivity/@members[ID='playNeighbor']">
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='playNeighbor']" value="//@agents[ID='player']/@attributes[ID='wealth']"/>
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='playNeighbor']" value="//@attributes[ID='payoffCD']"/>
<function xsi:type="function:FOperator" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='operators']/@subs[ID='numericOperators']/@functions[ID='add']"/>
</members>
<members xsi:type="act:ASet" label="Set Wealth To Value Wealth Add Payoff Defect Cooperate" ID="setWealthToValueWealthAddPayoffDefectCooperate" sources="//@agents[ID='player']/@rootActivity/@members[ID='valueWealthAddPayoffDefectCooperate']" selected="//@agents[ID='player']/@rootActivity/@members[ID='playNeighbor']" attribute="//@agents[ID='player']/@attributes[ID='wealth']" parameter="//@agents[ID='player']/@rootActivity/@members[ID='valueWealthAddPayoffDefectCooperate']"/>
<members xsi:type="act:ASet" label="Set Wealth To Value Wealth Add Payoff Defect Defect" ID="setWealthToValueWealthAddPayoffDefectDefect" sources="//@agents[ID='player']/@rootActivity/@members[ID='valueWealthAddPayoffDefectDefect']" selected="//@agents[ID='player']/@rootActivity/@members[ID='playNeighbor']" attribute="//@agents[ID='player']/@attributes[ID='wealth']" parameter="//@agents[ID='player']/@rootActivity/@members[ID='valueWealthAddPayoffDefectDefect']"/>
<members xsi:type="act:ASet" label="Set Wealth To Value Wealth Add Payoff Cooperate Cooperate" ID="setWealthToValueWealthAddPayoffCooperateCooperate" sources="//@agents[ID='player']/@rootActivity/@members[ID='valueWealthAddPayoffCooperateCooperate']" selected="//@agents[ID='player']/@rootActivity/@members[ID='playNeighbor']" attribute="//@agents[ID='player']/@attributes[ID='wealth']" parameter="//@agents[ID='player']/@rootActivity/@members[ID='valueWealthAddPayoffCooperateCooperate']"/>
<members xsi:type="act:ASet" label="Set Wealth To Value Wealth Add Payoff Cooperate Defect" ID="setWealthToValueWealthAddPayoffCooperateDefect" sources="//@agents[ID='player']/@rootActivity/@members[ID='valueWealthAddPayoffCooperateDefect']" selected="//@agents[ID='player']/@rootActivity/@members[ID='playNeighbor']" attribute="//@agents[ID='player']/@attributes[ID='wealth']" parameter="//@agents[ID='player']/@rootActivity/@members[ID='valueWealthAddPayoffCooperateDefect']"/>
<members xsi:type="act:AQuery" label="Wealth Greater or Equal Fission Wealth" ID="wealthGreaterorEqualFissionWealth" sources="//@agents[ID='player']/@rootActivity/@members[ID='fissionRule']" targets="//@agents[ID='player']/@rootActivity/@members[ID='birthLocation']" selected="//@agents[ID='player']/@rootActivity/@members[ID='fissionRule']">
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='fissionRule']" value="//@agents[ID='player']/@attributes[ID='wealth']"/>
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='fissionRule']" value="//@attributes[ID='fissionWealth']"/>
<function xsi:type="function:FLogicalOperator" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='operators']/@subs[ID='logicalOperators']/@functions[ID='greaterorEqual']"/>
</members>
<members xsi:type="act:ACreateAgents" label="Create Agents" ID="createAgents" sources="//@agents[ID='player']/@rootActivity/@members[ID='neighborAvailableforBirth']" targets="//@agents[ID='player']/@rootActivity/@members[ID='movetoPlayerinGameSpaceCopy'] //@agents[ID='player']/@rootActivity/@members[ID='valueRandomUnit'] //@agents[ID='player']/@rootActivity/@members[ID='wealthChildWealth'] //@agents[ID='player']/@rootActivity/@members[ID='setWealthToInheiritedWealth']" selected="//@agents[ID='player']/@rootActivity/@members[ID='birthLocation']" agent="//@agents[ID='player']" space="//@projections[ID='gameSpace']"/>
<members xsi:type="act:AQuery" label="Birth Neighbor" ID="birthNeighbor" sources="//@agents[ID='player']/@rootActivity/@members[ID='birthLocation']" targets="//@agents[ID='player']/@rootActivity/@members[ID='neighborAvailableforBirth']" selected="//@agents[ID='player']/@rootActivity/@members[ID='birthLocation']">
<function xsi:type="function:FGenericLogical" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='spatial']/@functions[ID='neighbor']"/>
</members>
<members xsi:type="act:AQuery" label="Space Available Copy Copy" ID="spaceAvailableCopyCopy" sources="//@agents[ID='player']/@rootActivity/@members[ID='birthLocation']" targets="//@agents[ID='player']/@rootActivity/@members[ID='neighborAvailableforBirth']" selected="//@agents[ID='player']/@rootActivity/@members[ID='birthLocation']">
<function xsi:type="function:FGenericLogical" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='spatial']/@functions[ID='available']"/>
</members>
<members xsi:type="act:AAll" label="Neighbor Available for Birth" ID="neighborAvailableforBirth" sources="//@agents[ID='player']/@rootActivity/@members[ID='birthNeighbor'] //@agents[ID='player']/@rootActivity/@members[ID='spaceAvailableCopyCopy']" targets="//@agents[ID='player']/@rootActivity/@members[ID='createAgents']" selected="//@agents[ID='player']/@rootActivity/@members[ID='birthLocation']"/>
<members xsi:type="act:AMove" label="Move to Player in Game Space Copy" ID="movetoPlayerinGameSpaceCopy" sources="//@agents[ID='player']/@rootActivity/@members[ID='createAgents']" selected="//@agents[ID='player']/@rootActivity/@members[ID='createAgents']" destination="//@agents[ID='player']/@rootActivity/@members[ID='birthLocation']"/>
<members xsi:type="act:ASelect" label="Birth Location" ID="birthLocation" sources="//@agents[ID='player']/@rootActivity/@members[ID='wealthGreaterorEqualFissionWealth']" targets="//@agents[ID='player']/@rootActivity/@members[ID='birthNeighbor'] //@agents[ID='player']/@rootActivity/@members[ID='spaceAvailableCopyCopy']" selected="//@agents[ID='player']/@rootActivity/@members[ID='fissionRule']" agent="//@agents[ID='playCell']" space="//@projections[ID='gameSpace']"/>
<members xsi:type="act:ASet" label="Set Cooperate To Cooperate" ID="setCooperateToCooperate" sources="//@agents[ID='player']/@rootActivity/@members[ID='not_ValueRandomUnitLesserMutationRate_']" selected="//@agents[ID='player']/@rootActivity/@members[ID='createAgents']" attribute="//@agents[ID='player']/@attributes[ID='cooperate']" parameter="//@agents[ID='player']/@attributes[ID='cooperate']"/>
<members xsi:type="act:AEvaluate" label="Value Random Unit" ID="valueRandomUnit" sources="//@agents[ID='player']/@rootActivity/@members[ID='createAgents']" targets="//@agents[ID='player']/@rootActivity/@members[ID='mutationDraw']" selected="//@agents[ID='player']/@rootActivity/@members[ID='createAgents']">
<function xsi:type="function:FGenericFunction" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='random']/@functions[ID='randomUnit']"/>
</members>
<members xsi:type="act:AQuery" label="Mutation Draw" ID="mutationDraw" sources="//@agents[ID='player']/@rootActivity/@members[ID='valueRandomUnit']" targets="//@agents[ID='player']/@rootActivity/@members[ID='valueRandomBoolean'] //@agents[ID='player']/@rootActivity/@members[ID='not_ValueRandomUnitLesserMutationRate_']" selected="//@agents[ID='player']/@rootActivity/@members[ID='createAgents']">
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='createAgents']" value="//@agents[ID='player']/@rootActivity/@members[ID='valueRandomUnit']"/>
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='createAgents']" value="//@attributes[ID='mutationRate']"/>
<function xsi:type="function:FLogicalOperator" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='operators']/@subs[ID='logicalOperators']/@functions[ID='lesser']"/>
</members>
<members xsi:type="act:AEvaluate" label="Value Random Boolean" ID="valueRandomBoolean" sources="//@agents[ID='player']/@rootActivity/@members[ID='mutationDraw']" targets="//@agents[ID='player']/@rootActivity/@members[ID='setCooperateToValueRandomBoolean']" selected="//@agents[ID='player']/@rootActivity/@members[ID='createAgents']">
<function xsi:type="function:FGenericLogical" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='random']/@functions[ID='randomIs']"/>
</members>
<members xsi:type="act:ASet" label="Set Cooperate To Value Random Boolean" ID="setCooperateToValueRandomBoolean" sources="//@agents[ID='player']/@rootActivity/@members[ID='valueRandomBoolean']" selected="//@agents[ID='player']/@rootActivity/@members[ID='createAgents']" attribute="//@agents[ID='player']/@attributes[ID='cooperate']" parameter="//@agents[ID='player']/@rootActivity/@members[ID='valueRandomBoolean']"/>
<members xsi:type="act:ANone" label="!(Value Random Unit Lesser Mutation Rate)" ID="not_ValueRandomUnitLesserMutationRate_" sources="//@agents[ID='player']/@rootActivity/@members[ID='mutationDraw']" targets="//@agents[ID='player']/@rootActivity/@members[ID='setCooperateToCooperate']" selected="//@agents[ID='player']/@rootActivity/@members[ID='createAgents']"/>
<members xsi:type="act:AEvaluate" label="Remaining Wealth" ID="wealthChildWealth" sources="//@agents[ID='player']/@rootActivity/@members[ID='createAgents']" targets="//@agents[ID='player']/@rootActivity/@members[ID='setWealthToWealthChildWealth']" selected="//@agents[ID='player']/@rootActivity/@members[ID='createAgents']">
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='fissionRule']" value="//@agents[ID='player']/@attributes[ID='wealth']"/>
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='createAgents']" value="//@attributes[ID='inheiritedWealth']"/>
<function xsi:type="function:FOperator" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='operators']/@subs[ID='numericOperators']/@functions[ID='sub']"/>
</members>
<members xsi:type="act:ASet" label="Set Wealth To Remaining Wealth" ID="setWealthToWealthChildWealth" sources="//@agents[ID='player']/@rootActivity/@members[ID='wealthChildWealth']" selected="//@agents[ID='player']/@rootActivity/@members[ID='fissionRule']" attribute="//@agents[ID='player']/@attributes[ID='wealth']" parameter="//@agents[ID='player']/@rootActivity/@members[ID='wealthChildWealth']"/>
<members xsi:type="act:ASet" label="Set Wealth To Inheirited Wealth" ID="setWealthToInheiritedWealth" sources="//@agents[ID='player']/@rootActivity/@members[ID='createAgents']" selected="//@agents[ID='player']/@rootActivity/@members[ID='createAgents']" attribute="//@agents[ID='player']/@attributes[ID='wealth']" parameter="//@attributes[ID='inheiritedWealth']"/>
<members xsi:type="act:ASet" label="Set Wealth To Initial Wealth" ID="setWealthToInitialWealth" sources="//@agents[ID='player']/@rootActivity/@members[ID='initialize']" selected="//@agents[ID='player']/@rootActivity/@members[ID='initialize']" attribute="//@agents[ID='player']/@attributes[ID='wealth']" parameter="//@attributes[ID='initialWealth']"/>
<members xsi:type="act:AEvaluate" label="Value Wealth Add Payoff Cooperate Defect Copy" ID="valueWealthAddPayoffCooperateDefectCopy" sources="//@agents[ID='player']/@rootActivity/@members[ID='defectCooperate']" targets="//@agents[ID='player']/@rootActivity/@members[ID='setWealthToValueWealthAddPayoffCooperateDefectCopy']" selected="//@agents[ID='player']/@rootActivity/@members[ID='otherPlayer']">
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='otherPlayer']" value="//@agents[ID='player']/@attributes[ID='wealth']"/>
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='otherPlayer']" value="//@attributes[ID='payoffCD']"/>
<function xsi:type="function:FOperator" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='operators']/@subs[ID='numericOperators']/@functions[ID='add']"/>
</members>
<members xsi:type="act:ASet" label="Set Wealth To Value Wealth Add Payoff Cooperate Defect Copy" ID="setWealthToValueWealthAddPayoffCooperateDefectCopy" sources="//@agents[ID='player']/@rootActivity/@members[ID='valueWealthAddPayoffCooperateDefectCopy']" selected="//@agents[ID='player']/@rootActivity/@members[ID='otherPlayer']" attribute="//@agents[ID='player']/@attributes[ID='wealth']" parameter="//@agents[ID='player']/@rootActivity/@members[ID='valueWealthAddPayoffCooperateDefectCopy']"/>
<members xsi:type="act:AEvaluate" label="Value Wealth Add Payoff Defect Defect Copy" ID="valueWealthAddPayoffDefectDefectCopy" sources="//@agents[ID='player']/@rootActivity/@members[ID='bothDefect']" targets="//@agents[ID='player']/@rootActivity/@members[ID='setWealthToValueWealthAddPayoffDefectDefectCopy']" selected="//@agents[ID='player']/@rootActivity/@members[ID='otherPlayer']">
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='otherPlayer']" value="//@agents[ID='player']/@attributes[ID='wealth']"/>
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='otherPlayer']" value="//@attributes[ID='payoffDD']"/>
<function xsi:type="function:FOperator" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='operators']/@subs[ID='numericOperators']/@functions[ID='add']"/>
</members>
<members xsi:type="act:AEvaluate" label="Value Wealth Add Payoff Cooperate Cooperate Copy" ID="valueWealthAddPayoffCooperateCooperateCopy" sources="//@agents[ID='player']/@rootActivity/@members[ID='bothCooperate']" targets="//@agents[ID='player']/@rootActivity/@members[ID='setWealthToValueWealthAddPayoffCooperateCooperateCopy']" selected="//@agents[ID='player']/@rootActivity/@members[ID='otherPlayer']">
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='otherPlayer']" value="//@agents[ID='player']/@attributes[ID='wealth']"/>
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='otherPlayer']" value="//@attributes[ID='payoffCC']"/>
<function xsi:type="function:FOperator" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='operators']/@subs[ID='numericOperators']/@functions[ID='add']"/>
</members>
<members xsi:type="act:ASet" label="Set Wealth To Value Wealth Add Payoff Cooperate Cooperate Copy" ID="setWealthToValueWealthAddPayoffCooperateCooperateCopy" sources="//@agents[ID='player']/@rootActivity/@members[ID='valueWealthAddPayoffCooperateCooperateCopy']" selected="//@agents[ID='player']/@rootActivity/@members[ID='otherPlayer']" attribute="//@agents[ID='player']/@attributes[ID='wealth']" parameter="//@agents[ID='player']/@rootActivity/@members[ID='valueWealthAddPayoffCooperateCooperateCopy']"/>
<members xsi:type="act:AEvaluate" label="Value Wealth Add Payoff Defect Cooperate Copy" ID="valueWealthAddPayoffDefectCooperateCopy" sources="//@agents[ID='player']/@rootActivity/@members[ID='cooperateDefect']" targets="//@agents[ID='player']/@rootActivity/@members[ID='setWealthToValueWealthAddPayoffDefectCooperateCopy']" selected="//@agents[ID='player']/@rootActivity/@members[ID='otherPlayer']">
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='otherPlayer']" value="//@agents[ID='player']/@attributes[ID='wealth']"/>
<inputs selected="//@agents[ID='player']/@rootActivity/@members[ID='otherPlayer']" value="//@attributes[ID='payoffDC']"/>
<function xsi:type="function:FOperator" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='operators']/@subs[ID='numericOperators']/@functions[ID='add']"/>
</members>
<members xsi:type="act:ASet" label="Set Wealth To Value Wealth Add Payoff Defect Cooperate Copy" ID="setWealthToValueWealthAddPayoffDefectCooperateCopy" sources="//@agents[ID='player']/@rootActivity/@members[ID='valueWealthAddPayoffDefectCooperateCopy']" selected="//@agents[ID='player']/@rootActivity/@members[ID='otherPlayer']" attribute="//@agents[ID='player']/@attributes[ID='wealth']" parameter="//@agents[ID='player']/@rootActivity/@members[ID='valueWealthAddPayoffDefectCooperateCopy']"/>
<members xsi:type="act:ASet" label="Set Wealth To Value Wealth Add Payoff Defect Defect Copy" ID="setWealthToValueWealthAddPayoffDefectDefectCopy" sources="//@agents[ID='player']/@rootActivity/@members[ID='valueWealthAddPayoffDefectDefectCopy']" selected="//@agents[ID='player']/@rootActivity/@members[ID='otherPlayer']" attribute="//@agents[ID='player']/@attributes[ID='wealth']" parameter="//@agents[ID='player']/@rootActivity/@members[ID='valueWealthAddPayoffDefectDefectCopy']"/>
</rootActivity>
<implementation className="Player"/>
<styles xsi:type="metaabm:SStyle2D" label="Cooperate Defect Style" ID="cooperateDefectStyle" pluralLabel="Cooperate Defect Styles">
<rootActivity xsi:type="act:AGroup" label="Root Act Group" ID="rootActGroup" pluralLabel="Root Acts">
<members xsi:type="act:ARule" label="Player Rule" ID="playerRule" targets="//@agents[ID='player']/@styles[ID='cooperateDefectStyle']/@rootActivity/@members[ID='identityCooperate']" selected="//@agents[ID='player']/@styles[ID='cooperateDefectStyle']/@rootActivity/@members[ID='playerRule']" agent="//@agents[ID='player']" space="//@projections[ID='gameSpace']" pluralLabel="Player Rules"/>
<members xsi:type="act:AQuery" label="Identity Cooperate" ID="identityCooperate" sources="//@agents[ID='player']/@styles[ID='cooperateDefectStyle']/@rootActivity/@members[ID='playerRule']" targets="//@agents[ID='player']/@styles[ID='cooperateDefectStyle']/@rootActivity/@members[ID='defector'] //@agents[ID='player']/@styles[ID='cooperateDefectStyle']/@rootActivity/@members[ID='playerRuleColorBlue']" selected="//@agents[ID='player']/@styles[ID='cooperateDefectStyle']/@rootActivity/@members[ID='playerRule']">
<inputs selected="//@agents[ID='player']/@styles[ID='cooperateDefectStyle']/@rootActivity/@members[ID='playerRule']" value="//@agents[ID='player']/@attributes[ID='cooperate']"/>
<function xsi:type="function:FLogicalOperator" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='operators']/@subs[ID='logicalOperators']/@functions[ID='identity']"/>
</members>
<members xsi:type="act:ANone" label="Defector" ID="defector" sources="//@agents[ID='player']/@styles[ID='cooperateDefectStyle']/@rootActivity/@members[ID='identityCooperate']" targets="//@agents[ID='player']/@styles[ID='cooperateDefectStyle']/@rootActivity/@members[ID='playerRuleColorRed']" selected="//@agents[ID='player']/@styles[ID='cooperateDefectStyle']/@rootActivity/@members[ID='playerRule']"/>
<members xsi:type="act:AEvaluate" label="Player Rule: Color Blue()" ID="playerRuleColorBlue" sources="//@agents[ID='player']/@styles[ID='cooperateDefectStyle']/@rootActivity/@members[ID='identityCooperate']" targets="//@agents[ID='player']/@styles[ID='cooperateDefectStyle']/@rootActivity/@members[ID='playerRuleShapeOval']" selected="//@agents[ID='player']/@styles[ID='cooperateDefectStyle']/@rootActivity/@members[ID='playerRule']">
<function xsi:type="function:FGenericFunction" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='graphic']/@functions[ID='colorBlue']"/>
</members>
<members xsi:type="act:AEvaluate" label="Player Rule: Color Red()" ID="playerRuleColorRed" sources="//@agents[ID='player']/@styles[ID='cooperateDefectStyle']/@rootActivity/@members[ID='defector']" targets="//@agents[ID='player']/@styles[ID='cooperateDefectStyle']/@rootActivity/@members[ID='playerRuleShapeOval']" selected="//@agents[ID='player']/@styles[ID='cooperateDefectStyle']/@rootActivity/@members[ID='playerRule']">
<function xsi:type="function:FGenericFunction" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='graphic']/@functions[ID='colorRed']"/>
</members>
<members xsi:type="act:AEvaluate" label="Player Rule: Shape Oval()" ID="playerRuleShapeOval" sources="//@agents[ID='player']/@styles[ID='cooperateDefectStyle']/@rootActivity/@members[ID='playerRuleColorRed'] //@agents[ID='player']/@styles[ID='cooperateDefectStyle']/@rootActivity/@members[ID='playerRuleColorBlue']" targets="//@agents[ID='player']/@styles[ID='cooperateDefectStyle']/@rootActivity/@members[ID='playerRuleGraphicFill']" selected="//@agents[ID='player']/@styles[ID='cooperateDefectStyle']/@rootActivity/@members[ID='playerRule']">
<function xsi:type="function:FGenericFunction" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='graphic']/@functions[ID='shapeOval']"/>
</members>
<members xsi:type="act:AEvaluate" label="Player Rule: Graphic Fill()" ID="playerRuleGraphicFill" sources="//@agents[ID='player']/@styles[ID='cooperateDefectStyle']/@rootActivity/@members[ID='playerRuleShapeOval']" selected="//@agents[ID='player']/@styles[ID='cooperateDefectStyle']/@rootActivity/@members[ID='playerRule']">
<function xsi:type="function:FGenericFunction" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='graphic']/@functions[ID='graphicFill']"/>
</members>
</rootActivity>
<implementation className="CooperateDefectStyle"/>
</styles>
</agents>
<agents label="Play Cell" ID="playCell" pluralLabel="Play Cells">
<rootActivity xsi:type="act:AGroup" label="Root Act Group" ID="rootActGroup" pluralLabel="Root Acts"/>
<implementation className="PlayCell"/>
<styles xsi:type="metaabm:SStyle2D" label="Play Cell Style 2D" ID="playCellStyle2D" pluralLabel="Play Cell Style 2Ds">
<rootActivity xsi:type="act:AGroup" label="Root Act Group" ID="rootActGroup" pluralLabel="Root Act Groups">
<members xsi:type="act:ARule" label="PlayCell Rule" ID="playCellRule" targets="//@agents[ID='playCell']/@styles[ID='playCellStyle2D']/@rootActivity/@members[ID='playCellRuleColorGreen']" selected="//@agents[ID='playCell']/@styles[ID='playCellStyle2D']/@rootActivity/@members[ID='playCellRule']" agent="//@agents[ID='playCell']" space="//@projections[ID='gameSpace']" pluralLabel="PlayCell Rules"/>
<members xsi:type="act:AEvaluate" label="PlayCell Rule: Color Green()" ID="playCellRuleColorGreen" sources="//@agents[ID='playCell']/@styles[ID='playCellStyle2D']/@rootActivity/@members[ID='playCellRule']" targets="//@agents[ID='playCell']/@styles[ID='playCellStyle2D']/@rootActivity/@members[ID='playCellRuleShapeRectangle']" selected="//@agents[ID='playCell']/@styles[ID='playCellStyle2D']/@rootActivity/@members[ID='playCellRule']">
<function xsi:type="function:FGenericFunction" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='graphic']/@functions[ID='colorGreen']"/>
</members>
<members xsi:type="act:AEvaluate" label="PlayCell Rule: Shape Rectangle()" ID="playCellRuleShapeRectangle" sources="//@agents[ID='playCell']/@styles[ID='playCellStyle2D']/@rootActivity/@members[ID='playCellRuleColorGreen']" targets="//@agents[ID='playCell']/@styles[ID='playCellStyle2D']/@rootActivity/@members[ID='playCellRuleGraphicFill']" selected="//@agents[ID='playCell']/@styles[ID='playCellStyle2D']/@rootActivity/@members[ID='playCellRule']">
<function xsi:type="function:FGenericFunction" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='graphic']/@functions[ID='shapeRectangle']"/>
</members>
<members xsi:type="act:AEvaluate" label="PlayCell Rule: Graphic Fill()" ID="playCellRuleGraphicFill" sources="//@agents[ID='playCell']/@styles[ID='playCellStyle2D']/@rootActivity/@members[ID='playCellRuleShapeRectangle']" selected="//@agents[ID='playCell']/@styles[ID='playCellStyle2D']/@rootActivity/@members[ID='playCellRule']">
<function xsi:type="function:FGenericFunction" href="http://metaabm.org/core_library.metaabm#//@library[ID='coreFunctions']/@subs[ID='graphic']/@functions[ID='graphicFill']"/>
</members>
</rootActivity>
<implementation className="PlayCellStyle"/>
</styles>
</agents>
<projections xsi:type="metaabm:SGrid" label="Game Space" ID="gameSpace" pluralLabel="Game Spaces" dimensionality="2" borderRule="PERIODIC" neighborhood="VON_NEUMANN">
<attributes xsi:type="metaabm:SAttributeArray" label="Dimensions" ID="dimensions" pluralLabel="Dimensionss" description="The size of each dimension." sType="INTEGER" size="2"/>
<attributes label="Width" ID="width" pluralLabel="Widths" description="The horizontal extent of the space." sType="INTEGER" defaultValue="20"/>
<attributes label="Height" ID="height" pluralLabel="Heights" description="The vertical extent of the space." sType="INTEGER" defaultValue="20"/>
</projections>
</metaabm:SContext>