Boss-Phasen erstellen
Boss-Phasen sind eine Untermechanik von benutzerdefinierten Bossen. Das System hinter diesen Phasen ist so flexibel und leistungsstark, dass es eine eigene, gesonderte Erklärung erfordert, um sicherzustellen, dass du dieses Feature optimal nutzt.
Wie funktionieren Boss-Phasen?
Boss-Phasen können jedem benutzerdefinierten Boss in EliteMobs mit folgendem Konfigurationsformat hinzugefügt werden:
phases:
- phase_2_boss.yml:0.X
- phase_3_boss.yml:0.Y
Hinweis: Der Boss, den du ursprünglich spawnst (der den phases:-Eintrag mit allen anderen Phasen enthält), ist der Phase-1-Boss. Die Phase-1-Boss-Datei sollte sich NICHT selbst in ihrem eigenen phases:-Eintrag auflisten.
Die grundlegende Idee hinter dieser Mechanik ist es, Administratoren zu ermöglichen, die Attribute eines benutzerdefinierten Bosses während des Kampfes zu ändern. Mit dem obigen Konfigurationsformat kannst du Konfigurationsdateien von Phase zu Phase vollständig ändern, das heißt, du kannst 99,99 % der Attribute ändern - wie Kräfte, Schadensmultiplikatoren, Gesundheitsmultiplikatoren, Entitätstyp, Verkleidung, getragene Rüstung...
Um dies zu erreichen, löscht EliteMobs deinen Boss während des Kampfes und ersetzt ihn sofort durch die Version aus der nächsten Phase. Der Prozess dahinter erfolgt augenblicklich, sodass er in der Regel ziemlich nahtlos abläuft - es sei denn, du möchtest ihn absichtlich auffällig gestalten. Der Boss erhält nach dem Übergang eine 1-sekündige Kampf-Schonfrist, um sanfte visuelle Effekte zu gewährleisten.
Beispiel
Nimm diesen Beispiel-Phasen-Boss:
Datei: phase_1_boss.yml
isEnabled: true
level: 50
healthMultiplier: 10
entityType: STRAY
powers:
- attack_gravity.yml
phases:
- phase_2_boss.yml:0.60
- phase_3_boss.yml:0.30
Datei: phase_2_boss.yml
isEnabled: true
level: 50
healthMultiplier: 10
entityType: SKELETON
powers:
- attack_gravity.yml
- arrow_fireworks.yml
Datei: phase_3_boss.yml
isEnabled: true
level: 50
healthMultiplier: 10
entityType: WITHER_SKELETON
powers:
- arrow_rain.yml
Dies stellt einen gültigen Phasen-Boss dar. Wenn du phase_1_boss.yml spawnst, spawnt er einen Stray mit den oben aufgeführten Attributen. Nachdem er auf 60 % seiner Gesundheit heruntergeschädigt wurde, wird er sofort am selben Ort durch den benutzerdefinierten Boss ersetzt, wie er in phase_2_boss.yml geformt ist, da die Konfigurationsdatei - phase_2_boss.yml:0.60 angibt (phase_2_boss.yml ist der Dateiname für diesen benutzerdefinierten Boss, 0.60 sind 60 % Gesundheit). Beachte, dass der Phase-2-Boss mit 60 % seiner Gesundheit spawnt, da er zu diesem Zeitpunkt in diese Phase wechselt. Der Boss wird die in der Datei phase_2_boss.yml aufgeführten Kräfte haben. Sobald der Phase-2-Boss auf 30 % seiner Gesundheit heruntergeschädigt wird, spawnt er den für Phase 3 festgelegten Boss. Beachte, dass die Kräfte für Phase 3 nichts mit den vorherigen zu tun haben - du kannst die Kräfte zwischen den Phasen vollständig ändern, genau wie fast alle anderen Attribute.
Erweitert
Vererbte Mechaniken
Hier ist eine Liste von Dingen, die sich von Phase zu Phase nicht ändern:
-
Der erste Phasen-Boss in der Kette bestimmt, welche Phasen der Boss durchläuft, was bedeutet, dass du für die anderen Bosse in der Phase keinen phases-Eintrag setzen solltest.
-
Die Bedrohungstabelle / Schadenstabelle bleibt gleich, was bedeutet, dass die Loot-Verteilung und das erweiterte Aggro-System von einem Phasenwechsel unberührt bleiben
-
Das Wechseln der Phasen basiert auf dem % der verlorenen Gesundheit, das von Phase zu Phase erhalten bleibt. Das bedeutet, dass, wenn dein Boss so eingestellt ist, dass er bei 50 % Gesundheit in Phase 2 eintritt, der Boss, der den Phase-1-Boss ersetzt, immer noch bei 50 % Gesundheit sein wird. Das bedeutet auch, dass jede Phase völlig unterschiedliche Gesundheitsmengen haben kann, ohne dass dies Probleme verursacht.
-
Phasen-Bosse kehren zu Phase 1 zurück, wenn sie über das Standard-System zur Boss-Regeneration außerhalb des Kampfes wieder auf volle Gesundheit geheilt werden
-
Phasen-Bosse, die auch regionale Bosse sind, teilen sich denselben Leinenradius und dieselbe Timeout-Mechanik über alle Phasen hinweg und respawnen als Phase-1-Boss, nachdem der Respawn-Timer abgelaufen ist. Der Respawn-Cooldown und andere Einstellungen für regionale Bosse werden immer aus der Phase-1-Boss-Konfiguration übernommen.
Phasen-spezifische Spawn-Orte
Standardmäßig bleiben Bosse beim Übergang zwischen den Phasen an ihrem aktuellen Ort. Du kannst jedoch dafür sorgen, dass ein Boss beim Eintritt in eine Phase zu einem bestimmten Ort teleportiert wird, indem du die Einstellung phaseSpawnLocation verwendest:
Datei: phase_2_boss.yml
isEnabled: true
level: 50
healthMultiplier: 10
entityType: SKELETON
powers:
- attack_gravity.yml
- arrow_fireworks.yml
phaseSpawnLocation: world_name,100,64,100,0,0
Du kannst den Boss auch teleportieren, während er in derselben Welt bleibt:
phaseSpawnLocation: same_as_boss,100,64,100,0,0
Dies ist nützlich, um dramatische Phasenübergänge zu erstellen, bei denen sich der Boss zu einer anderen Arena oder einem anderen Ort teleportiert.
Warnungen
Hier ist eine Liste von Mechaniken, die auf eine Weise funktionieren, die anfangs möglicherweise nicht intuitiv ist:
-
Wenn ein Phasen-Boss während einer beliebigen Phase getötet wird, lässt er die Beute aus dieser Phase fallen. Das bedeutet, dass, wenn es jemandem gelingt, einen Phasen-Boss zu schnell zu töten (One-Shot), er tatsächlich stirbt und die für diese Boss-Datei konfigurierte Beute fallen lässt, die nicht unbedingt die letzte Phase ist. Du kannst dies beheben, indem du die Loot-Tabelle über alle Boss-Dateien dieses Phasen-Bosses hinweg gleich einstellst, oder indem du sicherstellst, dass deine Phasen-Bosse genug HP haben, sodass es unmöglich ist, sie mit nur wenigen Treffern zu töten. Alternativ kannst du spezielle Loot-Tabellen für Spieler haben, die in der Lage sind, Phasen zu überspringen.
-
Da Phasen-Bosse tatsächlich dazu führen, dass benutzerdefinierte Bosse während des Kampfes spawnen, durchlaufen sie ihre gesamte Spawn-Routine, wenn sie spawnen. Sei daher vorsichtig bei Spawn-Nachrichten und Befehlen, die beim Spawnen ausgeführt werden. Außerdem sterben Phasen-Bosse nicht, wenn sie die Phase wechseln, sie werden einfach durch etwas anderes ausgetauscht. Das bedeutet, dass Befehle, die beim Tod ausgeführt werden, nur für den letzten Phasen-Boss ausgeführt werden, oder wenn es dem Spieler gelingt, eine Phase durch das Verursachen von genug Schaden zu überspringen. Befehle, die beim Spawnen ausgeführt werden, können verwendet werden, um sich in Phasenwechsel einzuhaken. Hinweis: Die Spawn-Nachricht wird nicht gesendet, wenn der Boss aufgrund der Regeneration auf volle Gesundheit auf Phase 1 zurückgesetzt wird. Spawn-Nachrichten WERDEN jedoch gesendet, wenn während des Kampfes zu den Phasen 2, 3 usw. übergegangen wird, und wenn regionale Bosse nach ihrem Cooldown respawnen.
-
Phasen-Bosse können zwischen den Phasen beritten erscheinen oder aufhören, beritten zu sein. Wenn der Phasen-Boss getötet wird, bevor das Reittier tot ist, bleibt das Reittier bis in die nächste Phase bestehen. Wenn sich der Boss wieder voll regeneriert, wird das Reittier gelöscht und der Boss wird unberitten, es sei denn, er ist so konfiguriert, dass er während Phase 1 eine Entität reitet.
-
Da zwischen den Phasen neue benutzerdefinierte Bosse gespawnt werden, wird die einmalige Spawn-Mechanik zwischen den Phasen und bei vollständigen Heilungen zurückgesetzt.
Tipps & Tricks
-
Du kannst die Tatsache nutzen, dass Ausrüstung und Entitätstypen während des Kampfes geändert werden können, um den Boss im Laufe des Kampfes immer (mehr oder weniger) gefährlicher aussehen zu lassen
-
Auch wenn es möglich ist, ist es, sofern kein bestimmtes Designziel verfolgt wird, wahrscheinlich am besten, dass sich die Kräfte des Phasen-Bosses zwischen den Phasen nicht zu drastisch ändern, da Spieler eher eine Progression genießen, die sich während des Kampfes natürlich anfühlt.
-
Du kannst onSpawn-Befehle verwenden, um Befehle zwischen den Phasen auszuführen
-
Du kannst für jede Phase unterschiedliche Musik mit der Konfigurationsoption
songfestlegen. Die Musik wechselt automatisch, wenn der Boss in eine neue Phase eintritt. -
Phasen können verwendet werden, um den Boss vom Nahkampf- in den Fernkampf-Modus und umgekehrt umzuschalten
-
Phasen-Bosse wurden als zähe Bosse mit viel HP konzipiert. Sie eignen sich in der Regel am besten als finale Boss-Begegnung für Dungeons oder als große Welt-Bosse.
-
Beim Gestalten von Begegnungen solltest du bedenken, dass es möglich ist, dass Verstärkungen zwischen den Phasen nicht von den Spielern getötet werden.
-
Bosse können beliebig viele Phasen haben, aber je mehr Phasen sie haben, desto mehr Gesundheit benötigen sie, damit jede Phase ins Gewicht fällt.
API-Integration
Für Plugin-Entwickler: EliteMobs löst ein ElitePhaseSwitchEvent aus, wenn ein Boss zwischen Phasen wechselt. Dieses Event kann verwendet werden, um benutzerdefinierte Verhaltensweisen oder Effekte während Phasenübergängen zu erstellen:
@EventHandler
public void onPhaseSwitch(ElitePhaseSwitchEvent event) {
CustomBossEntity boss = event.getCustomBossEntity();
PhaseBossEntity phaseBoss = event.getPhaseBossEntity();
// Your custom logic here
}