summaryrefslogtreecommitdiff
path: root/graphics/particles
diff options
context:
space:
mode:
authorMicksha <ms-shaman@gmx.de>2020-09-22 12:06:22 +0000
committerMicksha <ms-shaman@gmx.de>2020-09-22 12:06:22 +0000
commitc5ebca80c71c2d3af5f381b2b79f03e16bc9f501 (patch)
treef1d7108b9aac0cbaa927ab990b1dde76c22f6558 /graphics/particles
parent8303d888a71ce5610fc6bde1532d2d7c431528d8 (diff)
downloadclientdata-c5ebca80c71c2d3af5f381b2b79f03e16bc9f501.tar.gz
clientdata-c5ebca80c71c2d3af5f381b2b79f03e16bc9f501.tar.bz2
clientdata-c5ebca80c71c2d3af5f381b2b79f03e16bc9f501.tar.xz
clientdata-c5ebca80c71c2d3af5f381b2b79f03e16bc9f501.zip
initial commit for adding all missing equipment, accessoires, items, and Mister Prickel whilst updating and preparing stuff for crafting
Diffstat (limited to 'graphics/particles')
-rw-r--r--graphics/particles/accumulate-magic.xml15
-rw-r--r--graphics/particles/arrow-hail.xml4
-rw-r--r--graphics/particles/arrow-particle-high.xml33
-rw-r--r--graphics/particles/arrow-particle.xml19
-rw-r--r--graphics/particles/blackball.xml22
-rw-r--r--graphics/particles/circle-blue.xml21
-rw-r--r--graphics/particles/circle-green.xml21
-rw-r--r--graphics/particles/circle-red.xml21
-rw-r--r--graphics/particles/counter.xml26
-rw-r--r--graphics/particles/critical-low.xml37
-rw-r--r--graphics/particles/dart-black.xml19
-rw-r--r--graphics/particles/dart-blue.xml22
-rw-r--r--graphics/particles/dart-directions.pngbin0 -> 997 bytes
-rw-r--r--graphics/particles/dart-elemental.xml19
-rw-r--r--graphics/particles/dart-green.xml19
-rw-r--r--graphics/particles/dart-red.xml22
-rw-r--r--graphics/particles/firebreath.xml34
-rw-r--r--graphics/particles/firedart-directions.pngbin0 -> 805 bytes
-rw-r--r--graphics/particles/foefire.pngbin0 -> 1777 bytes
-rw-r--r--graphics/particles/foefire.xml34
-rw-r--r--graphics/particles/glow-violet.xml38
-rw-r--r--graphics/particles/hellfire-low.xml67
-rw-r--r--graphics/particles/hellfire.xml (renamed from graphics/particles/hellblaze.particle.xml)0
-rw-r--r--graphics/particles/icedart-directions.pngbin0 -> 1101 bytes
-rw-r--r--graphics/particles/icedart-directions.xml11
-rw-r--r--graphics/particles/lightning-map.pngbin0 -> 2522 bytes
-rw-r--r--graphics/particles/lightning-map.xml25
-rw-r--r--graphics/particles/luvia-attack.xml44
-rw-r--r--graphics/particles/luvia.xml64
-rw-r--r--graphics/particles/magic-fire.xml26
-rw-r--r--graphics/particles/magic-shield-test.xml31
-rw-r--r--graphics/particles/magic-shield.xml32
-rw-r--r--graphics/particles/magic-shield2.xml241
-rw-r--r--graphics/particles/mammonite.xml23
-rw-r--r--graphics/particles/meteor-hail.xml32
-rw-r--r--graphics/particles/nova-circle.xml47
-rw-r--r--graphics/particles/orb-oversized.pngbin0 -> 2300 bytes
-rw-r--r--graphics/particles/orbit.xml21
-rw-r--r--graphics/particles/particle-dart-white.xml21
-rw-r--r--graphics/particles/pentagram-blackline.xml127
-rw-r--r--graphics/particles/portal-door.xml44
-rw-r--r--graphics/particles/rain.xml17
-rw-r--r--graphics/particles/raindrop.pngbin0 -> 290 bytes
-rw-r--r--graphics/particles/selfbuff-persistent-hp.xml25
-rw-r--r--graphics/particles/selfbuff-persistent-sp.xml25
-rw-r--r--graphics/particles/selfbuff-persistent.xml25
-rw-r--r--graphics/particles/snow-special.xml19
-rw-r--r--graphics/particles/snowflake.pngbin0 -> 523 bytes
-rw-r--r--graphics/particles/spiral-falling-green.xml24
-rw-r--r--graphics/particles/spirit-circle.xml23
-rw-r--r--graphics/particles/voidportal.xml32
-rw-r--r--graphics/particles/whiteball.xml22
-rw-r--r--graphics/particles/whitecircle.xml21
-rw-r--r--graphics/particles/wisp.xml24
-rw-r--r--graphics/particles/wispdance.xml49
55 files changed, 1570 insertions, 18 deletions
diff --git a/graphics/particles/accumulate-magic.xml b/graphics/particles/accumulate-magic.xml
new file mode 100644
index 00000000..4dbe3816
--- /dev/null
+++ b/graphics/particles/accumulate-magic.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<effect>
+ <particle position-x="0" position-y="0" position-z="72" lifetime="100">
+ <emitter>
+ <property name="lifetime" value="100"/>
+ <property name="position-x" min="-16" max="16"/>
+ <property name="position-y" min="-16" max="16"/>
+ <property name="vertical-angle" value="270"/>
+ <property name="power" value="0.25"/>
+ <property name="output" min="1" max="3"/>
+ <property name="gravity" value="0.1"/>
+ <property name="image" value="graphics/particles/star-small.png|W:#d3c443,fff38d,fff7df"/>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/arrow-hail.xml b/graphics/particles/arrow-hail.xml
index 8dc40cd8..43dca921 100644
--- a/graphics/particles/arrow-hail.xml
+++ b/graphics/particles/arrow-hail.xml
@@ -5,8 +5,8 @@
<emitter>
<!-- <property name="follow-parent" value="0"/> -->
<property name="lifetime" min="180" max="180"/>
- <property name="position-x" min="-250" max="350"/>
- <property name="position-y" min="-350" max="250"/>
+ <property name="position-x" min="-150" max="200"/>
+ <property name="position-y" min="-200" max="150"/>
<property name="vertical-angle" value="255"/>
<property name="power" value="14"/>
<property name="output" min="5" max="15"/>
diff --git a/graphics/particles/arrow-particle-high.xml b/graphics/particles/arrow-particle-high.xml
new file mode 100644
index 00000000..6b035a0c
--- /dev/null
+++ b/graphics/particles/arrow-particle-high.xml
@@ -0,0 +1,33 @@
+<?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>
+ <emitter>
+ <property name="image" value="graphics/particles/orb-small.png|W:#932a15"/>
+ <property name="lifetime" value="90"/>
+ <property name="fade-in" value="10"/>
+ <property name="fade-out" value="90"/>
+ <property name="output" min="0" max="1"/>
+ <property name="power" min="0" max="2"/>
+ <property name="horizontal-angle" min="-15" max="-175"/>
+ <property name="momentum" value="0.95"/>
+ <property name="vertical-angle" min="0" max="90"/>
+ </emitter>
+ <emitter>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="vertical-angle" min="0" max="90"/>
+ <property name="power" min="0.3" max="0.8"/>
+ <property name="gravity" value="-0.02"/>
+ <animation imageset="graphics/particles/aniblaze.png|W:#631414,c3771c,f8d96f" width="8" height="8">
+ <sequence start="0" end="8" delay="30"/>
+ <frame index="8" delay="1000"/>
+ </animation>
+ <property name="lifetime" min="35" max="50"/>
+ <property name="output" min="1" max="3"/>
+ <property name="fade-in" value="2"/>
+ <property name="fade-out" value="10"/>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/arrow-particle.xml b/graphics/particles/arrow-particle.xml
new file mode 100644
index 00000000..9a8eb4e3
--- /dev/null
+++ b/graphics/particles/arrow-particle.xml
@@ -0,0 +1,19 @@
+<?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>
+ <emitter>
+ <property name="image" value="graphics/particles/orb-small.png|W:#932a15"/>
+ <property name="lifetime" value="90"/>
+ <property name="fade-in" value="10"/>
+ <property name="fade-out" value="90"/>
+ <property name="output" min="0" max="1"/>
+ <property name="power" min="0" max="2"/>
+ <property name="horizontal-angle" min="-15" max="-175"/>
+ <property name="momentum" value="0.95"/>
+ <property name="vertical-angle" min="0" max="90"/>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/blackball.xml b/graphics/particles/blackball.xml
new file mode 100644
index 00000000..747b2e66
--- /dev/null
+++ b/graphics/particles/blackball.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Authors: Micksha
+Copyright (C) 2010-2020 Evol Online -->
+
+<effect>
+ <particle position-x="0"
+ position-y="0"
+ position-z="24"
+ lifetime="1">
+ <emitter>
+ <property name="position-x" value="0"/>
+ <property name="position-y" value="0"/>
+ <property name="vertical-angle" min="0" max="360"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="power" min="0.5" max="1.5"/>
+ <property name="image" value="graphics/particles/orb-small.png|W:#000000"/>
+ <property name="lifetime" min="40" max="80"/>
+ <property name="fade-out" value="60"/>
+ <property name="output" min="240" max="480"/>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/circle-blue.xml b/graphics/particles/circle-blue.xml
new file mode 100644
index 00000000..76378773
--- /dev/null
+++ b/graphics/particles/circle-blue.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Authors: Micksha
+Copyright (C) 2010-2020 Evol Online -->
+
+<effect>
+ <particle position-x="0"
+ position-y="0"
+ position-z="0"
+ lifetime="1">
+ <emitter>
+ <property name="position-x" value="0"/>
+ <property name="position-y" value="0"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="power" value="0.5"/>
+ <property name="image" value="graphics/particles/orb-small.png|W:#71c1ff"/>
+ <property name="lifetime" min="40" max="80"/>
+ <property name="fade-out" value="60"/>
+ <property name="output" min="40" max="160"/>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/circle-green.xml b/graphics/particles/circle-green.xml
new file mode 100644
index 00000000..f2365097
--- /dev/null
+++ b/graphics/particles/circle-green.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Authors: Micksha
+Copyright (C) 2010-2020 Evol Online -->
+
+<effect>
+ <particle position-x="0"
+ position-y="0"
+ position-z="0"
+ lifetime="1">
+ <emitter>
+ <property name="position-x" value="0"/>
+ <property name="position-y" value="0"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="power" value="0.5"/>
+ <property name="image" value="graphics/particles/orb-small.png|W:#00d80f"/>
+ <property name="lifetime" min="40" max="80"/>
+ <property name="fade-out" value="60"/>
+ <property name="output" min="80" max="480"/>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/circle-red.xml b/graphics/particles/circle-red.xml
new file mode 100644
index 00000000..308c1f9b
--- /dev/null
+++ b/graphics/particles/circle-red.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Authors: Micksha
+Copyright (C) 2010-2020 Evol Online -->
+
+<effect>
+ <particle position-x="0"
+ position-y="0"
+ position-z="0"
+ lifetime="1">
+ <emitter>
+ <property name="position-x" value="0"/>
+ <property name="position-y" value="0"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="power" value="0.5"/>
+ <property name="image" value="graphics/particles/orb-small.png|W:#d80000"/>
+ <property name="lifetime" min="40" max="80"/>
+ <property name="fade-out" value="60"/>
+ <property name="output" min="80" max="480"/>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/counter.xml b/graphics/particles/counter.xml
new file mode 100644
index 00000000..85342a34
--- /dev/null
+++ b/graphics/particles/counter.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Author: Alige
+Copyright (C) 2010-2013 Evol Online -->
+
+<effect>
+ <particle position-x="0"
+ position-y="0"
+ position-z="32"
+ lifetime="500">
+ <emitter>
+ <property name="output" value="3"/>
+ <property name="position-y" value="32"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="power" value="35"/>
+ <property name="lifetime" value="2"/>
+ <emitter>
+ <property name="gravity" value="-0.7"/>
+ <property name="momentum" value="0.3"/>
+ <property name="image" value="graphics/particles/orb-small.png|W:#5c5286"/>
+ <property name="lifetime" value="50"/>
+ <property name="fade-out" value="50"/>
+ <property name="output" value="1"/>
+ </emitter>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/critical-low.xml b/graphics/particles/critical-low.xml
new file mode 100644
index 00000000..4acacd1d
--- /dev/null
+++ b/graphics/particles/critical-low.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Author from The Mana World
+Copyright (C) 2010-2013 Evol Online -->
+
+<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="70" max="90"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="power" min="1" max="4"/>
+ <property name="bounce" value="0.75"/>
+ <property name="gravity" value="0.1"/>
+ <property name="image" value="graphics/particles/star-small.png|W:#ff0000,ffff00"/>
+ <property name="lifetime" min="120" max="180"/>
+ <property name="fade-out" value="120"/>
+ <property name="output" min="4" max="8"/>
+ </emitter>
+ <emitter>
+ <property name="position-x" min="-8" max="8"/>
+ <property name="position-y" min="-8" max="8"/>
+ <property name="vertical-angle" min="70" max="90"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="power" min="1" max="4"/>
+ <property name="bounce" value="0.75"/>
+ <property name="gravity" value="0.1"/>
+ <property name="image" value="graphics/particles/star-medium.png|W:#ff0000,ffff00"/>
+ <property name="lifetime" min="120" max="180"/>
+ <property name="fade-out" value="120"/>
+ <property name="output" min="3" max="6"/>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/dart-black.xml b/graphics/particles/dart-black.xml
new file mode 100644
index 00000000..426ba646
--- /dev/null
+++ b/graphics/particles/dart-black.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<effect>
+ <particle position-x="0" position-y="0" position-z="32" lifetime="128">
+ <rotation imageset="graphics/particles/dart-directions.png|W:#000000,ffffff" width="16" height="16">
+ <sequence start="0" end="7"/>
+ </rotation>
+ <emitter>
+ <property name="image" value="graphics/particles/orb-small.png|W:#000000,ffffff"/>
+ <property name="lifetime" value="90"/>
+ <property name="fade-in" value="10"/>
+ <property name="fade-out" value="90"/>
+ <property name="output" min="1" max="3"/>
+ <property name="power" min="0.1" max="1"/>
+ <property name="horizontal-angle" min="-15" max="-175"/>
+ <property name="momentum" value="0.95"/>
+ <property name="vertical-angle" min="0" max="90"/>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/dart-blue.xml b/graphics/particles/dart-blue.xml
new file mode 100644
index 00000000..abd2e06f
--- /dev/null
+++ b/graphics/particles/dart-blue.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Author: 4144, Micksha
+Copyright (C) 2020 Evol Online -->
+
+<effect>
+ <particle position-x="0" position-y="0" position-z="32" lifetime="128">
+ <rotation imageset="graphics/particles/dart-directions.png|W:#879eff,65aaff,5fbdff,29c5ff,a1b3ff,d3dbff" width="16" height="16">
+ <sequence start="0" end="7"/>
+ </rotation>
+ <emitter>
+ <property name="image" value="graphics/particles/orb-small.png|W:#879eff,65aaff,5fbdff,29c5ff,a1b3ff,d3dbff"/>
+ <property name="lifetime" value="90"/>
+ <property name="fade-in" value="10"/>
+ <property name="fade-out" value="90"/>
+ <property name="output" min="1" max="3"/>
+ <property name="power" min="0.1" max="1"/>
+ <property name="horizontal-angle" min="-15" max="-175"/>
+ <property name="momentum" value="0.95"/>
+ <property name="vertical-angle" min="0" max="90"/>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/dart-directions.png b/graphics/particles/dart-directions.png
new file mode 100644
index 00000000..d9d7f40c
--- /dev/null
+++ b/graphics/particles/dart-directions.png
Binary files differ
diff --git a/graphics/particles/dart-elemental.xml b/graphics/particles/dart-elemental.xml
new file mode 100644
index 00000000..8ebedb44
--- /dev/null
+++ b/graphics/particles/dart-elemental.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<effect>
+ <particle position-x="0" position-y="0" position-z="32" lifetime="128">
+ <rotation imageset="graphics/particles/dart-directions.png|W:#2a9b28,56d253,8ee18c,b5ebb4,fdfefd" width="16" height="16">
+ <sequence start="0" end="7"/>
+ </rotation>
+ <emitter>
+ <property name="image" value="graphics/particles/orb-small.png|W:#2a9b28,56d253,8ee18c,b5ebb4,fdfefd"/>
+ <property name="lifetime" value="90"/>
+ <property name="fade-in" value="10"/>
+ <property name="fade-out" value="90"/>
+ <property name="output" min="1" max="3"/>
+ <property name="power" min="1" max="3"/>
+ <property name="horizontal-angle" min="-15" max="-175"/>
+ <property name="momentum" value="0.95"/>
+ <property name="vertical-angle" min="0" max="90"/>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/dart-green.xml b/graphics/particles/dart-green.xml
new file mode 100644
index 00000000..7d487fa4
--- /dev/null
+++ b/graphics/particles/dart-green.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<effect>
+ <particle position-x="0" position-y="0" position-z="32" lifetime="128">
+ <rotation imageset="graphics/particles/dart-directions.png|W:#2a9b28,56d253,8ee18c,b5ebb4,fdfefd" width="16" height="16">
+ <sequence start="0" end="7"/>
+ </rotation>
+ <emitter>
+ <property name="image" value="graphics/particles/orb-small.png|W:#2a9b28,56d253,8ee18c,b5ebb4,fdfefd"/>
+ <property name="lifetime" value="90"/>
+ <property name="fade-in" value="10"/>
+ <property name="fade-out" value="90"/>
+ <property name="output" min="1" max="3"/>
+ <property name="power" min="0.1" max="1"/>
+ <property name="horizontal-angle" min="-15" max="-175"/>
+ <property name="momentum" value="0.95"/>
+ <property name="vertical-angle" min="0" max="90"/>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/dart-red.xml b/graphics/particles/dart-red.xml
new file mode 100644
index 00000000..be32fdbb
--- /dev/null
+++ b/graphics/particles/dart-red.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Author: 4144, Micksha
+Copyright (C) 2020 Evol Online -->
+
+<effect>
+ <particle position-x="0" position-y="0" position-z="32" lifetime="128">
+ <rotation imageset="graphics/particles/dart-directions.png|W:#982701,f45f00,ff8900,ffd837,ffe162,fff1b7" width="16" height="16">
+ <sequence start="0" end="7"/>
+ </rotation>
+ <emitter>
+ <property name="image" value="graphics/particles/orb-small.png|W:#982701,f45f00,ff8900,ffd837,ffe162,fff1b7"/>
+ <property name="lifetime" value="90"/>
+ <property name="fade-in" value="10"/>
+ <property name="fade-out" value="90"/>
+ <property name="output" min="1" max="3"/>
+ <property name="power" min="0.1" max="1"/>
+ <property name="horizontal-angle" min="-15" max="-175"/>
+ <property name="momentum" value="0.95"/>
+ <property name="vertical-angle" min="0" max="90"/>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/firebreath.xml b/graphics/particles/firebreath.xml
new file mode 100644
index 00000000..7ac82b5b
--- /dev/null
+++ b/graphics/particles/firebreath.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0"?>
+<!--
+A horizontal flame burst with a range of about 60 pixels.
+Creates up to 400 particles but only for a very brief moment.
+used for the fire breath attack of the fire goblins.
+-->
+<effect>
+ <particle position-x="0" position-y="0" position-z="16" lifetime="25">
+ <emitter>
+ <property name="position-x" min="0" max="0"/>
+ <property name="position-y" min="-8" max="-8"/>
+ <property name="horizontal-angle" min="80" max="100"/>
+ <property name="vertical-angle" min="-20" max="20"/>
+ <property name="power" min="1" max="1.5"/>
+ <property name="momentum" value="0.99"/>
+ <property name="gravity" value="-0.02"/>
+ <animation imageset="graphics/particles/aniblaze-medium.png|W:#ffff00,ff0000" width="16" height="16">
+ <frame index="0" delay="5"/>
+ <frame index="1" delay="10"/>
+ <frame index="2" delay="15"/>
+ <frame index="3" delay="25"/>
+ <frame index="4" delay="35"/>
+ <frame index="5" delay="60"/>
+ <frame index="6" delay="95"/>
+ <frame index="7" delay="160"/>
+ <frame index="8" delay="9999"/>
+ </animation>
+ <property name="lifetime" min="0" max="80"/>
+ <property name="output" min="5" max="10"/>
+ <property name="fade-in" value="0"/>
+ <property name="fade-out" value="60"/>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/firedart-directions.png b/graphics/particles/firedart-directions.png
new file mode 100644
index 00000000..7f1f04a7
--- /dev/null
+++ b/graphics/particles/firedart-directions.png
Binary files differ
diff --git a/graphics/particles/foefire.png b/graphics/particles/foefire.png
new file mode 100644
index 00000000..8928db3c
--- /dev/null
+++ b/graphics/particles/foefire.png
Binary files differ
diff --git a/graphics/particles/foefire.xml b/graphics/particles/foefire.xml
new file mode 100644
index 00000000..6e3bcce2
--- /dev/null
+++ b/graphics/particles/foefire.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0"?>
+<!--
+A horizontal flame burst with a range of about 60 pixels.
+Creates up to 400 particles but only for a very brief moment.
+used for the foefire attack of the Trolls.
+-->
+<effect>
+ <particle position-x="0" position-y="0" position-z="16" lifetime="25">
+ <emitter>
+ <property name="position-x" min="0" max="0"/>
+ <property name="position-y" min="-8" max="-8"/>
+ <property name="horizontal-angle" min="80" max="100"/>
+ <property name="vertical-angle" min="-20" max="20"/>
+ <property name="power" min="1" max="1.5"/>
+ <property name="momentum" value="0.99"/>
+ <property name="gravity" value="-0.02"/>
+ <animation imageset="graphics/particles/monster-troll-foefire.particle.png|W:#00FFFF,0000ff" width="24" height="24">
+ <frame index="0" delay="5"/>
+ <frame index="1" delay="10"/>
+ <frame index="2" delay="15"/>
+ <frame index="3" delay="25"/>
+ <frame index="4" delay="35"/>
+ <frame index="5" delay="60"/>
+ <frame index="6" delay="95"/>
+ <frame index="7" delay="160"/>
+ <frame index="8" delay="9999"/>
+ </animation>
+ <property name="lifetime" min="0" max="110"/>
+ <property name="output" min="5" max="10"/>
+ <property name="fade-in" value="0"/>
+ <property name="fade-out" value="90"/>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/glow-violet.xml b/graphics/particles/glow-violet.xml
new file mode 100644
index 00000000..a588722f
--- /dev/null
+++ b/graphics/particles/glow-violet.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<!--
+Pink-ish particles that fly up to the sky; based on Crush's Soul Menhir effect.
+-->
+<effect>
+ <particle position-x="0" position-y="0" position-z="0">
+ <emitter>
+ <property name="position-z" min="16" max="48"/>
+ <property name="vertical-angle" min="0" max="90"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="power" min="10" max="25"/>
+ <property name="lifetime" value="1"/>
+ <property name="output" value="1"/>
+ <emitter>
+ <property name="gravity" value="-0.4"/>
+ <property name="momentum" value="0.9"/>
+ <property name="image" value="graphics/particles/gloworb-medium.png|W:#da69e5"/>
+ <property name="lifetime" value="25"/>
+ <property name="fade-in" value="5"/>
+ <property name="fade-out" value="20"/>
+ <property name="output" min="0" max="1"/>
+ <property name="output-pause" min="30" max="80"/>
+ <property name="randomness" value="200"/>
+ </emitter>
+ <emitter>
+ <property name="gravity" value="-0.4"/>
+ <property name="momentum" value="0.9"/>
+ <property name="image" value="graphics/particles/orb-small.png|W:#da69e5"/>
+ <property name="lifetime" value="25"/>
+ <property name="fade-in" value="5"/>
+ <property name="fade-out" value="20"/>
+ <property name="output" min="0" max="1"/>
+ <property name="output-pause" min="30" max="80"/>
+ <property name="randomness" value="200"/>
+ </emitter>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/hellfire-low.xml b/graphics/particles/hellfire-low.xml
new file mode 100644
index 00000000..4f37966e
--- /dev/null
+++ b/graphics/particles/hellfire-low.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0"?>
+<!--
+A red and yellow blaze. Does not really look like fire but looks awesome
+nevertheless. Maybe we could modify this effect and use it for some persistent
+AoE fire magic spell.
+
+It is about 100 pixels wide and 200 pixels high, takes about 280 particles and
+lowers my FPS by about 30%.
+-->
+<effect>
+ <particle position-x="0" position-y="0" position-z="150">
+ <emitter>
+ <property name="position-z" value="-150"/>
+ <property name="position-y" value="32"/>
+ <property name="acceleration" value="0.05"/>
+ <property name="momentum" value="0.95"/>
+ <property name="image" value="graphics/particles/glow-medium.png|W:#dd3311"/>
+ <property name="lifetime" min="40" max="120"/>
+ <property name="fade-in" value="30"/>
+ <property name="fade-out" value="60"/>
+ <property name="output" min="1" max="2"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="power" min="1" max="3"/>
+ </emitter>
+ <emitter>
+ <property name="position-z" value="-150"/>
+ <property name="position-y" value="32"/>
+ <property name="acceleration" value="0.05"/>
+ <property name="momentum" value="0.95"/>
+ <property name="image" value="graphics/particles/glow-medium.png|W:#ffff00"/>
+ <property name="lifetime" min="30" max="100"/>
+ <property name="fade-in" value="10"/>
+ <property name="fade-out" value="30"/>
+ <property name="output" min="0" max="1"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="power" min="0" max="2"/>
+ </emitter>
+ <emitter>
+ <property name="position-z" value="-150"/>
+ <property name="position-y" value="32"/>
+ <property name="acceleration" value="0.05"/>
+ <property name="momentum" value="0.95"/>
+ <property name="image" value="graphics/particles/orb-medium.png|W:#eed7d7"/>
+ <property name="lifetime" min="40" max="120"/>
+ <property name="fade-in" value="15"/>
+ <property name="fade-out" value="50"/>
+ <property name="output" min="-1" max="1"/>
+ <property name="randomness" value="200"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="power" min="0" max="2"/>
+ </emitter>
+ <emitter>
+ <property name="position-z" value="-150"/>
+ <property name="position-y" value="32"/>
+ <property name="acceleration" value="0.05"/>
+ <property name="momentum" value="0.95"/>
+ <property name="image" value="graphics/particles/orb-medium.png|W:#ffb000"/>
+ <property name="lifetime" min="40" max="120"/>
+ <property name="fade-in" value="15"/>
+ <property name="fade-out" value="50"/>
+ <property name="output" min="-1" max="1"/>
+ <property name="randomness" value="200"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="power" min="0" max="2"/>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/hellblaze.particle.xml b/graphics/particles/hellfire.xml
index b9ab089c..b9ab089c 100644
--- a/graphics/particles/hellblaze.particle.xml
+++ b/graphics/particles/hellfire.xml
diff --git a/graphics/particles/icedart-directions.png b/graphics/particles/icedart-directions.png
new file mode 100644
index 00000000..20b5baa9
--- /dev/null
+++ b/graphics/particles/icedart-directions.png
Binary files differ
diff --git a/graphics/particles/icedart-directions.xml b/graphics/particles/icedart-directions.xml
new file mode 100644
index 00000000..18efbc37
--- /dev/null
+++ b/graphics/particles/icedart-directions.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Author: 4144, Micksha
+Copyright (C) 2020 Evol Online -->
+
+<effect>
+ <particle position-x="0" position-y="0" position-z="32" lifetime="128">
+ <rotation imageset="graphics/particles/icedart-directions.png" width="16" height="16">
+ <sequence start="0" end="7"/>
+ </rotation>
+ </particle>
+</effect>
diff --git a/graphics/particles/lightning-map.png b/graphics/particles/lightning-map.png
new file mode 100644
index 00000000..02accca8
--- /dev/null
+++ b/graphics/particles/lightning-map.png
Binary files differ
diff --git a/graphics/particles/lightning-map.xml b/graphics/particles/lightning-map.xml
new file mode 100644
index 00000000..c7cb2f69
--- /dev/null
+++ b/graphics/particles/lightning-map.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<!--
+An storm
+-->
+<effect>
+ <particle position-x="0" position-y="0" position-z="0">
+ <emitter>
+ <property name="position-x" min="-1000" max="1000"/>
+ <property name="position-y" min="-1000" max="1000"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="vertical-angle" min="0" max="90"/>
+ <property name="power" min="0" max="0"/>
+ <property name="gravity" value="0"/>
+ <property name="power" min="0.1" max="0.3"/>
+ <property name="gravity" value="-0.04"/>
+ <property name="image" value="graphics/particles/lightning-map.png"/>
+ <property name="lifetime" min="3" max="5"/>
+ <property name="output" min="5" max="8"/>
+ <property name="output-pause" min="800" max="1000"/>
+ <property name="fade-in" value="1"/>
+ <property name="fade-out" value="1"/>
+ <property name="randomness" value="30"/>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/luvia-attack.xml b/graphics/particles/luvia-attack.xml
new file mode 100644
index 00000000..6118686b
--- /dev/null
+++ b/graphics/particles/luvia-attack.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<!--
+ Luvia's missile attack
+-->
+<effect>
+ <particle position-x="0" position-y="0" position-z="32" lifetime="102">
+ <emitter>
+ <property name="image" value="graphics/particles/star-small.png|W:#60DAFF,FFFFFF"/>
+ <property name="lifetime" value="50"/>
+ <property name="fade-out" value="90"/>
+ <property name="output" min="3" max="5"/>
+ <property name="power" min="1" max="6"/>
+ <property name="horizontal-angle" min="-15" max="-175"/>
+ <property name="momentum" value="0.95"/>
+ <property name="randomness" value="200"/>
+ <property name="vertical-angle" min="0" max="90"/>
+ </emitter>
+ <emitter>
+ <property name="image" value="graphics/particles/orb-large.png|W:#130F16"/>
+ <property name="lifetime" value="60"/>
+ <property name="fade-out" value="90"/>
+ <property name="output" min="0" max="1"/>
+ <property name="power" min="0" max="1"/>
+ <property name="horizontal-angle" min="-10" max="-10"/>
+ <property name="momentum" value="0.95"/>
+ <property name="randomness" value="200"/>
+ <property name="vertical-angle" min="0" max="90"/>
+ </emitter>
+ <emitter>
+ <animation imageset="graphics/particles/electricity.particle.png|W:#333333" width="15" height="15">
+ <sequence start="0" end="7" delay="10"/>
+ <frame index="0" delay="10"/>
+ </animation>
+ <property name="lifetime" value="50"/>
+ <property name="fade-out" value="90"/>
+ <property name="output" min="2" max="3"/>
+ <property name="power" min="1" max="4"/>
+ <property name="horizontal-angle" min="-15" max="-175"/>
+ <property name="momentum" value="0.95"/>
+ <property name="randomness" value="200"/>
+ <property name="vertical-angle" min="0" max="90"/>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/luvia.xml b/graphics/particles/luvia.xml
new file mode 100644
index 00000000..dae3cf33
--- /dev/null
+++ b/graphics/particles/luvia.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0"?>
+<!--
+Dark Purple particles flying around the target, giving a demonic aura.
+-->
+<effect>
+ <particle position-x="0" position-y="0" position-z="0">
+ <emitter>
+ <property name="position-z" value="12"/>
+ <property name="vertical-angle" min="0" max="90"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="power" min="4" max="6"/>
+ <property name="lifetime" value="1"/>
+ <property name="output" value="1"/>
+ <emitter>
+ <property name="position-z" min="14" max="18"/>
+ <property name="position-y" min="-8" max="8"/>
+ <property name="position-x" min="-8" max="8"/>
+ <property name="vertical-angle" min="0" max="0"/>
+ <property name="power" value="5"/>
+ <property name="lifetime" value="1"/>
+ <property name="output" value="1"/>
+ <emitter>
+ <property name="image" value="graphics/particles/orb-small.png|W:#401c52"/>
+ <property name="lifetime" value="90"/>
+ <property name="fade-in" value="10"/>
+ <property name="fade-out" value="90"/>
+ <property name="output" min="0" max="1"/>
+ <property name="power" min="0" max="4"/>
+ <property name="horizontal-angle" min="-15" max="-175"/>
+ <property name="momentum" value="0.95"/>
+ <property name="randomness" value="200"/>
+ <property name="vertical-angle" min="0" max="90"/>
+ </emitter>
+ <emitter>
+ <property name="image" value="graphics/particles/star-small.png|W:#512C75,222222"/>
+ <property name="lifetime" value="90"/>
+ <property name="fade-in" value="10"/>
+ <property name="fade-out" value="90"/>
+ <property name="output" min="0" max="1"/>
+ <property name="power" min="0" max="4"/>
+ <property name="horizontal-angle" min="-15" max="-175"/>
+ <property name="momentum" value="0.95"/>
+ <property name="randomness" value="200"/>
+ <property name="vertical-angle" min="0" max="90"/>
+ </emitter>
+ </emitter>
+ <emitter>
+ <animation imageset="graphics/particles/electricity.particle.png|W:#333333" width="15" height="15">
+ <sequence start="0" end="7" delay="10"/>
+ <frame index="0" delay="10"/>
+ </animation>
+ <property name="lifetime" value="90"/>
+ <property name="fade-in" value="10"/>
+ <property name="fade-out" value="90"/>
+ <property name="output" min="0" max="1"/>
+ <property name="power" min="0" max="4"/>
+ <property name="horizontal-angle" min="-15" max="-175"/>
+ <property name="momentum" value="0.95"/>
+ <property name="randomness" value="50"/>
+ <property name="vertical-angle" min="0" max="90"/>
+ </emitter>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/magic-fire.xml b/graphics/particles/magic-fire.xml
new file mode 100644
index 00000000..fdd0b97b
--- /dev/null
+++ b/graphics/particles/magic-fire.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Author: Alige, Micksha
+Copyright (C) 2016 - 2020 Evol Online -->
+
+<effect>
+ <particle position-x="0"
+ position-y="0"
+ position-z="27"
+ lifetime="150">
+ <emitter>
+ <animation imageset="graphics/particles/sparkles.png|W:#982701,e75700,ff8900,ffbe00" 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" value="1.1"/>
+ <property name="lifetime" min="50" max="60"/>
+ <property name="output" value="1"/>
+ <property name="output-pause" value="4"/>
+ <property name="fade-in" min="5" max="10"/>
+ <property name="fade-out" value="15"/>
+ <property name="position-x" min="-12" max="12"/>
+ <property name="position-y" value="32"/>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/magic-shield-test.xml b/graphics/particles/magic-shield-test.xml
new file mode 100644
index 00000000..8f14a10e
--- /dev/null
+++ b/graphics/particles/magic-shield-test.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Author from The Mana World
+Copyright (C) 2016 Evol Online -->
+
+<effect>
+ <particle position-x="0"
+ position-y="0"
+ position-z="0"
+ lifetime="1">
+ <emitter>
+ <property name="vertical-angle" value="90"/>
+ <property name="power" value="4"/>
+ <property name="lifetime" value="25"/>
+ <property name="output" min="1" max="1"/>
+ <emitter>
+ <property name="vertical-angle" value="0"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="power" min="15" max="25"/>
+ <property name="lifetime" value="1"/>
+ <property name="output" min="0" max="2"/>
+ <emitter>
+ <animation imageset="graphics/particles/hexagon.png|W:#ff0000" width="9" height="11">
+ <sequence start="5" end="5" delay="10000"/>
+ </animation>
+ <property name="lifetime" value="20"/>
+ <property name="fade-in" value="5"/>
+ </emitter>
+ </emitter>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/magic-shield.xml b/graphics/particles/magic-shield.xml
index c9369121..4da27ee1 100644
--- a/graphics/particles/magic-shield.xml
+++ b/graphics/particles/magic-shield.xml
@@ -23,7 +23,7 @@ Copyright (C) 2016 Evol Online -->
<sequence start="4" end="4" delay="10000"/>
</animation>
<property name="lifetime" value="40"/>
- <property name="fade-in" value="5"/>
+ <property name="fade-in" value="20"/>
</emitter>
</emitter>
<emitter>
@@ -37,7 +37,7 @@ Copyright (C) 2016 Evol Online -->
<sequence start="3" end="3" delay="10000"/>
</animation>
<property name="lifetime" value="40"/>
- <property name="fade-in" value="5"/>
+ <property name="fade-in" value="20"/>
</emitter>
</emitter>
<emitter>
@@ -51,7 +51,7 @@ Copyright (C) 2016 Evol Online -->
<sequence start="2" end="2" delay="10000"/>
</animation>
<property name="lifetime" value="40"/>
- <property name="fade-in" value="5"/>
+ <property name="fade-in" value="20"/>
</emitter>
</emitter>
<emitter>
@@ -65,7 +65,7 @@ Copyright (C) 2016 Evol Online -->
<sequence start="1" end="1" delay="10000"/>
</animation>
<property name="lifetime" value="40"/>
- <property name="fade-in" value="5"/>
+ <property name="fade-in" value="20"/>
</emitter>
</emitter>
<emitter>
@@ -79,7 +79,7 @@ Copyright (C) 2016 Evol Online -->
<sequence start="0" end="0" delay="10000"/>
</animation>
<property name="lifetime" value="40"/>
- <property name="fade-in" value="5"/>
+ <property name="fade-in" value="20"/>
</emitter>
</emitter>
<emitter>
@@ -93,7 +93,7 @@ Copyright (C) 2016 Evol Online -->
<sequence start="7" end="7" delay="10000"/>
</animation>
<property name="lifetime" value="40"/>
- <property name="fade-in" value="5"/>
+ <property name="fade-in" value="20"/>
</emitter>
</emitter>
<emitter>
@@ -107,7 +107,7 @@ Copyright (C) 2016 Evol Online -->
<sequence start="6" end="6" delay="10000"/>
</animation>
<property name="lifetime" value="40"/>
- <property name="fade-in" value="5"/>
+ <property name="fade-in" value="20"/>
</emitter>
</emitter>
<emitter>
@@ -121,7 +121,7 @@ Copyright (C) 2016 Evol Online -->
<sequence start="5" end="5" delay="10000"/>
</animation>
<property name="lifetime" value="40"/>
- <property name="fade-in" value="5"/>
+ <property name="fade-in" value="20"/>
</emitter>
</emitter>
<emitter>
@@ -135,7 +135,7 @@ Copyright (C) 2016 Evol Online -->
<sequence start="4" end="4" delay="10000"/>
</animation>
<property name="lifetime" value="40"/>
- <property name="fade-in" value="5"/>
+ <property name="fade-in" value="20"/>
</emitter>
</emitter>
<emitter>
@@ -149,7 +149,7 @@ Copyright (C) 2016 Evol Online -->
<sequence start="3" end="3" delay="10000"/>
</animation>
<property name="lifetime" value="40"/>
- <property name="fade-in" value="5"/>
+ <property name="fade-in" value="20"/>
</emitter>
</emitter>
<emitter>
@@ -163,7 +163,7 @@ Copyright (C) 2016 Evol Online -->
<sequence start="2" end="2" delay="10000"/>
</animation>
<property name="lifetime" value="40"/>
- <property name="fade-in" value="5"/>
+ <property name="fade-in" value="20"/>
</emitter>
</emitter>
<emitter>
@@ -177,7 +177,7 @@ Copyright (C) 2016 Evol Online -->
<sequence start="1" end="1" delay="10000"/>
</animation>
<property name="lifetime" value="40"/>
- <property name="fade-in" value="5"/>
+ <property name="fade-in" value="20"/>
</emitter>
</emitter>
<emitter>
@@ -191,7 +191,7 @@ Copyright (C) 2016 Evol Online -->
<sequence start="0" end="0" delay="10000"/>
</animation>
<property name="lifetime" value="40"/>
- <property name="fade-in" value="5"/>
+ <property name="fade-in" value="20"/>
</emitter>
</emitter>
<emitter>
@@ -205,7 +205,7 @@ Copyright (C) 2016 Evol Online -->
<sequence start="7" end="7" delay="10000"/>
</animation>
<property name="lifetime" value="40"/>
- <property name="fade-in" value="5"/>
+ <property name="fade-in" value="20"/>
</emitter>
</emitter>
<emitter>
@@ -219,7 +219,7 @@ Copyright (C) 2016 Evol Online -->
<sequence start="6" end="6" delay="10000"/>
</animation>
<property name="lifetime" value="40"/>
- <property name="fade-in" value="5"/>
+ <property name="fade-in" value="20"/>
</emitter>
</emitter>
<emitter>
@@ -233,7 +233,7 @@ Copyright (C) 2016 Evol Online -->
<sequence start="5" end="5" delay="10000"/>
</animation>
<property name="lifetime" value="40"/>
- <property name="fade-in" value="5"/>
+ <property name="fade-in" value="20"/>
</emitter>
</emitter>
</emitter>
diff --git a/graphics/particles/magic-shield2.xml b/graphics/particles/magic-shield2.xml
new file mode 100644
index 00000000..f7f25ce2
--- /dev/null
+++ b/graphics/particles/magic-shield2.xml
@@ -0,0 +1,241 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Author from The Mana World
+Copyright (C) 2016 Evol Online -->
+
+<effect>
+ <particle position-x="0"
+ position-y="0"
+ position-z="0"
+ lifetime="1">
+ <emitter>
+ <property name="vertical-angle" value="90"/>
+ <property name="power" value="4"/>
+ <property name="lifetime" value="25"/>
+ <property name="output" min="1" max="1"/>
+ <emitter>
+ <property name="vertical-angle" value="0"/>
+ <property name="horizontal-angle" min="-11" max="11"/>
+ <property name="power" min="35" max="50"/>
+ <property name="lifetime" value="1"/>
+ <property name="output" value="1"/>
+ <emitter>
+ <animation imageset="graphics/particles/hexagon.png|W:#5fbdff" width="9" height="11">
+ <sequence start="4" end="4" delay="10000"/>
+ </animation>
+ <property name="lifetime" value="40"/>
+ <property name="fade-in" value="20"/>
+ </emitter>
+ </emitter>
+ <emitter>
+ <property name="vertical-angle" value="0"/>
+ <property name="horizontal-angle" min="11" max="33"/>
+ <property name="power" min="35" max="50"/>
+ <property name="lifetime" value="1"/>
+ <property name="output" value="1"/>
+ <emitter>
+ <animation imageset="graphics/particles/hexagon.png|W:#5fbdff" width="9" height="11">
+ <sequence start="3" end="3" delay="10000"/>
+ </animation>
+ <property name="lifetime" value="40"/>
+ <property name="fade-in" value="20"/>
+ </emitter>
+ </emitter>
+ <emitter>
+ <property name="vertical-angle" value="0"/>
+ <property name="horizontal-angle" min="34" max="56"/>
+ <property name="power" min="35" max="50"/>
+ <property name="lifetime" value="1"/>
+ <property name="output" value="1"/>
+ <emitter>
+ <animation imageset="graphics/particles/hexagon.png|W:#5fbdff" width="9" height="11">
+ <sequence start="2" end="2" delay="10000"/>
+ </animation>
+ <property name="lifetime" value="40"/>
+ <property name="fade-in" value="20"/>
+ </emitter>
+ </emitter>
+ <emitter>
+ <property name="vertical-angle" value="0"/>
+ <property name="horizontal-angle" min="56" max="78"/>
+ <property name="power" min="35" max="50"/>
+ <property name="lifetime" value="1"/>
+ <property name="output" value="1"/>
+ <emitter>
+ <animation imageset="graphics/particles/hexagon.png|W:#5fbdff" width="9" height="11">
+ <sequence start="1" end="1" delay="10000"/>
+ </animation>
+ <property name="lifetime" value="40"/>
+ <property name="fade-in" value="20"/>
+ </emitter>
+ </emitter>
+ <emitter>
+ <property name="vertical-angle" value="0"/>
+ <property name="horizontal-angle" min="79" max="101"/>
+ <property name="power" min="35" max="50"/>
+ <property name="lifetime" value="1"/>
+ <property name="output" value="1"/>
+ <emitter>
+ <animation imageset="graphics/particles/hexagon.png|W:#5fbdff" width="9" height="11">
+ <sequence start="0" end="0" delay="10000"/>
+ </animation>
+ <property name="lifetime" value="40"/>
+ <property name="fade-in" value="20"/>
+ </emitter>
+ </emitter>
+ <emitter>
+ <property name="vertical-angle" value="0"/>
+ <property name="horizontal-angle" min="101" max="123"/>
+ <property name="power" min="35" max="50"/>
+ <property name="lifetime" value="1"/>
+ <property name="output" value="1"/>
+ <emitter>
+ <animation imageset="graphics/particles/hexagon.png|W:#5fbdff" width="9" height="11">
+ <sequence start="7" end="7" delay="10000"/>
+ </animation>
+ <property name="lifetime" value="40"/>
+ <property name="fade-in" value="20"/>
+ </emitter>
+ </emitter>
+ <emitter>
+ <property name="vertical-angle" value="0"/>
+ <property name="horizontal-angle" min="124" max="146"/>
+ <property name="power" min="35" max="50"/>
+ <property name="lifetime" value="1"/>
+ <property name="output" value="1"/>
+ <emitter>
+ <animation imageset="graphics/particles/hexagon.png|W:#5fbdff" width="9" height="11">
+ <sequence start="6" end="6" delay="10000"/>
+ </animation>
+ <property name="lifetime" value="40"/>
+ <property name="fade-in" value="20"/>
+ </emitter>
+ </emitter>
+ <emitter>
+ <property name="vertical-angle" value="0"/>
+ <property name="horizontal-angle" min="146" max="168"/>
+ <property name="power" min="35" max="50"/>
+ <property name="lifetime" value="1"/>
+ <property name="output" value="1"/>
+ <emitter>
+ <animation imageset="graphics/particles/hexagon.png|W:#5fbdff" width="9" height="11">
+ <sequence start="5" end="5" delay="10000"/>
+ </animation>
+ <property name="lifetime" value="40"/>
+ <property name="fade-in" value="20"/>
+ </emitter>
+ </emitter>
+ <emitter>
+ <property name="vertical-angle" value="0"/>
+ <property name="horizontal-angle" min="169" max="191"/>
+ <property name="power" min="35" max="50"/>
+ <property name="lifetime" value="1"/>
+ <property name="output" value="1"/>
+ <emitter>
+ <animation imageset="graphics/particles/hexagon.png|W:#5fbdff" width="9" height="11">
+ <sequence start="4" end="4" delay="10000"/>
+ </animation>
+ <property name="lifetime" value="40"/>
+ <property name="fade-in" value="20"/>
+ </emitter>
+ </emitter>
+ <emitter>
+ <property name="vertical-angle" value="0"/>
+ <property name="horizontal-angle" min="191" max="213"/>
+ <property name="power" min="35" max="50"/>
+ <property name="lifetime" value="1"/>
+ <property name="output" value="1"/>
+ <emitter>
+ <animation imageset="graphics/particles/hexagon.png|W:#5fbdff" width="9" height="11">
+ <sequence start="3" end="3" delay="10000"/>
+ </animation>
+ <property name="lifetime" value="40"/>
+ <property name="fade-in" value="20"/>
+ </emitter>
+ </emitter>
+ <emitter>
+ <property name="vertical-angle" value="0"/>
+ <property name="horizontal-angle" min="214" max="236"/>
+ <property name="power" min="35" max="50"/>
+ <property name="lifetime" value="1"/>
+ <property name="output" value="1"/>
+ <emitter>
+ <animation imageset="graphics/particles/hexagon.png|W:#5fbdff" width="9" height="11">
+ <sequence start="2" end="2" delay="10000"/>
+ </animation>
+ <property name="lifetime" value="40"/>
+ <property name="fade-in" value="20"/>
+ </emitter>
+ </emitter>
+ <emitter>
+ <property name="vertical-angle" value="0"/>
+ <property name="horizontal-angle" min="236" max="258"/>
+ <property name="power" min="35" max="50"/>
+ <property name="lifetime" value="1"/>
+ <property name="output" value="1"/>
+ <emitter>
+ <animation imageset="graphics/particles/hexagon.png|W:#5fbdff" width="9" height="11">
+ <sequence start="1" end="1" delay="10000"/>
+ </animation>
+ <property name="lifetime" value="40"/>
+ <property name="fade-in" value="20"/>
+ </emitter>
+ </emitter>
+ <emitter>
+ <property name="vertical-angle" value="0"/>
+ <property name="horizontal-angle" min="259" max="281"/>
+ <property name="power" min="35" max="50"/>
+ <property name="lifetime" value="1"/>
+ <property name="output" value="1"/>
+ <emitter>
+ <animation imageset="graphics/particles/hexagon.png|W:#5fbdff" width="9" height="11">
+ <sequence start="0" end="0" delay="10000"/>
+ </animation>
+ <property name="lifetime" value="40"/>
+ <property name="fade-in" value="20"/>
+ </emitter>
+ </emitter>
+ <emitter>
+ <property name="vertical-angle" value="0"/>
+ <property name="horizontal-angle" min="281" max="303"/>
+ <property name="power" min="35" max="50"/>
+ <property name="lifetime" value="1"/>
+ <property name="output" value="1"/>
+ <emitter>
+ <animation imageset="graphics/particles/hexagon.png|W:#5fbdff" width="9" height="11">
+ <sequence start="7" end="7" delay="10000"/>
+ </animation>
+ <property name="lifetime" value="40"/>
+ <property name="fade-in" value="20"/>
+ </emitter>
+ </emitter>
+ <emitter>
+ <property name="vertical-angle" value="0"/>
+ <property name="horizontal-angle" min="304" max="326"/>
+ <property name="power" min="35" max="50"/>
+ <property name="lifetime" value="1"/>
+ <property name="output" value="1"/>
+ <emitter>
+ <animation imageset="graphics/particles/hexagon.png|W:#5fbdff" width="9" height="11">
+ <sequence start="6" end="6" delay="10000"/>
+ </animation>
+ <property name="lifetime" value="40"/>
+ <property name="fade-in" value="20"/>
+ </emitter>
+ </emitter>
+ <emitter>
+ <property name="vertical-angle" value="0"/>
+ <property name="horizontal-angle" min="326" max="348"/>
+ <property name="power" min="35" max="50"/>
+ <property name="lifetime" value="1"/>
+ <property name="output" value="1"/>
+ <emitter>
+ <animation imageset="graphics/particles/hexagon.png|W:#5fbdff" width="9" height="11">
+ <sequence start="5" end="5" delay="10000"/>
+ </animation>
+ <property name="lifetime" value="40"/>
+ <property name="fade-in" value="20"/>
+ </emitter>
+ </emitter>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/mammonite.xml b/graphics/particles/mammonite.xml
new file mode 100644
index 00000000..efaa457a
--- /dev/null
+++ b/graphics/particles/mammonite.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Authors: Micksha
+Copyright (C) 2010-2020 Evol Online -->
+
+<effect>
+ <particle position-x="0"
+ position-y="0"
+ position-z="30"
+ lifetime="1">
+ <emitter>
+ <property name="position-x" value="0"/>
+ <property name="position-y" value="0"/>
+ <property name="vertical-angle" min="70" max="90"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="power" min="1" max="3"/>
+ <property name="gravity" value="0.05"/>
+ <property name="image" value="graphics/particles/orb-large2.png|W:#473d0c,a67e18,daa520,ffdb94"/>
+ <property name="lifetime" min="40" max="80"/>
+ <property name="fade-out" value="60"/>
+ <property name="output" min="4" max="8"/>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/meteor-hail.xml b/graphics/particles/meteor-hail.xml
new file mode 100644
index 00000000..b01f6634
--- /dev/null
+++ b/graphics/particles/meteor-hail.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+<effect>
+ <particle position-x="0" position-y="0" position-z="400" lifetime="1000">
+ <!-- <property name="follow-parent" value="0"/> -->
+ <emitter>
+ <!-- <property name="follow-parent" value="0"/> -->
+ <property name="lifetime" min="180" max="240"/>
+ <property name="position-x" min="-96" max="128"/>
+ <property name="position-y" min="-128" max="96"/>
+ <property name="vertical-angle" value="240"/>
+ <property name="power" value="10"/>
+ <property name="output" min="5" max="15"/>
+ <property name="output-pause" min="5" max="10"/>
+ <property name="gravity" value="0.09"/>
+ <property name="image" value="graphics/particles/fireball.png"/>
+ <emitter>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="vertical-angle" min="0" max="90"/>
+ <property name="power" min="0.3" max="0.8"/>
+ <property name="gravity" value="-0.02"/>
+ <animation imageset="graphics/particles/aniblaze.png|W:W:#631400,c37700,f8d900" width="8" height="8">
+ <sequence start="0" end="8" delay="30"/>
+ <frame index="8" delay="1000"/>
+ </animation>
+ <property name="lifetime" min="20" max="50"/>
+ <property name="output" min="1" max="5"/>
+ <property name="fade-in" value="2"/>
+ <property name="fade-out" value="10"/>
+ </emitter>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/nova-circle.xml b/graphics/particles/nova-circle.xml
new file mode 100644
index 00000000..51735a70
--- /dev/null
+++ b/graphics/particles/nova-circle.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Author: 4144
+Copyright (C) 2015 Evol Online -->
+
+<effect>
+ <particle position-x="0"
+ position-y="32"
+ position-z="32"
+ lifetime="1">
+ <emitter>
+ <property name="follow-parent" value="1"/>
+ <property name="position-x" value="0"/>
+ <property name="position-y" value="72"/>
+ <property name="position-z" value="32"/>
+ <property name="image" value="graphics/particles/orb-oversized.png|W:#19AEBF,1567FF,59E6FF"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="vertical-angle" min="0" max="360"/>
+ <property name="power" value="1"/>
+ <property name="acceleration" value="0.05"/>
+ <property name="alpha" value="0.5"/>
+ <emitter>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="vertical-angle" min="0" max="90"/>
+ <property name="power" min="0.3" max="0.8"/>
+ <property name="gravity" value="-0.02"/>
+ <animation imageset="graphics/particles/aniblaze.png|W:#19AEBF,1567FF,59E6FF" width="8" height="8">
+ <sequence start="0" end="8" delay="30"/>
+ <frame index="8" delay="1000"/>
+ </animation>
+ <property name="lifetime" min="35" max="50"/>
+ <property name="output" min="1" max="3"/>
+ <property name="fade-in" value="2"/>
+ <property name="fade-out" value="10"/>
+ <emitter>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="vertical-angle" min="0" max="90"/>
+ <property name="power" min="0.3" max="0.8"/>
+ <property name="gravity" value="-0.02"/>
+ <property name="image" value="graphics/particles/glow-medium.png|W:#19AEBF,1567FF,59E6FF"/>
+ <property name="lifetime" min="5" max="10"/>
+ <property name="output" value="1"/>
+ <property name="alpha" value="0.7"/>
+ </emitter>
+ </emitter>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/orb-oversized.png b/graphics/particles/orb-oversized.png
new file mode 100644
index 00000000..e0ea3808
--- /dev/null
+++ b/graphics/particles/orb-oversized.png
Binary files differ
diff --git a/graphics/particles/orbit.xml b/graphics/particles/orbit.xml
new file mode 100644
index 00000000..7bc9a1f6
--- /dev/null
+++ b/graphics/particles/orbit.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+
+<effect>
+ <particle position-x="0" position-y="0" position-z="0">
+ <emitter>
+ <property name="position-y" value="-16"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="vertical-angle" min="0" max="0"/>
+ <property name="power" value="40"/>
+ <property name="lifetime" value="1"/>
+ <property name="output" value="5"/>
+ <emitter>
+ <property name="image" value="graphics/particles/glowdot-small.png|W:#000000"/>
+ <property name="lifetime" value="77"/>
+ <property name="fade-in" value="57"/>
+ <property name="fade-out" value="20"/>
+ <property name="output" value="1"/>
+ </emitter>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/particle-dart-white.xml b/graphics/particles/particle-dart-white.xml
new file mode 100644
index 00000000..f66554a5
--- /dev/null
+++ b/graphics/particles/particle-dart-white.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+
+<effect>
+ <particle position-x="17" position-y="0" position-z="32">
+ <emitter>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="vertical-angle" min="0" max="90"/>
+ <property name="power" min="0.3" max="0.8"/>
+ <property name="gravity" value="-0.02"/>
+ <animation imageset="graphics/particles/aniblaze.png" width="8" height="8">
+ <sequence start="0" end="8" delay="30"/>
+ <frame index="8" delay="1000"/>
+ </animation>
+ <property name="lifetime" min="35" max="50"/>
+ <property name="output" min="1" max="3"/>
+ <property name="fade-in" value="2"/>
+ <property name="fade-out" value="10"/>
+ </emitter>
+ </particle>
+</effect>
+
diff --git a/graphics/particles/pentagram-blackline.xml b/graphics/particles/pentagram-blackline.xml
new file mode 100644
index 00000000..221ad99c
--- /dev/null
+++ b/graphics/particles/pentagram-blackline.xml
@@ -0,0 +1,127 @@
+<?xml version="1.0"?>
+<!--
+Pentagram on floor effect with flashes along the lines.
+Based on the one by fate with simplified structure and modified to be a permanent effect.
+Particle count fluctuates around 800-1000
+
+ (0, -76.0),
+
+(-57, -35), (57, -35),
+
+
+ (-35, 33)] [(35, 33),
+-->
+<effect>
+ <particle position-x="0" position-y="0" position-z="0">
+ <emitter>
+ <property name="position-y" value="-16"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="vertical-angle" min="0" max="0"/>
+ <property name="power" value="60"/>
+ <property name="lifetime" value="1"/>
+ <property name="output" value="5"/>
+ <emitter>
+ <property name="image" value="graphics/particles/glowdot-small.png|W:#000000"/>
+ <property name="lifetime" value="77"/>
+ <property name="fade-in" value="57"/>
+ <property name="fade-out" value="20"/>
+ <property name="output" value="1"/>
+ </emitter>
+ </emitter>
+ <emitter>
+ <property name="position-x" value="57"/>
+ <property name="position-y" value="-35"/>
+ <property name="output" min="-50" max="1"/>
+ <property name="lifetime" value="1"/>
+ <emitter>
+ <property name="horizontal-angle" value="180"/>
+ <property name="vertical-angle" min="0" max="0"/>
+ <property name="power" value="2"/>
+ <property name="lifetime" value="57"/>
+ <property name="image" value="graphics/particles/glowdot-small.png|W:#000000"/>
+ <emitter>
+ <property name="image" value="graphics/particles/glowdot-small.png|W:#000000"/>
+ <property name="lifetime" value="20"/>
+ <property name="fade-out" value="20"/>
+ <property name="output" value="1"/>
+ </emitter>
+ </emitter>
+ </emitter>
+ <emitter>
+ <property name="position-x" value="-57"/>
+ <property name="position-y" value="-35"/>
+ <property name="output" min="-50" max="1"/>
+ <property name="lifetime" value="1"/>
+ <emitter>
+ <property name="horizontal-angle" value="36"/>
+ <property name="vertical-angle" min="0" max="0"/>
+ <property name="power" value="2"/>
+ <property name="lifetime" value="57"/>
+ <property name="image" value="graphics/particles/glowdot-small.png|W:#000000"/>
+ <emitter>
+ <property name="image" value="graphics/particles/glowdot-small.png|W:#000000"/>
+ <property name="lifetime" value="20"/>
+ <property name="fade-out" value="20"/>
+ <property name="output" value="1"/>
+ </emitter>
+ </emitter>
+ </emitter>
+ <emitter>
+ <property name="position-x" value="35"/>
+ <property name="position-y" value="33"/>
+ <property name="output" min="-50" max="1"/>
+ <property name="lifetime" value="1"/>
+ <emitter>
+ <property name="horizontal-angle" value="252"/>
+ <property name="vertical-angle" min="0" max="0"/>
+ <property name="power" value="2"/>
+ <property name="lifetime" value="57"/>
+ <property name="image" value="graphics/particles/glowdot-small.png|W:#000000"/>
+ <emitter>
+ <property name="image" value="graphics/particles/glowdot-small.png|W:#000000"/>
+ <property name="lifetime" value="20"/>
+ <property name="fade-out" value="20"/>
+ <property name="output" value="1"/>
+ </emitter>
+ </emitter>
+ </emitter>
+ <emitter>
+ <property name="position-y" value="-76"/>
+ <property name="position-x" value="0"/>
+ <property name="output" min="-50" max="1"/>
+ <property name="lifetime" value="1"/>
+ <emitter>
+ <property name="horizontal-angle" value="108"/>
+ <property name="vertical-angle" min="0" max="0"/>
+ <property name="power" value="2"/>
+ <property name="lifetime" value="57"/>
+ <property name="image" value="graphics/particles/glowdot-small.png|W:#000000"/>
+ <emitter>
+ <property name="image" value="graphics/particles/glowdot-small.png|W:#000000"/>
+ <property name="lifetime" value="20"/>
+ <property name="fade-out" value="20"/>
+ <property name="output" value="1"/>
+ </emitter>
+ </emitter>
+ </emitter>
+ <emitter>
+ <property name="position-x" value="-35"/>
+ <property name="position-y" value="33"/>
+ <property name="output" min="-50" max="1"/>
+ <property name="lifetime" value="1"/>
+ <emitter>
+ <property name="horizontal-angle" value="324"/>
+ <property name="vertical-angle" min="0" max="0"/>
+ <property name="power" value="2"/>
+ <property name="lifetime" value="57"/>
+ <property name="image" value="graphics/particles/glowdot-small.png|W:#000000"/>
+ <emitter>
+ <property name="image" value="graphics/particles/glowdot-small.png|W:#000000"/>
+ <property name="lifetime" value="20"/>
+ <property name="fade-out" value="20"/>
+ <property name="output" value="1"/>
+ </emitter>
+ </emitter>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/portal-door.xml b/graphics/particles/portal-door.xml
new file mode 100644
index 00000000..71bcf6c7
--- /dev/null
+++ b/graphics/particles/portal-door.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<effect>
+ <particle position-x="15" position-y="0" position-z="38">
+ <emitter>
+ <property name="vertical-angle" min="0" max="360"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="power" min="8" max="10"/>
+ <property name="lifetime" value="1"/>
+ <property name="output" value="1"/>
+ <emitter>
+ <!-- <property name="position-x" value="-5"/> -->
+ <property name="position-y" min="0" max="30"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="vertical-angle" min="0" max="360"/>
+ <property name="power" value="0.3"/>
+ <property name="gravity" value="-0.01"/>
+ <animation imageset="graphics/particles/aniblaze-medium.png|W:#a831cf" width="16" height="16">
+ <sequence start="0" end="8" delay="60"/>
+ <frame index="8" delay="900"/>
+ </animation>
+ <property name="lifetime" value="60"/>
+ <property name="output" min="0" max="2"/>
+ <property name="fade-in" value="0"/>
+ <property name="fade-out" value="10"/>
+ </emitter>
+ <emitter>
+ <property name="position-x" min="20" max="-20"/>
+ <property name="position-y" min="-40" max="35"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="vertical-angle" min="0" max="360"/>
+ <property name="power" value="0.1"/>
+ <property name="gravity" value="-0.03"/>
+ <animation imageset="graphics/particles/fog-medium-2.png|W:#535cd5" width="32" height="32">
+ <frame index="0" delay="90"/>
+ <frame index="0" delay="900"/>
+ </animation>
+ <property name="lifetime" value="60"/>
+ <property name="output" min="0" max="2"/>
+ <property name="fade-in" value="0"/>
+ <property name="fade-out" value="130"/>
+ </emitter>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/rain.xml b/graphics/particles/rain.xml
new file mode 100644
index 00000000..4717325d
--- /dev/null
+++ b/graphics/particles/rain.xml
@@ -0,0 +1,17 @@
+<?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="25" max="30"/>
+ <property name="position-x" min="60" max="120"/>
+ <property name="position-y" min="-30" max="30"/>
+ <property name="vertical-angle" value="260"/>
+ <property name="power" value="20"/>
+ <property name="output" min="0" max="1"/>
+ <property name="gravity" value="0.04"/>
+ <property name="image" value="graphics/particles/raindrop.png"/>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/raindrop.png b/graphics/particles/raindrop.png
new file mode 100644
index 00000000..89fa8064
--- /dev/null
+++ b/graphics/particles/raindrop.png
Binary files differ
diff --git a/graphics/particles/selfbuff-persistent-hp.xml b/graphics/particles/selfbuff-persistent-hp.xml
new file mode 100644
index 00000000..1dd56349
--- /dev/null
+++ b/graphics/particles/selfbuff-persistent-hp.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<!--
+A circle on the ground 60 pixels in diameter made from particles.
+-->
+<effect>
+ <particle position-x="0" position-y="0" position-z="0">
+ <emitter>
+ <property name="position-y" value="-16"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="vertical-angle" min="0" max="0"/>
+ <property name="power" value="15"/>
+ <property name="lifetime" value="1"/>
+ <property name="output" value="1"/>
+ <emitter>
+ <property name="gravity" value="-0.7"/>
+ <property name="momentum" value="1.2"/>
+ <property name="image" value="graphics/particles/gloworb.png|W:#ffabd3"/>
+ <property name="lifetime" value="10"/>
+ <property name="fade-out" value="50"/>
+ <property name="output" value="1"/>
+ <property name="follow-parent"/>
+ </emitter>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/selfbuff-persistent-sp.xml b/graphics/particles/selfbuff-persistent-sp.xml
new file mode 100644
index 00000000..d7816cb8
--- /dev/null
+++ b/graphics/particles/selfbuff-persistent-sp.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<!--
+A circle on the ground 60 pixels in diameter made from particles.
+-->
+<effect>
+ <particle position-x="0" position-y="0" position-z="0">
+ <emitter>
+ <property name="position-y" value="-16"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="vertical-angle" min="0" max="0"/>
+ <property name="power" value="15"/>
+ <property name="lifetime" value="1"/>
+ <property name="output" value="1"/>
+ <emitter>
+ <property name="gravity" value="-0.7"/>
+ <property name="momentum" value="1.2"/>
+ <property name="image" value="graphics/particles/gloworb.png|W:#abf2ff"/>
+ <property name="lifetime" value="10"/>
+ <property name="fade-out" value="50"/>
+ <property name="output" value="1"/>
+ <property name="follow-parent"/>
+ </emitter>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/selfbuff-persistent.xml b/graphics/particles/selfbuff-persistent.xml
new file mode 100644
index 00000000..6ba6ad9d
--- /dev/null
+++ b/graphics/particles/selfbuff-persistent.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<!--
+A circle on the ground 60 pixels in diameter made from particles.
+-->
+<effect>
+ <particle position-x="0" position-y="0" position-z="0">
+ <emitter>
+ <property name="position-y" value="-16"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="vertical-angle" min="0" max="0"/>
+ <property name="power" value="15"/>
+ <property name="lifetime" value="1"/>
+ <property name="output" value="1"/>
+ <emitter>
+ <property name="gravity" value="-0.8"/>
+ <property name="momentum" value="0.3"/>
+ <property name="image" value="graphics/particles/orb-small.png|W:#2733cb"/>
+ <property name="lifetime" value="50"/>
+ <property name="fade-out" value="50"/>
+ <property name="output" value="1"/>
+ <property name="follow-parent"/>
+ </emitter>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/snow-special.xml b/graphics/particles/snow-special.xml
new file mode 100644
index 00000000..d6def9c1
--- /dev/null
+++ b/graphics/particles/snow-special.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<!--
+Snowflakes which cover 200x200 tiles which is enough for most reasonably-sized
+maps. Most people think it sucks.
+-->
+<effect>
+ <particle position-x="0" position-y="0" position-z="512">
+ <emitter>
+ <property name="position-x" min="0.0" max="6400"/>
+ <property name="position-y" min="0.0" max="6400"/>
+ <property name="gravity" value="0.03"/>
+ <property name="momentum" value="0.97"/>
+ <!--<property name="randomnes" value="100"/>-->
+ <property name="image" value="graphics/particles/snowflake.png"/>
+ <property name="output" min="0" max="3"/>
+ <property name="fade-in" value="100"/>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/snowflake.png b/graphics/particles/snowflake.png
new file mode 100644
index 00000000..6989c2c0
--- /dev/null
+++ b/graphics/particles/snowflake.png
Binary files differ
diff --git a/graphics/particles/spiral-falling-green.xml b/graphics/particles/spiral-falling-green.xml
new file mode 100644
index 00000000..e77743df
--- /dev/null
+++ b/graphics/particles/spiral-falling-green.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Author: 4144
+Copyright (C) 2015 Evol Online -->
+
+<effect>
+ <particle position-x="0"
+ position-y="0"
+ position-z="60"
+ lifetime="1">
+ <emitter>
+ <property name="follow-parent" value="1"/>
+ <property name="position-x" value="60"/>
+ <property name="position-y" value="-10"/>
+ <property name="position-z" value="20"/>
+ <property name="image" value="graphics/particles/orb-large2.png|W:#115511,22aa22,99dd99"/>
+ <property name="horizontal-angle" value="90"/>
+ <property name="vertical-angle" min="180" max="365" change-func="sine"/>
+ <property name="power" value="1.2"/>
+ <property name="acceleration" value="0.03"/>
+ <property name="alpha" value="0.8"/>
+ <property name="gravity" value="0.1"/>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/spirit-circle.xml b/graphics/particles/spirit-circle.xml
new file mode 100644
index 00000000..4cdbcef9
--- /dev/null
+++ b/graphics/particles/spirit-circle.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Author: 4144
+Copyright (C) 2015 Evol Online -->
+
+<effect>
+ <particle position-x="0"
+ position-y="0"
+ position-z="64"
+ lifetime="1">
+ <emitter>
+ <property name="follow-parent" value="1"/>
+ <property name="position-x" value="10"/>
+ <property name="position-y" value="0"/>
+ <property name="position-z" value="10"/>
+ <property name="image" value="graphics/particles/orb-large2.png|W:#5050e0,0000e0"/>
+ <property name="horizontal-angle" value="-45"/>
+ <property name="vertical-angle" min="0" max="360"/>
+ <property name="power" value="0.5"/>
+ <property name="acceleration" value="0.03"/>
+ <property name="alpha" value="0.5"/>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/voidportal.xml b/graphics/particles/voidportal.xml
new file mode 100644
index 00000000..8d6a0edb
--- /dev/null
+++ b/graphics/particles/voidportal.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+<effect>
+ <!--
+A black circle about 100 pixels in diameter with an unsharp border which emits
+white particles. Looks like a portal to another dimension. It takes about 420
+particles and reduces the FPS by about 30%.
+
+Could be used for a monster spawn area.
+-->
+ <particle position-x="0" position-y="0" position-z="64">
+ <emitter>
+ <property name="power" min="1" max="2"/>
+ <property name="vertical-angle" min="0" max="360"/>
+ <property name="position-x" min="-18" max="18"/>
+ <property name="position-z" min="-18" max="18"/>
+ <property name="image" value="graphics/particles/glow-medium.png|W:#000000"/>
+ <property name="output" min="1" max="2"/>
+ <property name="acceleration" value="0.05"/>
+ <property name="lifetime" value="80"/>
+ </emitter>
+ <emitter>
+ <property name="power" value="0.2"/>
+ <property name="vertical-angle" min="-80" max="80"/>
+ <property name="horizontal-angle" min="10" max="170"/>
+ <property name="momentum" value="1.03"/>
+ <property name="image" value="graphics/particles/orb-medium.png|W:#ffffff"/>
+ <property name="lifetime" value="90"/>
+ <property name="fade-out" value="45"/>
+ <property name="output" value="3"/>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/whiteball.xml b/graphics/particles/whiteball.xml
new file mode 100644
index 00000000..12eeb0c9
--- /dev/null
+++ b/graphics/particles/whiteball.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Authors: Micksha
+Copyright (C) 2010-2020 Evol Online -->
+
+<effect>
+ <particle position-x="0"
+ position-y="0"
+ position-z="24"
+ lifetime="1">
+ <emitter>
+ <property name="position-x" value="0"/>
+ <property name="position-y" value="0"/>
+ <property name="vertical-angle" min="0" max="360"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="power" min="1" max="2"/>
+ <property name="image" value="graphics/particles/orb-small.png|W:#ffffff"/>
+ <property name="lifetime" min="40" max="80"/>
+ <property name="fade-out" value="60"/>
+ <property name="output" min="80" max="120"/>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/whitecircle.xml b/graphics/particles/whitecircle.xml
new file mode 100644
index 00000000..81b4a002
--- /dev/null
+++ b/graphics/particles/whitecircle.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Authors: Micksha
+Copyright (C) 2010-2020 Evol Online -->
+
+<effect>
+ <particle position-x="0"
+ position-y="0"
+ position-z="0"
+ lifetime="1">
+ <emitter>
+ <property name="position-x" value="0"/>
+ <property name="position-y" value="0"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="power" value="0.5"/>
+ <property name="image" value="graphics/particles/orb-small.png|W:#ffffff"/>
+ <property name="lifetime" min="40" max="80"/>
+ <property name="fade-out" value="60"/>
+ <property name="output" min="80" max="480"/>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/wisp.xml b/graphics/particles/wisp.xml
new file mode 100644
index 00000000..d9ca2851
--- /dev/null
+++ b/graphics/particles/wisp.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<!--
+A circle on the ground 60 pixels in diameter made from particles.
+-->
+<effect>
+ <particle position-x="0" position-y="0" position-z="48">
+ <emitter>
+ <property name="position-y" min="-16" max="16"/>
+ <property name="position-y" min="-16" max="16"/>
+ <property name="position-z" min="-16" max="16"/>
+ <property name="horizontal-angle" min="0" max="360"/>
+ <property name="vertical-angle" min="0" max="360"/>
+ <property name="power" min="0.4" max="2"/>
+ <property name="lifetime" value="160"/>
+ <property name="fade-out" value="40"/>
+ <property name="fade-in" value="40"/>
+ <property name="output" min="-20" max="1"/>
+ <property name="acceleration" value="0.1"/>
+ <property name="alpha" value="0.5"/>
+ <property name="image" value="graphics/particles/star-small.png|W:#ffff00,ffffff"/>
+ <property name="follow-parent"/>
+ </emitter>
+ </particle>
+</effect>
diff --git a/graphics/particles/wispdance.xml b/graphics/particles/wispdance.xml
new file mode 100644
index 00000000..3069fa3a
--- /dev/null
+++ b/graphics/particles/wispdance.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0"?>
+<!--
+Two orbiting particles high above ground which leave a trail of falling sparks
+and thus create a falling double helix.
+
+About 180 particles on max detail.
+
+ Does not work with particleFastPhysics on 2.
+-->
+<effect>
+ <particle position-x="0" position-y="0" position-z="200" lifetime="1">
+ <!-- PURPLE -->
+ <emitter>
+ <property name="position-x" value="60"/>
+ <property name="position-y" value="0"/>
+ <property name="position-z" value="20"/>
+ <property name="image" value="graphics/particles/orb-large.png|W:#dd66ff,ffffff"/>
+ <property name="horizontal-angle" value="90"/>
+ <property name="vertical-angle" value="0"/>
+ <property name="power" value="3"/>
+ <property name="acceleration" value="0.1"/>
+ <emitter>
+ <property name="output" min="-2" max="2"/>
+ <property name="image" value="graphics/particles/star-small.png|W:#dd66ff,ffffff"/>
+ <property name="lifetime" min="200" max="250"/>
+ <property name="fade-out" value="200"/>
+ <property name="gravity" value="0.005"/>
+ </emitter>
+ </emitter>
+ <!-- CYAN-->
+ <emitter>
+ <property name="position-x" value="-60"/>
+ <property name="position-y" value="0"/>
+ <property name="position-z" value="20"/>
+ <property name="image" value="graphics/particles/orb-large.png|W:#00ffff,ffffff"/>
+ <property name="horizontal-angle" value="270"/>
+ <property name="vertical-angle" value="0"/>
+ <property name="power" value="3"/>
+ <property name="acceleration" value="0.1"/>
+ <emitter>
+ <property name="output" min="-2" max="2"/>
+ <property name="image" value="graphics/particles/star-small.png|W:#00ffff,ffffff"/>
+ <property name="lifetime" min="200" max="250"/>
+ <property name="fade-out" value="200"/>
+ <property name="gravity" value="0.005"/>
+ </emitter>
+ </emitter>
+ </particle>
+</effect>