@minecraft/creator-tools
Version:
Minecraft Creator Tools command line and libraries.
54 lines (53 loc) • 1.79 kB
JavaScript
;
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
exports.BossEntityTrait = void 0;
const ContentTraits_1 = require("./ContentTraits");
/**
* Boss behavior - boss bar, phases, special abilities.
*/
class BossEntityTrait extends ContentTraits_1.EntityContentTrait {
get id() {
return "boss";
}
getData(config) {
const bossName = config?.bossName ?? "Boss";
const phases = config?.phases ?? 3;
const componentGroups = {};
const events = {};
// Create phase component groups
for (let i = 1; i <= phases; i++) {
componentGroups[`phase_${i}`] = {
"minecraft:scale": { value: 1.0 + (i - 1) * 0.1 },
"minecraft:movement": { value: 0.25 + (i - 1) * 0.05 },
};
if (i < phases) {
events[`enter_phase_${i + 1}`] = {
remove: { component_groups: [`phase_${i}`] },
add: { component_groups: [`phase_${i + 1}`] },
};
}
}
return {
id: "boss",
displayName: "Boss",
description: "Boss mob with health bar and phases",
category: "behavior",
components: {
"minecraft:boss": {
should_darken_sky: true,
hud_range: 55,
name: bossName,
},
"minecraft:knockback_resistance": { value: 1.0 },
},
componentGroups,
events,
spawnEvent: {
add: { component_groups: ["phase_1"] },
},
};
}
}
exports.BossEntityTrait = BossEntityTrait;