* rulesets/Character.cpp, rulesets/Task.cpp, rulesets/Task.h,
rulesets/TaskScript.cpp: Re-work tick ops to tasks so they use
argument, not sub_to to get routed to the task. Do the groundwork
for having a serial number for each op, which resets to zero when
a new task is started.
* rulesets/mason/world/tasks/Combat.py,
rulesets/mason/world/tasks/Logging.py,
rulesets/mason/world/tasks/Raise.py,
rulesets/mason/world/tasks/Ram.py,
rulesets/mason/world/tasks/Sharpen.py: Modify all current tasks
to set their arg as required.
* rulesets/mason/world/tasks/Ram.py: Implement hammering things into
the ground.
* rulesets/mason/define_world.py: Use stakes instead of logs for the
stockade.
* rulesets/TaskScript.cpp: Don't send a tick to the task if its
initialisation has failed, indicated by it being flagged as
obsolete.
* rulesets/TaskScript.cpp: Add default tick operation to bootstrap
tasks to all task scripts in the C++.
* rulesets/mason/world/tasks/Logging.py,
rulesets/mason/world/tasks/Raise.py,
rulesets/mason/world/tasks/Combat.py: Remove bootstrap tick op
now handled by the C++ base class. Simplify making Combat
irrelevant, as it no longer needs special handling. Add doc
strings to Combat.
* rulesets/Script.cpp: Document the script interface.
* rulesets/Task.h: Modify task interface so tasks now expect
the operation that initiated the task to be passed in
to an init function.
* rulesets/Combat.h, rulesets/Combat.cpp: Modify the combat task
methods to match the interface changes.
* rulesets/Character.cpp: Modify Combat use to take account
of interface changes. Prototype using script based
combat.
* rulesets/TaskScript.h, rulesets/TaskScript.cpp: Implement
passing the initialising op through to the script using the
standard scripp operation handling functions.
* rulesets/mason/world/tasks/Combat.py: Add handler for Attack
operation, which should now be passed in at init time.
* rulesets/TaskScript.cpp, server/TaskFactory.cpp: Add some assert
checks.
* server/EntityFactory.cpp: Remove some debug output.
* rulesets/mason/world/tasks/Combat.py: Add a simple example
of the interface required in a task script.
* server/EntityFactory.h, server/EntityFactory.cpp: Add a handler for
objects in rules files.
* rulesets/TaskScript.h, rulesets/TaskScript.cpp: Task class which
delegates functionality to a script object. Basically just a
stub at this point.
* server/TaskFactory.h server/TaskFactory.cpp: Factory class for
creating instances of Task classes.