ZSGG Public Library
Bastion
Protectorate T1.5 Army Unit
import { ProtectorateArmyUnit } from "../../../../defaults/protectorate.js";
import { Attack, Upgrade } from "../../../../engine/ability.js";
export class Bastion extends ProtectorateArmyUnit {
override uuid: string;
static override src = "src/zerospace/faction/protectorate/unit/bastion.ts";
override get infuseCost(): number | undefined {
return 4;
}
constructor() {
super();
this.hexiteCost = 75;
this.fluxCost = 25;
this.buildTime = 32;
this.name = "Bastion";
this.tier = "T1.5";
this.supply = 3;
this.uuid = "09e41141-8b54-4634-bc20-499e82e9b3cc";
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",
"Attackable.ArmorType.Medium",
"Attackable.Biological",
];
this.internalSecondaryTags = ["Biological", "Mech", "Infantry"];
this.hp = 275;
this.shields = 0;
this.armor = 1;
this.armorType = "heavy";
this.speed = 540;
this.turnSpeed = 4000;
this.pushability = 1;
this.description = "Infantry with short range and splash damage.";
this.attacks.g53LightFlamethrower = new Attack({
name: "G53 Light Flamethrower",
damage: 16,
cooldown: 1.5,
armorPenetration: 0,
delay: 0.15,
range: 200,
bonusDamage: [{ multiplier: 2.0, vs: ["armor:light"] }],
splash: {
multiplier: 1.0,
range: 0.8,
},
targets: ["ground"],
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.reactiveArmor = new Upgrade({
name: "Reactive Armor",
description: "+25% health. +1 armor.",
tier: "T1.5",
fluxCost: 100,
researchTime: 50,
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.overpressureNozzle = new Upgrade({
name: "Overpressure Nozzle",
description: "+25% Splash range. \n+33% Splash area of effect.",
tier: "T1.5",
fluxCost: 100,
researchTime: 50,
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.kineticMode = new Upgrade({
name: "Kinetic Mode",
description: "+40% movement speed outside of combat.",
tier: "T2.5",
fluxCost: 150,
researchTime: 60,
parentId: this.id,
parentUUID: this.uuid,
});
this.createdBy = ["faction/protectorate/building/prot-barracks"];
this.upgradedBy = ["faction/protectorate/building/research-lab"];
this.unlockedBy = ["faction/protectorate/building/prot-barracks"];
}
}
export default Bastion;