* FIXME, Makefile.am: Add new FIXME file which documents FIXMEs in
the code.
* server/EntityFactory.cpp: Remove the terrain feature classes
implemented as hard coded classes.
* data/basic.xml: Add the terrain feature classes as soft data
defined classes.
* rulesets/Py_Task.cpp: Allow progress to be set as an integer from
a task script.
* data/mason.xml, rulesets/mason/world/tasks/Slice.py: Add a new
slice task for sawing logs into boards.
* server/PersistantThingFactory.h: Improve comments.
* data/mason.xml: Add maximum and minimum values example for the mass
of a pig.
* common/Type.h: Add empty interface class which will be padded out
to be the interface used by instances to query their class.
the instance, might need to have a type class which each Entity has
a pointer to. Should it also be possible to specifiy different statistics
classes in data/*.xml?
* common/BaseWorld.h, rulesets/Character.cpp,
server/EntityFactory.cpp, server/EntityFactory.h,
server/TaskFactory.h, server/WorldRouter.cpp,
server/WorldRouter.h: Specify the target base type that a given
task is valid for, and provide target type when activating a task.
* data/mason.xml: Add target base types to most task rules.
* rulesets/mason/world/tasks/Combat.py: Fix the copyright date.
* rulesets/mason/world/tasks/Sharpen.py: Proof of concept task
for turning logs into stakes.
* data/mason.xml: Add a tool, operation and class for hammering
wooden stakes into the ground.
* rulesets/mason/world/tasks/Ram.py: Add stub task script for
hammering things into the ground.
* rulesets/Python_API.cpp: Improve the quaternion constructor
so it can build one from an axis and an angle of rotation.
* rulesets/Py_Quaternion.cpp: Add support for multiplying quaternions
together.
* data/mason.xml: Add rules for a pole tool, together with
operations and tasks associated with the pole.
* rulesets/mason/world/tasks/Raise.py: Add a task used with the
pole to lever items into different orientations. When used on an
entity, the entity is oriented away from the users current
position, rotating around a horizontal axis.
* data/basic.xml: Add "collapse" action op to trigger a defeated
animation.
* rulesets/mason/world/tasks/Combat.py: Prevent characters from
attacking characters that are exhausted. Send a sight of
collapse operation when combat finishes.
* data/mason.xml: Make skeleton playable.
* server/Connection.cpp: Differentiate in the event logs between
account creation and login to an existing account.
* data/mason.xml: Add dog.
* rulesets/mason/define_world_aglanor.py: Add some dogs, they patrol the
outskirt of the town and chase squirrels and chickens.
* 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.
* rulesets/basic/world/objects/Thing.py: Remove self.attributes
from the base class for all python scripts.
* rulesets/mason/world/objects/Weather.py,
rulesets/basic/world/objects/plants/Tree.py,
rulesets/basic/world/objects/animals/Animal.py,
data/basic.xml, data/mason.xml: Don't use set_kw to handle default
attributes, and add the to the .xml rules files.
* rulesets/basic/world/objects/buildings/House.py,
rulesets/basic/world/objects/buildings/StoneHouse.py,
rulesets/basic/world/objects/tools/Bow.py,
rulesets/basic/world/objects/tools/Sword.py,
rulesets/mason/world/objects/animals/Deer.py,
rulesets/mason/world/objects/animals/Pig.py,
rulesets/mason/world/objects/outdoor/Campfire.py,
rulesets/mason/world/objects/outdoor/Gravestone.py,
rulesets/mason/world/objects/plants/seeds/Acorn.py,
rulesets/mason/world/objects/plants/seeds/Apple.py,
rulesets/mason/world/objects/plants/seeds/Fircone.py,
rulesets/mason/world/objects/plants/seeds/Seed.py,
rulesets/mason/world/objects/tools/Cleaver.py,
rulesets/mason/world/objects/undead/Skeleton.py,
rulesets/werewolf/world/objects/characters/Villager.py,
rulesets/werewolf/world/objects/tools/Gallows.py:
Don't import set_kw from misc, as its now obsolete and unused.
* server/WorldRouter.cpp: Fix height correction calculation inversion.
* data/mason.xml: Make houses inherit from structure so it is possible
to go in and out.
* common/system.cpp: Make sure cassert is included before assert
macro is used.
* common/Makefile.am: Add missing header.
* data/Makefile.am: Install copies of the config files in
the documentation directory for reference.
* common/custom.cpp: Remove some operation types only used in
scrypts.
* data/basic.xml, data/mason.xml: Add the operation definitions
into the rule files.
* data/basic.xml: Added operations "disperse" and "extinguish".
Set up "disperse" as the default operation for the pile.
* rulesets/basic/world/objects/Pile.py: The operation "disperse"
will call the "extinguish" operation on the target. Maybe it is
advisable to add an assertion if the target is indeed a fire.
* server/WorldRouter.cpp: Fix a problem where entities contained by
other entities had their height adjusted incorrectly.
* rulesets/basic/world/objects/elements/Fire.py: Allow fires to be
moved.
* rulesets/Python_API.cpp: Add constructor for BBox.
* data/mason.xml: Add a torch. Add burn_speed attributes to a
bunch more entity classes.
* rulesets/mason/world/objects/tools/Torch.py: Script for torch.
* rulesets/mason/world/objects/tools/Tinderbox.py: Change strength
of initial fire spark to 0.05.
* common/operations.cpp: Fix nourish op, which got broken when mow
was added.
* data/basic.xml: Add a default bbox for lumber, giving it a more
apropriate size.
* rulesets/Py_World.cpp: Add a compare implementation so that
` scripts can check entities to see if they are the world.
* rulesets/basic/world/objects/elements/Fire.py: Tune the
changes which occur in fire as it burns.
* data/mason.xml: Connected gravestones to Gravestone.py script.
* rulesets/mason/world/objects/outdoor/Gravestone.py: added response to a dig operation, which will create a random skeleton piece. This will allow the wholesome pastime of grave robbing.
* data/mason.xml: Give the mausoleum a more sensible bbox and mass
* rulesets/mason/define_world.py: add a test_graveyard function,
which adds the mausoleum, a path leading to it, and a lych
patrolling nearby. No gravestones yet, alas.
* data/mason.xml: Make boat float by default, add bottle and bunny,
fix wolf's bounding box.
* rulesets/mason/define_world.py: Put fire in the middle of campfire,
not offset.
* modules/Location.cpp, modules/Location.h: Rejig flags on Location
so that there is one to indicate contents should be checked for
collision, and one to indicate contents is not a collision volume.
* rulesets/Movement.cpp: Modify collision code to check if an
entity is supposed to be checked for collisions.
* rulesets/Structure.cpp: Tweak the flag set on structures to
correctly show that their contents should be checked for collision.
* data/mason.xml: Make ploughed field into an area, and sort
out its bbox to be the right size.