ZeroSpace.gg

Skrell

Grell T2.5 Army Unit

import { GrellArmyUnit } from "../../../../defaults/grell.js"; import { Attack, Upgrade } from "../../../../engine/ability.js"; export class Skrell extends GrellArmyUnit { override uuid: string; static override src = "src/zerospace/faction/grell/unit/skrell.ts"; constructor() { super(); this.hexiteCost = 50; this.fluxCost = 75; this.buildTime = 30; this.buildCount = 3; this.name = "Skrell"; this.tier = "T2.5"; this.hotkey = "T"; this.uuid = "06475a6d-672c-4d64-a876-c22686ea3535"; this.internalId = "Troop_GrellSkrelling_C"; this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_GrellSkrelling.Default__Troop_GrellSkrelling_C"; this.internalTags = [ "Attackable.Unit.Troop", "Attackable.FlyingUnit", "Attackable.ArmorType.Light", "Attackable.Unit.Light", "Attackable.Biological", ]; this.internalSecondaryTags = ["Air"]; // Requires a Skyclutch to build, but is produced at the Broodwomb, which can be // standing well before one exists. unlockedBy is an OR in this engine, so listing both // would wrongly say a Broodwomb alone is enough - only the real gate goes here. this.unlockedBy = ["faction/grell/building/skyclutch"]; this.createdBy = ["faction/grell/building/broodwomb"]; this.upgradedBy = ["faction/grell/building/skyclutch"]; const unit = this; this.hp = 60; this.shields = 0; this.armor = 0; this.armorType = "light"; this.speed = 800; this.supply = 1; this.vision = 1400; this.turnSpeed = 5000; this.description = "Light skirmish flier that poisons enemies on attack."; Object.assign(this, { domain: "air" }); this.attacks.astralBlight = new Attack({ internalId: "Default__GrellSkrellWeapon_C", name: "Astral Blight", damage: 6, range: 100, cooldown: 1, targets: ["air", "ground"], bonusDamage: [ { multiplier: 2.5, vs: ["domain:air"] }, { multiplier: 2, vs: ["armor:medium"] }, ], armorPenetration: 0, delay: 0, parentId: this.id, parentUUID: this.uuid, }); this.upgrades.thoracicSacs = new Upgrade({ name: "Thoracic Sacs", unlockedBy: ["faction/grell/building/skyclutch"], description: "+5 attack range", tier: "T1", position: "A", fluxCost: 125, researchTime: 50, apply() { unit.attacks.astralBlight!.range = 600; }, parentId: this.id, parentUUID: this.uuid, }); this.upgrades.volatileAcids = new Upgrade({ name: "Volatile Acids", unlockedBy: ["faction/grell/building/skyclutch"], description: "When killed, deal 50 damage to nearby enemy air units", tier: "T1", position: "B", fluxCost: 125, researchTime: 50, parentId: this.id, parentUUID: this.uuid, }); } } export default Skrell;