Files
GameModes-SpeedHG/src/main/resources/languages/en_US.yml
TDSTOS 1382de63fc Add natural disasters system
Introduce a natural-disasters feature: add DisasterManager, an abstract NaturalDisaster base class, and four concrete implementations (Earthquake, Meteor, Thunder, Tornado). Integrate the manager into SpeedHG (property, initialization/start) so disasters run on a timed cycle with guards for game state, grace period and per-disaster validation. Implementations: Meteor spawns a non-destructive LargeFireball impact, Earthquake applies nausea/impulses and particles, Thunder triggers multiple lightning strikes with fire chance, Tornado creates a particle vortex and pulls nearby players (uses a coroutine for precomputation). Add localization keys for disaster warnings in en_US.yml. Safety/cancel logic and flight/timeout cutoffs included to avoid leaks or invalid triggers.
2026-04-04 07:13:39 +02:00

390 lines
16 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>'
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>'
kits:
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>'