* rulesets/ArithmeticScript.h, rulesets/PythonArithmeticScript.cpp,
rulesets/PythonArithmeticScript.h: Change set() method to return
void as there is nothing to report.
* rulesets/PythonArithmeticScript.cpp,
rulesets/StatisticsProperty.cpp: Remove the debug output.
* rulesets/mason/world/statistics/Statistics.py: Get rid of the
useless del property, and clean up debug output.
* rulesets/mason/world/statistics/Statistics.py: Make this a new
style class so properties work right, and implement it all
as properties.
* rulesets/StatisticsProperty.cpp: Move the setup of the script
instance into apply rather than install, otherwise it doesn't get
called in the right place.
* rulesets/ArithmeticScript.h: Add a set method to the interface.
* rulesets/PythonArithmeticScript.cpp,
rulesets/PythonArithmeticScript.h: Implement getting using
PyObject_GenericGetAttr() as it works. Add a completely new set
function.
* rulesets/Entity.cpp: When a new property is installed it needs
to be applied.
* rulesets/PythonArithmeticScript.cpp, rulesets/PythonThingScript.cpp:
Add casts when passing string constants to Python calls which take
char *. I am confident this is safe, and the functions have no
need to modify the strings, so could take const char *, but somehow
don't.
rulesets/Py_Location.h, rulesets/Py_Map.h, rulesets/Py_Mind.h,
rulesets/Py_Object.h, rulesets/Py_Operation.h, rulesets/Py_Oplist.h,
rulesets/Py_Point3D.h, rulesets/Py_Quaternion.h,
rulesets/Py_RootEntity.h, rulesets/Py_Task.h, rulesets/Py_Thing.h,
rulesets/Py_Vector3D.h, rulesets/Py_World.h, rulesets/Py_WorldTime.h:
Re-wrote PyFoo_Check macros to comply with recent conventions
and be a little more efficient.
* rulesets/Py_Statistics.cpp, rulesets/PythonArithmeticScript.cpp,
rulesets/mason/world/statistics/Statistics.py: Remove lots of
debug output.
* rulesets/PythonArithmeticScript.h: Add an accessor to get to the
python object.
* rulesets/StatisticsProperty.h: Add an accessor to get to the
Statistics reference handled by this class.
* rulesets/Py_Property.cpp: Return the script for a statistics
object rather than creating a wrapper for it.
* rulesets/PythonArithmeticScript.cpp: Implement getting attribute
values from statistics script.
* rulesets/Statistics.cpp, rulesets/Statistics.h,
rulesets/Py_Statistics.cpp, rulesets/Character.cpp,
rulesets/Combat.cpp: Remove hard coded stats for combat
and strength.
* rulesets/mason/world/statistics/Statistics.py: Add test support
for combat and strength stats.
* server/PersistantThingFactory.cpp: Remove debug output.
* rulesets/ArithmeticScript.h: Remove redundant constructor.
* rulesets/ArithmeticScript.cpp: Provide empty virtual destructor
implementation.
* rulesets/Py_Statistics.cpp: Add debugging output, and remove
rubbish from __init__.
* rulesets/PythonArithmeticScript.cpp: Test implementation of
attribute.
* server/ArithmeticFactory.cpp, server/ArithmeticFactory.h: New
factory class to create instances of scripts to handle
statistics.
* server/EntityFactory.cpp, server/EntityFactory.h: Add new method
and supporting data structures to provide a way to create
statistics objects for newly created Character entities.
* server/PersistantThingFactory.cpp: Add a call to
EntityFactory::addStatisticsScript to the Character
specialisation of PersistantThingFactory::populate, giving
all characters a statistics script now.
* rulesets/mason/world/statistics/Statistics.py: Test implementation
of a class for all character statistics.
* rulesets/ArithmeticScript.h, rulesets/PythonArithmeticScript.h,
rulesets/PythonArithmeticScript.cpp: Stub classes for handling
adding a script to handle Statistics.