game patch(Immortal) 0.0.6.9121a patch updates, plus WIP build calculator code
This commit is contained in:
@@ -4,4 +4,5 @@ public class TaskType
|
||||
{
|
||||
public const string Feature = "Feature";
|
||||
public const string Bug = "Bug";
|
||||
public const string Document = "Document";
|
||||
}
|
||||
@@ -10,7 +10,19 @@ public class BuildOrderModel
|
||||
public string Name { get; set; } = "";
|
||||
public string Color { get; set; } = "red";
|
||||
|
||||
public Dictionary<int, List<EntityModel>> Orders { get; set; } = new()
|
||||
public Dictionary<int, List<EntityModel>> StartedOrders { get; set; } = new()
|
||||
{
|
||||
{
|
||||
0,
|
||||
new List<EntityModel>
|
||||
{
|
||||
EntityModel.Get(DataType.STARTING_Bastion),
|
||||
EntityModel.Get(DataType.STARTING_TownHall_Aru)
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
public Dictionary<int, List<EntityModel>> CompletedOrders { get; set; } = new()
|
||||
{
|
||||
{
|
||||
0,
|
||||
@@ -29,7 +41,7 @@ public class BuildOrderModel
|
||||
|
||||
public List<EntityModel> GetOrdersAt(int interval)
|
||||
{
|
||||
return (from ordersAtTime in Orders
|
||||
return (from ordersAtTime in StartedOrders
|
||||
from orders in ordersAtTime.Value
|
||||
where ordersAtTime.Key == interval
|
||||
select orders).ToList();
|
||||
@@ -37,7 +49,7 @@ public class BuildOrderModel
|
||||
|
||||
public List<EntityModel> GetCompletedAt(int interval)
|
||||
{
|
||||
return (from ordersAtTime in Orders
|
||||
return (from ordersAtTime in StartedOrders
|
||||
from orders in ordersAtTime.Value
|
||||
where ordersAtTime.Key + (orders.Production() == null ? 0 : orders.Production().BuildTime) == interval
|
||||
select orders).ToList();
|
||||
@@ -45,15 +57,16 @@ public class BuildOrderModel
|
||||
|
||||
public List<EntityModel> GetCompletedBefore(int interval)
|
||||
{
|
||||
return (from ordersAtTime in Orders
|
||||
return (from ordersAtTime in StartedOrders
|
||||
from orders in ordersAtTime.Value
|
||||
where ordersAtTime.Key >= interval
|
||||
where ordersAtTime.Key + (orders.Production() == null ? 0 : orders.Production().BuildTime) <= interval
|
||||
select orders).ToList();
|
||||
}
|
||||
|
||||
public List<EntityModel> GetHarvestersCompletedBefore(int interval)
|
||||
{
|
||||
return (from ordersAtTime in Orders
|
||||
return (from ordersAtTime in StartedOrders
|
||||
from orders in ordersAtTime.Value
|
||||
where ordersAtTime.Key + (orders.Production() == null ? 0 : orders.Production().BuildTime) <= interval
|
||||
where orders.Harvest() != null
|
||||
|
||||
+163
-52
@@ -55,8 +55,8 @@ public class DATA
|
||||
DataType.TEAPOT_FlyingTeapot, new EntityModel(DataType.TEAPOT_FlyingTeapot, EntityType.Teapot)
|
||||
.AddPart(new EntityInfoModel
|
||||
{
|
||||
Name = "Flying Teapot", Description = "Basic observer. Can fly and see hidden units",
|
||||
Notes = @"Much flying, Wow!"
|
||||
Name = "Flying Teapot", Description = "Basic observer. Can fly and see hidden units within 1000 range.",
|
||||
Notes = @"Doesn't take up a scout slot."
|
||||
})
|
||||
.AddPart(new EntityRequirementModel { Id = DataType.TEAPOT_Teapot })
|
||||
.AddPart(new EntityProductionModel { Alloy = 100, Ether = 50 })
|
||||
@@ -259,6 +259,7 @@ public class DATA
|
||||
.AddPart(new EntityIdPyreSpellModel { Id = DataType.ISPELL_SummonGroveGuardian })
|
||||
.AddPart(new EntityIdPyreSpellModel { Id = DataType.ISPELL_InfuseTroops })
|
||||
.AddPart(new EntityIdPyreSpellModel { Id = DataType.ISPELL_ConstructBloodWell })
|
||||
.AddPart(new EntityIdPyreSpellModel { Id = DataType.ISPELL_MarkPrey })
|
||||
.AddPart(new EntityIdPyreSpellModel { Id = DataType.ISPELL_TheGreatHunt })
|
||||
.AddPart(new EntityIdVanguardModel { Id = DataType.VANGUARD_BoneStalker_Xol })
|
||||
.AddPart(new EntityIdVanguardModel { Id = DataType.VANGUARD_WhiteWoodReaper_Xol })
|
||||
@@ -319,7 +320,12 @@ public class DATA
|
||||
DataType.IPASSIVE_MothersHunger,
|
||||
new EntityModel(DataType.IPASSIVE_MothersHunger, EntityType.Passive)
|
||||
.AddPart(new EntityInfoModel
|
||||
{ Name = "Mother's Hunger", Description = "Mala's Blood Wells grant you pyre for nearby non-quitl deaths." })
|
||||
{
|
||||
Name = "Mother's Hunger",
|
||||
Description = "Mala's Blood Wells grant you pyre for nearby non-quitl deaths, based on the supply.",
|
||||
Notes = "+1 per supply"
|
||||
|
||||
})
|
||||
},
|
||||
{
|
||||
DataType.IPASSIVE_StalkersSense,
|
||||
@@ -458,7 +464,10 @@ public class DATA
|
||||
DataType.VANGUARD_Sceptre_Orzum,
|
||||
new EntityModel(DataType.VANGUARD_Sceptre_Orzum, EntityType.Army)
|
||||
.AddPart(new EntityInfoModel
|
||||
{ Name = "Sceptre", Descriptive = DescriptiveType.Harrier, Description = "" })
|
||||
{
|
||||
Name = "Sceptre", Descriptive = DescriptiveType.Harrier, Description = "",
|
||||
Notes = "Loses 16 energy per second when moving."
|
||||
})
|
||||
.AddPart(new EntityTierModel { Tier = 3 })
|
||||
.AddPart(new EntityHotkeyModel { Hotkey = "R", HoldSpace = true, HotkeyGroup = "Z" })
|
||||
.AddPart(new EntityFactionModel { Faction = FactionType.QRath })
|
||||
@@ -631,7 +640,7 @@ public class DATA
|
||||
.AddPart(new EntityFactionModel { Faction = FactionType.Aru })
|
||||
.AddPart(new EntityVanguardAddedModel
|
||||
{ ReplaceId = DataType.UNIT_MaskedHunter, ImmortalId = DataType.IMMORTAL_Xol })
|
||||
.AddPart(new EntityProductionModel { Alloy = 50, Ether = 0, BuildTime = 40 })
|
||||
.AddPart(new EntityProductionModel { Alloy = 50, Ether = 0, BuildTime = 35 })
|
||||
.AddPart(new EntitySupplyModel { Takes = 2 })
|
||||
.AddPart(new EntityVitalityModel
|
||||
{ Health = 85, DefenseLayer = 10, Armor = ArmorType.Light, IsEtheric = false })
|
||||
@@ -687,6 +696,7 @@ public class DATA
|
||||
.AddPart(new EntityMovementModel { Speed = 400, Movement = MovementType.Ground })
|
||||
.AddPart(new EntityWeaponModel
|
||||
{ Damage = 5, Range = 50, AttacksPerSecond = 1.887f, Targets = TargetType.Ground })
|
||||
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_HarvestAlloy })
|
||||
},
|
||||
{
|
||||
DataType.UNIT_Sipari,
|
||||
@@ -790,6 +800,8 @@ public class DATA
|
||||
Damage = 20, MediumDamage = 24, HeavyDamage = 28, Range = 500, AttacksPerSecond = 0.667f,
|
||||
Targets = TargetType.All
|
||||
})
|
||||
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_WindStep })
|
||||
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_ZephyrRange })
|
||||
.AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_Windstep })
|
||||
},
|
||||
{
|
||||
@@ -815,11 +827,13 @@ public class DATA
|
||||
.AddPart(new EntityMovementModel { Speed = 435, Movement = MovementType.Ground })
|
||||
.AddPart(new EntityWeaponModel
|
||||
{
|
||||
Damage = 20, LightDamage = 40, MediumDamage = 30, Range = 250, AttacksPerSecond = 0.5f,
|
||||
LightDamage = 32, MediumDamage = 24, Damage = 16, Range = 250, AttacksPerSecond = 0.5f,
|
||||
Targets = TargetType.Ground
|
||||
})
|
||||
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_SiroccoScript })
|
||||
.AddPart(new EntityIdPassiveModel(){Id = DataType.PASSIVE_RadiantWard})
|
||||
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_RadiantWard })
|
||||
.AddPart(new EntityIdAbilityModel {Id = DataType.ABILITY_RadiantWard})
|
||||
.AddPart(new EntityIdPassiveModel(){Id = DataType.PASSIVE_SiroccoScript})
|
||||
|
||||
},
|
||||
{
|
||||
@@ -829,7 +843,8 @@ public class DATA
|
||||
{
|
||||
Name = "Absolver", Descriptive = DescriptiveType.Zone_Control,
|
||||
Description =
|
||||
"Zone Control (Ground Unit) - Deploys to gain increased rate of fire to hold a position. Can only attack ground."
|
||||
"Zone Control (Ground Unit) - Deploys to gain increased rate of fire to hold a position. Can only attack ground.",
|
||||
Notes = "Deploy time is 2 seconds. Mobilize time is 1.5 seconds."
|
||||
})
|
||||
.AddPart(new EntityTierModel { Tier = 2 })
|
||||
.AddPart(new EntityHotkeyModel { Hotkey = "F", HotkeyGroup = "Z" })
|
||||
@@ -886,7 +901,7 @@ public class DATA
|
||||
.AddPart(new EntityWeaponModel
|
||||
{ Damage = 8, Range = 500, AttacksPerSecond = 1.429f, Targets = TargetType.Ground })
|
||||
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_RelicOfTheWrathfulGaze })
|
||||
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_Maledictions })
|
||||
.AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_Maledictions })
|
||||
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_RelicOfTheWrathfulGaze })
|
||||
},
|
||||
{
|
||||
@@ -922,6 +937,8 @@ public class DATA
|
||||
Damage = 60, MediumDamage = 80, HeavyDamage = 100, Range = 1300, AttacksPerSecond = 0.143f,
|
||||
Targets = TargetType.Ground
|
||||
})
|
||||
|
||||
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_HallowedRuin })
|
||||
},
|
||||
{
|
||||
DataType.UNIT_Sentinel,
|
||||
@@ -1059,6 +1076,7 @@ public class DATA
|
||||
.AddPart(new EntityMovementModel { Speed = 400, Movement = MovementType.Ground })
|
||||
.AddPart(new EntityWeaponModel
|
||||
{ Damage = 8, Range = 40, AttacksPerSecond = 1.25f, Targets = TargetType.Ground })
|
||||
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_HarvestAlloy })
|
||||
},
|
||||
{
|
||||
DataType.UNIT_MaskedHunter,
|
||||
@@ -1088,6 +1106,7 @@ public class DATA
|
||||
{ Damage = 7, Range = 400, AttacksPerSecond = 1.4f, Targets = TargetType.All, HeavyDamage = 6 })
|
||||
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_Offering })
|
||||
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_BloodMothersFevor })
|
||||
.AddPart(new EntityIdPassiveModel { Id = DataType.ABILITY_Offering })
|
||||
},
|
||||
{
|
||||
DataType.UNIT_Xacal,
|
||||
@@ -1148,6 +1167,8 @@ public class DATA
|
||||
Targets = TargetType.Ground
|
||||
})
|
||||
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_QuenchingScythes })
|
||||
|
||||
.AddPart(new EntityIdPassiveModel { Id = DataType.ABILITY_CullingStrike })
|
||||
},
|
||||
{
|
||||
DataType.UNIT_RedSeer,
|
||||
@@ -1311,6 +1332,8 @@ public class DATA
|
||||
TargetType.Air
|
||||
})
|
||||
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_AaroxBurn })
|
||||
|
||||
.AddPart(new EntityIdAbilityModel() { Id = DataType.ABILITY_DiveBomb })
|
||||
},
|
||||
{
|
||||
DataType.UNIT_Thrum,
|
||||
@@ -1355,6 +1378,7 @@ public class DATA
|
||||
.AddPart(new EntityWeaponModel
|
||||
{ Damage = 9, Range = 500, AttacksPerSecond = 0.714f, Targets = TargetType.Ground })
|
||||
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_GuidingAmber })
|
||||
.AddPart(new EntityIdPassiveModel() { Id = DataType.PASSIVE_WraithBowRange })
|
||||
},
|
||||
{
|
||||
DataType.UNIT_Behemoth,
|
||||
@@ -1383,7 +1407,7 @@ public class DATA
|
||||
Targets = TargetType.Ground
|
||||
})
|
||||
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_BehemothCapacity })
|
||||
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_QuitlStorage })
|
||||
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_BehemothCapacity })
|
||||
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_QuitlStorage2 })
|
||||
|
||||
|
||||
@@ -1417,6 +1441,19 @@ public class DATA
|
||||
})
|
||||
},
|
||||
|
||||
{
|
||||
DataType.UPGRADE_RadiantWard,
|
||||
new EntityModel(DataType.UPGRADE_RadiantWard, EntityType.Tech)
|
||||
.AddPart(new EntityInfoModel
|
||||
{
|
||||
Name = "Research Radiant Ward", Descriptive = DescriptiveType.Upgrade,
|
||||
Description = "Unlocks the dervish's Radiant Ward ability"
|
||||
})
|
||||
.AddPart(new EntityHotkeyModel { Hotkey = "V", HotkeyGroup = "TAB" })
|
||||
.AddPart(new EntityFactionModel { Faction = FactionType.QRath })
|
||||
.AddPart(new EntityProductionModel { Alloy = 80, Ether = 80, BuildTime = 34 })
|
||||
},
|
||||
|
||||
{
|
||||
DataType.UPGRADE_FortifiedIcons,
|
||||
new EntityModel(DataType.UPGRADE_FortifiedIcons, EntityType.Tech)
|
||||
@@ -1498,7 +1535,7 @@ public class DATA
|
||||
.AddPart(new EntityInfoModel
|
||||
{
|
||||
Name = "Sirocco Script", Descriptive = DescriptiveType.Upgrade,
|
||||
Description = "Increases the Dervish's movement speed by 50%."
|
||||
Description = "Grant's the Dervish Sirocco Script"
|
||||
})
|
||||
.AddPart(new EntityHotkeyModel { Hotkey = "F", HotkeyGroup = "TAB" })
|
||||
.AddPart(new EntityFactionModel { Faction = FactionType.QRath })
|
||||
@@ -1563,7 +1600,10 @@ public class DATA
|
||||
DataType.UPGRADE_Offering,
|
||||
new EntityModel(DataType.UPGRADE_Offering, EntityType.Tech)
|
||||
.AddPart(new EntityInfoModel
|
||||
{ Name = "Offering", Descriptive = DescriptiveType.Upgrade, Description = "Unlocks Offering" })
|
||||
{
|
||||
Name = "Offering",
|
||||
Descriptive = DescriptiveType.Upgrade,
|
||||
Description = "Unlocks Offering" })
|
||||
.AddPart(new EntityHotkeyModel { Hotkey = "W", HotkeyGroup = "TAB" })
|
||||
.AddPart(new EntityFactionModel { Faction = FactionType.Aru })
|
||||
.AddPart(new EntityRequirementModel
|
||||
@@ -1684,9 +1724,47 @@ public class DATA
|
||||
Requirement = RequirementType.Research_Building
|
||||
})
|
||||
.AddPart(new EntityProductionModel { Alloy = 50, Ether = 75, BuildTime = 29 })
|
||||
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_WraithBowRange })
|
||||
.AddPart(new EntityIdPassiveModel() { Id = DataType.PASSIVE_WraithBowRange })
|
||||
},
|
||||
|
||||
{
|
||||
DataType.UPGRADE_Stalk,
|
||||
new EntityModel(DataType.UPGRADE_Stalk, EntityType.Tech)
|
||||
.AddPart(new EntityInfoModel
|
||||
{
|
||||
Name = "Research Stalk",
|
||||
Description = "Unlocks the Bone Stalker's Stabilize",
|
||||
Descriptive = DescriptiveType.Upgrade
|
||||
})
|
||||
.AddPart(new EntityHotkeyModel { Hotkey = "W", HotkeyGroup = "TAB", HoldSpace = false })
|
||||
.AddPart(new EntityFactionModel { Faction = FactionType.Aru })
|
||||
.AddPart(new EntityRequirementModel
|
||||
{
|
||||
Id = DataType.BUILDING_Neurocyte,
|
||||
Requirement = RequirementType.Research_Building
|
||||
})
|
||||
.AddPart(new EntityProductionModel { Alloy = 100, Ether = 80, BuildTime = 60 })
|
||||
},
|
||||
|
||||
{
|
||||
DataType.UPGRADE_Ambush,
|
||||
new EntityModel(DataType.UPGRADE_Ambush, EntityType.Tech)
|
||||
.AddPart(new EntityInfoModel
|
||||
{
|
||||
Name = "Research Ambush",
|
||||
Description = "When Hidden, the Bone Stalker's next attack deals double damage",
|
||||
Descriptive = DescriptiveType.Upgrade
|
||||
})
|
||||
.AddPart(new EntityHotkeyModel { Hotkey = "V", HotkeyGroup = "TAB", HoldSpace = false })
|
||||
.AddPart(new EntityFactionModel { Faction = FactionType.Aru })
|
||||
.AddPart(new EntityRequirementModel
|
||||
{
|
||||
Id = DataType.BUILDING_RedVale,
|
||||
Requirement = RequirementType.Research_Building
|
||||
})
|
||||
.AddPart(new EntityProductionModel { Alloy = 100, Ether = 125, BuildTime = 80 })
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
DataType.UPGRADE_BloodPlague,
|
||||
new EntityModel(DataType.UPGRADE_BloodPlague, EntityType.Tech)
|
||||
@@ -1726,7 +1804,7 @@ public class DATA
|
||||
// Neutral
|
||||
{
|
||||
DataType.PASSIVE_BastionPassives,
|
||||
new EntityModel(DataType.PASSIVE_Respite, EntityType.Passive)
|
||||
new EntityModel(DataType.PASSIVE_BastionPassives, EntityType.Passive)
|
||||
.AddPart(new EntityInfoModel
|
||||
{
|
||||
Name = "(Scouts and Pyre)", Descriptive = DescriptiveType.Passive,
|
||||
@@ -1742,7 +1820,7 @@ public class DATA
|
||||
{
|
||||
Name = "Respite", Descriptive = DescriptiveType.Passive,
|
||||
Description =
|
||||
@"Nearby units will slowly heal after not attacking for several seconds."
|
||||
@"Nearby units will slowly heal after not attacking or being attacked for 10 seconds."
|
||||
})
|
||||
.AddPart(new EntityFactionModel { Faction = FactionType.Any })
|
||||
},
|
||||
@@ -1854,6 +1932,18 @@ public class DATA
|
||||
.AddPart(new EntityFactionModel { Faction = FactionType.QRath })
|
||||
},
|
||||
|
||||
{
|
||||
DataType.PASSIVE_SiroccoScript,
|
||||
new EntityModel(DataType.PASSIVE_SiroccoScript, EntityType.Passive)
|
||||
.AddPart(new EntityInfoModel
|
||||
{
|
||||
Name = "Sirocco Script Rites", Descriptive = DescriptiveType.Passive,
|
||||
Description = @"Increases the derish's movement speed"
|
||||
})
|
||||
.AddPart(new EntityRequirementModel(){ Id = DataType.UPGRADE_SiroccoScript})
|
||||
.AddPart(new EntityFactionModel { Faction = FactionType.QRath })
|
||||
},
|
||||
|
||||
{
|
||||
DataType.PASSIVE_HallowingRites,
|
||||
new EntityModel(DataType.PASSIVE_HallowingRites, EntityType.Passive)
|
||||
@@ -1956,8 +2046,8 @@ public class DATA
|
||||
},
|
||||
|
||||
{
|
||||
DataType.PASSIVE_QuitlStorage,
|
||||
new EntityModel(DataType.PASSIVE_QuitlStorage, EntityType.Passive)
|
||||
DataType.PASSIVE_BehemothCapacity,
|
||||
new EntityModel(DataType.PASSIVE_BehemothCapacity, EntityType.Passive)
|
||||
.AddPart(new EntityInfoModel
|
||||
{
|
||||
Name = "Quitl Storage", Descriptive = DescriptiveType.Passive,
|
||||
@@ -2000,17 +2090,7 @@ public class DATA
|
||||
.AddPart(new EntityFactionModel { Faction = FactionType.Aru })
|
||||
},
|
||||
|
||||
{
|
||||
DataType.PASSIVE_RadiantWard,
|
||||
new EntityModel(DataType.PASSIVE_RadiantWard, EntityType.Passive)
|
||||
.AddPart(new EntityInfoModel
|
||||
{
|
||||
Name = "Radiant Ward", Descriptive = DescriptiveType.Applies_Debuff,
|
||||
Description = @"This unit is revealed?",
|
||||
Notes = "Not implemented."
|
||||
})
|
||||
.AddPart(new EntityFactionModel { Faction = FactionType.QRath })
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
DataType.PASSIVE_Stalk,
|
||||
@@ -2018,10 +2098,11 @@ public class DATA
|
||||
.AddPart(new EntityInfoModel
|
||||
{
|
||||
Name = "Stalk", Descriptive = DescriptiveType.Passive,
|
||||
Description = @"This unit has hidden when stabilized.",
|
||||
Notes = "Not implemented."
|
||||
Description = @"After remaining stationary for several seconds, gain Hidden 3 and a movement speed boost.",
|
||||
Notes = "Lose hidden on attacking"
|
||||
})
|
||||
.AddPart(new EntityFactionModel { Faction = FactionType.Aru })
|
||||
.AddPart(new EntityRequirementModel{Id=DataType.UPGRADE_Stalk})
|
||||
},
|
||||
|
||||
{
|
||||
@@ -2029,9 +2110,20 @@ public class DATA
|
||||
new EntityModel(DataType.PASSIVE_Stalk, EntityType.Passive)
|
||||
.AddPart(new EntityInfoModel
|
||||
{
|
||||
Name = "Stalk", Descriptive = DescriptiveType.Passive,
|
||||
Name = "Ambush", Descriptive = DescriptiveType.Passive,
|
||||
Description = @"This unit deals double damage when attacking from hidden.",
|
||||
Notes = "Not implemented."
|
||||
})
|
||||
.AddPart(new EntityFactionModel { Faction = FactionType.Aru })
|
||||
.AddPart(new EntityRequirementModel(){Id=DataType.UPGRADE_Ambush})
|
||||
},
|
||||
|
||||
{
|
||||
DataType.PASSIVE_HiddenX,
|
||||
new EntityModel(DataType.PASSIVE_HiddenX, EntityType.Passive)
|
||||
.AddPart(new EntityInfoModel
|
||||
{
|
||||
Name = "Hidden X", Descriptive = DescriptiveType.Passive,
|
||||
Description = @"This unit cannot be seen unless enemies units are within X.",
|
||||
})
|
||||
.AddPart(new EntityFactionModel { Faction = FactionType.Aru })
|
||||
},
|
||||
@@ -2085,19 +2177,6 @@ public class DATA
|
||||
.AddPart(new EntityRequirementModel(){ Id = DataType.UPGRADE_FortifiedIcons, Requirement = RequirementType.Research_Upgrade})
|
||||
.AddPart(new EntityFactionModel { Faction = FactionType.QRath })
|
||||
},
|
||||
|
||||
{
|
||||
DataType.PASSIVE_Maledictions,
|
||||
new EntityModel(DataType.PASSIVE_Maledictions, EntityType.Passive)
|
||||
.AddPart(new EntityInfoModel
|
||||
{
|
||||
Name = "Maledictions", Descriptive = DescriptiveType.Applies_Debuff,
|
||||
Description = @"Stun ground unit? With Maledictions spell.",
|
||||
Notes = "Not implemented"
|
||||
})
|
||||
.AddPart(new EntityFactionModel { Faction = FactionType.QRath })
|
||||
},
|
||||
|
||||
{
|
||||
DataType.PASSIVE_MendingCommand,
|
||||
new EntityModel(DataType.PASSIVE_MendingCommand, EntityType.Passive)
|
||||
@@ -2246,6 +2325,32 @@ public class DATA
|
||||
|
||||
// Abilities
|
||||
// Q'Rath
|
||||
{
|
||||
DataType.ABILITY_RadiantWard,
|
||||
new EntityModel(DataType.ABILITY_RadiantWard, EntityType.Ability)
|
||||
.AddPart(new EntityInfoModel
|
||||
{
|
||||
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.",
|
||||
})
|
||||
.AddPart(new EntityFactionModel { Faction = FactionType.QRath })
|
||||
.AddPart(new EntityProductionModel { DefensiveLayer = 30, Cooldown = 40} )
|
||||
.AddPart(new EntityRequirementModel { Id = DataType.UPGRADE_RadiantWard })
|
||||
.AddPart(new EntityVitalityModel {Health = 30, DefenseLayer = 30, Lasts = 30, Armor = ArmorType.Light, IsStructure = true})
|
||||
},
|
||||
|
||||
{
|
||||
DataType.ABILITY_Maledictions,
|
||||
new EntityModel(DataType.ABILITY_Maledictions, EntityType.Ability)
|
||||
.AddPart(new EntityInfoModel
|
||||
{
|
||||
Name = "Maledictions", Descriptive = DescriptiveType.Ability,
|
||||
Description = @"Stun ground unit? With Maledictions spell.",
|
||||
Notes = "Not implemented"
|
||||
})
|
||||
.AddPart(new EntityFactionModel { Faction = FactionType.QRath })
|
||||
},
|
||||
|
||||
{
|
||||
DataType.ABILITY_BladesOfTheGodhead,
|
||||
new EntityModel(DataType.ABILITY_BladesOfTheGodhead, EntityType.Ability)
|
||||
@@ -2368,10 +2473,12 @@ public class DATA
|
||||
{
|
||||
Name = "Offering", Descriptive = DescriptiveType.Ability,
|
||||
Description =
|
||||
"Sacrifices 10 life to increase range, speed, and attack speed for several seconds."
|
||||
"Sacrifices 10 life to give Masked Hunters +3 damage for 3 shots. And increased speed and attack speed."
|
||||
})
|
||||
.AddPart(new EntityHotkeyModel { Hotkey = "E", HotkeyGroup = "D" })
|
||||
.AddPart(new EntityFactionModel { Faction = FactionType.Aru })
|
||||
.AddPart(new EntityRequirementModel(){ Id= DataType.UPGRADE_Offering})
|
||||
|
||||
},
|
||||
{
|
||||
DataType.ABILITY_DiveBomb,
|
||||
@@ -2405,7 +2512,7 @@ public class DATA
|
||||
{
|
||||
Name = "Lethal Bond", Descriptive = DescriptiveType.Ability,
|
||||
Description =
|
||||
"After a short delay, enemy units in the target area receive a debuff which causes them to take double damage from all attacks for a duration."
|
||||
"After a short delay, enemy units in the target area receive a debuff which causes them to take double damage from all attacks for a duration. Also gives the White Wood Reaper invisibility if it affects at least 1 enemy"
|
||||
})
|
||||
.AddPart(new EntityHotkeyModel { Hotkey = "R", HotkeyGroup = "D" })
|
||||
.AddPart(new EntityVanguardAddedModel
|
||||
@@ -2484,7 +2591,7 @@ public class DATA
|
||||
Description =
|
||||
"Deals damage over time in an area and marks affected units for several seconds. Units that die while marked spawn a quitl.",
|
||||
Notes =
|
||||
"Deals 20 damage + 15% of max life of the target immediately upon affecting the enemy unit. It deals the same damage again after 8 seconds. If the unit dies during those 8 seconds (including the final burst), spawns 1 quitl every 2 supply of the dead unit, rounded up"
|
||||
"Deals 10 damage + 5% of max life of the target immediately upon affecting the enemy unit. It deals 15 damage + 15% after 8 seconds. If the unit dies during those 8 seconds (including the final burst), spawns 1 quitl every 2 supply of the dead unit, rounded up. Stacking only refreshes duration of debuff."
|
||||
})
|
||||
.AddPart(new EntityHotkeyModel { Hotkey = "W", HotkeyGroup = "D" })
|
||||
.AddPart(new EntityVanguardAddedModel { ImmortalId = DataType.IMMORTAL_Mala })
|
||||
@@ -2530,6 +2637,7 @@ public class DATA
|
||||
.AddPart(new EntityMovementModel { Speed = 210, Movement = MovementType.Ground })
|
||||
.AddPart(new EntityWeaponModel
|
||||
{ Damage = 125, Range = 1500, AttacksPerSecond = 0.175f, Targets = TargetType.Ground })
|
||||
.AddPart(new EntityIdPassiveModel(){Id = DataType.PASSIVE_HiddenX})
|
||||
},
|
||||
// Pyre Spells
|
||||
// Q'Rath
|
||||
@@ -2691,16 +2799,19 @@ public class DATA
|
||||
{
|
||||
DataType.ISPELL_MarkPrey,
|
||||
new EntityModel(DataType.ISPELL_MarkPrey, EntityType.Pyre_Spell)
|
||||
.AddPart(new EntityInfoModel { Name = "Mark Prey", Description = "Knowing where things are lets you hunt them?", Notes = "Not implemented."})
|
||||
.AddPart(new EntityInfoModel { Name = "Mark Prey",
|
||||
Description = @"Enemy units in the target area are <b>Revealed</b> through fog of war. Units still in the area after a short delay are marked for 10 seconds to take bonus damage and provide Pyre when killed.",
|
||||
Notes = "+3 pyre for kills"
|
||||
})
|
||||
.AddPart(new EntityHotkeyModel { Hotkey = "E", HotkeyGroup = "1" })
|
||||
.AddPart(new EntityFactionModel { Faction = FactionType.Aru })
|
||||
.AddPart(new EntityVanguardAddedModel { ImmortalId = DataType.IMMORTAL_Xol })
|
||||
.AddPart(new EntityProductionModel { })
|
||||
.AddPart(new EntityProductionModel { Cooldown = 15, Pyre = 25})
|
||||
},
|
||||
{
|
||||
DataType.ISPELL_TheGreatHunt,
|
||||
new EntityModel(DataType.ISPELL_TheGreatHunt, EntityType.Pyre_Spell)
|
||||
.AddPart(new EntityInfoModel { Name = "The Great Hunt", Description = "Reduces enemy vision to 300."})
|
||||
.AddPart(new EntityInfoModel { Name = "The Great Hunt", Description = "Enemy unit and structures have their vision reduce to 3 for a short time."})
|
||||
.AddPart(new EntityHotkeyModel { Hotkey = "R", HotkeyGroup = "1" })
|
||||
.AddPart(new EntityFactionModel { Faction = FactionType.Aru })
|
||||
.AddPart(new EntityVanguardAddedModel { ImmortalId = DataType.IMMORTAL_Xol })
|
||||
|
||||
@@ -114,17 +114,24 @@ public static class DataType
|
||||
public static string UPGRADE_BehemothCapacity = "d0390dd2-d9a5-4b20-9d8b-f554f4c52143";
|
||||
public static string UPGRADE_BloodPlague = "9c207e21-f595-49d0-967d-f30ca8cc3745";
|
||||
public static string UPGRADE_BirthingStorm = "0cb2f1a4-03b3-491b-9db3-d2d4590ede3a";
|
||||
|
||||
public static string UPGRADE_RadiantWard = "c8acc6d0-9f26-475a-aff4-4e2b2f9657f2";
|
||||
|
||||
public static string UPGRADE_Stalk = "36fbc2c0-e9e3-4f54-a79a-981db908c25c";
|
||||
public static string UPGRADE_Ambush = "6cf83dc9-717f-4fa9-b417-a3371474a1da";
|
||||
|
||||
public static string PASSIVE_WraithBowRange = "196dd8a6-2044-44e1-aac4-fbaa40552699";
|
||||
|
||||
|
||||
public static string PASSIVE_HiddenX = "7b819996-ffc0-4e07-9c11-c91c5f9d467b";
|
||||
|
||||
|
||||
public static string PASSIVE_Respite = "607c39f4-a957-4a7a-8fc6-a239f9e570ec";
|
||||
public static string PASSIVE_BastionPassives = "ea42b9cb-2456-4ed2-b490-fcfde12c6153";
|
||||
public static string PASSIVE_HallowedWarrior = "fea43ced-33f3-4531-af7d-740c1789fec1";
|
||||
public static string PASSIVE_GreavesOfAhqar = "3c408d75-7bee-4089-84c0-74620ac708b6";
|
||||
public static string PASSIVE_FortifiedIcons = "35f3f02f-e22e-44be-b2ea-82972c383308";
|
||||
|
||||
public static string PASSIVE_Maledictions = "6cdc109c-157d-433a-b225-192e39c0b613";
|
||||
public static string PASSIVE_HarvestAlloy = "84bacf5a-b106-455c-8cff-66c3998404f8";
|
||||
public static string PASSIVE_RelicOfTheWrathfulGaze = "ccebc0c9-cfd5-465a-8a5d-2495bd745a83";
|
||||
|
||||
@@ -139,6 +146,8 @@ public static class DataType
|
||||
|
||||
public static string PASSIVE_ThroneMovingShot = "699423ed-7410-4daf-8b07-9dc733a8bf55";
|
||||
|
||||
public static string PASSIVE_SiroccoScript = "11c21afa-ff88-4e42-9f97-a1d1595b115c";
|
||||
|
||||
public static string PASSIVE_HallowingRites = "9c8ae47b-954e-4a17-8f35-f128c9114b61";
|
||||
public static string PASSIVE_RegentsWrath = "f111f004-6548-4430-9d13-ef44ab108ae7";
|
||||
public static string PASSIVE_PsalmOfFire = "d28f6b7c-d319-4fb8-bdd4-92ede40a0751";
|
||||
@@ -146,10 +155,9 @@ public static class DataType
|
||||
public static string PASSIVE_HallowedGround = "bdb28984-246f-4642-84ab-9e83c02b3e2e";
|
||||
public static string PASSIVE_CastFromLife = "3cc734de-f8e7-4e69-9fa5-bdf725c4941b";
|
||||
public static string PASSIVE_Rootway = "46768d4a-5047-4973-b5ca-995cda25ee8d";
|
||||
public static string PASSIVE_QuitlStorage = "a210f109-d3ac-44d4-9724-601c795a2394";
|
||||
public static string PASSIVE_BehemothCapacity = "a210f109-d3ac-44d4-9724-601c795a2394";
|
||||
public static string PASSIVE_QuitlStorage2 = "0b27b863-fce5-40e4-96c7-6df94bdd92b9";
|
||||
public static string PASSIVE_Temporary = "940c04f1-df0b-4cf7-9514-09dfd9009554";
|
||||
public static string PASSIVE_RadiantWard = "db1fc8bd-d86a-4eda-b83c-16e8d0ce4f81";
|
||||
public static string PASSIVE_Stalk = "9c107bfd-0050-4670-91b8-f9a8d771225d";
|
||||
public static string PASSIVE_Ambush = "9d0a9482-0303-4a15-bb88-972f6ae60a39";
|
||||
|
||||
@@ -177,6 +185,10 @@ public static class DataType
|
||||
public static string PASSIVE_FireQuitl = "80f6b382-da1c-49a1-8235-1ea37983ea54";
|
||||
public static string PASSIVE_XacalDamage = "69928f20-5332-418f-ada3-694da3f7b199";
|
||||
|
||||
public static string ABILITY_RadiantWard = "db1fc8bd-d86a-4eda-b83c-16e8d0ce4f81";
|
||||
|
||||
public static string ABILITY_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";
|
||||
|
||||
@@ -12,8 +12,8 @@ namespace Model.Entity;
|
||||
|
||||
public class EntityModel
|
||||
{
|
||||
public static readonly string GameVersion = "0.0.6.8900a";
|
||||
|
||||
public static readonly string GameVersion = "0.0.6.9121a";
|
||||
|
||||
private static Dictionary<string, EntityModel> _database= null!;
|
||||
|
||||
private static List<EntityModel> _entityModels= null!;
|
||||
|
||||
@@ -10,6 +10,8 @@ public class EntityProductionModel : IEntityPartInterface
|
||||
public int Pyre { get; set; } = 0;
|
||||
|
||||
public int Energy { get; set; } = 0;
|
||||
|
||||
public int DefensiveLayer { get; set; } = 0;
|
||||
public int BuildTime { get; set; } = 0;
|
||||
|
||||
// Remove cooldown as a cost, and move into ability stats
|
||||
|
||||
@@ -7,6 +7,8 @@ public class EntityVitalityModel : IEntityPartInterface
|
||||
public string Type { get; set; } = "EntityVitalityModel";
|
||||
public int Health { get; set; } = 0;
|
||||
public int DefenseLayer { get; set; } = 0;
|
||||
|
||||
public int Lasts { get; set; } = 0;
|
||||
public string Defense { get; set; } = DefenseType.None;
|
||||
public string Armor { get; set; } = ArmorType.Light;
|
||||
public bool IsEtheric { get; set; } = false;
|
||||
|
||||
Reference in New Issue
Block a user