* Adds a button property to a WeaponClasses styles, which maps a combat
style to the button that was pressed in the combat tab.
* Adds full support for special attacks, with their config IDs and
buttons.
* Adds the DDS special attack, along with the D2H special attack as some
starting examples.
* Rename the "no_weapon" Weapon to "unarmed", so it shows up better in
the UI.
* Uses a hierarchy of WeaponClasses -> Weapons for performing attacks,
with WeaponClass having a set of styles and associated Attacks for
those styles. Weapons and their classes are built with an easy to use
and clean DSL.
* Adds a BonusContainer mixin, so that Equipment, Weapons, and
WeaponClasses can all have their own set of bonuses which apply to the
player.
* Allows attacks to be queued to the Mobs CombatState instance from
external code, allowing e.g., NPCs or auto-cast to queue attacks to be
executed.
Makes sure that the steps in a path sent for a "Player Walk" message are
on the same level as the players current position while being processed
in the walking queue.
Add rules for enforcing tabs in Java, and spaces in Ruby.
Add a rule to make sure trailing whitespace is trimmed
and that no new final newline is inserted.
Add various tests around ItemOnObject messages to verify that a valid
object needs to be given as well as a valid item in order for the
message to be passed down the MessageHandlerChain.
Add a test which verifies an ObjectActionMessage is terminated if its
not within the specified distance of the player.
Additionally add a test which verifies that an ObjectActionMessage is
terminated if there is no object with the given id nearby.