@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
102 lines • 3.75 kB
JavaScript
"use strict";
/**
* Griffin - Multi-role support aircraft with triple healing beams and EMP capabilities
* Flying support unit with healing and electromagnetic warfare abilities
*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Griffin = void 0;
const ability_js_1 = require("../../../../engine/ability.cjs");
const protectorate_classes_js_1 = require("../../protectorate-classes.cjs");
const advanced_factory_js_1 = __importDefault(require("../building/advanced-factory.cjs"));
const specialized_research_lab_js_1 = __importDefault(require("../building/specialized-research-lab.cjs"));
class Griffin extends protectorate_classes_js_1.ProtectorateArmyUnit {
get infuseCost() {
return 16;
}
constructor() {
super();
this.domain = "air";
this.name = "Griffin";
this.tier = "T3";
this.hexiteCost = 125;
this.fluxCost = 175;
this.supply = 6;
this.buildTime = 40;
this.uuid = "e93b9c8e-9a24-470d-aa35-b65e262384ff";
this.description = "Provides healing and can EMP enemy units. Attacks ground and air units.";
this.hp = 300;
this.armorType = "medium";
this.speed = 700;
this.attacks.cannon = new ability_js_1.Attack({
name: "Attack",
damage: 12,
cooldown: 1.1,
range: 1400,
targets: ["air", "ground"],
parentId: this.id,
parentUUID: this.uuid,
});
// Triple healing beam system
this.heals.healBeam1 = new ability_js_1.Heal({
name: "Heal Beam 1",
healing: 2,
cooldown: 0.25,
range: 1300,
parentId: this.id,
parentUUID: this.uuid,
});
this.heals.healBeam2 = new ability_js_1.Heal({
name: "Heal Beam 2",
healing: 2,
cooldown: 0.25,
range: 1300,
parentId: this.id,
parentUUID: this.uuid,
});
this.heals.healBeam3 = new ability_js_1.Heal({
name: "Heal Beam 3",
healing: 2,
cooldown: 0.25,
range: 1300,
parentId: this.id,
parentUUID: this.uuid,
});
this.spells.emp = new ability_js_1.Spell({
name: "EMP",
description: "Drain 50 energy and knockback and breifly slow enemy units. 220 radius effect, 80% slower",
energyCost: 75,
energyType: "classic",
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.empUpgrade = new ability_js_1.Upgrade({
name: "EMP",
description: "Unlocks EMP ability",
fluxCost: 150,
researchTime: 45,
tier: "T3.5",
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.improvedHeal = new ability_js_1.Upgrade({
name: "Improved Heal",
description: "Increase Healing Rate by 40%",
fluxCost: 150,
researchTime: 60,
parentId: this.id,
parentUUID: this.uuid,
});
// Unit relationships
this.createdBy = [advanced_factory_js_1.default.id];
this.unlockedBy = [advanced_factory_js_1.default.id];
this.upgradedBy = [specialized_research_lab_js_1.default.id];
}
}
exports.Griffin = Griffin;
// Static property for source path
Griffin.src = "src/zerospace/faction/protectorate/unit/griffin.ts";
exports.default = Griffin;
//# sourceMappingURL=griffin.js.map