summaryrefslogtreecommitdiffstats
path: root/example/graphics
diff options
context:
space:
mode:
authorThorbjørn Lindeijer <thorbjorn@lindeijer.nl>2012-02-25 21:18:46 +0100
committerThorbjørn Lindeijer <thorbjorn@lindeijer.nl>2012-02-25 22:14:44 +0100
commit3629aebb96959afc56cf04d1f2fc4a9f03e94183 (patch)
tree888f44e806a98b050cad38727b4afb0b73e75824 /example/graphics
parentef18650cacc0ce7ef71885bf6d23e1adeb4d7e19 (diff)
downloadmanaserv-3629aebb96959afc56cf04d1f2fc4a9f03e94183.tar.gz
manaserv-3629aebb96959afc56cf04d1f2fc4a9f03e94183.tar.xz
manaserv-3629aebb96959afc56cf04d1f2fc4a9f03e94183.zip
Merged the example client and server data
It's easier to just talk about world data and to modify it as a whole. If there is really a need to separate it, a project can still choose to do that (and in whatever suitable way). There is no need to enforce this separation or to do it in our example. Reviewed-by: Erik Schilling
Diffstat (limited to 'example/graphics')
-rw-r--r--example/graphics/items/crafting/generic-ingot.pngbin0 -> 1615 bytes
-rw-r--r--example/graphics/items/crafting/generic-rawlog.pngbin0 -> 1719 bytes
-rw-r--r--example/graphics/items/equipment/chest/chest-leathershirt.pngbin0 -> 684 bytes
-rw-r--r--example/graphics/items/equipment/feet/boots.pngbin0 -> 333 bytes
-rw-r--r--example/graphics/items/equipment/legs/pants.pngbin0 -> 855 bytes
-rw-r--r--example/graphics/items/equipment/weapons/weapon-bow-bow.pngbin0 -> 666 bytes
-rw-r--r--example/graphics/items/equipment/weapons/weapon-dagger-dagger.pngbin0 -> 582 bytes
-rw-r--r--example/graphics/items/equipment/weapons/weapon-sword-sword.pngbin0 -> 827 bytes
-rw-r--r--example/graphics/items/unknown.pngbin0 -> 540 bytes
-rw-r--r--example/graphics/items/usable/usable-candy.pngbin0 -> 562 bytes
-rw-r--r--example/graphics/items/usable/usable-minor-health-potion.pngbin0 -> 311 bytes
-rw-r--r--example/graphics/items/usable/usable-regenerative-trinket.pngbin0 -> 840 bytes
-rw-r--r--example/graphics/items/usable/usable-token-of-speed.pngbin0 -> 1103 bytes
-rw-r--r--example/graphics/particles/arrow-down.pngbin0 -> 380 bytes
-rw-r--r--example/graphics/particles/arrow-hail.xml23
-rw-r--r--example/graphics/particles/arrow.particle.xml14
-rw-r--r--example/graphics/particles/arrowh.pngbin0 -> 1372 bytes
-rw-r--r--example/graphics/particles/attack.particle.xml60
-rw-r--r--example/graphics/particles/emotes/angel.pngbin0 -> 1960 bytes
-rw-r--r--example/graphics/particles/emotes/blah.pngbin0 -> 822 bytes
-rw-r--r--example/graphics/particles/emotes/blush.pngbin0 -> 2038 bytes
-rw-r--r--example/graphics/particles/emotes/disgust.pngbin0 -> 1924 bytes
-rw-r--r--example/graphics/particles/emotes/emote-angel.particle.xml23
-rw-r--r--example/graphics/particles/emotes/emote-blah.particle.xml23
-rw-r--r--example/graphics/particles/emotes/emote-blush.particle.xml23
-rw-r--r--example/graphics/particles/emotes/emote-disgust.particle.xml23
-rw-r--r--example/graphics/particles/emotes/emote-evil.particle.xml23
-rw-r--r--example/graphics/particles/emotes/emote-grin.particle.xml23
-rw-r--r--example/graphics/particles/emotes/emote-happy.particle.xml23
-rw-r--r--example/graphics/particles/emotes/emote-perturbed.particle.xml23
-rw-r--r--example/graphics/particles/emotes/emote-sad.particle.xml23
-rw-r--r--example/graphics/particles/emotes/emote-speech.particle.xml23
-rw-r--r--example/graphics/particles/emotes/emote-surprise.particle.xml23
-rw-r--r--example/graphics/particles/emotes/emote-tongue.particle.xml23
-rw-r--r--example/graphics/particles/emotes/emote-upset.particle.xml23
-rw-r--r--example/graphics/particles/emotes/emote-wink.particle.xml23
-rw-r--r--example/graphics/particles/emotes/evil.pngbin0 -> 1925 bytes
-rw-r--r--example/graphics/particles/emotes/grin.pngbin0 -> 2047 bytes
-rw-r--r--example/graphics/particles/emotes/happy.pngbin0 -> 1734 bytes
-rw-r--r--example/graphics/particles/emotes/perturbed.pngbin0 -> 1763 bytes
-rw-r--r--example/graphics/particles/emotes/sad.pngbin0 -> 1918 bytes
-rw-r--r--example/graphics/particles/emotes/speech.pngbin0 -> 796 bytes
-rw-r--r--example/graphics/particles/emotes/surprise.pngbin0 -> 2086 bytes
-rw-r--r--example/graphics/particles/emotes/tongue.pngbin0 -> 1753 bytes
-rw-r--r--example/graphics/particles/emotes/upset.pngbin0 -> 1632 bytes
-rw-r--r--example/graphics/particles/emotes/wink.pngbin0 -> 1680 bytes
-rw-r--r--example/graphics/particles/fullbubble-16px.pngbin0 -> 659 bytes
-rw-r--r--example/graphics/particles/green-bubbles.particle.xml40
-rw-r--r--example/graphics/particles/hit.particle.xml59
-rw-r--r--example/graphics/particles/levelup.particle.xml23
-rw-r--r--example/graphics/particles/magic.white.xml24
-rw-r--r--example/graphics/particles/orb-medium.pngbin0 -> 320 bytes
-rw-r--r--example/graphics/particles/orb-small.pngbin0 -> 269 bytes
-rw-r--r--example/graphics/particles/skillup.particle.xml23
-rw-r--r--example/graphics/particles/sparkle.pngbin0 -> 537 bytes
-rw-r--r--example/graphics/particles/star-medium.pngbin0 -> 965 bytes
-rw-r--r--example/graphics/particles/star-small.pngbin0 -> 387 bytes
-rw-r--r--example/graphics/particles/warparea.particle.xml24
-rw-r--r--example/graphics/skills/axe.pngbin0 -> 1736 bytes
-rw-r--r--example/graphics/skills/bow.pngbin0 -> 1791 bytes
-rw-r--r--example/graphics/skills/knife.pngbin0 -> 1386 bytes
-rw-r--r--example/graphics/skills/mace.pngbin0 -> 1838 bytes
-rw-r--r--example/graphics/skills/magic.pngbin0 -> 540 bytes
-rw-r--r--example/graphics/skills/polearm.pngbin0 -> 1823 bytes
-rw-r--r--example/graphics/skills/shooting.pngbin0 -> 1853 bytes
-rw-r--r--example/graphics/skills/staff.pngbin0 -> 1308 bytes
-rw-r--r--example/graphics/skills/sword.pngbin0 -> 1641 bytes
-rw-r--r--example/graphics/skills/thrown.pngbin0 -> 1583 bytes
-rw-r--r--example/graphics/skills/unarmed.pngbin0 -> 2263 bytes
-rw-r--r--example/graphics/skills/unknown.pngbin0 -> 540 bytes
-rw-r--r--example/graphics/skills/whip.pngbin0 -> 2700 bytes
-rw-r--r--example/graphics/sprites/equipment/chest/chest-leather-female.pngbin0 -> 11692 bytes
-rw-r--r--example/graphics/sprites/equipment/chest/chest-leather-female.xml104
-rw-r--r--example/graphics/sprites/equipment/chest/chest-leather-male.pngbin0 -> 19688 bytes
-rw-r--r--example/graphics/sprites/equipment/chest/chest-leather-male.xml104
-rw-r--r--example/graphics/sprites/equipment/feet/boots-female.pngbin0 -> 8734 bytes
-rw-r--r--example/graphics/sprites/equipment/feet/boots-female.xml8
-rw-r--r--example/graphics/sprites/equipment/feet/boots-male.pngbin0 -> 8662 bytes
-rw-r--r--example/graphics/sprites/equipment/feet/boots-male.xml104
-rw-r--r--example/graphics/sprites/equipment/legs/pants-female.pngbin0 -> 19817 bytes
-rw-r--r--example/graphics/sprites/equipment/legs/pants-female.xml104
-rw-r--r--example/graphics/sprites/equipment/legs/pants-male.pngbin0 -> 55222 bytes
-rw-r--r--example/graphics/sprites/equipment/legs/pants-male.xml104
-rw-r--r--example/graphics/sprites/error.pngbin0 -> 347 bytes
-rw-r--r--example/graphics/sprites/error.xml10
-rw-r--r--example/graphics/sprites/icons/icon-feather.pngbin0 -> 513 bytes
-rw-r--r--example/graphics/sprites/icons/icon-feather.xml10
-rw-r--r--example/graphics/sprites/icons/icon-poison.pngbin0 -> 1832 bytes
-rw-r--r--example/graphics/sprites/icons/icon-poison.xml18
-rw-r--r--example/graphics/sprites/monsters/monster-maggot.pngbin0 -> 4541 bytes
-rw-r--r--example/graphics/sprites/monsters/monster-maggot.xml66
-rw-r--r--example/graphics/sprites/monsters/monster-scorpion.pngbin0 -> 7855 bytes
-rw-r--r--example/graphics/sprites/monsters/monster-scorpion.xml70
-rw-r--r--example/graphics/sprites/monsters/monster-slime.pngbin0 -> 13722 bytes
-rw-r--r--example/graphics/sprites/monsters/monster-slime.xml55
-rw-r--r--example/graphics/sprites/npcs/static-npcs.pngbin0 -> 29932 bytes
-rw-r--r--example/graphics/sprites/npcs/static-npcs.xml10
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle0.xml6
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle1.pngbin0 -> 733 bytes
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle1.xml143
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle10.pngbin0 -> 3127 bytes
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle10.xml8
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle11.pngbin0 -> 3708 bytes
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle11.xml8
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle12.pngbin0 -> 1668 bytes
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle12.xml8
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle13.pngbin0 -> 1525 bytes
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle13.xml143
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle14.pngbin0 -> 2905 bytes
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle14.xml8
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle15.pngbin0 -> 3217 bytes
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle15.xml8
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle16.pngbin0 -> 2302 bytes
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle16.xml8
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle2.pngbin0 -> 1073 bytes
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle2.xml8
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle3.pngbin0 -> 1121 bytes
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle3.xml8
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle4.pngbin0 -> 1312 bytes
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle4.xml8
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle5.pngbin0 -> 1872 bytes
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle5.xml8
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle6.pngbin0 -> 1092 bytes
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle6.xml8
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle7.pngbin0 -> 1017 bytes
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle7.xml8
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle8.pngbin0 -> 2532 bytes
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle8.xml8
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle9.pngbin0 -> 2280 bytes
-rw-r--r--example/graphics/sprites/races/humans/hairstyles/hairstyle9.xml8
-rw-r--r--example/graphics/sprites/races/humans/human_female_base.pngbin0 -> 60055 bytes
-rw-r--r--example/graphics/sprites/races/humans/human_female_base.xml104
-rw-r--r--example/graphics/sprites/races/humans/human_male_base.pngbin0 -> 55885 bytes
-rw-r--r--example/graphics/sprites/races/humans/human_male_base.xml110
-rw-r--r--example/graphics/sprites/weapons/weapon-bow.pngbin0 -> 5751 bytes
-rw-r--r--example/graphics/sprites/weapons/weapon-bow.xml26
-rw-r--r--example/graphics/sprites/weapons/weapon-dagger.xml27
-rw-r--r--example/graphics/sprites/weapons/weapon-fist.xml7
-rw-r--r--example/graphics/sprites/weapons/weapon-sword.pngbin0 -> 2016 bytes
-rw-r--r--example/graphics/sprites/weapons/weapon-sword.xml27
140 files changed, 2084 insertions, 0 deletions
diff --git a/example/graphics/items/crafting/generic-ingot.png b/example/graphics/items/crafting/generic-ingot.png
new file mode 100644
index 0000000..0dc7b1e
--- /dev/null
+++ b/example/graphics/items/crafting/generic-ingot.png
Binary files differ
diff --git a/example/graphics/items/crafting/generic-rawlog.png b/example/graphics/items/crafting/generic-rawlog.png
new file mode 100644
index 0000000..038d5a5
--- /dev/null
+++ b/example/graphics/items/crafting/generic-rawlog.png
Binary files differ
diff --git a/example/graphics/items/equipment/chest/chest-leathershirt.png b/example/graphics/items/equipment/chest/chest-leathershirt.png
new file mode 100644
index 0000000..761b9bf
--- /dev/null
+++ b/example/graphics/items/equipment/chest/chest-leathershirt.png
Binary files differ
diff --git a/example/graphics/items/equipment/feet/boots.png b/example/graphics/items/equipment/feet/boots.png
new file mode 100644
index 0000000..9f9913f
--- /dev/null
+++ b/example/graphics/items/equipment/feet/boots.png
Binary files differ
diff --git a/example/graphics/items/equipment/legs/pants.png b/example/graphics/items/equipment/legs/pants.png
new file mode 100644
index 0000000..c50daf2
--- /dev/null
+++ b/example/graphics/items/equipment/legs/pants.png
Binary files differ
diff --git a/example/graphics/items/equipment/weapons/weapon-bow-bow.png b/example/graphics/items/equipment/weapons/weapon-bow-bow.png
new file mode 100644
index 0000000..2ab672d
--- /dev/null
+++ b/example/graphics/items/equipment/weapons/weapon-bow-bow.png
Binary files differ
diff --git a/example/graphics/items/equipment/weapons/weapon-dagger-dagger.png b/example/graphics/items/equipment/weapons/weapon-dagger-dagger.png
new file mode 100644
index 0000000..cdfc370
--- /dev/null
+++ b/example/graphics/items/equipment/weapons/weapon-dagger-dagger.png
Binary files differ
diff --git a/example/graphics/items/equipment/weapons/weapon-sword-sword.png b/example/graphics/items/equipment/weapons/weapon-sword-sword.png
new file mode 100644
index 0000000..571fb40
--- /dev/null
+++ b/example/graphics/items/equipment/weapons/weapon-sword-sword.png
Binary files differ
diff --git a/example/graphics/items/unknown.png b/example/graphics/items/unknown.png
new file mode 100644
index 0000000..9201d68
--- /dev/null
+++ b/example/graphics/items/unknown.png
Binary files differ
diff --git a/example/graphics/items/usable/usable-candy.png b/example/graphics/items/usable/usable-candy.png
new file mode 100644
index 0000000..e3d75c2
--- /dev/null
+++ b/example/graphics/items/usable/usable-candy.png
Binary files differ
diff --git a/example/graphics/items/usable/usable-minor-health-potion.png b/example/graphics/items/usable/usable-minor-health-potion.png
new file mode 100644
index 0000000..a404d6f
--- /dev/null
+++ b/example/graphics/items/usable/usable-minor-health-potion.png
Binary files differ
diff --git a/example/graphics/items/usable/usable-regenerative-trinket.png b/example/graphics/items/usable/usable-regenerative-trinket.png
new file mode 100644
index 0000000..ba69b57
--- /dev/null
+++ b/example/graphics/items/usable/usable-regenerative-trinket.png
Binary files differ
diff --git a/example/graphics/items/usable/usable-token-of-speed.png b/example/graphics/items/usable/usable-token-of-speed.png
new file mode 100644
index 0000000..25c712f
--- /dev/null
+++ b/example/graphics/items/usable/usable-token-of-speed.png
Binary files differ
diff --git a/example/graphics/particles/arrow-down.png b/example/graphics/particles/arrow-down.png
new file mode 100644
index 0000000..da94afc
--- /dev/null
+++ b/example/graphics/particles/arrow-down.png
Binary files differ
diff --git a/example/graphics/particles/arrow-hail.xml b/example/graphics/particles/arrow-hail.xml
new file mode 100644
index 0000000..5372e9a
--- /dev/null
+++ b/example/graphics/particles/arrow-hail.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+
+<effect>
+ <particle
+ position-x = "0"
+ position-y = "0"
+ position-z = "400"
+ lifetime = "100"
+ >
+ <!-- <property name="follow-parent" value="0"/> -->
+ <emitter><!-- <property name="follow-parent" value="0"/> -->
+ <property name="lifetime" min="180" max="180"/>
+ <property name="position-x" min="105" max="145"/>
+ <property name="position-y" min="-20" max="20"/>
+ <property name="vertical-angle" value="255"/>
+ <property name="power" value="14"/>
+ <property name="output" min="0" max="1"/>
+ <property name="output-pause" min="10" max="20"/>
+ <property name="gravity" value="0.09"/>
+ <property name="image" value="graphics/particles/arrow-down.png"/>
+ </emitter>
+ </particle>
+</effect>
diff --git a/example/graphics/particles/arrow.particle.xml b/example/graphics/particles/arrow.particle.xml
new file mode 100644
index 0000000..e19e220
--- /dev/null
+++ b/example/graphics/particles/arrow.particle.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+
+<effect>
+ <particle
+ position-x = "0"
+ position-y = "0"
+ position-z = "32"
+ lifetime = "128"
+ >
+ <rotation imageset="graphics/particles/arrowh.png" width="16" height="16">
+ <sequence start="0" end="7" />
+ </rotation>
+ </particle>
+</effect>
diff --git a/example/graphics/particles/arrowh.png b/example/graphics/particles/arrowh.png
new file mode 100644
index 0000000..1182607
--- /dev/null
+++ b/example/graphics/particles/arrowh.png
Binary files differ
diff --git a/example/graphics/particles/attack.particle.xml b/example/graphics/particles/attack.particle.xml
new file mode 100644
index 0000000..c8dc5f3
--- /dev/null
+++ b/example/graphics/particles/attack.particle.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0"?>
+
+<!--
+A burst of red particles emitted in a narrow, horizontal cone. Could be
+used to visualize some kind of special attack.
+-->
+
+<effect>
+ <particle
+ position-x = "0"
+ position-y = "0"
+ position-z = "16"
+ lifetime = "1"
+ >
+ <emitter>
+ <property name="position-x" min="-8" max="8"/>
+ <property name="position-y" min="-8" max="8"/>
+ <property name="vertical-angle" min="0" max="45"/>
+ <property name="horizontal-angle" min="45" max="135"/>
+ <property name="power" min="0" max="6"/>
+ <property name="gravity" value="100"/>
+ <property name="image" value="graphics/particles/orb-small.png|W:#ff0000"/>
+ <property name="lifetime" min="0" max="80"/>
+ <property name="output" min="6" max="12"/>
+ </emitter>
+ <emitter>
+ <property name="position-x" min="-8" max="8"/>
+ <property name="position-y" min="-8" max="8"/>
+ <property name="vertical-angle" min="0" max="45"/>
+ <property name="horizontal-angle" min="45" max="135"/>
+ <property name="power" min="0" max="6"/>
+ <property name="gravity" value="0.1"/>
+ <property name="image" value="graphics/particles/star-small.png|W:#ff0000,ffffff"/>
+ <property name="lifetime" min="0" max="80"/>
+ <property name="output" min="6" max="12"/>
+ </emitter>
+ <emitter>
+ <property name="position-x" min="-8" max="8"/>
+ <property name="position-y" min="-8" max="8"/>
+ <property name="vertical-angle" min="0" max="45"/>
+ <property name="horizontal-angle" min="45" max="135"/>
+ <property name="power" min="0" max="6"/>
+ <property name="gravity" value="0.1"/>
+ <property name="image" value="graphics/particles/orb-medium.png|W:#ff0000"/>
+ <property name="lifetime" min="0" max="80"/>
+ <property name="output" min="6" max="12"/>
+ </emitter>
+ <emitter>
+ <property name="position-x" min="-8" max="8"/>
+ <property name="position-y" min="-8" max="8"/>
+ <property name="vertical-angle" min="0" max="45"/>
+ <property name="horizontal-angle" min="45" max="135"/>
+ <property name="power" min="0" max="6"/>
+ <property name="gravity" value="0.1"/>
+ <property name="image" value="graphics/particles/star-medium.png|W:#ff0000,ffffff"/>
+ <property name="lifetime" min="0" max="80"/>
+ <property name="output" min="3" max="6"/>
+ </emitter>
+ </particle>
+</effect> \ No newline at end of file
diff --git a/example/graphics/particles/emotes/angel.png b/example/graphics/particles/emotes/angel.png
new file mode 100644
index 0000000..043d075
--- /dev/null
+++ b/example/graphics/particles/emotes/angel.png
Binary files differ
diff --git a/example/graphics/particles/emotes/blah.png b/example/graphics/particles/emotes/blah.png
new file mode 100644
index 0000000..3eae88a
--- /dev/null
+++ b/example/graphics/particles/emotes/blah.png
Binary files differ
diff --git a/example/graphics/particles/emotes/blush.png b/example/graphics/particles/emotes/blush.png
new file mode 100644
index 0000000..22172ae
--- /dev/null
+++ b/example/graphics/particles/emotes/blush.png
Binary files differ
diff --git a/example/graphics/particles/emotes/disgust.png b/example/graphics/particles/emotes/disgust.png
new file mode 100644
index 0000000..9965f89
--- /dev/null
+++ b/example/graphics/particles/emotes/disgust.png
Binary files differ
diff --git a/example/graphics/particles/emotes/emote-angel.particle.xml b/example/graphics/particles/emotes/emote-angel.particle.xml
new file mode 100644
index 0000000..a4bb1b5
--- /dev/null
+++ b/example/graphics/particles/emotes/emote-angel.particle.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<effect>
+ <particle
+ position-x = "0"
+ position-y = "0"
+ position-z = "96"
+ lifetime = "1"
+ >
+ <emitter>
+ <property name="position-x" value="0"/>
+ <property name="position-y" value="0"/>
+ <property name="position-z" value="-32"/>
+ <property name="lifetime" value="80"/>
+ <property name="fade-out" value="50" />
+ <property name="gravity" value="-0.02" />
+
+ <animation imageset="graphics/particles/emotes/angel.png" width="30" height="32">
+ <frame index="0" />
+ </animation>
+ <property name="follow-parent" />
+ </emitter>
+ </particle>
+</effect>
diff --git a/example/graphics/particles/emotes/emote-blah.particle.xml b/example/graphics/particles/emotes/emote-blah.particle.xml
new file mode 100644
index 0000000..38cb327
--- /dev/null
+++ b/example/graphics/particles/emotes/emote-blah.particle.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<effect>
+ <particle
+ position-x = "0"
+ position-y = "0"
+ position-z = "96"
+ lifetime = "1"
+ >
+ <emitter>
+ <property name="position-x" value="0"/>
+ <property name="position-y" value="0"/>
+ <property name="position-z" value="-32"/>
+ <property name="lifetime" value="80"/>
+ <property name="fade-out" value="50" />
+ <property name="gravity" value="-0.02" />
+
+ <animation imageset="graphics/particles/emotes/blah.png" width="30" height="32">
+ <frame index="0" />
+ </animation>
+ <property name="follow-parent" />
+ </emitter>
+ </particle>
+</effect>
diff --git a/example/graphics/particles/emotes/emote-blush.particle.xml b/example/graphics/particles/emotes/emote-blush.particle.xml
new file mode 100644
index 0000000..11d2689
--- /dev/null
+++ b/example/graphics/particles/emotes/emote-blush.particle.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<effect>
+ <particle
+ position-x = "0"
+ position-y = "0"
+ position-z = "96"
+ lifetime = "1"
+ >
+ <emitter>
+ <property name="position-x" value="0"/>
+ <property name="position-y" value="0"/>
+ <property name="position-z" value="-32"/>
+ <property name="lifetime" value="80"/>
+ <property name="fade-out" value="50" />
+ <property name="gravity" value="-0.02" />
+
+ <animation imageset="graphics/particles/emotes/blush.png" width="30" height="32">
+ <frame index="0" />
+ </animation>
+ <property name="follow-parent" />
+ </emitter>
+ </particle>
+</effect>
diff --git a/example/graphics/particles/emotes/emote-disgust.particle.xml b/example/graphics/particles/emotes/emote-disgust.particle.xml
new file mode 100644
index 0000000..b04d18d
--- /dev/null
+++ b/example/graphics/particles/emotes/emote-disgust.particle.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<effect>
+ <particle
+ position-x = "0"
+ position-y = "0"
+ position-z = "96"
+ lifetime = "1"
+ >
+ <emitter>
+ <property name="position-x" value="0"/>
+ <property name="position-y" value="0"/>
+ <property name="position-z" value="-32"/>
+ <property name="lifetime" value="80"/>
+ <property name="fade-out" value="50" />
+ <property name="gravity" value="-0.02" />
+
+ <animation imageset="graphics/particles/emotes/disgust.png" width="30" height="32">
+ <frame index="0" />
+ </animation>
+ <property name="follow-parent" />
+ </emitter>
+ </particle>
+</effect>
diff --git a/example/graphics/particles/emotes/emote-evil.particle.xml b/example/graphics/particles/emotes/emote-evil.particle.xml
new file mode 100644
index 0000000..433aef3
--- /dev/null
+++ b/example/graphics/particles/emotes/emote-evil.particle.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<effect>
+ <particle
+ position-x = "0"
+ position-y = "0"
+ position-z = "96"
+ lifetime = "1"
+ >
+ <emitter>
+ <property name="position-x" value="0"/>
+ <property name="position-y" value="0"/>
+ <property name="position-z" value="-32"/>
+ <property name="lifetime" value="80"/>
+ <property name="fade-out" value="50" />
+ <property name="gravity" value="-0.02" />
+
+ <animation imageset="graphics/particles/emotes/evil.png" width="30" height="32">
+ <frame index="0" />
+ </animation>
+ <property name="follow-parent" />
+ </emitter>
+ </particle>
+</effect>
diff --git a/example/graphics/particles/emotes/emote-grin.particle.xml b/example/graphics/particles/emotes/emote-grin.particle.xml
new file mode 100644
index 0000000..5c50aa9
--- /dev/null
+++ b/example/graphics/particles/emotes/emote-grin.particle.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<effect>
+ <particle
+ position-x = "0"
+ position-y = "0"
+ position-z = "96"
+ lifetime = "1"
+ >
+ <emitter>
+ <property name="position-x" value="0"/>
+ <property name="position-y" value="0"/>
+ <property name="position-z" value="-32"/>
+ <property name="lifetime" value="80"/>
+ <property name="fade-out" value="50" />
+ <property name="gravity" value="-0.02" />
+
+ <animation imageset="graphics/particles/emotes/grin.png" width="30" height="32">
+ <frame index="0" />
+ </animation>
+ <property name="follow-parent" />
+ </emitter>
+ </particle>
+</effect>
diff --git a/example/graphics/particles/emotes/emote-happy.particle.xml b/example/graphics/particles/emotes/emote-happy.particle.xml
new file mode 100644
index 0000000..fa43997
--- /dev/null
+++ b/example/graphics/particles/emotes/emote-happy.particle.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<effect>
+ <particle
+ position-x = "0"
+ position-y = "0"
+ position-z = "96"
+ lifetime = "1"
+ >
+ <emitter>
+ <property name="position-x" value="0"/>
+ <property name="position-y" value="0"/>
+ <property name="position-z" value="-32"/>
+ <property name="lifetime" value="80"/>
+ <property name="fade-out" value="50" />
+ <property name="gravity" value="-0.02" />
+
+ <animation imageset="graphics/particles/emotes/happy.png" width="30" height="32">
+ <frame index="0" />
+ </animation>
+ <property name="follow-parent" />
+ </emitter>
+ </particle>
+</effect>
diff --git a/example/graphics/particles/emotes/emote-perturbed.particle.xml b/example/graphics/particles/emotes/emote-perturbed.particle.xml
new file mode 100644
index 0000000..47f92e3
--- /dev/null
+++ b/example/graphics/particles/emotes/emote-perturbed.particle.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<effect>
+ <particle
+ position-x = "0"
+ position-y = "0"
+ position-z = "96"
+ lifetime = "1"
+ >
+ <emitter>
+ <property name="position-x" value="0"/>
+ <property name="position-y" value="0"/>
+ <property name="position-z" value="-32"/>
+ <property name="lifetime" value="80"/>
+ <property name="fade-out" value="50" />
+ <property name="gravity" value="-0.02" />
+
+ <animation imageset="graphics/particles/emotes/perturbed.png" width="30" height="32">
+ <frame index="0" />
+ </animation>
+ <property name="follow-parent" />
+ </emitter>
+ </particle>
+</effect>
diff --git a/example/graphics/particles/emotes/emote-sad.particle.xml b/example/graphics/particles/emotes/emote-sad.particle.xml
new file mode 100644
index 0000000..0e0b7dc
--- /dev/null
+++ b/example/graphics/particles/emotes/emote-sad.particle.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<effect>
+ <particle
+ position-x = "0"
+ position-y = "0"
+ position-z = "96"
+ lifetime = "1"
+ >
+ <emitter>
+ <property name="position-x" value="0"/>
+ <property name="position-y" value="0"/>
+ <property name="position-z" value="-32"/>
+ <property name="lifetime" value="80"/>
+ <property name="fade-out" value="50" />
+ <property name="gravity" value="-0.02" />
+
+ <animation imageset="graphics/particles/emotes/sad.png" width="30" height="32">
+ <frame index="0" />
+ </animation>
+ <property name="follow-parent" />
+ </emitter>
+ </particle>
+</effect>
diff --git a/example/graphics/particles/emotes/emote-speech.particle.xml b/example/graphics/particles/emotes/emote-speech.particle.xml
new file mode 100644
index 0000000..7d6350b
--- /dev/null
+++ b/example/graphics/particles/emotes/emote-speech.particle.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<effect>
+ <particle
+ position-x = "0"
+ position-y = "0"
+ position-z = "96"
+ lifetime = "1"
+ >
+ <emitter>
+ <property name="position-x" value="0"/>
+ <property name="position-y" value="0"/>
+ <property name="position-z" value="-32"/>
+ <property name="lifetime" value="80"/>
+ <property name="fade-out" value="50" />
+ <property name="gravity" value="-0.02" />
+
+ <animation imageset="graphics/particles/emotes/speech.png" width="30" height="32">
+ <frame index="0" />
+ </animation>
+ <property name="follow-parent" />
+ </emitter>
+ </particle>
+</effect>
diff --git a/example/graphics/particles/emotes/emote-surprise.particle.xml b/example/graphics/particles/emotes/emote-surprise.particle.xml
new file mode 100644
index 0000000..29498c8
--- /dev/null
+++ b/example/graphics/particles/emotes/emote-surprise.particle.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<effect>
+ <particle
+ position-x = "0"
+ position-y = "0"
+ position-z = "96"
+ lifetime = "1"
+ >
+ <emitter>
+ <property name="position-x" value="0"/>
+ <property name="position-y" value="0"/>
+ <property name="position-z" value="-32"/>
+ <property name="lifetime" value="80"/>
+ <property name="fade-out" value="50" />
+ <property name="gravity" value="-0.02" />
+
+ <animation imageset="graphics/particles/emotes/surprise.png" width="30" height="32">
+ <frame index="0" />
+ </animation>
+ <property name="follow-parent" />
+ </emitter>
+ </particle>
+</effect>
diff --git a/example/graphics/particles/emotes/emote-tongue.particle.xml b/example/graphics/particles/emotes/emote-tongue.particle.xml
new file mode 100644
index 0000000..2796ac6
--- /dev/null
+++ b/example/graphics/particles/emotes/emote-tongue.particle.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<effect>
+ <particle
+ position-x = "0"
+ position-y = "0"
+ position-z = "96"
+ lifetime = "1"
+ >
+ <emitter>
+ <property name="position-x" value="0"/>
+ <property name="position-y" value="0"/>
+ <property name="position-z" value="-32"/>
+ <property name="lifetime" value="80"/>
+ <property name="fade-out" value="50" />
+ <property name="gravity" value="-0.02" />
+
+ <animation imageset="graphics/particles/emotes/tongue.png" width="30" height="32">
+ <frame index="0" />
+ </animation>
+ <property name="follow-parent" />
+ </emitter>
+ </particle>
+</effect>
diff --git a/example/graphics/particles/emotes/emote-upset.particle.xml b/example/graphics/particles/emotes/emote-upset.particle.xml
new file mode 100644
index 0000000..4b10d9f
--- /dev/null
+++ b/example/graphics/particles/emotes/emote-upset.particle.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<effect>
+ <particle
+ position-x = "0"
+ position-y = "0"
+ position-z = "96"
+ lifetime = "1"
+ >
+ <emitter>
+ <property name="position-x" value="0"/>
+ <property name="position-y" value="0"/>
+ <property name="position-z" value="-32"/>
+ <property name="lifetime" value="80"/>
+ <property name="fade-out" value="50" />
+ <property name="gravity" value="-0.02" />
+
+ <animation imageset="graphics/particles/emotes/upset.png" width="30" height="32">
+ <frame index="0" />
+ </animation>
+ <property name="follow-parent" />
+ </emitter>
+ </particle>
+</effect>
diff --git a/example/graphics/particles/emotes/emote-wink.particle.xml b/example/graphics/particles/emotes/emote-wink.particle.xml
new file mode 100644
index 0000000..b217a64
--- /dev/null
+++ b/example/graphics/particles/emotes/emote-wink.particle.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<effect>
+ <particle
+ position-x = "0"
+ position-y = "0"
+ position-z = "96"
+ lifetime = "1"
+ >
+ <emitter>
+ <property name="position-x" value="0"/>
+ <property name="position-y" value="0"/>
+ <property name="position-z" value="-32"/>
+ <property name="lifetime" value="80"/>
+ <property name="fade-out" value="50" />
+ <property name="gravity" value="-0.02" />
+
+ <animation imageset="graphics/particles/emotes/wink.png" width="30" height="32">
+ <frame index="0" />
+ </animation>
+ <property name="follow-parent" />
+ </emitter>
+ </particle>
+</effect>
diff --git a/example/graphics/particles/emotes/evil.png b/example/graphics/particles/emotes/evil.png
new file mode 100644
index 0000000..7c417ec
--- /dev/null
+++ b/example/graphics/particles/emotes/evil.png
Binary files differ
diff --git a/example/graphics/particles/emotes/grin.png b/example/graphics/particles/emotes/grin.png
new file mode 100644
index 0000000..0c21cfe
--- /dev/null
+++ b/example/graphics/particles/emotes/grin.png
Binary files differ
diff --git a/example/graphics/particles/emotes/happy.png b/example/graphics/particles/emotes/happy.png
new file mode 100644
index 0000000..8ca2930
--- /dev/null
+++ b/example/graphics/particles/emotes/happy.png
Binary files differ
diff --git a/example/graphics/particles/emotes/perturbed.png b/example/graphics/particles/emotes/perturbed.png
new file mode 100644
index 0000000..0a33e0a
--- /dev/null
+++ b/example/graphics/particles/emotes/perturbed.png
Binary files differ
diff --git a/example/graphics/particles/emotes/sad.png b/example/graphics/particles/emotes/sad.png
new file mode 100644
index 0000000..3ceb3ca
--- /dev/null
+++ b/example/graphics/particles/emotes/sad.png
Binary files differ
diff --git a/example/graphics/particles/emotes/speech.png b/example/graphics/particles/emotes/speech.png
new file mode 100644
index 0000000..7204471
--- /dev/null
+++ b/example/graphics/particles/emotes/speech.png
Binary files differ
diff --git a/example/graphics/particles/emotes/surprise.png b/example/graphics/particles/emotes/surprise.png
new file mode 100644
index 0000000..e1649a6
--- /dev/null
+++ b/example/graphics/particles/emotes/surprise.png
Binary files differ
diff --git a/example/graphics/particles/emotes/tongue.png b/example/graphics/particles/emotes/tongue.png
new file mode 100644
index 0000000..0d5bc95
--- /dev/null
+++ b/example/graphics/particles/emotes/tongue.png
Binary files differ
diff --git a/example/graphics/particles/emotes/upset.png b/example/graphics/particles/emotes/upset.png
new file mode 100644
index 0000000..b2f0ce2
--- /dev/null
+++ b/example/graphics/particles/emotes/upset.png
Binary files differ
diff --git a/example/graphics/particles/emotes/wink.png b/example/graphics/particles/emotes/wink.png
new file mode 100644
index 0000000..13488bb
--- /dev/null
+++ b/example/graphics/particles/emotes/wink.png
Binary files differ
diff --git a/example/graphics/particles/fullbubble-16px.png b/example/graphics/particles/fullbubble-16px.png
new file mode 100644
index 0000000..93e3b57
--- /dev/null
+++ b/example/graphics/particles/fullbubble-16px.png
Binary files differ
diff --git a/example/graphics/particles/green-bubbles.particle.xml b/example/graphics/particles/green-bubbles.particle.xml
new file mode 100644
index 0000000..e272d85
--- /dev/null
+++ b/example/graphics/particles/green-bubbles.particle.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<!--
+Green poison bubbles
+-->
+<effect>
+ <particle
+ position-x = "0"
+ position-y = "0"
+ position-z = "0"
+ >
+ <emitter>
+ <property name="position-z" value="90" />
+ <property name="position-y" min="-8" max="8"/>
+ <property name="vertical-angle" min="0" max="90"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="power" min="4" max="15"/>
+ <property name="lifetime" value="1"/>
+ <property name="output" value="1"/>
+ <emitter>
+ <property name="gravity" value="-0.1"/>
+ <property name="momentum" value="0.9"/>
+ <animation imageset="graphics/particles/fullbubble-16px.png|W:#80ff80,40a020" width="16" height="16">
+ <frame index="0" delay="80" />
+ <frame index="1" delay="80" />
+ <frame index="2" delay="80" />
+ <frame index="3" delay="80" />
+ <frame index="4" delay="80" />
+ <frame index="5" delay="30" />
+ <frame index="6" delay="20" />
+ <frame index="7" delay="-1" />
+ </animation>
+ <property name="lifetime" value="45"/>
+ <property name="fade-in" value="0"/>
+ <property name="fade-out" value="10"/>
+ <property name="output" min="0" max="1"/>
+ <property name="output-pause" min="30" max="80"/>
+ </emitter>
+ </emitter>
+ </particle>
+</effect>
diff --git a/example/graphics/particles/hit.particle.xml b/example/graphics/particles/hit.particle.xml
new file mode 100644
index 0000000..c5c295f
--- /dev/null
+++ b/example/graphics/particles/hit.particle.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+
+<!--
+An explosion of white particles.
+-->
+
+<effect>
+ <particle
+ position-x = "0"
+ position-y = "0"
+ position-z = "16"
+ lifetime = "1"
+ >
+ <emitter>
+ <property name="position-x" min="-8" max="8"/>
+ <property name="position-y" min="-8" max="8"/>
+ <property name="vertical-angle" min="45" max="90"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="power" min="0" max="6"/>
+ <property name="gravity" value="0.1"/>
+ <property name="image" value="graphics/particles/orb-small.png"/>
+ <property name="lifetime" min="0" max="80"/>
+ <property name="output" min="6" max="12"/>
+ </emitter>
+ <emitter>
+ <property name="position-x" min="-8" max="8"/>
+ <property name="position-y" min="-8" max="8"/>
+ <property name="vertical-angle" min="45" max="90"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="power" min="0" max="6"/>
+ <property name="gravity" value="0.1"/>
+ <property name="image" value="graphics/particles/star-small.png|W:#ffffff,ffffff"/>
+ <property name="lifetime" min="0" max="80"/>
+ <property name="output" min="6" max="12"/>
+ </emitter>
+ <emitter>
+ <property name="position-x" min="-8" max="8"/>
+ <property name="position-y" min="-8" max="8"/>
+ <property name="vertical-angle" min="45" max="90"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="power" min="0" max="6"/>
+ <property name="gravity" value="0.1"/>
+ <property name="image" value="graphics/particles/orb-medium.png"/>
+ <property name="lifetime" min="0" max="80"/>
+ <property name="output" min="6" max="12"/>
+ </emitter>
+ <emitter>
+ <property name="position-x" min="-8" max="8"/>
+ <property name="position-y" min="-8" max="8"/>
+ <property name="vertical-angle" min="45" max="90"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="power" min="0" max="6"/>
+ <property name="gravity" value="0.1"/>
+ <property name="image" value="graphics/particles/star-medium.png|W:#ffffff,ffffff"/>
+ <property name="lifetime" min="0" max="80"/>
+ <property name="output" min="3" max="6"/>
+ </emitter>
+ </particle>
+</effect> \ No newline at end of file
diff --git a/example/graphics/particles/levelup.particle.xml b/example/graphics/particles/levelup.particle.xml
new file mode 100644
index 0000000..0c80626
--- /dev/null
+++ b/example/graphics/particles/levelup.particle.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<!--
+Red stars which are supposed to engulf a character
+-->
+<effect>
+ <particle
+ position-x = "0"
+ position-y = "0"
+ position-z = "0"
+ lifetime = "128"
+ >
+ <emitter>
+ <property name="image" value="graphics/particles/star-medium.png|W:#ff0000,ffffff"/>
+ <property name="vertical-angle" value="90"/>
+ <property name="power" value="2"/>
+ <property name="lifetime" value="36"/>
+ <property name="output" min="-5" max="1"/>
+ <property name="position-x" min="-16" max="16"/>
+ <property name="position-y" min="-16" max="16"/>
+ <property name="position-z" min="0" max="32"/>
+ </emitter>
+ </particle>
+</effect> \ No newline at end of file
diff --git a/example/graphics/particles/magic.white.xml b/example/graphics/particles/magic.white.xml
new file mode 100644
index 0000000..5304b77
--- /dev/null
+++ b/example/graphics/particles/magic.white.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+
+<effect>
+ <particle
+ position-x = "0"
+ position-y = "0"
+ position-z = "0"
+ lifetime = "128"
+ >
+ <emitter>
+ <animation imageset="graphics/particles/sparkle.png|W:#e0e0e0,ffffff" width="15" height="15">
+ <sequence start="0" end="3" delay="50" />
+ <frame index="0" delay="100" />
+ </animation>
+ <property name="vertical-angle" value="90"/>
+ <property name="power" min="1" max="1"/>
+ <property name="lifetime" min="15" max="25"/>
+ <property name="output" min="1" max="1"/>
+ <property name="position-x" min="-16" max="16"/>
+ <property name="position-y" min="-16" max="16"/>
+ <property name="position-z" min="29" max="40"/>
+ </emitter>
+ </particle>
+</effect>
diff --git a/example/graphics/particles/orb-medium.png b/example/graphics/particles/orb-medium.png
new file mode 100644
index 0000000..eb896c8
--- /dev/null
+++ b/example/graphics/particles/orb-medium.png
Binary files differ
diff --git a/example/graphics/particles/orb-small.png b/example/graphics/particles/orb-small.png
new file mode 100644
index 0000000..47cf957
--- /dev/null
+++ b/example/graphics/particles/orb-small.png
Binary files differ
diff --git a/example/graphics/particles/skillup.particle.xml b/example/graphics/particles/skillup.particle.xml
new file mode 100644
index 0000000..91d79e7
--- /dev/null
+++ b/example/graphics/particles/skillup.particle.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<!--
+Green stars which are supposed to engulf a character
+-->
+<effect>
+ <particle
+ position-x = "0"
+ position-y = "0"
+ position-z = "0"
+ lifetime = "128"
+ >
+ <emitter>
+ <property name="image" value="graphics/particles/star-medium.png|W:#00ff00,ffffff"/>
+ <property name="vertical-angle" value="90"/>
+ <property name="power" value="2"/>
+ <property name="lifetime" value="36"/>
+ <property name="output" min="-5" max="1"/>
+ <property name="position-x" min="-16" max="16"/>
+ <property name="position-y" min="-16" max="16"/>
+ <property name="position-z" min="0" max="32"/>
+ </emitter>
+ </particle>
+</effect> \ No newline at end of file
diff --git a/example/graphics/particles/sparkle.png b/example/graphics/particles/sparkle.png
new file mode 100644
index 0000000..7cfbbb2
--- /dev/null
+++ b/example/graphics/particles/sparkle.png
Binary files differ
diff --git a/example/graphics/particles/star-medium.png b/example/graphics/particles/star-medium.png
new file mode 100644
index 0000000..667d233
--- /dev/null
+++ b/example/graphics/particles/star-medium.png
Binary files differ
diff --git a/example/graphics/particles/star-small.png b/example/graphics/particles/star-small.png
new file mode 100644
index 0000000..4c3bf36
--- /dev/null
+++ b/example/graphics/particles/star-small.png
Binary files differ
diff --git a/example/graphics/particles/warparea.particle.xml b/example/graphics/particles/warparea.particle.xml
new file mode 100644
index 0000000..f498423
--- /dev/null
+++ b/example/graphics/particles/warparea.particle.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<!--
+Fancy fireworks effect which fills the whole screen.
+-->
+<effect>
+ <particle
+ position-x = "0"
+ position-y = "0"
+ position-z = "1"
+ size-adjustable = "true"
+ >
+ <emitter>
+ <property name="position-x" min="0" max="32"/>
+ <property name="position-y" min="0" max="48"/>
+ <property name="image" value="graphics/particles/star-small.png"/>
+ <property name="gravity" value="-0.003"/>
+ <property name="lifetime" value="90"/>
+ <property name="output" min="0" max="1"/>
+ <property name="output-pause" min="0" max="10"/>
+ <property name="fade-in" value="30"/>
+ <property name="fade-out" value="30"/>
+ </emitter>
+ </particle>
+</effect> \ No newline at end of file
diff --git a/example/graphics/skills/axe.png b/example/graphics/skills/axe.png
new file mode 100644
index 0000000..b2af034
--- /dev/null
+++ b/example/graphics/skills/axe.png
Binary files differ
diff --git a/example/graphics/skills/bow.png b/example/graphics/skills/bow.png
new file mode 100644
index 0000000..78c4319
--- /dev/null
+++ b/example/graphics/skills/bow.png
Binary files differ
diff --git a/example/graphics/skills/knife.png b/example/graphics/skills/knife.png
new file mode 100644
index 0000000..61f834c
--- /dev/null
+++ b/example/graphics/skills/knife.png
Binary files differ
diff --git a/example/graphics/skills/mace.png b/example/graphics/skills/mace.png
new file mode 100644
index 0000000..7958d32
--- /dev/null
+++ b/example/graphics/skills/mace.png
Binary files differ
diff --git a/example/graphics/skills/magic.png b/example/graphics/skills/magic.png
new file mode 100644
index 0000000..9201d68
--- /dev/null
+++ b/example/graphics/skills/magic.png
Binary files differ
diff --git a/example/graphics/skills/polearm.png b/example/graphics/skills/polearm.png
new file mode 100644
index 0000000..52c8449
--- /dev/null
+++ b/example/graphics/skills/polearm.png
Binary files differ
diff --git a/example/graphics/skills/shooting.png b/example/graphics/skills/shooting.png
new file mode 100644
index 0000000..e7b0806
--- /dev/null
+++ b/example/graphics/skills/shooting.png
Binary files differ
diff --git a/example/graphics/skills/staff.png b/example/graphics/skills/staff.png
new file mode 100644
index 0000000..e5c071e
--- /dev/null
+++ b/example/graphics/skills/staff.png
Binary files differ
diff --git a/example/graphics/skills/sword.png b/example/graphics/skills/sword.png
new file mode 100644
index 0000000..9b6db91
--- /dev/null
+++ b/example/graphics/skills/sword.png
Binary files differ
diff --git a/example/graphics/skills/thrown.png b/example/graphics/skills/thrown.png
new file mode 100644
index 0000000..3fc35de
--- /dev/null
+++ b/example/graphics/skills/thrown.png
Binary files differ
diff --git a/example/graphics/skills/unarmed.png b/example/graphics/skills/unarmed.png
new file mode 100644
index 0000000..adb139e
--- /dev/null
+++ b/example/graphics/skills/unarmed.png
Binary files differ
diff --git a/example/graphics/skills/unknown.png b/example/graphics/skills/unknown.png
new file mode 100644
index 0000000..9201d68
--- /dev/null
+++ b/example/graphics/skills/unknown.png
Binary files differ
diff --git a/example/graphics/skills/whip.png b/example/graphics/skills/whip.png
new file mode 100644
index 0000000..e5734e5
--- /dev/null
+++ b/example/graphics/skills/whip.png
Binary files differ
diff --git a/example/graphics/sprites/equipment/chest/chest-leather-female.png b/example/graphics/sprites/equipment/chest/chest-leather-female.png
new file mode 100644
index 0000000..a6efbf9
--- /dev/null
+++ b/example/graphics/sprites/equipment/chest/chest-leather-female.png
Binary files differ
diff --git a/example/graphics/sprites/equipment/chest/chest-leather-female.xml b/example/graphics/sprites/equipment/chest/chest-leather-female.xml
new file mode 100644
index 0000000..b44be8a
--- /dev/null
+++ b/example/graphics/sprites/equipment/chest/chest-leather-female.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0"?>
+<sprite name="player" action="stand">
+
+ <imageset name="base" src="graphics/sprites/equipment/chest/chest-leather-female.png|W;R" width="64" height="64" />
+
+ <action name="stand" imageset="base">
+ <animation direction="down">
+ <frame index="0" />
+ </animation>
+ <animation direction="left">
+ <frame index="18" />
+ </animation>
+ <animation direction="up">
+ <frame index="36" />
+ </animation>
+ <animation direction="right">
+ <frame index="54" />
+ </animation>
+ </action>
+
+ <action name="walk" imageset="base">
+ <animation direction="down">
+ <sequence start="1" end="6" delay="75" />
+ </animation>
+ <animation direction="left">
+ <sequence start="19" end="24" delay="75" />
+ </animation>
+ <animation direction="up">
+ <sequence start="37" end="42" delay="75" />
+ </animation>
+ <animation direction="right">
+ <sequence start="55" end="60" delay="75" />
+ </animation>
+ </action>
+
+ <action name="sit" imageset="base">
+ <animation direction="down">
+ <frame index="7" />
+ </animation>
+ <animation direction="left">
+ <frame index="25" />
+ </animation>
+ <animation direction="up">
+ <frame index="43" />
+ </animation>
+ <animation direction="right">
+ <frame index="61" />
+ </animation>
+ </action>
+
+ <action name="dead" imageset="base">
+ <animation direction="down">
+ <frame index="8" />
+ </animation>
+ <animation direction="left">
+ <frame index="26" />
+ </animation>
+ <animation direction="up">
+ <frame index="44" />
+ </animation>
+ <animation direction="right">
+ <frame index="62" />
+ </animation>
+ </action>
+
+ <action name="attack" imageset="base">
+ <animation direction="down">
+ <sequence start="9" end="12" delay="75" />
+ <end />
+ </animation>
+ <animation direction="left">
+ <sequence start="27" end="30" delay="75" />
+ <end />
+ </animation>
+ <animation direction="up">
+ <sequence start="45" end="48" delay="75" />
+ <end />
+ </animation>
+ <animation direction="right">
+ <sequence start="63" end="66" delay="75" />
+ <end />
+ </animation>
+ </action>
+
+ <action name="attack_bow" imageset="base">
+ <animation direction="down">
+ <sequence start="13" end="17" delay="75" />
+ <end />
+ </animation>
+ <animation direction="left">
+ <sequence start="31" end="35" delay="75" />
+ <end />
+ </animation>
+ <animation direction="up">
+ <sequence start="49" end="53" delay="75" />
+ <end />
+ </animation>
+ <animation direction="right">
+ <sequence start="67" end="71" delay="75" />
+ <end />
+ </animation>
+ </action>
+
+</sprite> \ No newline at end of file
diff --git a/example/graphics/sprites/equipment/chest/chest-leather-male.png b/example/graphics/sprites/equipment/chest/chest-leather-male.png
new file mode 100644
index 0000000..bc5a3c6
--- /dev/null
+++ b/example/graphics/sprites/equipment/chest/chest-leather-male.png
Binary files differ
diff --git a/example/graphics/sprites/equipment/chest/chest-leather-male.xml b/example/graphics/sprites/equipment/chest/chest-leather-male.xml
new file mode 100644
index 0000000..fd46be2
--- /dev/null
+++ b/example/graphics/sprites/equipment/chest/chest-leather-male.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0"?>
+<sprite name="player" action="stand">
+
+ <imageset name="base" src="graphics/sprites/equipment/chest/chest-leather-male.png|W;R" width="64" height="64" />
+
+ <action name="stand" imageset="base">
+ <animation direction="down">
+ <frame index="0" />
+ </animation>
+ <animation direction="left">
+ <frame index="18" />
+ </animation>
+ <animation direction="up">
+ <frame index="36" />
+ </animation>
+ <animation direction="right">
+ <frame index="54" />
+ </animation>
+ </action>
+
+ <action name="walk" imageset="base">
+ <animation direction="down">
+ <sequence start="1" end="6" delay="75" />
+ </animation>
+ <animation direction="left">
+ <sequence start="19" end="24" delay="75" />
+ </animation>
+ <animation direction="up">
+ <sequence start="37" end="42" delay="75" />
+ </animation>
+ <animation direction="right">
+ <sequence start="55" end="60" delay="75" />
+ </animation>
+ </action>
+
+ <action name="sit" imageset="base">
+ <animation direction="down">
+ <frame index="7" />
+ </animation>
+ <animation direction="left">
+ <frame index="25" />
+ </animation>
+ <animation direction="up">
+ <frame index="43" />
+ </animation>
+ <animation direction="right">
+ <frame index="61" />
+ </animation>
+ </action>
+
+ <action name="dead" imageset="base">
+ <animation direction="down">
+ <frame index="8" />
+ </animation>
+ <animation direction="left">
+ <frame index="26" />
+ </animation>
+ <animation direction="up">
+ <frame index="44" />
+ </animation>
+ <animation direction="right">
+ <frame index="62" />
+ </animation>
+ </action>
+
+ <action name="attack" imageset="base">
+ <animation direction="down">
+ <sequence start="9" end="12" delay="75" />
+ <end />
+ </animation>
+ <animation direction="left">
+ <sequence start="27" end="30" delay="75" />
+ <end />
+ </animation>
+ <animation direction="up">
+ <sequence start="45" end="48" delay="75" />
+ <end />
+ </animation>
+ <animation direction="right">
+ <sequence start="63" end="66" delay="75" />
+ <end />
+ </animation>
+ </action>
+
+ <action name="attack_bow" imageset="base">
+ <animation direction="down">
+ <sequence start="13" end="17" delay="75" />
+ <end />
+ </animation>
+ <animation direction="left">
+ <sequence start="31" end="35" delay="75" />
+ <end />
+ </animation>
+ <animation direction="up">
+ <sequence start="49" end="53" delay="75" />
+ <end />
+ </animation>
+ <animation direction="right">
+ <sequence start="67" end="71" delay="75" />
+ <end />
+ </animation>
+ </action>
+
+</sprite> \ No newline at end of file
diff --git a/example/graphics/sprites/equipment/feet/boots-female.png b/example/graphics/sprites/equipment/feet/boots-female.png
new file mode 100644
index 0000000..ba98432
--- /dev/null
+++ b/example/graphics/sprites/equipment/feet/boots-female.png
Binary files differ
diff --git a/example/graphics/sprites/equipment/feet/boots-female.xml b/example/graphics/sprites/equipment/feet/boots-female.xml
new file mode 100644
index 0000000..4bb2fff
--- /dev/null
+++ b/example/graphics/sprites/equipment/feet/boots-female.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<sprite name="player" action="stand">
+
+ <imageset name="base" src="graphics/sprites/equipment/feet/boots-female.png|W" width="64" height="64" />
+
+ <include file="equipment/feet/boots-male.xml"/>
+
+</sprite>
diff --git a/example/graphics/sprites/equipment/feet/boots-male.png b/example/graphics/sprites/equipment/feet/boots-male.png
new file mode 100644
index 0000000..f441c5b
--- /dev/null
+++ b/example/graphics/sprites/equipment/feet/boots-male.png
Binary files differ
diff --git a/example/graphics/sprites/equipment/feet/boots-male.xml b/example/graphics/sprites/equipment/feet/boots-male.xml
new file mode 100644
index 0000000..7edbcef
--- /dev/null
+++ b/example/graphics/sprites/equipment/feet/boots-male.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0"?>
+<sprite name="player" action="stand">
+
+ <imageset name="base" src="graphics/sprites/equipment/feet/boots-male.png|W" width="64" height="64" />
+
+ <action name="stand" imageset="base">
+ <animation direction="down">
+ <frame index="0" />
+ </animation>
+ <animation direction="left">
+ <frame index="18" />
+ </animation>
+ <animation direction="up">
+ <frame index="36" />
+ </animation>
+ <animation direction="right">
+ <frame index="54" />
+ </animation>
+ </action>
+
+ <action name="walk" imageset="base">
+ <animation direction="down">
+ <sequence start="1" end="6" delay="75" />
+ </animation>
+ <animation direction="left">
+ <sequence start="19" end="24" delay="75" />
+ </animation>
+ <animation direction="up">
+ <sequence start="37" end="42" delay="75" />
+ </animation>
+ <animation direction="right">
+ <sequence start="55" end="60" delay="75" />
+ </animation>
+ </action>
+
+ <action name="sit" imageset="base">
+ <animation direction="down">
+ <frame index="7" />
+ </animation>
+ <animation direction="left">
+ <frame index="25" />
+ </animation>
+ <animation direction="up">
+ <frame index="43" />
+ </animation>
+ <animation direction="right">
+ <frame index="61" />
+ </animation>
+ </action>
+
+ <action name="dead" imageset="base">
+ <animation direction="down">
+ <frame index="8" />
+ </animation>
+ <animation direction="left">
+ <frame index="26" />
+ </animation>
+ <animation direction="up">
+ <frame index="44" />
+ </animation>
+ <animation direction="right">
+ <frame index="62" />
+ </animation>
+ </action>
+
+ <action name="attack" imageset="base">
+ <animation direction="down">
+ <sequence start="9" end="12" delay="75" />
+ <end />
+ </animation>
+ <animation direction="left">
+ <sequence start="27" end="30" delay="75" />
+ <end />
+ </animation>
+ <animation direction="up">
+ <sequence start="45" end="48" delay="75" />
+ <end />
+ </animation>
+ <animation direction="right">
+ <sequence start="63" end="66" delay="75" />
+ <end />
+ </animation>
+ </action>
+
+ <action name="attack_bow" imageset="base">
+ <animation direction="down">
+ <sequence start="13" end="17" delay="75" />
+ <end />
+ </animation>
+ <animation direction="left">
+ <sequence start="31" end="35" delay="75" />
+ <end />
+ </animation>
+ <animation direction="up">
+ <sequence start="49" end="53" delay="75" />
+ <end />
+ </animation>
+ <animation direction="right">
+ <sequence start="67" end="71" delay="75" />
+ <end />
+ </animation>
+ </action>
+
+</sprite>
diff --git a/example/graphics/sprites/equipment/legs/pants-female.png b/example/graphics/sprites/equipment/legs/pants-female.png
new file mode 100644
index 0000000..ad8c2e0
--- /dev/null
+++ b/example/graphics/sprites/equipment/legs/pants-female.png
Binary files differ
diff --git a/example/graphics/sprites/equipment/legs/pants-female.xml b/example/graphics/sprites/equipment/legs/pants-female.xml
new file mode 100644
index 0000000..4f5dbcd
--- /dev/null
+++ b/example/graphics/sprites/equipment/legs/pants-female.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0"?>
+<sprite name="player" action="stand">
+
+ <imageset name="base" src="graphics/sprites/equipment/legs/pants-female.png" width="64" height="64" />
+
+ <action name="stand" imageset="base">
+ <animation direction="down">
+ <frame index="0" />
+ </animation>
+ <animation direction="left">
+ <frame index="18" />
+ </animation>
+ <animation direction="up">
+ <frame index="36" />
+ </animation>
+ <animation direction="right">
+ <frame index="54" />
+ </animation>
+ </action>
+
+ <action name="walk" imageset="base">
+ <animation direction="down">
+ <sequence start="1" end="6" delay="75" />
+ </animation>
+ <animation direction="left">
+ <sequence start="19" end="24" delay="75" />
+ </animation>
+ <animation direction="up">
+ <sequence start="37" end="42" delay="75" />
+ </animation>
+ <animation direction="right">
+ <sequence start="55" end="60" delay="75" />
+ </animation>
+ </action>
+
+ <action name="sit" imageset="base">
+ <animation direction="down">
+ <frame index="7" />
+ </animation>
+ <animation direction="left">
+ <frame index="25" />
+ </animation>
+ <animation direction="up">
+ <frame index="43" />
+ </animation>
+ <animation direction="right">
+ <frame index="61" />
+ </animation>
+ </action>
+
+ <action name="dead" imageset="base">
+ <animation direction="down">
+ <frame index="8" />
+ </animation>
+ <animation direction="left">
+ <frame index="26" />
+ </animation>
+ <animation direction="up">
+ <frame index="44" />
+ </animation>
+ <animation direction="right">
+ <frame index="62" />
+ </animation>
+ </action>
+
+ <action name="attack" imageset="base">
+ <animation direction="down">
+ <sequence start="9" end="12" delay="75" />
+ <end />
+ </animation>
+ <animation direction="left">
+ <sequence start="27" end="30" delay="75" />
+ <end />
+ </animation>
+ <animation direction="up">
+ <sequence start="45" end="48" delay="75" />
+ <end />
+ </animation>
+ <animation direction="right">
+ <sequence start="63" end="66" delay="75" />
+ <end />
+ </animation>
+ </action>
+
+ <action name="attack_bow" imageset="base">
+ <animation direction="down">
+ <sequence start="13" end="17" delay="75" />
+ <end />
+ </animation>
+ <animation direction="left">
+ <sequence start="31" end="35" delay="75" />
+ <end />
+ </animation>
+ <animation direction="up">
+ <sequence start="49" end="53" delay="75" />
+ <end />
+ </animation>
+ <animation direction="right">
+ <sequence start="67" end="71" delay="75" />
+ <end />
+ </animation>
+ </action>
+
+</sprite>
diff --git a/example/graphics/sprites/equipment/legs/pants-male.png b/example/graphics/sprites/equipment/legs/pants-male.png
new file mode 100644
index 0000000..f841575
--- /dev/null
+++ b/example/graphics/sprites/equipment/legs/pants-male.png
Binary files differ
diff --git a/example/graphics/sprites/equipment/legs/pants-male.xml b/example/graphics/sprites/equipment/legs/pants-male.xml
new file mode 100644
index 0000000..3a90c6a
--- /dev/null
+++ b/example/graphics/sprites/equipment/legs/pants-male.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0"?>
+<sprite name="player" action="stand">
+
+ <imageset name="base" src="graphics/sprites/equipment/legs/pants-male.png" width="64" height="64" />
+
+ <action name="stand" imageset="base">
+ <animation direction="down">
+ <frame index="0" />
+ </animation>
+ <animation direction="left">
+ <frame index="18" />
+ </animation>
+ <animation direction="up">
+ <frame index="36" />
+ </animation>
+ <animation direction="right">
+ <frame index="54" />
+ </animation>
+ </action>
+
+ <action name="walk" imageset="base">
+ <animation direction="down">
+ <sequence start="1" end="6" delay="75" />
+ </animation>
+ <animation direction="left">
+ <sequence start="19" end="24" delay="75" />
+ </animation>
+ <animation direction="up">
+ <sequence start="37" end="42" delay="75" />
+ </animation>
+ <animation direction="right">
+ <sequence start="55" end="60" delay="75" />
+ </animation>
+ </action>
+
+ <action name="sit" imageset="base">
+ <animation direction="down">
+ <frame index="7" />
+ </animation>
+ <animation direction="left">
+ <frame index="25" />
+ </animation>
+ <animation direction="up">
+ <frame index="43" />
+ </animation>
+ <animation direction="right">
+ <frame index="61" />
+ </animation>
+ </action>
+
+ <action name="dead" imageset="base">
+ <animation direction="down">
+ <frame index="8" />
+ </animation>
+ <animation direction="left">
+ <frame index="26" />
+ </animation>
+ <animation direction="up">
+ <frame index="44" />
+ </animation>
+ <animation direction="right">
+ <frame index="62" />
+ </animation>
+ </action>
+
+ <action name="attack" imageset="base">
+ <animation direction="down">
+ <sequence start="9" end="12" delay="75" />
+ <end />
+ </animation>
+ <animation direction="left">
+ <sequence start="27" end="30" delay="75" />
+ <end />
+ </animation>
+ <animation direction="up">
+ <sequence start="45" end="48" delay="75" />
+ <end />
+ </animation>
+ <animation direction="right">
+ <sequence start="63" end="66" delay="75" />
+ <end />
+ </animation>
+ </action>
+
+ <action name="attack_bow" imageset="base">
+ <animation direction="down">
+ <sequence start="13" end="17" delay="75" />
+ <end />
+ </animation>
+ <animation direction="left">
+ <sequence start="31" end="35" delay="75" />
+ <end />
+ </animation>
+ <animation direction="up">
+ <sequence start="49" end="53" delay="75" />
+ <end />
+ </animation>
+ <animation direction="right">
+ <sequence start="67" end="71" delay="75" />
+ <end />
+ </animation>
+ </action>
+
+</sprite>
diff --git a/example/graphics/sprites/error.png b/example/graphics/sprites/error.png
new file mode 100644
index 0000000..108ad0e
--- /dev/null
+++ b/example/graphics/sprites/error.png
Binary files differ
diff --git a/example/graphics/sprites/error.xml b/example/graphics/sprites/error.xml
new file mode 100644
index 0000000..3504bd0
--- /dev/null
+++ b/example/graphics/sprites/error.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<sprite>
+ <imageset name="base" src="graphics/sprites/error.png" width="29" height="9" />
+
+ <action name="default" imageset="base">
+ <animation direction="default">
+ <frame index="0" />
+ </animation>
+ </action>
+</sprite> \ No newline at end of file
diff --git a/example/graphics/sprites/icons/icon-feather.png b/example/graphics/sprites/icons/icon-feather.png
new file mode 100644
index 0000000..425fb28
--- /dev/null
+++ b/example/graphics/sprites/icons/icon-feather.png
Binary files differ
diff --git a/example/graphics/sprites/icons/icon-feather.xml b/example/graphics/sprites/icons/icon-feather.xml
new file mode 100644
index 0000000..715a2f8
--- /dev/null
+++ b/example/graphics/sprites/icons/icon-feather.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<sprite>
+ <imageset name="base" src="graphics/sprites/icons/icon-feather.png" width="13" height="20" />
+
+ <action name="default" imageset="base">
+ <animation direction="default">
+ <frame index="0" offsetY="-12" delay="100"/>
+ </animation>
+ </action>
+</sprite>
diff --git a/example/graphics/sprites/icons/icon-poison.png b/example/graphics/sprites/icons/icon-poison.png
new file mode 100644
index 0000000..b7803cd
--- /dev/null
+++ b/example/graphics/sprites/icons/icon-poison.png
Binary files differ
diff --git a/example/graphics/sprites/icons/icon-poison.xml b/example/graphics/sprites/icons/icon-poison.xml
new file mode 100644
index 0000000..0a8f751
--- /dev/null
+++ b/example/graphics/sprites/icons/icon-poison.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<sprite>
+ <imageset name="base" src="graphics/sprites/icons/icon-poison.png" width="12" height="20" />
+
+ <action name="default" imageset="base">
+ <animation direction="default">
+ <frame index="0" offsetY="-12" delay="80"/>
+ <frame index="1" offsetY="-12" delay="80"/>
+ <frame index="2" offsetY="-12" delay="80"/>
+ <frame index="3" offsetY="-12" delay="80"/>
+ <frame index="4" offsetY="-12" delay="80"/>
+ <frame index="5" offsetY="-12" delay="80"/>
+ <frame index="6" offsetY="-12" delay="80"/>
+ <frame index="7" offsetY="-12" delay="80"/>
+ <frame index="8" offsetY="-12" delay="80"/>
+ </animation>
+ </action>
+</sprite>
diff --git a/example/graphics/sprites/monsters/monster-maggot.png b/example/graphics/sprites/monsters/monster-maggot.png
new file mode 100644
index 0000000..64474f9
--- /dev/null
+++ b/example/graphics/sprites/monsters/monster-maggot.png
Binary files differ
diff --git a/example/graphics/sprites/monsters/monster-maggot.xml b/example/graphics/sprites/monsters/monster-maggot.xml
new file mode 100644
index 0000000..f603b8d
--- /dev/null
+++ b/example/graphics/sprites/monsters/monster-maggot.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<sprite>
+
+ <imageset name="base" src="graphics/sprites/monsters/monster-maggot.png" width="20" height="15" />
+
+ <action name="stand" imageset="base">
+ <animation direction="down">
+ <frame index="0" offsetY ="-8" />
+ </animation>
+ <animation direction="left">
+ <frame index="10" offsetY ="-11" />
+ </animation>
+ <animation direction="up">
+ <frame index="20" offsetY ="-10" />
+ </animation>
+ <animation direction="right">
+ <frame index="30" offsetY ="-11" />
+ </animation>
+ </action>
+
+ <action name="walk" imageset="base">
+ <animation direction="down">
+ <sequence start="1" end="4" delay="150" offsetY ="-8" />
+ </animation>
+ <animation direction="left">
+ <sequence start="11" end="14" delay="150" offsetY ="-11" />
+ </animation>
+ <animation direction="up">
+ <sequence start="21" end="24" delay="150" offsetY ="-10" />
+ </animation>
+ <animation direction="right">
+ <sequence start="31" end="34" delay="150" offsetY ="-11" />
+ </animation>
+ </action>
+
+ <action name="dead" imageset="base">
+ <animation direction="down">
+ <frame index="9" offsetY ="-8" />
+ </animation>
+ <animation direction="left" >
+ <frame index="19" offsetY ="-11" />
+ </animation>
+ <animation direction="up">
+ <frame index="29" offsetY ="-10" />
+ </animation>
+ <animation direction="right">
+ <frame index="39" offsetY ="-11" />
+ </animation>
+ </action>
+
+ <action name="attack" imageset="base">
+ <animation direction="down">
+ <sequence start="5" end="8" delay="150" offsetY ="-8" />
+ </animation>
+ <animation direction="left">
+ <sequence start="15" end="18" delay="150" offsetY ="-11" />
+ </animation>
+ <animation direction="up">
+ <sequence start="25" end="28" delay="150" offsetY ="-10" />
+ </animation>
+ <animation direction="right">
+ <sequence start="35" end="38" delay="150" offsetY ="-11" />
+ </animation>
+ </action>
+
+</sprite> \ No newline at end of file
diff --git a/example/graphics/sprites/monsters/monster-scorpion.png b/example/graphics/sprites/monsters/monster-scorpion.png
new file mode 100644
index 0000000..0bd693f
--- /dev/null
+++ b/example/graphics/sprites/monsters/monster-scorpion.png
Binary files differ
diff --git a/example/graphics/sprites/monsters/monster-scorpion.xml b/example/graphics/sprites/monsters/monster-scorpion.xml
new file mode 100644
index 0000000..ab1986a
--- /dev/null
+++ b/example/graphics/sprites/monsters/monster-scorpion.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0"?>
+<sprite>
+
+ <imageset name="base" src="graphics/sprites/monsters/monster-scorpion.png|W" width="48" height="45" />
+
+ <action name="stand" imageset="base">
+ <animation direction="down">
+ <frame index="0" offsetY ="2" />
+ </animation>
+ <animation direction="left">
+ <frame index="10" offsetY ="2" />
+ </animation>
+ <animation direction="up">
+ <frame index="20" offsetX ="-1" offsetY ="3" />
+ </animation>
+ <animation direction="right">
+ <frame index="30" offsetY ="2" />
+ </animation>
+ </action>
+
+ <action name="walk" imageset="base">
+ <animation direction="down">
+ <sequence start="1" end="4" delay="75" offsetY ="2" />
+ </animation>
+ <animation direction="left">
+ <sequence start="11" end="14" delay="75" offsetY ="2" />
+ </animation>
+ <animation direction="up">
+ <sequence start="21" end="24" delay="75" offsetX ="-1" offsetY ="3" />
+ </animation>
+ <animation direction="right">
+ <sequence start="31" end="34" delay="75" offsetY ="2" />
+ </animation>
+ </action>
+
+ <action name="dead" imageset="base">
+ <animation direction="down">
+ <frame index="9" offsetY ="2" />
+ </animation>
+ <animation direction="left">
+ <frame index="19" offsetY ="2" />
+ </animation>
+ <animation direction="up">
+ <frame index="29" offsetX ="-1" offsetY ="3" />
+ </animation>
+ <animation direction="right">
+ <frame index="39" offsetY ="2" />
+ </animation>
+ </action>
+
+ <action name="attack" imageset="base">
+ <animation direction="down">
+ <sequence start="5" end="8" delay="75" offsetY ="2" />
+ <end />
+ </animation>
+ <animation direction="left">
+ <sequence start="15" end="18" delay="75" offsetY ="2" />
+ <end />
+ </animation>
+ <animation direction="up">
+ <sequence start="25" end="28" delay="75" offsetX ="-1" offsetY ="3" />
+ <end />
+ </animation>
+ <animation direction="right">
+ <sequence start="35" end="38" delay="75" offsetY ="2" />
+ <end />
+ </animation>
+ </action>
+
+</sprite>
diff --git a/example/graphics/sprites/monsters/monster-slime.png b/example/graphics/sprites/monsters/monster-slime.png
new file mode 100644
index 0000000..ab14bbb
--- /dev/null
+++ b/example/graphics/sprites/monsters/monster-slime.png
Binary files differ
diff --git a/example/graphics/sprites/monsters/monster-slime.xml b/example/graphics/sprites/monsters/monster-slime.xml
new file mode 100644
index 0000000..220a8e2
--- /dev/null
+++ b/example/graphics/sprites/monsters/monster-slime.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<sprite>
+
+ <imageset name="base" src="graphics/sprites/monsters/monster-slime.png|W" width="52" height="24" />
+
+ <action name="stand" imageset="base">
+ <animation>
+ <frame index="0" offsetY="-4" />
+ </animation>
+ </action>
+
+ <action name="walk" imageset="base">
+ <animation direction="down">
+ <sequence start="0" end="3" delay="200" offsetY="-4" />
+ </animation>
+ <animation direction="left">
+ <frame index="0" delay="200" offsetY="-4" />
+ <sequence start="10" end="12" delay="200" offsetY="-4" />
+ </animation>
+ <animation direction="up">
+ <frame index="0" delay="200" offsetY="-4" />
+ <sequence start="19" end="21" delay="200" offsetY="-4" />
+ </animation>
+ <animation direction="right">
+ <frame index="0" delay="200" offsetY="-4" />
+ <sequence start="28" end="30" delay="200" offsetY="-4" />
+ </animation>
+ </action>
+
+ <action name="dead" imageset="base">
+ <animation>
+ <frame index="8" offsetY="-4" />
+ </animation>
+ </action>
+
+ <action name="attack" imageset="base">
+ <animation direction="down">
+ <sequence start="4" end="7" delay="100" offsetY="-4" />
+ <end />
+ </animation>
+ <animation direction="left">
+ <sequence start="4" end="7" delay="100" offsetY="-4" />
+ <end />
+ </animation>
+ <animation direction="up">
+ <sequence start="22" end="25" delay="100" offsetY="-4" />
+ <end />
+ </animation>
+ <animation direction="right">
+ <sequence start="22" end="25" delay="100" offsetY="-4" />
+ <end />
+ </animation>
+ </action>
+
+</sprite>
diff --git a/example/graphics/sprites/npcs/static-npcs.png b/example/graphics/sprites/npcs/static-npcs.png
new file mode 100644
index 0000000..812c88d
--- /dev/null
+++ b/example/graphics/sprites/npcs/static-npcs.png
Binary files differ
diff --git a/example/graphics/sprites/npcs/static-npcs.xml b/example/graphics/sprites/npcs/static-npcs.xml
new file mode 100644
index 0000000..2cb4d08
--- /dev/null
+++ b/example/graphics/sprites/npcs/static-npcs.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<sprite variants="100" variant_offset="1">
+ <imageset name="base" src="graphics/sprites/npcs/static-npcs.png" width="50" height="80" />
+
+ <action name="stand" imageset="base">
+ <animation direction="default">
+ <frame index="0" />
+ </animation>
+ </action>
+</sprite> \ No newline at end of file
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle0.xml b/example/graphics/sprites/races/humans/hairstyles/hairstyle0.xml
new file mode 100644
index 0000000..5f06bb2
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle0.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<sprite>
+ <!--
+ This is the bald hairstyle, hence it should need no imageset and no actions.
+ -->
+</sprite>
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle1.png b/example/graphics/sprites/races/humans/hairstyles/hairstyle1.png
new file mode 100644
index 0000000..6bb2657
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle1.png
Binary files differ
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle1.xml b/example/graphics/sprites/races/humans/hairstyles/hairstyle1.xml
new file mode 100644
index 0000000..44b1d4e
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle1.xml
@@ -0,0 +1,143 @@
+<?xml version="1.0"?>
+<sprite>
+
+ <imageset name="base" src="graphics/sprites/races/humans/hairstyles/hairstyle1.png|M" width="40" height="40" />
+
+ <action name="stand" imageset="base">
+ <animation direction="down">
+ <frame index="0" offsetX="0" offsetY ="-29" />
+ </animation>
+ <animation direction="left">
+ <frame index="1" offsetX="0" offsetY ="-29"/>
+ </animation>
+ <animation direction="up">
+ <frame index="2" offsetX="-1" offsetY ="-25"/>
+ </animation>
+ <animation direction="right">
+ <frame index="3" offsetX="0" offsetY ="-29"/>
+ </animation>
+ </action>
+
+ <action name="walk" imageset="base">
+ <animation direction="down">
+ <frame index="0" offsetX="0" offsetY ="-28" delay="75"/>
+ <frame index="0" offsetX="0" offsetY ="-29" delay="75" />
+ <frame index="0" offsetX="0" offsetY ="-29" delay="75" />
+ <frame index="0" offsetX="0" offsetY ="-28" delay="75" />
+ <frame index="0" offsetX="0" offsetY ="-29" delay="75" />
+ <frame index="0" offsetX="0" offsetY ="-29" delay="75" />
+ </animation>
+ <animation direction="left">
+ <frame index="1" offsetX="0" offsetY ="-29" delay="75"/>
+ <frame index="1" offsetX="0" offsetY ="-28" delay="75"/>
+ <frame index="1" offsetX="0" offsetY ="-29" delay="75"/>
+ <frame index="1" offsetX="0" offsetY ="-29" delay="75"/>
+ <frame index="1" offsetX="0" offsetY ="-28" delay="75"/>
+ <frame index="1" offsetX="0" offsetY ="-29" delay="75"/>
+ </animation>
+ <animation direction="up">
+ <frame index="2" offsetX="-1" offsetY ="-25" delay="75"/>
+ <frame index="2" offsetX="-1" offsetY ="-26" delay="75"/>
+ <frame index="2" offsetX="-1" offsetY ="-26" delay="75"/>
+ <frame index="2" offsetX="-1" offsetY ="-25" delay="75"/>
+ <frame index="2" offsetX="-1" offsetY ="-26" delay="75"/>
+ <frame index="2" offsetX="-1" offsetY ="-26" delay="75"/>
+ </animation>
+ <animation direction="right">
+ <frame index="3" offsetX="0" offsetY ="-29" delay="75"/>
+ <frame index="3" offsetX="0" offsetY ="-28" delay="75"/>
+ <frame index="3" offsetX="0" offsetY ="-29" delay="75"/>
+ <frame index="3" offsetX="0" offsetY ="-29" delay="75"/>
+ <frame index="3" offsetX="0" offsetY ="-28" delay="75"/>
+ <frame index="3" offsetX="0" offsetY ="-29" delay="75"/>
+ </animation>
+ </action>
+
+ <action name="attack" imageset="base">
+ <animation direction="down">
+ <frame index="0" offsetX="0" offsetY ="-27" delay="75" />
+ <frame index="0" offsetX="0" offsetY ="-28" delay="75" />
+ <frame index="0" offsetX="0" offsetY ="-25" delay="75" />
+ <frame index="0" offsetX="0" offsetY ="-24" delay="75" />
+ <end />
+ </animation>
+ <animation direction="left">
+ <frame index="1" offsetX="4" offsetY ="-30" delay="75" />
+ <frame index="1" offsetX="4" offsetY ="-31" delay="75" />
+ <frame index="1" offsetX="0" offsetY ="-28" delay="75" />
+ <frame index="1" offsetX="-1" offsetY ="-27" delay="75" />
+ <end />
+ </animation>
+ <animation direction="up">
+ <frame index="2" offsetX="-2" offsetY ="-25" delay="75"/>
+ <frame index="2" offsetX="-2" offsetY ="-25" delay="75"/>
+ <frame index="2" offsetX="-2" offsetY ="-25" delay="75"/>
+ <frame index="2" offsetX="-2" offsetY ="-23" delay="75"/>
+ <end />
+ </animation>
+ <animation direction="right">
+ <frame index="3" offsetX="-3" offsetY ="-30" delay="75"/>
+ <frame index="3" offsetX="-3" offsetY ="-31" delay="75"/>
+ <frame index="3" offsetX="0" offsetY ="-28" delay="75"/>
+ <frame index="3" offsetX="1" offsetY ="-27" delay="75"/>
+ <end />
+ </animation>
+ </action>
+
+ <action name="attack_bow" imageset="base">
+ <animation direction="down">
+ <frame index="0" offsetX="0" offsetY ="-28" delay="75" />
+ <frame index="0" offsetX="0" offsetY ="-28" delay="75" />
+ <frame index="0" offsetX="0" offsetY ="-28" delay="75" />
+ <frame index="0" offsetX="0" offsetY ="-27" delay="75" />
+ <frame index="0" offsetX="0" offsetY ="-28" delay="75" />
+ <end />
+ </animation>
+ <animation direction="left">
+ <frame index="1" offsetX="3" offsetY ="-29" delay="75" />
+ <frame index="1" offsetX="3" offsetY ="-29" delay="75" />
+ <frame index="1" offsetX="3" offsetY ="-29" delay="75" />
+ <frame index="1" offsetX="5" offsetY ="-30" delay="75" />
+ <frame index="1" offsetX="5" offsetY ="-30" delay="75" />
+ <end />
+ </animation>
+ <animation direction="up">
+ <frame index="2" offsetX="-1" offsetY ="-25" delay="75"/>
+ <frame index="2" offsetX="-1" offsetY ="-25" delay="75"/>
+ <frame index="2" offsetX="-2" offsetY ="-25" delay="75"/>
+ <frame index="2" offsetX="-2" offsetY ="-24" delay="75"/>
+ <frame index="2" offsetX="-2" offsetY ="-25" delay="75"/>
+ <end />
+ </animation>
+ <animation direction="right">
+ <frame index="3" offsetX="-3" offsetY ="-29" delay="75"/>
+ <frame index="3" offsetX="-3" offsetY ="-29" delay="75"/>
+ <frame index="3" offsetX="-3" offsetY ="-29" delay="75"/>
+ <frame index="3" offsetX="-5" offsetY ="-30" delay="75"/>
+ <frame index="3" offsetX="-5" offsetY ="-30" delay="75"/>
+ <end />
+ </animation>
+ </action>
+
+ <action name="sit" imageset="base">
+ <animation direction="down">
+ <frame index="0" offsetX="0" offsetY ="-17" />
+ </animation>
+ <animation direction="left">
+ <frame index="1" offsetX="4" offsetY ="-20"/>
+ </animation>
+ <animation direction="up">
+ <frame index="2" offsetX="0" offsetY ="-17"/>
+ </animation>
+ <animation direction="right">
+ <frame index="3" offsetX="-6" offsetY ="-20"/>
+ </animation>
+ </action>
+
+ <action name="dead" imageset="base">
+ <animation direction="default">
+ <frame index="4" offsetX="21" offsetY="-4"/>
+ </animation>
+ </action>
+
+</sprite>
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle10.png b/example/graphics/sprites/races/humans/hairstyles/hairstyle10.png
new file mode 100644
index 0000000..d52924b
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle10.png
Binary files differ
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle10.xml b/example/graphics/sprites/races/humans/hairstyles/hairstyle10.xml
new file mode 100644
index 0000000..6460d09
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle10.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<sprite>
+
+ <imageset name="base" src="graphics/sprites/races/humans/hairstyles/hairstyle10.png|W" width="40" height="40" />
+
+ <include file="races/humans/hairstyles/hairstyle1.xml"/>
+
+</sprite>
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle11.png b/example/graphics/sprites/races/humans/hairstyles/hairstyle11.png
new file mode 100644
index 0000000..284772d
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle11.png
Binary files differ
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle11.xml b/example/graphics/sprites/races/humans/hairstyles/hairstyle11.xml
new file mode 100644
index 0000000..dc73a46
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle11.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<sprite>
+
+ <imageset name="base" src="graphics/sprites/races/humans/hairstyles/hairstyle11.png|W" width="40" height="40" />
+
+ <include file="races/humans/hairstyles/hairstyle1.xml"/>
+
+</sprite>
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle12.png b/example/graphics/sprites/races/humans/hairstyles/hairstyle12.png
new file mode 100644
index 0000000..0309637
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle12.png
Binary files differ
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle12.xml b/example/graphics/sprites/races/humans/hairstyles/hairstyle12.xml
new file mode 100644
index 0000000..f4bea1f
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle12.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<sprite>
+
+ <imageset name="base" src="graphics/sprites/races/humans/hairstyles/hairstyle12.png|W" width="40" height="40" />
+
+ <include file="races/humans/hairstyles/hairstyle1.xml"/>
+
+</sprite>
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle13.png b/example/graphics/sprites/races/humans/hairstyles/hairstyle13.png
new file mode 100644
index 0000000..0421089
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle13.png
Binary files differ
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle13.xml b/example/graphics/sprites/races/humans/hairstyles/hairstyle13.xml
new file mode 100644
index 0000000..56caee0
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle13.xml
@@ -0,0 +1,143 @@
+<?xml version="1.0"?>
+<sprite>
+
+ <imageset name="base" src="graphics/sprites/races/humans/hairstyles/hairstyle13.png|W" width="32" height="32" />
+
+ <action name="stand" imageset="base">
+ <animation direction="down">
+ <frame index="0" offsetX="3" offsetY ="-33" />
+ </animation>
+ <animation direction="left">
+ <frame index="3" offsetX="3" offsetY ="-33"/>
+ </animation>
+ <animation direction="up">
+ <frame index="6" offsetX="3" offsetY ="-33"/>
+ </animation>
+ <animation direction="right">
+ <frame index="9" offsetX="3" offsetY ="-33"/>
+ </animation>
+ </action>
+
+ <action name="walk" imageset="base">
+ <animation direction="down">
+ <frame index="0" offsetX="3" offsetY ="-32" delay="75"/>
+ <frame index="1" offsetX="3" offsetY ="-33" delay="75" />
+ <frame index="1" offsetX="3" offsetY ="-33" delay="75" />
+ <frame index="0" offsetX="3" offsetY ="-32" delay="75" />
+ <frame index="2" offsetX="3" offsetY ="-33" delay="75" />
+ <frame index="2" offsetX="3" offsetY ="-33" delay="75" />
+ </animation>
+ <animation direction="left">
+ <frame index="3" offsetX="3" offsetY ="-33" delay="75"/>
+ <frame index="4" offsetX="3" offsetY ="-32" delay="75"/>
+ <frame index="4" offsetX="3" offsetY ="-33" delay="75"/>
+ <frame index="3" offsetX="3" offsetY ="-33" delay="75"/>
+ <frame index="5" offsetX="3" offsetY ="-32" delay="75"/>
+ <frame index="5" offsetX="3" offsetY ="-33" delay="75"/>
+ </animation>
+ <animation direction="up">
+ <frame index="6" offsetX="3" offsetY ="-33" delay="75"/>
+ <frame index="7" offsetX="3" offsetY ="-34" delay="75"/>
+ <frame index="7" offsetX="3" offsetY ="-34" delay="75"/>
+ <frame index="6" offsetX="3" offsetY ="-33" delay="75"/>
+ <frame index="8" offsetX="3" offsetY ="-34" delay="75"/>
+ <frame index="8" offsetX="3" offsetY ="-34" delay="75"/>
+ </animation>
+ <animation direction="right">
+ <frame index="9" offsetX="3" offsetY ="-33" delay="75"/>
+ <frame index="10" offsetX="3" offsetY ="-32" delay="75"/>
+ <frame index="10" offsetX="3" offsetY ="-33" delay="75"/>
+ <frame index="9" offsetX="3" offsetY ="-33" delay="75"/>
+ <frame index="11" offsetX="3" offsetY ="-32" delay="75"/>
+ <frame index="11" offsetX="3" offsetY ="-33" delay="75"/>
+ </animation>
+ </action>
+
+ <action name="attack" imageset="base">
+ <animation direction="down">
+ <frame index="0" offsetX="3" offsetY ="-30" delay="75" />
+ <frame index="0" offsetX="3" offsetY ="-31" delay="75" />
+ <frame index="0" offsetX="3" offsetY ="-28" delay="75" />
+ <frame index="0" offsetX="3" offsetY ="-27" delay="75" />
+ <end />
+ </animation>
+ <animation direction="left">
+ <frame index="3" offsetX="7" offsetY ="-34" delay="75" />
+ <frame index="3" offsetX="7" offsetY ="-35" delay="75" />
+ <frame index="3" offsetX="3" offsetY ="-32" delay="75" />
+ <frame index="3" offsetX="2" offsetY ="-31" delay="75" />
+ <end />
+ </animation>
+ <animation direction="up">
+ <frame index="6" offsetX="2" offsetY ="-33" delay="75"/>
+ <frame index="6" offsetX="2" offsetY ="-33" delay="75"/>
+ <frame index="6" offsetX="2" offsetY ="-33" delay="75"/>
+ <frame index="6" offsetX="2" offsetY ="-31" delay="75"/>
+ <end />
+ </animation>
+ <animation direction="right">
+ <frame index="9" offsetX="0" offsetY ="-34" delay="75"/>
+ <frame index="9" offsetX="0" offsetY ="-35" delay="75"/>
+ <frame index="9" offsetX="3" offsetY ="-32" delay="75"/>
+ <frame index="9" offsetX="4" offsetY ="-31" delay="75"/>
+ <end />
+ </animation>
+ </action>
+
+ <action name="attack_bow" imageset="base">
+ <animation direction="down">
+ <frame index="0" offsetX="3" offsetY ="-32" delay="75" />
+ <frame index="0" offsetX="3" offsetY ="-32" delay="75" />
+ <frame index="0" offsetX="3" offsetY ="-32" delay="75" />
+ <frame index="0" offsetX="3" offsetY ="-31" delay="75" />
+ <frame index="0" offsetX="3" offsetY ="-32" delay="75" />
+ <end />
+ </animation>
+ <animation direction="left">
+ <frame index="3" offsetX="6" offsetY ="-33" delay="75" />
+ <frame index="3" offsetX="6" offsetY ="-33" delay="75" />
+ <frame index="3" offsetX="6" offsetY ="-33" delay="75" />
+ <frame index="3" offsetX="8" offsetY ="-34" delay="75" />
+ <frame index="3" offsetX="8" offsetY ="-34" delay="75" />
+ <end />
+ </animation>
+ <animation direction="up">
+ <frame index="6" offsetX="3" offsetY ="-33" delay="75"/>
+ <frame index="6" offsetX="3" offsetY ="-33" delay="75"/>
+ <frame index="6" offsetX="2" offsetY ="-33" delay="75"/>
+ <frame index="6" offsetX="2" offsetY ="-32" delay="75"/>
+ <frame index="6" offsetX="2" offsetY ="-33" delay="75"/>
+ <end />
+ </animation>
+ <animation direction="right">
+ <frame index="9" offsetX="0" offsetY ="-33" delay="75"/>
+ <frame index="9" offsetX="0" offsetY ="-33" delay="75"/>
+ <frame index="9" offsetX="0" offsetY ="-33" delay="75"/>
+ <frame index="9" offsetX="-2" offsetY ="-34" delay="75"/>
+ <frame index="9" offsetX="-2" offsetY ="-34" delay="75"/>
+ <end />
+ </animation>
+ </action>
+
+ <action name="sit" imageset="base">
+ <animation direction="down">
+ <frame index="0" offsetX="3" offsetY ="-21" />
+ </animation>
+ <animation direction="left">
+ <frame index="3" offsetX="7" offsetY ="-24"/>
+ </animation>
+ <animation direction="up">
+ <frame index="6" offsetX="4" offsetY ="-25"/>
+ </animation>
+ <animation direction="right">
+ <frame index="9" offsetX="-3" offsetY ="-24"/>
+ </animation>
+ </action>
+
+ <action name="dead" imageset="base">
+ <animation direction="default">
+ <frame index="12" offsetX="23" offsetY="-8"/>
+ </animation>
+ </action>
+
+</sprite>
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle14.png b/example/graphics/sprites/races/humans/hairstyles/hairstyle14.png
new file mode 100644
index 0000000..7b4cddd
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle14.png
Binary files differ
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle14.xml b/example/graphics/sprites/races/humans/hairstyles/hairstyle14.xml
new file mode 100644
index 0000000..bc329d0
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle14.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<sprite>
+
+ <imageset name="base" src="graphics/sprites/races/humans/hairstyles/hairstyle14.png|W" width="40" height="40" />
+
+ <include file="races/humans/hairstyles/hairstyle1.xml"/>
+
+</sprite>
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle15.png b/example/graphics/sprites/races/humans/hairstyles/hairstyle15.png
new file mode 100644
index 0000000..cd77639
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle15.png
Binary files differ
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle15.xml b/example/graphics/sprites/races/humans/hairstyles/hairstyle15.xml
new file mode 100644
index 0000000..0ce52c6
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle15.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<sprite>
+
+ <imageset name="base" src="graphics/sprites/races/humans/hairstyles/hairstyle15.png|W" width="40" height="40" />
+
+ <include file="races/humans/hairstyles/hairstyle1.xml"/>
+
+</sprite>
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle16.png b/example/graphics/sprites/races/humans/hairstyles/hairstyle16.png
new file mode 100644
index 0000000..fc13907
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle16.png
Binary files differ
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle16.xml b/example/graphics/sprites/races/humans/hairstyles/hairstyle16.xml
new file mode 100644
index 0000000..9ce2d53
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle16.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<sprite>
+
+ <imageset name="base" src="graphics/sprites/races/humans/hairstyles/hairstyle16.png|W" width="40" height="40" />
+
+ <include file="races/humans/hairstyles/hairstyle1.xml"/>
+
+</sprite>
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle2.png b/example/graphics/sprites/races/humans/hairstyles/hairstyle2.png
new file mode 100644
index 0000000..f80ad78
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle2.png
Binary files differ
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle2.xml b/example/graphics/sprites/races/humans/hairstyles/hairstyle2.xml
new file mode 100644
index 0000000..c2caf49
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle2.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<sprite>
+
+ <imageset name="base" src="graphics/sprites/races/humans/hairstyles/hairstyle2.png|W" width="40" height="40" />
+
+ <include file="races/humans/hairstyles/hairstyle1.xml"/>
+
+</sprite>
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle3.png b/example/graphics/sprites/races/humans/hairstyles/hairstyle3.png
new file mode 100644
index 0000000..b04df51
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle3.png
Binary files differ
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle3.xml b/example/graphics/sprites/races/humans/hairstyles/hairstyle3.xml
new file mode 100644
index 0000000..f0f0bcd
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle3.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<sprite>
+
+ <imageset name="base" src="graphics/sprites/races/humans/hairstyles/hairstyle3.png|W" width="40" height="40" />
+
+ <include file="races/humans/hairstyles/hairstyle1.xml"/>
+
+</sprite>
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle4.png b/example/graphics/sprites/races/humans/hairstyles/hairstyle4.png
new file mode 100644
index 0000000..b004080
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle4.png
Binary files differ
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle4.xml b/example/graphics/sprites/races/humans/hairstyles/hairstyle4.xml
new file mode 100644
index 0000000..7943d68
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle4.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<sprite>
+
+ <imageset name="base" src="graphics/sprites/races/humans/hairstyles/hairstyle4.png|W" width="40" height="40" />
+
+ <include file="races/humans/hairstyles/hairstyle1.xml"/>
+
+</sprite>
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle5.png b/example/graphics/sprites/races/humans/hairstyles/hairstyle5.png
new file mode 100644
index 0000000..d034fe6
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle5.png
Binary files differ
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle5.xml b/example/graphics/sprites/races/humans/hairstyles/hairstyle5.xml
new file mode 100644
index 0000000..5a02327
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle5.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<sprite>
+
+ <imageset name="base" src="graphics/sprites/races/humans/hairstyles/hairstyle5.png|W" width="40" height="40" />
+
+ <include file="races/humans/hairstyles/hairstyle1.xml"/>
+
+</sprite>
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle6.png b/example/graphics/sprites/races/humans/hairstyles/hairstyle6.png
new file mode 100644
index 0000000..b871025
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle6.png
Binary files differ
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle6.xml b/example/graphics/sprites/races/humans/hairstyles/hairstyle6.xml
new file mode 100644
index 0000000..0ad652c
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle6.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<sprite>
+
+ <imageset name="base" src="graphics/sprites/races/humans/hairstyles/hairstyle6.png|W" width="40" height="40" />
+
+ <include file="races/humans/hairstyles/hairstyle1.xml"/>
+
+</sprite>
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle7.png b/example/graphics/sprites/races/humans/hairstyles/hairstyle7.png
new file mode 100644
index 0000000..c3a27dd
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle7.png
Binary files differ
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle7.xml b/example/graphics/sprites/races/humans/hairstyles/hairstyle7.xml
new file mode 100644
index 0000000..aa385f7
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle7.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<sprite>
+
+ <imageset name="base" src="graphics/sprites/races/humans/hairstyles/hairstyle7.png|W" width="40" height="40" />
+
+ <include file="races/humans/hairstyles/hairstyle1.xml"/>
+
+</sprite>
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle8.png b/example/graphics/sprites/races/humans/hairstyles/hairstyle8.png
new file mode 100644
index 0000000..3c81a1a
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle8.png
Binary files differ
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle8.xml b/example/graphics/sprites/races/humans/hairstyles/hairstyle8.xml
new file mode 100644
index 0000000..c2be3b0
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle8.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<sprite>
+
+ <imageset name="base" src="graphics/sprites/races/humans/hairstyles/hairstyle8.png|W" width="40" height="40" />
+
+ <include file="races/humans/hairstyles/hairstyle1.xml"/>
+
+</sprite>
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle9.png b/example/graphics/sprites/races/humans/hairstyles/hairstyle9.png
new file mode 100644
index 0000000..01bc360
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle9.png
Binary files differ
diff --git a/example/graphics/sprites/races/humans/hairstyles/hairstyle9.xml b/example/graphics/sprites/races/humans/hairstyles/hairstyle9.xml
new file mode 100644
index 0000000..787df6d
--- /dev/null
+++ b/example/graphics/sprites/races/humans/hairstyles/hairstyle9.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<sprite>
+
+ <imageset name="base" src="graphics/sprites/races/humans/hairstyles/hairstyle9.png|W" width="40" height="40" />
+
+ <include file="races/humans/hairstyles/hairstyle1.xml"/>
+
+</sprite>
diff --git a/example/graphics/sprites/races/humans/human_female_base.png b/example/graphics/sprites/races/humans/human_female_base.png
new file mode 100644
index 0000000..c4c0a80
--- /dev/null
+++ b/example/graphics/sprites/races/humans/human_female_base.png
Binary files differ
diff --git a/example/graphics/sprites/races/humans/human_female_base.xml b/example/graphics/sprites/races/humans/human_female_base.xml
new file mode 100644
index 0000000..1d0ffea
--- /dev/null
+++ b/example/graphics/sprites/races/humans/human_female_base.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0"?>
+<sprite name="player" action="stand">
+
+ <imageset name="base" src="graphics/sprites/races/humans/human_female_base.png" width="64" height="64" />
+
+ <action name="stand" imageset="base">
+ <animation direction="down">
+ <frame index="0" />
+ </animation>
+ <animation direction="left">
+ <frame index="18" />
+ </animation>
+ <animation direction="up">
+ <frame index="36" />
+ </animation>
+ <animation direction="right">
+ <frame index="54" />
+ </animation>
+ </action>
+
+ <action name="walk" imageset="base">
+ <animation direction="down">
+ <sequence start="1" end="6" delay="75" />
+ </animation>
+ <animation direction="left">
+ <sequence start="19" end="24" delay="75" />
+ </animation>
+ <animation direction="up">
+ <sequence start="37" end="42" delay="75" />
+ </animation>
+ <animation direction="right">
+ <sequence start="55" end="60" delay="75" />
+ </animation>
+ </action>
+
+ <action name="sit" imageset="base">
+ <animation direction="down">
+ <frame index="7" />
+ </animation>
+ <animation direction="left">
+ <frame index="25" />
+ </animation>
+ <animation direction="up">
+ <frame index="43" />
+ </animation>
+ <animation direction="right">
+ <frame index="61" />
+ </animation>
+ </action>
+
+ <action name="dead" imageset="base">
+ <animation direction="down">
+ <frame index="8" />
+ </animation>
+ <animation direction="left">
+ <frame index="26" />
+ </animation>
+ <animation direction="up">
+ <frame index="44" />
+ </animation>
+ <animation direction="right">
+ <frame index="62" />
+ </animation>
+ </action>
+
+ <action name="attack" imageset="base">
+ <animation direction="down">
+ <sequence start="9" end="12" delay="75" />
+ <end />
+ </animation>
+ <animation direction="left">
+ <sequence start="27" end="30" delay="75" />
+ <end />
+ </animation>
+ <animation direction="up">
+ <sequence start="45" end="48" delay="75" />
+ <end />
+ </animation>
+ <animation direction="right">
+ <sequence start="63" end="66" delay="75" />
+ <end />
+ </animation>
+ </action>
+
+ <action name="attack_bow" imageset="base">
+ <animation direction="down">
+ <sequence start="13" end="17" delay="75" />
+ <end />
+ </animation>
+ <animation direction="left">
+ <sequence start="31" end="35" delay="75" />
+ <end />
+ </animation>
+ <animation direction="up">
+ <sequence start="49" end="53" delay="75" />
+ <end />
+ </animation>
+ <animation direction="right">
+ <sequence start="67" end="71" delay="75" />
+ <end />
+ </animation>
+ </action>
+
+</sprite> \ No newline at end of file
diff --git a/example/graphics/sprites/races/humans/human_male_base.png b/example/graphics/sprites/races/humans/human_male_base.png
new file mode 100644
index 0000000..72b9b37
--- /dev/null
+++ b/example/graphics/sprites/races/humans/human_male_base.png
Binary files differ
diff --git a/example/graphics/sprites/races/humans/human_male_base.xml b/example/graphics/sprites/races/humans/human_male_base.xml
new file mode 100644
index 0000000..fe495dd
--- /dev/null
+++ b/example/graphics/sprites/races/humans/human_male_base.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0"?>
+<sprite name="player" action="stand">
+
+ <imageset name="base"
+ src= "graphics/sprites/races/humans/human_male_base.png"
+ width= "64"
+ height= "64"
+ />
+
+ <action name = "stand"
+ imageset = "base"
+ >
+ <animation direction="down">
+ <frame index="0" />
+ </animation>
+ <animation direction="left">
+ <frame index="18" />
+ </animation>
+ <animation direction="up">
+ <frame index="36" />
+ </animation>
+ <animation direction="right">
+ <frame index="54" />
+ </animation>
+ </action>
+
+ <action name="walk" imageset="base">
+ <animation direction="down">
+ <sequence start="1" end="6" delay="75" />
+ </animation>
+ <animation direction="left">
+ <sequence start="19" end="24" delay="75" />
+ </animation>
+ <animation direction="up">
+ <sequence start="37" end="42" delay="75" />
+ </animation>
+ <animation direction="right">
+ <sequence start="55" end="60" delay="75" />
+ </animation>
+ </action>
+
+ <action name="sit" imageset="base">
+ <animation direction="down">
+ <frame index="7" />
+ </animation>
+ <animation direction="left">
+ <frame index="25" />
+ </animation>
+ <animation direction="up">
+ <frame index="43" />
+ </animation>
+ <animation direction="right">
+ <frame index="61" />
+ </animation>
+ </action>
+
+ <action name="dead" imageset="base">
+ <animation direction="down">
+ <frame index="8" />
+ </animation>
+ <animation direction="left">
+ <frame index="26" />
+ </animation>
+ <animation direction="up">
+ <frame index="44" />
+ </animation>
+ <animation direction="right">
+ <frame index="62" />
+ </animation>
+ </action>
+
+ <action name="attack" imageset="base">
+ <animation direction="down">
+ <sequence start="9" end="12" delay="75" />
+ <end />
+ </animation>
+ <animation direction="left">
+ <sequence start="27" end="30" delay="75" />
+ <end />
+ </animation>
+ <animation direction="up">
+ <sequence start="45" end="48" delay="75" />
+ <end />
+ </animation>
+ <animation direction="right">
+ <sequence start="63" end="66" delay="75" />
+ <end />
+ </animation>
+ </action>
+
+ <action name="attack_bow" imageset="base">
+ <animation direction="down">
+ <sequence start="13" end="17" delay="75" />
+ <end />
+ </animation>
+ <animation direction="left">
+ <sequence start="31" end="35" delay="75" />
+ <end />
+ </animation>
+ <animation direction="up">
+ <sequence start="49" end="53" delay="75" />
+ <end />
+ </animation>
+ <animation direction="right">
+ <sequence start="67" end="71" delay="75" />
+ <end />
+ </animation>
+ </action>
+
+</sprite> \ No newline at end of file
diff --git a/example/graphics/sprites/weapons/weapon-bow.png b/example/graphics/sprites/weapons/weapon-bow.png
new file mode 100644
index 0000000..b5f8a68
--- /dev/null
+++ b/example/graphics/sprites/weapons/weapon-bow.png
Binary files differ
diff --git a/example/graphics/sprites/weapons/weapon-bow.xml b/example/graphics/sprites/weapons/weapon-bow.xml
new file mode 100644
index 0000000..7580776
--- /dev/null
+++ b/example/graphics/sprites/weapons/weapon-bow.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<sprite name="player" action="stand">
+ <imageset name="bow" src="graphics/sprites/weapons/weapon-bow.png" width="64" height="64" />
+
+ <action name="default" imageset="bow">
+ </action>
+
+ <action name="attack_bow" imageset="bow">
+ <animation direction="down">
+ <sequence start="0" end="4" delay="75" />
+ <end />
+ </animation>
+ <animation direction="left">
+ <sequence start="5" end="9" delay="75" />
+ <end />
+ </animation>
+ <animation direction="up">
+ <sequence start="10" end="14" delay="75" />
+ <end />
+ </animation>
+ <animation direction="right">
+ <sequence start="15" end="19" delay="75" />
+ <end />
+ </animation>
+ </action>
+</sprite> \ No newline at end of file
diff --git a/example/graphics/sprites/weapons/weapon-dagger.xml b/example/graphics/sprites/weapons/weapon-dagger.xml
new file mode 100644
index 0000000..1909aff
--- /dev/null
+++ b/example/graphics/sprites/weapons/weapon-dagger.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<sprite name="player" action="stand">
+ <imageset name="dagger" src="graphics/sprites/weapons/weapon-sword.png" width="64" height="64" />
+
+ <action name="default" imageset="dagger">
+ </action>
+
+ <action name="attack_stab" imageset="dagger">
+ <animation direction="down">
+ <sequence start="0" end="3" delay="75" />
+ <end />
+ </animation>
+ <animation direction="left">
+ <sequence start="4" end="7" delay="75" />
+ <end />
+ </animation>
+ <animation direction="up">
+ <sequence start="8" end="11" delay="75" />
+ <end />
+ </animation>
+ <animation direction="right">
+ <sequence start="12" end="15" delay="75" />
+ <end />
+ </animation>
+ </action>
+
+</sprite> \ No newline at end of file
diff --git a/example/graphics/sprites/weapons/weapon-fist.xml b/example/graphics/sprites/weapons/weapon-fist.xml
new file mode 100644
index 0000000..324dfd5
--- /dev/null
+++ b/example/graphics/sprites/weapons/weapon-fist.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<sprite name="player" action="stand">
+ <imageset name="dagger" src="graphics/sprites/weapon-sword.png" width="64" height="64" />
+
+ <action name="default" imageset="dagger">
+ </action>
+</sprite> \ No newline at end of file
diff --git a/example/graphics/sprites/weapons/weapon-sword.png b/example/graphics/sprites/weapons/weapon-sword.png
new file mode 100644
index 0000000..f691ef3
--- /dev/null
+++ b/example/graphics/sprites/weapons/weapon-sword.png
Binary files differ
diff --git a/example/graphics/sprites/weapons/weapon-sword.xml b/example/graphics/sprites/weapons/weapon-sword.xml
new file mode 100644
index 0000000..1909aff
--- /dev/null
+++ b/example/graphics/sprites/weapons/weapon-sword.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<sprite name="player" action="stand">
+ <imageset name="dagger" src="graphics/sprites/weapons/weapon-sword.png" width="64" height="64" />
+
+ <action name="default" imageset="dagger">
+ </action>
+
+ <action name="attack_stab" imageset="dagger">
+ <animation direction="down">
+ <sequence start="0" end="3" delay="75" />
+ <end />
+ </animation>
+ <animation direction="left">
+ <sequence start="4" end="7" delay="75" />
+ <end />
+ </animation>
+ <animation direction="up">
+ <sequence start="8" end="11" delay="75" />
+ <end />
+ </animation>
+ <animation direction="right">
+ <sequence start="12" end="15" delay="75" />
+ <end />
+ </animation>
+ </action>
+
+</sprite> \ No newline at end of file