Dieser Commit ist enthalten in:
Ursprung
247f8e47f3
Commit
02ac3cd665
@ -108,6 +108,7 @@ WinConditions: # defaults to none if missing
|
||||
# - PUMPKIN_TECH_KO
|
||||
|
||||
# - HELLS_BELLS
|
||||
# - METEOR
|
||||
|
||||
WinConditionParams:
|
||||
# The time of any of the timeout win conditions in seconds
|
||||
|
@ -22,6 +22,7 @@ package de.steamwar.fightsystem;
|
||||
import de.steamwar.fightsystem.commands.*;
|
||||
import de.steamwar.fightsystem.countdown.*;
|
||||
import de.steamwar.fightsystem.event.HellsBells;
|
||||
import de.steamwar.fightsystem.event.Meteor;
|
||||
import de.steamwar.fightsystem.fight.Fight;
|
||||
import de.steamwar.fightsystem.fight.FightTeam;
|
||||
import de.steamwar.fightsystem.fight.FightWorld;
|
||||
@ -109,6 +110,7 @@ public class FightSystem extends JavaPlugin {
|
||||
new WinconditionPercentTimeout();
|
||||
|
||||
new HellsBells();
|
||||
new Meteor();
|
||||
|
||||
new NoPlayersOnlineCountdown();
|
||||
new PreSchemCountdown();
|
||||
|
@ -17,204 +17,205 @@
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
PREFIX=§eArena§8»
|
||||
PREFIX=<EFBFBD>eArena<EFBFBD>8<EFBFBD>
|
||||
|
||||
# Commands
|
||||
NO_TEAM=§cDu bist in keinem Team
|
||||
FIGHT_ALREADY_STARTED=§cDer Kampf hat bereits begonnen
|
||||
NOT_LEADER=§cDu bist kein Leader
|
||||
PLAYER_UNAVAILABLE=§cDer Spieler ist nicht in der Arena
|
||||
NO_TEAM=<EFBFBD>cDu bist in keinem Team
|
||||
FIGHT_ALREADY_STARTED=<EFBFBD>cDer Kampf hat bereits begonnen
|
||||
NOT_LEADER=<EFBFBD>cDu bist kein Leader
|
||||
PLAYER_UNAVAILABLE=<EFBFBD>cDer Spieler ist nicht in der Arena
|
||||
|
||||
NO_INVITATION=§cDu wurdest von keinem Team eingeladen
|
||||
INVITATION_DECLINED=§cEinladung abgelehnt
|
||||
INVITATION_DECLINED_TEAM=§e{0} §chat die Einladung abgelehnt
|
||||
PLAYER_IN_TEAM=§e{0} §cist bereits in einem Team
|
||||
ALREADY_INVITED=§e{0} §cwurde bereits eingeladen
|
||||
INVITATION_SENT=§e{0} §7eingeladen
|
||||
NO_INVITATION=<EFBFBD>cDu wurdest von keinem Team eingeladen
|
||||
INVITATION_DECLINED=<EFBFBD>cEinladung abgelehnt
|
||||
INVITATION_DECLINED_TEAM=<EFBFBD>e{0} <20>chat die Einladung abgelehnt
|
||||
PLAYER_IN_TEAM=<EFBFBD>e{0} <20>cist bereits in einem Team
|
||||
ALREADY_INVITED=<EFBFBD>e{0} <20>cwurde bereits eingeladen
|
||||
INVITATION_SENT=<EFBFBD>e{0} <20>7eingeladen
|
||||
|
||||
NOT_IN_TEAM=§e{0} §cist nicht in deinem Team
|
||||
NOT_IN_TEAM=<EFBFBD>e{0} <20>cist nicht in deinem Team
|
||||
|
||||
KIT_UNAVAILABLE=§cDieses Kit gibt es nicht
|
||||
KIT_CHOSEN=§7Kit §e{0} §7gewählt
|
||||
KIT_UNAVAILABLE=<EFBFBD>cDieses Kit gibt es nicht
|
||||
KIT_CHOSEN=<EFBFBD>7Kit <20>e{0} <20>7gew<65>hlt
|
||||
|
||||
GAMEMODE_NOT_ALLOWED=§cSpielmodusänderung verboten
|
||||
GAMEMODE_UNKNOWN=§cUnbekannter Spielmodus {0}
|
||||
GAMEMODE_HELP=§8/§7gm §8[§eSpielmodus§8]
|
||||
GAMEMODE_NOT_ALLOWED=<EFBFBD>cSpielmodus<EFBFBD>nderung verboten
|
||||
GAMEMODE_UNKNOWN=<EFBFBD>cUnbekannter Spielmodus {0}
|
||||
GAMEMODE_HELP=<EFBFBD>8/<2F>7gm <20>8[<5B>eSpielmodus<75>8]
|
||||
|
||||
INVITE_HELP=§8/§einvite §8[§eSpieler§8]
|
||||
INVITE_HELP=<EFBFBD>8/<2F>einvite <20>8[<5B>eSpieler<65>8]
|
||||
|
||||
LEADER_FULL=§cAlle Teams haben bereits einen Leader
|
||||
ALREADY_IN_TEAM=§cDu bist bereits in einem Team
|
||||
LEADER_FULL=<EFBFBD>cAlle Teams haben bereits einen Leader
|
||||
ALREADY_IN_TEAM=<EFBFBD>cDu bist bereits in einem Team
|
||||
|
||||
LOCKSCHEM_HELP=§8/§7lockschem §8[§eTeam§8]
|
||||
UNKNOWN_TEAM=§cDieses Team existiert nicht
|
||||
LOCKSCHEM_LOCKED=§7Schematic gesperrt
|
||||
LOCKSCHEM_LOCKED_BY=§cDie Schematic wurde von §e{0} §cgesperrt
|
||||
LOCKSCHEM_HELP=<EFBFBD>8/<2F>7lockschem <20>8[<5B>eTeam<61>8]
|
||||
UNKNOWN_TEAM=<EFBFBD>cDieses Team existiert nicht
|
||||
LOCKSCHEM_LOCKED=<EFBFBD>7Schematic gesperrt
|
||||
LOCKSCHEM_LOCKED_BY=<EFBFBD>cDie Schematic wurde von <20>e{0} <20>cgesperrt
|
||||
|
||||
REMOVE_HELP=§8/§eremove §8[§eSpieler§8]
|
||||
REMOVE_HELP=<EFBFBD>8/<2F>eremove <20>8[<5B>eSpieler<65>8]
|
||||
|
||||
REPLAY_LOCKED=§7Replaywiedergabe für 1 Monat gesperrt
|
||||
REPLAY_LOCKED=<EFBFBD>7Replaywiedergabe f<>r 1 Monat gesperrt
|
||||
|
||||
NOT_FIGHTLEADER=§cDu bist nicht Kampfleiter
|
||||
WIN_HELP=§8/§7win §8[§eTeam §8or §etie§8]
|
||||
NOT_FIGHTLEADER=<EFBFBD>cDu bist nicht Kampfleiter
|
||||
WIN_HELP=<EFBFBD>8/<2F>7win <20>8[<5B>eTeam <20>8or <20>etie<69>8]
|
||||
|
||||
|
||||
# GUI
|
||||
INVITATION_TITLE=Einladung von {0}
|
||||
INVITATION_ACCEPT=§aAnnehmen
|
||||
INVITATION_DECLINE=§cAblehnen
|
||||
INVITATION_CHAT_ACCEPT=§8/§aaccept§8, §7um die Einladung §aanzunehmen
|
||||
INVITATION_CHAT_DECLINE=§8/§cdecline§8, §7um die Einladung §cabzulehnen
|
||||
INVITATION_ACCEPT=<EFBFBD>aAnnehmen
|
||||
INVITATION_DECLINE=<EFBFBD>cAblehnen
|
||||
INVITATION_CHAT_ACCEPT=<EFBFBD>8/<2F>aaccept<70>8, <20>7um die Einladung <20>aanzunehmen
|
||||
INVITATION_CHAT_DECLINE=<EFBFBD>8/<2F>cdecline<6E>8, <20>7um die Einladung <20>cabzulehnen
|
||||
|
||||
STATE_TITLE=Kampfstatus
|
||||
STATE_PRE_LEADER_SETUP=§7Teamleaderwartephase
|
||||
STATE_PRE_SCHEM_SETUP=§7Schemauswahlphase
|
||||
STATE_POST_SCHEM_SETUP=§7Vorbereitungsphase
|
||||
STATE_PRE_RUNNING=§eKitausgabe
|
||||
STATE_RUNNING=§eKampfphase
|
||||
STATE_SPECTATE_WIN=§7Sieg {0}
|
||||
STATE_SPECTATE_TIE=§7Unentschieden
|
||||
STATE_PRE_LEADER_SETUP=<EFBFBD>7Teamleaderwartephase
|
||||
STATE_PRE_SCHEM_SETUP=<EFBFBD>7Schemauswahlphase
|
||||
STATE_POST_SCHEM_SETUP=<EFBFBD>7Vorbereitungsphase
|
||||
STATE_PRE_RUNNING=<EFBFBD>eKitausgabe
|
||||
STATE_RUNNING=<EFBFBD>eKampfphase
|
||||
STATE_SPECTATE_WIN=<EFBFBD>7Sieg {0}
|
||||
STATE_SPECTATE_TIE=<EFBFBD>7Unentschieden
|
||||
|
||||
INVITE_TITLE=Spieler einladen
|
||||
|
||||
REMOVE_TITLE=Spieler rauswerfen
|
||||
|
||||
KIT_SELECTION_TITLE=Kitauswahl
|
||||
KIT_NO_KITS=§cKeine Kits gefunden
|
||||
KIT_CREATE=§eNeues Kit
|
||||
KIT_NO_KITS=<EFBFBD>cKeine Kits gefunden
|
||||
KIT_CREATE=<EFBFBD>eNeues Kit
|
||||
KITNAME_TITLE=Kitname eingeben
|
||||
KITNAME_IN_USE=§cDieser Kitname wird bereits genutzt
|
||||
KIT_SEARCH=§eSuchen
|
||||
KITNAME_IN_USE=<EFBFBD>cDieser Kitname wird bereits genutzt
|
||||
KIT_SEARCH=<EFBFBD>eSuchen
|
||||
KITSEARCH_TITLE=Nach Kit suchen
|
||||
|
||||
SCHEM_NO_ENEMY=§cKeine Schematicwahl ohne Gegner
|
||||
SCHEM_NO_ENEMY=<EFBFBD>cKeine Schematicwahl ohne Gegner
|
||||
SCHEM_TITLE={0}-Auswahl
|
||||
SCHEM_PUBLIC=§eÖffentliches {0}
|
||||
SCHEM_PRIVATE=§ePrivates {0}
|
||||
SCHEM_NO_PRIVATE=§7Kein privates {0} vorhanden
|
||||
SCHEM_PRIVATE_FORBIDDEN=§7Kein privates {0} erlaubt
|
||||
SCHEM_PUBLIC=<EFBFBD>e<EFBFBD>ffentliches {0}
|
||||
SCHEM_PRIVATE=<EFBFBD>ePrivates {0}
|
||||
SCHEM_NO_PRIVATE=<EFBFBD>7Kein privates {0} vorhanden
|
||||
SCHEM_PRIVATE_FORBIDDEN=<EFBFBD>7Kein privates {0} erlaubt
|
||||
|
||||
|
||||
# Countdowns
|
||||
COUNTDOWN_MINUTES=§e{0} §7Minuten {1}
|
||||
COUNTDOWN_SECONDS=§e{0} §7Sekunden {1}
|
||||
COUNTDOWN_SECOND=§eEine §7Sekunde {1}
|
||||
COUNTDOWN_MINUTES=<EFBFBD>e{0} <20>7Minuten {1}
|
||||
COUNTDOWN_SECONDS=<EFBFBD>e{0} <20>7Sekunden {1}
|
||||
COUNTDOWN_SECOND=<EFBFBD>eEine <20>7Sekunde {1}
|
||||
|
||||
ENTERN_COUNTDOWN=bis Entern erlaubt ist
|
||||
ENTERN_ALLOWED=§eEntern §7ist nun erlaubt
|
||||
ENTERN_ALLOWED=<EFBFBD>eEntern <20>7ist nun erlaubt
|
||||
|
||||
SHUTDOWN_COUNTDOWN=bis der Server gestoppt wird
|
||||
PRE_SCHEM_COUNTDOWN=bis eine Public-Schematic gewählt wird
|
||||
PRE_SCHEM_COUNTDOWN=bis eine Public-Schematic gew<EFBFBD>hlt wird
|
||||
POST_SCHEM_COUNTDOWN=bis die Kits verteilt werden
|
||||
PRE_RUNNING_COUNTDOWN=bis die Arena freigegeben ist
|
||||
RUNNING_COUNTDOWN=bis der Kampf vorbei ist
|
||||
SPECTATE_COUNTDOWN=bis die Arena zurückgesetzt wird
|
||||
SPECTATE_COUNTDOWN=bis die Arena zur<EFBFBD>ckgesetzt wird
|
||||
|
||||
|
||||
# Fight
|
||||
SCHEMATIC_UNLOADABLE=§cSchematic konnte nicht geladen werden
|
||||
SCHEMATIC_CHOSEN=§7{0} §e{1} §7gewählt
|
||||
TEAM_READY=§aTeam bereit
|
||||
TEAM_NOT_READY=§c§mTeam bereit
|
||||
SKIP_READY=§aBeschleunigung zum nächsten Event
|
||||
SKIP_NOT_READY=§c§mBeschleunigung zum nächsten Event
|
||||
TEAM_CHAT={0}{1}§8» {0}{2}
|
||||
CHOOSE_KIT=§eKit wählen
|
||||
RESPAWN=§eRespawn
|
||||
INVITE_PLAYERS=§eSpieler einladen
|
||||
REMOVE_PLAYERS=§cSpieler rauswerfen
|
||||
CHOOSE_SCHEMATIC=§e{0} wählen
|
||||
SCHEMATIC_REQUIRED=§cZuerst muss eine Schematic gewählt sein
|
||||
SCHEMATIC_UNLOADABLE=<EFBFBD>cSchematic konnte nicht geladen werden
|
||||
SCHEMATIC_CHOSEN=<EFBFBD>7{0} <20>e{1} <20>7gew<65>hlt
|
||||
TEAM_READY=<EFBFBD>aTeam bereit
|
||||
TEAM_NOT_READY=<EFBFBD>c<EFBFBD>mTeam bereit
|
||||
SKIP_READY=<EFBFBD>aBeschleunigung zum n<>chsten Event
|
||||
SKIP_NOT_READY=<EFBFBD>c<EFBFBD>mBeschleunigung zum n<>chsten Event
|
||||
TEAM_CHAT={0}{1}<EFBFBD>8<EFBFBD> {0}{2}
|
||||
CHOOSE_KIT=<EFBFBD>eKit w<>hlen
|
||||
RESPAWN=<EFBFBD>eRespawn
|
||||
INVITE_PLAYERS=<EFBFBD>eSpieler einladen
|
||||
REMOVE_PLAYERS=<EFBFBD>cSpieler rauswerfen
|
||||
CHOOSE_SCHEMATIC=<EFBFBD>e{0} w<>hlen
|
||||
SCHEMATIC_REQUIRED=<EFBFBD>cZuerst muss eine Schematic gew<65>hlt sein
|
||||
|
||||
KIT_PREVIEW_EDIT=§7Kit bearbeiten
|
||||
KIT_PREVIEW_CHOOSE=§aKit wählen
|
||||
KIT_PREVIEW_BACK=§cZurück
|
||||
KIT_PREVIEW_DELETE=§cKit löschen
|
||||
KIT_DELETION_CONFIRMATION=Kit wirklich löschen?
|
||||
KIT_DELETION_ABORT=§cAbbrechen
|
||||
KIT_DELETION_DELETE=§aLöschen
|
||||
KIT_PREVIEW_EDIT=<EFBFBD>7Kit bearbeiten
|
||||
KIT_PREVIEW_CHOOSE=<EFBFBD>aKit w<>hlen
|
||||
KIT_PREVIEW_BACK=<EFBFBD>cZur<EFBFBD>ck
|
||||
KIT_PREVIEW_DELETE=<EFBFBD>cKit l<>schen
|
||||
KIT_DELETION_CONFIRMATION=Kit wirklich l<EFBFBD>schen?
|
||||
KIT_DELETION_ABORT=<EFBFBD>cAbbrechen
|
||||
KIT_DELETION_DELETE=<EFBFBD>aL<EFBFBD>schen
|
||||
|
||||
|
||||
# Listener
|
||||
NO_ARENA_LEAVING=§cDu darfst die Arena nicht verlassen
|
||||
CHECK_JOIN_DENIED=§cAuf diesem Server wird momentan eine Schematic geprüft!
|
||||
CHECK_COMMAND_LOCKED=§cDieser Befehl ist beim Prüfen gesperrt! Admin wird benachrichtigt.
|
||||
NO_BLOCK_BREAK=§cDu darfst hier derzeit keine Blöcke abbauen
|
||||
NO_BLOCK_PLACE=§cDu darfst hier derzeit keine Blöcke setzen
|
||||
NO_BOW_USAGE=§cDu darfst den Bogen erst nach Kampfbeginn nutzen
|
||||
NO_PARTICIPANT=§cDu bist kein Kampfteilnehmer
|
||||
NO_FRIENDLY_FIRE=§cDu darfst deinen Teamkollegen keinen Schaden zufügen
|
||||
NO_TNT_PLACE=§cDu darfst kein TNT setzen
|
||||
NO_TELEPORT=§cDu darfst diese Teleportfunktion nicht benutzen
|
||||
OPEN_INVENTORY_TO_CUSTOMIZE=§eInventar zum Anpassen des Kits öffnen
|
||||
RESOURCEPACK_REQUIRED=§cAuf Eventserver kann nur mit dem SteamWar-Resourcepack beigetreten werden\n§cDa du abgelehnt hast, musst du nun in der Serverliste erst einmal wieder Ressourcenpakete von SteamWar aktivieren
|
||||
NO_ENTERN=§cDu darfst nicht entern
|
||||
NO_TEAMAREA=§cDu darfst nicht zu den Teams
|
||||
TEST_BECOME_LEADER=§7Werde zum Teamleader mit §8/§eleader
|
||||
PREPARE_SCHEM_DELETED=§cAnscheinend wurde die auszufahrende Schematic gelöscht, Einsenden wird abgebrochen.
|
||||
PREPARE_ACTIVE_PISTON=§cIm Teambereich wurden sich noch bewegende Pistons gefunden, Einsenden wird abgebrochen.
|
||||
PREPARE_FAILED_SAVING=§cDie Schematic konnte nicht gespeichert werden, Einsenden wird abgebrochen.
|
||||
PREPARE_SENT_IN=§aDie Schematic wird nun zeitnah von einem Teammitglied überprüft
|
||||
PARTICIPANT_CHAT={0} {1}§8» §7{2}
|
||||
FIGHTLEADER_CHAT=§e{0}§8» §e{1}
|
||||
SPECTATOR_CHAT=§7{0}§8» §7{1}
|
||||
NO_ARENA_LEAVING=<EFBFBD>cDu darfst die Arena nicht verlassen
|
||||
CHECK_JOIN_DENIED=<EFBFBD>cAuf diesem Server wird momentan eine Schematic gepr<70>ft!
|
||||
CHECK_COMMAND_LOCKED=<EFBFBD>cDieser Befehl ist beim Pr<50>fen gesperrt! Admin wird benachrichtigt.
|
||||
NO_BLOCK_BREAK=<EFBFBD>cDu darfst hier derzeit keine Bl<42>cke abbauen
|
||||
NO_BLOCK_PLACE=<EFBFBD>cDu darfst hier derzeit keine Bl<42>cke setzen
|
||||
NO_BOW_USAGE=<EFBFBD>cDu darfst den Bogen erst nach Kampfbeginn nutzen
|
||||
NO_PARTICIPANT=<EFBFBD>cDu bist kein Kampfteilnehmer
|
||||
NO_FRIENDLY_FIRE=<EFBFBD>cDu darfst deinen Teamkollegen keinen Schaden zuf<75>gen
|
||||
NO_TNT_PLACE=<EFBFBD>cDu darfst kein TNT setzen
|
||||
NO_TELEPORT=<EFBFBD>cDu darfst diese Teleportfunktion nicht benutzen
|
||||
OPEN_INVENTORY_TO_CUSTOMIZE=<EFBFBD>eInventar zum Anpassen des Kits <20>ffnen
|
||||
RESOURCEPACK_REQUIRED=<EFBFBD>cAuf Eventserver kann nur mit dem SteamWar-Resourcepack beigetreten werden\n<>cDa du abgelehnt hast, musst du nun in der Serverliste erst einmal wieder Ressourcenpakete von SteamWar aktivieren
|
||||
NO_ENTERN=<EFBFBD>cDu darfst nicht entern
|
||||
NO_TEAMAREA=<EFBFBD>cDu darfst nicht zu den Teams
|
||||
TEST_BECOME_LEADER=<EFBFBD>7Werde zum Teamleader mit <20>8/<2F>eleader
|
||||
PREPARE_SCHEM_DELETED=<EFBFBD>cAnscheinend wurde die auszufahrende Schematic gel<65>scht, Einsenden wird abgebrochen.
|
||||
PREPARE_ACTIVE_PISTON=<EFBFBD>cIm Teambereich wurden sich noch bewegende Pistons gefunden, Einsenden wird abgebrochen.
|
||||
PREPARE_FAILED_SAVING=<EFBFBD>cDie Schematic konnte nicht gespeichert werden, Einsenden wird abgebrochen.
|
||||
PREPARE_SENT_IN=<EFBFBD>aDie Schematic wird nun zeitnah von einem Teammitglied <20>berpr<70>ft
|
||||
PARTICIPANT_CHAT={0} {1}<EFBFBD>8<EFBFBD> <20>7{2}
|
||||
FIGHTLEADER_CHAT=<EFBFBD>e{0}<7D>8<EFBFBD> <20>e{1}
|
||||
SPECTATOR_CHAT=<EFBFBD>7{0}<7D>8<EFBFBD> <20>7{1}
|
||||
|
||||
|
||||
# Replay
|
||||
REPLAY_ENDS=§cReplay beendet
|
||||
REPLAY_ENDS=<EFBFBD>cReplay beendet
|
||||
OLD_STRING={0}
|
||||
|
||||
|
||||
# States
|
||||
COMMAND_CURRENTLY_UNAVAILABLE=§cDieser Befehl ist zu diesem Kampfzeitpunkt nicht verfügbar
|
||||
COMMAND_CURRENTLY_UNAVAILABLE=<EFBFBD>cDieser Befehl ist zu diesem Kampfzeitpunkt nicht verf<72>gbar
|
||||
|
||||
|
||||
# Utils
|
||||
TPS_WARNING=§c{0} §7TPS
|
||||
TPS_WARNING=<EFBFBD>c{0} <20>7TPS
|
||||
|
||||
UI_PRE_RUNNING=§7Kits verteilt
|
||||
UI_RUNNING=§aArena freigegeben
|
||||
UI_SKIP=§7Sprung zum nächsten Ereignis
|
||||
UI_PLAYER_JOINS=§a§l» {0}{1}
|
||||
UI_PLAYER_LEAVES=§c§l« {0}{1}
|
||||
UI_LEADER_JOINS=§a§l» {0}Leader {1}
|
||||
UI_PLAYER_DEATH={0}{1} §7ist gestorben
|
||||
UI_PLAYER_LEAVE={0}{1} §7hat den Kampf verlassen
|
||||
UI_ELO=§7ELO von {0}{1}§8: §7{2}§8»§e{3}
|
||||
UI_PRE_RUNNING=<EFBFBD>7Kits verteilt
|
||||
UI_RUNNING=<EFBFBD>aArena freigegeben
|
||||
UI_SKIP=<EFBFBD>7Sprung zum n<>chsten Ereignis
|
||||
UI_PLAYER_JOINS=<EFBFBD>a<EFBFBD>l<EFBFBD> {0}{1}
|
||||
UI_PLAYER_LEAVES=<EFBFBD>c<EFBFBD>l<EFBFBD> {0}{1}
|
||||
UI_LEADER_JOINS=<EFBFBD>a<EFBFBD>l<EFBFBD> {0}Leader {1}
|
||||
UI_PLAYER_DEATH={0}{1} <EFBFBD>7ist gestorben
|
||||
UI_PLAYER_LEAVE={0}{1} <EFBFBD>7hat den Kampf verlassen
|
||||
UI_ELO=<EFBFBD>7ELO von {0}{1}<7D>8: <20>7{2}<7D>8<EFBFBD><38>e{3}
|
||||
UI_WIN={0}Sieg {1}
|
||||
UI_DRAW=§7Unentschieden
|
||||
UI_DRAW=<EFBFBD>7Unentschieden
|
||||
|
||||
BAR_PRE_LEADER=§7Warten auf Teamleader
|
||||
BAR_PRE_SCHEM={1} §7Schemauswahl {0} {2}
|
||||
BAR_PREPARE={1} {3} §7Vorbereitung {0} {4} {2}
|
||||
BAR_PRE_RUNNING={1} {3} §7Kampfbeginn in {0} {4} {2}
|
||||
BAR_PRE_LEADER=<EFBFBD>7Warten auf Teamleader
|
||||
BAR_PRE_SCHEM={1} <EFBFBD>7Schemauswahl {0} {2}
|
||||
BAR_PREPARE={1} {3} <EFBFBD>7Vorbereitung {0} {4} {2}
|
||||
BAR_PRE_RUNNING={1} {3} <EFBFBD>7Kampfbeginn in {0} {4} {2}
|
||||
BAR_RUNNING0={1} {3} {0} {4} {2}
|
||||
BAR_RUNNING1={1} {3} {5} {0} {6} {4} {2}
|
||||
BAR_RUNNING2={1} {3} {5} {7} {0} {6} {8} {4} {2}
|
||||
BAR_RUNNING3={1} {3} {5} {7} {9} {0} {6} {8} {10} {4} {2}
|
||||
BAR_SPECTATE={1} §7Kampf vorbei {0} {2}
|
||||
BAR_TIE={1} §7Unentschieden {0} {2}
|
||||
BAR_WIN={1} §7Sieg {3} {0} {2}
|
||||
BAR_POINTS={0} §8Punkte
|
||||
BAR_PERCENT={0}§8%
|
||||
BAR_CANNONS={0} §8Kanonen
|
||||
BAR_WATER={0} §8Wasser
|
||||
BAR_SPECTATE={1} <EFBFBD>7Kampf vorbei {0} {2}
|
||||
BAR_TIE={1} <EFBFBD>7Unentschieden {0} {2}
|
||||
BAR_WIN={1} <EFBFBD>7Sieg {3} {0} {2}
|
||||
BAR_POINTS={0} <EFBFBD>8Punkte
|
||||
BAR_PERCENT={0}<EFBFBD>8%
|
||||
BAR_CANNONS={0} <EFBFBD>8Kanonen
|
||||
BAR_WATER={0} <EFBFBD>8Wasser
|
||||
|
||||
|
||||
# Winconditions
|
||||
HELLS_BELLS_COUNTDOWN=bis die Bomben fallen
|
||||
TECHKO_COUNTDOWN=bis {0} §7einen Schuss abgegeben haben muss
|
||||
METEOR_COUNTDOWN=bis es Meteore regnet
|
||||
TECHKO_COUNTDOWN=bis {0} <20>7einen Schuss abgegeben haben muss
|
||||
|
||||
WIN_FIGHTLEADER=§7Kampfleiterentscheidung
|
||||
WIN_PERCENT={0} §7zu beschädigt
|
||||
WIN_OFFLINE_BOTH=§7Beide Teams offline
|
||||
WIN_OFFLINE={0} §7offline
|
||||
WIN_RANKED_LEFT={0} §7hat den Kampf verlassen
|
||||
WIN_ALL_DEAD={0}Alle Spieler kampfunfähig
|
||||
WIN_LEADER_DEAD={0} kampfunfähig
|
||||
WIN_TIME_OVER=§7Zeit abgelaufen
|
||||
WIN_FIGHTLEADER=<EFBFBD>7Kampfleiterentscheidung
|
||||
WIN_PERCENT={0} <EFBFBD>7zu besch<63>digt
|
||||
WIN_OFFLINE_BOTH=<EFBFBD>7Beide Teams offline
|
||||
WIN_OFFLINE={0} <EFBFBD>7offline
|
||||
WIN_RANKED_LEFT={0} <EFBFBD>7hat den Kampf verlassen
|
||||
WIN_ALL_DEAD={0}Alle Spieler kampfunf<EFBFBD>hig
|
||||
WIN_LEADER_DEAD={0} kampfunf<EFBFBD>hig
|
||||
WIN_TIME_OVER=<EFBFBD>7Zeit abgelaufen
|
||||
WIN_MORE_HEALTH={0}Mehr verbleibende Leben
|
||||
WIN_LESS_DAMAGE={0} §7weniger beschädigt
|
||||
WIN_LESS_DAMAGE={0} <EFBFBD>7weniger besch<63>digt
|
||||
WIN_POINTS={0} hat mehr Punkte
|
||||
WIN_POINTS_EQUAL=§7Gleicher Punktestand
|
||||
WIN_TECHKO={0} §7ist Tech K.O.
|
||||
WIN_POINTS_EQUAL=<EFBFBD>7Gleicher Punktestand
|
||||
WIN_TECHKO={0} <EFBFBD>7ist Tech K.O.
|
||||
|
160
FightSystem_Core/src/de/steamwar/fightsystem/event/Meteor.java
Normale Datei
160
FightSystem_Core/src/de/steamwar/fightsystem/event/Meteor.java
Normale Datei
@ -0,0 +1,160 @@
|
||||
package de.steamwar.fightsystem.event;
|
||||
|
||||
import de.steamwar.fightsystem.Config;
|
||||
import de.steamwar.fightsystem.countdown.Countdown;
|
||||
import de.steamwar.fightsystem.states.FightState;
|
||||
import de.steamwar.fightsystem.states.StateDependent;
|
||||
import de.steamwar.fightsystem.utils.Message;
|
||||
import de.steamwar.fightsystem.utils.SWSound;
|
||||
import de.steamwar.fightsystem.winconditions.Winconditions;
|
||||
import java.util.Random;
|
||||
import java.util.logging.Level;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.entity.Fireball;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
|
||||
public class Meteor {
|
||||
|
||||
public static final Random random = new Random();
|
||||
|
||||
private final World world = Bukkit.getWorlds().get(0);
|
||||
private final int xLength = Config.RedExtendRegion.getMaxX() - Config.RedExtendRegion.getMinX();
|
||||
private final int zLength = Config.RedExtendRegion.getMaxZ() - Config.RedExtendRegion.getMinZ();
|
||||
private Meteor.State current = Meteor.State.PRE;
|
||||
private int currentDrops = 0;
|
||||
private Meteor.MeteorCountdown currentCountdown;
|
||||
|
||||
public void startCountdown() {
|
||||
if (current == Meteor.State.PRE) {
|
||||
current = current.getNext();
|
||||
} else if (current != Meteor.State.LAST && currentDrops >= current.SWITCH_AFTER) {
|
||||
currentDrops = 0;
|
||||
}
|
||||
|
||||
currentDrops++;
|
||||
currentCountdown = new Meteor.MeteorCountdown(current.MIN_TIME + random.nextInt(current.MAX_TIME - current.MIN_TIME));
|
||||
currentCountdown.enable();
|
||||
}
|
||||
|
||||
public void drop() {
|
||||
int xOffset = getStart(xLength);
|
||||
int zOffset = getStart(zLength);
|
||||
int yOffset = getHeightStart();
|
||||
|
||||
Meteor.Point redStart = new Meteor.Point(Config.RedExtendRegion.getMinX() + xOffset, Config.RedExtendRegion.getMaxY() + yOffset, Config.RedExtendRegion.getMaxZ() - zOffset);
|
||||
Meteor.Point blueStart = new Meteor.Point(Config.BlueExtendRegion.getMinX() + xOffset, Config.BlueExtendRegion.getMaxY() + yOffset, Config.BlueExtendRegion.getMinZ() + zOffset);
|
||||
|
||||
Fireball fireballRed = world.spawn(redStart.toLocation(world), Fireball.class);
|
||||
fireballRed.setDirection(new Vector(0, -1, 0));
|
||||
fireballRed.setBounce(false);
|
||||
fireballRed.setIsIncendiary(false);
|
||||
fireballRed.setYield(current.minExplosion + random.nextInt(current.maxExplosion - current.minExplosion));
|
||||
|
||||
Fireball fireballBlue = world.spawn(blueStart.toLocation(world), Fireball.class);
|
||||
fireballBlue.setDirection(new Vector(0, -1, 0));
|
||||
fireballBlue.setBounce(false);
|
||||
fireballBlue.setIsIncendiary(false);
|
||||
fireballBlue.setYield(current.minExplosion + random.nextInt(current.maxExplosion - current.minExplosion));
|
||||
}
|
||||
|
||||
private int getStart(int regionSize) {
|
||||
double randomNumber = (random.nextDouble() - random.nextDouble()) / 2 + 0.5;
|
||||
Bukkit.getLogger().log(Level.INFO, "Calculated Start: " + (int) (randomNumber * (regionSize - 1)));
|
||||
return Math.max(Math.min((int) (randomNumber * (regionSize - 1)), regionSize - 1), 0);
|
||||
}
|
||||
|
||||
private int getHeightStart() {
|
||||
return 5 + random.nextInt(15);
|
||||
}
|
||||
|
||||
public Meteor() {
|
||||
new StateDependent(Winconditions.METEOR, FightState.Running) {
|
||||
@Override
|
||||
public void enable() {
|
||||
startCountdown();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void disable() {
|
||||
currentCountdown.disable();
|
||||
}
|
||||
}.register();
|
||||
}
|
||||
|
||||
private class MeteorCountdown extends Countdown {
|
||||
|
||||
public MeteorCountdown(int time) {
|
||||
super(time, new Message("METEOR_COUNTDOWN"), SWSound.BLOCK_NOTE_BASS, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void countdownFinished() {
|
||||
drop();
|
||||
startCountdown();
|
||||
}
|
||||
}
|
||||
|
||||
private static class Point {
|
||||
|
||||
private final int x;
|
||||
private final int y;
|
||||
private final int z;
|
||||
|
||||
public Point(int x, int y, int z) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.z = z;
|
||||
}
|
||||
|
||||
public Location toLocation(World world) {
|
||||
return new Location(world, this.x, this.y, this.z); //NOSONAR
|
||||
}
|
||||
}
|
||||
|
||||
private enum State {
|
||||
|
||||
PRE(60, 80, 1, 0, 0),
|
||||
FIRST(40, 60, 3, 1, 3),
|
||||
SECOND(30, 40, 4, 2, 4),
|
||||
THIRD(20, 30, 4, 3, 6),
|
||||
FOURTH(10, 20, 5, 4, 7),
|
||||
LAST(5, 10, 0, 5, 10);
|
||||
|
||||
|
||||
State(int minTime, int maxTime, int switchAfter, int minExplosion, int maxExplosion) {
|
||||
this.MIN_TIME = minTime;
|
||||
this.MAX_TIME = maxTime;
|
||||
this.SWITCH_AFTER = switchAfter;
|
||||
this.minExplosion = minExplosion;
|
||||
this.maxExplosion = maxExplosion;
|
||||
}
|
||||
|
||||
private final int MIN_TIME; //NOSONAR
|
||||
private final int MAX_TIME; //NOSONAR
|
||||
private final int SWITCH_AFTER; //NOSONAR
|
||||
private final int minExplosion; //NOSONAR
|
||||
private final int maxExplosion; //NOSONAR
|
||||
|
||||
|
||||
public Meteor.State getNext() {
|
||||
switch (this) {
|
||||
case PRE:
|
||||
return FIRST;
|
||||
case FIRST:
|
||||
return SECOND;
|
||||
case SECOND:
|
||||
return THIRD;
|
||||
case THIRD:
|
||||
return FOURTH;
|
||||
case FOURTH:
|
||||
case LAST:
|
||||
return LAST;
|
||||
default:
|
||||
return PRE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -36,5 +36,6 @@ public enum Winconditions {
|
||||
WATER_TECH_KO,
|
||||
PUMPKIN_TECH_KO,
|
||||
|
||||
HELLS_BELLS
|
||||
HELLS_BELLS,
|
||||
METEOR
|
||||
}
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren