From b02232855d1682451c1eca4451d9862b91b79089 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 11 Jun 2025 11:51:57 -0400 Subject: [PATCH] More information --- Model/Entity/Data/DATA.cs | 566 ++++++++++++++++++-------- Model/Entity/Data/Ids_Entity.cs | 99 +++-- Model/Entity/Parts/EntityInfoModel.cs | 1 + 3 files changed, 450 insertions(+), 216 deletions(-) diff --git a/Model/Entity/Data/DATA.cs b/Model/Entity/Data/DATA.cs index 989e649..c334950 100644 --- a/Model/Entity/Data/DATA.cs +++ b/Model/Entity/Data/DATA.cs @@ -461,9 +461,18 @@ public class DATA new EntityModel(DataType.VANGUARD_Zentari_Orzum, EntityType.Army) .AddPart(new EntityInfoModel { - Name = "Zentari", Descriptive = DescriptiveType.Frontliner, + Name = + "Zentari", + Descriptive = DescriptiveType.Frontliner, Description = - "Brawler (Ground Unit) - Juggernaut infantry that gain a ranged attack in Hallowed Ground." + """ + 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." + —Zentari Lord Orz'Abin + """ }) .AddPart(new EntityTierModel { Tier = 1 }) .AddPart(new EntityHotkeyModel { Hotkey = "Q", HotkeyGroup = "Z" }) @@ -544,8 +553,8 @@ public class DATA { Alloy = 75, Ether = 75, BuildTime = 28, ProducedBy = DataType.BUILDING_LegionHall }) .AddPart(new EntitySupplyModel { Takes = 4 }) .AddPart(new EntityVitalityModel - { Health = 140, DefenseLayer = 100, Armor = ArmorType.Light, IsEtheric = true }) - .AddPart(new EntityMovementModel { Speed = 380, Movement = MovementType.Ground }) + { Health = 210, DefenseLayer = 105, Armor = ArmorType.Light, IsEtheric = true }) + .AddPart(new EntityMovementModel { Speed = 460, Movement = MovementType.Ground }) .AddPart(new EntityRequirementModel { Id = DataType.BUILDING_LegionHall, @@ -557,8 +566,8 @@ public class DATA Requirement = RequirementType.Production_Building }) .AddPart(new EntityWeaponModel - { Damage = 16, Range = 80, AttacksPerSecond = 0.833f, Targets = TargetType.Ground }) - .AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_Leap }) + { Damage = 18, Range = 400, SecondsBetweenAttacks = 1.4f, Targets = TargetType.Ground }) + .AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_Intervention }) .AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_Invervention }) }, { @@ -579,7 +588,7 @@ public class DATA { Alloy = 150, Ether = 100, BuildTime = 32, ProducedBy = DataType.BUILDING_SoulFoundry }) .AddPart(new EntitySupplyModel { Takes = 5 }) .AddPart(new EntityVitalityModel - { Energy = 100, Health = 100, DefenseLayer = 100, Armor = ArmorType.Medium, IsEtheric = true }) + { Energy = 100, Health = 150, DefenseLayer = 150, Armor = ArmorType.Medium, IsEtheric = true }) .AddPart(new EntityRequirementModel { Id = DataType.BUILDING_SoulFoundry, @@ -590,9 +599,9 @@ public class DATA Id = DataType.BUILDING_HouseOfFadingSaints, Requirement = RequirementType.Research_Building }) - .AddPart(new EntityMovementModel { Speed = 335, Movement = MovementType.Ground }) + .AddPart(new EntityMovementModel { Speed = 390, Movement = MovementType.Hover }) .AddPart(new EntityWeaponModel - { Damage = 25, Range = 1100, AttacksPerSecond = 0.4f, Targets = TargetType.Ground }) + { Damage = 25, Range = 1100, SecondsBetweenAttacks = 2.5f, Targets = TargetType.Ground }) .AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_OrdainedPassage }) .AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_HallowingRites }) }, @@ -659,7 +668,7 @@ 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) @@ -681,11 +690,14 @@ public class DATA { 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 }) + { + 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) @@ -715,14 +727,15 @@ public class DATA }) .AddPart(new EntityWeaponModel { - Damage = 85, MediumDamage = 100, HeavyDamage = 115, Range = 1000, AttacksPerSecond = 2.5f, MinimumRange = 500, + 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) @@ -813,18 +826,18 @@ public class DATA { ImmortalId = DataType.IMMORTAL_Orzum, ReplacedById = DataType.VANGUARD_Zentari_Orzum }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityProductionModel - { Alloy = 75, BuildTime = 25, ProducedBy = DataType.BUILDING_LegionHall }) + { Alloy = 75, BuildTime = 20, ProducedBy = DataType.BUILDING_LegionHall }) .AddPart(new EntitySupplyModel { Takes = 3 }) - .AddPart(new EntityVitalityModel { Health = 140, DefenseLayer = 70, Armor = ArmorType.Light }) + .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 = 380, Movement = MovementType.Ground }) + .AddPart(new EntityMovementModel { Speed = 440, Movement = MovementType.Ground }) .AddPart(new EntityWeaponModel { - Damage = 20, HeavyDamage = 18, Range = 180, AttacksPerSecond = 0.699f, + Damage = 20, HeavyDamage = 18, Range = 180, SecondsBetweenAttacks = 1.43f, Targets = TargetType.Ground }) .AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_GreavesOfAhqar }) @@ -884,7 +897,7 @@ public class DATA .AddPart(new EntityHotkeyModel { Hotkey = "W", HotkeyGroup = "Z" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityProductionModel - { Alloy = 100, Ether = 40, BuildTime = 30, ProducedBy = DataType.BUILDING_SoulFoundry }) + { Alloy = 100, Ether = 40, BuildTime = 24, ProducedBy = DataType.BUILDING_SoulFoundry }) .AddPart(new EntitySupplyModel { Takes = 4 }) .AddPart(new EntityRequirementModel { @@ -896,11 +909,11 @@ public class DATA Id = DataType.BUILDING_Reliquary, Requirement = RequirementType.Production_Building }) - .AddPart(new EntityVitalityModel { Health = 180, DefenseLayer = 90, Armor = ArmorType.Heavy }) - .AddPart(new EntityMovementModel { Speed = 350, Movement = MovementType.Ground }) + .AddPart(new EntityVitalityModel { Health = 255, DefenseLayer = 105, Armor = ArmorType.Heavy }) + .AddPart(new EntityMovementModel { Speed = 400, Movement = MovementType.Ground }) .AddPart(new EntityWeaponModel { - Damage = 16, MediumDamage = 21, HeavyDamage = 26, Range = 500, AttacksPerSecond = 0.667f, + Damage = 22, MediumDamage = 27, HeavyDamage = 32, Range = 500, SecondsBetweenAttacks = 1.5f, Targets = TargetType.All }) .AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_WindStep }) @@ -920,18 +933,18 @@ public class DATA .AddPart(new EntityHotkeyModel { Hotkey = "R", HotkeyGroup = "Z" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityProductionModel - { Alloy = 125, Ether = 10, BuildTime = 28, ProducedBy = DataType.BUILDING_SoulFoundry }) + { Alloy = 125, Ether = 10, BuildTime = 24, ProducedBy = DataType.BUILDING_SoulFoundry }) .AddPart(new EntitySupplyModel { Takes = 4 }) - .AddPart(new EntityVitalityModel { Health = 120, DefenseLayer = 100, Armor = ArmorType.Medium }) + .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 = 435, Movement = MovementType.Ground }) + .AddPart(new EntityMovementModel { Speed = 500, Movement = MovementType.Hover }) .AddPart(new EntityWeaponModel { - LightDamage = 30, MediumDamage = 23, Damage = 16, Range = 400, AttacksPerSecond = 0.5f, + Damage = 10, LightDamage = 26, MediumDamage = 18, Range = 350, SecondsBetweenAttacks = 2.0f, Targets = TargetType.Ground }) .AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_SiroccoScript }) @@ -955,13 +968,13 @@ public class DATA .AddPart(new EntityProductionModel { Alloy = 150, Ether = 75, BuildTime = 28, ProducedBy = DataType.BUILDING_SoulFoundry }) .AddPart(new EntitySupplyModel { Takes = 5 }) - .AddPart(new EntityVitalityModel { Health = 175, DefenseLayer = 150, Armor = ArmorType.Medium }) + .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 = 350, Movement = MovementType.Ground }) + .AddPart(new EntityMovementModel { Speed = 400, Movement = MovementType.Ground }) .AddPart(new EntityWeaponModel { Damage = 11, MediumDamage = 13, HeavyDamage = 15, StructureDamageBonus = 8, Range = 800, @@ -969,7 +982,7 @@ public class DATA }) .AddPart(new EntityWeaponModel { - Damage = 6, MediumDamage = 7, HeavyDamage = 8, Range = 800, AttacksPerSecond = 2.857f, + Damage = 6, MediumDamage = 7, HeavyDamage = 8, Range = 800, AttacksPerSecond = 2.222f, Targets = TargetType.Ground }) .AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_DeployAbsolver }) @@ -989,10 +1002,10 @@ public class DATA .AddPart(new EntityHotkeyModel { Hotkey = "W", HoldSpace = true, HotkeyGroup = "Z" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityProductionModel - { Alloy = 190, Ether = 75, BuildTime = 28, ProducedBy = DataType.BUILDING_SoulFoundry }) + { Alloy = 150, Ether = 75, BuildTime = 28, ProducedBy = DataType.BUILDING_SoulFoundry }) .AddPart(new EntitySupplyModel { Takes = 5 }) - .AddPart(new EntityVitalityModel { Health = 200, DefenseLayer = 100, Armor = ArmorType.Heavy }) - .AddPart(new EntityMovementModel { Speed = 340, Movement = MovementType.Ground }) + .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, @@ -1000,11 +1013,11 @@ public class DATA }) .AddPart(new EntityWeaponModel { - Damage = 20, MediumDamage = 30, HeavyDamage = 40, Range = 800, AttacksPerSecond = 0.704f, - Targets = TargetType.Air, EthericDamageBonus = 10 + Damage = 20, MediumDamage = 30, HeavyDamage = 40, Range = 800, SecondsBetweenAttacks = 1.42f, + Targets = TargetType.Air }) .AddPart(new EntityWeaponModel - { Damage = 8, Range = 500, AttacksPerSecond = 1.429f, Targets = TargetType.Ground }) + { 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 }) @@ -1024,7 +1037,7 @@ public class DATA { ImmortalId = DataType.IMMORTAL_Ajari, ReplacedById = DataType.VANGUARD_ArkMother_Ajari }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityProductionModel - { Alloy = 150, Ether = 75, BuildTime = 28, ProducedBy = DataType.BUILDING_SoulFoundry }) + { Alloy = 125, Ether = 100, BuildTime = 28, ProducedBy = DataType.BUILDING_SoulFoundry }) .AddPart(new EntitySupplyModel { Takes = 5 }) .AddPart(new EntityRequirementModel { @@ -1058,7 +1071,7 @@ public class DATA .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityProductionModel { Alloy = 150, Ether = 75, BuildTime = 28, ProducedBy = DataType.BUILDING_Angelarium }) - .AddPart(new EntitySupplyModel { Takes = 5 }) + .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 @@ -1084,9 +1097,9 @@ public class DATA .AddPart(new EntityHotkeyModel { Hotkey = "A", HoldSpace = true, HotkeyGroup = "Z" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityProductionModel - { Alloy = 250, Ether = 100, BuildTime = 50, ProducedBy = DataType.BUILDING_Angelarium }) - .AddPart(new EntitySupplyModel { Takes = 9 }) - .AddPart(new EntityVitalityModel { Health = 350, DefenseLayer = 200, Armor = ArmorType.Heavy }) + { 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, @@ -1097,10 +1110,10 @@ public class DATA Id = DataType.BUILDING_BearerOfTheCrown, Requirement = RequirementType.Research_Building }) - .AddPart(new EntityMovementModel { Speed = 262, Movement = MovementType.Air }) + .AddPart(new EntityMovementModel { Speed = 300, Movement = MovementType.Air }) .AddPart(new EntityWeaponModel { - Damage = 60, Range = 600, AttacksPerSecond = 0.5f, SecondsBetweenAttacks = 2, + Damage = 120, Range = 500, SecondsBetweenAttacks = 2.5f, Targets = TargetType.All }) .AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_BladesOfTheGodhead }) @@ -1130,10 +1143,10 @@ public class DATA Id = DataType.BUILDING_Angelarium, Requirement = RequirementType.Production_Building }) - .AddPart(new EntityVitalityModel { Health = 300, DefenseLayer = 80, Armor = ArmorType.Heavy }) - .AddPart(new EntityMovementModel { Speed = 420, Movement = MovementType.Air }) + .AddPart(new EntityVitalityModel { Health = 375, DefenseLayer = 100, Armor = ArmorType.Heavy }) + .AddPart(new EntityMovementModel { Speed = 480, Movement = MovementType.Air }) .AddPart(new EntityWeaponModel - { Damage = 32, Range = 600, AttacksPerSecond = 0.556f, Targets = TargetType.Ground }) + { 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 }) @@ -1159,11 +1172,11 @@ public class DATA Requirement = RequirementType.Research_Building }) .AddPart(new EntityVitalityModel - { Health = 175, DefenseLayer = 125, IsEtheric = true, Armor = ArmorType.Heavy }) - .AddPart(new EntityMovementModel { Speed = 315, Movement = MovementType.Air }) + { 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, AttacksPerSecond = 0.714f, SecondsBetweenAttacks = 1.4f, + Damage = 10, Range = 650, SecondsBetweenAttacks = 1.4f, Targets = TargetType.All }) .AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_Awestrike }) @@ -1213,7 +1226,10 @@ public class DATA { 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 }) + { + Damage = 7, Range = 400, AttacksPerSecond = 1.4f, Targets = TargetType.All, MediumDamage = 6, + HeavyDamage = 5 + }) .AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_Offering }) .AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_BloodMothersFevor }) .AddPart(new EntityIdPassiveModel { Id = DataType.ABILITY_Offering }) @@ -1433,7 +1449,8 @@ public class DATA .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 + Damage = 11, LightDamage = 15, MediumDamage = 13, Range = 350, SecondsBetweenAttacks = 1.25f, + Targets = TargetType.All }) .AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_BloodFrenzy }) }, @@ -1556,17 +1573,27 @@ public class DATA .AddPart(new EntityInfoModel { Name = "Fortified Icons", Descriptive = DescriptiveType.Upgrade, - Description = "Sipari gain +20 shields, and Hallowed Ground grants an additional +20 shields." + Description = + """ + Sipari get more Shields. + + Bonus Shields from Hallowed Ground + """ }) .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 }) + { Alloy = 125, Ether = 125, BuildTime = 60, ProducedBy = DataType.BUILDING_EyeOfAros }) .AddPart(new EntityRequirementModel { Id = DataType.BUILDING_EyeOfAros, Requirement = RequirementType.Production_Building }) + .AddPart(new EntityRequirementModel + { + Id = DataType.BUILDING_Reliquary, + Requirement = RequirementType.Production_Building + }) .AddPart(new EntityVanguardReplacedModel { ImmortalId = DataType.IMMORTAL_Orzum, ReplacedById = DataType.UPGRADE_IconOfKhastEem }) }, @@ -1606,15 +1633,38 @@ public class DATA Requirement = RequirementType.Production_Building }) }, + + { + DataType.UPGRADE_PsalmOfFire, + new EntityModel(DataType.UPGRADE_PsalmOfFire, EntityType.Tech) + .AddPart(new EntityInfoModel + { + Name = "Psalm of Fire", Descriptive = DescriptiveType.Upgrade, + Description = "Fire Singers get area damage." + }) + .AddPart(new EntityHotkeyModel { Hotkey = "S", HotkeyGroup = "X", HoldSpace = true }) + .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) + .AddPart(new EntityProductionModel + { + Alloy = 125, Ether = 200, BuildTime = 64, + ProducedBy = DataType.BUILDING_KeeperOfTheHardenedFlames + }) + .AddPart(new EntityRequirementModel + { + Id = DataType.BUILDING_KeeperOfTheHardenedFlames, + Requirement = RequirementType.Production_Building + }) + }, + { DataType.UPGRADE_WindStep, new EntityModel(DataType.UPGRADE_WindStep, EntityType.Tech) .AddPart(new EntityInfoModel { Name = "Windstep", Descriptive = DescriptiveType.Upgrade, Description = "Unlocks windstep." }) - .AddPart(new EntityHotkeyModel { Hotkey = "W", HotkeyGroup = "X" }) + .AddPart(new EntityHotkeyModel { Hotkey = "E", HotkeyGroup = "X" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityProductionModel - { Alloy = 50, Ether = 75, BuildTime = 55, ProducedBy = DataType.BUILDING_Reliquary }) + { Alloy = 125, Ether = 100, BuildTime = 75, ProducedBy = DataType.BUILDING_MonasteryOfIzur }) .AddPart(new EntityRequirementModel { Id = DataType.BUILDING_Reliquary, Requirement = RequirementType.Production_Building }) }, @@ -1626,10 +1676,10 @@ public class DATA Name = "Zephyr Range", Descriptive = DescriptiveType.Upgrade, Description = "Increases Zephyr's range by 100." }) - .AddPart(new EntityHotkeyModel { Hotkey = "E", HotkeyGroup = "X" }) + .AddPart(new EntityHotkeyModel { Hotkey = "W", HotkeyGroup = "X" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityProductionModel - { Alloy = 150, Ether = 100, BuildTime = 43, ProducedBy = DataType.BUILDING_Reliquary }) + { Alloy = 100, Ether = 50, BuildTime = 50, ProducedBy = DataType.BUILDING_Reliquary }) .AddPart(new EntityRequirementModel { Id = DataType.BUILDING_Reliquary, Requirement = RequirementType.Research_Building }) .AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_WindStep }) @@ -1643,16 +1693,82 @@ public class DATA Name = "Sirocco Script", Descriptive = DescriptiveType.Upgrade, Description = "Grant's the Dervish Sirocco Script" }) - .AddPart(new EntityHotkeyModel { Hotkey = "R", HotkeyGroup = "X" }) + .AddPart(new EntityHotkeyModel { Hotkey = "R", HotkeyGroup = "X", HoldSpace = true }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityProductionModel - { Alloy = 75, Ether = 100, BuildTime = 60, ProducedBy = DataType.BUILDING_HouseOfFadingSaints }) + { + Alloy = 100, Ether = 125, BuildTime = 60, ProducedBy = DataType.BUILDING_HouseOfFadingSaints + }) .AddPart(new EntityRequirementModel { Id = DataType.BUILDING_HouseOfFadingSaints, Requirement = RequirementType.Production_Building }) }, + + { + DataType.UPGRADE_IconOfTheEnduringVigil, + new EntityModel(DataType.UPGRADE_IconOfTheEnduringVigil, EntityType.Tech) + .AddPart(new EntityInfoModel + { + Name = "Icon of the Enduring Vigil", Descriptive = DescriptiveType.Upgrade, + Description = "The Dervish's Radiant Wards become permanent." + }) + .AddPart(new EntityHotkeyModel { Hotkey = "F", HotkeyGroup = "X", HoldSpace = true }) + .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) + .AddPart(new EntityProductionModel + { + Alloy = 100, Ether = 100, BuildTime = 34, ProducedBy = DataType.BUILDING_HouseOfFadingSaints + }) + .AddPart(new EntityRequirementModel + { + Id = DataType.BUILDING_HouseOfFadingSaints, + Requirement = RequirementType.Production_Building + }) + }, + + { + DataType.UPGRADE_AbsolverHealthUpgrade, + new EntityModel(DataType.UPGRADE_AbsolverHealthUpgrade, EntityType.Tech) + .AddPart(new EntityInfoModel + { + Name = "Absolver Health Upgrade", Descriptive = DescriptiveType.Upgrade, + Description = "Absolvers get more HP and damage reductions" + }) + .AddPart(new EntityHotkeyModel { Hotkey = "F", HotkeyGroup = "X" }) + .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) + .AddPart(new EntityProductionModel + { + Alloy = 150, Ether = 150, BuildTime = 90, ProducedBy = DataType.BUILDING_HouseOfFadingSaints + }) + .AddPart(new EntityRequirementModel + { + Id = DataType.BUILDING_HouseOfFadingSaints, + Requirement = RequirementType.Production_Building + }) + }, + + { + DataType.UPGRADE_Awestrike, + new EntityModel(DataType.UPGRADE_Awestrike, EntityType.Tech) + .AddPart(new EntityInfoModel + { + Name = "Awestrike", Descriptive = DescriptiveType.Upgrade, + Description = "Unlocks a damage spell for Shar'u" + }) + .AddPart(new EntityHotkeyModel { Hotkey = "R", HotkeyGroup = "X" }) + .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) + .AddPart(new EntityProductionModel + { + Alloy = 125, Ether = 150, BuildTime = 45, ProducedBy = DataType.BUILDING_HouseOfFadingSaints + }) + .AddPart(new EntityRequirementModel + { + Id = DataType.BUILDING_EyeOfAros, + Requirement = RequirementType.Production_Building + }) + }, + { DataType.UPGRADE_IconOfKhastEem, new EntityModel(DataType.UPGRADE_IconOfKhastEem, EntityType.Tech) @@ -1696,17 +1812,34 @@ public class DATA .AddPart(new EntityInfoModel { Name = "Wings of the Ken'Latir", Descriptive = DescriptiveType.Upgrade, - Description = "Increases the Warden's speed and shields significantly." + Description = "Wardens use their empowered attacks more often." }) - .AddPart(new EntityHotkeyModel { Hotkey = "R", HoldSpace = true, HotkeyGroup = "X" }) + .AddPart(new EntityHotkeyModel { Hotkey = "E", HoldSpace = true, HotkeyGroup = "X" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityProductionModel - { Alloy = 150, Ether = 100, BuildTime = 30, ProducedBy = DataType.BUILDING_EyeOfAros }) + { Alloy = 150, Ether = 100, BuildTime = 60, ProducedBy = DataType.BUILDING_BearerOfTheCrown }) .AddPart(new EntityRequirementModel { Id = DataType.BUILDING_EyeOfAros, Requirement = RequirementType.Production_Building }) }, + { + DataType.UPGRADE_TitheBlades, + new EntityModel(DataType.UPGRADE_TitheBlades, EntityType.Tech) + .AddPart(new EntityInfoModel + { + Name = "Tithe Blades", Descriptive = DescriptiveType.Upgrade, + Description = "Unlocks a utility ability for Thrones." + }) + .AddPart(new EntityHotkeyModel { Hotkey = "A", HoldSpace = true, HotkeyGroup = "X" }) + .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) + .AddPart(new EntityProductionModel + { Alloy = 200, Ether = 200, BuildTime = 120, ProducedBy = DataType.BUILDING_BearerOfTheCrown }) + .AddPart(new EntityRequirementModel + { + Id = DataType.BUILDING_BearerOfTheCrown, Requirement = RequirementType.Production_Building + }) + }, // Upgrades // Aru { @@ -1815,11 +1948,12 @@ public class DATA .AddPart(new EntityProductionModel { Alloy = 100, Ether = 100, BuildTime = 60, ProducedBy = DataType.BUILDING_Neurocyte }) }, - + { DataType.UPGRADE_RootShepherdHidden, new EntityModel(DataType.UPGRADE_RootShepherdHidden, EntityType.Tech) - .AddPart(new EntityInfoModel { Name = "Root Shepherd Hidden", Descriptive = DescriptiveType.Upgrade }) + .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 @@ -1835,11 +1969,12 @@ public class DATA .AddPart(new EntityProductionModel { 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 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 @@ -1855,8 +1990,8 @@ public class DATA .AddPart(new EntityProductionModel { Alloy = 100, Ether = 100, BuildTime = 80, ProducedBy = DataType.BUILDING_Neurocyte }) }, - - + + { DataType.UPGRADE_EthericFibers, new EntityModel(DataType.UPGRADE_EthericFibers, EntityType.Tech) @@ -1871,12 +2006,12 @@ public class DATA .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 EntityHotkeyModel { Hotkey = "E", HotkeyGroup = "X", HoldSpace = true }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) .AddPart(new EntityRequirementModel { @@ -1891,7 +2026,7 @@ public class DATA .AddPart(new EntityProductionModel { Alloy = 150, Ether = 100, BuildTime = 100, ProducedBy = DataType.BUILDING_Neurocyte }) }, - + { DataType.UPGRADE_VitellineCysts, new EntityModel(DataType.UPGRADE_VitellineCysts, EntityType.Tech) @@ -1925,7 +2060,7 @@ public class DATA .AddPart(new EntityProductionModel { Alloy = 50, Ether = 100, BuildTime = 29, ProducedBy = DataType.BUILDING_Neurocyte }) }, - + { DataType.UPGRADE_SporeBurst, new EntityModel(DataType.UPGRADE_SporeBurst, EntityType.Tech) @@ -2042,10 +2177,10 @@ 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) + DataType.UPGRADE_GENERIC_Attack1, + new EntityModel(DataType.UPGRADE_GENERIC_Attack1, 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 }) @@ -2057,11 +2192,12 @@ public class DATA .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 }) + DataType.UPGRADE_GENERIC_Defense1, + new EntityModel(DataType.UPGRADE_GENERIC_Defense1, 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 @@ -2561,7 +2697,7 @@ public class DATA { Id = DataType.UPGRADE_EthericFibers, Requirement = RequirementType.Research_Upgrade }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) }, - + { DataType.PASSIVE_XacalDefense, new EntityModel(DataType.PASSIVE_XacalDefense, EntityType.Passive) @@ -2683,11 +2819,16 @@ public class DATA { Name = "Radiant Ward", Descriptive = DescriptiveType.Ability, Description = - @"Spawns a mine that reveals enemy units, slows them, and makes them take increased damage for a duration." + """ + Target a location. A Hidden mine is laid there. + + Detonates when enemy ground units get close. Enemies hit + are revealed, slowed, and take additional damage. + """ }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) - .AddPart(new EntityHotkeyModel { Hotkey = "R", HotkeyGroup = "D", HoldSpace = true }) - .AddPart(new EntityProductionModel { DefensiveLayer = 30, Cooldown = 40 }) + .AddPart(new EntityHotkeyModel { Hotkey = "F", HotkeyGroup = "D", HoldSpace = true }) + .AddPart(new EntityProductionModel { DefensiveLayer = 45, Cooldown = 40 }) .AddPart(new EntityRequirementModel { Id = DataType.UPGRADE_RadiantWard }) .AddPart(new EntityVitalityModel { Health = 30, DefenseLayer = 30, Lasts = 60, Armor = ArmorType.Light }) @@ -2730,24 +2871,28 @@ public class DATA { Name = "Windstep", Descriptive = DescriptiveType.Ability, Description = - @"The Zephyr teleports toward target location, draining shields. Windstepping into Halled Ground restores shields instead." + """ + Target a location. Teleport to location: costs Shields. + + Decrease cooldown and avoid Shield cost when teleporting to Hallowed Ground. + """ }) - .AddPart(new EntityHotkeyModel { Hotkey = "R", HotkeyGroup = "D" }) + .AddPart(new EntityHotkeyModel { Hotkey = "E", HotkeyGroup = "D" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityProductionModel { Cooldown = 20 }) }, { - DataType.ABILITY_Leap, - new EntityModel(DataType.ABILITY_Leap, EntityType.Ability) + DataType.ABILITY_Intervention, + new EntityModel(DataType.ABILITY_Intervention, EntityType.Ability) .AddPart(new EntityInfoModel { - Name = "Leap", Descriptive = DescriptiveType.Ability, + Name = "Intervention", Descriptive = DescriptiveType.Ability, Description = - @"The Saoshin leaps to the target location. If she has enough mana, she activates Intervention upon landing." + "Target a location. A Saoshin leaps to the location and heals friendly units." }) - .AddPart(new EntityHotkeyModel { Hotkey = "E", HotkeyGroup = "D" }) + .AddPart(new EntityHotkeyModel { Hotkey = "R", HotkeyGroup = "D" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) - .AddPart(new EntityProductionModel { Cooldown = 5, Energy = 70 }) + .AddPart(new EntityProductionModel { Cooldown = 30 }) }, { DataType.ABILITY_OrdainedPassage, @@ -2756,11 +2901,17 @@ public class DATA { Name = "Ordained Passage", Descriptive = DescriptiveType.Ability, Description = - @"Creates a large area that grants significant damage reduction to friendly ground troops within. Reduces the Ark Mother's shields to 0 when used." + """ + Target an area to send a damage reduction to circle to. + + The circle starts at the Ark Mother, travels to the target location, and stays there for a duration. + Friendly units get damage reduction while in the circle, including when it is movie. + Costs all the Ark Mother's Shields. + """ }) - .AddPart(new EntityHotkeyModel { Hotkey = "F", HotkeyGroup = "D", HoldSpace = true }) + .AddPart(new EntityHotkeyModel { Hotkey = "E", HotkeyGroup = "D", HoldSpace = true }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) - .AddPart(new EntityProductionModel { Cooldown = 5, Energy = 75 }) + .AddPart(new EntityProductionModel { Cooldown = 3, Energy = 55 }) }, { DataType.ABILITY_DeployAbsolver, @@ -2786,6 +2937,45 @@ public class DATA .AddPart(new EntityHotkeyModel { Hotkey = "E", HotkeyGroup = "D" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) }, + + { + DataType.ABILITY_DeploySentinel, + new EntityModel(DataType.ABILITY_DeploySentinel, EntityType.Ability) + .AddPart(new EntityInfoModel + { + Name = "Deploy Sentinel", Descriptive = DescriptiveType.Ability, + Description = + """ + Deploy to absorb enemy projectiles. Costs Shields. + + Deployed units cannot move. Use Mobilize to move again. + """ + }) + .AddPart(new EntityHotkeyModel { Hotkey = "R", HotkeyGroup = "D", HoldSpace = true }) + .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) + }, + + + { + DataType.ABILITY_Smite, + new EntityModel(DataType.ABILITY_Smite, EntityType.Ability) + .AddPart(new EntityInfoModel + { + Name = "Smite", Descriptive = DescriptiveType.Ability, + Description = + """ + Target an enemy unit. Deal damage after a delay. + + After being targeted, the enemy can move out of range to + cancel damage. Can store up to 2 charges. + """ + }) + .AddPart(new EntityHotkeyModel { Hotkey = "Q", HotkeyGroup = "D" }) + .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) + .AddPart(new EntityProductionModel { Cooldown = 2, Energy = 30 }) + }, + + { DataType.ABILITY_Awestrike, new EntityModel(DataType.ABILITY_Awestrike, EntityType.Ability) @@ -2793,12 +2983,37 @@ public class DATA { Name = "Awestrike", Descriptive = DescriptiveType.Ability, Description = - @"After a short delay, enemy ground units at center of the area suffer a huge burst of damage. Targets outside the center take reduced damage. Then the area is left ablaze damaging units over time." + """ + Target and area. Damages enemy ground units. + + Units in the center of the area take more damage. + Units take damage over time after the initial burst of damage and continue to take damage + over time after leaving the area. + """ }) .AddPart(new EntityHotkeyModel { Hotkey = "W", HotkeyGroup = "D" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityProductionModel { Cooldown = 8, Energy = 60 }) }, + + { + DataType.ABILITY_TitheBlades, + new EntityModel(DataType.ABILITY_TitheBlades, EntityType.Ability) + .AddPart(new EntityInfoModel + { + Name = "Tithe Blades", Descriptive = DescriptiveType.Ability, + Description = + """ + Activate to steal Shields from your nearby ground units, up to a cap. + + Also increases attack speed based on amount of Shields stolen. + """ + }) + .AddPart(new EntityHotkeyModel { Hotkey = "W", HotkeyGroup = "D", HoldSpace = true }) + .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) + .AddPart(new EntityProductionModel { Cooldown = 70 }) + }, + { DataType.ABILITY_MobilizeQrath, new EntityModel(DataType.ABILITY_MobilizeQrath, EntityType.Ability) @@ -2910,7 +3125,8 @@ public class DATA .AddPart(new EntityInfoModel { Name = "Deploy Resinant", Descriptive = DescriptiveType.Ability, - Description = "Get even more attack range if deployed on Rootway. Deploying a unit makes it unable to move. Use Mobilize to move again." + 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 = "F", HotkeyGroup = "D" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) @@ -2927,7 +3143,7 @@ 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) @@ -2946,7 +3162,7 @@ public class DATA .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) .AddPart(new EntityProductionModel { Energy = 50, Cooldown = 40 }) }, - + { DataType.ABILITY_RootVice, new EntityModel(DataType.ABILITY_RootVice, EntityType.Ability) @@ -3023,31 +3239,30 @@ public class DATA { 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", + 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", + Name = "Obstructing Swarm" }) .AddPart(new EntityHotkeyModel { Hotkey = "E", HoldSpace = true, HotkeyGroup = "D" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) }, - + // Pyre Spells // Q'Rath { @@ -3100,7 +3315,7 @@ public class DATA Structures still alive after 10 seconds will heal for 50% of their Life and Shields.
When cast on a Citadel it will transform it into a Rook of Ira, a more powerful Tower with an area attack.
When cast on a Pillar, after a short delay Orzum will appear above the pillar and attack 4 times dealing 160 (!!) damage per hit.
- """, + """ }) .AddPart(new EntityHotkeyModel { Hotkey = "E", HotkeyGroup = "V" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) @@ -3206,7 +3421,7 @@ public class DATA }) .AddPart(new EntityHotkeyModel { Hotkey = "F", HotkeyGroup = "V" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) - .AddPart(new EntityProductionModel { Pyre = 25, Cooldown = 21, BuildTime = 3}) + .AddPart(new EntityProductionModel { Pyre = 25, Cooldown = 21, BuildTime = 3 }) .AddPart(new EntityVitalityModel { Health = 400, Energy = 100, DefenseLayer = 50, Armor = ArmorType.Heavy, IsStructure = true }) .AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_RestoreLifeblood }) @@ -3229,23 +3444,6 @@ public class DATA .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) @@ -3265,7 +3463,7 @@ public class DATA .AddPart(new EntityVitalityModel { Health = 25, DefenseLayer = 50, Armor = ArmorType.Heavy, IsStructure = true }) }, - + { DataType.ISPELL_SummonDeepWyrm, new EntityModel(DataType.ISPELL_SummonDeepWyrm, EntityType.Pyre_Spell) @@ -3275,7 +3473,7 @@ public class DATA 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. """ }) @@ -3285,7 +3483,7 @@ public class DATA .AddPart(new EntityVitalityModel { Health = 25, DefenseLayer = 50, Armor = ArmorType.Heavy, IsStructure = true }) }, - + { DataType.ISPELL_SummonRootBud, new EntityModel(DataType.ISPELL_SummonRootBud, EntityType.Pyre_Spell) @@ -3295,7 +3493,7 @@ public class DATA Description = """ Generates Rootway - + Must be placed on Rootway and in range of another Root Bud or Stronghold """ }) @@ -3305,8 +3503,8 @@ public class DATA .AddPart(new EntityVitalityModel { Health = 25, DefenseLayer = 50, Armor = ArmorType.Heavy, IsStructure = true }) }, - - + + // Mala { DataType.ISPELL_RedHarvest, @@ -3317,7 +3515,7 @@ public class DATA Description = """ Target a location to summon Mala's Specter. - + Nearby units make Quitl and give Sacral Blood on-death. """, Notes = @@ -3335,13 +3533,13 @@ public class DATA { Name = "Prophet's Favor", Description = - """ - Target an area. Permanently empower units. - - Empowered units get more HP and damage. Does not stack. - Costs Sacral Blood. Get Sacral Blood from Mala's other Powers and Vanguard. + """ + Target an area. Permanently empower units. + + Empowered units get more HP and damage. Does not stack. + Costs Sacral Blood. Get Sacral Blood from Mala's other Powers and Vanguard. - """, + """, Notes = " - Summons Mala (unmoveable).
- Once the nearest owned unit's supply is doubled by Mala's upgrade supply it will be deemed Worthy, consuming the stored upgrade supply.
- Units of zero supply cost take 1 blood.
- Worthy: Permanent upgrade that gives +30% Max Life and +30% Damage." }) @@ -3374,11 +3572,11 @@ public class DATA { Name = "Prophet Of The Hunt", Description = - """ - Target a location to summon Xol. - - Get XP by assiting in kills. Level up to become more powerful. - """, + """ + Target a location to summon Xol. + + Get XP by assiting in kills. Level up to become more powerful. + """, Notes = " - Summons Xol (stealthed) after a 1 second delay.
- Xol has 225 Life, 75 Shield, 410 Move speed, 70 Radius.
- Xol has a weapon: 28 Damage, 1s Cooldown, 7 Range, Ground and Air.
- Every 4 attacks, the next attack will deal 22 bonus damage.
" }) @@ -3394,12 +3592,12 @@ public class DATA { Name = "Hunting Grounds", Description = - """ - Target an area. Friendly units there become Hidden. - - After becoming Hidden, friendly units get more movement speed, attack speed, and damage on their first attack. - Hunting Grounds disappears 5 seconds after a unit inside attacks. - """, + """ + Target an area. Friendly units there become Hidden. + + After becoming Hidden, friendly units get more movement speed, attack speed, and damage on their first attack. + Hunting Grounds disappears 5 seconds after a unit inside attacks. + """, Notes = " - After a 10 second delay, creates a large ambush area which lasts until after an ambush is sprung.
- Units in the Hunting Ground become stealth.
- Stealth units will deal double damage on the first attack and spring the ambush.
- The Hunting Ground will disappear 5 seconds after an ambush is sprung.
- Units can only get the bonus once." }) @@ -3438,12 +3636,12 @@ public class DATA Name = "Acropolis", Descriptive = DescriptiveType.Town_Hall, Description = "Town Hall (Structure) - Necessary for collecting Alloy and Ether." }) - .AddPart(new EntityHotkeyModel { Hotkey = "F", HotkeyGroup = "C" }) + .AddPart(new EntityHotkeyModel { Hotkey = "Q", HotkeyGroup = "C" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityProductionModel - { Alloy = 350, BuildTime = 100, RequiresWorker = true, ConsumesWorker = true }) + { Alloy = 450, BuildTime = 90, RequiresWorker = true, ConsumesWorker = true }) .AddPart(new EntityVitalityModel - { Health = 1600, DefenseLayer = 800, Armor = ArmorType.Heavy, IsStructure = true }) + { Health = 2300, DefenseLayer = 1200, Armor = ArmorType.Heavy, IsStructure = true }) .AddPart(new EntityHarvestModel { HarvestedPerInterval = 1, RequiresWorker = true, Resource = ResourceType.Alloy, Slots = 2, @@ -3503,9 +3701,9 @@ public class DATA Name = "Apostle of Binding", Descriptive = DescriptiveType.Ether_Extractor, Description = "Ether Extractor (Structure) - Must be placed on an Ether Node." }) - .AddPart(new EntityHotkeyModel { Hotkey = "CAPSLOCK", HotkeyGroup = "C" }) + .AddPart(new EntityHotkeyModel { Hotkey = "TAB", HotkeyGroup = "C" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) - .AddPart(new EntityProductionModel { Alloy = 100, BuildTime = 30, RequiresWorker = true }) + .AddPart(new EntityProductionModel { Alloy = 175, BuildTime = 30, RequiresWorker = true }) .AddPart(new EntityVitalityModel { Health = 300, DefenseLayer = 200, Armor = ArmorType.Heavy, IsStructure = true }) .AddPart(new EntityHarvestModel @@ -3538,9 +3736,9 @@ public class DATA Name = "Fire Singer", Descriptive = DescriptiveType.Defense, Description = "Q'Rath Defensive structure." }) - .AddPart(new EntityHotkeyModel { Hotkey = "Q", HotkeyGroup = "C" }) + .AddPart(new EntityHotkeyModel { Hotkey = "F", HotkeyGroup = "C" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) - .AddPart(new EntityProductionModel { Alloy = 150, BuildTime = 30, RequiresWorker = true }) + .AddPart(new EntityProductionModel { Alloy = 75, BuildTime = 30, RequiresWorker = true }) .AddPart(new EntityRequirementModel { Id = DataType.BUILDING_KeeperOfTheHardenedFlames, @@ -3548,12 +3746,12 @@ public class DATA }) .AddPart(new EntityWeaponModel { - Damage = 22, Range = 700, SecondsBetweenAttacks = 1.8f, Targets + Damage = 34, Range = 700, SecondsBetweenAttacks = 1.8f, Targets = TargetType.All }) .AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_HallowedWeapons }) .AddPart(new EntityVitalityModel - { Health = 300, DefenseLayer = 150, Armor = ArmorType.Heavy, IsStructure = true }) + { Health = 350, DefenseLayer = 200, Armor = ArmorType.Heavy, IsStructure = true }) .AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_PsalmOfFire }) }, { @@ -3564,11 +3762,11 @@ public class DATA Name = "Keeper Of the Hardened Flames", Descriptive = DescriptiveType.Defense, Description = "" }) - .AddPart(new EntityHotkeyModel { Hotkey = "CAPSLOCK", HoldSpace = true, HotkeyGroup = "C" }) + .AddPart(new EntityHotkeyModel { Hotkey = "TAB", HoldSpace = true, HotkeyGroup = "C" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) - .AddPart(new EntityProductionModel { Alloy = 125, BuildTime = 30, RequiresWorker = true }) + .AddPart(new EntityProductionModel { Alloy = 100, BuildTime = 30, RequiresWorker = true }) .AddPart(new EntityVitalityModel - { Health = 450, DefenseLayer = 450, Armor = ArmorType.Heavy, IsStructure = true }) + { Health = 625, DefenseLayer = 625, Armor = ArmorType.Heavy, IsStructure = true }) }, { DataType.BUILDING_Reliquary, @@ -3577,20 +3775,44 @@ public class DATA { Name = "Reliquary", Descriptive = DescriptiveType.Research, Description = - "Research (Structure) - Unlocks the Zephyr and Magi at the Legion Hall. Contains Legion Hall research." + "Unlocks training of Magi and their Vanguard replacements." }) .AddPart(new EntityHotkeyModel { Hotkey = "W", HoldSpace = true, HotkeyGroup = "C" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityProductionModel - { Alloy = 150, Ether = 10, BuildTime = 45, RequiresWorker = true }) + { Alloy = 100, Ether = 25, BuildTime = 30, RequiresWorker = true }) .AddPart(new EntityRequirementModel { Id = DataType.BUILDING_LegionHall, Requirement = RequirementType.Production_Building }) .AddPart(new EntityVitalityModel - { Health = 550, DefenseLayer = 550, Armor = ArmorType.Heavy, IsStructure = true }) + { Health = 700, DefenseLayer = 700, Armor = ArmorType.Heavy, IsStructure = true }) }, + + { + DataType.BUILDING_MonasteryOfIzur, + new EntityModel(DataType.BUILDING_MonasteryOfIzur, EntityType.Building) + .AddPart(new EntityInfoModel + { + Name = "Monastery of Izur", Descriptive = DescriptiveType.Research, + Description = + "Unlocks training of Zephyrs and their Vanguard replacements" + }) + .AddPart(new EntityHotkeyModel { Hotkey = "W", HoldSpace = true, HotkeyGroup = "C" }) + .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) + .AddPart(new EntityProductionModel + { Alloy = 100, Ether = 50, BuildTime = 30, RequiresWorker = true }) + .AddPart(new EntityRequirementModel + { + Id = DataType.BUILDING_LegionHall, + Requirement = RequirementType.Production_Building + }) + .AddPart(new EntityVitalityModel + { Health = 700, DefenseLayer = 700, Armor = ArmorType.Heavy, IsStructure = true }) + }, + + { DataType.BUILDING_SoulFoundry, new EntityModel(DataType.BUILDING_SoulFoundry, EntityType.Building) @@ -3602,7 +3824,7 @@ public class DATA .AddPart(new EntityHotkeyModel { Hotkey = "E", HotkeyGroup = "C" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityProductionModel - { Alloy = 250, Ether = 80, BuildTime = 45, RequiresWorker = true }) + { Alloy = 250, Ether = 100, BuildTime = 42, RequiresWorker = true }) .AddPart(new EntitySupplyModel { Grants = 16 }) .AddPart(new EntityRequirementModel { @@ -3610,7 +3832,7 @@ public class DATA Requirement = RequirementType.Production_Building }) .AddPart(new EntityVitalityModel - { Health = 550, DefenseLayer = 550, Armor = ArmorType.Heavy, IsStructure = true }) + { Health = 900, DefenseLayer = 900, Armor = ArmorType.Heavy, IsStructure = true }) .AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_HallowedGround }) }, { @@ -3624,7 +3846,7 @@ public class DATA .AddPart(new EntityHotkeyModel { Hotkey = "E", HoldSpace = true, HotkeyGroup = "C" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityProductionModel - { Alloy = 175, Ether = 200, BuildTime = 52, RequiresWorker = true }) + { Alloy = 100, Ether = 100, BuildTime = 45, RequiresWorker = true }) .AddPart(new EntityRequirementModel { Id = DataType.BUILDING_SoulFoundry, @@ -3644,7 +3866,7 @@ public class DATA .AddPart(new EntityHotkeyModel { Hotkey = "R", HotkeyGroup = "C" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityProductionModel - { Alloy = 250, Ether = 80, BuildTime = 48, RequiresWorker = true }) + { Alloy = 250, Ether = 150, BuildTime = 42, RequiresWorker = true }) .AddPart(new EntitySupplyModel { Grants = 16 }) .AddPart(new EntityRequirementModel { @@ -3652,7 +3874,7 @@ public class DATA Requirement = RequirementType.Production_Building }) .AddPart(new EntityVitalityModel - { Health = 600, DefenseLayer = 600, Armor = ArmorType.Heavy, IsStructure = true }) + { Health = 950, DefenseLayer = 950, Armor = ArmorType.Heavy, IsStructure = true }) .AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_HallowedGround }) }, { @@ -3666,14 +3888,14 @@ public class DATA .AddPart(new EntityHotkeyModel { Hotkey = "F", HoldSpace = true, HotkeyGroup = "C" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityProductionModel - { Alloy = 200, Ether = 200, BuildTime = 36, RequiresWorker = true }) + { Alloy = 200, Ether = 250, BuildTime = 60, RequiresWorker = true }) .AddPart(new EntityRequirementModel { Id = DataType.BUILDING_Angelarium, Requirement = RequirementType.Production_Building }) .AddPart(new EntityVitalityModel - { Health = 450, DefenseLayer = 450, Armor = ArmorType.Heavy, IsStructure = true }) + { Health = 550, DefenseLayer = 550, Armor = ArmorType.Heavy, IsStructure = true }) }, { DataType.BUILDING_BearerOfTheCrown, @@ -3686,14 +3908,14 @@ public class DATA .AddPart(new EntityHotkeyModel { Hotkey = "R", HoldSpace = true, HotkeyGroup = "C" }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityProductionModel - { Alloy = 250, Ether = 200, BuildTime = 52, RequiresWorker = true }) + { Alloy = 250, Ether = 250, BuildTime = 70, RequiresWorker = true }) .AddPart(new EntityRequirementModel { Id = DataType.BUILDING_Angelarium, Requirement = RequirementType.Production_Building }) .AddPart(new EntityVitalityModel - { Health = 500, DefenseLayer = 500, Armor = ArmorType.Heavy, IsStructure = true }) + { Health = 625, DefenseLayer = 625, Armor = ArmorType.Heavy, IsStructure = true }) }, // Building // Aru diff --git a/Model/Entity/Data/Ids_Entity.cs b/Model/Entity/Data/Ids_Entity.cs index b3a1a80..8835f62 100644 --- a/Model/Entity/Data/Ids_Entity.cs +++ b/Model/Entity/Data/Ids_Entity.cs @@ -67,12 +67,12 @@ public static class DataType public static string ISPELL_ProphetOfTheHunt = nameof(ISPELL_ProphetOfTheHunt); public static string ISPELL_HuntingGrounds = nameof(ISPELL_HuntingGrounds); public static string ISPELL_TheGreatHunt = nameof(ISPELL_TheGreatHunt); - + 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"; @@ -80,8 +80,8 @@ public static class DataType public static string IPASSIVE_MothersHunger = "382dc614-9228-4494-9a80-d1a72604a1ee"; public static string IPASSIVE_StalkersSense = "a3d255aa-94f2-4aed-bb44-e9becb736fca"; - public static string BUILDING_Acropolis = "ee1498cf-3c8c-4793-8869-5e097fe4d372"; - public static string BUILDING_ApostleOfBinding = "87198418-ad47-455e-bd08-e42a5b2ecde1"; + public static string BUILDING_Acropolis = nameof(BUILDING_Acropolis); + public static string BUILDING_ApostleOfBinding = nameof(BUILDING_ApostleOfBinding); 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"; @@ -90,40 +90,47 @@ public static class DataType public static string BUPGRADE_MiningLevel3_Aru = "010b3279-472d-4d54-9a85-ebc5c664ee73"; 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_LegionHall = nameof(BUILDING_LegionHall); + public static string BUILDING_SoulFoundry = nameof(BUILDING_SoulFoundry); + public static string BUILDING_Angelarium = nameof(BUILDING_Angelarium); 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_Reliquary = nameof(BUILDING_Reliquary); + public static string BUILDING_MonasteryOfIzur = nameof(BUILDING_MonasteryOfIzur); + public static string BUILDING_HouseOfFadingSaints = nameof(BUILDING_HouseOfFadingSaints); + public static string BUILDING_EyeOfAros = nameof(BUILDING_EyeOfAros); + public static string BUILDING_BearerOfTheCrown = nameof(BUILDING_BearerOfTheCrown); 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 DEFENSE_FireSinger = nameof(DEFENSE_FireSinger); - public static string BUILDING_KeeperOfTheHardenedFlames = "db784823-5199-4bae-bc5e-96174490cd00"; + public static string BUILDING_KeeperOfTheHardenedFlames = nameof(BUILDING_KeeperOfTheHardenedFlames); public static string DEFENSE_Aerovore = nameof(DEFENSE_Aerovore); - public static string UPGRADE_GreavesOfAhqar = "eac602b3-e3ae-4e36-aa14-28532e3485a7"; - public static string UPGRADE_FortifiedIcons = "b16bdb3a-6c61-44da-89c5-5be37c7e9d66"; + public static string UPGRADE_GreavesOfAhqar = nameof(UPGRADE_GreavesOfAhqar); + public static string UPGRADE_FortifiedIcons = nameof(UPGRADE_FortifiedIcons); + public static string UPGRADE_PsalmOfFire = nameof(UPGRADE_PsalmOfFire); public static string UPGRADE_FaithCastBlades = "32087a66-900e-4f25-95f7-de56d5b424c7"; - public static string UPGRADE_RelicOfTheWrathfulGaze = "e6fa5ded-53f5-4914-85bb-1fdff5f32b64"; - public static string UPGRADE_WindStep = "c263fe42-ebde-4145-8b7f-42e5d5d5d10c"; - public static string UPGRADE_ZephyrRange = "0817c6fd-97ca-4619-aa1c-60378c734898"; - public static string UPGRADE_SiroccoScript = "9a11909f-6b9b-40c4-8186-213efd2b1e8d"; + public static string UPGRADE_RelicOfTheWrathfulGaze = nameof(UPGRADE_RelicOfTheWrathfulGaze); + public static string UPGRADE_WindStep = nameof(UPGRADE_WindStep); + public static string UPGRADE_ZephyrRange = nameof(UPGRADE_ZephyrRange); + public static string UPGRADE_SiroccoScript = nameof(UPGRADE_SiroccoScript); + public static string UPGRADE_IconOfTheEnduringVigil = nameof(UPGRADE_IconOfTheEnduringVigil); + public static string UPGRADE_AbsolverHealthUpgrade = nameof(UPGRADE_AbsolverHealthUpgrade); + public static string UPGRADE_Awestrike = nameof(UPGRADE_Awestrike); public static string UPGRADE_IconOfKhastEem = "2919a2e2-0602-4969-a381-7689ce0a1ee5"; public static string UPGRADE_BladesOfTheGodhead = "d3758f7d-4043-4027-a476-7653c52201d9"; - public static string UPGRADE_WingsOfTheKenLatir = "18c25c61-0073-4f7e-abf7-1771fc6a844e"; + public static string UPGRADE_WingsOfTheKenLatir = nameof(UPGRADE_WingsOfTheKenLatir); + public static string UPGRADE_TitheBlades = nameof(UPGRADE_TitheBlades); + public static string UPGRADE_Offering = nameof(UPGRADE_Offering); public static string UPGRADE_BloodMothersFevor = nameof(UPGRADE_BloodMothersFevor); public static string UPGRADE_DenInstinct = "1a3c6180-9c43-43f9-b1a4-8499ffda4f2b"; @@ -139,11 +146,12 @@ public static class DataType 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_Attack1 = nameof(UPGRADE_GENERIC_Attack1); + public static string UPGRADE_GENERIC_Defense1 = nameof(UPGRADE_GENERIC_Defense1); - 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"; + public static string UPGRADE_RadiantWard = nameof(UPGRADE_RadiantWard); public static string UPGRADE_Stalk = "36fbc2c0-e9e3-4f54-a79a-981db908c25c"; public static string UPGRADE_Ambush = "6cf83dc9-717f-4fa9-b417-a3371474a1da"; @@ -223,19 +231,22 @@ public static class DataType public static string PASSIVE_XacalDamage = "69928f20-5332-418f-ada3-694da3f7b199"; public static string PASSIVE_XacalDefense = "PASSIVE_XacalDefense"; - public static string ABILITY_RadiantWard = "db1fc8bd-d86a-4eda-b83c-16e8d0ce4f81"; + public static string ABILITY_RadiantWard = nameof(ABILITY_RadiantWard); public static string PASSIVE_Maledictions = "6cdc109c-157d-433a-b225-192e39c0b613"; public static string ABILITY_BladesOfTheGodhead = "000154ac-faf5-483d-b0bd-e84335891a27"; - public static string ABILITY_Windstep = "a410b296-39f7-42e0-87c8-6cef11eb967c"; - public static string ABILITY_Leap = "aa155b88-125a-4d25-b63f-77987ea6e519"; - public static string ABILITY_OrdainedPassage = "3382a5a5-2d22-4b03-a12c-1974199e8a92"; + public static string ABILITY_Windstep = nameof(ABILITY_Windstep); + public static string ABILITY_Intervention = nameof(ABILITY_Intervention); + public static string ABILITY_OrdainedPassage = nameof(ABILITY_OrdainedPassage); public static string ABILITY_DeployMagi = "5d5bc595-54b7-42e4-a6f5-b000c2128fa9"; public static string ABILITY_DeployAbsolver = "c9b5c9c3-6336-4ffe-86d2-e0a9344726c8"; - public static string ABILITY_Awestrike = "6282b1c3-b11b-43f2-9ce9-b3b300b1f2fa"; + public static string ABILITY_DeploySentinel = nameof(ABILITY_DeploySentinel); + public static string ABILITY_Smite = nameof(ABILITY_Smite); + public static string ABILITY_Awestrike = nameof(ABILITY_Awestrike); + public static string ABILITY_TitheBlades = nameof(ABILITY_TitheBlades); public static string ABILITY_MobilizeQrath = "5b64793e-55eb-4fa2-86d8-ccc5db55465c"; - + 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"; @@ -252,11 +263,11 @@ public static class DataType 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"; - public static string VANGUARD_Saoshin_Ajari = "f208c78f-12f4-4794-9ca4-d711cd0a9d70"; + + public static string VANGUARD_Zentari_Orzum = nameof(VANGUARD_Zentari_Orzum); + public static string VANGUARD_Sceptre_Orzum = nameof(VANGUARD_Sceptre_Orzum); + public static string VANGUARD_ArkMother_Ajari = nameof(VANGUARD_ArkMother_Ajari); + public static string VANGUARD_Saoshin_Ajari = nameof(VANGUARD_Saoshin_Ajari); public static string VANGUARD_RootShepard_Atzlan = nameof(VANGUARD_RootShepard_Atzlan); public static string VANGUARD_Resinant_Atzlan = nameof(VANGUARD_Resinant_Atzlan); public static string VANGUARD_BoneStalker_Xol = "150543a6-7704-4749-9038-f4db157f3f79"; @@ -265,17 +276,17 @@ public static class DataType 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 = 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_Sipari = nameof(UNIT_Sipari); + public static string UNIT_Zephyr = nameof(UNIT_Zephyr); public static string UNIT_Magi = "5516ffc4-2e07-4f2a-bf40-52a1beb7c247"; - public static string UNIT_Dervish = "d82c14ef-918a-4961-9db2-ad9241f8405a"; - public static string UNIT_Absolver = "ac0b0557-f0ec-421c-808c-97cd2c0e1471"; - public static string UNIT_Hallower = "6e11b7d8-b683-4872-ad58-5df19e640f7f"; - public static string UNIT_Castigator = "43f8e5cc-0a8a-42d0-a34c-8a0a9a11b4bf"; - public static string UNIT_Warden = "cf300adc-d9d4-4b5c-94fb-4a4e57bbf90a"; - public static string UNIT_Sentinel = "1eac79a1-27d2-4aad-a7d6-ff490900605b"; - public static string UNIT_Throne = "319c7c58-cb4e-4f33-8028-6bc14b8cbedc"; - public static string UNIT_SharU = "f46097a6-ebb4-42c9-aaf3-c1c3b2c9091f"; + public static string UNIT_Dervish = nameof(UNIT_Dervish); + public static string UNIT_Absolver = nameof(UNIT_Absolver); + public static string UNIT_Hallower = nameof(UNIT_Hallower); + public static string UNIT_Castigator = nameof(UNIT_Castigator); + public static string UNIT_Warden = nameof(UNIT_Warden); + public static string UNIT_Sentinel = nameof(UNIT_Sentinel); + public static string UNIT_Throne = nameof(UNIT_Throne); + public static string UNIT_SharU = nameof(UNIT_SharU); public static string UNIT_MaskedHunter = nameof(UNIT_MaskedHunter); public static string UNIT_Bloodbound = nameof(UNIT_Bloodbound); public static string UNIT_BloodAnchor = nameof(UNIT_BloodAnchor); diff --git a/Model/Entity/Parts/EntityInfoModel.cs b/Model/Entity/Parts/EntityInfoModel.cs index 891096b..7fa875b 100644 --- a/Model/Entity/Parts/EntityInfoModel.cs +++ b/Model/Entity/Parts/EntityInfoModel.cs @@ -9,4 +9,5 @@ public class EntityInfoModel : IEntityPartInterface public string Descriptive { get; set; } = DescriptiveType.None; public string Description { get; set; } = ""; public string Notes { get; set; } = ""; + public string FlavorText { get; set; } = ""; } \ No newline at end of file