UNPKG

@zerospacegg/iolin

Version:

Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)

70 lines 2.81 kB
/** * Emperor Projection - Ultimate sacrifice-powered manifestation * Living vessel for collective thrall souls with devastating power scaling */ import { Attack } from "../../../../engine/ability.js"; import { Turret } from "../../../../engine/turret.js"; import { LegionUltimateUnit } from "../../legion-classes.js"; import RitualSite from "../building/ritual-site.js"; export class EmperorProjection extends LegionUltimateUnit { constructor() { super(); this.name = "Emperor Projection"; this.tier = "ultimate"; this.fluxCost = 0; this.buildCount = 1; this.hexiteCost = 0; this.buildTime = 0; this.uuid = "02b5fb2f-8759-4c09-b9bd-0b2c2cf80d49"; // Mutable properties - ultimate sacrifice vessel this.supply = 0; // Ultimate units don't consume supply this.hp = 2000; // Base power before soul absorption this.shields = 0; this.armor = 2; this.armorType = "medium"; this.speed = 600; // Relationships - summoned by ritual site this.createdBy = [RitualSite.id]; this.unlockedBy = [RitualSite.id]; // Tags for identification and targeting this.tag("massive"); // Devastating melee attack with building destruction focus this.attacks.attack = new Attack({ name: "Attack", damage: 100, // Base damage, scales with soul sacrifice cooldown: 1.4, range: 300, targets: ["ground"], bonusDamage: [{ multiplier: 3.0, vs: ["building"] }], splash: { multiplier: 1.0, range: 100 }, parentId: this.id, parentUUID: this.uuid, }); // Soul sacrifice mechanics this.maxAddOns = 30; // Can consume up to 30 supply worth of souls // Sacrifice system implementation const emperor = this; // Thrall Soul sacrifice - supply-based power scaling this.turrets.thrallSoul = new Turret({ name: "Thrall Soul", description: "Each 1 supply worth of thralls sacrificed gives +50 HP and +5 attack damage", subtype: "sacrifice", hexiteCost: 0, fluxCost: 0, buildTime: 0, hp: 0, unlocked: true, apply() { // Each supply point of thralls sacrificed gives bonuses emperor.hp = (emperor.hp || 0) + 50; if (emperor.attacks.attack.damage) { emperor.attacks.attack.damage += 5; } }, }); } } // Static property for source path EmperorProjection.src = "src/zerospace/faction/legion/unit/emperor-projection.ts"; export default EmperorProjection; //# sourceMappingURL=emperor-projection.js.map