Fan website of IMMORTAL: Gates of Pyre.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

1329 lines
76 KiB

using System.Collections.Generic;
using Model.Entity.Parts;
using Model.Entity.Types;
using Model.Types;
namespace Model.Entity.Data;
public partial class EntityData
{
public static Dictionary<string, EntityModel> GetArmyData()
{
return new Dictionary<string, EntityModel>
{
// Vanguard
// Q'Rath
{
DataType.VANGUARD_Zentari_Orzum,
new EntityModel(DataType.VANGUARD_Zentari_Orzum, EntityType.Army)
.AddPart(new EntityInfoModel
{
Name =
"Zentari",
Descriptive = DescriptiveType.Frontliner,
Description =
"""
Ground unit. Attacks ground targets. Ranged attack in Hallowed Ground.
""",
FlavorText =
"""
"Through our faith and duty bid us part, know that I will be here to protect you for the
rest of yours days."<br/>
Zentari Lord Orz'Abin
"""
})
.AddPart(new EntityTierModel { Tier = 1 })
.AddPart(new EntityHotkeyModel { Hotkey = "Q", HotkeyGroup = "Z" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath })
.AddPart(new EntityVanguardAddedModel
{ ReplaceId = DataType.UNIT_Sipari, ImmortalId = DataType.IMMORTAL_Orzum })
.AddPart(new EntityProductionModel
{ Alloy = 100, BuildTime = 20, ProducedBy = DataType.BUILDING_LegionHall })
.AddPart(new EntitySupplyModel { Takes = 4 })
.AddPart(new EntityVitalityModel { Health = 180, DefenseLayer = 100, Armor = ArmorType.Light })
.AddPart(new EntityWeaponModel
{ Damage = 26, Range = 100, AttacksPerSecond = 0.699f, Targets = TargetType.Ground })
.AddPart(new EntityWeaponModel
{ Damage = 26, Range = 300, AttacksPerSecond = 0.699f, Targets = TargetType.Ground })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_LegionHall,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityMovementModel { Speed = 380, Movement = MovementType.Ground })
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_FaithCastBlades })
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_IconOfKhastEem })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_IconOfKhastEem })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_FaithCastBlades })
},
{
DataType.VANGUARD_Sceptre_Orzum,
new EntityModel(DataType.VANGUARD_Sceptre_Orzum, EntityType.Army)
.AddPart(new EntityInfoModel
{
Name = "Sceptre",
Descriptive = DescriptiveType.Skirmisher,
Description =
"""
Air unit. Attacks ground targets. Anti-ground specialist.<br/>
Empowered attack does bonus damage and Burns adjacent enemies, dealing damage over time.
"""
})
.AddPart(new EntityTierModel { Tier = 3 })
.AddPart(new EntityHotkeyModel { Hotkey = "R", HoldSpace = true, HotkeyGroup = "Z" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath })
.AddPart(new EntityProductionModel
{ Alloy = 200, Ether = 175, BuildTime = 32, ProducedBy = DataType.BUILDING_Angelarium })
.AddPart(new EntityVitalityModel { Health = 435, DefenseLayer = 150, Armor = ArmorType.Heavy })
.AddPart(new EntitySupplyModel { Takes = 6 })
.AddPart(new EntityWeaponModel
{
Damage = 35, MediumDamage = 40, HeavyDamage = 45, Range = 450, SecondsBetweenAttacks = 2.1f,
Targets = TargetType.Ground
})
.AddPart(new EntityWeaponModel
{
Damage = 125, Range = 450, SecondsBetweenAttacks = 2f,
Targets = TargetType.Ground, HasSplash = true
})
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_Angelarium,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityVanguardAddedModel
{ ReplaceId = DataType.UNIT_Warden, ImmortalId = DataType.IMMORTAL_Orzum })
.AddPart(new EntityMovementModel { Speed = 340, Movement = MovementType.Air })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_RegentsWrath })
},
{
DataType.VANGUARD_Saoshin_Ajari,
new EntityModel(DataType.VANGUARD_Saoshin_Ajari, EntityType.Army)
.AddPart(new EntityInfoModel
{
Name = "Saoshin",
Descriptive = DescriptiveType.Support,
Description =
"""
Ground Spell Caster. Casts a healing/utility spell. Protector.
""",
FlavorText =
"""
"You will hold fast the lost, dragging them to salvation. For only
your hearts can hold the boundless love of Q'rath"<br/>
Ajari, Arash of Deliverance
"""
})
.AddPart(new EntityTierModel { Tier = 1.5f })
.AddPart(new EntityHotkeyModel { Hotkey = "E", HotkeyGroup = "Z" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath })
.AddPart(new EntityVanguardAddedModel
{ ReplaceId = DataType.UNIT_Magi, ImmortalId = DataType.IMMORTAL_Ajari })
.AddPart(new EntityProductionModel
{ Alloy = 75, Ether = 75, BuildTime = 28, ProducedBy = DataType.BUILDING_LegionHall })
.AddPart(new EntitySupplyModel { Takes = 4 })
.AddPart(new EntityVitalityModel
{ Health = 210, DefenseLayer = 105, Armor = ArmorType.Light, IsEtheric = true })
.AddPart(new EntityMovementModel { Speed = 460, Movement = MovementType.Ground })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_LegionHall,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_Reliquary,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityWeaponModel
{ Damage = 18, Range = 400, SecondsBetweenAttacks = 1.4f, Targets = TargetType.Ground })
.AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_Intervention })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_Invervention })
},
{
DataType.VANGUARD_ArkMother_Ajari,
new EntityModel(DataType.VANGUARD_ArkMother_Ajari, EntityType.Army)
.AddPart(new EntityInfoModel
{
Name = "Ark Mother",
Descriptive = DescriptiveType.Support,
Description =
"""
Ground Spellcaster. Casts a utility spell. Protector.<br/>
Creates <b>Hallowed Ground</b> when still for a few seconds.
"""
})
.AddPart(new EntityTierModel { Tier = 2.5f })
.AddPart(new EntityHotkeyModel { Hotkey = "Q", HoldSpace = true, HotkeyGroup = "Z" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath })
.AddPart(new EntityVanguardAddedModel
{ ReplaceId = DataType.UNIT_Hallower, ImmortalId = DataType.IMMORTAL_Ajari })
.AddPart(new EntityProductionModel
{ Alloy = 125, Ether = 100, BuildTime = 32, ProducedBy = DataType.BUILDING_SoulFoundry })
.AddPart(new EntitySupplyModel { Takes = 5 })
.AddPart(new EntityVitalityModel
{ Energy = 100, Health = 150, DefenseLayer = 150, Armor = ArmorType.Medium, IsEtheric = true })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_SoulFoundry,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_HouseOfFadingSaints,
Requirement = RequirementType.Research_Building
})
.AddPart(new EntityMovementModel { Speed = 390, Movement = MovementType.Hover })
.AddPart(new EntityWeaponModel
{ Damage = 25, Range = 1100, SecondsBetweenAttacks = 2.5f, Targets = TargetType.Ground })
.AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_OrdainedPassage })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_HallowingRites })
},
// Vanguards
// Aru
{
DataType.VANGUARD_Incubator_Mala,
new EntityModel(DataType.VANGUARD_Incubator_Mala, EntityType.Army)
.AddPart(new EntityInfoModel
{
Name = "Incubator",
Descriptive = DescriptiveType.Support,
Description =
"""
Ground unit. Can only attack ground. Mala Vanguard. Replaces Underspine.
""",
FlavorText =
"""
"We cannot understand their pain when they lose their motherhood, nor can we judge their measures to regain it."<br/>
Atzlan, to Om'loch
"""
})
.AddPart(new EntityTierModel { Tier = 2 })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_AmberWomb,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityHotkeyModel { Hotkey = "Q", HoldSpace = true, HotkeyGroup = "Z" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru })
.AddPart(new EntityVanguardAddedModel
{ ReplaceId = DataType.UNIT_Underspine, ImmortalId = DataType.IMMORTAL_Mala })
.AddPart(new EntityProductionModel
{ Alloy = 75, Ether = 100, BuildTime = 28, ProducedBy = DataType.BUILDING_AmberWomb })
.AddPart(new EntitySupplyModel { Takes = 5 })
.AddPart(new EntityVitalityModel
{ Energy = 150, Health = 180, DefenseLayer = 40, Armor = ArmorType.Medium, IsEtheric = false })
.AddPart(new EntityMovementModel { Speed = 340, Movement = MovementType.Ground })
.AddPart(new EntityWeaponModel
{ Damage = 16, Range = 700, SecondsBetweenAttacks = 1.65f, Targets = TargetType.Ground })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_ProjectileGestation })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_FallenHarvest })
.AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_Hematoma })
},
{
DataType.VANGUARD_DreadSister_Mala,
new EntityModel(DataType.VANGUARD_DreadSister_Mala, EntityType.Army)
.AddPart(new EntityInfoModel { Name = "Dread Sister", Descriptive = DescriptiveType.EliteCaster })
.AddPart(new EntityTierModel { Tier = 3 })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_AltarOfTheWorthy,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_RedVale,
Requirement = RequirementType.Research_Building
})
.AddPart(new EntityHotkeyModel { Hotkey = "F", HoldSpace = true, HotkeyGroup = "Z" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru })
.AddPart(new EntityVanguardAddedModel
{ ReplaceId = DataType.UNIT_RedSeer, ImmortalId = DataType.IMMORTAL_Mala })
.AddPart(new EntityProductionModel
{ Alloy = 60, Ether = 150, BuildTime = 36, ProducedBy = DataType.BUILDING_AltarOfTheWorthy })
.AddPart(new EntitySupplyModel { Takes = 4 })
.AddPart(new EntityVitalityModel
{
Energy = 100, Health = 90, DefenseLayer = 110, Armor = ArmorType.Light,
Defense = DefenseType.Overgrowth, IsEtheric = false
})
.AddPart(new EntityMovementModel { Speed = 360, Movement = MovementType.Ground })
.AddPart(new EntityWeaponModel
{ Damage = 14, Range = 750, SecondsBetweenAttacks = 1.4f, Targets = TargetType.Ground })
.AddPart(new EntityWeaponModel
{
Damage = 120,
MediumDamage = 160,
HeavyDamage = 200,
Range = 1400,
SecondsBetweenAttacks = 4.0f,
Targets = TargetType.Ground
})
.AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_RootVice })
.AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_BirthingStorm })
.AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_DeployDreadSister })
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_BirthingStorm })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_CastingFromBlood })
},
{
DataType.VANGUARD_RootShepard_Atzlan,
new EntityModel(DataType.VANGUARD_RootShepard_Atzlan, EntityType.Army)
.AddPart(new EntityInfoModel
{
Name = "Root Shepard",
Descriptive = DescriptiveType.Skirmisher,
Description = "Can generate rootway."
})
.AddPart(new EntityTierModel { Tier = 2 })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_AltarOfTheWorthy,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityHotkeyModel { Hotkey = "W", HotkeyGroup = "Z" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru })
.AddPart(new EntityVanguardAddedModel
{ ReplaceId = DataType.UNIT_Ichor, ImmortalId = DataType.IMMORTAL_Atzlan })
.AddPart(new EntityProductionModel
{ Alloy = 80, Ether = 0, BuildTime = 24, ProducedBy = DataType.BUILDING_AltarOfTheWorthy })
.AddPart(new EntitySupplyModel { Takes = 3 })
.AddPart(new EntityVitalityModel
{ Health = 125, DefenseLayer = 100, Armor = ArmorType.Medium, IsEtheric = false })
.AddPart(new EntityMovementModel { Speed = 540, Movement = MovementType.Ground })
.AddPart(new EntityWeaponModel
{
Damage = 15, MediumDamage = 12, HeavyDamage = 9, Range = 400, AttacksPerSecond = 2.4f,
Targets = TargetType.Ground
})
//.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_Stalk })
},
{
DataType.VANGUARD_Resinant_Atzlan,
new EntityModel(DataType.VANGUARD_Resinant_Atzlan, EntityType.Army)
.AddPart(new EntityInfoModel
{
Name = "Resinant",
Descriptive = DescriptiveType.ZoneControl,
Description = "Ground unit. Can only attack ground."
})
.AddPart(new EntityTierModel { Tier = 2.5f })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_AmberWomb,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_Neurocyte,
Requirement = RequirementType.Research_Building
})
.AddPart(new EntityHotkeyModel { Hotkey = "F", HotkeyGroup = "Z" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru })
.AddPart(new EntityVanguardAddedModel
{ ReplaceId = DataType.UNIT_BloodAnchor, ImmortalId = DataType.IMMORTAL_Atzlan })
.AddPart(new EntityProductionModel
{ Alloy = 150, Ether = 125, BuildTime = 32, ProducedBy = DataType.BUILDING_AmberWomb })
.AddPart(new EntitySupplyModel { Takes = 6 })
.AddPart(new EntityVitalityModel { Health = 260, DefenseLayer = 90, Armor = ArmorType.Heavy })
.AddPart(new EntityMovementModel { Speed = 360, Movement = MovementType.Ground })
.AddPart(new EntityWeaponModel
{
Damage = 25, MediumDamage = 35, HeavyDamage = 45, Range = 800, SecondsBetweenAttacks = 1.429f,
Targets = TargetType.Ground
})
.AddPart(new EntityWeaponModel
{
Damage = 85, MediumDamage = 100, HeavyDamage = 115, Range = 1000, SecondsBetweenAttacks = 2.5f,
MinimumRange = 500,
Targets = TargetType.Ground
})
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_ResinantSpeed })
.AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_MobilizeAru })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_EngorgedArteries })
},
{
DataType.VANGUARD_BoneStalker_Xol,
new EntityModel(DataType.VANGUARD_BoneStalker_Xol, EntityType.Army)
.AddPart(new EntityInfoModel
{
Name = "Bone Stalker",
Descriptive = DescriptiveType.Generalist,
Description = "Ground unit. Attacks ground/air targets. Stealthy.",
FlavorText =
"""
"They will come in deathy silence, awaiting the Great Hunt. In time, the 'Bone-Takers' shall
be without equal."<br/>
Xol, Prophecies of the Icta'nuat
"""
})
.AddPart(new EntityTierModel { Tier = 1 })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_AltarOfTheWorthy,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityHotkeyModel { Hotkey = "W", HotkeyGroup = "Z" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru })
.AddPart(new EntityVanguardAddedModel
{ ReplaceId = DataType.UNIT_MaskedHunter, ImmortalId = DataType.IMMORTAL_Xol })
.AddPart(new EntityProductionModel
{ Alloy = 50, Ether = 0, BuildTime = 16, ProducedBy = DataType.BUILDING_AltarOfTheWorthy })
.AddPart(new EntitySupplyModel { Takes = 2 })
.AddPart(new EntityVitalityModel
{ Health = 85, DefenseLayer = 10, Armor = ArmorType.Light, IsEtheric = false })
.AddPart(new EntityMovementModel { Speed = 380, Movement = MovementType.Ground })
.AddPart(new EntityWeaponModel
{ Damage = 11, Range = 400, AttacksPerSecond = 1.02f, Targets = TargetType.All })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_Stalk })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_Ambush })
},
{
DataType.VANGUARD_WhiteWoodReaper_Xol,
new EntityModel(DataType.VANGUARD_WhiteWoodReaper_Xol, EntityType.Army)
.AddPart(new EntityInfoModel
{
Name = "White Wood Reaper",
Descriptive = DescriptiveType.Skirmisher,
Description = "Ground unit. Attacks ground targets. Permanently Hidden."
})
.AddPart(new EntityTierModel { Tier = 3 })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_AltarOfTheWorthy,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_RedVale,
Requirement = RequirementType.Research_Building
})
.AddPart(new EntityHotkeyModel { Hotkey = "E", HotkeyGroup = "Z" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru })
.AddPart(new EntityVanguardAddedModel
{ ReplaceId = DataType.UNIT_Bloodbound, ImmortalId = DataType.IMMORTAL_Xol })
.AddPart(new EntityProductionModel
{ Alloy = 80, Ether = 80, BuildTime = 28, ProducedBy = DataType.BUILDING_AltarOfTheWorthy })
.AddPart(new EntitySupplyModel { Takes = 4 })
.AddPart(new EntityVitalityModel
{
Energy = 60, Health = 80, DefenseLayer = 40, Defense = DefenseType.Overgrowth,
Armor = ArmorType.Medium, IsEtheric = false
})
.AddPart(new EntityMovementModel { Speed = 448, Movement = MovementType.Ground })
.AddPart(new EntityWeaponModel
{
Damage = 40, Range = 100, AttacksPerSecond = 1,
Targets = TargetType.Ground
})
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_CastingFromBlood })
},
// Units
// Q'Rath
{
DataType.WORKER_Mote,
new EntityModel(DataType.WORKER_Mote, EntityType.Worker)
.AddPart(new EntityInfoModel { Name = "Mote", Descriptive = DescriptiveType.Worker })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath })
.AddPart(new EntityProductionModel { Alloy = 50, BuildTime = 20 })
.AddPart(new EntityVitalityModel { Health = 45, DefenseLayer = 45, Armor = ArmorType.Light })
.AddPart(new EntityMovementModel { Speed = 400, Movement = MovementType.Ground })
.AddPart(new EntityWeaponModel
{ Damage = 5, Range = 50, AttacksPerSecond = 1.887f, Targets = TargetType.Ground })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_HarvestAlloy })
},
{
DataType.UNIT_Sipari,
new EntityModel(DataType.UNIT_Sipari, EntityType.Army)
.AddPart(new EntityInfoModel
{
Name = "Sipari", Descriptive = DescriptiveType.Frontliner,
Description =
"""
Ground unit. Attacks ground targets. Durable melee fighter.<br/>
Gets Shields in <b>Hallowed Ground</b>.<br/>
""",
FlavorText =
"""
"From the ranks of the faithful shall the true-hearted step forward. They shall
be My spear, My shield, pointed forever outward against Wicked and Beast!"<br/>
Holy Aros, "Utterances 16.9"
"""
})
.AddPart(new EntityTierModel { Tier = 1 })
.AddPart(new EntityHotkeyModel { Hotkey = "Q", HotkeyGroup = "Z" })
.AddPart(new EntityVanguardReplacedModel
{ ImmortalId = DataType.IMMORTAL_Orzum, ReplacedById = DataType.VANGUARD_Zentari_Orzum })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath })
.AddPart(new EntityProductionModel
{ Alloy = 75, BuildTime = 20, ProducedBy = DataType.BUILDING_LegionHall })
.AddPart(new EntitySupplyModel { Takes = 3 })
.AddPart(new EntityVitalityModel { Health = 210, DefenseLayer = 135, Armor = ArmorType.Light })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_LegionHall,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityMovementModel { Speed = 440, Movement = MovementType.Ground })
.AddPart(new EntityWeaponModel
{
Damage = 20, HeavyDamage = 18, Range = 180,
SecondsBetweenAttacks = 1.43f, Targets = TargetType.Ground
})
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_GreavesOfAhqar })
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_FortifiedIcons })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_GreavesOfAhqar })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_FortifiedIcons })
},
{
DataType.UNIT_Magi,
new EntityModel(DataType.UNIT_Magi, EntityType.Army)
.AddPart(new EntityInfoModel
{
Name = "Magi", Descriptive = DescriptiveType.Support,
Description =
"""
Ground Spellcaster. Casts healing/utility spells. Protector.<br/>
Deploy to get Shields and create <b>Hallowed Ground</b>.
"""
})
.AddPart(new EntityTierModel { Tier = 1.5f })
.AddPart(new EntityHotkeyModel { Hotkey = "E", HotkeyGroup = "Z" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath })
.AddPart(new EntityProductionModel
{ Alloy = 50, Ether = 75, BuildTime = 28, ProducedBy = DataType.BUILDING_LegionHall })
.AddPart(new EntitySupplyModel { Takes = 2 })
.AddPart(new EntityVanguardReplacedModel
{ ImmortalId = DataType.IMMORTAL_Ajari, ReplacedById = DataType.VANGUARD_Saoshin_Ajari })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_LegionHall,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_Reliquary,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityVitalityModel
{ Energy = 100, Health = 75, DefenseLayer = 75, Armor = ArmorType.Light })
.AddPart(new EntityMovementModel { Speed = 420, Movement = MovementType.Ground })
.AddPart(new EntityWeaponModel
{
Damage = 6, Range = 600, SecondsBetweenAttacks = 1.5f,
Targets = TargetType.All
})
.AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_DeployMagi })
.AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_MobilizeQrath })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_MendingDecree })
},
{
DataType.UNIT_Zephyr,
new EntityModel(DataType.UNIT_Zephyr, EntityType.Army)
.AddPart(new EntityInfoModel
{
Name = "Zephyr",
Descriptive = DescriptiveType.Generalist,
Description =
"""
Ground unit. Attacks ground/air targets. Can teleport.
""",
FlavorText =
"""
Once named, the bound between zephyr and pilot cannot be broken.
"""
})
.AddPart(new EntityTierModel { Tier = 1.5f })
.AddPart(new EntityHotkeyModel { Hotkey = "W", HotkeyGroup = "Z" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath })
.AddPart(new EntityProductionModel
{ Alloy = 100, Ether = 40, BuildTime = 24, ProducedBy = DataType.BUILDING_LegionHall })
.AddPart(new EntitySupplyModel { Takes = 4 })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_LegionHall,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_MonasteryOfIzur,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityVitalityModel { Health = 255, DefenseLayer = 105, Armor = ArmorType.Heavy })
.AddPart(new EntityMovementModel { Speed = 400, Movement = MovementType.Ground })
.AddPart(new EntityWeaponModel
{
Damage = 22, MediumDamage = 27, HeavyDamage = 32, Range = 500, SecondsBetweenAttacks = 1.5f,
Targets = TargetType.All
})
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_WindStep })
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_ZephyrRange })
.AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_Windstep })
},
{
DataType.UNIT_Dervish,
new EntityModel(DataType.UNIT_Dervish, EntityType.Army)
.AddPart(new EntityInfoModel
{
Name = "Dervish",
Descriptive = DescriptiveType.Skirmisher,
Description =
"""
Ground unit. Attacks ground targets. Fragile and agile.<br/>
Can use Radiant Ward to lay mines. Has damage reduction.
"""
})
.AddPart(new EntityTierModel { Tier = 2 })
.AddPart(new EntityHotkeyModel { Hotkey = "R", HotkeyGroup = "Z" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath })
.AddPart(new EntityProductionModel
{ Alloy = 125, Ether = 10, BuildTime = 24, ProducedBy = DataType.BUILDING_SoulFoundry })
.AddPart(new EntitySupplyModel { Takes = 4 })
.AddPart(new EntityVitalityModel { Health = 180, DefenseLayer = 150, Armor = ArmorType.Medium })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_SoulFoundry,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityMovementModel { Speed = 500, Movement = MovementType.Hover })
.AddPart(new EntityWeaponModel
{
Damage = 10, LightDamage = 26, MediumDamage = 18, Range = 350, SecondsBetweenAttacks = 2.0f,
Targets = TargetType.Ground
})
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_SiroccoScript })
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_RadiantWard })
.AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_RadiantWard })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_SiroccoScript })
},
{
DataType.UNIT_Absolver,
new EntityModel(DataType.UNIT_Absolver, EntityType.Army)
.AddPart(new EntityInfoModel
{
Name = "Absolver",
Descriptive = DescriptiveType.ZoneControl,
Description =
"""
Ground unit. Attacks ground targets. Deploys for area damage.
""",
Notes =
"""
Has a higher DPS against structures when unmobilized.
"""
})
.AddPart(new EntityTierModel { Tier = 2 })
.AddPart(new EntityHotkeyModel { Hotkey = "F", HotkeyGroup = "Z" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath })
.AddPart(new EntityProductionModel
{ Alloy = 150, Ether = 75, BuildTime = 28, ProducedBy = DataType.BUILDING_SoulFoundry })
.AddPart(new EntitySupplyModel { Takes = 5 })
.AddPart(new EntityVitalityModel { Health = 230, DefenseLayer = 150, Armor = ArmorType.Medium })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_SoulFoundry,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityMovementModel { Speed = 400, Movement = MovementType.Ground })
.AddPart(new EntityWeaponModel
{
Damage = 11, MediumDamage = 13, HeavyDamage = 15, StructureDamageBonus = 8, Range = 800,
AttacksPerSecond = 1.25f, Targets = TargetType.Ground
})
.AddPart(new EntityWeaponModel
{
Damage = 6, MediumDamage = 7, HeavyDamage = 8, Range = 800, AttacksPerSecond = 2.222f,
Targets = TargetType.Ground
})
.AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_DeployAbsolver })
.AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_MobilizeQrath })
.AddPart(new EntityPassiveModel { Name = "?", Description = "Hits multiple units when deployed." })
},
{
DataType.UNIT_Castigator,
new EntityModel(DataType.UNIT_Castigator, EntityType.Army)
.AddPart(new EntityInfoModel
{
Name = "Castigator", Descriptive = DescriptiveType.AirKiller,
Description =
"""
Ground unit. Can attack air and ground.
"""
})
.AddPart(new EntityTierModel { Tier = 2 })
.AddPart(new EntityHotkeyModel { Hotkey = "W", HoldSpace = true, HotkeyGroup = "Z" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath })
.AddPart(new EntityProductionModel
{ Alloy = 150, Ether = 75, BuildTime = 28, ProducedBy = DataType.BUILDING_SoulFoundry })
.AddPart(new EntitySupplyModel { Takes = 5 })
.AddPart(new EntityVitalityModel { Health = 300, DefenseLayer = 150, Armor = ArmorType.Heavy })
.AddPart(new EntityMovementModel { Speed = 390, Movement = MovementType.Ground })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_SoulFoundry,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityWeaponModel
{
Damage = 20,
MediumDamage = 30,
HeavyDamage = 40,
Range = 800,
SecondsBetweenAttacks = 1.42f,
Targets = TargetType.Air,
HasSplash = true
})
.AddPart(new EntityWeaponModel
{ Damage = 16, Range = 500, SecondsBetweenAttacks = 1.5f, Targets = TargetType.Ground })
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_RelicOfTheWrathfulGaze })
.AddPart(new EntityIdAbilityModel { Id = DataType.PASSIVE_Maledictions })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_RelicOfTheWrathfulGaze })
},
{
DataType.UNIT_Hallower,
new EntityModel(DataType.UNIT_Hallower, EntityType.Army)
.AddPart(new EntityInfoModel
{
Name = "Hallower", Descriptive = DescriptiveType.Dislodger,
Description =
"""
Ground Unit. Attack ground targets. Long-range attack.
"""
})
.AddPart(new EntityTierModel { Tier = 2.5f })
.AddPart(new EntityHotkeyModel { Hotkey = "Q", HoldSpace = true, HotkeyGroup = "Z" })
.AddPart(new EntityVanguardReplacedModel
{ ImmortalId = DataType.IMMORTAL_Ajari, ReplacedById = DataType.VANGUARD_ArkMother_Ajari })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath })
.AddPart(new EntityProductionModel
{ Alloy = 150, Ether = 100, BuildTime = 32, ProducedBy = DataType.BUILDING_SoulFoundry })
.AddPart(new EntitySupplyModel { Takes = 5 })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_SoulFoundry,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_HouseOfFadingSaints,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityVitalityModel { Health = 100, DefenseLayer = 130, Armor = ArmorType.Heavy })
.AddPart(new EntityMovementModel { Speed = 335, Movement = MovementType.Ground })
.AddPart(new EntityWeaponModel
{
Damage = 60, MediumDamage = 80, HeavyDamage = 100, Range = 1300, AttacksPerSecond = 0.143f,
Targets = TargetType.Ground
})
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_HallowedRuin })
},
{
DataType.UNIT_Sentinel,
new EntityModel(DataType.UNIT_Sentinel, EntityType.Army)
.AddPart(new EntityInfoModel
{
Name = "Sentinel",
Descriptive = DescriptiveType.AirKiller,
Description =
"""
Air unit. Attacks air targets. Anti-air specialist.
"""
})
.AddPart(new EntityTierModel { Tier = 3 })
.AddPart(new EntityHotkeyModel { Hotkey = "E", HoldSpace = true, HotkeyGroup = "Z" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath })
.AddPart(new EntityProductionModel
{ Alloy = 150, Ether = 75, BuildTime = 28, ProducedBy = DataType.BUILDING_Angelarium })
.AddPart(new EntitySupplyModel { Takes = 4 })
.AddPart(new EntityVitalityModel { Health = 150, DefenseLayer = 100, Armor = ArmorType.Medium })
.AddPart(new EntityMovementModel { Speed = 525, Movement = MovementType.Air })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_Angelarium,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityWeaponModel
{
Damage = 28, Range = 500, AttacksPerSecond = 0.714f, Targets = TargetType.Air
})
//TODO: Connect Sentinel mobilize ability
},
{
DataType.UNIT_Throne,
new EntityModel(DataType.UNIT_Throne, EntityType.Army)
.AddPart(new EntityInfoModel
{
Name = "Throne",
Descriptive = DescriptiveType.Generalist,
Description =
"""
Air unit. Attacks ground/air targets. Ultimate unit.
""",
FlavorText =
"""
The Godhead Aros left silvers of itself in them, and no sight is more fearsome
to its enemies.
"""
})
.AddPart(new EntityTierModel { Tier = 3.5f })
.AddPart(new EntityHotkeyModel { Hotkey = "A", HoldSpace = true, HotkeyGroup = "Z" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath })
.AddPart(new EntityProductionModel
{ Alloy = 350, Ether = 200, BuildTime = 70, ProducedBy = DataType.BUILDING_Angelarium })
.AddPart(new EntitySupplyModel { Takes = 10 })
.AddPart(new EntityVitalityModel { Health = 550, DefenseLayer = 350, Armor = ArmorType.Heavy })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_Angelarium,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_BearerOfTheCrown,
Requirement = RequirementType.Research_Building
})
.AddPart(new EntityMovementModel { Speed = 300, Movement = MovementType.Air })
.AddPart(new EntityWeaponModel
{
Damage = 120, Range = 500, SecondsBetweenAttacks = 2.5f,
Targets = TargetType.All
})
.AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_TitheBlades })
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_TitheBlades })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_GodstoneBulwark })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_ThroneMovingShot })
},
{
DataType.UNIT_Warden,
new EntityModel(DataType.UNIT_Warden, EntityType.Army)
.AddPart(new EntityInfoModel
{
Name = "Warden",
Descriptive = DescriptiveType.Skirmisher,
Description =
"""
Air unit. Attacks ground targets. Anti-ground specialist.
"""
})
.AddPart(new EntityTierModel { Tier = 3 })
.AddPart(new EntityHotkeyModel { Hotkey = "R", HoldSpace = true, HotkeyGroup = "Z" })
.AddPart(new EntityVanguardReplacedModel
{ ImmortalId = DataType.IMMORTAL_Orzum, ReplacedById = DataType.VANGUARD_Sceptre_Orzum })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath })
.AddPart(new EntityProductionModel
{ Alloy = 175, Ether = 100, BuildTime = 32, ProducedBy = DataType.BUILDING_Angelarium })
.AddPart(new EntitySupplyModel { Takes = 6 })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_Angelarium,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityVitalityModel { Health = 375, DefenseLayer = 100, Armor = ArmorType.Heavy })
.AddPart(new EntityMovementModel { Speed = 480, Movement = MovementType.Air })
.AddPart(new EntityWeaponModel
{ Damage = 32, Range = 500, SecondsBetweenAttacks = 1.8f, Targets = TargetType.Ground })
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_WingsOfTheKenLatir })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_WingsOfTheKenLatir })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_ExecutionRites })
},
{
DataType.UNIT_SharU,
new EntityModel(DataType.UNIT_SharU, EntityType.Army)
.AddPart(new EntityInfoModel
{
Name = "Shar'U",
Descriptive = DescriptiveType.DamageCaster
})
.AddPart(new EntityTierModel { Tier = 3.5f })
.AddPart(new EntityHotkeyModel { Hotkey = "F", HoldSpace = true, HotkeyGroup = "Z" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath })
.AddPart(new EntityProductionModel
{ Alloy = 110, Ether = 250, BuildTime = 55, ProducedBy = DataType.BUILDING_Angelarium })
.AddPart(new EntitySupplyModel { Takes = 6 })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_Angelarium,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_EyeOfAros,
Requirement = RequirementType.Research_Building
})
.AddPart(new EntityVitalityModel
{ Health = 300, DefenseLayer = 155, Energy = 150, IsEtheric = true, Armor = ArmorType.Heavy })
.AddPart(new EntityMovementModel { Speed = 360, Movement = MovementType.Air })
.AddPart(new EntityWeaponModel
{
Damage = 10, Range = 650, SecondsBetweenAttacks = 1.4f,
Targets = TargetType.All
})
.AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_Awestrike })
},
// Units
// Aru
{
DataType.WORKER_Symbiote,
new EntityModel(DataType.WORKER_Symbiote, EntityType.Worker)
.AddPart(new EntityInfoModel { Name = "Symbiote", Descriptive = DescriptiveType.Worker })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru })
.AddPart(new EntityProductionModel { Alloy = 50, BuildTime = 20 })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_GroveHeart,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityVitalityModel { Health = 75, DefenseLayer = 15, Armor = ArmorType.Light })
.AddPart(new EntityMovementModel { Speed = 400, Movement = MovementType.Hover })
.AddPart(new EntityWeaponModel
{ Damage = 8, Range = 40, AttacksPerSecond = 1.25f, Targets = TargetType.Ground })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_HarvestAlloy })
},
{
DataType.UNIT_MaskedHunter,
new EntityModel(DataType.UNIT_MaskedHunter, EntityType.Army)
.AddPart(new EntityInfoModel
{
Name = "Masked Hunter",
Descriptive = DescriptiveType.Generalist,
Description =
"""
Ground Unit. Can attack ground and air.
"""
})
.AddPart(new EntityTierModel { Tier = 1 })
.AddPart(new EntityHotkeyModel { Hotkey = "W", HotkeyGroup = "Z" })
.AddPart(new EntityVanguardReplacedModel
{ ImmortalId = DataType.IMMORTAL_Xol, ReplacedById = DataType.VANGUARD_BoneStalker_Xol })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_AltarOfTheWorthy,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru })
.AddPart(new EntityProductionModel
{ Alloy = 50, BuildTime = 16, ProducedBy = DataType.BUILDING_AltarOfTheWorthy })
.AddPart(new EntitySupplyModel { Takes = 2 })
.AddPart(new EntityVitalityModel
{ Health = 125, DefenseLayer = 40, Defense = DefenseType.Overgrowth, Armor = ArmorType.Light })
.AddPart(new EntityMovementModel { Speed = 400, Movement = MovementType.Ground })
.AddPart(new EntityWeaponModel
{
Damage = 7, Range = 400, AttacksPerSecond = 1.4f, Targets = TargetType.All, MediumDamage = 6,
HeavyDamage = 5
})
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_Offering })
.AddPart(new EntityIdPassiveModel { Id = DataType.ABILITY_Offering })
},
{
DataType.UNIT_Xacal,
new EntityModel(DataType.UNIT_Xacal, EntityType.Army)
.AddPart(new EntityInfoModel
{
Name = "Xacal",
Descriptive = DescriptiveType.Skirmisher,
Description =
"""
Ground unit. Attacks ground targets. Anti-Armor specialist.
"""
})
.AddPart(new EntityTierModel { Tier = 1.5f })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_AltarOfTheWorthy,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_Neurocyte,
Requirement = RequirementType.Research_Building
})
.AddPart(new EntityHotkeyModel { Hotkey = "Q", HotkeyGroup = "Z" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru })
.AddPart(new EntityProductionModel
{ Alloy = 80, Ether = 30, BuildTime = 20, ProducedBy = DataType.BUILDING_AltarOfTheWorthy })
.AddPart(new EntitySupplyModel { Takes = 3 })
.AddPart(new EntityVitalityModel { Health = 210, DefenseLayer = 110, Armor = ArmorType.Medium })
.AddPart(new EntityMovementModel { Speed = 516, Movement = MovementType.Ground })
.AddPart(new EntityWeaponModel
{
Damage = 14, MediumDamage = 21, HeavyDamage = 28, Range = 600, SecondsBetweenAttacks = 1.786f,
Targets = TargetType.Ground
})
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_EthericFibers })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_XacalDamage })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_XacalDefense })
},
{
DataType.UNIT_Bloodbound,
new EntityModel(DataType.UNIT_Bloodbound, EntityType.Army)
.AddPart(new EntityInfoModel
{
Name = "Bloodbound",
Descriptive = DescriptiveType.Frontliner,
Description =
"""
Ground unit. Attacks ground targets. Hard to kill.
""",
FlavorText =
"""
"With this act, I sever myself from families proud and pleasures fickle. My hands shall
clutch no babe nor trophy, for I am Laculathon's hungering blade."
<br/>
Bloodbound initiation Rites
"""
})
.AddPart(new EntityTierModel { Tier = 3 })
.AddPart(new EntityVanguardReplacedModel
{ ImmortalId = DataType.IMMORTAL_Xol, ReplacedById = DataType.VANGUARD_WhiteWoodReaper_Xol })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_AltarOfTheWorthy,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_RedVale,
Requirement = RequirementType.Research_Building
})
.AddPart(new EntityHotkeyModel { Hotkey = "E", HotkeyGroup = "Z" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru })
.AddPart(new EntityProductionModel
{ Alloy = 80, Ether = 80, BuildTime = 24, ProducedBy = DataType.BUILDING_AltarOfTheWorthy })
.AddPart(new EntitySupplyModel { Takes = 4 })
.AddPart(new EntityVitalityModel
{ Energy = 60, Health = 150, DefenseLayer = 75, Armor = ArmorType.Light })
.AddPart(new EntityMovementModel { Speed = 500, Movement = MovementType.Ground })
.AddPart(new EntityWeaponModel
{
Damage = 30, MediumDamage = 40, LightDamage = 50, Range = 80, AttacksPerSecond = 1.4f,
Targets = TargetType.Ground
})
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_QuenchingScythes })
.AddPart(new EntityIdPassiveModel { Id = DataType.ABILITY_BloodyRebound })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_CastingFromBlood })
},
{
DataType.UNIT_BloodAnchor,
new EntityModel(DataType.UNIT_BloodAnchor, EntityType.Army)
.AddPart(new EntityInfoModel
{
Name = "Blood Anchor",
Descriptive = DescriptiveType.ZoneControl,
Description =
"""
Ground unit. Can't attack. Deploys to spawn Cystic Crawlers and Rootway.
"""
})
.AddPart(new EntityTierModel { Tier = 2 })
.AddPart(new EntityVanguardReplacedModel
{ ImmortalId = DataType.IMMORTAL_Atzlan, ReplacedById = DataType.VANGUARD_Resinant_Atzlan })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_AmberWomb,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_RedVale,
Requirement = RequirementType.Research_Building
})
.AddPart(new EntityHotkeyModel { Hotkey = "F", HotkeyGroup = "Z" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru })
.AddPart(new EntityProductionModel
{ Alloy = 125, Ether = 100, BuildTime = 32, ProducedBy = DataType.BUILDING_AltarOfTheWorthy })
.AddPart(new EntitySupplyModel { Takes = 5 })
.AddPart(new EntityVitalityModel
{ Health = 150, DefenseLayer = 75, Armor = ArmorType.Light })
.AddPart(new EntityMovementModel { Speed = 500, Movement = MovementType.Ground })
.AddPart(new EntityIdPassiveModel { Id = DataType.ABILITY_MobilizeAru })
.AddPart(new EntityIdPassiveModel { Id = DataType.ABILITY_DeployBloodAnchor })
},
{
DataType.UNIT_RedSeer,
new EntityModel(DataType.UNIT_RedSeer, EntityType.Army)
.AddPart(new EntityInfoModel
{
Name = "Red Seer",
Descriptive = DescriptiveType.DamageCaster,
Description =
"""
Ground Spellcaster. Casts damage and utility spells. Ultimate Spellcaster.
"""
})
.AddPart(new EntityTierModel { Tier = 3 })
.AddPart(new EntityVanguardReplacedModel
{ ImmortalId = DataType.IMMORTAL_Mala, ReplacedById = DataType.VANGUARD_DreadSister_Mala })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_AltarOfTheWorthy,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_RedVale,
Requirement = RequirementType.Research_Building
})
.AddPart(new EntityHotkeyModel { Hotkey = "F", HoldSpace = true, HotkeyGroup = "Z" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru })
.AddPart(new EntityProductionModel
{ Alloy = 40, Ether = 140, BuildTime = 32, ProducedBy = DataType.BUILDING_AltarOfTheWorthy })
.AddPart(new EntitySupplyModel { Takes = 3 })
.AddPart(new EntityVitalityModel
{
Energy = 100, Health = 90, DefenseLayer = 75, Defense = DefenseType.Overgrowth,
IsEtheric = true, Armor = ArmorType.Light
})
.AddPart(new EntityMovementModel { Speed = 360, Movement = MovementType.Ground })
.AddPart(new EntityWeaponModel
{ Damage = 9, Range = 700, AttacksPerSecond = 1.253f, Targets = TargetType.All })
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_BloodPlague })
.AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_DrainingEmbrace })
.AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_MorphToGodphage })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_CastingFromBlood })
},
{
DataType.UNIT_Underspine,
new EntityModel(DataType.UNIT_Underspine, EntityType.Army)
.AddPart(new EntityInfoModel
{
Name = "Underspine",
Descriptive = DescriptiveType.Support,
Description = "Ground unit. Can attack ground and air."
})
.AddPart(new EntityTierModel { Tier = 1.5f })
.AddPart(new EntityVanguardReplacedModel
{ ImmortalId = DataType.IMMORTAL_Mala, ReplacedById = DataType.VANGUARD_Incubator_Mala })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_AltarOfTheWorthy,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_Neurocyte,
Requirement = RequirementType.Research_Building
})
.AddPart(new EntityHotkeyModel { Hotkey = "Q", HoldSpace = true, HotkeyGroup = "Z" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru })
.AddPart(new EntityProductionModel
{ Alloy = 70, Ether = 50, BuildTime = 20, ProducedBy = DataType.BUILDING_AltarOfTheWorthy })
.AddPart(new EntitySupplyModel { Takes = 3 })
.AddPart(new EntityVitalityModel { Health = 210, DefenseLayer = 60, Armor = ArmorType.Medium })
.AddPart(new EntityMovementModel { Speed = 400, Movement = MovementType.Ground })
.AddPart(new EntityWeaponModel
{
Damage = 2, Range = 600, SecondsBetweenAttacks = 1.253f, Targets =
TargetType.All
})
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_OssifyingSwarm })
.AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_ObstructingSwarm })
},
{
DataType.UNIT_Ichor,
new EntityModel(DataType.UNIT_Ichor, EntityType.Army)
.AddPart(new EntityInfoModel
{
Name = "Ichor",
Descriptive = DescriptiveType.Skirmisher,
Description =
"""
Ground unit. Attacks ground targets. Fragile and agile.
""",
FlavorText =
"""
"Kissed an ichor:" Aru phrase for "dying by one's own stupidity."
"""
})
.AddPart(new EntityTierModel { Tier = 1.5f })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_AltarOfTheWorthy,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityHotkeyModel { Hotkey = "R", HotkeyGroup = "Z" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru })
.AddPart(new EntityProductionModel
{ Alloy = 80, Ether = 0, BuildTime = 24, ProducedBy = DataType.BUILDING_AltarOfTheWorthy })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_MurderHollow,
Requirement = RequirementType.Research_Building
})
.AddPart(new EntitySupplyModel { Takes = 3 })
.AddPart(new EntityVitalityModel { Health = 100, DefenseLayer = 40, Armor = ArmorType.Medium })
.AddPart(new EntityMovementModel { Speed = 424, Movement = MovementType.Ground })
.AddPart(new EntityWeaponModel
{
Damage = 18, LightDamage = 38, MediumDamage = 28, Range = 500, AttacksPerSecond = 0.7f,
Targets = TargetType.Ground, SecondsBetweenAttacks = 1.429f
})
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_PursuitLigaments })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_ExternalDigestion })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_PursuitLigaments })
},
{
DataType.UNIT_Aarox,
new EntityModel(DataType.UNIT_Aarox, EntityType.Army)
.AddPart(new EntityInfoModel
{
Name = "Aarox",
Descriptive = DescriptiveType.AirKiller,
Description =
"""
Air unit. Attacks air targets. Self-destructs to do area damage.
"""
})
.AddPart(new EntityTierModel { Tier = 3 })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_BoneCanopy,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_Neurocyte,
Requirement = RequirementType.Research_Building
})
.AddPart(new EntityHotkeyModel { Hotkey = "E", HoldSpace = true, HotkeyGroup = "Z" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru })
.AddPart(new EntityProductionModel
{ Alloy = 20, Ether = 20, BuildTime = 24, ProducedBy = DataType.BUILDING_BoneCanopy })
.AddPart(new EntitySupplyModel { Takes = 2 })
.AddPart(new EntityVitalityModel { Health = 55, DefenseLayer = 10, Armor = ArmorType.Light })
.AddPart(new EntityMovementModel { Speed = 490, Movement = MovementType.Air })
.AddPart(new EntityWeaponModel
{
Damage = 125, MediumDamage = 163, HeavyDamage = 200, Range = 20,
AttacksPerSecond = 1,
Targets =
TargetType.Air
})
.AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_DiveBomb })
},
{
DataType.UNIT_Thrum,
new EntityModel(DataType.UNIT_Thrum, EntityType.Army)
.AddPart(new EntityInfoModel
{
Name = "Thrum",
Descriptive = DescriptiveType.Skirmisher,
Description =
"""
Air unit. Attacks ground/air targets. Fragile and agile.<br/>
Thrums get attack speed when a Thrum kills an enemy.
"""
})
.AddPart(new EntityTierModel { Tier = 3 })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_BoneCanopy,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityHotkeyModel { Hotkey = "R", HoldSpace = true, HotkeyGroup = "Z" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru })
.AddPart(new EntityProductionModel
{ Alloy = 80, Ether = 65, BuildTime = 24, ProducedBy = DataType.BUILDING_BoneCanopy })
.AddPart(new EntitySupplyModel { Takes = 3 })
.AddPart(new EntityVitalityModel { Health = 150, DefenseLayer = 50, Armor = ArmorType.Light })
.AddPart(new EntityMovementModel { Speed = 580, Movement = MovementType.Air })
.AddPart(new EntityWeaponModel
{
Damage = 11, LightDamage = 15, MediumDamage = 13, Range = 350, SecondsBetweenAttacks = 1.25f,
Targets = TargetType.All
})
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_BloodFrenzy })
},
{
DataType.UNIT_WraithBow,
new EntityModel(DataType.UNIT_WraithBow, EntityType.Army)
.AddPart(new EntityInfoModel
{
Name = "Wraith Bow",
Descriptive = DescriptiveType.AirKiller,
Description =
"""
Ground unit. Attacks ground/air targets. Anti-air specialist.
"""
})
.AddPart(new EntityTierModel { Tier = 2 })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_AmberWomb,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityHotkeyModel { Hotkey = "W", HoldSpace = true, HotkeyGroup = "Z" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru })
.AddPart(new EntityProductionModel
{ Alloy = 80, Ether = 40, BuildTime = 24, ProducedBy = DataType.BUILDING_AmberWomb })
.AddPart(new EntitySupplyModel { Takes = 3 })
.AddPart(new EntityVitalityModel { Health = 180, DefenseLayer = 65, Armor = ArmorType.Medium })
.AddPart(new EntityMovementModel { Speed = 500, Movement = MovementType.Ground })
.AddPart(new EntityWeaponModel
{ Damage = 22, Range = 700, AttacksPerSecond = 1.4f, Targets = TargetType.Air })
.AddPart(new EntityWeaponModel
{ Damage = 9, Range = 500, AttacksPerSecond = 1.4f, Targets = TargetType.Ground })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_GuidingAmber })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_WraithBowRange })
},
{
DataType.UNIT_Behemoth,
new EntityModel(DataType.UNIT_Behemoth, EntityType.Army)
.AddPart(new EntityInfoModel
{
Name = "Behemoth",
Descriptive = DescriptiveType.Skirmisher,
Description =
"""
Air unit. Attacks ground targets. Long-range attack.
"""
})
.AddPart(new EntityTierModel { Tier = 3.5f })
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_BoneCanopy,
Requirement = RequirementType.Production_Building
})
.AddPart(new EntityRequirementModel
{
Id = DataType.BUILDING_Neurocyte,
Requirement = RequirementType.Research_Building
})
.AddPart(new EntityHotkeyModel { Hotkey = "A", HoldSpace = true, HotkeyGroup = "Z" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru })
.AddPart(new EntityProductionModel
{ Alloy = 190, Ether = 150, BuildTime = 40, ProducedBy = DataType.BUILDING_BoneCanopy })
.AddPart(new EntitySupplyModel { Takes = 8 })
.AddPart(new EntityVitalityModel { Health = 350, DefenseLayer = 100, Armor = ArmorType.Heavy })
.AddPart(new EntityMovementModel { Speed = 210, Movement = MovementType.Air })
.AddPart(new EntityWeaponModel
{
Damage = 21,
Range = 600, AttacksPerSecond = 0.588f, SecondsBetweenAttacks = 1.7f,
Cooldown = 6, Charges = 1,
Targets = TargetType.Ground
})
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_VitellineCysts })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_BehemothCapacity })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_QuitlStorage2 })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_FireQuitl })
},
{
DataType.SUMMON_Quitl,
new EntityModel(DataType.SUMMON_Quitl, EntityType.Army)
.AddPart(new EntityInfoModel { Name = "Quitl", Descriptive = DescriptiveType.Summon })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru })
.AddPart(new EntityVitalityModel { Health = 65, Armor = ArmorType.Light, Lasts = 8 })
.AddPart(new EntityMovementModel { Speed = 168, Movement = MovementType.Ground })
.AddPart(new EntityWeaponModel
{ Damage = 10, Range = 300, AttacksPerSecond = 1.124f, Targets = TargetType.Ground })
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_Temporary })
}
};
}
}