@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
59 lines • 2.49 kB
JavaScript
"use strict";
/**
* Angry Crab - Jungle AI Map Boss
* Jungle AI unit that scales over time and respawns after death
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.AngryCrab = void 0;
const jungle_ai_js_1 = require("../../../../defaults/jungle-ai.cjs");
const ability_js_1 = require("../../../../engine/ability.cjs");
class AngryCrab extends jungle_ai_js_1.JungleAIUnit {
constructor() {
super();
this.name = "Angry Crab (Map Boss)";
this.shortName = "Angry Crab";
this.tier = "T4";
this.uuid = "a7b8c9d0-e1f2-4a3b-9c8d-7e6f5a4b3c2e";
// Internal game engine data for map boss
this.internalId = "Troop_Mapboss_Crab_C";
// internalPath not known
this.internalTags = [
"Attackable.Unit.Troop",
"Attackable.ArmorType.Heavy",
"Attackable.Biological",
"Logic.MapBoss",
];
this.internalSecondaryTags = [];
// Base stats at 10-minute spawn
this.hp = 3000;
this.armor = 5;
this.armorType = "heavy";
this.speed = 550;
this.stunResist = 50;
// Combat stats
this.description =
"Map Boss: Gains 150 HP + 6 damage every 60s while alive. Respawns 3 minutes after death at whatever stats it would have scaled to if left alive. Copy gained from kill doesn't scale with time - uses current stats at moment of death (Map Boss).";
// Jungle AI combat attack
this.attacks.attack = new ability_js_1.Attack({
name: "Attack",
damage: 118,
cooldown: 0.8,
cooldownBetweenShots: 0.8,
range: 1400,
targets: ["ground"],
parentId: this.id,
parentUUID: this.uuid,
});
// TODO: Future enhancement - Add stacking system for time-based scaling effects
// The Angry Crab gains 150 HP + 6 damage every 60s while alive. We should implement
// a general stacking system that can track time-based stat bonuses. This would be useful for:
// - Time-based boss scaling (like Angry Crab)
// - Hero progression systems
// - Dynamic difficulty scaling
// Consider adding a 'stackingBuffs' property that can accumulate time-based bonuses
}
}
exports.AngryCrab = AngryCrab;
AngryCrab.src = "src/zerospace/nonplayer/jungle-ai/unit/angry-crab.ts";
exports.default = AngryCrab;
//# sourceMappingURL=angry-crab.js.map