ZeroSpace.gg

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"; constructor() { super(); this.hexiteCost = 75; this.fluxCost = 25; this.buildTime = 30; 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", "Local.Prot.Bastion", ]; this.internalSecondaryTags = ["Biological", "Mech", "Infantry"]; this.hp = 275; this.shields = 0; this.armor = 1; this.armorType = "medium"; this.speed = 540; this.turnSpeed = 4000; this.pushability = 1; this.description = "Infantry with short range and splash damage."; this.attacks.g53Flamethrower = new Attack({ internalId: "Default__Weapon_Prot_Bastion_C", name: "G53 Flamethrower", damage: 16, cooldown: 1.5, armorPenetration: 0, delay: 0.15, range: 225, bonusDamage: [{ multiplier: 2.0, vs: ["armor:light"] }], splash: { multiplier: 1.0, range: 80, }, targets: ["ground"], parentId: this.id, parentUUID: this.uuid, }); this.upgrades.reactiveArmor = new Upgrade({ name: "Reactive Armor", unlockedBy: ["faction/protectorate/building/research-lab"], description: "+25% health. +1 armor.", tier: "T1", position: "A", fluxCost: 100, researchTime: 50, parentId: this.id, parentUUID: this.uuid, }); this.upgrades.kineticMode = new Upgrade({ name: "Kinetic Mode", unlockedBy: ["faction/protectorate/building/mechanical-research-lab"], description: "+40% movement speed outside of combat.", tier: "T1", position: "B", fluxCost: 100, researchTime: 50, parentId: this.id, parentUUID: this.uuid, }); this.upgrades.overpressureNozzle = new Upgrade({ name: "Overpressure Nozzle", unlockedBy: ["faction/protectorate/building/research-lab"], description: "+25% Splash range. \n+33% Splash area of effect.", tier: "T2", position: "A", fluxCost: 125, researchTime: 60, parentId: this.id, parentUUID: this.uuid, }); this.upgrades.retributionProtocol = new Upgrade({ name: "Retribution Protocol", unlockedBy: ["faction/protectorate/building/mechanical-research-lab"], description: "Explodes on death, dealing 20 damage per second to nearby enemies. Lasts 6 seconds.", tier: "T2", position: "B", fluxCost: 125, 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;