diff --git a/Model/Entity/Data/DATA.cs b/Model/Entity/Data/DATA.cs index 7ed6ae9..4bd574e 100644 --- a/Model/Entity/Data/DATA.cs +++ b/Model/Entity/Data/DATA.cs @@ -659,6 +659,71 @@ public class DATA .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 = "Bone Stalker", Descriptive = DescriptiveType.Skirmisher }) + .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 = 50, Ether = 0, BuildTime = 16, ProducedBy = DataType.BUILDING_AltarOfTheWorthy }) + .AddPart(new EntitySupplyModel { Takes = 2 }) + .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 }) + .AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_Ambush }) + }, + + + { + DataType.VANGUARD_Resinant_Atzlan, + new EntityModel(DataType.VANGUARD_Resinant_Atzlan, EntityType.Army) + .AddPart(new EntityInfoModel { Name = "Resinant", Descriptive = DescriptiveType.Zone_Control }) + .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 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, AttacksPerSecond = 1.429f, + Targets = TargetType.Ground + }) + .AddPart(new EntityWeaponModel + { + Damage = 85, MediumDamage = 100, HeavyDamage = 115, Range = 1000, AttacksPerSecond = 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) @@ -1118,7 +1183,7 @@ public class DATA Requirement = RequirementType.Production_Building }) .AddPart(new EntityVitalityModel { Health = 75, DefenseLayer = 15, Armor = ArmorType.Light }) - .AddPart(new EntityMovementModel { Speed = 400, Movement = MovementType.Ground }) + .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 }) @@ -1174,14 +1239,14 @@ public class DATA .AddPart(new EntityProductionModel { Alloy = 75, Ether = 30, BuildTime = 20, ProducedBy = DataType.BUILDING_AltarOfTheWorthy }) .AddPart(new EntitySupplyModel { Takes = 3 }) - .AddPart(new EntityVitalityModel { Health = 160, DefenseLayer = 70, Armor = ArmorType.Heavy }) - .AddPart(new EntityMovementModel { Speed = 378, Movement = MovementType.Ground }) + .AddPart(new EntityVitalityModel { Health = 210, DefenseLayer = 110, Armor = ArmorType.Medium }) + .AddPart(new EntityMovementModel { Speed = 516, Movement = MovementType.Ground }) .AddPart(new EntityWeaponModel { - Damage = 12, MediumDamage = 18, HeavyDamage = 24, Range = 400, AttacksPerSecond = 0.56f, + Damage = 14, MediumDamage = 21, HeavyDamage = 28, Range = 600, SecondsBetweenAttacks = 1.786f, Targets = TargetType.Ground }) - .AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_XacalDamage }) + .AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_EthericFibers }) .AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_XacalDamage }) .AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_XacalDefense }) }, @@ -1208,11 +1273,11 @@ public class DATA { Alloy = 80, Ether = 80, BuildTime = 24, ProducedBy = DataType.BUILDING_AltarOfTheWorthy }) .AddPart(new EntitySupplyModel { Takes = 4 }) .AddPart(new EntityVitalityModel - { Energy = 60, Health = 100, DefenseLayer = 40, Armor = ArmorType.Light }) - .AddPart(new EntityMovementModel { Speed = 434, Movement = MovementType.Ground }) + { 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 = 0.714f, + Damage = 30, MediumDamage = 40, LightDamage = 50, Range = 80, AttacksPerSecond = 1.4f, Targets = TargetType.Ground }) .AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_QuenchingScythes }) @@ -1243,15 +1308,15 @@ public class DATA .AddPart(new EntitySupplyModel { Takes = 3 }) .AddPart(new EntityVitalityModel { - Energy = 100, Health = 60, DefenseLayer = 75, Defense = DefenseType.Overgrowth, + Energy = 100, Health = 90, DefenseLayer = 75, Defense = DefenseType.Overgrowth, IsEtheric = true, Armor = ArmorType.Light }) - .AddPart(new EntityMovementModel { Speed = 0, Movement = MovementType.Ground }) + .AddPart(new EntityMovementModel { Speed = 360, Movement = MovementType.Ground }) .AddPart(new EntityWeaponModel - { Damage = 9, Range = 700, AttacksPerSecond = 0.798f, Targets = TargetType.Ground }) + { 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_AwakenAcaaluk }) + .AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_MorphToGodphage }) .AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_CastingFromBlood }) }, { @@ -1260,7 +1325,7 @@ public class DATA .AddPart(new EntityInfoModel { Name = "Underspine", Descriptive = DescriptiveType.Force_Multiplier, - Notes = "Has +5 HP regen when burrowed." + Notes = "" }) .AddPart(new EntityTierModel { Tier = 2 }) .AddPart(new EntityVanguardReplacedModel @@ -1280,18 +1345,13 @@ public class DATA .AddPart(new EntityProductionModel { Alloy = 70, Ether = 50, BuildTime = 20, ProducedBy = DataType.BUILDING_AltarOfTheWorthy }) .AddPart(new EntitySupplyModel { Takes = 3 }) - .AddPart(new EntityVitalityModel { Health = 140, DefenseLayer = 40, Armor = ArmorType.Medium }) - .AddPart(new EntityMovementModel { Speed = 350, Movement = MovementType.Ground }) + .AddPart(new EntityVitalityModel { Health = 210, DefenseLayer = 60, Armor = ArmorType.Medium }) + .AddPart(new EntityMovementModel { Speed = 400, Movement = MovementType.Ground }) .AddPart(new EntityWeaponModel { - Damage = 9, Range = 700, SecondsBetweenAttacks = 1.2529f, Targets = + Damage = 2, Range = 600, SecondsBetweenAttacks = 1.253f, Targets = TargetType.All }) - .AddPart(new EntityWeaponModel - { - Damage = 9, Range = 600, SecondsBetweenAttacks = 0.7143f, Targets = - TargetType.Ground - }) .AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_DeployMobilizeUnderSpine }) .AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_MobilizeAru }) .AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_OssifyingSwarm }) @@ -1324,42 +1384,6 @@ public class DATA .AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_PursuitLigaments }) .AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_DenInstinct }) }, - { - DataType.VANGUARD_Resinant_Atzlan, - new EntityModel(DataType.VANGUARD_Resinant_Atzlan, EntityType.Army) - .AddPart(new EntityInfoModel { Name = "Resinant", Descriptive = DescriptiveType.Zone_Control }) - .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 EntityProductionModel - { Alloy = 150, Ether = 80, BuildTime = 32, ProducedBy = DataType.BUILDING_AmberWomb }) - .AddPart(new EntitySupplyModel { Takes = 5 }) - .AddPart(new EntityVitalityModel { Health = 175, DefenseLayer = 60, Armor = ArmorType.Heavy }) - .AddPart(new EntityMovementModel { Speed = 350, Movement = MovementType.Ground }) - .AddPart(new EntityWeaponModel - { - Damage = 25, MediumDamage = 40, HeavyDamage = 55, Range = 800, AttacksPerSecond = 0.7f, - Targets = TargetType.Ground - }) - .AddPart(new EntityWeaponModel - { - Damage = 50, MediumDamage = 60, HeavyDamage = 70, Range = 1000, AttacksPerSecond = 0.467f, - Targets = TargetType.Ground - }) - .AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_ResinantDeploy }) - .AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_MobilizeAru }) - .AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_EngorgedArteries }) - }, { DataType.UNIT_Aarox, new EntityModel(DataType.UNIT_Aarox, EntityType.Army) @@ -1380,11 +1404,11 @@ public class DATA .AddPart(new EntityProductionModel { Alloy = 40, Ether = 40, BuildTime = 24, ProducedBy = DataType.BUILDING_BoneCanopy }) .AddPart(new EntitySupplyModel { Takes = 2 }) - .AddPart(new EntityVitalityModel { Health = 45, DefenseLayer = 10, Armor = ArmorType.Light }) - .AddPart(new EntityMovementModel { Speed = 532, Movement = MovementType.Air }) + .AddPart(new EntityVitalityModel { Health = 55, DefenseLayer = 10, Armor = ArmorType.Light }) + .AddPart(new EntityMovementModel { Speed = 490, Movement = MovementType.Air }) .AddPart(new EntityWeaponModel { - Damage = 100, LightDamage = 100, MediumDamage = 130, HeavyDamage = 160, Range = 20, + Damage = 125, MediumDamage = 163, HeavyDamage = 200, Range = 20, AttacksPerSecond = 1, Targets = TargetType.Air @@ -1406,11 +1430,11 @@ public class DATA .AddPart(new EntityProductionModel { Alloy = 80, Ether = 75, BuildTime = 24, ProducedBy = DataType.BUILDING_BoneCanopy }) .AddPart(new EntitySupplyModel { Takes = 3 }) - .AddPart(new EntityVitalityModel { Health = 120, DefenseLayer = 40, Armor = ArmorType.Light }) - .AddPart(new EntityMovementModel { Speed = 500, Movement = MovementType.Air }) + .AddPart(new EntityVitalityModel { Health = 150, DefenseLayer = 50, Armor = ArmorType.Light }) + .AddPart(new EntityMovementModel { Speed = 580, Movement = MovementType.Air }) .AddPart(new EntityWeaponModel { - Damage = 11, HeavyDamage = 9, Range = 350, AttacksPerSecond = 0.8f, Targets = TargetType.All + Damage = 11, LightDamage = 15, MediumDamage = 13, Range = 350, SecondsBetweenAttacks = 1.25f, Targets = TargetType.All }) .AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_BloodFrenzy }) }, @@ -1429,12 +1453,12 @@ public class DATA .AddPart(new EntityProductionModel { Alloy = 80, Ether = 40, BuildTime = 24, ProducedBy = DataType.BUILDING_AmberWomb }) .AddPart(new EntitySupplyModel { Takes = 3 }) - .AddPart(new EntityVitalityModel { Health = 120, DefenseLayer = 45, Armor = ArmorType.Medium }) - .AddPart(new EntityMovementModel { Speed = 350, Movement = MovementType.Ground }) + .AddPart(new EntityVitalityModel { Health = 180, DefenseLayer = 65, Armor = ArmorType.Medium }) + .AddPart(new EntityMovementModel { Speed = 500, Movement = MovementType.Ground }) .AddPart(new EntityWeaponModel - { Damage = 15, Range = 700, AttacksPerSecond = 0.909f, Targets = TargetType.Air }) + { Damage = 22, Range = 700, AttacksPerSecond = 1.4f, Targets = TargetType.Air }) .AddPart(new EntityWeaponModel - { Damage = 9, Range = 500, AttacksPerSecond = 0.714f, Targets = TargetType.Ground }) + { Damage = 9, Range = 500, AttacksPerSecond = 1.4f, Targets = TargetType.Ground }) .AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_GuidingAmber }) .AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_WraithBowRange }) }, @@ -1470,7 +1494,7 @@ public class DATA Cooldown = 6, Charges = 1, Targets = TargetType.Ground }) - .AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_BehemothCapacity }) + .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 }) @@ -1496,7 +1520,7 @@ public class DATA Name = "Greaves Of Ahqar", Descriptive = DescriptiveType.Upgrade, Description = "Increases the Sipari speed by 75." }) - .AddPart(new EntityHotkeyModel { Hotkey = "Q", HotkeyGroup = "TAB" }) + .AddPart(new EntityHotkeyModel { Hotkey = "Q", HotkeyGroup = "X" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityProductionModel { Alloy = 100, Ether = 100, BuildTime = 100, ProducedBy = DataType.BUILDING_Reliquary }) @@ -1516,7 +1540,7 @@ public class DATA Name = "Research Radiant Ward", Descriptive = DescriptiveType.Upgrade, Description = "Unlocks the dervish's Radiant Ward ability" }) - .AddPart(new EntityHotkeyModel { Hotkey = "R", HoldSpace = true, HotkeyGroup = "TAB" }) + .AddPart(new EntityHotkeyModel { Hotkey = "R", HoldSpace = true, HotkeyGroup = "X" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityProductionModel { Alloy = 80, Ether = 80, BuildTime = 34, ProducedBy = DataType.BUILDING_HouseOfFadingSaints }) @@ -1535,7 +1559,7 @@ public class DATA Name = "Fortified Icons", Descriptive = DescriptiveType.Upgrade, Description = "Sipari gain +20 shields, and Hallowed Ground grants an additional +20 shields." }) - .AddPart(new EntityHotkeyModel { Hotkey = "Q", HotkeyGroup = "TAB", HoldSpace = true }) + .AddPart(new EntityHotkeyModel { Hotkey = "Q", HotkeyGroup = "X", HoldSpace = true }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityProductionModel { Alloy = 100, Ether = 100, BuildTime = 43, ProducedBy = DataType.BUILDING_EyeOfAros }) @@ -1556,7 +1580,7 @@ public class DATA Name = "Faith-Cast Blades", Descriptive = DescriptiveType.Upgrade, Description = "Increases the range of the Zentari's ranged weapon." }) - .AddPart(new EntityHotkeyModel { Hotkey = "Q", HotkeyGroup = "TAB" }) + .AddPart(new EntityHotkeyModel { Hotkey = "Q", HotkeyGroup = "X" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityProductionModel { Alloy = 50, Ether = 100, BuildTime = 60, ProducedBy = DataType.BUILDING_Reliquary }) @@ -1573,7 +1597,7 @@ public class DATA Name = "Relic Of The Wrathful Gaze", Descriptive = DescriptiveType.Upgrade, Description = "Increases the Castigator's anti-air weapon range." }) - .AddPart(new EntityHotkeyModel { Hotkey = "W", HotkeyGroup = "TAB", HoldSpace = true }) + .AddPart(new EntityHotkeyModel { Hotkey = "W", HotkeyGroup = "X", HoldSpace = true }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityProductionModel { Alloy = 75, Ether = 75, BuildTime = 29, ProducedBy = DataType.BUILDING_HouseOfFadingSaints }) @@ -1588,7 +1612,7 @@ public class DATA new EntityModel(DataType.UPGRADE_WindStep, EntityType.Tech) .AddPart(new EntityInfoModel { Name = "Windstep", Descriptive = DescriptiveType.Upgrade, Description = "Unlocks windstep." }) - .AddPart(new EntityHotkeyModel { Hotkey = "W", HotkeyGroup = "TAB" }) + .AddPart(new EntityHotkeyModel { Hotkey = "W", HotkeyGroup = "X" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityProductionModel { Alloy = 50, Ether = 75, BuildTime = 55, ProducedBy = DataType.BUILDING_Reliquary }) @@ -1603,7 +1627,7 @@ public class DATA Name = "Zephyr Range", Descriptive = DescriptiveType.Upgrade, Description = "Increases Zephyr's range by 100." }) - .AddPart(new EntityHotkeyModel { Hotkey = "E", HotkeyGroup = "TAB" }) + .AddPart(new EntityHotkeyModel { Hotkey = "E", HotkeyGroup = "X" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityProductionModel { Alloy = 150, Ether = 100, BuildTime = 43, ProducedBy = DataType.BUILDING_Reliquary }) @@ -1620,7 +1644,7 @@ public class DATA Name = "Sirocco Script", Descriptive = DescriptiveType.Upgrade, Description = "Grant's the Dervish Sirocco Script" }) - .AddPart(new EntityHotkeyModel { Hotkey = "R", HotkeyGroup = "TAB" }) + .AddPart(new EntityHotkeyModel { Hotkey = "R", HotkeyGroup = "X" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityProductionModel { Alloy = 75, Ether = 100, BuildTime = 60, ProducedBy = DataType.BUILDING_HouseOfFadingSaints }) @@ -1638,7 +1662,7 @@ public class DATA Name = "Icon of Khast'Eem", Descriptive = DescriptiveType.Upgrade, Description = "Grants the Zentari shields and flat armor reduction." }) - .AddPart(new EntityHotkeyModel { Hotkey = "Q", HoldSpace = true, HotkeyGroup = "TAB" }) + .AddPart(new EntityHotkeyModel { Hotkey = "Q", HoldSpace = true, HotkeyGroup = "X" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityProductionModel { Alloy = 100, Ether = 100, BuildTime = 43, ProducedBy = DataType.BUILDING_EyeOfAros }) @@ -1658,7 +1682,7 @@ public class DATA Name = "Blades of the Godhead", Descriptive = DescriptiveType.Upgrade, Description = "Unlocks Blades of the Godhead" }) - .AddPart(new EntityHotkeyModel { Hotkey = "A", HoldSpace = true, HotkeyGroup = "TAB" }) + .AddPart(new EntityHotkeyModel { Hotkey = "A", HoldSpace = true, HotkeyGroup = "X" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityProductionModel { Alloy = 100, Ether = 75, BuildTime = 45, ProducedBy = DataType.BUILDING_BearerOfTheCrown }) @@ -1675,7 +1699,7 @@ public class DATA Name = "Wings of the Ken'Latir", Descriptive = DescriptiveType.Upgrade, Description = "Increases the Warden's speed and shields significantly." }) - .AddPart(new EntityHotkeyModel { Hotkey = "R", HoldSpace = true, HotkeyGroup = "TAB" }) + .AddPart(new EntityHotkeyModel { Hotkey = "R", HoldSpace = true, HotkeyGroup = "X" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityProductionModel { Alloy = 150, Ether = 100, BuildTime = 30, ProducedBy = DataType.BUILDING_EyeOfAros }) @@ -1695,7 +1719,7 @@ public class DATA Descriptive = DescriptiveType.Upgrade, Description = "Unlocks Offering" }) - .AddPart(new EntityHotkeyModel { Hotkey = "W", HotkeyGroup = "TAB" }) + .AddPart(new EntityHotkeyModel { Hotkey = "W", HotkeyGroup = "X" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) .AddPart(new EntityVanguardReplacedModel { ImmortalId = DataType.IMMORTAL_Xol, ReplacedById = DataType.UPGRADE_Stalk }) @@ -1717,7 +1741,7 @@ public class DATA new EntityModel(DataType.UPGRADE_BloodMothersFevor, EntityType.Tech) .AddPart(new EntityInfoModel { Name = "Blood Mother's Fevor", Descriptive = DescriptiveType.Upgrade }) - .AddPart(new EntityHotkeyModel { Hotkey = "CAPSLOCK", HotkeyGroup = "TAB" }) + .AddPart(new EntityHotkeyModel { Hotkey = "CAPSLOCK", HotkeyGroup = "X" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) .AddPart(new EntityVanguardReplacedModel { ImmortalId = DataType.IMMORTAL_Xol, ReplacedById = DataType.UPGRADE_Ambush }) @@ -1744,7 +1768,7 @@ public class DATA "Allows the Ichor to Stabilize to gain bonus shields and leave behind a region of difficult ground.", Descriptive = DescriptiveType.Upgrade }) - .AddPart(new EntityHotkeyModel { Hotkey = "E", HotkeyGroup = "TAB" }) + .AddPart(new EntityHotkeyModel { Hotkey = "E", HotkeyGroup = "X" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) .AddPart(new EntityRequirementModel { @@ -1763,7 +1787,7 @@ public class DATA Description = "Significantly increases the Ichor's movement speed.", Descriptive = DescriptiveType.Upgrade }) - .AddPart(new EntityHotkeyModel { Hotkey = "R", HotkeyGroup = "TAB" }) + .AddPart(new EntityHotkeyModel { Hotkey = "R", HotkeyGroup = "X" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) .AddPart(new EntityRequirementModel { @@ -1774,10 +1798,10 @@ public class DATA { Alloy = 75, Ether = 100, BuildTime = 60, ProducedBy = DataType.BUILDING_Neurocyte }) }, { - DataType.UPGRADE_ResinantDeploy, - new EntityModel(DataType.UPGRADE_ResinantDeploy, EntityType.Tech) - .AddPart(new EntityInfoModel { Name = "Resinant Deploy", Descriptive = DescriptiveType.Upgrade }) - .AddPart(new EntityHotkeyModel { Hotkey = "F", HotkeyGroup = "TAB" }) + DataType.UPGRADE_ResinantSpeed, + new EntityModel(DataType.UPGRADE_ResinantSpeed, EntityType.Tech) + .AddPart(new EntityInfoModel { Name = "Resinant Speed", Descriptive = DescriptiveType.Upgrade }) + .AddPart(new EntityHotkeyModel { Hotkey = "F", HotkeyGroup = "X" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) .AddPart(new EntityRequirementModel { @@ -1790,27 +1814,90 @@ public class DATA Requirement = RequirementType.Research_Building }) .AddPart(new EntityProductionModel - { Alloy = 50, Ether = 100, BuildTime = 43, ProducedBy = DataType.BUILDING_Neurocyte }) + { Alloy = 100, Ether = 100, BuildTime = 60, ProducedBy = DataType.BUILDING_Neurocyte }) }, + { - DataType.UPGRADE_XacalDamage, - new EntityModel(DataType.UPGRADE_XacalDamage, EntityType.Tech) - .AddPart(new EntityInfoModel { Name = "Xacal Damage", Descriptive = DescriptiveType.Upgrade }) - .AddPart(new EntityHotkeyModel { Hotkey = "Q", HotkeyGroup = "TAB" }) + DataType.UPGRADE_RootShepherdHidden, + new EntityModel(DataType.UPGRADE_RootShepherdHidden, EntityType.Tech) + .AddPart(new EntityInfoModel { Name = "Root Shepherd Hidden", Descriptive = DescriptiveType.Upgrade }) + .AddPart(new EntityHotkeyModel { Hotkey = "R", HotkeyGroup = "X", HoldSpace = true }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) .AddPart(new EntityRequirementModel { Id = DataType.BUILDING_Neurocyte, Requirement = RequirementType.Research_Building }) + .AddPart(new EntityRequirementModel + { + Id = DataType.BUILDING_AmberWomb, + Requirement = RequirementType.Research_Building + }) .AddPart(new EntityProductionModel - { Alloy = 100, Ether = 75, BuildTime = 60, ProducedBy = DataType.BUILDING_Neurocyte }) + { Alloy = 100, Ether = 100, BuildTime = 60, ProducedBy = DataType.BUILDING_Neurocyte }) + }, + + { + DataType.UPGRADE_RootShepherdSpeed, + new EntityModel(DataType.UPGRADE_RootShepherdSpeed, EntityType.Tech) + .AddPart(new EntityInfoModel { Name = "Root Shepherd Speed", Descriptive = DescriptiveType.Upgrade }) + .AddPart(new EntityHotkeyModel { Hotkey = "R", HotkeyGroup = "X", HoldSpace = true }) + .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) + .AddPart(new EntityRequirementModel + { + Id = DataType.BUILDING_Neurocyte, + Requirement = RequirementType.Research_Building + }) + .AddPart(new EntityRequirementModel + { + Id = DataType.BUILDING_AmberWomb, + Requirement = RequirementType.Research_Building + }) + .AddPart(new EntityProductionModel + { Alloy = 100, Ether = 100, BuildTime = 80, ProducedBy = DataType.BUILDING_Neurocyte }) }, + + { - DataType.UPGRADE_BehemothCapacity, - new EntityModel(DataType.UPGRADE_BehemothCapacity, EntityType.Tech) - .AddPart(new EntityInfoModel { Name = "Behemoth Capacity", Descriptive = DescriptiveType.Upgrade }) - .AddPart(new EntityHotkeyModel { Hotkey = "A", HotkeyGroup = "TAB", HoldSpace = true }) + DataType.UPGRADE_EthericFibers, + new EntityModel(DataType.UPGRADE_EthericFibers, EntityType.Tech) + .AddPart(new EntityInfoModel { Name = "Etheric Fibers", Descriptive = DescriptiveType.Upgrade }) + .AddPart(new EntityHotkeyModel { Hotkey = "Q", HotkeyGroup = "X" }) + .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) + .AddPart(new EntityRequirementModel + { + Id = DataType.BUILDING_Neurocyte, + Requirement = RequirementType.Research_Building + }) + .AddPart(new EntityProductionModel + { Alloy = 75, Ether = 100, BuildTime = 75, ProducedBy = DataType.BUILDING_Neurocyte }) + }, + + { + DataType.UPGRADE_ObstructingSwarm, + new EntityModel(DataType.UPGRADE_ObstructingSwarm, EntityType.Tech) + .AddPart(new EntityInfoModel { Name = "Obstructing Swarm", Descriptive = DescriptiveType.Upgrade }) + .AddPart(new EntityHotkeyModel { Hotkey = "E", HotkeyGroup = "X", HoldSpace = true}) + .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) + .AddPart(new EntityRequirementModel + { + Id = DataType.BUILDING_Neurocyte, + Requirement = RequirementType.Research_Building + }) + .AddPart(new EntityRequirementModel + { + Id = DataType.BUILDING_AmberWomb, + Requirement = RequirementType.Research_Building + }) + .AddPart(new EntityProductionModel + { Alloy = 150, Ether = 100, BuildTime = 100, ProducedBy = DataType.BUILDING_Neurocyte }) + }, + + { + DataType.UPGRADE_VitellineCysts, + new EntityModel(DataType.UPGRADE_VitellineCysts, EntityType.Tech) + .AddPart(new EntityInfoModel { Name = "Vitelline Cysts", Descriptive = DescriptiveType.Upgrade }) + .AddPart(new EntityHotkeyModel { Hotkey = "A", HotkeyGroup = "X", HoldSpace = true }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) .AddPart(new EntityRequirementModel { @@ -1818,18 +1905,18 @@ public class DATA Requirement = RequirementType.Research_Building }) .AddPart(new EntityProductionModel - { Alloy = 150, Ether = 150, BuildTime = 46, ProducedBy = DataType.BUILDING_DeepNest }) + { Alloy = 200, Ether = 200, BuildTime = 46, ProducedBy = DataType.BUILDING_DeepNest }) }, { - DataType.UPGRADE_WraithBowRange, - new EntityModel(DataType.UPGRADE_WraithBowRange, EntityType.Tech) + DataType.UPGRADE_EoxBowstring, + new EntityModel(DataType.UPGRADE_EoxBowstring, EntityType.Tech) .AddPart(new EntityInfoModel { - Name = "Wraith Bow Range", + Name = "Eox Bowstring", Description = "Increase's the range of the Wraith Bow anti-air attack.", Descriptive = DescriptiveType.Upgrade }) - .AddPart(new EntityHotkeyModel { Hotkey = "W", HotkeyGroup = "TAB", HoldSpace = true }) + .AddPart(new EntityHotkeyModel { Hotkey = "W", HotkeyGroup = "X", HoldSpace = true }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) .AddPart(new EntityRequirementModel { @@ -1837,7 +1924,27 @@ public class DATA Requirement = RequirementType.Research_Building }) .AddPart(new EntityProductionModel - { Alloy = 50, Ether = 75, BuildTime = 29, ProducedBy = DataType.BUILDING_Neurocyte }) + { Alloy = 50, Ether = 100, BuildTime = 29, ProducedBy = DataType.BUILDING_Neurocyte }) + }, + + { + DataType.UPGRADE_SporeBurst, + new EntityModel(DataType.UPGRADE_SporeBurst, EntityType.Tech) + .AddPart(new EntityInfoModel + { + Name = "Spore Burst", + Description = "Aerovores and Omnivores get area damage vs air units.", + Descriptive = DescriptiveType.Upgrade + }) + .AddPart(new EntityHotkeyModel { Hotkey = "S", HotkeyGroup = "X", HoldSpace = true }) + .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) + .AddPart(new EntityRequirementModel + { + Id = DataType.BUILDING_Neurocyte, + Requirement = RequirementType.Research_Building + }) + .AddPart(new EntityProductionModel + { Alloy = 100, Ether = 150, BuildTime = 64, ProducedBy = DataType.BUILDING_RootCradle }) }, { @@ -1849,7 +1956,7 @@ public class DATA Description = "Unlocks the Bone Stalker's Stabilize", Descriptive = DescriptiveType.Upgrade }) - .AddPart(new EntityHotkeyModel { Hotkey = "W", HotkeyGroup = "TAB", HoldSpace = false }) + .AddPart(new EntityHotkeyModel { Hotkey = "W", HotkeyGroup = "X", HoldSpace = false }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) .AddPart(new EntityRequirementModel { @@ -1872,7 +1979,7 @@ public class DATA "When Hidden, the Bone Stalker's next attack deals 200% damage. Attack range is permanetly increased by 100.", Descriptive = DescriptiveType.Upgrade }) - .AddPart(new EntityHotkeyModel { Hotkey = "CAPSLOCK", HotkeyGroup = "TAB", HoldSpace = false }) + .AddPart(new EntityHotkeyModel { Hotkey = "CAPSLOCK", HotkeyGroup = "X", HoldSpace = false }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) .AddPart(new EntityProductionModel { Alloy = 100, Ether = 125, BuildTime = 80, ProducedBy = DataType.BUILDING_RedVale }) @@ -1894,7 +2001,7 @@ public class DATA Name = "Blood Plague", Descriptive = DescriptiveType.Upgrade, Description = "Unlocks Blood Plague" }) - .AddPart(new EntityHotkeyModel { Hotkey = "F", HotkeyGroup = "TAB", HoldSpace = true }) + .AddPart(new EntityHotkeyModel { Hotkey = "F", HotkeyGroup = "X", HoldSpace = true }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) .AddPart(new EntityRequirementModel { @@ -1906,11 +2013,25 @@ public class DATA .AddPart(new EntityVanguardReplacedModel { ImmortalId = DataType.IMMORTAL_Xol, ReplacedById = DataType.ABILITY_BirthingStorm }) }, + { + DataType.UPGRADE_GodphageDamage, + new EntityModel(DataType.UPGRADE_GodphageDamage, EntityType.Tech) + .AddPart(new EntityInfoModel { Name = "Godphage Damage", Descriptive = DescriptiveType.Upgrade }) + .AddPart(new EntityHotkeyModel { Hotkey = "E", HotkeyGroup = "X" }) + .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) + .AddPart(new EntityRequirementModel + { + Id = DataType.BUILDING_DeepNest, + Requirement = RequirementType.Research_Building + }) + .AddPart(new EntityProductionModel + { Alloy = 250, Ether = 250, BuildTime = 100, ProducedBy = DataType.BUILDING_DeepNest }) + }, { DataType.UPGRADE_BirthingStorm, new EntityModel(DataType.UPGRADE_BirthingStorm, EntityType.Tech) .AddPart(new EntityInfoModel { Name = "Birthing Storm", Descriptive = DescriptiveType.Upgrade }) - .AddPart(new EntityHotkeyModel { Hotkey = "F", HotkeyGroup = "TAB", HoldSpace = true }) + .AddPart(new EntityHotkeyModel { Hotkey = "F", HotkeyGroup = "X", HoldSpace = true }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) .AddPart(new EntityRequirementModel { @@ -1922,6 +2043,36 @@ public class DATA .AddPart(new EntityVanguardAddedModel { ImmortalId = DataType.IMMORTAL_Mala, ReplaceId = DataType.ABILITY_BloodPlague }) }, + + { + DataType.UPGRADE_GENERIC_AruAttack1, + new EntityModel(DataType.UPGRADE_GENERIC_AruAttack1, EntityType.Tech) + .AddPart(new EntityInfoModel { Name = "Aru Attack Level 1", Descriptive = DescriptiveType.Upgrade }) + .AddPart(new EntityHotkeyModel { Hotkey = "A", HotkeyGroup = "X", HoldSpace = true }) + .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) + .AddPart(new EntityRequirementModel + { + Id = DataType.BUILDING_RedVale, + Requirement = RequirementType.Research_Building + }) + .AddPart(new EntityProductionModel + { Alloy = 125, Ether = 125, BuildTime = 114, ProducedBy = DataType.BUILDING_RootCradle }) + }, + + { + DataType.UPGRADE_GENERIC_AruDefense1, + new EntityModel(DataType.UPGRADE_GENERIC_AruDefense1, EntityType.Tech) + .AddPart(new EntityInfoModel { Name = "Aru Defense Level 1", Descriptive = DescriptiveType.Upgrade }) + .AddPart(new EntityHotkeyModel { Hotkey = "S", HotkeyGroup = "X", HoldSpace = true }) + .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) + .AddPart(new EntityRequirementModel + { + Id = DataType.BUILDING_RedVale, + Requirement = RequirementType.Research_Building + }) + .AddPart(new EntityProductionModel + { Alloy = 125, Ether = 125, BuildTime = 114, ProducedBy = DataType.BUILDING_RootCradle }) + }, // Passives // Neutral @@ -2176,7 +2327,7 @@ public class DATA Description = @"Increases Wraith Bow range against air." }) .AddPart(new EntityRequirementModel - { Id = DataType.UPGRADE_WraithBowRange, Requirement = RequirementType.Research_Upgrade }) + { Id = DataType.UPGRADE_EoxBowstring, Requirement = RequirementType.Research_Upgrade }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) }, @@ -2212,7 +2363,7 @@ public class DATA }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) .AddPart(new EntityRequirementModel - { Id = DataType.UPGRADE_BehemothCapacity, Requirement = RequirementType.Research_Upgrade }) + { Id = DataType.UPGRADE_VitellineCysts, Requirement = RequirementType.Research_Upgrade }) }, { @@ -2408,7 +2559,7 @@ public class DATA @"Xacal builds up charges for double damage overtime. These charges can be spent on attacking." }) .AddPart(new EntityRequirementModel - { Id = DataType.UPGRADE_XacalDamage, Requirement = RequirementType.Research_Upgrade }) + { Id = DataType.UPGRADE_EthericFibers, Requirement = RequirementType.Research_Upgrade }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) }, @@ -2687,6 +2838,7 @@ public class DATA .AddPart(new EntityHotkeyModel { Hotkey = "E", HotkeyGroup = "D" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) .AddPart(new EntityRequirementModel { Id = DataType.UPGRADE_Offering }) + .AddPart(new EntityProductionModel { Cooldown = 5 }) }, { DataType.ABILITY_DiveBomb, @@ -2734,10 +2886,10 @@ public class DATA .AddPart(new EntityInfoModel { Name = "Draining Embrace", Descriptive = DescriptiveType.Ability, - Description = "Units in the target area are rooted and lose mana." + Description = "Units in the target area are rooted and lose energy." }) .AddPart(new EntityHotkeyModel { Hotkey = "Q", HotkeyGroup = "D" }) - .AddPart(new EntityProductionModel { Energy = 25, Cooldown = 5 }) + .AddPart(new EntityProductionModel { Energy = 30, Cooldown = 5 }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) }, { @@ -2747,10 +2899,10 @@ public class DATA { Name = "Blood Plague", Descriptive = DescriptiveType.Ability, Description = - "Units that enter the target area suffer heavy damage over time. This damaging effect persists for a few seconds after leaving the plague area." + "Damage is based on maximum HP. Damage cannot kill a unit." }) .AddPart(new EntityHotkeyModel { Hotkey = "W", HotkeyGroup = "D" }) - .AddPart(new EntityProductionModel { Energy = 75, Cooldown = 8 }) + .AddPart(new EntityProductionModel { Energy = 90, Cooldown = 8 }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) }, { @@ -2759,9 +2911,9 @@ public class DATA .AddPart(new EntityInfoModel { Name = "Deploy Resinant", Descriptive = DescriptiveType.Ability, - Description = "Deploying the Resinant enables it to deal area of effect damage at long range." + Description = "Get even more attack range if deployed on Rootway. Deploying a unit makes it unable to move. Use Mobilize to move again." }) - .AddPart(new EntityHotkeyModel { Hotkey = "CAPSLOCK", HotkeyGroup = "D" }) + .AddPart(new EntityHotkeyModel { Hotkey = "F", HotkeyGroup = "D" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) }, { @@ -2776,6 +2928,26 @@ public class DATA .AddPart(new EntityHotkeyModel { Hotkey = "E", HoldSpace = true, HotkeyGroup = "D" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) }, + + { + DataType.ABILITY_BloodyRebound, + new EntityModel(DataType.ABILITY_BloodyRebound, EntityType.Ability) + .AddPart(new EntityInfoModel + { + Name = "Bloody Rebond", Descriptive = DescriptiveType.Ability, + Description = + """ + Active to prevent death for a duration. + Instead of dying, the Bloodbound will teleport to the place it was when the ability was activated. + It also takes less damage while Blood Rebound is active. + """ + }) + .AddPart(new EntityHotkeyModel { Hotkey = "R", HotkeyGroup = "D" }) + .AddPart(new EntityVanguardAddedModel { ImmortalId = DataType.IMMORTAL_Mala }) + .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) + .AddPart(new EntityProductionModel { Energy = 50, Cooldown = 40 }) + }, + { DataType.ABILITY_RootVice, new EntityModel(DataType.ABILITY_RootVice, EntityType.Ability) @@ -2817,7 +2989,7 @@ public class DATA .AddPart(new EntityHotkeyModel { Hotkey = "R", HoldSpace = true, HotkeyGroup = "D" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) .AddPart(new EntityVanguardAddedModel - { ImmortalId = DataType.IMMORTAL_Mala, ReplaceId = DataType.UNIT_Acaaluk }) + { ImmortalId = DataType.IMMORTAL_Mala, ReplaceId = DataType.UNIT_Godphage }) .AddPart(new EntityProductionModel { Energy = 80, BuildTime = 10, Cooldown = 45 }) .AddPart(new EntitySupplyModel { Takes = 0 }) .AddPart(new EntityVitalityModel @@ -2833,25 +3005,50 @@ public class DATA }) }, { - DataType.ABILITY_AwakenAcaaluk, - new EntityModel(DataType.ABILITY_AwakenAcaaluk, EntityType.Ability) + DataType.ABILITY_MorphToGodphage, + new EntityModel(DataType.ABILITY_MorphToGodphage, EntityType.Ability) .AddPart(new EntityInfoModel { - Name = "Awaken Acaaluk", Descriptive = DescriptiveType.Dislodger, - Description = "The red seer is sacrificed to create an acaaluk." + Name = "Morph To Godphage", Descriptive = DescriptiveType.Dislodger, + Description = "Active to morph a Red Seer into a Godphage" }) .AddPart(new EntityHotkeyModel { Hotkey = "R", HoldSpace = true, HotkeyGroup = "D" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) - .AddPart(new EntityProductionModel { Alloy = 100, BuildTime = 25 }) - .AddPart(new EntitySupplyModel { Takes = 6 }) + .AddPart(new EntityProductionModel { Alloy = 150, Energy = 100, BuildTime = 25 }) + .AddPart(new EntitySupplyModel { Takes = 8 }) .AddPart(new EntityRequirementModel { Id = DataType.UNIT_RedSeer, Requirement = RequirementType.Morph }) - .AddPart(new EntityVitalityModel { Health = 200, DefenseLayer = 60, Armor = ArmorType.Heavy }) - .AddPart(new EntityMovementModel { Speed = 210, Movement = MovementType.Ground }) + .AddPart(new EntityVitalityModel { Health = 225, DefenseLayer = 375, Armor = ArmorType.Heavy }) + .AddPart(new EntityMovementModel { Speed = 350, Movement = MovementType.Ground }) .AddPart(new EntityWeaponModel - { Damage = 125, Range = 1500, AttacksPerSecond = 0.175f, Targets = TargetType.Ground }) + { Damage = 155, Range = 1100, SecondsBetweenAttacks = 7f, Targets = TargetType.Ground }) .AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_HiddenX }) + .AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_GodphageDamage }) + + }, + + { + DataType.ABILITY_DeepTunnel, + new EntityModel(DataType.ABILITY_DeepTunnel, EntityType.Ability) + .AddPart(new EntityInfoModel + { + Name = "Deep Tunnel", + }) + .AddPart(new EntityHotkeyModel { Hotkey = "TAB", HoldSpace = true, HotkeyGroup = "D" }) + .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) + }, + + { + DataType.ABILITY_ObstructingSwarm, + new EntityModel(DataType.ABILITY_ObstructingSwarm, EntityType.Ability) + .AddPart(new EntityInfoModel + { + Name = "Obstructing Swarm", + }) + .AddPart(new EntityHotkeyModel { Hotkey = "E", HoldSpace = true, HotkeyGroup = "D" }) + .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) }, + // Pyre Spells // Q'Rath { @@ -2991,9 +3188,9 @@ public class DATA }) .AddPart(new EntityHotkeyModel { Hotkey = "Q", HotkeyGroup = "V" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) - .AddPart(new EntityProductionModel { Pyre = 75, BuildTime = 70 }) + .AddPart(new EntityProductionModel { Pyre = 50, BuildTime = 70 }) .AddPart(new EntityVitalityModel - { Health = 1200, DefenseLayer = 200, Armor = ArmorType.Heavy, IsStructure = true }) + { Health = 1850, DefenseLayer = 450, Armor = ArmorType.Heavy, IsStructure = true }) .AddPart(new EntityWeaponModel { Damage = 15, Range = 800, AttacksPerSecond = 1.887f, Targets = TargetType.All }) .AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_Respite }) @@ -3017,6 +3214,100 @@ public class DATA .AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_Transfusion }) .AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_Rootway }) }, + // Atzlan + { + DataType.ISPELL_ProphetOfTheRoots, + new EntityModel(DataType.ISPELL_ProphetOfTheRoots, EntityType.Pyre_Spell) + .AddPart(new EntityInfoModel + { + Name = "Prophet Of The Roots", + Description = + "Moves Atzlan to target Root Bud. Blesses the Root Bud to give units nearby more overgrowth Atzlan heals nearby units." + }) + .AddPart(new EntityHotkeyModel { Hotkey = "W", HotkeyGroup = "V" }) + .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) + .AddPart(new EntityProductionModel { Pyre = 25, Cooldown = 3 }) + .AddPart(new EntityVitalityModel + { Health = 25, DefenseLayer = 50, Armor = ArmorType.Heavy, IsStructure = true }) + }, + + { + DataType.ISPELL_ProphetOfTheRoots, + new EntityModel(DataType.ISPELL_ProphetOfTheRoots, EntityType.Pyre_Spell) + .AddPart(new EntityInfoModel + { + Name = "Wall of Roots", + Description = + """Spawns a Wall of Roots that blocks ground pathing. Click and drag to "draw" the wall. Wall takes damage over time when it's off rootway.""" + }) + .AddPart(new EntityHotkeyModel { Hotkey = "R", HotkeyGroup = "V" }) + .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) + .AddPart(new EntityProductionModel { Pyre = 50, Cooldown = 10 }) + .AddPart(new EntityVitalityModel + { Health = 25, DefenseLayer = 50, Armor = ArmorType.Heavy, IsStructure = true }) + }, + + { + DataType.ISPELL_WallOfRoots, + new EntityModel(DataType.ISPELL_WallOfRoots, EntityType.Pyre_Spell) + .AddPart(new EntityInfoModel + { + Name = "Wall of Roots", + Description = + """ + Spawn a Wall of Roots that blocks ground pathing + + Click and drag to "draw" the wall. Wall takes damage over time when it's off rootway. + """ + }) + .AddPart(new EntityHotkeyModel { Hotkey = "E", HotkeyGroup = "V" }) + .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) + .AddPart(new EntityProductionModel { Pyre = 50, Cooldown = 10 }) + .AddPart(new EntityVitalityModel + { Health = 25, DefenseLayer = 50, Armor = ArmorType.Heavy, IsStructure = true }) + }, + + { + DataType.ISPELL_SummonDeepWyrm, + new EntityModel(DataType.ISPELL_SummonDeepWyrm, EntityType.Pyre_Spell) + .AddPart(new EntityInfoModel + { + Name = "Summon Deep Wyrm", + Description = + """ + The Deep Wyrm roams in the area and attacks any ground enemy unit entering the rootway. + + Spawns rootway on summon. The Deep Wyrm is invulnerable and uncontrollable. + """ + }) + .AddPart(new EntityHotkeyModel { Hotkey = "R", HotkeyGroup = "V" }) + .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) + .AddPart(new EntityProductionModel { Pyre = 150, Cooldown = 55 }) + .AddPart(new EntityVitalityModel + { Health = 25, DefenseLayer = 50, Armor = ArmorType.Heavy, IsStructure = true }) + }, + + { + DataType.ISPELL_SummonRootBud, + new EntityModel(DataType.ISPELL_SummonRootBud, EntityType.Pyre_Spell) + .AddPart(new EntityInfoModel + { + Name = "Summon Root Bud", + Description = + """ + Generates Rootway + + Must be placed on Rootway and in range of another Root Bud or Stronghold + """ + }) + .AddPart(new EntityHotkeyModel { Hotkey = "F", HotkeyGroup = "V" }) + .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) + .AddPart(new EntityProductionModel { Cooldown = 25 }) + .AddPart(new EntityVitalityModel + { Health = 25, DefenseLayer = 50, Armor = ArmorType.Heavy, IsStructure = true }) + }, + + // Mala { DataType.ISPELL_RedHarvest, @@ -3410,7 +3701,7 @@ public class DATA }) //TODO: Add Alloy, Ether and Pyre, Supply to the database .AddPart(new EntityHotkeyModel { Hotkey = "F", HotkeyGroup = "C" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) - .AddPart(new EntityProductionModel { Alloy = 350, BuildTime = 100, RequiresWorker = true }) + .AddPart(new EntityProductionModel { Alloy = 500, BuildTime = 90, RequiresWorker = true }) .AddPart(new EntityVitalityModel { Health = 2000, DefenseLayer = 400, Defense = DefenseType.Overgrowth, Armor = ArmorType.Heavy, @@ -3430,7 +3721,7 @@ public class DATA .AddPart(new EntityHotkeyModel { Hotkey = "Q", HotkeyGroup = "CONTROL" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) .AddPart(new EntityVitalityModel - { Health = 2200, DefenseLayer = 500, Armor = ArmorType.Heavy, IsStructure = true }) + { Health = 3100, DefenseLayer = 900, Armor = ArmorType.Heavy, IsStructure = true }) .AddPart(new EntityRequirementModel { Id = DataType.STARTING_TownHall_Aru, @@ -3499,9 +3790,9 @@ public class DATA }) //TODO Add Ether Node to database .AddPart(new EntityHotkeyModel { Hotkey = "CAPSLOCK", HotkeyGroup = "C" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) - .AddPart(new EntityProductionModel { Alloy = 100, BuildTime = 30, RequiresWorker = true }) + .AddPart(new EntityProductionModel { Alloy = 225, BuildTime = 30, RequiresWorker = true }) .AddPart(new EntityVitalityModel - { Health = 400, DefenseLayer = 100, Armor = ArmorType.Heavy, IsStructure = true }) + { Health = 400, DefenseLayer = 225, Armor = ArmorType.Heavy, IsStructure = true }) .AddPart(new EntityHarvestModel { HarvestedPerInterval = 1.5625f, RequiresWorker = false, Resource = ResourceType.Ether, @@ -3521,7 +3812,7 @@ public class DATA .AddPart(new EntitySupplyModel { Grants = 16 }) .AddPart(new EntityProductionModel { Alloy = 250, BuildTime = 36, RequiresWorker = true }) .AddPart(new EntityVitalityModel - { Health = 900, DefenseLayer = 300, Armor = ArmorType.Heavy, IsStructure = true }) + { Health = 1000, DefenseLayer = 500, Armor = ArmorType.Heavy, IsStructure = true }) .AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_Rootway }) }, { @@ -3542,7 +3833,27 @@ public class DATA Requirement = RequirementType.Production_Building }) .AddPart(new EntityVitalityModel - { Health = 650, DefenseLayer = 150, Armor = ArmorType.Heavy, IsStructure = true }) + { Health = 800, DefenseLayer = 200, Armor = ArmorType.Heavy, IsStructure = true }) + }, + { + DataType.BUILDING_RootCradle, + new EntityModel(DataType.BUILDING_RootCradle, EntityType.Building) + .AddPart(new EntityInfoModel + { + Name = "Root Cradle", Descriptive = DescriptiveType.Research, + Description = "Research (Structure) - Unlocks additional research." + }) + .AddPart(new EntityHotkeyModel { Hotkey = "Tab", HoldSpace = true, HotkeyGroup = "C" }) + .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) + .AddPart(new EntityProductionModel + { Alloy = 150, Ether = 0, BuildTime = 30, RequiresWorker = true }) + .AddPart(new EntityRequirementModel + { + Id = DataType.BUILDING_AltarOfTheWorthy, + Requirement = RequirementType.Production_Building + }) + .AddPart(new EntityVitalityModel + { Health = 900, DefenseLayer = 300, Armor = ArmorType.Heavy, IsStructure = true }) }, { DataType.DEFENSE_Aerovore, @@ -3554,11 +3865,11 @@ public class DATA }) .AddPart(new EntityHotkeyModel { Hotkey = "Q", HotkeyGroup = "C" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) - .AddPart(new EntityProductionModel { Alloy = 100, BuildTime = 18, RequiresWorker = true }) + .AddPart(new EntityProductionModel { Alloy = 75, BuildTime = 18, RequiresWorker = true }) .AddPart(new EntityVitalityModel - { Health = 300, DefenseLayer = 50, Armor = ArmorType.Heavy, IsStructure = true }) + { Health = 300, DefenseLayer = 150, Armor = ArmorType.Heavy, IsStructure = true }) .AddPart(new EntityWeaponModel - { Damage = 24, Range = 700, AttacksPerSecond = 1.639f, Targets = TargetType.Air }) + { Damage = 65, Range = 700, SecondsBetweenAttacks = 1.35f, Targets = TargetType.Air }) }, { DataType.BUPGRADE_Omnivore, @@ -3571,14 +3882,14 @@ public class DATA Id = DataType.DEFENSE_Aerovore, Requirement = RequirementType.Morph }) - .AddPart(new EntityProductionModel { Alloy = 50, BuildTime = 18, RequiresWorker = false }) + .AddPart(new EntityProductionModel { Alloy = 75, BuildTime = 18, RequiresWorker = false }) .AddPart(new EntityVitalityModel - { Health = 400, DefenseLayer = 50, Armor = ArmorType.Heavy, IsStructure = true }) + { Health = 400, DefenseLayer = 150, Armor = ArmorType.Heavy, IsStructure = true }) .AddPart(new EntityWeaponModel - { Damage = 24, Range = 700, AttacksPerSecond = 1.639f, Targets = TargetType.Air }) + { Damage = 65, Range = 700, SecondsBetweenAttacks = 1.35f, Targets = TargetType.Air }) .AddPart(new EntityWeaponModel { - Damage = 12, MediumDamage = 14, HeavyDamage = 16, Range = 700, AttacksPerSecond = 2.439f, + Damage = 52, MediumDamage = 61, HeavyDamage = 70, Range = 700, SecondsBetweenAttacks = 1.35f, Targets = TargetType.Ground }) }, @@ -3593,7 +3904,7 @@ public class DATA .AddPart(new EntityHotkeyModel { Hotkey = "E", HotkeyGroup = "C" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) .AddPart(new EntityProductionModel - { Alloy = 250, Ether = 80, BuildTime = 45, RequiresWorker = true }) + { Alloy = 300, Ether = 100, BuildTime = 42, RequiresWorker = true }) .AddPart(new EntitySupplyModel { Grants = 16 }) .AddPart(new EntityRequirementModel { @@ -3606,7 +3917,7 @@ public class DATA Requirement = RequirementType.Research_Building }) .AddPart(new EntityVitalityModel - { Health = 950, DefenseLayer = 300, Armor = ArmorType.Heavy, IsStructure = true }) + { Health = 1000, DefenseLayer = 600, Armor = ArmorType.Heavy, IsStructure = true }) .AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_Rootway }) }, { @@ -3620,7 +3931,7 @@ public class DATA .AddPart(new EntityHotkeyModel { Hotkey = "R", HotkeyGroup = "C" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) .AddPart(new EntityProductionModel - { Alloy = 250, Ether = 80, BuildTime = 36, RequiresWorker = true }) + { Alloy = 300, Ether = 150, BuildTime = 42, RequiresWorker = true }) .AddPart(new EntitySupplyModel { Grants = 16 }) .AddPart(new EntityRequirementModel { @@ -3628,9 +3939,29 @@ public class DATA Requirement = RequirementType.Research_Building }) .AddPart(new EntityVitalityModel - { Health = 950, DefenseLayer = 300, Armor = ArmorType.Heavy, IsStructure = true }) + { Health = 1100, DefenseLayer = 650, Armor = ArmorType.Heavy, IsStructure = true }) .AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_Rootway }) }, + { + DataType.BUILDING_MurderHollow, + new EntityModel(DataType.BUILDING_MurderHollow, EntityType.Building) + .AddPart(new EntityInfoModel + { + Name = "Murder Hollow", Descriptive = DescriptiveType.Research, + Description = "Unlocks Ichor training and research." + }) + .AddPart(new EntityHotkeyModel { Hotkey = "W", HoldSpace = true, HotkeyGroup = "C" }) + .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) + .AddPart(new EntityProductionModel + { Alloy = 75, Ether = 50, BuildTime = 45, RequiresWorker = true }) + .AddPart(new EntityRequirementModel + { + Id = DataType.BUILDING_AltarOfTheWorthy, + Requirement = RequirementType.Production_Building + }) + .AddPart(new EntityVitalityModel + { Health = 1000, DefenseLayer = 400, Armor = ArmorType.Heavy, IsStructure = true }) + }, { DataType.BUILDING_RedVale, new EntityModel(DataType.BUILDING_RedVale, EntityType.Building) @@ -3639,17 +3970,17 @@ public class DATA Name = "Red Vale", Descriptive = DescriptiveType.Research, Description = "Unlocks the advanced units at the Altar of the Worthy." }) - .AddPart(new EntityHotkeyModel { Hotkey = "W", HoldSpace = true, HotkeyGroup = "C" }) + .AddPart(new EntityHotkeyModel { Hotkey = "E", HoldSpace = true, HotkeyGroup = "C" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) .AddPart(new EntityProductionModel - { Alloy = 100, Ether = 100, BuildTime = 36, RequiresWorker = true }) + { Alloy = 150, Ether = 175, BuildTime = 60, RequiresWorker = true }) .AddPart(new EntityRequirementModel { Id = DataType.BUILDING_AltarOfTheWorthy, Requirement = RequirementType.Production_Building }) .AddPart(new EntityVitalityModel - { Health = 800, DefenseLayer = 200, Armor = ArmorType.Heavy, IsStructure = true }) + { Health = 1000, DefenseLayer = 500, Armor = ArmorType.Heavy, IsStructure = true }) }, { DataType.BUILDING_DeepNest, @@ -3662,14 +3993,14 @@ public class DATA .AddPart(new EntityHotkeyModel { Hotkey = "R", HoldSpace = true, HotkeyGroup = "C" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) .AddPart(new EntityProductionModel - { Alloy = 175, Ether = 150, BuildTime = 38, RequiresWorker = true }) + { Alloy = 225, Ether = 175, BuildTime = 70, RequiresWorker = true }) .AddPart(new EntityRequirementModel { Id = DataType.BUILDING_BoneCanopy, Requirement = RequirementType.Research_Building }) .AddPart(new EntityVitalityModel - { Health = 850, DefenseLayer = 200, Armor = ArmorType.Heavy, IsStructure = true }) + { Health = 1000, DefenseLayer = 500, Armor = ArmorType.Heavy, IsStructure = true }) }, { DataType.NEUTRAL_PyreMiner, diff --git a/Model/Entity/Data/Ids_Entity.cs b/Model/Entity/Data/Ids_Entity.cs index a085c03..2aa8de1 100644 --- a/Model/Entity/Data/Ids_Entity.cs +++ b/Model/Entity/Data/Ids_Entity.cs @@ -70,6 +70,12 @@ public static class DataType public static string ISPELL_HuntingGrounds = "a6e5e18a-542e-4c41-a25e-00dd115f5223"; public static string ISPELL_MarkPrey = "8505419c-bb42-41fa-9c5b-fc0db280d7c0"; public static string ISPELL_TheGreatHunt = "efa14586-33f0-487f-b691-1ed3bcd5b0e6"; + + public static string ISPELL_ProphetOfTheRoots = nameof(ISPELL_ProphetOfTheRoots); + public static string ISPELL_WallOfRoots = nameof(ISPELL_WallOfRoots); + public static string ISPELL_SummonDeepWyrm = nameof(ISPELL_SummonDeepWyrm); + public static string ISPELL_SummonRootBud = nameof(ISPELL_SummonRootBud); + public static string IPASSIVE_AjarisGrace = "3ec17526-8dc5-4592-9c15-ef1d9b1ca2f6"; public static string IPASSIVE_OrdainedConquest = "b6cd4335-2165-44c3-b3dc-4500c0111870"; @@ -79,33 +85,35 @@ public static class DataType public static string BUILDING_Acropolis = "ee1498cf-3c8c-4793-8869-5e097fe4d372"; public static string BUILDING_ApostleOfBinding = "87198418-ad47-455e-bd08-e42a5b2ecde1"; - public static string BUILDING_GroveHeart = "9b3f8795-d988-4b5f-92ce-090e4f598cea"; - public static string BUILDING_EtherMaw = "430d05b8-0c3e-4aa9-a4ff-631c7715a1fd"; + public static string BUILDING_GroveHeart = nameof(BUILDING_GroveHeart); + public static string BUILDING_EtherMaw = nameof(BUILDING_EtherMaw); public static string BUPGRADE_MiningLevel2_QRath = "d7beb217-8eaf-4f88-8882-05bd7e0fbebd"; public static string BUPGRADE_MiningLevel3_QRath = "2b7d0da9-a897-4d3e-b9bd-3ec4a7c95d2c"; public static string BUPGRADE_MiningLevel2_Aru = "ffa76506-470b-4a67-acc6-3dc9686df004"; public static string BUPGRADE_MiningLevel3_Aru = "010b3279-472d-4d54-9a85-ebc5c664ee73"; - public static string BUPGRADE_GodHeart = "45bf16e8-0336-4b5c-9fdd-16022ee9b985"; - public static string BUPGRADE_Omnivore = "54dd873e-32f3-40c0-9393-2cfdd5eb3a2f"; + public static string BUPGRADE_GodHeart = nameof(BUPGRADE_GodHeart); + public static string BUPGRADE_Omnivore = nameof(BUPGRADE_Omnivore); public static string BUILDING_LegionHall = "713dfa80-06cd-489a-bfb2-342b58ece4d1"; public static string BUILDING_SoulFoundry = "f884c445-3872-49e4-a236-f69ff8ba800d"; public static string BUILDING_Angelarium = "f0c8d993-7c1b-4b6b-91a8-69bd5d6dcb0c"; - public static string BUILDING_AltarOfTheWorthy = "072bf955-0395-4783-8b77-1abe56f3873d"; - public static string BUILDING_AmberWomb = "b10995c3-c8fb-4455-87b7-4550d25f2c2b"; - public static string BUILDING_BoneCanopy = "1b08bb64-d4b5-483c-b3ab-caad8692674a"; + public static string BUILDING_AltarOfTheWorthy = nameof(BUILDING_AltarOfTheWorthy); + public static string BUILDING_AmberWomb = nameof(BUILDING_AmberWomb); + public static string BUILDING_BoneCanopy = nameof(BUILDING_BoneCanopy); public static string BUILDING_Reliquary = "21e40775-3480-46ac-a66a-139528d846db"; public static string BUILDING_HouseOfFadingSaints = "94ace260-b151-44e3-b16f-bc30124555a6"; public static string BUILDING_EyeOfAros = "d07e212d-fae3-436b-a67e-ad5de00b87c4"; public static string BUILDING_BearerOfTheCrown = "4341d0c0-1ead-47f0-a322-1e80ca370cce"; - public static string BUILDING_RedVale = "47e4ab2a-2ea4-4da4-99cb-a8133b656a58"; - public static string BUILDING_DeepNest = "3076ae6e-89bf-4ea1-a66c-ea45ffcb4046"; - public static string BUILDING_Neurocyte = "90c6e53f-0430-4992-a1eb-4f91699292cb"; + public static string BUILDING_RedVale = nameof(BUILDING_RedVale); + public static string BUILDING_DeepNest = nameof(BUILDING_DeepNest); + public static string BUILDING_MurderHollow = nameof(BUILDING_MurderHollow); + public static string BUILDING_Neurocyte = nameof(BUILDING_Neurocyte); + public static string BUILDING_RootCradle = nameof(BUILDING_RootCradle); public static string DEFENSE_FireSinger = "c7a90286-6977-4d92-91e0-2a0a46eb13ea"; public static string BUILDING_KeeperOfTheHardenedFlames = "db784823-5199-4bae-bc5e-96174490cd00"; - public static string DEFENSE_Aerovore = "b68307b7-4759-43a3-8679-d844ac3aa73f"; + public static string DEFENSE_Aerovore = nameof(DEFENSE_Aerovore); public static string UPGRADE_GreavesOfAhqar = "eac602b3-e3ae-4e36-aa14-28532e3485a7"; @@ -123,12 +131,20 @@ public static class DataType public static string UPGRADE_BloodMothersFevor = nameof(UPGRADE_BloodMothersFevor); public static string UPGRADE_DenInstinct = "1a3c6180-9c43-43f9-b1a4-8499ffda4f2b"; public static string UPGRADE_PursuitLigaments = "51a4e848-ae67-4182-9c1f-27cb24e9c531"; - public static string UPGRADE_XacalDamage = "f10b8f7a-0c52-4e78-8d7d-002ac14e8862"; - public static string UPGRADE_ResinantDeploy = "29f49353-8fdf-4c5d-b034-37f96447dedb"; - public static string UPGRADE_WraithBowRange = "80c09dc3-28a5-48cf-886e-c7f5a52f6b47"; - public static string UPGRADE_BehemothCapacity = "d0390dd2-d9a5-4b20-9d8b-f554f4c52143"; + public static string UPGRADE_EthericFibers = nameof(UPGRADE_EthericFibers); + public static string UPGRADE_ObstructingSwarm = nameof(UPGRADE_ObstructingSwarm); + public static string UPGRADE_ResinantSpeed = nameof(UPGRADE_ResinantSpeed); + public static string UPGRADE_RootShepherdHidden = nameof(UPGRADE_RootShepherdHidden); + public static string UPGRADE_RootShepherdSpeed = nameof(UPGRADE_RootShepherdSpeed); + public static string UPGRADE_EoxBowstring = nameof(UPGRADE_EoxBowstring); + public static string UPGRADE_SporeBurst = nameof(UPGRADE_SporeBurst); + public static string UPGRADE_VitellineCysts = nameof(UPGRADE_VitellineCysts); public static string UPGRADE_BloodPlague = "9c207e21-f595-49d0-967d-f30ca8cc3745"; public static string UPGRADE_BirthingStorm = "0cb2f1a4-03b3-491b-9db3-d2d4590ede3a"; + public static string UPGRADE_GodphageDamage = nameof(UPGRADE_GodphageDamage); + + public static string UPGRADE_GENERIC_AruAttack1 = nameof(UPGRADE_GENERIC_AruAttack1); + public static string UPGRADE_GENERIC_AruDefense1 = nameof(UPGRADE_GENERIC_AruDefense1); public static string UPGRADE_RadiantWard = "c8acc6d0-9f26-475a-aff4-4e2b2f9657f2"; @@ -222,19 +238,24 @@ public static class DataType public static string ABILITY_DeployAbsolver = "c9b5c9c3-6336-4ffe-86d2-e0a9344726c8"; public static string ABILITY_Awestrike = "6282b1c3-b11b-43f2-9ce9-b3b300b1f2fa"; public static string ABILITY_MobilizeQrath = "5b64793e-55eb-4fa2-86d8-ccc5db55465c"; - public static string ABILITY_Offering = "ca2f92b5-3bbe-4b35-a4ba-f7b8b7d3bb1a"; - public static string ABILITY_DiveBomb = "1699824c-1d65-4862-bb13-776123b0341a"; + + public static string ABILITY_Offering = nameof(ABILITY_Offering); + public static string ABILITY_DiveBomb = nameof(ABILITY_DiveBomb); public static string ABILITY_CullingStrike = "b43396de-b7e4-4b87-af74-21522a888af3"; public static string ABILITY_LethalBond = "07a4ff49-3f19-4c9d-8b86-a3374eb9a139"; - public static string ABILITY_DrainingEmbrace = "243c9a28-8d26-49fe-82b8-b07ce0e6ee0d"; - public static string ABILITY_BloodPlague = "11444d33-cbe9-4e7d-a00b-02d5385d508e"; + public static string ABILITY_DrainingEmbrace = nameof(ABILITY_DrainingEmbrace); + public static string ABILITY_BloodPlague = nameof(ABILITY_BloodPlague); public static string ABILITY_DeployMobilizeResinant = "15fb784f-8cb7-4693-9485-242a6003e4da"; public static string ABILITY_DeployMobilizeUnderSpine = "e79f3483-cca0-4de3-9a09-4d98fdbaf792"; public static string ABILITY_MobilizeAru = "c911d368-55b0-4f16-a75d-65759f56e688"; + public static string ABILITY_BloodyRebound = nameof(ABILITY_BloodyRebound); public static string ABILITY_RootVice = "b3d7099e-5034-4416-b1e9-2f34eb2d30a9"; public static string ABILITY_BirthingStorm = "ba85a10c-eeff-4f44-abd7-09fc976c558c"; public static string ABILITY_SummonSiegeMaw = "26196eef-906d-4aeb-b51b-d6cdc717618c"; - public static string ABILITY_AwakenAcaaluk = "59e1513a-ea79-4c4c-bb58-2bd997416f6a"; + public static string ABILITY_MorphToGodphage = nameof(ABILITY_MorphToGodphage); + public static string ABILITY_DeepTunnel = nameof(ABILITY_DeepTunnel); + public static string ABILITY_ObstructingSwarm = nameof(ABILITY_ObstructingSwarm); + public static string VANGUARD_Zentari_Orzum = "de078e4e-9bab-4b30-8831-a6087abf1793"; public static string VANGUARD_Sceptre_Orzum = "ceaf26f7-4463-4bae-aab9-0c7ab7c19cfc"; public static string VANGUARD_ArkMother_Ajari = "80a336fe-f5a9-4acb-b618-0bbef345691e"; @@ -246,7 +267,7 @@ public static class DataType public static string VANGUARD_DreadSister_Mala = "7999270f-365b-4ddd-b3b7-6e214a4c1249"; public static string VANGUARD_Incubator_Mala = "60d7957e-66a3-4f58-8e8f-46df134e580d"; public static string WORKER_Mote = "a02a0194-2a36-4d61-aa2a-52ae918347d4"; - public static string WORKER_Symbiote = "eeac56bf-8ad0-4752-9bed-00f42f4e09d5"; + public static string WORKER_Symbiote = nameof(WORKER_Symbiote); public static string UNIT_Sipari = "2053c402-9238-48eb-8991-bfb5f3a50f60"; public static string UNIT_Zephyr = "53524b19-5846-4150-a984-69a047c19fe1"; public static string UNIT_Magi = "5516ffc4-2e07-4f2a-bf40-52a1beb7c247"; @@ -259,16 +280,16 @@ public static class DataType public static string UNIT_Throne = "319c7c58-cb4e-4f33-8028-6bc14b8cbedc"; public static string UNIT_SharU = "f46097a6-ebb4-42c9-aaf3-c1c3b2c9091f"; public static string UNIT_MaskedHunter = nameof(UNIT_MaskedHunter); - public static string UNIT_Bloodbound = "4197e7e3-3496-4459-bf56-780e61232fe1"; + public static string UNIT_Bloodbound = nameof(UNIT_Bloodbound); public static string UNIT_BloodAnchor = nameof(UNIT_BloodAnchor); - public static string UNIT_Xacal = "d49b0d2c-aa9b-4142-a9f1-21e0360f3f2e"; - public static string UNIT_RedSeer = "dce30e51-4f5b-4cc2-8d39-9b469b05e151"; - public static string UNIT_Acaaluk = "cdc0398d-0173-4c8a-808c-053192712f05"; + public static string UNIT_Xacal = nameof(UNIT_Xacal); + public static string UNIT_RedSeer = nameof(UNIT_RedSeer); + public static string UNIT_Godphage = "cdc0398d-0173-4c8a-808c-053192712f05"; public static string UNIT_Ichor = "ff4355f1-ac0c-4ea1-8a47-ef6791252bb9"; - public static string UNIT_WraithBow = "775f08e8-d40d-45a9-93c5-69709de10c37"; - public static string UNIT_Underspine = "03f54c91-0bf0-4006-8372-ac090f606e7a"; - public static string UNIT_Aarox = "56669268-2172-4792-aa17-574c54c7fded"; - public static string UNIT_Thrum = "5fa85c8e-5e61-4c07-ab74-6bf58048c219"; + public static string UNIT_WraithBow = nameof(UNIT_WraithBow); + public static string UNIT_Underspine = nameof(UNIT_Underspine); + public static string UNIT_Aarox = nameof(UNIT_Aarox); + public static string UNIT_Thrum = nameof(UNIT_Thrum); public static string UNIT_Behemoth = "3783004b-65fd-4e4e-bef0-4cf161ea2d2d"; public static string SUMMON_Quitl = "d554fb2a-eec5-45fd-bf36-a52d51e615e2"; } \ No newline at end of file diff --git a/Model/Entity/Parts/EntityWeaponModel.cs b/Model/Entity/Parts/EntityWeaponModel.cs index 1ca9877..02d5730 100644 --- a/Model/Entity/Parts/EntityWeaponModel.cs +++ b/Model/Entity/Parts/EntityWeaponModel.cs @@ -9,6 +9,7 @@ public class EntityWeaponModel : IEntityPartInterface public virtual EntityModel EntityModel { get; set; } public int Range { get; set; } = 40; + public int MinimumRange { get; set; } = 0; public float AttacksPerSecond { get; set; } = 0; public float SecondsBetweenAttacks { get; set; } = 0; diff --git a/Model/Entity/Types/MovementType.cs b/Model/Entity/Types/MovementType.cs index 41eb2d8..dc00ffd 100644 --- a/Model/Entity/Types/MovementType.cs +++ b/Model/Entity/Types/MovementType.cs @@ -3,5 +3,6 @@ public static class MovementType { public static string Ground = "Ground"; + public static string Hover = "Hover"; public static string Air = "Air"; } \ No newline at end of file