The Skills infrastructure is now present and working.

Xml-based Skill definition

This is built within the Event system, so it gets all of the hooking goodness and allows a bunch of re-use between Skills and Item events.  For instance, here’s the sample Skills I’ve created for Priests.  Notice how similar the Skill’s “UseSkill” Event definition is to the Item “ItemUsed” Events depicted in an earlier post:

    <Skill Id="Priest0" Level="1" Name="Magic Mapping" Tile="Skill_MagicMapping" Description="Map stuff">
      <Event Type="UseSkill" OnFireText="You sense the world around you">
        <MagicMapping Amount="1%"/>
    <Skill Id="Priest1" Level="1" Name="Minor Healing" Tile="Skill_MinorHealing" Description="Mends small wounds">
      <Event Type="UseSkill" OnFireText="A flickering blue light surrounds you">
        <Heal Amount="4+1d8" Target="Self" />

Class Skills

Skills are grouped by Player class (Priest, Warrior, etc) and can be assigned when a Player gains a level.  They could actually be assigned at any point, but the per-level skill gain is automatic.  I’ll have to think through Skill trees later on…

Skill Bar

The SkillBar now displays the Player’s skills, and skills can be dragged/dropped around the bar.  This will come into play when I add the “Skill Selector” dialog later, and the Player can define which Skills they want quickly accessible by dragging them from the Skill Selector onto the SkillBar.

Here’s what the SkillBar looks like with the two skills defined above:

And here’s what it looks like when dragging the second skill around.  It shows a translucent preview of the skill in the target Skill slot.

Still tbd: persistence of Skills…  New code drop when I get that working (hopefully tonight)