Some stub map placeholder for future content

This commit is contained in:
6d486f49
2025-11-07 12:04:11 -05:00
parent 86580a9f5d
commit 8ce9084ffb
14 changed files with 255 additions and 23 deletions
@@ -10,8 +10,7 @@
var vanguardAdded = entity.VanguardAdded(); var vanguardAdded = entity.VanguardAdded();
var replaced = EntityData.Get()[vanguardAdded.ReplaceId]; var replaced = EntityData.Get()[vanguardAdded.ReplaceId];
var immortal = EntityData.Get()[vanguardAdded.ImmortalId]; var immortal = EntityData.Get()[vanguardAdded.ImmortalId];
var productionBuilding = (from building in requirements var productionBuilding = (from building in requirements
where building.Requirement == RequirementType.Production_Building where building.Requirement == RequirementType.Production_Building
select building).First().Id; select building).First().Id;
+8 -8
View File
@@ -38,7 +38,7 @@ public partial class EntityData
{ Alloy = 450, BuildTime = 90, RequiresWorker = true, ConsumesWorker = true }) { Alloy = 450, BuildTime = 90, RequiresWorker = true, ConsumesWorker = true })
.AddPart(new EntityVitalityModel .AddPart(new EntityVitalityModel
{ Health = 2300, DefenseLayer = 1200, Armor = ArmorType.Heavy, IsStructure = true }) { Health = 2300, DefenseLayer = 1200, Armor = ArmorType.Heavy, IsStructure = true })
.AddPart(new EntityHarvestModel .AddPart(new EntityHarvesterModel
{ {
HarvestedPerInterval = 1, RequiresWorker = true, Resource = ResourceType.Alloy, Slots = 2, HarvestedPerInterval = 1, RequiresWorker = true, Resource = ResourceType.Alloy, Slots = 2,
TotalAmount = 3600 TotalAmount = 3600
@@ -61,7 +61,7 @@ public partial class EntityData
Requirement = RequirementType.Morph Requirement = RequirementType.Morph
}) })
.AddPart(new EntityProductionModel { Alloy = 400, BuildTime = 20, RequiresWorker = false }) .AddPart(new EntityProductionModel { Alloy = 400, BuildTime = 20, RequiresWorker = false })
.AddPart(new EntityHarvestModel .AddPart(new EntityHarvesterModel
{ {
HarvestedPerInterval = 1, RequiresWorker = true, Resource = ResourceType.Alloy, Slots = 4, HarvestedPerInterval = 1, RequiresWorker = true, Resource = ResourceType.Alloy, Slots = 4,
TotalAmount = 3600 TotalAmount = 3600
@@ -83,7 +83,7 @@ public partial class EntityData
Requirement = RequirementType.Morph Requirement = RequirementType.Morph
}) })
.AddPart(new EntityProductionModel { Alloy = 50, Cooldown = 50, RequiresWorker = false }) .AddPart(new EntityProductionModel { Alloy = 50, Cooldown = 50, RequiresWorker = false })
.AddPart(new EntityHarvestModel .AddPart(new EntityHarvesterModel
{ {
HarvestedPerInterval = 2, RequiresWorker = false, Resource = ResourceType.Ether, Slots = 1, HarvestedPerInterval = 2, RequiresWorker = false, Resource = ResourceType.Ether, Slots = 1,
TotalAmount = 100 TotalAmount = 100
@@ -105,7 +105,7 @@ public partial class EntityData
Requirement = RequirementType.Morph Requirement = RequirementType.Morph
}) })
.AddPart(new EntityProductionModel { Alloy = 50, Cooldown = 50, RequiresWorker = false }) .AddPart(new EntityProductionModel { Alloy = 50, Cooldown = 50, RequiresWorker = false })
.AddPart(new EntityHarvestModel .AddPart(new EntityHarvesterModel
{ {
HarvestedPerInterval = 2, RequiresWorker = false, Resource = ResourceType.Ether, Slots = 1, HarvestedPerInterval = 2, RequiresWorker = false, Resource = ResourceType.Ether, Slots = 1,
TotalAmount = 100 TotalAmount = 100
@@ -129,7 +129,7 @@ public partial class EntityData
.AddPart(new EntityProductionModel { Alloy = 175, BuildTime = 30, RequiresWorker = true }) .AddPart(new EntityProductionModel { Alloy = 175, BuildTime = 30, RequiresWorker = true })
.AddPart(new EntityVitalityModel .AddPart(new EntityVitalityModel
{ Health = 300, DefenseLayer = 200, Armor = ArmorType.Heavy, IsStructure = true }) { Health = 300, DefenseLayer = 200, Armor = ArmorType.Heavy, IsStructure = true })
.AddPart(new EntityHarvestModel .AddPart(new EntityHarvesterModel
{ {
HarvestedPerInterval = 1.5625f, HarvestedPerInterval = 1.5625f,
RequiresWorker = false, RequiresWorker = false,
@@ -423,7 +423,7 @@ public partial class EntityData
Health = 2000, DefenseLayer = 400, Defense = DefenseType.Overgrowth, Armor = ArmorType.Heavy, Health = 2000, DefenseLayer = 400, Defense = DefenseType.Overgrowth, Armor = ArmorType.Heavy,
IsStructure = true IsStructure = true
}) })
.AddPart(new EntityHarvestModel .AddPart(new EntityHarvesterModel
{ {
HarvestedPerInterval = 1, RequiresWorker = true, Resource = ResourceType.Alloy, Slots = 2, HarvestedPerInterval = 1, RequiresWorker = true, Resource = ResourceType.Alloy, Slots = 2,
TotalAmount = 3600 TotalAmount = 3600
@@ -468,7 +468,7 @@ public partial class EntityData
Requirement = RequirementType.Morph Requirement = RequirementType.Morph
}) })
.AddPart(new EntityProductionModel { Alloy = 400, BuildTime = 20, RequiresWorker = false }) .AddPart(new EntityProductionModel { Alloy = 400, BuildTime = 20, RequiresWorker = false })
.AddPart(new EntityHarvestModel .AddPart(new EntityHarvesterModel
{ {
HarvestedPerInterval = 1, RequiresWorker = true, Resource = ResourceType.Alloy, Slots = 2, HarvestedPerInterval = 1, RequiresWorker = true, Resource = ResourceType.Alloy, Slots = 2,
TotalAmount = 3600 TotalAmount = 3600
@@ -494,7 +494,7 @@ public partial class EntityData
.AddPart(new EntityProductionModel { Alloy = 225, BuildTime = 30, RequiresWorker = true }) .AddPart(new EntityProductionModel { Alloy = 225, BuildTime = 30, RequiresWorker = true })
.AddPart(new EntityVitalityModel .AddPart(new EntityVitalityModel
{ Health = 400, DefenseLayer = 225, Armor = ArmorType.Heavy, IsStructure = true }) { Health = 400, DefenseLayer = 225, Armor = ArmorType.Heavy, IsStructure = true })
.AddPart(new EntityHarvestModel .AddPart(new EntityHarvesterModel
{ {
HarvestedPerInterval = 1.5625f, RequiresWorker = false, Resource = ResourceType.Ether, HarvestedPerInterval = 1.5625f, RequiresWorker = false, Resource = ResourceType.Ether,
Slots = 1, TotalAmount = 1200 Slots = 1, TotalAmount = 1200
+5 -5
View File
@@ -18,7 +18,7 @@ public partial class EntityData
new EntityModel(DataType.IMMORTAL_Atzlan, EntityType.Immortal) new EntityModel(DataType.IMMORTAL_Atzlan, EntityType.Immortal)
.AddPart(new EntityInfoModel { Name = "Atzlan" }) .AddPart(new EntityInfoModel { Name = "Atzlan" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru })
.AddPart(new EntityHarvestModel .AddPart(new EntityHarvesterModel
{ {
Resource = ResourceType.Pyre, HarvestedPerInterval = 1, HarvestDelay = 3, Resource = ResourceType.Pyre, HarvestedPerInterval = 1, HarvestDelay = 3,
RequiresWorker = false, Slots = 1, TotalAmount = -1 RequiresWorker = false, Slots = 1, TotalAmount = -1
@@ -37,7 +37,7 @@ public partial class EntityData
new EntityModel(DataType.IMMORTAL_Mala, EntityType.Immortal) new EntityModel(DataType.IMMORTAL_Mala, EntityType.Immortal)
.AddPart(new EntityInfoModel { Name = "Mala" }) .AddPart(new EntityInfoModel { Name = "Mala" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru })
.AddPart(new EntityHarvestModel .AddPart(new EntityHarvesterModel
{ {
Resource = ResourceType.Pyre, HarvestedPerInterval = 1, HarvestDelay = 3, Resource = ResourceType.Pyre, HarvestedPerInterval = 1, HarvestDelay = 3,
RequiresWorker = false, Slots = 1, TotalAmount = -1 RequiresWorker = false, Slots = 1, TotalAmount = -1
@@ -56,7 +56,7 @@ public partial class EntityData
new EntityModel(DataType.IMMORTAL_Xol, EntityType.Immortal) new EntityModel(DataType.IMMORTAL_Xol, EntityType.Immortal)
.AddPart(new EntityInfoModel { Name = "Xol" }) .AddPart(new EntityInfoModel { Name = "Xol" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru })
.AddPart(new EntityHarvestModel .AddPart(new EntityHarvesterModel
{ {
Resource = ResourceType.Pyre, HarvestedPerInterval = 1, HarvestDelay = 3, Resource = ResourceType.Pyre, HarvestedPerInterval = 1, HarvestDelay = 3,
RequiresWorker = false, Slots = 1, TotalAmount = -1 RequiresWorker = false, Slots = 1, TotalAmount = -1
@@ -77,7 +77,7 @@ public partial class EntityData
new EntityModel(DataType.IMMORTAL_Ajari, EntityType.Immortal) new EntityModel(DataType.IMMORTAL_Ajari, EntityType.Immortal)
.AddPart(new EntityInfoModel { Name = "Ajari" }) .AddPart(new EntityInfoModel { Name = "Ajari" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath })
.AddPart(new EntityHarvestModel .AddPart(new EntityHarvesterModel
{ {
Resource = ResourceType.Pyre, HarvestedPerInterval = 1, HarvestDelay = 3, Resource = ResourceType.Pyre, HarvestedPerInterval = 1, HarvestDelay = 3,
RequiresWorker = false, Slots = 1, TotalAmount = -1 RequiresWorker = false, Slots = 1, TotalAmount = -1
@@ -95,7 +95,7 @@ public partial class EntityData
new EntityModel(DataType.IMMORTAL_Orzum, EntityType.Immortal) new EntityModel(DataType.IMMORTAL_Orzum, EntityType.Immortal)
.AddPart(new EntityInfoModel { Name = "Orzum" }) .AddPart(new EntityInfoModel { Name = "Orzum" })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath })
.AddPart(new EntityHarvestModel .AddPart(new EntityHarvesterModel
{ {
Resource = ResourceType.Pyre, HarvestedPerInterval = 1, HarvestDelay = 3, Resource = ResourceType.Pyre, HarvestedPerInterval = 1, HarvestDelay = 3,
RequiresWorker = false, Slots = 1, TotalAmount = -1 RequiresWorker = false, Slots = 1, TotalAmount = -1
+170
View File
@@ -0,0 +1,170 @@
using System.Collections.Generic;
using Model.Entity.Parts;
using Model.Types;
namespace Model.Entity.Data;
public partial class EntityData
{
public static Dictionary<string, EntityModel> GetMapData()
{
return new Dictionary<string, EntityModel>
{
// Maps
//TODO I don't remember the map details, this data is wrong
{
DataType.MAP_Naginata,
new EntityModel(DataType.MAP_Naginata, EntityType.Map)
.AddPart(new EntityInfoModel
{
Name = "Naginata", Descriptive = DescriptiveType.Map,
Description = ""
})
.AddPart(new EntityMapModel
{
PlayerCount = PlayerCountType.OneVsOne,
ResourcePlatforms = [
DataType.MAPPLATFORM_Base,
DataType.MAPPLATFORM_Standard,
DataType.MAPPLATFORM_Standard,
DataType.MAPPLATFORM_Standard,
DataType.MAPPLATFORM_Standard,
DataType.MAPPLATFORM_Standard,
DataType.MAPPLATFORM_Standard,
]
})
},
{
DataType.MAP_SummerPalace,
new EntityModel(DataType.MAP_SummerPalace, EntityType.Map)
.AddPart(new EntityInfoModel
{
Name = "Summer Palace", Descriptive = DescriptiveType.Map,
Description = ""
})
.AddPart(new EntityMapModel
{
PlayerCount = PlayerCountType.OneVsOne,
ResourcePlatforms = [
DataType.MAPPLATFORM_Base,
DataType.MAPPLATFORM_Standard,
DataType.MAPPLATFORM_Standard,
DataType.MAPPLATFORM_Standard,
DataType.MAPPLATFORM_Standard,
DataType.MAPPLATFORM_Standard,
DataType.MAPPLATFORM_Standard,
]
})
},
{
DataType.MAPPLATFORM_Base,
new EntityModel(DataType.MAPPLATFORM_Base, EntityType.Map)
.AddPart(new EntityInfoModel
{
Name = "Base Map Platform", Descriptive = DescriptiveType.Map,
Description = ""
})
.AddPart(
new EntityMapBasePlatformModel
{
ConnectedResourceNodes =
[
DataType.RESOURCENODE_AlloyCitadel,
DataType.RESOURCENODE_Alloy,
DataType.RESOURCENODE_Ether,
DataType.RESOURCENODE_Ether
]
})
},
{
DataType.MAPPLATFORM_Standard,
new EntityModel(DataType.MAPPLATFORM_Standard, EntityType.Map)
.AddPart(new EntityInfoModel
{
Name = "Standard Map Platform", Descriptive = DescriptiveType.Map,
Description = ""
})
.AddPart(
new EntityMapBasePlatformModel
{
ConnectedResourceNodes =
[
DataType.RESOURCENODE_Alloy,
DataType.RESOURCENODE_Ether
]
})
},
{
DataType.RESOURCENODE_AlloyBase,
new EntityModel(DataType.RESOURCENODE_AlloyBase, EntityType.Map)
.AddPart(new EntityInfoModel
{
Name = "Base Alloy", Descriptive = DescriptiveType.Map,
Description = ""
})
.AddPart(new EntityResourceNodeAlloyModel
{
Resource = ResourceType.Alloy,
DefaultAmount = 6000
})
},
{
DataType.RESOURCENODE_AlloyCitadel,
new EntityModel(DataType.RESOURCENODE_AlloyCitadel, EntityType.Map)
.AddPart(new EntityInfoModel
{
Name = "Citadel Alloy", Descriptive = DescriptiveType.Map,
Description = ""
})
.AddPart(new EntityResourceNodeAlloyModel
{
Resource = ResourceType.Alloy,
DefaultAmount = 6000
})
},
{
DataType.RESOURCENODE_Alloy,
new EntityModel(DataType.RESOURCENODE_Alloy, EntityType.Map)
.AddPart(new EntityInfoModel
{
Name = "Standard Alloy", Descriptive = DescriptiveType.Map,
Description = ""
})
.AddPart(new EntityResourceNodeAlloyModel
{
Resource = ResourceType.Alloy,
DefaultAmount = 3600
})
},
{
DataType.RESOURCENODE_Ether,
new EntityModel(DataType.RESOURCENODE_Ether, EntityType.Map)
.AddPart(new EntityInfoModel
{
Name = "Standard Ether", Descriptive = DescriptiveType.Map,
Description = ""
})
.AddPart(new EntityResourceNodeAlloyModel
{
Resource = ResourceType.Ether,
DefaultAmount = 1200
})
},
{
DataType.RESOURCENODE_Ether,
new EntityModel(DataType.RESOURCENODE_Ether, EntityType.Map)
.AddPart(new EntityInfoModel
{
Name = "Standard Ether", Descriptive = DescriptiveType.Map,
Description = ""
})
.AddPart(new EntityResourceNodeAlloyModel
{
Resource = ResourceType.Ether,
DefaultAmount = 1200
})
}
};
}
}
+3 -3
View File
@@ -258,7 +258,7 @@ public partial class EntityData
Notes = "Revives in 40 seconds when destroyed." Notes = "Revives in 40 seconds when destroyed."
}) })
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_Neutral }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Neutral })
.AddPart(new EntityHarvestModel .AddPart(new EntityHarvesterModel
{ {
HarvestedPerInterval = 6, RequiresWorker = false, Resource = ResourceType.Alloy, Slots = 1, HarvestedPerInterval = 6, RequiresWorker = false, Resource = ResourceType.Alloy, Slots = 1,
TotalAmount = 6000 TotalAmount = 6000
@@ -298,7 +298,7 @@ public partial class EntityData
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_Aru })
.AddPart(new EntityVitalityModel .AddPart(new EntityVitalityModel
{ Health = 2000, DefenseLayer = 400, Armor = ArmorType.Heavy, IsStructure = true }) { Health = 2000, DefenseLayer = 400, Armor = ArmorType.Heavy, IsStructure = true })
.AddPart(new EntityHarvestModel .AddPart(new EntityHarvesterModel
{ {
HarvestedPerInterval = 1, RequiresWorker = true, Resource = ResourceType.Alloy, Slots = 6, HarvestedPerInterval = 1, RequiresWorker = true, Resource = ResourceType.Alloy, Slots = 6,
TotalAmount = 6000 TotalAmount = 6000
@@ -315,7 +315,7 @@ public partial class EntityData
.AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath }) .AddPart(new EntityFactionModel { Faction = DataType.FACTION_QRath })
.AddPart(new EntityVitalityModel .AddPart(new EntityVitalityModel
{ Health = 1600, DefenseLayer = 800, Armor = ArmorType.Heavy, IsStructure = true }) { Health = 1600, DefenseLayer = 800, Armor = ArmorType.Heavy, IsStructure = true })
.AddPart(new EntityHarvestModel .AddPart(new EntityHarvesterModel
{ {
HarvestedPerInterval = 6, RequiresWorker = false, Resource = ResourceType.Alloy, Slots = 1, HarvestedPerInterval = 6, RequiresWorker = false, Resource = ResourceType.Alloy, Slots = 1,
TotalAmount = 6000 TotalAmount = 6000
+5
View File
@@ -19,6 +19,11 @@ public static class EntityType
public static string Ability = "Ability"; public static string Ability = "Ability";
public static string Tech = "Tech"; public static string Tech = "Tech";
public static string Passive = "Passive"; public static string Passive = "Passive";
public static string Map = "Map";
public static string NotApplicable = "NotApplicable";
} }
public static class ImmortalSpellType public static class ImmortalSpellType
+14
View File
@@ -298,4 +298,18 @@ public static class DataType
public static string UNIT_Thrum = nameof(UNIT_Thrum); public static string UNIT_Thrum = nameof(UNIT_Thrum);
public static string UNIT_Behemoth = "3783004b-65fd-4e4e-bef0-4cf161ea2d2d"; public static string UNIT_Behemoth = "3783004b-65fd-4e4e-bef0-4cf161ea2d2d";
public static string SUMMON_Quitl = "d554fb2a-eec5-45fd-bf36-a52d51e615e2"; public static string SUMMON_Quitl = "d554fb2a-eec5-45fd-bf36-a52d51e615e2";
//TODO I don't remember the maps
public static string MAP_Naginata = nameof(MAP_Naginata);
public static string MAP_SummerPalace = nameof(MAP_SummerPalace);
public static string MAPPLATFORM_Base = nameof(MAPPLATFORM_Base);
public static string MAPPLATFORM_Standard = nameof(MAPPLATFORM_Standard);
public static string RESOURCENODE_AlloyBase = nameof(RESOURCENODE_AlloyBase);
public static string RESOURCENODE_Alloy = nameof(RESOURCENODE_Alloy);
public static string RESOURCENODE_AlloyCitadel = nameof(RESOURCENODE_AlloyCitadel);
public static string RESOURCENODE_Ether = nameof(RESOURCENODE_Ether);
} }
+3 -3
View File
@@ -21,7 +21,7 @@ public class EntityModel
private static Dictionary<string, List<EntityModel>>? _entityModelsByHotkey; private static Dictionary<string, List<EntityModel>>? _entityModelsByHotkey;
public EntityModel(string data, string entity, bool isSpeculative = false) public EntityModel(string data, string entity = "NotApplicable", bool isSpeculative = false)
{ {
DataType = data; DataType = data;
EntityType = entity; EntityType = entity;
@@ -255,9 +255,9 @@ public class EntityModel
} }
public EntityHarvestModel Harvest() public EntityHarvesterModel Harvest()
{ {
return (EntityHarvestModel)EntityParts.Find(x => x.GetType() == typeof(EntityHarvestModel))!; return (EntityHarvesterModel)EntityParts.Find(x => x.GetType() == typeof(EntityHarvesterModel))!;
} }
@@ -2,7 +2,7 @@
namespace Model.Entity.Parts; namespace Model.Entity.Parts;
public class EntityHarvestModel : IEntityPartInterface public class EntityHarvesterModel : IEntityPartInterface
{ {
public string Type { get; set; } = "EntityHarvestModel"; public string Type { get; set; } = "EntityHarvestModel";
public ResourceType Resource { get; set; } = ResourceType.Alloy; public ResourceType Resource { get; set; } = ResourceType.Alloy;
@@ -12,7 +12,6 @@ public class EntityHarvestModel : IEntityPartInterface
public int TotalAmount { get; set; } public int TotalAmount { get; set; }
public bool RequiresWorker { get; set; } public bool RequiresWorker { get; set; }
public bool IsDepleted(float interval, float startedAt) public bool IsDepleted(float interval, float startedAt)
{ {
var lifeTime = interval - startedAt; var lifeTime = interval - startedAt;
@@ -0,0 +1,14 @@
using System.Collections.Generic;
using Model.Types;
namespace Model.Entity.Parts;
public class EntityMapBasePlatformModel : IEntityPartInterface
{
public string Type { get; set; } = "EntityMapBasePlatformModel";
public List<string> ConnectedResourceNodes { get; set; } = new();
}
+12
View File
@@ -0,0 +1,12 @@
using System.Collections.Generic;
using Model.Types;
namespace Model.Entity.Parts;
public class EntityMapModel : IEntityPartInterface
{
public string Type { get; set; } = "EntityMapModel";
public string PlayerCount { get; set; } = "Two";
public List<string> ResourcePlatforms { get; set; } = [];
}
@@ -0,0 +1,10 @@
using Model.Types;
namespace Model.Entity.Parts;
public class EntityResourceNodeAlloyModel : IEntityPartInterface
{
public string Type { get; set; } = "EntityResourceNodeAlloyModel";
public ResourceType Resource { get; set; } = ResourceType.Alloy;
public int DefaultAmount { get; set; }
}
+2
View File
@@ -24,6 +24,8 @@ public static class DescriptiveType
public static string Summon = "Summon"; public static string Summon = "Summon";
public static string Upgrade = "Upgrade"; public static string Upgrade = "Upgrade";
public static string Ability = "Ability"; public static string Ability = "Ability";
public static string Map = "Map";
public static string Passive = "Passive"; public static string Passive = "Passive";
public static string Applies_Debuff = "Applies_Debuff"; public static string Applies_Debuff = "Applies_Debuff";
+7
View File
@@ -0,0 +1,7 @@
namespace Model.Types;
public static class PlayerCountType
{
public static string OneVsOne = "OneVsOne";
public static string TwoVsTwo = "TwoVsTwo";
}