ZSGG Public Library
Titan
Protectorate T2.5 Army Unit
import { ProtectorateArmyUnit } from "../../../../defaults/protectorate.js";
import { Attack, Spell, Upgrade } from "../../../../engine/ability.js";
export class Titan extends ProtectorateArmyUnit {
override uuid: string;
static override src = "src/zerospace/faction/protectorate/unit/titan.ts";
override get infuseCost(): number | undefined {
return 11;
}
constructor() {
super();
this.hexiteCost = 100;
this.fluxCost = 100;
this.buildTime = 53;
this.name = "Titan";
this.tier = "T2.5";
this.supply = 5;
this.uuid = "05d86203-d9ef-4ea8-bde2-a8801a1b122f";
this.internalId = "Troop_Prot_Atlas_C";
this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_Prot_Atlas.Default__Troop_Prot_Atlas_C";
this.internalTags = ["Attackable.Unit.Troop", "Attackable.ArmorType.Medium"];
this.internalSecondaryTags = ["Mech"];
this.hp = 425;
this.armor = 0;
this.armorType = "medium";
this.speed = 550;
this.maxTurrets = 0;
this.turnSpeed = 2000;
this.pushability = 0.7;
this.description = "Mobile mech that can use Jetpack. Equipped with a secondary anti-air weapon.";
const unit = this;
this.attacks.dualRotaryCannons = new Attack({
name: "Dual Rotary Cannons",
damage: 6,
cooldown: 0.5,
range: 1100,
targets: ["ground"],
bonusDamage: [{ multiplier: 1.75, vs: ["armor:medium"] }],
armorPenetration: 0,
delay: 0.1,
parentId: this.id,
parentUUID: this.uuid,
});
this.attacks.skyguardMissiles = new Attack({
name: "Skyguard Missiles",
damage: 24,
shots: 2,
range: 1500,
splash: { multiplier: 0.5, range: 200 },
cooldown: 1,
targets: ["air"],
parentId: this.id,
parentUUID: this.uuid,
});
this.spells.jetpack = new Spell({
name: "Jetpack",
description: "Jumps to a target location, ignoring terrain.",
hotkey: "D",
cooldown: 18,
forceAutocast: false,
unlocked: false,
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.jetpack = new Upgrade({
name: "Jetpack",
description: "Unlocks the Jetpack ability",
tier: "T2.5",
fluxCost: 100,
researchTime: 40,
apply: () => {
unit.spells.jetpack!.unlocked = true;
},
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.advancedTargeting = new Upgrade({
name: "Advanced Targeting",
description: "+3.5 Skyguard Missiles (Anti-Air) range.",
tier: "T3.5",
fluxCost: 150,
researchTime: 60,
apply() {
unit.attacks.skyguardMissiles!.range! += 350;
},
parentId: this.id,
parentUUID: this.uuid,
});
this.createdBy = ["faction/protectorate/building/assembly-plant"];
this.upgradedBy = ["faction/protectorate/building/mechanical-research-lab"];
this.unlockedBy = ["faction/protectorate/building/assembly-plant"];
this.tags.push("attacker", "spellcaster", "can-be-infused", "can-be-reanimated", "can-be-mind-controlled");
}
}
export default Titan;