MegaBlock Survivors の敵
MegaBlock Survivors に登場するすべての敵は、バニラの Bukkit モブではなく、プラグイン独自の移動・衝突判定コードで動くカスタムモデルです。バニラの AI は完全に無視されます。各個体は現在のウェーブレベルでスポーンし、そのレベルからステータスを導出し、試合インスタンスによってティック処理されます。
ウェーブの構成方法と、経過試合時間からウェーブレベルが導出される仕組みについては ゲームプレイ を参照してください。
共通ステータスの基準値
すべてのモブは 1 つのステータス導出式を共有しており、スポーン時にウェーブレベルから適用されます:
| ステータス | 計算式 | タイプ別の上書き |
|---|---|---|
| 最大 HP | round(waveLevel * 1.6 - 1.0, 1dp) | ボス x10、Artillery x0.5、Ghost x5 |
| 接触ダメージ | max(1, floor(waveLevel / 2.5)) | ボス x2 |
| 加速度 | 0.15 * baseMul + 0.0163296 * slopeMul * sqrt(waveLevel) | Volatile x2、Ghost は時間経過で上昇、Scorpion は距離で上昇 |
| 最大速度 | acceleration * 1.1 | 加速度に連動 |
| ヒットボックス | 2 ブロック (ENTITY_SIZE) | ボスは x2 以上のスケールで描画 |
baseMul / slopeMul は試合の難易度から決まります -- ゲームプレイ ページの難易度表を参照してください。
ウェーブの敵
ウェーブコンポーザーが抽選できるのは、この 4 タイプだけです。ウェーブ帯ごとの相対的な重みとバジェットコストは ゲームプレイ ページに記載しています。
Shadow Slime
基準となる敵で、ウェーブ 1-2 でスポーンする唯一の存在です。プレイヤーに向かってまっすぐ歩き、重なると接触ダメージを与えます。特殊な挙動もテレグラフもありません -- 他のすべてのメカニクスがバランス調整の基準にしている圧力そのものです。バジェットコスト 1。
Volatile
クリーパー型の自爆兵です。Shadow Slime のおよそ 2 倍の速度で移動し、2 ブロック以内に接近すると急停止して 30 ティックの起爆カウントダウンに入ります。このとき拡大するリングが赤 → 橙 → 白へとエスカレートし、モデル自体も白熱するように着色されていきます。カウントダウンが完了すると 5 ダメージの爆発を半径 2.0 + waveLevel * 0.15 ブロックで発生させ、デスポーンします。
爆発がこの敵の唯一のダメージ源です。Volatile は接触ダメージを与えないため、起爆前に触れられても仕様上は生き残れます。起爆中に倒すと爆発は完全にキャンセルされ、シャドウフラグメント 5 個のボーナスが支払われます。これにより、突っ込んで倒しに行くことは罰ではなく、本物のリスク・リターンのプレイになっています。バジェットコスト 2。
Artillery
30 ブロック以内にいる試合のプレイヤーへ球体攻撃を放つ遠距離モブです。攻撃間隔は最短 101 ティック、約 5 秒で、水平移動の 2 ブロック先を狙います。移動コードには 18〜22 ブロックの適正距離がありますが、共通の追跡加速も働きます。18 ブロック未満では後退方向の加速が追跡加速を打ち消すだけで、後退を保証しません。適正距離内でも前進するため、20 ブロックの距離を保つとは限りません。
各スフィア攻撃は 40 ティック (2 秒) のテレグラフを伴います: 詠唱時に黄色のガラスシェル、+20 ティックで橙、+40 ティックで赤 -- ダメージが発生するのは赤のフレームのみで、対象は指定地点から 1.5 ブロック以内に限られます。Artillery は射程と引き換えに通常の半分の HP しか持ちません。バジェットコスト 2。
Laser Sentinel
AIM → LOCK → FIRE → COOLDOWN を循環する 4 フェーズのカイト型スナイパーです:
| フェーズ | 継続時間 | 挙動 |
|---|---|---|
| AIM | 30 ティック | ビームがプレイヤーを継続的に追尾 |
| LOCK | 20 ティック | ビームが現在の終点で固定される -- 抜け出せる最後の瞬間 |
| FIRE | 即時 (5 ティックの閃光) | 固定方向へのヒットスキャン。試合のプレイヤーの胸の高さの位置が、光線上の判定点から 1 ブロック以内なら max(1, contactDamage) のダメージ |
| COOLDOWN | 80 ティック | 待機し、その後繰り返す |
待機中やクールダウン中は 15 ブロック未満で距離を取ろうとし、15〜60 ブロックの範囲でのみ AIM に入ります。AIM 中に 60 ブロックより遠くへ移動すると、その攻撃は中止されます。LOCK が始まった後は、最大 60 ブロックの固定された光線に沿って発射まで進みます。固体ブロックがビームとダメージ判定を遮るため、遮蔽物で防げます。AIM、LOCK、FIRE 中は水平移動が止まります。発射前に固定ビームの外へ移動してください。バジェットコスト 2。
コンポーザー外の敵
これらは通常のウェーブ抽選には決して登場しません。
Ghost
Ghost は通常の 5 倍の HP を持ち、ドロップ、撃破数、XP、ポータルへの生贄の進捗を与えません。挙動は出現元によって異なります。
- 時間経過で出現するゴーストアーミー: 専用コントローラーが管理し、接触時にプレイヤーの致命傷処理を呼び出します。残機があれば復活できます。これらは現在の武器の対象一覧にも、Nuke、Ghost Army Banner、Second Wind の一掃対象にも含まれません。次のワールドに進むと消えます。現在の実装では戦って切り抜けることはできません。
- ラストボスの取り巻き: ボストリビュートが 2 個以上あると、ボスが同じ Ghost モデルを召喚します。こちらは通常の敵として管理され、レベルに応じた通常の接触ダメージを与えます。武器で攻撃でき、一掃効果でも除去できます。時間経過型アーミーの速度上昇は適用されません。
時間経過型アーミーの召喚が始まると 5 秒ごとに 1 体が出現し、既存・新規を含むアーミー全体の速度が 30 秒ごとに 1.2 倍になります。発動タイマーについては ゲームプレイ ページのゴーストアーミーの項を参照してください。
Death Orb
ボストリビュート 3 個を持ち込んだ場合にのみラストボスが生成します。Death Orb はモブではなく、プレイヤーに向かって 0.14 ブロック/ティック、スプリントの約半分の速度で進む追跡位置です。接触半径は 1.5 ブロック、クールダウンは 1 秒に設定され、ボスのレベルに応じたダメージを与える想定です。プレイヤーは標的にしたり、傷つけたり、破壊したりできません。ボスが倒れるまで存在します。ボスの位置に 2 個生成され、2 個目は X 方向に 2 ブロックずれます。それぞれ独立してプレイヤーを追い、ボスを周回したり戻ったりしません。
現在のコードは前回のダメージ時刻を Integer.MIN_VALUE に初期化しています。非負の試合ティックからこの値を引くと整数オーバーフローが起きるため、通常のプレイでは最初のクールダウン判定が通らず、時刻も更新されません。オーブは移動・表示されますが、接触ダメージ処理は実行されません。これはソースコードから確認した制約で、実サーバーのダメージ試験による結果ではありません。
ボス
Scorpion (ポータルボス)
ワールド 1〜3 それぞれの門番となるボスです。バースト攻撃を行います: 数ティックずつ間隔を空けて 3 発のスフィア攻撃を放ち、短い間を置いて繰り返します。各攻撃は Artillery モブと同じ 40 ティックの黄/橙/赤のテレグラフを使用し、プレイヤーの移動を 2 ブロック先読みし、赤のフレームで 1.5 ブロック以内にダメージを与えます。
スポーン時にレアリティを抽選し (2% Nightmare / 10% Elite / それ以外は Normal)、HP、ダメージ、モデルスケール、ルートが倍率で変化します。また、プレイヤーが 50 ブロックを超えて離れると距離に比例して段階的に加速し、200 ブロック以上で 4 倍速度に達して頭打ちになります。そのため、果てしないワールドを使ってカイトし続ける戦法は通用しません。レアリティの完全な表は ゲームプレイ ページにあります。
Angel of Death (ラストボス)
チャレンジモード専用で、WORLD_4 アリーナの中心にスポーンします。移動せず、基準となるボス HP の 2.5 倍を持ち、5 秒ごとにプレイヤーとの距離に応じて 2 種類の攻撃から 1 つを選びます -- 10 ブロック以内なら 9 ブロックの薙ぎ払い、それより遠ければ 3 本の柱の斉射です。ボストリビュートは「トロフィーパワー」をこのボスに積み重ねます。詳細は ゲームプレイ ページを参照してください。
どちらのボスも Nuke ドロップと Second Wind のリスポーン時の一掃に対して無敵です -- パニックボタンは周囲のフィールドを一掃しますが、ボス本体には決して効きません。また、ラストバトル中もウェーブのモブはスポーンし続けるため、アリーナが純粋な一騎打ちになることはありません。