@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
107 lines • 4.73 kB
JavaScript
"use strict";
/**
* Mammoth - Legion's massive war beast with rider system
* Colossal creature with religious bonding and devastating anti-building attacks
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.Mammoth = void 0;
const legion_js_1 = require("../../../../defaults/legion.cjs");
const ability_js_1 = require("../../../../engine/ability.cjs");
class Mammoth extends legion_js_1.LegionArmyUnit {
// Readonly properties (never change after creation)
get infuseCost() {
return 13;
}
constructor() {
super();
this.hexiteCost = 200;
this.fluxCost = 125;
this.buildTime = 45;
this.buildCount = 1;
this.name = "Mammoth";
this.tier = "T2";
this.internalId = "Troop_Empire_Mammoth_C";
this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_Empire_Mammoth.Default__Troop_Empire_Mammoth_C";
this.uuid = "86d4965a-0320-48d7-bc41-7343522ad7fb";
this.internalTags = [
"Attackable.Unit.Troop",
"Attackable.Biological",
"Local.Legion.Infantry.Mammoth",
"Attackable.ArmorType.Heavy",
];
this.internalSecondaryTags = [];
this.description =
"Heavy beast that can be ridden by Legion infantry units. Thralls makes it move faster. Steelsworn provide additional armor, and Dark Disciples make it shock nearby enemies when attacking. Attacks ground units.";
// Mutable properties - massive war beast with rider capabilities
this.supply = 8; // Large creature consumes significant supply
this.hp = 900; // Colossal durability
this.shields = 0;
this.armor = 0;
this.armorType = "medium";
this.speed = 350;
this.turnSpeed = 5000;
// Relationships - created by beastiary, unlocked by terror tower
this.createdBy = ["faction/legion/building/beastiary"];
this.unlockedBy = ["faction/legion/building/terror-tower"];
this.upgradedBy = ["faction/legion/building/citadel"];
// Devastating anti-building attack
this.attacks.attack = new ability_js_1.Attack({
name: "Attack",
damage: 90,
cooldown: 2.0,
cooldownBetweenShots: 0.5,
armorPenetration: 0,
delay: 0.58,
range: 250,
targets: ["ground"],
bonusDamage: [{ multiplier: 3.0, vs: ["building"] }], // 100% → 200% structure damage bonus
parentId: this.id,
parentUUID: this.uuid,
});
// Rider system - units can mount for tactical bonuses
this.passives.thrallRider = new ability_js_1.Passive({
name: "Thrall Rider",
description: "A Thrall, Steelsworn, or Fanatic may ride the Mammoth. Bonuses: Mounted Thrall has +100% attack speed and +5% move speed (10% with upgrade). Mounted Steelsworn gives +4 armor to the Mammoth (8 with upgrade). Mounted Fanatic gives the Mammoth 40 area damage in its attack and unlocks Storm ability.",
parentId: this.id,
parentUUID: this.uuid,
});
// Stomp aura - constant area damage to units underneath
this.passives.trample = new ability_js_1.Passive({
name: "Stomp",
description: "Deals 30 damage to units directly underneath the mammoth",
damage: 30,
cooldown: 1,
parentId: this.id,
parentUUID: this.uuid,
});
// Storm spell - requires Dark Disciple rider
this.spells.storm = new ability_js_1.Spell({
name: "Storm",
description: "Casts a storm at a target location, dealing damage to units in the area for 5 seconds. Requires Dark Disciple rider. (20dmg every 1s, 100dmg total)",
energyCost: 30,
targets: ["map"],
parentId: this.id,
parentUUID: this.uuid,
});
// Capture instance for upgrade apply methods
const unit = this;
// Ironhide Accord upgrade - doubles all troop bonuses
this.upgrades.ironhideAccord = new ability_js_1.Upgrade({
name: "Ironhide Accord",
description: "Doubles all troop bonuses",
tier: "T2.5",
fluxCost: 150,
researchTime: 50,
apply() {
// Implementation handled by game engine for rider bonuses
},
parentId: this.id,
parentUUID: this.uuid,
});
}
}
exports.Mammoth = Mammoth;
// Static property for source path
Mammoth.src = "src/zerospace/faction/legion/unit/mammoth.ts";
exports.default = Mammoth;
//# sourceMappingURL=mammoth.js.map