* 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.
* 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.
* 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.
* 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.
* 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/basic.xml, data/mason.xml, rulesets/mason/define_world.py:
Make sure entities with layers all use a different layer ID.
Make sure sty has area and bbox in the default attributes.
* data/basic.xml, data/mason.xml: Add objtype to all rules.
Add a rule for ignite operation definition.
* common/custom.cpp: Remove hardcoded ignite operation definition.
* server/EntityFactory.cpp, server/EntityFactory.h: Remove some debug
output. Add new code to allow op_definitions to be installed as
rules.
* common/inheritance.cpp, common/inheritance.h: Return an error code
when a type without parents gets installed, rather than throwing an
exception.
* tests/inheritancetest.cpp: Fix test so it no longer expects an
exception.
* rulesets/mason/world/objects/clothing/Garment.py: Remove some
debug output.
* tools/AdminClient.cpp: Remove hardcoded objtype, depending instead
on objtype from the data file. Fix a bug where the full rule
was not getting uploaded when updating an existing rule.
Improve error reporting when update fails.
* tools/Formatter.cpp: Change the way lists are formatted to
to be cleaner, and match the way existing rules are stored.
* data/mason.xml, data/basic.xml: Make sure maps are all in
alphabetical order, so these files are the same as their machine
generated versions.
* common/Dig.h, common/Mow.h, common/custom.cpp, common/operations.cpp:
Add new Dig and Mow operations, for handling resource gathering.
* rulesets/basic/world/objects/tools/Shovel.py,
rulesets/basic/world/objects/tools/Scythe.py,
data/basic.xml: Add new scythe and shovel for gathering resources
from the terrain.
* rulesets/basic/world/objects/tools/Pickaxe.py,
common/Delve.h: Fix the comments.
* rulesets/World.cpp, rulesets/World.h: Move code for determining
terrain surface type into a method of its own. Implement handlers
for Dig and Mow ops.
* common/custom.cpp, common/Delve.h,
common/operations.cpp, common/operations.h:
Add new delve operation for digging with a pickaxe.
* data/basic.xml, rulesets/basic/world/objects/tools/Pickaxe.py:
Add new pickaxe entity which emits a Delve operation when
used.
* rulesets/Character.cpp: Fix a bug where a segfault occured
if an operation was requested by a tool that was unknown to
to the core server code. Instead an error message is emitted.
* rulesets/World.cpp: Subscribe world terrain to delve ops.
* data/basic.xml: Clean out a load of obsolete classes and scripts.
* 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/plants/seeds/Seed.py,
rulesets/mason/world/objects/undead/Skeleton.py:
Remove obsolete constructors, and don't inherit from
obsolete scripts.
* rulesets/Plant.h, rulesets/Plant.cpp: Add handler for chop so
we can chop down vegetation.
* rulesets/basic/world/objects/tools/Axe.py: Modify Axe to comply
with new tool use mechanism.
* rulesets/basic/mind/goals/humanoid/transaction.py,
rulesets/basic/mind/goals/common/misc_goal.py,
rulesets/mason/define_world.py: Update butcher goals to use tool
use mechanism.
* rulesets/Python_API.cpp: Ensure entities created from Python
have an objtype.
* common/Database.cpp, common/Database.h: Add capability to specify
extra columns in generic Atlas database tables. Query the results
columns more robustly. Add a ruleset name column to the rules
table.
* server/EntityFactory.cpp: Re-write rule loader to handle new
format rules. Tighten up strictness of rule data. It is no
longer possible to specify defaults for location in the rule.
* tools/cyconvertrules.cpp: Ensure that the playable flag is
copied across when converting rules.
* tools/cyloadrules.cpp: Adapt to load the new format rules,
including handling the ruleset name column.