Add Anchor, Puppet, Tesla kits and perks

Introduce three new kits (Anchor, Puppet, Tesla) and multiple perks, plus related plumbing and behavior changes. Key changes:

- Added kit implementations: AnchorKit (summon iron-golem anchor, knockback resistance/radius effects), PuppetKit (life-drain / fear abilities), TeslaKit (lightning active + passive knockback/fire aura).
- Register new kits and register new perks in SpeedHG startup.
- Added new perks: AdrenalinePerk (post-damage speed proc with cooldown), EnderbluePerk (ender-pearl fall damage handling), Ghost, Pyromaniac, Scavenger (and updated OraclePerk/PerkEventDispatcher usage).
- Extended Perk API (Perk.kt) with onEnderPearlDamage and onPostDamage hooks to support specialized damage handling and post-damage checks.
- PerkManager.isGhost added for checking Ghost perk selection and used to exclude ghost players from targeting/compass logic.
- GameManager.updateCompass now excludes ghost-perk players when computing compass targets.
- Updated PerkEventDispatcher and OraclePerk to integrate new hooks and behaviors.
- Minor language additions in en_US.yml to support new kits/perks.

These changes add new gameplay mechanics and ensure correct event dispatching for pearl/fall/post-damage cases and ghost invisibility to game tracking.
This commit is contained in:
TDSTOS
2026-04-08 02:59:32 +02:00
parent 2be7272f06
commit 1c6b229ad8
15 changed files with 1501 additions and 5 deletions

View File

@@ -175,18 +175,21 @@ perks:
- '<gray>Gegners (Schleichen / Kompass).</gray>'
- ' '
- '<yellow>Synergie: <gray>Spielo-Kit zeigt Gamble-Ausgang.'
vampire:
name: '<gradient:dark_red:red><bold>Vampire</bold></gradient>'
lore:
- ' '
- '<gray>10% Chance bei Nahkampftreffer:</gray>'
- '<red>½ Herz</red> <gray>heilen.</gray>'
featherweight:
name: '<gradient:white:aqua><bold>Featherweight</bold></gradient>'
lore:
- ' '
- '<gray>Vollständig immun gegen</gray>'
- '<gray>Fallschaden.</gray>'
bloodlust:
name: '<gradient:dark_red:gold><bold>Bloodlust</bold></gradient>'
lore:
@@ -195,6 +198,46 @@ perks:
- '<yellow>Speed I</yellow> <gray>+</gray> <green>Regen I</green> <gray>für 5 Sekunden.</gray>'
message: '<red>⚔ Blutrausch! <yellow>Speed I</yellow> + <green>Regen I</green> für 5 Sekunden!</red>'
enderblue:
name: '<gradient:dark_purple:aqua><bold>Enderblood</bold></gradient>'
lore:
- ' '
- '<gray>Ender Pearl landings deal</gray>'
- '<gray>no fall damage to you.</gray>'
message: '<aqua>⚡ Enderblood absorbed the impact!</aqua>'
ghost:
name: '<gradient:white:gray><bold>Ghost</bold></gradient>'
lore:
- ' '
- '<gray>You are invisible to</gray>'
- '<gray>compass tracking and the</gray>'
- '<gray>Oracle perk.</gray>'
pyromaniac:
name: '<gradient:red:gold><bold>Pyromaniac</bold></gradient>'
lore:
- ' '
- '<gray>Immune to fire, lava,</gray>'
- '<gray>magma blocks and burn ticks.</gray>'
adrenaline:
name: '<gradient:red:yellow><bold>Adrenaline</bold></gradient>'
lore:
- ' '
- '<gray>Dropping below 3 hearts</gray>'
- '<gray>grants <yellow>Speed II</yellow> for 5 s.</gray>'
- '<dark_gray>(30 s cooldown)</dark_gray>'
message: '<red>❤ Adrenaline Rush! <yellow>Speed II</yellow> for 5 seconds!</red>'
scavenger:
name: '<gradient:gold:yellow><bold>Scavenger</bold></gradient>'
lore:
- ' '
- '<gray>Every kill drops an extra</gray>'
- '<gold>Golden Apple</gold> <gray>at the corpse.</gray>'
message: '<gold>🍎 Scavenged a Golden Apple!</gold>'
kits:
backup:
name: '<gradient:gold:#ff841f><bold>Backup</bold></gradient>'
@@ -387,4 +430,63 @@ kits:
frozen_received: '<red>⏸ You are frozen for 10 seconds!</red>'
frozen_expired: '<gray>The freeze has worn off.</gray>'
freeze_broken: '<gold>Freeze broken — 5 hits reached!</gold>'
freeze_hits_left: '<aqua>Frozen enemy — <hits> hit(s) remaining.</aqua>'
freeze_hits_left: '<aqua>Frozen enemy — <hits> hit(s) remaining.</aqua>'
tesla:
name: '<gradient:yellow:aqua><bold>Tesla</bold></gradient>'
lore:
- ' '
- 'AGGRESSIVE: Lightning strikes (5-block radius)'
- 'DEFENSIVE: Knockback + fire aura'
- '<dark_gray>Disabled above Y ≈ 113'
items:
rod:
name: '<yellow>Tesla Coil'
description: 'Strike 5 random bolts in a 5-block radius (1.5 ♥ each)'
passive:
name: '<yellow>Electromagnetic Field'
description: 'Push back + ignite nearby enemies every 3 s'
messages:
lightning_cast: '<yellow>⚡ Tesla Coil discharged!'
too_high: '<red>Too high! Tesla requires ground contact.'
ability_charged: '<yellow>Tesla Coil recharged!'
puppet:
name: '<gradient:dark_purple:light_purple><bold>Puppet</bold></gradient>'
lore:
- ' '
- 'AGGRESSIVE: Life drain (max 8 ♥, 2 s)'
- 'DEFENSIVE: Blindness + Slowness III (4 s)'
items:
drain:
name: '<dark_purple>Life Drain'
description: 'Drain life from nearby enemies. Sneak to cancel.'
fear:
name: '<dark_purple>Puppeteer''s Fear'
description: 'Apply Blindness + Slowness to nearby enemies'
messages:
drain_start: '<dark_purple>Draining life...'
draining: '<dark_purple>♥ Drained <healed>/<max> hearts'
drain_cancelled: '<gray>Drain cancelled.'
no_enemies: '<red>No enemies nearby!'
feared: '<dark_purple>You are being puppeted!'
fear_cast: '<dark_purple>Fear applied to <count> enemy(s)!'
ability_charged: '<yellow>Ability recharged!'
anchor:
name: '<gradient:gray:white><bold>Anchor</bold></gradient>'
lore:
- ' '
- 'Always: 40% knockback resistance'
- 'AGGRESSIVE: 5-block anchor + damage bonus'
- 'DEFENSIVE: 8-block anchor + Resistance I'
items:
chain:
name: '<gray>⚓ Deploy Anchor'
description: 'Summon an Iron Golem anchor. Enemies can destroy it!'
passive:
name: '<gray>Anchored'
description: 'NoKnock + bonus within anchor radius'
messages:
anchor_placed: '<gray>Anchor deployed! Radius: <radius> blocks.'
anchor_destroyed: '<red>⚓ Your anchor was destroyed!'
ability_charged: '<gray>Anchor ready to deploy!'