Files
GameModes-SpeedHG/src/main/resources/languages/en_US.yml
TDSTOS 4d32fe677c Add team system and team-based win condition
Introduce a full in-memory team system and integrate it into gameplay and UI.

- Add Team, TeamManager, TeamListener and TeamCommand to manage teams, invites, accept/deny, leave, kick and info. TeamManager stores teams and pending invites (INVITE_TTL_MS) using concurrent maps and exposes helper/query methods (areInSameTeam, allAliveInSameTeam, getInviterFor, cleanExpiredInvites, reset).
- Wire TeamManager into SpeedHG: initialize, schedule periodic invite cleanup, register command and listener, and reset teams on plugin disable.
- Update GameManager to consider teams for win conditions, build team winner names, exclude teammates from random teleport/compass logic, and credit all winning team members for stats/ranking.
- Move ability charge feedback out of individual kits into KitEventDispatcher: remove per-kit onFullyCharged overrides and add centralized ActionBar/sound feedback (sendChargeUpdateActionBar/sendChargeReadyActionBar). ActiveAbility no longer defines onFullyCharged.
- Make OraclePerk ignore teammates when finding nearest enemy.
- Add config entries for teams and corresponding language strings; tweak some default values in CustomGameSettings (gladiator arena radius/height and minor formatting changes).

These changes enable 2-player teams (configurable), friendly-fire prevention, invite lifecycle handling, and team-aware endgame logic.
2026-04-09 02:33:14 +02:00

542 lines
22 KiB
YAML

