package Ġsh mp . simulation . culture . group . process . interaction Ċ Ċ import Ġsh mp . simulation . event . Event Ċ import Ġsh mp . simulation . culture . group . centers . Group Ċ import Ġsh mp . simulation . culture . group . process . Process Result Ċ import Ġsh mp . simulation . culture . group . process . action .* Ċ import Ġsh mp . simulation . culture . group . process . empty Process Result Ċ import Ġsh mp . simulation . culture . think ing . mean ing . make Resource Pack Me mes Ċ import Ġsh mp . simulation . culture . think ing . mean ing . make Str atum Me mes Ċ import Ġsh mp . simulation . event . Type Ċ import Ġsh mp . simulation . space . resource . container . Resource Pack ĊĊ Ċ class ĠTrade I ( ĊĠĠĠĠĠĠĠ Ġinit iator : ĠGroup , ĊĠĠĠĠĠĠĠ Ġparticip ator : ĠGroup , ĊĠĠĠĠĠĠĠ Ġval Ġamount : ĠInt Ċ ) Ġ: ĠAbstract Group Interaction ( init iator , Ġparticip ator ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġinner Run (): ĠInteraction Result Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwanted Resources Ġ= ĠChoose Resources A ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit iator , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRequest Stock A ( part icip ator ). run (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġamount ĊĠĠĠĠĠĠĠ Ġ). run () ĊĊĠĠĠĠĠĠĠ Ġval Ġprice For P Ġ= ĠTrade Evaluate Resources A ( part icip ator , Ġwanted Resources . make Copy ()). run () ĊĠĠĠĠĠĠĠ Ġif Ġ( price For P Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġempty Process Result Ġto Ġempty Process Result ĊĊĠĠĠĠĠĠĠ Ġval Ġprice In Resources Ġ= ĠChoose Resources A ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparticip ator , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRequest Stock A ( init iator ). run (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprice For P , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwanted Resources . make Copy (). resources ĊĠĠĠĠĠĠĠ Ġ). run () ĊĠĠĠĠĠĠĠ Ġval Ġprice For I Ġ= ĠTrade Evaluate Resources A ( part icip ator , Ġprice In Resources . make Copy ()). run () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( price For P Ġ> Ġprice For I ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġempty Process Result Ġto Ġempty Process Result ĊĊĠĠĠĠĠĠĠ Ġval Ġgot Ġ= Ġwanted Resources . extract ( init iator . population Center . t aker ) ĊĠĠĠĠĠĠĠ Ġval Ġgiven Ġ= Ġprice In Resources . extract ( part icip ator . population Center . t aker ) ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= ĠProcess Result ( Event ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠType . C oo peration , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ init iator . name } Ġand Ġ${ part icip ator . name } Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" tr aded Ġ${ got . list Resources } Ġ- Ġ$ price For P Ġfor Ġ${ given . list Resources } Ġ- Ġ$ price For I " ĊĠĠĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠĠĠ Ġresult Ġ+= ĠSwap Resources I ( init iator , Ġparticip ator , Ġgot , Ġgiven ). run () ĊĊĠĠĠĠĠĠĠ ĠChange Relations I ( init iator , Ġparticip ator , Ġ 0 . 5 ). run () ĊĠĠĠĠĠĠĠ ĠInc Str atum Import ance A ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit iator , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit iator . population Center . str atum Center . tr ader Str atum , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 ĊĠĠĠĠĠĠĠ Ġ). run () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresult Ġ+ ĠProcess Result ( make Str atum Me mes ( init iator . population Center . str atum Center . tr ader Str atum )) Ġto ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProcess Result ( make Str atum Me mes ( part icip ator . population Center . str atum Center . tr ader Str atum )) ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ class ĠSwap Resources I ( ĊĠĠĠĠĠĠĠ Ġinit iator : ĠGroup , ĊĠĠĠĠĠĠĠ Ġparticip ator : ĠGroup , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġgot Pack : ĠResource Pack , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġgive Pack : ĠResource Pack Ċ ) Ġ: ĠAbstract Group Interaction ( init iator , Ġparticip ator ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġinner Run (): ĠInteraction Result Ġ{ ĊĠĠĠĠĠĠĠ ĠSchedule Action A ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparticip ator , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠReceive Population Resources A ( init iator , Ġgot Pack ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCompute Travel Time ( part icip ator , Ġinit iator ). run () ĊĠĠĠĠĠĠĠ Ġ). run () ĊĠĠĠĠĠĠĠ ĠSchedule Action A ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit iator , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠReceive Population Resources A ( part icip ator , Ġgive Pack ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCompute Travel Time ( init iator , Ġparticip ator ). run () ĊĠĠĠĠĠĠĠ Ġ). run () ĊĊĠĠĠĠĠĠĠ Ġreturn ĠProcess Result ( Event ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠType . Group Interaction , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ init iator . name } Ġand Ġ${ part icip ator . name } Ġbe gun Ġsw apping Ġof Ġ$ got Pack Ġand Ġ$ give Pack " ĊĠĠĠĠĠĠĠ Ġ)) Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProcess Result ( make Resource Pack Me mes ( got Pack ) Ġ+ Ġmake Resource Pack Me mes ( give Pack )) Ġto ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProcess Result ( make Resource Pack Me mes ( got Pack ) Ġ+ Ġmake Resource Pack Me mes ( give Pack )) ĊĠĠĠ Ġ} Ċ } Ċ