Once a play is created, there are three things that must be done to add it to the system:
As you can see, the process for adding new plays is
identical to that of adding new skills, it just involves different files.
One difference to be aware of, however, is that there are different categories
of plays (2001, 2002, skill plays, etc). So you must make sure you are
adding your play to the correct category. The actual order only matters in
RegisterPlays.cpp, when the play numbers are handed out, but it's good to be
consistent.
Using the example of StupidSkillTest (a skill test play), we will walk through each of these
steps.
First, add the include line into PlayIncludes.h:
#include
"skillPlays/InterceptBallSkill_Test.h"
#include
"skillPlays/TightDefenseSpecialOpDSkill_Test.h"
#include
"skillPlays/StupidSkill_Test.h"
//-----
Next, add the constructor into playbook.cpp:
playbook[TurnAndKickSkillTest::playNum] = new
TurnAndKickSkillTest(vision);
playbook[TightDefenseSpecialOpDSkillTest::playNum] = new
TightDefenseSpecialOpDSkillTest(vision);
playbook[StupidSkillTest::playNum] = new StupidSkillTest(vision);
Finally, add the playNum initialization into RegisterPlays.cpp:
TurnAndKickSkillTest::playNum=numPlays++;
TightDefenseSpecialOpDSkillTest::playNum=numPlays++;
StupidSkillTest::playNum=numPlays++;
END_JOEL_SKILL_TEST_PLAYS=numPlays++;
//----
Now your play is present in the system. When you run the AI, it should show up under the plays menu.
Once your skill is created, there are three things that must be done to add it to the system:
Using the example of StupidSkill, we will walk through each of these
steps.
First, add the include line into SkillSetIncludes.h:
#include "CreatorCreateSkill.h"
#include "SpecialOpBlockSkill.h"
#include "StupidSkill.h"
//-----
Next, add the constructor into SkillSet.cpp:
skillArray[CreatorCreateSkill::skillNum] = new CreatorCreateSkill(rp, vm,
strategy, id, this);
skillArray[SpecialOpBlockSkill::skillNum] = new SpecialOpBlockSkill(rp, vm,
strategy, id, this);
skillArray[StupidSkill::skillNum] = new StupidSkill(rp, vm, strategy,
id, this);
//-----
Finally, add the skillNum initialization into RegisterSkillz.cpp:
PassBlockSkill::skillNum = numSkillz++;
ShotBlockSkill::skillNum
= numSkillz++;
StupidSkill::skillNum = numSkillz++;
//--
Now your skill is present in the system and can be called by other skills and plays.