From 0a60654a28468fe29168bef295de1c8dbd2241bc Mon Sep 17 00:00:00 2001 From: YoyoNow Date: Mon, 3 Mar 2025 09:35:42 +0100 Subject: [PATCH] Add some of the Easter Particles --- .../de/steamwar/lobby/LobbySystem.properties | 13 ++- .../steamwar/lobby/LobbySystem_de.properties | 4 +- .../de/steamwar/lobby/particle/Gradient.java | 53 +++++++++++ .../lobby/particle/ParticleElement.java | 4 + .../steamwar/lobby/particle/WingDesign.java | 6 ++ .../steamwar/lobby/particle/decorator/EV.png | Bin 0 -> 614 bytes .../lobby/particle/decorator/Ely_E.png | Bin 0 -> 198 bytes .../lobby/particle/decorator/Ely_L.png | Bin 0 -> 182 bytes .../lobby/particle/decorator/Ely_Y.png | Bin 0 -> 183 bytes .../lobby/particle/elements/DustParticle.java | 23 ++++- .../particle/elements/TrippleCircle.java | 61 +++++++++++++ .../particle/elements/custom/YOffset.java | 29 ++++-- .../particle/particles/EasterParticle.java | 2 +- .../particle/particles/PlayerParticle.java | 2 +- .../custom/CustomEasterParticle.java | 86 +++++++++++++++--- .../custom/CustomPlayerParticle.java | 4 +- 16 files changed, 251 insertions(+), 36 deletions(-) create mode 100644 LobbySystem/src/de/steamwar/lobby/particle/Gradient.java create mode 100644 LobbySystem/src/de/steamwar/lobby/particle/decorator/EV.png create mode 100644 LobbySystem/src/de/steamwar/lobby/particle/decorator/Ely_E.png create mode 100644 LobbySystem/src/de/steamwar/lobby/particle/decorator/Ely_L.png create mode 100644 LobbySystem/src/de/steamwar/lobby/particle/decorator/Ely_Y.png create mode 100644 LobbySystem/src/de/steamwar/lobby/particle/elements/TrippleCircle.java 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 0000000000000000000000000000000000000000..bb83cf9655e1f3e6859c34259d3e3312f1719cbb GIT binary patch literal 614 zcmeAS@N?(olHy`uVBq!ia0vp^d_c^_!2~3^cmJ5cz`)p&>FgZf>FlgfP?VpRnUl)E zpfRy_qOHea2brVs(cXVoSln2 zbvj|PF>^{w3q)BC@(YBEtGkM8eysOg=-R`6{BK41`@-*hAGT%r82)sS~QZBjJJf88M0shSjx{I|6a-F^xr%4lOyz`cs_6(DO~na?IT-Z&gCl> z?}ghVT&HxN?_6HGOW~vPb=CI!7SnUTeL6E?-sv;K?H#Q}{NA=_w01e!c*{%^o%(5S zWqazm=s8oPnoHlEjF-?^r5(BM@*D>tZx2OYMj@#ci`aw(qe6ptQZnoxK9b-5H?zp| z$*QJ_$&95M0=f1-cz5QQ>qI-$YMZJL0!dc)ESeT{;BuiW)N}Tg^b5rw57@Uhz6H8K46v{J8G8EiBeFMT9 z`NV;W%sgEjLnJOICmdk-4+i#XvpX9z4lrGJ5txvqrL3&HELzias^EUlDKooHuN9c@ w;NoE*%JAZbG=oRt)NMc$_);T0(|mmyw18|5AO?X;!IMFhr>mdKI;Vst01s;N?*IS* literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..dff09601a0cdb003a624473453348dc1796f7309 GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^fanMprE{`i(`ny<>Uj5 z608q&cFa%^D`ko>;o#!pN-&<>$jBhp%h378>`V?&DPL-YXPU1sgBFm@0mLA1DR?r7 N@^tlcS?83{1OWX+E5QH& literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3855e46fdb1515022e714118ed6cb3be9ca24979 GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^LO{&T!VDxEEDx9iDaPU;cPEB*=VV?2IV|apzK#qG z8~eHcB(eheYymzYuK)l42QotsU9JOCoCO|{#S9F5he4R}c>anMprC@Mi(`ny<>Ujb z5&zSIcMG+$o^Eg+i%h(X{|@MI9> M>FVdQ&MBb@0H!D@iU0rr literal 0 HcmV?d00001 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)) ))))) ), ;