diff --git a/LobbySystem/src/de/steamwar/lobby/LobbySystem.properties b/LobbySystem/src/de/steamwar/lobby/LobbySystem.properties
index 3375de0a..55fff341 100644
--- a/LobbySystem/src/de/steamwar/lobby/LobbySystem.properties
+++ b/LobbySystem/src/de/steamwar/lobby/LobbySystem.properties
@@ -50,6 +50,7 @@ PARTICLE_UNLOCKED_BY_EASTER_EGG_HUNT_DIFFICULTY = §fFind all Easter Eggs with d
PARTICLE_ATTRIBUTE = §eAttributes§7:
PARTICLE_ATTRIBUTE_CIRCLE = §8-§f Ring
PARTICLE_ATTRIBUTE_BI_CIRCLE = §8-§f Double ring
+PARTICLE_ATTRIBUTE_TRI_CIRCLE = §8-§f Tripple ring
PARTICLE_ATTRIBUTE_CLOUD = §8-§f Cloud
PARTICLE_ATTRIBUTE_TICK = §8-§f Always active
PARTICLE_ATTRIBUTE_NON_FLOOR = §8-§f In air
@@ -101,10 +102,16 @@ PARTICLE_MAGIC_ENCHANTING = §5Magic/Enchantment
PARTICLE_WINGS_EVIL = §5Purple wings
PARTICLE_PLAYER_HAYLIM_AURA = §fHaylim\'s Aura
-PARTICLE_PLAYER_RONGAMER99091_AURA = §7Smoke Granade
-PARTICLE_PLAYER_PLOMPA = §9ECAL
+PARTICLE_PLAYER_1063 = §7Circling Circle
+PARTICLE_PLAYER_10916_AURA = §7Tornado
+PARTICLE_PLAYER_10697_AURA = §7Smoke Granade
+PARTICLE_PLAYER_64 = §9ECAL
+PARTICLE_PLAYER_153 = §9ELY
+PARTICLE_PLAYER_3266 = §9Tricolo
+PARTICLE_TEAM_158_1 = §9EV
+PARTICLE_TEAM_158_2 = §9DNA
-PARTICLE_TEAM_PULSE_AURA_1 = §fPulse Aura §cFlame
+PARTICLE_TEAM_PULSE_AURA = §fPulse Aura §cFlame
PARTICLE_TEAM_PULSE_AURA_2 = §fPulse Aura §7End Rod
PARTICLE_TEAM_PULSE_AURA_3 = §fPulse Aura §fEnchanted
PARTICLE_TEAM_PULSE_LOGO = §fPulse Logo
diff --git a/LobbySystem/src/de/steamwar/lobby/LobbySystem_de.properties b/LobbySystem/src/de/steamwar/lobby/LobbySystem_de.properties
index 9823f57c..efe41798 100644
--- a/LobbySystem/src/de/steamwar/lobby/LobbySystem_de.properties
+++ b/LobbySystem/src/de/steamwar/lobby/LobbySystem_de.properties
@@ -49,6 +49,7 @@ PARTICLE_UNLOCKED_BY_EASTER_EGG_HUNT_DIFFICULTY = §fAlle Eierer mit Schwierigke
PARTICLE_ATTRIBUTE_CIRCLE = §8-§f Ring
PARTICLE_ATTRIBUTE_BI_CIRCLE = §8-§f Doppelring
+PARTICLE_ATTRIBUTE_TRI_CIRCLE = §8-§f Dreifachring
PARTICLE_ATTRIBUTE_CLOUD = §8-§f Wolke
PARTICLE_ATTRIBUTE_TICK = §8-§f Immer aktiv
PARTICLE_ATTRIBUTE_NON_FLOOR = §8-§f In der Luft
@@ -99,7 +100,8 @@ PARTICLE_WATER_FIRE = §bWasser§7/§cFeuer
PARTICLE_MAGIC_ENCHANTING = §5Magie§7/§eZauber
PARTICLE_WINGS_EVIL = §5Lila Flügel
-PARTICLE_PLAYER_RONGAMER99091_AURA = §7Rauchgranate
+PARTICLE_PLAYER_1063 = §7Kreisende Kreise
+PARTICLE_PLAYER_10697_AURA = §7Rauchgranate
PARTICLE_TEAM_PULSE_HEART_BEAT = §cHerzschlag
diff --git a/LobbySystem/src/de/steamwar/lobby/particle/Gradient.java b/LobbySystem/src/de/steamwar/lobby/particle/Gradient.java
new file mode 100644
index 00000000..f7667294
--- /dev/null
+++ b/LobbySystem/src/de/steamwar/lobby/particle/Gradient.java
@@ -0,0 +1,53 @@
+/*
+ * This file is a part of the SteamWar software.
+ *
+ * Copyright (C) 2020 SteamWar.de-Serverteam
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+
+package de.steamwar.lobby.particle;
+
+import java.awt.*;
+import java.util.Arrays;
+import java.util.List;
+
+public class Gradient {
+
+ private List colors;
+
+ public Gradient(Color... colors) {
+ this.colors = Arrays.asList(colors);
+ }
+
+ public Color getColor(double value, double maxValue) {
+ value /= maxValue / (double) (colors.size() - 1);
+
+ return lerpColor(
+ colors.get((int) value),
+ colors.get((int) value + 1),
+ value - (int) value,
+ 1);
+ }
+
+ private Color lerpColor(Color start, Color end, double step, double maxStep) {
+ double rStep = (end.getRed() - start.getRed()) / maxStep;
+ double gStep = (end.getGreen() - start.getGreen()) / maxStep;
+ double bStep = (end.getBlue() - start.getBlue()) / maxStep;
+
+ return new Color(start.getRed() + (int) (rStep * step),
+ start.getGreen() + (int) (gStep * step),
+ start.getBlue() + (int) (bStep * step));
+ }
+}
diff --git a/LobbySystem/src/de/steamwar/lobby/particle/ParticleElement.java b/LobbySystem/src/de/steamwar/lobby/particle/ParticleElement.java
index c9fac94c..c0039e86 100644
--- a/LobbySystem/src/de/steamwar/lobby/particle/ParticleElement.java
+++ b/LobbySystem/src/de/steamwar/lobby/particle/ParticleElement.java
@@ -24,6 +24,10 @@ public interface ParticleElement {
return new Particle.DustOptions(randomColor(), randomSize());
}
+ default Particle.DustOptions withColor(int r, int g, int b) {
+ return new Particle.DustOptions(Color.fromRGB(r, g, b), randomSize());
+ }
+
default void display(Location location, Player root, boolean onlySelf, boolean onlyOther, Consumer consumer) {
if (onlySelf) {
consumer.accept(root);
diff --git a/LobbySystem/src/de/steamwar/lobby/particle/WingDesign.java b/LobbySystem/src/de/steamwar/lobby/particle/WingDesign.java
index 6954a565..125aa170 100644
--- a/LobbySystem/src/de/steamwar/lobby/particle/WingDesign.java
+++ b/LobbySystem/src/de/steamwar/lobby/particle/WingDesign.java
@@ -53,4 +53,10 @@ public interface WingDesign {
WingDesign PL = new WingDesignImpl(create("/de/steamwar/lobby/particle/decorator/PL-Logo.png"));
WingDesign PlompaEasterWings = new WingDesignImpl(create("/de/steamwar/lobby/particle/decorator/ECAL-Logo.png"));
+
+ WingDesign ELY_E = new WingDesignImpl(create("/de/steamwar/lobby/particle/decorator/Ely_E.png"));
+ WingDesign ELY_L = new WingDesignImpl(create("/de/steamwar/lobby/particle/decorator/Ely_L.png"));
+ WingDesign ELY_Y = new WingDesignImpl(create("/de/steamwar/lobby/particle/decorator/Ely_Y.png"));
+
+ WingDesign EV = new WingDesignImpl(create("/de/steamwar/lobby/particle/decorator/EV.png"));
}
diff --git a/LobbySystem/src/de/steamwar/lobby/particle/decorator/EV.png b/LobbySystem/src/de/steamwar/lobby/particle/decorator/EV.png
new file mode 100644
index 00000000..bb83cf96
Binary files /dev/null and b/LobbySystem/src/de/steamwar/lobby/particle/decorator/EV.png differ
diff --git a/LobbySystem/src/de/steamwar/lobby/particle/decorator/Ely_E.png b/LobbySystem/src/de/steamwar/lobby/particle/decorator/Ely_E.png
new file mode 100644
index 00000000..dff09601
Binary files /dev/null and b/LobbySystem/src/de/steamwar/lobby/particle/decorator/Ely_E.png differ
diff --git a/LobbySystem/src/de/steamwar/lobby/particle/decorator/Ely_L.png b/LobbySystem/src/de/steamwar/lobby/particle/decorator/Ely_L.png
new file mode 100644
index 00000000..59173d6b
Binary files /dev/null and b/LobbySystem/src/de/steamwar/lobby/particle/decorator/Ely_L.png differ
diff --git a/LobbySystem/src/de/steamwar/lobby/particle/decorator/Ely_Y.png b/LobbySystem/src/de/steamwar/lobby/particle/decorator/Ely_Y.png
new file mode 100644
index 00000000..3855e46f
Binary files /dev/null and b/LobbySystem/src/de/steamwar/lobby/particle/decorator/Ely_Y.png differ
diff --git a/LobbySystem/src/de/steamwar/lobby/particle/elements/DustParticle.java b/LobbySystem/src/de/steamwar/lobby/particle/elements/DustParticle.java
index 9c2f8389..8c143ac2 100644
--- a/LobbySystem/src/de/steamwar/lobby/particle/elements/DustParticle.java
+++ b/LobbySystem/src/de/steamwar/lobby/particle/elements/DustParticle.java
@@ -1,10 +1,13 @@
package de.steamwar.lobby.particle.elements;
+import de.steamwar.lobby.particle.Gradient;
import de.steamwar.lobby.particle.ParticleElement;
import de.steamwar.lobby.particle.ParticleTickData;
import org.bukkit.Location;
import org.bukkit.Particle;
+import java.awt.*;
+
public class DustParticle implements ParticleElement {
private Particle particle;
@@ -13,32 +16,44 @@ public class DustParticle implements ParticleElement {
private float vz = 0.01f;
private double speed = 0.01;
private int count = 5;
+ private Gradient gradient;
- public DustParticle(Particle particle) {
+ public DustParticle(Particle particle, Gradient gradient) {
this.particle = particle;
+ this.gradient = gradient;
}
- public DustParticle(Particle particle, float vx, float vy, float vz) {
+ public DustParticle(Particle particle, float vx, float vy, float vz, Gradient gradient) {
this.particle = particle;
this.vx = vx;
this.vy = vy;
this.vz = vz;
+ this.gradient = gradient;
}
- public DustParticle(Particle particle, float vx, float vy, float vz, double speed, int count) {
+ public DustParticle(Particle particle, float vx, float vy, float vz, double speed, int count, Gradient gradient) {
this.particle = particle;
this.vx = vx;
this.vy = vy;
this.vz = vz;
this.speed = speed;
this.count = count;
+ this.gradient = gradient;
}
@Override
public void tick(ParticleTickData particleTickData) {
Location location = particleTickData.getLocation().add(0.0, 0.2, 0.0);
+ Particle.DustOptions dustOptions;
+ if (gradient != null) {
+ double result = particleTickData.getDeg() % 360;
+ Color color = gradient.getColor(result, 360);
+ dustOptions = withColor(color.getRed(), color.getGreen(), color.getBlue());
+ } else {
+ dustOptions = randomParticleDust();
+ }
display(location, particleTickData.getPlayer(), particleTickData.isOnlySelf(), particleTickData.isOnlyOthers(), player -> {
- player.spawnParticle(particle, location, count, vx, vy, vz, speed, randomParticleDust());
+ player.spawnParticle(particle, location, count, vx, vy, vz, speed, dustOptions);
});
}
}
diff --git a/LobbySystem/src/de/steamwar/lobby/particle/elements/TrippleCircle.java b/LobbySystem/src/de/steamwar/lobby/particle/elements/TrippleCircle.java
new file mode 100644
index 00000000..45e8f8a3
--- /dev/null
+++ b/LobbySystem/src/de/steamwar/lobby/particle/elements/TrippleCircle.java
@@ -0,0 +1,61 @@
+package de.steamwar.lobby.particle.elements;
+
+import de.steamwar.lobby.particle.ParticleElement;
+import de.steamwar.lobby.particle.ParticleTickData;
+import de.steamwar.lobby.particle.ParticleTickType;
+import org.bukkit.Location;
+import org.bukkit.util.Vector;
+
+public class TrippleCircle extends Circle {
+
+ private ParticleElement second;
+ private ParticleElement third;
+
+ private double distance;
+ private double speed;
+
+ public TrippleCircle(ParticleElement first, ParticleElement second, ParticleElement third) {
+ super(first);
+ this.second = second;
+ this.distance = 1;
+ this.speed = 1;
+ }
+
+ public TrippleCircle(ParticleElement first, ParticleElement second, ParticleElement third, double distance, double speed) {
+ super(first);
+ this.second = second;
+ this.distance = distance;
+ this.speed = speed;
+ }
+
+ @Override
+ public String attribute() {
+ return "PARTICLE_ATTRIBUTE_TRI_CIRCLE";
+ }
+
+ @Override
+ public ParticleTickType tickType() {
+ if (particleElement.tickType() == second.tickType() && particleElement.tickType() == third.tickType()) {
+ return particleElement.tickType();
+ }
+ return ParticleTickType.MOVE;
+ }
+
+ @Override
+ public void tick(ParticleTickData particleTickData) {
+ Location location = particleTickData.getLocation();
+
+ Vector vector = new Vector(distance, 0, 0);
+ vector.rotateAroundY((particleTickData.getDeg() * speed) % 360);
+ ParticleTickData nParticleTickData = particleTickData.withLocation(location.clone().add(vector));
+ particleElement.tick(nParticleTickData);
+
+ vector.rotateAroundY(120);
+ nParticleTickData = particleTickData.withLocation(location.clone().add(vector));
+ second.tick(nParticleTickData);
+
+ vector.rotateAroundY(120);
+ nParticleTickData = particleTickData.withLocation(location.clone().add(vector));
+ third.tick(nParticleTickData);
+ }
+}
diff --git a/LobbySystem/src/de/steamwar/lobby/particle/elements/custom/YOffset.java b/LobbySystem/src/de/steamwar/lobby/particle/elements/custom/YOffset.java
index 1be82423..0af32eac 100644
--- a/LobbySystem/src/de/steamwar/lobby/particle/elements/custom/YOffset.java
+++ b/LobbySystem/src/de/steamwar/lobby/particle/elements/custom/YOffset.java
@@ -10,13 +10,15 @@ public class YOffset extends DelegatingParticleElement {
private double minY;
private double maxY;
private boolean inverted;
+ private boolean bounce;
- public YOffset(ParticleElement particleElement, double speed, double minY, double maxY, boolean inverted) {
+ public YOffset(ParticleElement particleElement, double speed, double minY, double maxY, boolean inverted, boolean bounce) {
super(particleElement);
this.multiplication = speed;
this.minY = minY;
this.maxY = maxY;
this.inverted = inverted;
+ this.bounce = bounce;
}
@Override
@@ -26,19 +28,28 @@ public class YOffset extends DelegatingParticleElement {
@Override
public void tick(ParticleTickData particleTickData) {
- double value = ((particleTickData.getDeg() * multiplication) % 360) / 180;
double y;
- if (inverted) {
- if (value <= 1) {
- y = maxY - (maxY - minY) * value;
+ if (bounce) {
+ double value = ((particleTickData.getDeg() * multiplication) % 360) / 180;
+ if (inverted) {
+ if (value <= 1) {
+ y = maxY - (maxY - minY) * value;
+ } else {
+ y = minY + (maxY - minY) * (value - 1);
+ }
} else {
- y = minY + (maxY - minY) * (value - 1);
+ if (value <= 1) {
+ y = minY + (maxY - minY) * value;
+ } else {
+ y = maxY - (maxY - minY) * (value - 1);
+ }
}
} else {
- if (value <= 1) {
- y = minY + (maxY - minY) * value;
+ double value = ((particleTickData.getDeg() * multiplication) % 360) / 360;
+ if (inverted) {
+ y = maxY - (maxY - minY) * value;
} else {
- y = maxY - (maxY - minY) * (value - 1);
+ y = minY + (maxY - minY) * value;
}
}
ParticleTickData current = particleTickData.withLocation(particleTickData.getLocation().clone().add(0, y, 0));
diff --git a/LobbySystem/src/de/steamwar/lobby/particle/particles/EasterParticle.java b/LobbySystem/src/de/steamwar/lobby/particle/particles/EasterParticle.java
index cecd91b9..0d94f2ea 100644
--- a/LobbySystem/src/de/steamwar/lobby/particle/particles/EasterParticle.java
+++ b/LobbySystem/src/de/steamwar/lobby/particle/particles/EasterParticle.java
@@ -21,7 +21,7 @@ public enum EasterParticle implements ParticleEnum {
new Always(new Floor(new Sneaking(new SimpleParticle(Particle.GLOW_SQUID_INK, 0.4F, 0.9F, 0.4F, 0.01)))))
),
EGG_HUNT_HARD(new ParticleData(Material.RED_CONCRETE_POWDER, "PARTICLE_EGG_HUNT_HARD", ParticleRequirement.EGG_HUNT_HARD,
- new Always(new LocationMutator(new DoubleCircle(new DustParticle(Particle.REDSTONE, 0, 0, 0, 0.01, 1), new DustParticle(Particle.REDSTONE, 0, 0, 0, 0.01, 1)), 0, 0.5, 0)))
+ new Always(new LocationMutator(new DoubleCircle(new DustParticle(Particle.REDSTONE, 0, 0, 0, 0.01, 1, null), new DustParticle(Particle.REDSTONE, 0, 0, 0, 0.01, 1, null)), 0, 0.5, 0)))
),
EGG_HUNT_EXTREME(new ParticleData(Material.PURPLE_CONCRETE_POWDER, "PARTICLE_EGG_HUNT_EXTREME", ParticleRequirement.EGG_HUNT_EXTREME,
new Always(new LocationMutator(new SimpleParticle(Particle.FALLING_OBSIDIAN_TEAR, 0.5F, 0.1F, 0.5F, 1, 1), 0, 2.2, 0)))
diff --git a/LobbySystem/src/de/steamwar/lobby/particle/particles/PlayerParticle.java b/LobbySystem/src/de/steamwar/lobby/particle/particles/PlayerParticle.java
index f54c516a..bf421bea 100644
--- a/LobbySystem/src/de/steamwar/lobby/particle/particles/PlayerParticle.java
+++ b/LobbySystem/src/de/steamwar/lobby/particle/particles/PlayerParticle.java
@@ -38,7 +38,7 @@ public enum PlayerParticle implements ParticleEnum {
new SimpleParticle(Particle.SNOWBALL, 0.2F, 0.2F ,0.2F, 0.01))
),
EFFECT(new ParticleData(Material.GLASS_BOTTLE, "PARTICLE_EFFECT",
- new DustParticle(Particle.REDSTONE, 0, 0.2F, 0, 0.01, 5))
+ new DustParticle(Particle.REDSTONE, 0, 0.2F, 0, 0.01, 5, null))
),
CAMPFIRE(new ParticleData(Material.CAMPFIRE, "PARTICLE_CAMPFIRE",
new SimpleParticle(Particle.CAMPFIRE_COSY_SMOKE, 0, 0.2F ,0, 0.01))
diff --git a/LobbySystem/src/de/steamwar/lobby/particle/particles/custom/CustomEasterParticle.java b/LobbySystem/src/de/steamwar/lobby/particle/particles/custom/CustomEasterParticle.java
index 0a4206af..55bbf146 100644
--- a/LobbySystem/src/de/steamwar/lobby/particle/particles/custom/CustomEasterParticle.java
+++ b/LobbySystem/src/de/steamwar/lobby/particle/particles/custom/CustomEasterParticle.java
@@ -1,44 +1,100 @@
package de.steamwar.lobby.particle.particles.custom;
-import de.steamwar.lobby.particle.ParticleData;
-import de.steamwar.lobby.particle.ParticleEnum;
-import de.steamwar.lobby.particle.ParticleRequirement;
-import de.steamwar.lobby.particle.WingDesign;
+import de.steamwar.lobby.particle.*;
import de.steamwar.lobby.particle.elements.*;
import de.steamwar.lobby.particle.elements.custom.HearthBeat;
import de.steamwar.lobby.particle.elements.custom.NonMoving;
import de.steamwar.lobby.particle.elements.custom.PulseShimmer;
+import de.steamwar.lobby.particle.elements.custom.YOffset;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.bukkit.Material;
import org.bukkit.Particle;
+import java.awt.*;
+
@AllArgsConstructor
public enum CustomEasterParticle implements ParticleEnum {
- /*
- Lord_Loading(new ParticleData(Material.ENDER_PEARL, "Loading Test", ParticleRequirement.easterEventSpecificPlayer(1063),
- new Always(new DoubleCircle(new DoubleCircle(new SimpleParticle(Particle.CRIT_MAGIC, 0, 0, 0, 0.01, 1),
- new SimpleParticle(Particle.CRIT_MAGIC, 0, 0, 0, 0.01, 1), 0.5, 4),
- new DoubleCircle(new SimpleParticle(Particle.CRIT_MAGIC, 0, 0, 0, 0.01, 1),
- new SimpleParticle(Particle.CRIT_MAGIC, 0, 0, 0, 0.01, 1), 0.5, 4), 1.5, 1)))
+ PLAYER_1063(new ParticleData(Material.ENDER_PEARL, "PARTICLE_PLAYER_1063", ParticleRequirement.easterEventSpecificPlayer(1063),
+ new Always(new DoubleCircle(
+ new DoubleCircle(
+ new SimpleParticle(Particle.CRIT_MAGIC, 0, 0, 0, 0.01, 1),
+ new SimpleParticle(Particle.CRIT_MAGIC, 0, 0, 0, 0.01, 1), 0.5, 4),
+ new DoubleCircle(
+ new SimpleParticle(Particle.CRIT_MAGIC, 0, 0, 0, 0.01, 1),
+ new SimpleParticle(Particle.CRIT_MAGIC, 0, 0, 0, 0.01, 1), 0.5, 4), 1.5, 1)
+ ))
),
- */
- Rongamer99091(new ParticleData(Material.GUNPOWDER, "PARTICLE_PLAYER_RONGAMER99091_AURA", ParticleRequirement.easterEventSpecificPlayer(10697),
+ PLAYER_10916(new ParticleData(Material.TORCHFLOWER, "PARTICLE_PLAYER_10916_AURA", ParticleRequirement.easterEventSpecificPlayer(10916),
+ new Always(new NonMoving(new Group(
+ new LocationMutator(new Circle(new SimpleParticle(Particle.REDSTONE, 0, 0, 0, 0, 1), 0.1, 1), location -> location.add(0, 0.2, 0)),
+ new LocationMutator(new Circle(new SimpleParticle(Particle.REDSTONE, 0, 0, 0, 0, 1), 0.1, 1), location -> location.add(0, 0.3, 0)),
+ new LocationMutator(new Circle(new SimpleParticle(Particle.REDSTONE, 0, 0, 0, 0, 1), 0.1, 1), location -> location.add(0, 0.4, 0)),
+ new LocationMutator(new Circle(new SimpleParticle(Particle.REDSTONE, 0, 0, 0, 0, 1), 0.1, 1), location -> location.add(0, 0.5, 0)),
+ new LocationMutator(new Circle(new SimpleParticle(Particle.REDSTONE, 0, 0, 0, 0, 1), 0.1, 1), location -> location.add(0, 0.6, 0)),
+ new LocationMutator(new Circle(new SimpleParticle(Particle.REDSTONE, 0, 0, 0, 0, 1), 0.1, 1), location -> location.add(0, 0.7, 0)),
+ new LocationMutator(new Circle(new SimpleParticle(Particle.REDSTONE, 0, 0, 0, 0, 1), 0.1, 1), location -> location.add(0, 0.8, 0)),
+ new LocationMutator(new Circle(new SimpleParticle(Particle.REDSTONE, 0, 0, 0, 0, 1), 0.1, 1), location -> location.add(0, 0.9, 0)),
+ new LocationMutator(new Circle(new SimpleParticle(Particle.REDSTONE, 0, 0, 0, 0, 1), 0.1, 1), location -> location.add(0, 1.0, 0)),
+ new LocationMutator(new Circle(new SimpleParticle(Particle.REDSTONE, 0, 0, 0, 0, 1), 0.1, 1), location -> location.add(0, 1.1, 0)),
+ new LocationMutator(new Circle(new SimpleParticle(Particle.REDSTONE, 0, 0, 0, 0, 1), 0.1, 1), location -> location.add(0, 1.2, 0)),
+ new LocationMutator(new Circle(new SimpleParticle(Particle.REDSTONE, 0, 0, 0, 0, 1), 0.1, 1), location -> location.add(0, 1.3, 0)),
+ new LocationMutator(new Circle(new SimpleParticle(Particle.REDSTONE, 0, 0, 0, 0, 1), 0.1, 1), location -> location.add(0, 1.4, 0)),
+ new LocationMutator(new Circle(new SimpleParticle(Particle.REDSTONE, 0, 0, 0, 0, 1), 0.1, 1), location -> location.add(0, 1.5, 0)),
+ new LocationMutator(new Circle(new SimpleParticle(Particle.REDSTONE, 0, 0, 0, 0, 1), 0.1, 1), location -> location.add(0, 1.6, 0)),
+ new LocationMutator(new Circle(new SimpleParticle(Particle.REDSTONE, 0, 0, 0, 0, 1), 0.1, 1), location -> location.add(0, 1.7, 0)),
+ new LocationMutator(new Circle(new SimpleParticle(Particle.REDSTONE, 0, 0, 0, 0, 1), 0.1, 1), location -> location.add(0, 1.8, 0)),
+ new LocationMutator(new Circle(new SimpleParticle(Particle.REDSTONE, 0, 0, 0, 0, 1), 0.1, 1), location -> location.add(0, 1.9, 0)),
+ new LocationMutator(new Circle(new SimpleParticle(Particle.REDSTONE, 0, 0, 0, 0, 1), 0.1, 1), location -> location.add(0, 2.0, 0))
+ ))))
+ ),
+ PLAYER_10697(new ParticleData(Material.GUNPOWDER, "PARTICLE_PLAYER_10697_AURA", ParticleRequirement.easterEventSpecificPlayer(10697),
new Always(new Sneaking(new Group(
new OnlySelf(new Delayed(new SimpleParticle(Particle.EXPLOSION_HUGE, 0, 0, 0, 0.01, 1), 20)),
new OnlyOthers(new Delayed(new SimpleParticle(Particle.EXPLOSION_HUGE, 0, 0, 0, 0.01, 1), 2))
))))
),
- Plompa(new ParticleData(Material.PUFFERFISH_BUCKET, "PARTICLE_PLAYER_PLOMPA", ParticleRequirement.specificPlayer(64),
+ PLAYER_64(new ParticleData(Material.PUFFERFISH_BUCKET, "PARTICLE_PLAYER_64", ParticleRequirement.easterEventSpecificPlayer(64),
new Always(new Delayed(new NonFlying(new Wing(new SimpleParticle(Particle.END_ROD, 0, 0, 0, 0, 1), 0.15, WingDesign.PlompaEasterWings)), 80)))
),
- Pulse_EASTER_1(new ParticleData(Material.RED_CANDLE, "PARTICLE_TEAM_PULSE_AURA_1", ParticleRequirement.easterEventSpecificTeam(210),
+ TEAM_210_1(new ParticleData(Material.RED_CANDLE, "PARTICLE_TEAM_PULSE_AURA", ParticleRequirement.easterEventSpecificTeam(210),
new Always(new NonMoving(new PulseShimmer(new SimpleParticle(Particle.FLAME, 0, 0, 0, 0, 1), 80, 2))))
),
- Pulse_EASTER_3(new ParticleData(Material.APPLE, "PARTICLE_TEAM_PULSE_HEART_BEAT", ParticleRequirement.easterEventSpecificTeam(210),
+ TEAM_210_2(new ParticleData(Material.APPLE, "PARTICLE_TEAM_PULSE_HEART_BEAT", ParticleRequirement.easterEventSpecificTeam(210),
new Always(new NonFlying(new HearthBeat(new SimpleParticle(Particle.FLAME, 0, 0, 0, 0, 1), 80))))
),
+ PLAYER_153(new ParticleData(Material.OAK_SIGN, "PARTICLE_PLAYER_153", ParticleRequirement.easterEventSpecificPlayer(153),
+ new Always(new Delayed(new NonFlying(new Group(
+ new Wing(new SimpleParticle(Particle.VILLAGER_ANGRY, 0, 0, 0, 0, 1), 0.15, WingDesign.ELY_E),
+ new Wing(new SimpleParticle(Particle.COMPOSTER, 0, 0, 0, 0, 1), 0.15, WingDesign.ELY_L),
+ new Wing(new SimpleParticle(Particle.CRIT, 0, 0, 0, 0, 1), 0.15, WingDesign.ELY_Y)
+ )), 80)))
+ ),
+ // TODO: Implement zSalos! -> Team
+ // TODO: Implement GroupXyz!
+ // TODO: Implement minecrafter_133 1817!
+ // TODO: Implement TheReaper22122!
+ // TODO: Implement Bosslar!
+ // TODO: Implement ATOM65!
+ PLAYER_3266(new ParticleData(Material.CHORUS_FRUIT, "PARTICLE_PLAYER_3266", ParticleRequirement.easterEventSpecificPlayer(3266),
+ new Always(new NonFlying(new Cloud(new LocationMutator(new TrippleCircle(
+ new DustParticle(Particle.REDSTONE, new Gradient(Color.CYAN, Color.BLUE, Color.MAGENTA.darker(), Color.RED, Color.YELLOW, Color.GREEN, Color.CYAN)),
+ new DustParticle(Particle.REDSTONE, new Gradient(Color.CYAN, Color.BLUE, Color.MAGENTA.darker(), Color.RED, Color.YELLOW, Color.GREEN, Color.CYAN)),
+ new DustParticle(Particle.REDSTONE, new Gradient(Color.CYAN, Color.BLUE, Color.MAGENTA.darker(), Color.RED, Color.YELLOW, Color.GREEN, Color.CYAN)),
+ 0.7,
+ 0.5), location -> location.add(0, 1.2, 0)
+ )))))
+ ),
+ // TODO: Implement Gehfxhler!
+ // TODO: Implement SchwarzerFuerst
+ // TODO: Implement byVallu
+ TEAM_158_1(new ParticleData(Material.ENCHANTED_BOOK, "PARTICLE_TEAM_158_1", ParticleRequirement.easterEventSpecificTeam(158),
+ new Always(new NonFlying(new Delayed(new Wing(new SimpleParticle(Particle.CRIT_MAGIC, 0, 0, 0, 0, 1), 0.2, WingDesign.EV), 80))))
+ ),
+ TEAM_158_2(new ParticleData(Material.ENDER_EYE, "PARTICLE_TEAM_158_2", ParticleRequirement.easterEventSpecificTeam(158),
+ new Always(new NonFlying(new YOffset(new DoubleCircle(new SimpleParticle(Particle.SPORE_BLOSSOM_AIR, 0, 0, 0, 0, 1), new SimpleParticle(Particle.SPORE_BLOSSOM_AIR, 0, 0, 0, 0, 1), 0.5, 1), 1, 0, 2, false, false))))
+ ),
;
public static ParticleEnum[] particles = values();
diff --git a/LobbySystem/src/de/steamwar/lobby/particle/particles/custom/CustomPlayerParticle.java b/LobbySystem/src/de/steamwar/lobby/particle/particles/custom/CustomPlayerParticle.java
index 3cfe0875..79c42b3b 100644
--- a/LobbySystem/src/de/steamwar/lobby/particle/particles/custom/CustomPlayerParticle.java
+++ b/LobbySystem/src/de/steamwar/lobby/particle/particles/custom/CustomPlayerParticle.java
@@ -16,8 +16,8 @@ public enum CustomPlayerParticle implements ParticleEnum {
Haylim_(new ParticleData(Material.WHITE_CANDLE, "PARTICLE_PLAYER_HAYLIM_AURA", ParticleRequirement.specificPlayer(9426),
new Always(new NonMoving(new NonFlying(new Group(
- new DoubleCircle(new YOffset(new SimpleParticle(Particle.ENCHANTMENT_TABLE, 0, 0, 0, 0.01, 5), 40, 0, 2, false), new YOffset(new SimpleParticle(Particle.ENCHANTMENT_TABLE, 0, 0, 0, 0.0,5), 40, 0, 2, true)),
- new DoubleCircle(new YOffset(new SimpleParticle(Particle.ENCHANTMENT_TABLE, 0, 0, 0, 0.01, 5), 40, 0, 2, true), new YOffset(new SimpleParticle(Particle.ENCHANTMENT_TABLE, 0, 0, 0, 0.0,5), 40, 0, 2, false))
+ new DoubleCircle(new YOffset(new SimpleParticle(Particle.ENCHANTMENT_TABLE, 0, 0, 0, 0.01, 5), 40, 0, 2, false, false), new YOffset(new SimpleParticle(Particle.ENCHANTMENT_TABLE, 0, 0, 0, 0.0,5), 40, 0, 2, true, false)),
+ new DoubleCircle(new YOffset(new SimpleParticle(Particle.ENCHANTMENT_TABLE, 0, 0, 0, 0.01, 5), 40, 0, 2, true, false), new YOffset(new SimpleParticle(Particle.ENCHANTMENT_TABLE, 0, 0, 0, 0.0,5), 40, 0, 2, false, false))
)))))
),
;