[Avida-SVN] r2765 - development/source/actions
beckma24 at myxo.css.msu.edu
beckma24 at myxo.css.msu.edu
Fri Aug 29 07:01:58 PDT 2008
Author: beckma24
Date: 2008-08-29 10:01:58 -0400 (Fri, 29 Aug 2008)
New Revision: 2765
Modified:
development/source/actions/EnvironmentActions.cc
Log:
added another seasonal resource action
Modified: development/source/actions/EnvironmentActions.cc
===================================================================
--- development/source/actions/EnvironmentActions.cc 2008-08-29 13:45:24 UTC (rev 2764)
+++ development/source/actions/EnvironmentActions.cc 2008-08-29 14:01:58 UTC (rev 2765)
@@ -562,14 +562,14 @@
};
/**
- Sets resource availiblity to seasonal 1 to -1
+ Sets resource availiblity to seasonal 1 to -1 for 1K years of 365 updates
*/
-class cActionSetSeasonalResource1To_1 : public cAction {
+class cActionSetSeasonalResource1Kyears_1To_1 : public cAction {
private:
cString m_res_name;
public:
- cActionSetSeasonalResource1To_1(cWorld* world, const cString& args): cAction(world, args), m_res_name("")
+ cActionSetSeasonalResource1Kyears_1To_1(cWorld* world, const cString& args): cAction(world, args), m_res_name("")
{
cString largs(args);
if (largs.GetSize()) m_res_name = largs.PopWord();
@@ -589,6 +589,33 @@
/**
+ Sets resource availiblity to seasonal 1 to -1 for 10K years of 365 updates
+ */
+class cActionSetSeasonalResource10Kyears_1To_1 : public cAction {
+private:
+ cString m_res_name;
+
+public:
+ cActionSetSeasonalResource10Kyears_1To_1(cWorld* world, const cString& args): cAction(world, args), m_res_name("")
+ {
+ cString largs(args);
+ if (largs.GetSize()) m_res_name = largs.PopWord();
+ }
+
+ static const cString GetDescription() { return "Arguments: <string reaction_name>"; }
+
+ void Process(cAvidaContext& ctx)
+ {
+ int time = m_world->GetStats().GetUpdate();
+ double m_res_count = -1*(tanh((time-1825000)/500000)+1)*(0.5*sin(time/58.091)+0.5)+1;
+ cResource* res = m_world->GetEnvironment().GetResourceLib().GetResource(m_res_name);
+ if (res != NULL)
+ m_world->GetPopulation().SetResource(res->GetID(), m_res_count);
+ }
+};
+
+
+/**
Sets resource availiblity to periodic
*/
class cActionSetPeriodicResource : public cAction
@@ -904,7 +931,8 @@
action_lib->Register<cActionSetEnvironmentRandomMask>("SetEnvironmentRandomMask");
action_lib->Register<cActionSetSeasonalResource>("SetSeasonalResource");
- action_lib->Register<cActionSetSeasonalResource1To_1>("SetSeasonalResource1To_1");
+ action_lib->Register<cActionSetSeasonalResource1Kyears_1To_1>("SetSeasonalResource1Kyears_1To_1");
+ action_lib->Register<cActionSetSeasonalResource10Kyears_1To_1>("SetSeasonalResource10Kyears_1To_1");
action_lib->Register<cActionSetPeriodicResource>("SetPeriodicResource");
action_lib->Register<cActionSetNumInstBefore0Energy>("SetNumInstBefore0Energy");
More information about the Avida-cvs
mailing list