ZSGG Public Library
Roller
Xol Co-Op T1 Army Unit
import { XolArmyUnit } from "../../../../../defaults/xol.js";
import { Attack, Upgrade } from "../../../../../engine/ability.js";
import { applyCoopXolMerges } from "../../../_util/coop-xol-merges.js";
export class CoopRoller extends XolArmyUnit {
static override src = "src/zerospace/coop/commander/anrubic/unit/coop-anrubic-roller.ts";
override get variantOf(): string {
return "faction/xol/unit/roller";
}
constructor() {
super();
applyCoopXolMerges(this);
//TODO Clean up duplicate data, fix uuids, fix links
this.hexiteCost = 50;
this.fluxCost = 0;
this.buildTime = 24;
this.buildCount = 2;
this.name = "Roller";
this.tier = "T1";
this.hotkey = "";
this.uuid = "33dc244c-980a-4996-9444-d38c653bc3f0";
this.internalId = "Troop_Xol_Rumbler_C";
this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_Xol_Rumbler.Default__Troop_Xol_Rumbler_C";
this.internalTags = ["Attackable.Unit.Troop", "Attackable.ArmorType.Light", "Local.Xol.Rumbler", "Troop.Xol.Tier1"];
this.internalSecondaryTags = ["Infantry"];
this.description =
"Short-range unit. \nWhen not firing, transforms into spherical form and rolls, doubling its movement speed.";
this.unlockedBy = ["coop/commander/anrubic/building/coop-anrubic-gyroforge"];
this.createdBy = ["coop/commander/anrubic/building/coop-anrubic-gyroforge"];
this.upgradedBy = ["coop/commander/anrubic/building/coop-anrubic-world-forge"];
this.hp = 80;
this.shields = 0;
this.armor = 0;
this.armorType = "light";
this.speed = 375;
this.supply = 1;
this.turnSpeed = 3000;
this.vision = 1600;
this.pushability = 0;
this.attacks.sentinelRay = new Attack({
internalId: "Default__Weapon_Xol_Rumbler_C",
name: "Sentinel Ray",
damage: 4,
range: 200,
cooldown: 0.4,
armorPenetration: 0,
delay: 0.3,
targets: ["ground", "air"],
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.powerRedistribution = new Upgrade({
name: "Power Redistribution",
description:
"Upon dying, Roller restores 100 shields to a nearby friendly unit. Upon dying, Echo grants Overclock to a nearby friendly unit.",
tier: "T1",
position: "A",
fluxCost: 150,
researchTime: 50,
parentId: this.id,
parentUUID: this.uuid,
uuid: "1a790d23-e1e1-49d5-9766-3e735141292b",
});
this.upgrades.shieldGenerators = new Upgrade({
name: "Shield Generators",
description: "+60 shields for Roller. +125 shields for Echo.",
tier: "T1",
position: "B",
fluxCost: 150,
researchTime: 50,
parentId: this.id,
parentUUID: this.uuid,
uuid: "9b6a14e0-8a65-4c68-ac66-cfeff3f5a063",
});
}
}
export default CoopRoller;