@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
83 lines • 3.29 kB
JavaScript
"use strict";
/**
* Bastion - Protectorate heavy infantry unit
* Heavily armored defensive specialist with powerful weaponry and tactical positioning abilities
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.Bastion = void 0;
const protectorate_js_1 = require("../../../../defaults/protectorate.cjs");
const ability_js_1 = require("../../../../engine/ability.cjs");
class Bastion extends protectorate_js_1.ProtectorateArmyUnit {
// Readonly properties at class level
get infuseCost() {
return 4;
}
constructor() {
super();
// Auto-generated fixes from dev data comparison
// hp is set later in the mutable properties section
this.hexiteCost = 75;
this.fluxCost = 25;
this.buildTime = 24;
this.name = "Bastion";
this.tier = "T1.5";
this.supply = 3;
this.uuid = "09e41141-8b54-4634-bc20-499e82e9b3cc";
// Internal game engine data
this.internalId = "Troop_Prot_Bastion_C";
this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_Prot_Bastion.Default__Troop_Prot_Bastion_C";
this.internalTags = ["Attackable.Unit.Troop", "Attackable.Unit.Light.Mech", "Attackable.ArmorType.Medium"];
this.internalSecondaryTags = ["Mech", "Infantry"];
// Mutable properties in constructor
this.hp = 275;
this.shields = 0;
this.armor = 1;
this.armorType = "heavy";
this.speed = 540;
this.turnSpeed = 4000;
this.pushability = 1;
this.description = "Heavy combat infantry with short range and splash damage. Attacks ground units.";
// Combat abilities
this.attacks.g53LightFlamethrower = new ability_js_1.Attack({
name: "G53 Light Flamethrower",
damage: 8,
cooldown: 1.5,
cooldownBetweenShots: 1.5,
armorPenetration: 0,
delay: 0.01,
range: 225,
targets: ["ground"],
parentId: this.id,
parentUUID: this.uuid,
});
// Upgrades
this.upgrades.reactiveArmor = new ability_js_1.Upgrade({
name: "Reactive Armor",
description: "+33% AOE",
tier: "T1.5",
fluxCost: 100,
researchTime: 50,
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.kineticMode = new ability_js_1.Upgrade({
name: "Kinetic Mode",
description: "Gains +40% movement speed outside of combat. 5s delay after last combat.",
tier: "T2.5",
fluxCost: 150,
researchTime: 60,
parentId: this.id,
parentUUID: this.uuid,
});
// Entity relationships using static ID references
this.createdBy = ["faction/protectorate/building/prot-barracks"];
this.upgradedBy = ["faction/protectorate/building/research-lab"];
this.unlockedBy = ["faction/protectorate/building/research-lab"];
// Tags for identification and targeting - none needed for Bastion
// Lore
}
}
exports.Bastion = Bastion;
Bastion.src = "src/zerospace/faction/protectorate/unit/bastion.ts";
exports.default = Bastion;
//# sourceMappingURL=bastion.js.map