Ennemis de MegaBlock Survivors
Chaque ennemi de MegaBlock Survivors est un modèle personnalisé contrôlé par les déplacements et les collisions du plugin, pas un mob Bukkit vanilla. L'IA vanilla n'intervient pas : chaque ennemi apparaît au niveau de vague actuel, calcule ses statistiques à partir de ce niveau et est mis à jour à chaque tick par l'instance de partie.
Consultez Gameplay pour la composition des vagues et le calcul du niveau de vague à partir du temps écoulé.
Statistiques de base communes
Les statistiques de tous les mobs sont calculées à l'apparition à partir du niveau de vague :
| Statistique | Formule | Modifications selon le type |
|---|---|---|
| PV maximum | round(waveLevel * 1.6 - 1.0, 1dp) | Boss ×10, Artillerie ×0,5, Fantôme ×5 |
| Dégâts de contact | max(1, floor(waveLevel / 2.5)) | Boss ×2 |
| Accélération | 0.15 * baseMul + 0.0163296 * slopeMul * sqrt(waveLevel) | Volatil ×2, augmentation avec le temps pour le Fantôme et avec la distance pour le Scorpion |
| Vitesse maximale | acceleration * 1.1 | Suit l'accélération |
| Hitbox | 2 blocs, ENTITY_SIZE | Modèle des boss affiché à l'échelle ×2 ou plus |
baseMul et slopeMul dépendent de la difficulté de la partie ; voir le tableau des difficultés dans Gameplay.
Ennemis des vagues
Le compositeur de vagues ne peut choisir que ces quatre types. Leurs poids relatifs selon la tranche de vagues et leurs coûts en budget sont indiqués dans Gameplay.
Slime d'ombre
C'est l'ennemi de base et le seul qui apparaît dans les vagues 1 et 2. Il avance directement vers le joueur et inflige des dégâts lorsque leurs hitbox se touchent. Il ne possède ni comportement particulier ni signal d'attaque ; sa pression sert de référence à l'équilibrage des autres mécaniques. Coût en budget : 1.
Volatil
Ce kamikaze de type creeper se déplace environ 2 fois plus vite que le slime d'ombre. À moins de 2 blocs, il s'arrête net et lance un amorçage de 30 ticks. Un anneau s'élargit en passant du rouge à l'orange puis au blanc, tandis que son modèle devient incandescent. Si le compte à rebours se termine, il explose pour 5 dégâts dans un rayon de 2.0 + waveLevel * 0.15 blocs, puis disparaît.
Cette explosion est sa seule source de dégâts. Il n'inflige aucun dégât de contact : le toucher avant l'amorçage est donc volontairement sans danger de ce type. Le tuer pendant l'amorçage annule entièrement l'explosion et rapporte 5 fragments d'ombre supplémentaires, récompensant le risque d'aller l'affronter. Coût en budget : 2.
Artillerie
Cet ennemi lance une attaque sphérique sur le joueur de la partie dans un rayon de 30 blocs, avec un intervalle minimal de 101 ticks, soit environ 5 secondes. Les tirs anticipent le déplacement horizontal de 2 blocs. Son code de déplacement prévoit une plage de 18 à 22 blocs, mais la poussée de poursuite commune reste active : sous 18 blocs, la poussée de recul annule cette accélération sans garantir un recul, et il continue d'avancer dans la plage préférée. Ne comptez pas sur une distance fixe de 20 blocs.
Chaque frappe est annoncée pendant 40 ticks, soit 2 secondes : une coque de verre jaune apparaît au lancement, devient orange après 20 ticks, puis rouge après 40 ticks. Les dégâts ne sont appliqués qu'au stade rouge et à moins de 1,5 bloc du point marqué. En contrepartie de leur portée, les ennemis d'artillerie n'ont que la moitié des PV normaux. Coût en budget : 2.
Sentinelle laser
Ce tireur mobile garde ses distances et alterne quatre phases : AIM, LOCK, FIRE, puis COOLDOWN.
| Phase | Durée | Comportement |
|---|---|---|
| AIM | 30 ticks | Le rayon suit le joueur en continu |
| LOCK | 20 ticks | Le rayon se fige sur sa destination actuelle ; c'est le dernier moment pour s'écarter |
| FIRE | instantanée, éclair de 5 ticks | Tir dans la direction verrouillée ; inflige max(1, contactDamage) si la position du joueur de la partie à hauteur de poitrine se trouve à moins d'un bloc d'un point échantillonné du rayon |
| COOLDOWN | 80 ticks | Attente, puis reprise du cycle |
Elle recule sous 15 blocs lorsqu'elle est inactive ou en récupération, et n'entre en AIM que dans la plage de 15 à 60 blocs. Dépasser 60 blocs pendant AIM annule cette tentative ; après le début de LOCK, le tir se termine le long du rayon verrouillé, limité à 60 blocs. Les blocs solides arrêtent le rayon et ses dégâts : les obstacles protègent donc du tir. Les déplacements horizontaux cessent pendant AIM, LOCK et FIRE. Sortez du rayon verrouillé avant le tir. Coût en budget : 2.
Ennemis hors des vagues ordinaires
Ces ennemis ne sont jamais sélectionnés par un tirage de vague normal.
Fantôme
Les fantômes possèdent 5 fois les PV normaux et ne donnent ni butin, ni crédit d'élimination, ni XP, ni progression du sacrifice de portail. Leur comportement dépend de leur origine :
- Armée fantôme déclenchée par le temps : un contrôleur séparé gère ces fantômes, qui déclenchent le traitement d'un coup fatal au contact. Une vie supplémentaire disponible peut réanimer le joueur. Ils sont absents de la collection de cibles des armes actuelles et du nettoyage par Nuke, la Bannière de l'armée fantôme ou Second souffle. Passez au monde suivant pour supprimer l'armée ; le code actuel ne permet pas de lui échapper en la combattant.
- Serviteur du boss final : avec au moins deux tributs, le boss peut invoquer le même modèle de fantôme. Ces serviteurs suivent la gestion ordinaire des ennemis, infligent des dégâts de contact normaux selon leur niveau et peuvent être touchés par les armes ou supprimés par les effets de nettoyage. Ils ne reçoivent pas les accélérations de l'armée chronométrée.
Une fois l'invocation de l'armée chronométrée commencée, un fantôme apparaît toutes les 5 secondes. Cette armée entière, y compris les apparitions futures, reçoit un multiplicateur de vitesse de 1,2 toutes les 30 secondes. Consultez la section Armée fantôme de Gameplay pour son déclenchement.
Orbe de la mort
Le boss final crée ces orbes uniquement lorsque le joueur arrive avec 3 tributs de boss. Une orbe n'est pas un mob : c'est une position suivie qui avance vers le joueur à 0,14 bloc par tick, soit environ la moitié d'un sprint. Son rayon de contact configuré est de 1,5 bloc, avec un délai de récupération d'une seconde destiné à appliquer les dégâts du boss calculés selon son niveau. Le joueur ne peut ni la cibler, ni l'endommager, ni la détruire ; elle persiste jusqu'à la mort du boss. Deux orbes apparaissent à sa position, la seconde décalée de 2 blocs sur X, puis poursuivent le joueur indépendamment. Elles ne tournent pas autour du boss et ne reviennent pas vers lui.
Les sources actuelles initialisent le tick des dégâts précédents à Integer.MIN_VALUE. Le soustraire au tick non négatif de la partie provoque un dépassement d'entier : la première vérification du délai échoue et cet horodatage n'est jamais actualisé pendant une partie ordinaire. Les orbes se déplacent et restent visibles, mais leur branche de dégâts de contact ne s'exécute pas. Cette limite est déduite du code source, et non d'un test de dégâts en jeu.
Boss
Scorpion, boss de portail
Il garde la sortie de chacun des mondes 1 à 3. Ses attaques alternent trois frappes sphériques séparées de quelques ticks, puis une courte pause. Chaque frappe utilise le même avertissement jaune, orange puis rouge de 40 ticks que l'Artillerie. Elle anticipe le déplacement du joueur de 2 blocs et inflige des dégâts à moins de 1,5 bloc au stade rouge.
Une rareté est tirée à son apparition : 2 % Cauchemar, 10 % Élite, sinon Normal. Elle multiplie les PV, les dégâts, l'échelle du modèle et le butin. Le Scorpion accélère également lorsque le joueur est à plus de 50 blocs, de façon linéaire avec la distance, jusqu'à 4 fois sa vitesse à partir de 200 blocs. Le distancer indéfiniment dans le monde ne fonctionne donc pas. Le tableau complet des raretés figure dans Gameplay.
Ange de la mort, boss final
Réservé au mode Challenge, il apparaît au centre de l'arène WORLD_4. Il est immobile, possède 2,5 fois les PV de base d'un boss et choisit toutes les 5 secondes entre deux attaques selon votre distance : un balayage de 9 blocs à moins de 10 blocs, ou une salve de trois piliers au-delà. Les tributs de boss lui ajoutent des pouvoirs de trophée. Les détails sont dans Gameplay.
Les deux boss sont immunisés contre le bonus Nuke et le nettoyage à la réanimation de Second souffle. Ces recours éliminent les ennemis autour d'eux, mais jamais le boss lui-même. Les ennemis ordinaires continuent aussi d'apparaître pendant le combat final : l'arène ne devient donc jamais un simple duel.