Skip to content

v2.2.0 — Cinematic Effects Framework

Choose a tag to compare

@Dimitar871 Dimitar871 released this 15 May 00:24
· 47 commits to main since this release

Adds a reusable visual + audio effects framework so perk abilities feel more present and distinguishable. 8 flagship perks migrated as a proof of concept; remaining perks can be migrated incrementally.


✨ What's new

EffectKit — visual effects framework

Built on EffectLib 11.0 (264 KB shaded). High-level wrappers around shape primitives so any perk can call them with one line:

Method Visual
shockwave(loc, color, radius, ticks) Expanding sphere ring outward — for AoE blasts
runeCircle(loc, color, radius, ticks) Persistent flat ring on the ground — for zones
vortex(loc, color, ticks) Vertical column of swirling particles — for teleports / portals
beam(from, to, color) Line of particles between two points — for laser/missile
atomAround(player, color, ticks) Three intersecting electron rings around a player — for buffs
helix(loc, color, ticks) Spinning spiral strand — for time/magic
bloodSpray(loc) Quick dark-red dust burst — for kill/conversion feedback
lightningFlash(loc) Visual-only lightning strike — for dramatic triggers
magicMissile(from, to, color) Beam + magic-burst at source — for projectile spells

SoundKit — vanilla layered sound presets

No resource pack required. Layers existing vanilla Sound entries with carefully timed pitches for richer cues:

Method Used for
playSpellCast(loc) Crisp magical cast — enderman + beacon + chime
playExplosion(loc) Heavy boom — explode + anvil + thunder tail
playBuff(player) Personal heal/buff — level-up + bell
playDebuff(player) Personal de-buff — wither + glass break
playDeathRattle(loc) Conversion — wither break + ravager roar + cave ambient
playPortal(loc) Teleport — enderman + portal + chorus fruit
playPickup(player) Item / gold pickup — XP orb + UI click

Static accessor — clean perk code

import com.vampirez.fx.VFX;

VFX.fx().shockwave(player.getLocation(), Color.RED, 5.0, 25);
VFX.sound().playExplosion(player.getLocation());

No plugin reference needed — VFX lazily resolves and caches the kits on first use.


🎮 Perks migrated this release

All 8 keep their existing inline particles AND get an animated cinematic layer on top:

Perk New effect
Earthquake Expanding brown shockwave + layered explosion
Smoke Bomb Lingering grey rune circle on the ground + portal cue
Blood Moon Persistent red atom orbit around the caster (8s) + spell-cast cue
Wraith Walk Purple vortex during ghost form + AoE shockwave + death-rattle on expire
Holy Shield Golden shockwave + layered explosion when shield breaks
Shadow Strike Dark-purple vortex at both teleport endpoints + portal cue
Time Warp Cyan helix on rewind + spell-cast cue
Vampire Leap Blood spray + portal cue on takeoff

Other ability perks keep their current effects until you call them out for a refresh.


🏗️ Under the hood

  • No new tests added (effect classes are pure Bukkit API + EffectLib delegation, hard to assert without MockBukkit)
  • 97/97 existing tests still pass
  • Jar size: 18 MB → 34.6 MB (EffectLib + JDA from v2.1.0 both shaded)
  • All effects auto-dispose via EffectLib's iteration counter — no leak risk

Requires Paper 1.21.4+ on Java 21. Same arena-template + spawn-point setup as previous releases.