* rulesets/basic/mind/NPCMind.py: Remove a few chunks of unused code.
Clean up and simplify the logic when dealing with converting plain
talk ops into structured interlinguish. Add some doc strings and
comments.
* rulesets/basic/mind/goals/common/common.py,
rulesets/basic/mind/goals/common/move.py,
rulesets/basic/mind/goals/humanoid/build_home.py,
rulesets/basic/mind/goals/humanoid/fire.py,
rulesets/basic/mind/goals/humanoid/mason.py,
rulesets/basic/mind/goals/humanoid/transaction.py:
Clean up the way goals are imported so it makes more sense,
and doxygen has an easier time with it.
* rulesets/basic/mind/NPCMind.py: Add a mechanism to detect when
the mind is assigned ownership of something it has not yet seen,
and postpone adding it to owned things until later.
* data/devices.xml: Add a second type of operation to the example
device.
* rulesets/Character.cpp: Sort out the fixme so non-default actions
can be specified when actuating devices.
* rulesets/basic/mind/goals/common/misc_goal.py: Clean up the
actuation testing goal.
* rulesets/basic/mind/goals/common/misc_goal.py: Make the checking
for a list simpler. Add a test goal for exercising the device
activation interface.
* rulesets/mason/define_world.py: Add client test method to try
out the activation goal.
* rulesets/Python_API.cpp: Remove the server_python flag used to
allow scripts to run unmodified on the obsolete python prototype.
* rulesets/basic/mind/NPCMind.py,
rulesets/basic/mind/goals/animal/herd.py,
rulesets/basic/mind/goals/common/common.py,
rulesets/basic/mind/goals/common/move.py,
rulesets/mason/world/objects/buildings/House.py: Remove support
for running these scripts on the obsolete python prototype.
* rulesets/basic/editor.py: Don't pre-pend the name on sentences
sent to program the AIs.
* rulesets/basic/mind/NPCMind.py: Replace all the places where
the name of an entity is taken with a function which checks
for the name, but then uses the type if it is not present.
* rulesets/basic/mind/panlingua/interlinguish.py: Fix the code
that strips the name from the beginning of sentences so that
it checks first.
* rulesets/Script.h, rulesets/Script.cpp,
rulesets/PythonThingScript.h, rulesets/PythonThingScript.cpp,
rulesets/PythonMindScript.h, rulesets/PythonMindScript.cpp:
Modify the script interface so it now only handles one operation.
* rulesets/BaseMind.cpp: Pass in the sub operation only for
sight and sound of other operations.
* rulesets/basic/mind/NPCMind.py,
rulesets/basic/mind/goals/humanoid/transaction.py: Adapt the mind
and goal code so it only requires one operation.
* rulesets/basic/mind/panlingua/interlinguish.py: Add the list verb.
* rulesets/basic/mind/Goal.py: Add a __repr__() method to make it
more intuitive to get a text representation of a goal.
* rulesets/basic/mind/NPCMind.py: Add a handler for the list verb
that causes all the matching knowledge to be listed.
* rulesets/basic/mind/goals/common/trigger.py: Generic common trigger
goals, starting with a trigger base chase goal.
* rulesets/basic/mind/goals/animal/domestic.py: Trigger goals specific
to domesticated animals, starting with goals for pig herding.
* rulesets/basic/mind/goals/__init__.py: Add the two new files of
trigger goals.
* rulesets/mason/mind/PigMind.py, rulesets/mason/mind/SkelMind.py,
rulesets/mason/mind/WolfMind.py, rulesets/mason/mind/__init__.py:
Remove special mind classes for pig, skeleton and wolf, as it
should be possible to do it more cleanly with trigger goals.
* rulesets/mason/define_world.py: Add trigger goals for pig and
skeleton to replace the behavior that used to be in special purpose
mind classes.
* rulesets/basic/mind/goals/common/misc_goal.py,
rulesets/basic/mind/goals/common/move.py,
rulesets/basic/mind/goals/humanoid/construction.py,
rulesets/mason/define_world.py: Fix most goals so they no longer
require a reference to the owning mind object on initialisation,
meaning they are now more stateless.
* rulesets/basic/mind/goals/common/misc_goal.py,
rulesets/basic/mind/goals/common/move.py,
rulesets/basic/mind/goals/humanoid/construction.py:
Re-write goals relating to gathering things off the ground
to be clearer, more efficient, and to deal with lists of types.
* rulesets/mason/define_world.py: Use warrior test to test gathering
lists of types.
* Makefile.am: Remove GNU echo isms.
* rulesets/basic/mind/goals/common/move.py: Modify the pick_up_focus()
goal so it clears the focus. gather() now gathers things
indefinitely.
* rulesets/mason/define_world.py: Add a test script for warriors to
gather stuff.
* rulesets/basic/mind/panlingua/interlinguish.py: Add nouns for a
number of tools, by Max Randor.
* rulesets/mason/define_world.py: Make many more tools available for
sale, by Max Randor.
* rulesets/basic/mind/panlingua/interlinguish.py: Add some clothing
types to the vocabulary.
* rulesets/mason/define_world.py: Add a tailor stall to the village.
* configure.ac: Increment version.
* common/const.h: Declare a doxygen group for all the consts.
* common/operations.cpp, common/Add.h, common/Attack.h, common/Burn.h,
common/Chop.h, common/Connect.h, common/Cut.h, common/Delve.h,
common/Dig.h, common/Drop.h, common/Eat.h, common/Monitor.h,
common/Mow.h, common/Nourish.h, common/Pickup.h, common/Setup.h,
common/Tick.h, common/Unseen.h, common/Update.h:
Declare a doxygen group for all custom operations.
* rulesets/Area.h, rulesets/Character.h, rulesets/Creator.h,
rulesets/Entity.h, rulesets/Food.h, rulesets/Line.h,
rulesets/Missile.h, rulesets/Plant.h, rulesets/Stackable.h,
rulesets/Structure.h, rulesets/World.h: Declare a doxygen group
for in game entity classses.
* common/Property.h, common/Property_impl.h, server/ScriptFactory.cpp,
server/ScriptFactory.h, server/SlaveClientConnection.cpp,
server/SlaveClientConnection.h: Add some more inlined documentation.