summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWombat <hpwombat@yahoo.com>2010-11-04 12:29:44 -0400
committerWombat <hpwombat@yahoo.com>2010-11-04 12:29:44 -0400
commit565ce52e4c21c2b747dac1889d2459abc94707cf (patch)
tree81e25ccdc4928d35b18a88bee86c5ccd6c823ba2
parent8612f6a1b39e41df9badea138db0ce3a13d8eed5 (diff)
downloadclientdata-565ce52e4c21c2b747dac1889d2459abc94707cf.tar.gz
clientdata-565ce52e4c21c2b747dac1889d2459abc94707cf.tar.bz2
clientdata-565ce52e4c21c2b747dac1889d2459abc94707cf.tar.xz
clientdata-565ce52e4c21c2b747dac1889d2459abc94707cf.zip
emotes are particles
-rw-r--r--19812451669
1 files changed, 1669 insertions, 0 deletions
diff --git a/1981245 b/1981245
new file mode 100644
index 00000000..88e6f62f
--- /dev/null
+++ b/1981245
@@ -0,0 +1,1669 @@
+From aa35a64c623ddbb0dfb31a615ae32fe65f0df181 Mon Sep 17 00:00:00 2001
+From: Chuck Miller <shadowmil@gmail.com>
+Date: Wed, 3 Nov 2010 23:41:42 -0400
+Subject: [PATCH] Update emotes to be used by the particle system
+
+---
+ effects.xml | 28 ++--
+ emotes.xml | 130 +++++++++++++++++--
+ graphics/particles/emote-angel.particle.xml | 22 ----
+ graphics/particles/emote-blah.particle.xml | 22 ----
+ graphics/particles/emote-blush.particle.xml | 22 ----
+ graphics/particles/emote-disgust.particle.xml | 22 ----
+ graphics/particles/emote-evil.particle.xml | 22 ----
+ graphics/particles/emote-grin.particle.xml | 22 ----
+ graphics/particles/emote-happy.particle.xml | 22 ----
+ graphics/particles/emote-perturbed.particle.xml | 22 ----
+ graphics/particles/emote-sad.particle.xml | 22 ----
+ graphics/particles/emote-speech.particle.xml | 22 ----
+ graphics/particles/emote-surprise.particle.xml | 22 ----
+ graphics/particles/emote-tongue.particle.xml | 22 ----
+ graphics/particles/emote-upset.particle.xml | 22 ----
+ graphics/particles/emote-wink.particle.xml | 22 ----
+ graphics/particles/emotes/angel.png | Bin 0 -> 1960 bytes
+ graphics/particles/emotes/blah.png | Bin 0 -> 822 bytes
+ graphics/particles/emotes/blush.png | Bin 0 -> 2038 bytes
+ graphics/particles/emotes/disgust.png | Bin 0 -> 1924 bytes
+ graphics/particles/emotes/emote-angel.particle.xml | 23 ++++
+ graphics/particles/emotes/emote-blah.particle.xml | 23 ++++
+ graphics/particles/emotes/emote-blush.particle.xml | 23 ++++
+ .../particles/emotes/emote-disgust.particle.xml | 23 ++++
+ graphics/particles/emotes/emote-evil.particle.xml | 23 ++++
+ graphics/particles/emotes/emote-grin.particle.xml | 23 ++++
+ graphics/particles/emotes/emote-happy.particle.xml | 23 ++++
+ .../particles/emotes/emote-perturbed.particle.xml | 23 ++++
+ graphics/particles/emotes/emote-sad.particle.xml | 23 ++++
+ .../particles/emotes/emote-speech.particle.xml | 23 ++++
+ .../particles/emotes/emote-surprise.particle.xml | 23 ++++
+ .../particles/emotes/emote-tongue.particle.xml | 23 ++++
+ graphics/particles/emotes/emote-upset.particle.xml | 23 ++++
+ graphics/particles/emotes/emote-wink.particle.xml | 23 ++++
+ graphics/particles/emotes/evil.png | Bin 0 -> 1925 bytes
+ graphics/particles/emotes/grin.png | Bin 0 -> 2047 bytes
+ graphics/particles/emotes/happy.png | Bin 0 -> 1734 bytes
+ graphics/particles/emotes/perturbed.png | Bin 0 -> 1763 bytes
+ graphics/particles/emotes/sad.png | Bin 0 -> 1918 bytes
+ graphics/particles/emotes/speech.png | Bin 0 -> 796 bytes
+ graphics/particles/emotes/surprise.png | Bin 0 -> 2086 bytes
+ graphics/particles/emotes/tongue.png | Bin 0 -> 1753 bytes
+ graphics/particles/emotes/upset.png | Bin 0 -> 1632 bytes
+ graphics/particles/emotes/wink.png | Bin 0 -> 1680 bytes
+ 44 files changed, 452 insertions(+), 336 deletions(-)
+ delete mode 100644 graphics/particles/emote-angel.particle.xml
+ delete mode 100644 graphics/particles/emote-blah.particle.xml
+ delete mode 100644 graphics/particles/emote-blush.particle.xml
+ delete mode 100644 graphics/particles/emote-disgust.particle.xml
+ delete mode 100644 graphics/particles/emote-evil.particle.xml
+ delete mode 100644 graphics/particles/emote-grin.particle.xml
+ delete mode 100644 graphics/particles/emote-happy.particle.xml
+ delete mode 100644 graphics/particles/emote-perturbed.particle.xml
+ delete mode 100644 graphics/particles/emote-sad.particle.xml
+ delete mode 100644 graphics/particles/emote-speech.particle.xml
+ delete mode 100644 graphics/particles/emote-surprise.particle.xml
+ delete mode 100644 graphics/particles/emote-tongue.particle.xml
+ delete mode 100644 graphics/particles/emote-upset.particle.xml
+ delete mode 100644 graphics/particles/emote-wink.particle.xml
+ create mode 100644 graphics/particles/emotes/angel.png
+ create mode 100644 graphics/particles/emotes/blah.png
+ create mode 100644 graphics/particles/emotes/blush.png
+ create mode 100644 graphics/particles/emotes/disgust.png
+ create mode 100644 graphics/particles/emotes/emote-angel.particle.xml
+ create mode 100644 graphics/particles/emotes/emote-blah.particle.xml
+ create mode 100644 graphics/particles/emotes/emote-blush.particle.xml
+ create mode 100644 graphics/particles/emotes/emote-disgust.particle.xml
+ create mode 100644 graphics/particles/emotes/emote-evil.particle.xml
+ create mode 100644 graphics/particles/emotes/emote-grin.particle.xml
+ create mode 100644 graphics/particles/emotes/emote-happy.particle.xml
+ create mode 100644 graphics/particles/emotes/emote-perturbed.particle.xml
+ create mode 100644 graphics/particles/emotes/emote-sad.particle.xml
+ create mode 100644 graphics/particles/emotes/emote-speech.particle.xml
+ create mode 100644 graphics/particles/emotes/emote-surprise.particle.xml
+ create mode 100644 graphics/particles/emotes/emote-tongue.particle.xml
+ create mode 100644 graphics/particles/emotes/emote-upset.particle.xml
+ create mode 100644 graphics/particles/emotes/emote-wink.particle.xml
+ create mode 100644 graphics/particles/emotes/evil.png
+ create mode 100644 graphics/particles/emotes/grin.png
+ create mode 100644 graphics/particles/emotes/happy.png
+ create mode 100644 graphics/particles/emotes/perturbed.png
+ create mode 100644 graphics/particles/emotes/sad.png
+ create mode 100644 graphics/particles/emotes/speech.png
+ create mode 100644 graphics/particles/emotes/surprise.png
+ create mode 100644 graphics/particles/emotes/tongue.png
+ create mode 100644 graphics/particles/emotes/upset.png
+ create mode 100644 graphics/particles/emotes/wink.png
+
+diff --git a/effects.xml b/effects.xml
+index e201e91..b7e8e38 100644
+--- a/effects.xml
++++ b/effects.xml
+@@ -37,18 +37,18 @@
+ <!-- <effect id="120" particle="graphics/particles/magic.barrier-ends.xml"/> -->
+
+ <!-- Emotion Effects -->
+- <effect id="10000" particle="graphics/particles/emote-disgust.particle.xml"/>
+- <effect id="10001" particle="graphics/particles/emote-surprise.particle.xml"/>
+- <effect id="10002" particle="graphics/particles/emote-happy.particle.xml"/>
+- <effect id="10003" particle="graphics/particles/emote-sad.particle.xml"/>
+- <effect id="10004" particle="graphics/particles/emote-evil.particle.xml"/>
+- <effect id="10005" particle="graphics/particles/emote-wink.particle.xml"/>
+- <effect id="10006" particle="graphics/particles/emote-angel.particle.xml"/>
+- <effect id="10007" particle="graphics/particles/emote-blush.particle.xml"/>
+- <effect id="10008" particle="graphics/particles/emote-tongue.particle.xml"/>
+- <effect id="10009" particle="graphics/particles/emote-grin.particle.xml"/>
+- <effect id="10010" particle="graphics/particles/emote-upset.particle.xml"/>
+- <effect id="10011" particle="graphics/particles/emote-perturbed.particle.xml"/>
+- <effect id="10012" particle="graphics/particles/emote-speech.particle.xml"/>
+- <effect id="10013" particle="graphics/particles/emote-blah.particle.xml"/>
++ <effect id="10000" particle="graphics/particles/emotes/emote-disgust.particle.xml"/>
++ <effect id="10001" particle="graphics/particles/emotes/emote-surprise.particle.xml"/>
++ <effect id="10002" particle="graphics/particles/emotes/emote-happy.particle.xml"/>
++ <effect id="10003" particle="graphics/particles/emotes/emote-sad.particle.xml"/>
++ <effect id="10004" particle="graphics/particles/emotes/emote-evil.particle.xml"/>
++ <effect id="10005" particle="graphics/particles/emotes/emote-wink.particle.xml"/>
++ <effect id="10006" particle="graphics/particles/emotes/emote-angel.particle.xml"/>
++ <effect id="10007" particle="graphics/particles/emotes/emote-blush.particle.xml"/>
++ <effect id="10008" particle="graphics/particles/emotes/emote-tongue.particle.xml"/>
++ <effect id="10009" particle="graphics/particles/emotes/emote-grin.particle.xml"/>
++ <effect id="10010" particle="graphics/particles/emotes/emote-upset.particle.xml"/>
++ <effect id="10011" particle="graphics/particles/emotes/emote-perturbed.particle.xml"/>
++ <effect id="10012" particle="graphics/particles/emotes/emote-speech.particle.xml"/>
++ <effect id="10013" particle="graphics/particles/emotes/emote-blah.particle.xml"/>
+ </being-effects>
+diff --git a/emotes.xml b/emotes.xml
+index 37fad03..0fbb0a1 100644
+--- a/emotes.xml
++++ b/emotes.xml
+@@ -1,16 +1,118 @@
++<?xml version="1.0"?>
+ <emotes>
+- <emote id="0"><sprite name="Disgust" variant="0">emote.xml</sprite></emote>
+- <emote id="1"><sprite name="Surprise" variant="1">emote.xml</sprite></emote>
+- <emote id="2"><sprite name="Happy" variant="2">emote.xml</sprite></emote>
+- <emote id="3"><sprite name="Sad" variant="3">emote.xml</sprite></emote>
+- <emote id="4"><sprite name="Evil" variant="4">emote.xml</sprite></emote>
+- <emote id="5"><sprite name="Wink" variant="5">emote.xml</sprite></emote>
+- <emote id="6"><sprite name="Angel" variant="6">emote.xml</sprite></emote>
+- <emote id="7"><sprite name="Blush" variant="7">emote.xml</sprite></emote>
+- <emote id="8"><sprite name="Tongue" variant="8">emote.xml</sprite></emote>
+- <emote id="9"><sprite name="Grin" variant="9">emote.xml</sprite></emote>
+- <emote id="10"><sprite name="Upset" variant="10">emote.xml</sprite></emote>
+- <emote id="11"><sprite name="Perturbed" variant="11">emote.xml</sprite></emote>
+- <emote id="12"><sprite name="Speech" variant="14">emote.xml</sprite></emote>
+- <emote id="13"><sprite name="Blah Blah Blah" variant="13">emote.xml</sprite></emote>
++ <!-- Important note that the sprite tags are purely for
++ backwards compatibility -->
++
++ <emote id="0"
++ name="Disgust"
++ effectid="10000"
++ image="graphics/particles/emotes/disgust.png"
++ width="30" height="32">
++ <sprite name="Disgust" variant="0">emote.xml</sprite>
++ </emote>
++
++ <emote id="1"
++ name="Surprise"
++ effectid="10001"
++ image="graphics/particles/emotes/surprise.png"
++ width="30" height="32">
++ <sprite name="Surprise" variant="1">emote.xml</sprite>
++ </emote>
++
++ <emote id="2"
++ name="Happy"
++ effectid="10002"
++ image="graphics/particles/emotes/happy.png"
++ width="30" height="32">
++ <sprite name="Happy" variant="2">emote.xml</sprite>
++ </emote>
++
++ <emote id="3"
++ name="Sad"
++ effectid="10003"
++ image="graphics/particles/emotes/sad.png"
++ width="30" height="32">
++ <sprite name="Sad" variant="3">emote.xml</sprite>
++ </emote>
++
++ <emote id="4"
++ name="Evil"
++ effectid="10004"
++ image="graphics/particles/emotes/evil.png"
++ width="30" height="32">
++ <sprite name="Evil" variant="4">emote.xml</sprite>
++ </emote>
++
++ <emote id="5"
++ name="Wink"
++ effectid="10005"
++ image="graphics/particles/emotes/wink.png"
++ width="30" height="32">
++ <sprite name="Wink" variant="5">emote.xml</sprite>
++ </emote>
++
++ <emote id="6"
++ name="Angel"
++ effectid="10006"
++ image="graphics/particles/emotes/angel.png"
++ width="30" height="32">
++ <sprite name="Angel" variant="6">emote.xml</sprite>
++ </emote>
++
++ <emote id="7"
++ name="Blush"
++ effectid="10007"
++ image="graphics/particles/emotes/blush.png"
++ width="30" height="32">
++ <sprite name="Blush" variant="7">emote.xml</sprite>
++ </emote>
++
++ <emote id="8"
++ name="Tongue"
++ effectid="10008"
++ image="graphics/particles/emotes/tongue.png"
++ width="30" height="32">
++ <sprite name="Tongue" variant="8">emote.xml</sprite>
++ </emote>
++
++ <emote id="9"
++ name="Grin"
++ effectid="10009"
++ image="graphics/particles/emotes/grin.png"
++ width="30" height="32">
++ <sprite name="Grin" variant="9">emote.xml</sprite>
++ </emote>
++
++ <emote id="10"
++ name="Upset"
++ effectid="10010"
++ image="graphics/particles/emotes/upset.png"
++ width="30" height="32">
++ <sprite name="Upset" variant="10">emote.xml</sprite>
++ </emote>
++
++ <emote id="11"
++ name="Perturbed"
++ effectid="10011"
++ image="graphics/particles/emotes/perturbed.png"
++ width="30" height="32">
++ <sprite name="Perturbed" variant="11">emote.xml</sprite>
++ </emote>
++
++ <emote id="12"
++ name="Speech"
++ effectid="10012"
++ image="graphics/particles/emotes/speech.png"
++ width="30" height="32">
++ <sprite name="Speech" variant="14">emote.xml</sprite>
++ </emote>
++
++ <emote id="13"
++ name="Blah"
++ effectid="10013"
++ image="graphics/particles/emotes/blah.png"
++ width="30" height="32">
++ <sprite name="Blah" variant="13">emote.xml</sprite>
++ </emote>
++
+ </emotes>
+diff --git a/graphics/particles/emote-angel.particle.xml b/graphics/particles/emote-angel.particle.xml
+deleted file mode 100644
+index a79d865..0000000
+--- a/graphics/particles/emote-angel.particle.xml
++++ /dev/null
+@@ -1,22 +0,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="360"/>
+- <property name="fade-out" value="20" />
+- <property name="acceleration" value="0.06" />
+- <property name="momentum" value="0.993" />
+- <animation imageset="graphics/sprites/emotions.png" width="30" height="32">
+- <frame index="6" delay="1000"/>
+- </animation>
+- <property name="follow-parent" />
+- </emitter>
+- </particle>
+-</effect>
+diff --git a/graphics/particles/emote-blah.particle.xml b/graphics/particles/emote-blah.particle.xml
+deleted file mode 100644
+index 14a8f1a..0000000
+--- a/graphics/particles/emote-blah.particle.xml
++++ /dev/null
+@@ -1,22 +0,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="360"/>
+- <property name="fade-out" value="20" />
+- <property name="acceleration" value="0.06" />
+- <property name="momentum" value="0.993" />
+- <animation imageset="graphics/sprites/emotions.png" width="30" height="32">
+- <frame index="13" delay="1000"/>
+- </animation>
+- <property name="follow-parent" />
+- </emitter>
+- </particle>
+-</effect>
+diff --git a/graphics/particles/emote-blush.particle.xml b/graphics/particles/emote-blush.particle.xml
+deleted file mode 100644
+index d979c9b..0000000
+--- a/graphics/particles/emote-blush.particle.xml
++++ /dev/null
+@@ -1,22 +0,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="360"/>
+- <property name="fade-out" value="20" />
+- <property name="acceleration" value="0.06" />
+- <property name="momentum" value="0.993" />
+- <animation imageset="graphics/sprites/emotions.png" width="30" height="32">
+- <frame index="7" delay="1000"/>
+- </animation>
+- <property name="follow-parent" />
+- </emitter>
+- </particle>
+-</effect>
+diff --git a/graphics/particles/emote-disgust.particle.xml b/graphics/particles/emote-disgust.particle.xml
+deleted file mode 100644
+index 1596b46..0000000
+--- a/graphics/particles/emote-disgust.particle.xml
++++ /dev/null
+@@ -1,22 +0,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="360"/>
+- <property name="fade-out" value="20" />
+- <property name="acceleration" value="0.06" />
+- <property name="momentum" value="0.993" />
+- <animation imageset="graphics/sprites/emotions.png" width="30" height="32">
+- <frame index="0" delay="1000"/>
+- </animation>
+- <property name="follow-parent" />
+- </emitter>
+- </particle>
+-</effect>
+diff --git a/graphics/particles/emote-evil.particle.xml b/graphics/particles/emote-evil.particle.xml
+deleted file mode 100644
+index 09ca625..0000000
+--- a/graphics/particles/emote-evil.particle.xml
++++ /dev/null
+@@ -1,22 +0,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="360"/>
+- <property name="fade-out" value="20" />
+- <property name="acceleration" value="0.06" />
+- <property name="momentum" value="0.993" />
+- <animation imageset="graphics/sprites/emotions.png" width="30" height="32">
+- <frame index="4" delay="1000"/>
+- </animation>
+- <property name="follow-parent" />
+- </emitter>
+- </particle>
+-</effect>
+diff --git a/graphics/particles/emote-grin.particle.xml b/graphics/particles/emote-grin.particle.xml
+deleted file mode 100644
+index b5223cd..0000000
+--- a/graphics/particles/emote-grin.particle.xml
++++ /dev/null
+@@ -1,22 +0,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="360"/>
+- <property name="fade-out" value="20" />
+- <property name="acceleration" value="0.06" />
+- <property name="momentum" value="0.993" />
+- <animation imageset="graphics/sprites/emotions.png" width="30" height="32">
+- <frame index="9" delay="1000"/>
+- </animation>
+- <property name="follow-parent" />
+- </emitter>
+- </particle>
+-</effect>
+diff --git a/graphics/particles/emote-happy.particle.xml b/graphics/particles/emote-happy.particle.xml
+deleted file mode 100644
+index 9eec8a6..0000000
+--- a/graphics/particles/emote-happy.particle.xml
++++ /dev/null
+@@ -1,22 +0,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="360"/>
+- <property name="fade-out" value="20" />
+- <property name="acceleration" value="0.06" />
+- <property name="momentum" value="0.993" />
+- <animation imageset="graphics/sprites/emotions.png" width="30" height="32">
+- <frame index="2" delay="1000"/>
+- </animation>
+- <property name="follow-parent" />
+- </emitter>
+- </particle>
+-</effect>
+diff --git a/graphics/particles/emote-perturbed.particle.xml b/graphics/particles/emote-perturbed.particle.xml
+deleted file mode 100644
+index a5cd71a..0000000
+--- a/graphics/particles/emote-perturbed.particle.xml
++++ /dev/null
+@@ -1,22 +0,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="360"/>
+- <property name="fade-out" value="20" />
+- <property name="acceleration" value="0.06" />
+- <property name="momentum" value="0.993" />
+- <animation imageset="graphics/sprites/emotions.png" width="30" height="32">
+- <frame index="11" delay="1000"/>
+- </animation>
+- <property name="follow-parent" />
+- </emitter>
+- </particle>
+-</effect>
+diff --git a/graphics/particles/emote-sad.particle.xml b/graphics/particles/emote-sad.particle.xml
+deleted file mode 100644
+index 2bbf26d..0000000
+--- a/graphics/particles/emote-sad.particle.xml
++++ /dev/null
+@@ -1,22 +0,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="360"/>
+- <property name="fade-out" value="20" />
+- <property name="acceleration" value="0.06" />
+- <property name="momentum" value="0.993" />
+- <animation imageset="graphics/sprites/emotions.png" width="30" height="32">
+- <frame index="3" delay="1000"/>
+- </animation>
+- <property name="follow-parent" />
+- </emitter>
+- </particle>
+-</effect>
+diff --git a/graphics/particles/emote-speech.particle.xml b/graphics/particles/emote-speech.particle.xml
+deleted file mode 100644
+index 877a6d3..0000000
+--- a/graphics/particles/emote-speech.particle.xml
++++ /dev/null
+@@ -1,22 +0,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="360"/>
+- <property name="fade-out" value="20" />
+- <property name="acceleration" value="0.06" />
+- <property name="momentum" value="0.993" />
+- <animation imageset="graphics/sprites/emotions.png" width="30" height="32">
+- <frame index="12" delay="1000"/>
+- </animation>
+- <property name="follow-parent" />
+- </emitter>
+- </particle>
+-</effect>
+diff --git a/graphics/particles/emote-surprise.particle.xml b/graphics/particles/emote-surprise.particle.xml
+deleted file mode 100644
+index 1321d31..0000000
+--- a/graphics/particles/emote-surprise.particle.xml
++++ /dev/null
+@@ -1,22 +0,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="360"/>
+- <property name="fade-out" value="20" />
+- <property name="acceleration" value="0.06" />
+- <property name="momentum" value="0.993" />
+- <animation imageset="graphics/sprites/emotions.png" width="30" height="32">
+- <frame index="1" delay="1000"/>
+- </animation>
+- <property name="follow-parent" />
+- </emitter>
+- </particle>
+-</effect>
+diff --git a/graphics/particles/emote-tongue.particle.xml b/graphics/particles/emote-tongue.particle.xml
+deleted file mode 100644
+index 2e32676..0000000
+--- a/graphics/particles/emote-tongue.particle.xml
++++ /dev/null
+@@ -1,22 +0,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="360"/>
+- <property name="fade-out" value="20" />
+- <property name="acceleration" value="0.06" />
+- <property name="momentum" value="0.993" />
+- <animation imageset="graphics/sprites/emotions.png" width="30" height="32">
+- <frame index="8" delay="1000"/>
+- </animation>
+- <property name="follow-parent" />
+- </emitter>
+- </particle>
+-</effect>
+diff --git a/graphics/particles/emote-upset.particle.xml b/graphics/particles/emote-upset.particle.xml
+deleted file mode 100644
+index 8016e44..0000000
+--- a/graphics/particles/emote-upset.particle.xml
++++ /dev/null
+@@ -1,22 +0,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="360"/>
+- <property name="fade-out" value="20" />
+- <property name="acceleration" value="0.06" />
+- <property name="momentum" value="0.993" />
+- <animation imageset="graphics/sprites/emotions.png" width="30" height="32">
+- <frame index="10" delay="1000"/>
+- </animation>
+- <property name="follow-parent" />
+- </emitter>
+- </particle>
+-</effect>
+diff --git a/graphics/particles/emote-wink.particle.xml b/graphics/particles/emote-wink.particle.xml
+deleted file mode 100644
+index a521cfc..0000000
+--- a/graphics/particles/emote-wink.particle.xml
++++ /dev/null
+@@ -1,22 +0,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="360"/>
+- <property name="fade-out" value="20" />
+- <property name="acceleration" value="0.06" />
+- <property name="momentum" value="0.993" />
+- <animation imageset="graphics/sprites/emotions.png" width="30" height="32">
+- <frame index="5" delay="1000"/>
+- </animation>
+- <property name="follow-parent" />
+- </emitter>
+- </particle>
+-</effect>
+diff --git a/graphics/particles/emotes/angel.png b/graphics/particles/emotes/angel.png
+new file mode 100644
+index 0000000000000000000000000000000000000000..043d075501573402c6937d2e5944ae42d57b0cd9
+GIT binary patch
+literal 1960
+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
+
+literal 0
+HcmV?d00001
+
+diff --git a/graphics/particles/emotes/blah.png b/graphics/particles/emotes/blah.png
+new file mode 100644
+index 0000000000000000000000000000000000000000..3eae88a2ee124b5d68992005289c762dd91fea68
+GIT binary patch
+literal 822
+zcmV-61Ihe}P)<h;3K|Lk000e1NJLTq0015U001Be1^@s61whDu00001b5ch_0Itp)
+z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igk*
+z0yho!CIj&R000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}0007!Nkl<Z
+zNXP9~Jx|+E6g@9~&w&_-!$AK)mo8MwNcsm5o!GlpBI+;cU+BzAVL(VIV<!+%L}*7C
+z@&U+}Ax`wL9P&<wiYQ4*LPFXpN3twm>-n5}@AG*Vm}8DPW&|<Cn#91f>4}+tLVSLH
+zPAMg#D1vR<APJ=ueBb|}l=`5QLN=SVULs&D@yW>vUDt(e+i)BQ01(G9QmGV#5D-GZ
+z^E^BWYPDLwEX#UpS(d%NzAh#vK07;OCX<2dx=1FI0Dx2~HBux=7-P_AG!O&<n$707
+zY&QFOY$-{~r;-LiK&>^W#lyn`tJNw?rBY=qaTtd0N~IESZf^Km7-QIOw|RMa$#S_|
+z8o5J#-~YI_wuZ&U#n=BXLO@Ch*L6YiJ;_f)iBC^Yzbd7$va-^R<@0$6A&}4KCyoI?
+zGMPlX-Nwbm#h0Nf_xASad0t=10CcZOV<cIx*I6tUStt~up&2I<iJ!GvtxwF(&Q9Nb
+zk{AFOV{m_ekLBg%^2pv43I*QX-EkHO!;r;dkw-^I986LU5-X)}eSHlf1k&mBR2$0}
+zgD8s7>2$g#Gw5bwSg$S1!p6o1lu{E3FvdV@4bSt?Xf&X;MlP58%SIE=E#BVV7L`in
+z`_<JIs?{od-ych)wMH0*Xti3ny}d=PR)gnx$mMe4Iqx3p)yK!jbQ}juOG{W?UG0)d
+zDG|pp0O0ZQ5eo|oAPJHPf&le;9a~#lVkW24;o%{bQXq*=rvuxzVOdt!FdWB07>0=B
+z7@M1$f@Devp`ZJfoP>BF0}DW>_x-`a0i~4CT90hyOc4Y@8UXh9_t|skxG$Y1rbZ@{
+zasE`iuX~OEGDq$1?(&sm)#PY4n{VbL>>R!L4QwtggK81m4gdfE07*qoM6N<$f_*e%
+ATmS$7
+
+literal 0
+HcmV?d00001
+
+diff --git a/graphics/particles/emotes/blush.png b/graphics/particles/emotes/blush.png
+new file mode 100644
+index 0000000000000000000000000000000000000000..22172ae081e7a188910e2f11a7058cf7fe66e338
+GIT binary patch
+literal 2038
+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
+U8loLDKmY&$07*qoM6N<$f``Mx)c^nh
+
+literal 0
+HcmV?d00001
+
+diff --git a/graphics/particles/emotes/disgust.png b/graphics/particles/emotes/disgust.png
+new file mode 100644
+index 0000000000000000000000000000000000000000..9965f89d81abef71e08a656e84c81a0d19d49eb4
+GIT binary patch
+literal 1924
+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
+KMNUMnLSTZ$`>6>4
+
+literal 0
+HcmV?d00001
+
+diff --git a/graphics/particles/emotes/emote-angel.particle.xml b/graphics/particles/emotes/emote-angel.particle.xml
+new file mode 100644
+index 0000000..a4bb1b5
+--- /dev/null
++++ b/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/graphics/particles/emotes/emote-blah.particle.xml b/graphics/particles/emotes/emote-blah.particle.xml
+new file mode 100644
+index 0000000..38cb327
+--- /dev/null
++++ b/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/graphics/particles/emotes/emote-blush.particle.xml b/graphics/particles/emotes/emote-blush.particle.xml
+new file mode 100644
+index 0000000..11d2689
+--- /dev/null
++++ b/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/graphics/particles/emotes/emote-disgust.particle.xml b/graphics/particles/emotes/emote-disgust.particle.xml
+new file mode 100644
+index 0000000..b04d18d
+--- /dev/null
++++ b/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/graphics/particles/emotes/emote-evil.particle.xml b/graphics/particles/emotes/emote-evil.particle.xml
+new file mode 100644
+index 0000000..433aef3
+--- /dev/null
++++ b/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/graphics/particles/emotes/emote-grin.particle.xml b/graphics/particles/emotes/emote-grin.particle.xml
+new file mode 100644
+index 0000000..5c50aa9
+--- /dev/null
++++ b/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/graphics/particles/emotes/emote-happy.particle.xml b/graphics/particles/emotes/emote-happy.particle.xml
+new file mode 100644
+index 0000000..fa43997
+--- /dev/null
++++ b/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/graphics/particles/emotes/emote-perturbed.particle.xml b/graphics/particles/emotes/emote-perturbed.particle.xml
+new file mode 100644
+index 0000000..47f92e3
+--- /dev/null
++++ b/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/graphics/particles/emotes/emote-sad.particle.xml b/graphics/particles/emotes/emote-sad.particle.xml
+new file mode 100644
+index 0000000..0e0b7dc
+--- /dev/null
++++ b/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/graphics/particles/emotes/emote-speech.particle.xml b/graphics/particles/emotes/emote-speech.particle.xml
+new file mode 100644
+index 0000000..7d6350b
+--- /dev/null
++++ b/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/graphics/particles/emotes/emote-surprise.particle.xml b/graphics/particles/emotes/emote-surprise.particle.xml
+new file mode 100644
+index 0000000..29498c8
+--- /dev/null
++++ b/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/graphics/particles/emotes/emote-tongue.particle.xml b/graphics/particles/emotes/emote-tongue.particle.xml
+new file mode 100644
+index 0000000..2796ac6
+--- /dev/null
++++ b/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/graphics/particles/emotes/emote-upset.particle.xml b/graphics/particles/emotes/emote-upset.particle.xml
+new file mode 100644
+index 0000000..4b10d9f
+--- /dev/null
++++ b/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/graphics/particles/emotes/emote-wink.particle.xml b/graphics/particles/emotes/emote-wink.particle.xml
+new file mode 100644
+index 0000000..b217a64
+--- /dev/null
++++ b/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/graphics/particles/emotes/evil.png b/graphics/particles/emotes/evil.png
+new file mode 100644
+index 0000000000000000000000000000000000000000..7c417ec6ebcc9861ce53f846c72492fb3a728d6d
+GIT binary patch
+literal 1925
+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
+LNkvXXu0mjfA)KT~
+
+literal 0
+HcmV?d00001
+
+diff --git a/graphics/particles/emotes/grin.png b/graphics/particles/emotes/grin.png
+new file mode 100644
+index 0000000000000000000000000000000000000000..0c21cfe84290e6d48ca3cb2e708f6147cd2adc72
+GIT binary patch
+literal 2047
+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
+
+literal 0
+HcmV?d00001
+
+diff --git a/graphics/particles/emotes/happy.png b/graphics/particles/emotes/happy.png
+new file mode 100644
+index 0000000000000000000000000000000000000000..8ca2930e1712967d3550d6bca7d275a1738155a4
+GIT binary patch
+literal 1734
+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
+
+literal 0
+HcmV?d00001
+
+diff --git a/graphics/particles/emotes/perturbed.png b/graphics/particles/emotes/perturbed.png
+new file mode 100644
+index 0000000000000000000000000000000000000000..0a33e0ad4528f0ba6bab81b8e0bb1384f9808c1a
+GIT binary patch
+literal 1763
+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
+FV1jS(UpN2&
+
+literal 0
+HcmV?d00001
+
+diff --git a/graphics/particles/emotes/sad.png b/graphics/particles/emotes/sad.png
+new file mode 100644
+index 0000000000000000000000000000000000000000..3ceb3cafd77f2e7dd1dcec531cacecb72d972c27
+GIT binary patch
+literal 1918
+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
+Ef>b1jYybcN
+
+literal 0
+HcmV?d00001
+
+diff --git a/graphics/particles/emotes/speech.png b/graphics/particles/emotes/speech.png
+new file mode 100644
+index 0000000000000000000000000000000000000000..7204471907aeec5f68f7542a0757777996d7b08e
+GIT binary patch
+literal 796
+zcmV+%1LOROP)<h;3K|Lk000e1NJLTq0015U001Be1^@s61whDu00001b5ch_0Itp)
+z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igk*
+z0yiTo@D4rz000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}0007aNkl<Z
+zNXPA#KTq307{;H=-8o<r;xN!J(4|rZQkF=hUjV^?*t>S>C+Sz{oHd0ZOXf}>B#Y3F
+zVaOi{wyfBRj^N;XJ5-=F%^wonPI<QT-TC+4dw0*hz)CBvl#tjGb5dh%J@QTe6Y%Bb
+zB?%!g7z|(-28ak!N_d|4T}t^uN{M_v&tDS2T=3c18QHcC!!Tf3762fMBABKL#uyl5
+za9tNq0rmU+pPcizoO5GmXNN5ezPPxcTrLOOwvkS!0RX0H&J2=>ptVL21n_+yy<YEY
+zKA-<IH<d&ro>J=jJ}ISWS>4~?Q?uD5$8j2S!C@G_a~y|mZ*S?f(puASIHY>LPPJOi
+znR!Az&pX`S-p2a+`s=R?V-P~Xwrvp6E)jj43O+wS|01Qt=H_N%_cfhPV>le*>gwwA
+zRIrpXaia)=0E{toI-T9A;8ZI0qt$993f5Yq+wCHg$<(HTkB*Msd!C1Gx0?vG*X!Z#
+z?hX$R4=5B0h0#7SK3GbLo0}Uj#*ocsmtN&yFhCr~&n7eOW)lshTrLym9D93vkWwxb
+zfYusHDY&kSAPAt8La|u<%SKa^CLbRkvqq!w?fUu}&1Msx=gkEvr4WW8`u#pSoeo;9
+z7F^dwu~=l2ynC)!SF2UBEDIYO8`#>~dWH!h5JeFH;PLShYinyDA`lUL-$%RM#=*e>
+zOXPK`R4OE;1Q8*QV;F`3&iS)pSeAt_3=u^U_V@Q05t)oJHR)es5%AawIDmMx|Mc{f
+zgb+|l&D_dF<@<gX08UO$XynncUs_Eptz0f={m%FwyBGYII;vDE(JRZUrCjRGs)Su>
+aRKEa1v7LD~(=)FC0000<MNUMnLSTYZ7g+`X
+
+literal 0
+HcmV?d00001
+
+diff --git a/graphics/particles/emotes/surprise.png b/graphics/particles/emotes/surprise.png
+new file mode 100644
+index 0000000000000000000000000000000000000000..e1649a63edb019e88c0a80f2456b5435c13a6286
+GIT binary patch
+literal 2086
+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
+Q?*IS*07*qoM6N<$f=uuZ1ONa4
+
+literal 0
+HcmV?d00001
+
+diff --git a/graphics/particles/emotes/tongue.png b/graphics/particles/emotes/tongue.png
+new file mode 100644
+index 0000000000000000000000000000000000000000..0d5bc959a6436de68cfc766b35d7ccfac7fcf882
+GIT binary patch
+literal 1753
+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
+
+literal 0
+HcmV?d00001
+
+diff --git a/graphics/particles/emotes/upset.png b/graphics/particles/emotes/upset.png
+new file mode 100644
+index 0000000000000000000000000000000000000000..b2f0ce2be93d469cdd69b35571218d4dfa651f92
+GIT binary patch
+literal 1632
+zcmV-m2A}zfP)<h;3K|Lk000e1NJLTq0015U001Be1^@s61whDu00001b5ch_0Itp)
+z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igk*
+z0yQz}e;xDy000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000HMNkl<Z
+zNXPA$O-xf+7>3__+g=JqkQN3l&OosQgMf&^Ou`T#L1VzE3ze9OE;S}@sz`LBaXTTy
+z%D5rA(U`c=1sGyNkVqm4KQ=Kn7>6J~Efwmel>Xh{Zx;8qTr6Z9%_Ot%ByY}X&*^#2
+z`+eu0dkXw0Kgxepn132@`}S>iX=$lzc6PRXadC0q%F2p;ZEej00Qvd(lEdNPOG-+n
+zT`t%2J$v@_+_`f{{ciAu3m1B)rl!t{V#s;$U=|J^meJ4<LuF+QvJAX?mxHmf9E^{f
+z@b;|$j<W~q>+7F9e*D<;O<}lx{d#j#Q`6-B{Uyqc8@~|GTZzb~E1QV2h{!~;3`!<J
+zkqF4=%c6@Ho#b}^q%<@%OkTTot@&R;JswYIb#?VZM@K15P8JYRJ`p*HsF;X$>$QW3
+zb`X(;h(Pf;C>#cbLZGKl^Qp0MH@V&Jg)3LCbbhtd>gwu+&dySjWljf_5K#pY?I!@6
+zr1fWQf(L`3_wP;A*0zgWF4uy`<M}G*hDi&EsFa9m(%%ga_S5iSKT#}9!-M^s;IgcR
+ze0do(KM#8I#zgh?g;Y~hGr1LrO*PJ+Ki>-g6boZ`upbPw3Lp;*^A^K{{h(MFEls}x
+z0A9WtO}Bv@09Kex0Ly9ufb47qmo5ni20zxFIB}wP+efCVs>+{owc)xk?bPVfIF6_?
+z?OGH;JP%r21Wiwa#>PNLkJ_oYxY&Q|)-Be^Gy{O&@9z?X&rZKT3neATwU|>4fE*D0
+z4u(0NvDnsQ$3fHzU>N`hfCb9}X7h$~mIcn7S;y<wW~a~R>jLn{Ch*M6O#6WYS#UZ9
+z5M=|{sb@hGkw*_H0Ehr00C*kBrn6=;=`BOZi;5)J?Hs13r`wHSR(HJ5ZjXUs0ES6`
+zVV2O^`WHN&ckp^w03^SVs7uzhePLOkw3I<G7~Ge!xk90ky|3>x#>N056Nnt>?RB8B
+z(FTua9A57{fUvHJuBZX70#KnS8%|S2Re`cH8PRCeo{{7A^>xd$XC~CvDgYD!BI@dL
+zP*-Qc>C;v4cznpsmEd+~>yWq(j~gPOra`G%RRK{13JXO@5-b^D0H~^BpsIi*0TxSA
+zpHy3ZbF&$-*fM|}x<gU#H-crz@&-^<0a@0-s=Cc{oST~~`FytYKt+-CP(}gpICY9(
+zv#kRN>6<F7_Zh)T8kU+TnbfqjWP#aimNLM0yPcnyutF4JfC~nA1a5bHiyX&ws02aK
+zewR`*3B==CJvV29&1T~>z`J(snx2?oGgc}|LK?hT#xM&R(0F{a=H>`RMMcvYV3*7F
+z+~*T8KhLG1DJ2q$zJS;l5}+sw5{a#yMj}8o3IqaXgu^l_Dk`35fXmCvdrYPsfxCAL
+z(&711u^5m@0D_<?k<b9f2&I7Gum+7pfT5u*a9mEHwzjs%2sQ!0$jAt_w6y#@Iy!UM
+z?Y1xuhX_>#6b0$pxM@UD+x?QHEh3rR0ENTA+8V&~z|@o#uU^UOp+gP#A3l6Ixb4-a
+zva)iLWtZ!FdLnQ*6mT41wQA>YO2&i1xR7Xc1J3h6Ai(0@y)1B?eai3mAKLb{2mozu
+zZC67f^I~^*F6QT1@H`L-X)d-B&m%p?*bW3(+`n&yAXpYVIy$ayb(ETnAI8VW=gyrw
+z7Z@LZ|Lf2Ylb4-sfz2kR^PbwJ>+71<)-;8~!0M_7_Ij;&^vH~O+_HG`<jJlF4;~DB
+z^)2)A<;%?j0|S4CLcuz>n`7JClW;m^aNOo_r}7?;1Ix>1ym(>7hYy0fb7!Hqqod<$
+zUtizIH(hUAT3UL&Uhi2!h&c-iEGR8yP*x^m_ipVF`t-?yj~~sLoh7WUO0Zb61GTla
+zPew;aJ>Pxfzj^Z}d+gY;?!9~WzRb_h4{{tQvMft1%M!<NVqRWeu)Mtd<&h&ty1To(
+e+5i1tn7;vmQI~<uOp46_0000<MNUMnLSTXxdHKQs
+
+literal 0
+HcmV?d00001
+
+diff --git a/graphics/particles/emotes/wink.png b/graphics/particles/emotes/wink.png
+new file mode 100644
+index 0000000000000000000000000000000000000000..13488bb83339c72ebdd3fae30551fd20ca57fc7f
+GIT binary patch
+literal 1680
+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
+aF#iS(;4w5m5bxRm0000<MNUMnLSTYa#w>0C
+
+literal 0
+HcmV?d00001
+
+--
+1.7.1
+