#
# SpeedHG v1.0.0 by McScrims-Network
# https://github.com/McScrims-Network
#
default:
prefix: '<gradient:red:gold>SpeedHG</gradient> <dark_gray>|</dark_gray> <reset>'
no_permission: '<prefix><red>Insufficient permissions.</red>'
game:
join: '<prefix><green><name></green> <gray>has joined the game.</gray>'
quit: '<prefix><red><name></red> <gray>has quit the game.</gray>'
lobby-idle: '<prefix><gray>Waiting for more players... (<current> / <min>)</gray>'
start-aborted: '<prefix><red>The game start has been aborted due to the lack of players!</red>'
started: '<prefix><green>The game has started! Good Luck!</green>'
invincibility-start: '<prefix><yellow>Invincibility has started and ends in <time> second(s)!</yellow>'
fighting-started: '<prefix><red>The battle has begun! Try not to die!</red>'
death-killed: '<prefix><yellow><player> has died whilst fighting <killer>! There are <left> players left.</yellow>'
death-pve: '<prefix><yellow><player> has died! There are <left> players left.</yellow>'
win-chat: '<prefix><green><winner> has won the game! Thanks for playing!</green>'
ranking:
placement_progress: '<prefix><gray>Placement <aqua><current>/<total></aqua> — Placed <aqua>#<placement></aqua> · <aqua><kills></aqua> Kill(s)</gray>'
result_win: '<prefix><gold>🏆 Victory!</gold> <gray>Kills: <aqua><kills></aqua></gray> · <rr>'
result_loss: '<prefix><gray>You placed <aqua><placement></aqua> · Kills: <aqua><kills></aqua></gray> · <rr>'
promote-main: '<gradient:gold:yellow><bold>RANK UP!</bold></gradient>'
promote-sub: '<color><name><reset>'
rank_up: '<prefix><green>⬆ Rank Up!</green> <gray><from> → <to>'
rank_down: '<prefix><red>⬇ Rank Down.</red> <gray><from> → <to>'
title:
fight-main: '<red>The battle has begun!</red>'
fight-sub: '<red>Try not to die!</red>'
win-main: '<gold><winner> has won the game!</gold>'
win-sub: '<gray>Thanks for playing!</gray>'
timer:
lobby: '<prefix><green>The game starts in <time> second(s)</green>'
actionbar-invincibility: '<yellow>Invincibility ends in <time> second(s)!</yellow>'
antirunner:
warning: '<red>Fight and you will not be punished!</red>'
punish: '<prefix><red>You have been punished due to not fighting your enemy!</red>'
player:
welcome: '<red>Welcome to</red> <gradient:red:gold>SpeedHG</gradient><gold>!</gold>'
build:
no_diamonds: '<prefix><red>Diamonds are not allowed in SpeedHG!</red>'
no_iron_before_feast: '<prefix><red>Iron is not allowed before the Feast has started!</red>'
craft:
no_shift_click: '<prefix><red>Shift-click is not allowed while crafting!</red>'
no_shield: '<prefix><red>Shields are not allowed in SpeedHG!</red>'
iron_nerf: '<prefix><red>Your item has been nerfed as it contains iron!</red>'
feast:
announcement: '<prefix><gold>⚔ The Feast spawns in <time>!</gold> <gray>Location: <yellow>X: <x> Z: <z></yellow></gray>'
spawned: '<prefix><red><bold>THE FEAST HAS SPAWNED!</bold></red> <gray>Head to <yellow>X: <x> Z: <z></yellow> for the loot!</gray>'
pit:
announcement: '<prefix><dark_red>⚠ The Pit spawns in <time>!</dark_red> <gray>All surviving players will be forced into the final deathmatch!</gray>'
spawned: '<prefix><dark_red><bold>THE PIT HAS OPENED!</bold></dark_red> <gray>All players have been teleported. There is no escape!</gray>'
title-main: '<dark_red><bold>FINAL DEATHMATCH</bold></dark_red>'
title-sub: '<red>Survive at all costs!</red>'
escape-warning: '<red>⚠ Leave the pit and you will die! Return immediately!</red>'
disasters:
tornado:
warning-main: '<red><bold>BEWARE!</bold></red>'
warning-sub: '<gray>A tornado is forming near you!</gray>'
earthquake:
warning-main: '<red><bold>EARTHQUAKE!</bold></red>'
warning-sub: '<gray>The ground beneath you is starting to shake!</gray>'
meteor:
warning-main: '<dark_red><bold>METEOR!</bold></dark_red>'
warning-sub: '<gray>A glowing boulder is hurtling toward you!</gray>'
thunder:
warning-main: '<yellow><bold>THUNDERSTORM!</bold></yellow>'
warning-sub: '<gray>Your height attracts lightning!</gray>'
team:
disabled: '<prefix><red>Teams are disabled in this round.</red>'
usage: '<prefix><gray>Usage: /team <invite|accept|deny|leave|kick|info> [player]</gray>'
game_running: '<prefix><red>Teams cannot be changed while the game is running!</red>'
not_in_team: '<prefix><red>You are not in a team.</red>'
already_in_team: '<prefix><red>You are already in a team!</red>'
player_not_found: '<prefix><red>Player <name> is not online.</red>'
invite:
usage: '<prefix><red>Usage: /team invite <player></red>'
sent: '<prefix><green>✉ Invite sent to <yellow><name></yellow>. (Expires in <time>s)</green>'
received: '<prefix><gold>✉ <yellow><name></yellow> invited you to their team! <green>/team accept <name></green> or <red>/team deny <name></red> (expires in <time>s)</gold>'
self: '<prefix><red>You cannot invite yourself.</red>'
already_teammate: '<prefix><red>This player is already your teammate.</red>'
target_has_team: '<prefix><red><name> is already in a team.</red>'
team_full: '<prefix><red>Your team is full!</red>'
already_pending: '<prefix><red>There is already a pending invite for <name>.</red>'
accept:
usage: '<prefix><red>Usage: /team accept <player></red>'
no_invite: '<prefix><red>You have no pending invite from <name>.</red>'
expired: '<prefix><red>The invite from <name> has expired.</red>'
joined: '<prefix><green>✔ <yellow><name></yellow> joined the team! Members: <white><members></white></green>'
deny:
usage: '<prefix><red>Usage: /team deny <player></red>'
success: '<prefix><gray>Invite from <name> declined.</gray>'
received: '<prefix><gray><name> declined your team invite.</gray>'
leave:
success: '<prefix><gray>You left the team.</gray>'
disbanded: '<prefix><red>The team has been disbanded.</red>'
member_left: '<prefix><gray><name> left the team.</gray>'
kick:
usage: '<prefix><red>Usage: /team kick <player></red>'
success: '<prefix><yellow>Kicked <name> from the team.</yellow>'
received: '<prefix><red>You were kicked from the team by <name>.</red>'
not_leader: '<prefix><red>Only the team leader can kick players.</red>'
not_in_your_team: '<prefix><red><name> is not in your team.</red>'
self: '<prefix><red>You cannot kick yourself. Use /team leave.</red>'
info:
header: '<gray>━━━━━ <gold>Team Members</gold> ━━━━━</gray>'
member: ' <gray>#<index></gray> <white><name></white><yellow><leader></yellow>'
footer: '<gray>━━━━━━━━━━━━━━━━━━━━━ (<size>/<max>)</gray>'
commands:
kit:
usage: '<red>Usage: /kit <kitName> <playstyle></red>'
kitNotFound: '<red><kit> is not a registered kit!</red>'
playstyleNotFound: '<red><playstyle> is not an available playstyle!</red>'
gameHasStarted: '<red>The game has already started. You cannot select a kit right now!</red>'
cannotPickSameKit: '<red>You cannot pick the same kit!</red>'
selected: '<green>You have selected <kit> as your Kit with playstyle <playstyle>!</green>'
leaderboard:
header: '<gray>====== <gold>Leaderboard</gold> ======</gray>'
empty: '<red>There are currently no stats</red>'
line: '#<rank> - <green><name></green> - <aqua><score></aqua>'
footer: '<gray>====== <gold>Leaderboard</gold> ======</gray>'
timer:
usage: '<red>Usage: /timer <seconds></red>'
positiveNumber: '<red>Invalid time format! Use, for example, 10m, 30s, or 600.</red>'
onlyIngame: '<red>Timer can only be set in game.</red>'
set: '<green>The game timer has been set to <time>!</green>'
ranking:
usage: '<red>Usage: /ranking <toggle|status|rank [player]></red>'
enabled: '<prefix><green>✔ Ranked mode is now <bold>ACTIVE</bold>. RR will be awarded next round.</green>'
disabled: '<prefix><yellow>⚠ Unranked mode is now <bold>ACTIVE</bold>. No RR changes next round.</yellow>'
status_enabled: '<prefix><gray>Ranking: <green><bold>ACTIVE</bold></green></gray>'
status_disabled: '<prefix><gray>Ranking: <yellow><bold>DISABLED (Unranked)</bold></yellow></gray>'
rank_usage: '<red>Usage: /ranking rank <player></red>'
player_not_found: '<red>Player <name> is not online.</red>'
rank_info: '<prefix><gray>Player <white><name></white> — <rank> <gray>(<score> RR · <games> games)</gray>'
scoreboard:
title: '<gradient:red:gold><bold>SpeedHG</bold></gradient>'
lobby:
- "<gray><st> "
- "Players: <green><online>/<max>"
- "Kit: <yellow><kit>"
- "Rank: <rank>"
- ""
- "<gray>Waiting for start..."
- ""
- "<yellow>play.mcscrims.club"
ingame:
- "<gray><st> "
- "Time: <green><timer>"
- "Players: <red><alive>"
- "Kills: <green><kills>"
- "Rank: <rank>"
- ""
- "Border: <red><border>"
- ""
- "<yellow>play.mcscrims.club"
gui:
kit_selector:
title: '<gradient:red:gold><bold>Kit Selection</bold></gradient>'
kit_selected: '<green>Kit <kit> selected!</green>'
playstyle_changed: '<gold>Playstyle: <white>► <playstyle></white>'
prev_page: '<red>◄ Previous'
next_page: '<green>Next ►'
clear_search: '<red>✕ Reset Search'
close: '<red>✕ Close'
kit_item:
playstyle: '<gray>Playstyle: <white>► <playstyle>'
left_click: '<yellow>[L-Click]</yellow> <gray>Select Kit</gray>'
right_click: '<gold>[R-Click]</gold> <gray>Change Playstyle</gray>'
search:
name: '<yellow>🔍 Search'
current: '<gray>Current: <white>"<query>"'
click: '<gray>Click to search</gray>'
anvil_search:
input_placeholder: '<gray>Enter search term...</gray>'
confirm_name: '<green>✔ Confirm Search</green>'
confirm_click: '<gray>Click to confirm</gray>'
perk_selector:
title: '<gradient:dark_purple:light_purple><bold>Perk-Auswahl</bold></gradient>'
slot_empty: '<gray>Perk-Slot <slot>: <red>Leer</red></gray>'
slot_hint: '<dark_gray>Klicke einen Perk zum Ausrüsten'
slot_title: '<gray>Slot <slot>: </gray>'
equipped_label: '<green>✔ Ausgerüstet</green>'
click_equip: '<gray>Klick zum Ausrüsten</gray>'
click_deselect: '<gray>Klick zum Abwählen</gray>'
slots_full: '<red>Slots voll! Klicke einen aktiven Perk zum Abwählen.'
game_running: '<red>Perks können während des Spiels nicht geändert werden!'
selected: '<green>Ausgerüstet: <perk><green>!'
deselected: '<red>Abgewählt: <perk><red>!'
close: '<red>✕ Schließen</red>'
perks:
oracle:
name: '<gradient:gold:yellow><bold>Oracle</bold></gradient>'
lore:
- ' '
- '<gray>Zeigt Kit + Distanz des nächsten</gray>'
- '<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:
- ' '
- '<gray>Nach einem Kill:</gray>'
- '<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:
needed_hits: '<gold>⚡ Ability: <white><current>/<required> Hits</white></gold>'
ability_charged: '<green><bold>⚡ ABILITY READY!</bold></green>'
backup:
name: '<gradient:gold:#ff841f><bold>Backup</bold></gradient>'
lore:
- ' '
- 'Select a kit mid-round at any time.'
- 'All kits are available to pick.'
gladiator:
name: '<gradient:dark_gray:gray><bold>Gladiator</bold></gradient>'
lore:
- ' '
- 'Use your ability to fight enemies'
- 'in a 1v1 above the skies.'
items:
ironBars:
name: '<gray>Cage</gray>'
description: 'Fight an enemy in a 1v1 above the skies'
messages:
ability_charged: '<yellow>Your ability has been recharged!</yellow>'
goblin:
name: '<gradient:dark_green:gray><bold>Goblin</bold></gradient>'
lore:
- ' '
- 'AGGRESSIVE:'
- 'Copy your enemies kit'
- ' '
- 'DEFENSIVE:'
- 'Summon a bunker for protection'
items:
steal:
name: '§cSteal Kit'
description: 'Steal the kit of your opponent for 60 seconds'
bunker:
name: '§2Bunker'
description: 'Create a bunker around yourself for 15 seconds'
messages:
stole_kit: '<green>You have stolen the kit of your opponent (Kit: <kit>)!</green>'
spawn_bunker: '<green>You have created a bunker around yourself!'
ability_charged: '<yellow>Your ability has been recharged!</yellow>'
icemage:
name: '<gradient:dark_aqua:aqua><bold>IceMage</bold></gradient>'
lore:
- ' '
- 'AGGRESSIVE:'
- 'Gain speed in ice biomes and give slowness'
- ' '
- 'DEFENSIVE:'
- 'Summon snowballs and freeze enemies'
items:
snowball:
name: '§bFreeze'
description: 'Freeze your enemies by throwing snowballs in all directions'
passive:
name: '§bIceStorm'
description: 'Gain speed in cold biomes and give enemies slowness'
messages:
shoot_snowballs: '<aqua>You have shot frozen snowballs in all directions!</aqua>'
ability_charged: '<yellow>Your ability has been recharged!</yellow>'
venom:
name: '<gradient:dark_red:red><bold>Venom</bold></gradient>'
lore:
- ' '
- 'AGGRESSIVE:'
- 'Summon a deafening beam'
- ' '
- 'DEFENSIVE:'
- 'Create a shield for protection'
items:
wither:
name: '§8Deafening Beam'
description: 'Summon a deafening beam against an enemy'
shield:
name: '§8Shield of Darkness'
description: 'Create a shield and get protected against hits and projectiles'
passive:
name: '§8Shield of Darkness'
description: 'Create a shield and get protected against hits and projectiles'
messages:
wither_beam: '<gray>You have summoned your deafening beam!</gray>'
shield_activate: '<gray>Your shield of darkness has been activated!</gray>'
shield_break: '<red>Your shield of darkness has broken!</red>'
ability_charged: '<yellow>Your ability has been recharged</yellow>'
rattlesnake:
name: '<gradient:green:lime><bold>Rattlesnake</bold></gradient>'
lore:
- ' '
- 'AGGRESSIVE: Sneak-charged pounce'
- 'DEFENSIVE: 25% counter-venom on hit'
items:
pounce:
name: '<green>Pounce</green>'
description: 'Sneak + right-click to lunge at an enemy'
passive:
aggressive:
name: '<green>Pounce Strike</green>'
description: 'Apply Poison II on pounce-hit (x3 after Feast)'
defensive:
name: '<green>Counter Venom</green>'
description: '25% chance to reflect Poison when hit'
messages:
pounce_hit: '<green>Pounce hit <count> target(s)! Poison II applied!</green>'
pounce_miss: '<red>Pounce missed! Nearby enemies were disoriented.</red>'
venom_proc: '<green>Counter Venom triggered!</green>'
armorer:
name: '<gradient:gray:white><bold>Armorer</bold></gradient>'
lore:
- ' '
- 'Upgrade armor every 2 kills.'
- 'Broken armor is auto-replaced.'
passive:
aggressive:
name: '<gold>Battle High</gold>'
description: 'Gain Strength I for 5 s after each kill'
defensive:
name: '<aqua>Fortified</aqua>'
description: 'Iron / Diamond armor receives Protection I'
messages:
armor_upgraded: '<gold>Armor upgraded to tier <tier>!</gold>'
armor_replaced: '<yellow>Broken armor replaced automatically.</yellow>'
voodoo:
name: '<gradient:dark_purple:light_purple><bold>Voodoo</bold></gradient>'
lore:
- ' '
- 'AGGRESSIVE: Wither on hit + root below 50%'
- 'DEFENSIVE: Curse enemies for buffs'
items:
root:
name: '<dark_purple>Root</dark_purple>'
description: 'Root an enemy below 50% HP for 5 seconds'
curse:
name: '<light_purple>Curse</light_purple>'
description: 'Curse nearby enemies for 15 seconds'
passive:
aggressive:
name: '<dark_purple>Wither Touch</dark_purple>'
description: '20% chance to apply Wither on melee hit'
defensive:
name: '<light_purple>Dark Pact</light_purple>'
description: 'Speed + Regen while cursed enemies are nearby'
messages:
root_activated: '<dark_purple>Enemy rooted for 5 seconds!</dark_purple>'
root_received: '<red>You are rooted!</red>'
curse_cast: '<light_purple>Cursed <count> enemy(s) for 15 seconds!</light_purple>'
curse_received: '<red>You have been cursed by a Voodoo player!</red>'
ability_charged: '<yellow>Ability recharged!</yellow>'
blackpanther:
name: '<gradient:dark_gray:white><bold>Black Panther</bold></gradient>'
lore:
- ' '
- 'AGGRESSIVE: Push + Vibranium Fists'
- 'DEFENSIVE: Wakanda Forever! fall-pounce'
items:
push:
name: '<gray>Vibranium Pulse</gray>'
description: 'Knock back all nearby enemies and activate Fist Mode'
passive:
aggressive:
name: '<gray>Vibranium Fists</gray>'
description: '6.5 bare-hand damage for 12 s after Push'
defensive:
name: '<white>Wakanda Forever!</white>'
description: 'Fall from 3+ blocks onto an enemy for AOE damage + crater'
messages:
fist_mode_active: '<gray>⚡ Vibranium Fists active for 12 seconds!</gray>'
wakanda_impact: '<white>Wakanda Forever! Hit <count> enemy(s)!</white>'
ability_charged: '<yellow>Ability recharged!</yellow>'
theworld:
name: '<gradient:dark_gray:white><bold>The World</bold></gradient>'
lore:
- ' '
- 'AGGRESSIVE: Shockwave + 3x Blink'
- 'DEFENSIVE: Shockwave + Freeze + 5-Hit Cap'
items:
clock:
aggressive:
name: '<gray>The World</gray>'
description: 'Shockwave → right-click 3x to blink in looking direction'
defensive:
name: '<gray>The World</gray>'
description: 'Shockwave + freeze nearby enemies (max 5 hits each)'
passive:
defensive:
name: '<aqua>Time Stop</aqua>'
description: 'Frozen enemies can only be hit 5 times'
messages:
shockwave_and_blink: '<gray>Shockwave! <white><charges> blink charge(s) ready.</white>'
teleport_charges: '<aqua>Blinked! <charges> charge(s) remaining.</aqua>'
charges_exhausted: '<red>All blink charges spent!</red>'
freeze_activated: '<aqua>⏸ Time stopped for <count> enemy(s)!</aqua>'
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>'
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!'