feat(Documents) Notes/Docs page improvements and warning cleanup

This commit is contained in:
2022-04-07 13:30:00 -04:00
parent b270453030
commit d82e60efdf
223 changed files with 4396 additions and 2861 deletions
@@ -1,33 +1,31 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using Model.Work.Tasks.Enums;
namespace Model.Work.Tasks;
public class SprintModel {
private static int id = 1;
public SprintModel() {
Id = id++;
}
public class AgileSprintModel
{
public int Id { get; set; }
public string Name { get; set; } = "Add name...";
public string Description { get; set; } = "Add description...";
public DateTime? StartDate { get; set; } = null;
public DateTime? EndDate { get; set; } = null;
public string Notes { get; set; } = "Add notes...";
public string GetSprintType() {
var now = DateTime.Now;
[NotMapped] public virtual ICollection<AgileTaskModel> AgileTaskModels { get; set; } = new List<AgileTaskModel>();
public string GetSprintType()
{
var now = DateTime.Now;
if (StartDate == null || EndDate == null) return SprintType.Planned;
if (DateTime.Compare(now, EndDate.GetValueOrDefault()) > 0) return SprintType.Completed;
if (DateTime.Compare(now, StartDate.GetValueOrDefault()) >= 0) return SprintType.Current;
return SprintType.Planned;
+19
View File
@@ -0,0 +1,19 @@
using System;
using Model.Work.Tasks.Enums;
namespace Model.Work.Tasks;
public class AgileTaskModel
{
public int Id { get; set; } = 1;
public int? AgileSprintModelId { get; set; } = null;
public string Name { get; set; } = "Add name...";
public string Description { get; set; } = "Add description...";
public string Notes { get; set; } = "Add notes...";
public string Status { get; set; } = StatusType.Fun_Idea;
public string Priority { get; set; } = PriorityType.Medium;
public string Task { get; set; } = TaskType.Feature;
public DateTime? Created { get; set; } = null;
public DateTime? Finished { get; set; } = null;
}
@@ -1,6 +1,7 @@
namespace Model.Work.Tasks.Enums;
public class PriorityType {
public class PriorityType
{
public const string Blocker = "Blocker";
public const string High = "High";
public const string Medium = "Medium";
@@ -1,6 +1,7 @@
namespace Model.Work.Tasks.Enums;
public class ProjectType {
public class ProjectType
{
public const string Management = "Management";
public const string Immortal = "Management";
public const string Food = "Management";
@@ -1,6 +1,7 @@
namespace Model.Work.Tasks.Enums;
public class SprintType {
public class SprintType
{
public const string Current = "Current";
public const string Planned = "Planned";
public const string Completed = "Completed";
@@ -1,6 +1,7 @@
namespace Model.Work.Tasks.Enums;
public class StatusType {
public class StatusType
{
public const string In_Progress = "In_Progress";
public const string Todo = "Todo";
public const string To_Test = "To_Test";
@@ -1,6 +1,7 @@
namespace Model.Work.Tasks.Enums;
public class TaskType {
public class TaskType
{
public const string Feature = "Feature";
public const string Bug = "Bug";
}
+5 -3
View File
@@ -1,9 +1,11 @@
using System.Collections.Generic;
namespace Model.Immortal.BuildOrders;
namespace Model.BuildOrders;
public class BuildComparisonModel {
public List<BuildOrderModel> Builds { get; set; } = new() {
public class BuildComparisonModel
{
public List<BuildOrderModel> Builds { get; set; } = new()
{
new BuildOrderModel(),
new BuildOrderModel(),
new BuildOrderModel()
+17 -10
View File
@@ -1,18 +1,21 @@
using System.Collections.Generic;
using System.Linq;
using Model.Immortal.Entity;
using Model.Immortal.Entity.Data;
using Model.Entity;
using Model.Entity.Data;
namespace Model.Immortal.BuildOrders;
namespace Model.BuildOrders;
public class BuildOrderModel {
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>> Orders { get; set; } = new()
{
{
0,
new List<EntityModel> {
new List<EntityModel>
{
EntityModel.Get(DataType.STARTING_Bastion),
EntityModel.Get(DataType.STARTING_TownHall_Aru)
}
@@ -24,28 +27,32 @@ public class BuildOrderModel {
public List<string> BuildTypes { get; set; } = new();
public List<EntityModel> GetOrdersAt(int interval) {
public List<EntityModel> GetOrdersAt(int interval)
{
return (from ordersAtTime in Orders
from orders in ordersAtTime.Value
where ordersAtTime.Key == interval
select orders).ToList();
}
public List<EntityModel> GetCompletedAt(int interval) {
public List<EntityModel> GetCompletedAt(int interval)
{
return (from ordersAtTime in Orders
from orders in ordersAtTime.Value
where ordersAtTime.Key + (orders.Production() == null ? 0 : orders.Production().BuildTime) == interval
select orders).ToList();
}
public List<EntityModel> GetCompletedBefore(int interval) {
public List<EntityModel> GetCompletedBefore(int interval)
{
return (from ordersAtTime in Orders
from orders in ordersAtTime.Value
where ordersAtTime.Key + (orders.Production() == null ? 0 : orders.Production().BuildTime) <= interval
select orders).ToList();
}
public List<EntityModel> GetHarvestersCompletedBefore(int interval) {
public List<EntityModel> GetHarvestersCompletedBefore(int interval)
{
return (from ordersAtTime in Orders
from orders in ordersAtTime.Value
where ordersAtTime.Key + (orders.Production() == null ? 0 : orders.Production().BuildTime) <= interval
+8 -5
View File
@@ -1,9 +1,10 @@
using System.Collections.Generic;
using Model.Immortal.Chart.Enums;
using Model.Chart.Enums;
namespace Model.Immortal.Chart;
namespace Model.Chart;
public class ChartModel {
public class ChartModel
{
public List<PointModel> Points { get; set; } = new();
public string ChartColor { get; set; } = ChartColorType.Red.ToString();
@@ -14,10 +15,12 @@ public class ChartModel {
public float HighestIntervalPoint { get; set; } = 5000;
public float HighestValuePoint { get; set; } = 5000;
public static List<ChartModel> GetAll() {
public static List<ChartModel> GetAll()
{
var cs = new List<ChartModel>();
var c1 = new ChartModel {
var c1 = new ChartModel
{
IntervalDisplayMax = 1000,
ValueDisplayMax = 300,
ChartColor = "Orange",
+3 -2
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.Chart.Enums;
namespace Model.Chart.Enums;
public enum ChartColorType {
public enum ChartColorType
{
Red,
LightGreen,
Cyan,
+7 -4
View File
@@ -1,16 +1,19 @@
namespace Model.Immortal.Chart;
namespace Model.Chart;
public class PointModel {
public class PointModel
{
public float Interval { get; set; } = 0;
public float Value { get; set; } = 0;
public float TempValue { get; set; } = 0;
public string GetInterval(float highestInterval, float displayScale) {
public string GetInterval(float highestInterval, float displayScale)
{
var display = Interval / highestInterval * displayScale;
return ((int)display).ToString();
}
public string GetValue(float highestValue, float displayScale) {
public string GetValue(float highestValue, float displayScale)
{
var display = Value / highestValue * displayScale;
return ((int)display).ToString();
}
-34
View File
@@ -1,34 +0,0 @@
using System;
using System.Collections.Generic;
namespace Model.Work.Git;
public class PatchModel {
public static int id;
public static List<PatchModel> exampleData = new() { new PatchModel { ChangeModels = ChangeModel.exampleData } };
public PatchModel() {
Id = id++;
}
public int Id { get; set; } = 1;
public string Name { get; set; } = "Add name...";
public DateTime Date { get; set; } = DateTime.Now;
public virtual ICollection<ChangeModel> ChangeModels { get; set; } = new List<ChangeModel>();
public string Important { get; set; } = "False";
public PatchModel AddChange(ChangeModel changeModel) {
if (ChangeModels == null) ChangeModels = new List<ChangeModel>();
changeModel.PatchModelId = Id;
ChangeModels.Add(changeModel);
return this;
}
public PatchModel ConnectChildren() {
foreach (var change in ChangeModels) change.PatchModelId = Id;
return this;
}
}
-47
View File
@@ -1,47 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Model.Work.Tasks.Enums;
namespace Model.Work.Tasks;
public class TaskModel {
private static int id = 1;
public TaskModel() {
Id = id++;
}
public int Id { get; set; } = 1;
public int? SprintModelId { get; set; } = null;
public string Name { get; set; } = "Add name...";
public string Description { get; set; } = "Add description...";
public string Notes { get; set; } = "Add notes...";
public string Status { get; set; } = StatusType.Fun_Idea;
public string Priority { get; set; } = PriorityType.Medium;
public string Task { get; set; } = TaskType.Feature;
public string Project { get; set; }
public DateTime? Created { get; set; } = null;
public DateTime? Finished { get; set; } = null;
public string StatusColor() {
return Status == StatusType.Fun_Idea ? "gray"
: Status == StatusType.In_Progress ? "#3be330"
: Status == StatusType.To_Test ? "cyan"
: Status == StatusType.Todo ? "yellow"
: Status == StatusType.Done ? "orange"
: "white";
}
public static List<string> Statuses(List<TaskModel> Data) {
return (from task in Data
select task.Status).Distinct().ToList();
}
public static List<string> Projects(List<TaskModel> Data) {
return (from task in Data
select task.Project).Distinct().ToList();
}
}
+10
View File
@@ -0,0 +1,10 @@
using System.ComponentModel.DataAnnotations;
namespace Model.Doc;
public class DocConnectionModel
{
[Key] public int Id { get; set; } = 1;
public int ParentId { get; set; } = 1;
public int ChildId { get; set; } = 1;
}
+37
View File
@@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Model.Doc;
public class DocContentModel
{
[Key] public int Id { get; set; } = 1;
public int? ParentId { get; set; } = null;
public int? DocSectionModelId { get; set; } = null;
public string Href { get; set; }
[NotMapped] public virtual ICollection<DocContentModel> DocumentationModels { get; set; } = new List<DocContentModel>();
[NotMapped] public virtual DocContentModel Parent { get; set; }
[NotMapped] public virtual int PageOrder { get; set; }
public DateTime CreatedDate { get; set; }
public DateTime UpdatedDate { get; set; }
public string Name { get; set; } = "";
public string Description { get; set; } = null;
public string Content { get; set; } = "";
private string GetLink()
{
var link = Href;
if (Parent != null) link = $"{Parent.GetLink()}/" + link;
return link;
}
public string GetDocLink()
{
return $"docs/{GetLink()}";
}
}
+15
View File
@@ -0,0 +1,15 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Model.Doc;
public class DocSectionModel
{
[Key] public int Id { get; set; }
public string Name { get; set; }
[NotMapped]
public virtual ICollection<DocContentModel> DocumentationModels { get; set; } = new List<DocContentModel>();
}
-13
View File
@@ -1,13 +0,0 @@
using System;
namespace Model.Documentation;
public class DocumentationModel
{
public int Id { get; set; }
public DateTime CreatedDate { get; set; }
public DateTime UpdatedDate { get; set; }
public string Name { get; set; }
public string Section { get; set; }
public string Description { get; set; }
}
+4 -3
View File
@@ -1,9 +1,10 @@
using System.Collections.Generic;
using Model.Immortal.Entity;
using Model.Entity;
namespace Model.Immortal.Economy;
namespace Model.Economy;
public class EconomyModel {
public class EconomyModel
{
public int Interval { get; set; } = 0;
public float Alloy { get; set; } = 0;
public float Ether { get; set; } = 0;
+34 -19
View File
@@ -1,17 +1,20 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Model.Immortal.BuildOrders;
using Model.Immortal.Entity;
using Model.Immortal.Types;
using Model.BuildOrders;
using Model.Entity;
using Model.Types;
namespace Model.Immortal.Economy;
namespace Model.Economy;
public class EconomyOverTimeModel {
public class EconomyOverTimeModel
{
public List<EconomyModel> EconomyOverTime { get; set; } = new();
public void Calculate(BuildOrderModel buildOrder, int timing, int fromInterval) {
if (EconomyOverTime == null) {
public void Calculate(BuildOrderModel buildOrder, int timing, int fromInterval)
{
if (EconomyOverTime == null)
{
EconomyOverTime = new List<EconomyModel>();
for (var interval = 0; interval < timing; interval++)
EconomyOverTime.Add(new EconomyModel { Interval = interval });
@@ -22,9 +25,11 @@ public class EconomyOverTimeModel {
while (EconomyOverTime.Count < timing)
EconomyOverTime.Add(new EconomyModel { Interval = EconomyOverTime.Count - 1 });
for (var interval = fromInterval; interval < timing; interval++) {
for (var interval = fromInterval; interval < timing; interval++)
{
var economyAtSecond = EconomyOverTime[interval];
if (interval > 0) {
if (interval > 0)
{
economyAtSecond.Alloy = EconomyOverTime[interval - 1].Alloy;
economyAtSecond.Ether = EconomyOverTime[interval - 1].Ether;
economyAtSecond.WorkerCount = EconomyOverTime[interval - 1].WorkerCount;
@@ -45,10 +50,12 @@ public class EconomyOverTimeModel {
select harvester).ToList();
// Add funds
foreach (var entity in economyAtSecond.Harvesters) {
foreach (var entity in economyAtSecond.Harvesters)
{
var harvester = entity.Harvest();
if (harvester.RequiresWorker)
if (harvester.Resource == ResourceType.Alloy) {
if (harvester.Resource == ResourceType.Alloy)
{
var usedWorkers = Math.Min(harvester.Slots, freeWorkers);
economyAtSecond.Alloy += harvester.HarvestedPerInterval * usedWorkers;
freeWorkers -= usedWorkers;
@@ -56,7 +63,8 @@ public class EconomyOverTimeModel {
if (usedWorkers < harvester.Slots) workersNeeded += 1;
}
if (harvester.RequiresWorker == false) {
if (harvester.RequiresWorker == false)
{
if (harvester.Resource == ResourceType.Ether)
economyAtSecond.Ether += harvester.HarvestedPerInterval * harvester.Slots;
@@ -68,20 +76,24 @@ public class EconomyOverTimeModel {
// Create new worker
if (economyAtSecond.CreatingWorkerCount > 0)
for (var i = 0; i < economyAtSecond.CreatingWorkerDelays.Count; i++)
if (economyAtSecond.CreatingWorkerDelays[i] > 0) {
if (economyAtSecond.Alloy > 2.5f) {
if (economyAtSecond.CreatingWorkerDelays[i] > 0)
{
if (economyAtSecond.Alloy > 2.5f)
{
economyAtSecond.Alloy -= 2.5f;
economyAtSecond.CreatingWorkerDelays[i]--;
}
}
else {
else
{
economyAtSecond.CreatingWorkerCount -= 1;
economyAtSecond.WorkerCount += 1;
economyAtSecond.CreatingWorkerDelays.Remove(i);
i--;
}
if (workersNeeded > economyAtSecond.CreatingWorkerCount) {
if (workersNeeded > economyAtSecond.CreatingWorkerCount)
{
economyAtSecond.CreatingWorkerCount += 1;
economyAtSecond.CreatingWorkerDelays.Add(50);
}
@@ -89,11 +101,13 @@ public class EconomyOverTimeModel {
// Remove Funds from Build Order
var ordersAtTime = buildOrder.GetOrdersAt(interval);
foreach (var order in ordersAtTime) {
foreach (var order in ordersAtTime)
{
var foundEntity = EntityModel.GetDictionary()[order.DataType];
var production = foundEntity.Production();
if (production != null) {
if (production != null)
{
economyAtSecond.Alloy -= production.Alloy;
economyAtSecond.Ether -= production.Ether;
var finishedAt = interval + production.BuildTime;
@@ -104,7 +118,8 @@ public class EconomyOverTimeModel {
// Handle new entities
var completedAtInterval = buildOrder.GetCompletedAt(interval);
foreach (var newEntity in completedAtInterval) {
foreach (var newEntity in completedAtInterval)
{
var harvest = newEntity;
if (harvest != null) economyAtSecond.Harvesters.Add(harvest);
+3 -2
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.Economy.Enums;
namespace Model.Economy.Enums;
public enum HarvesterType {
public enum HarvesterType
{
Worker,
EtherExtractor,
Bastion
+3 -2
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.Economy.Enums;
namespace Model.Economy.Enums;
public enum RequestType {
public enum RequestType
{
Unit,
Building
}
+3 -2
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.Economy.Enums;
namespace Model.Economy.Enums;
public enum WorkerStateType {
public enum WorkerStateType
{
Building,
Unit
}
+897 -439
View File
File diff suppressed because it is too large Load Diff
+4 -5
View File
@@ -1,15 +1,14 @@
using System;
namespace Model.Entity.Data;
namespace Model.Immortal.Entity.Data;
public static class EntityType {
public static class EntityType
{
public static string None = "None";
public static string Any = "Any";
public static string Teapot = "Teapot";
public static string Family = "Family";
public static string Faction = "Faction";
public static string Command = "Command";
public static string Worker = "Worker";
public static string Army = "Army";
public static string Building = "Building";
+10 -9
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.Entity.Data;
namespace Model.Entity.Data;
public static class DataType {
public static class DataType
{
public static string PYREEVENT_TowerKilled = "9a923928-b016-49f2-8c7d-950abf09e287";
public static string PYREEVENT_CampTaken = "cc27a9b2-69e2-4322-8102-7a9f8bea7871";
public static string PYREEVENT_MinerTaken = "5b158cf2-2810-4a2a-8131-c4fe4b392ce9";
@@ -75,10 +76,10 @@ public static class DataType {
public static string BUILDING_DeepNest = "3076ae6e-89bf-4ea1-a66c-ea45ffcb4046";
public static string BUILDING_Neurocyte = "90c6e53f-0430-4992-a1eb-4f91699292cb";
public static string DEFENSE_FireSinger = "c7a90286-6977-4d92-91e0-2a0a46eb13ea";
public static string BUILDING_KeeperOfTheHardenedFlames = "db784823-5199-4bae-bc5e-96174490cd00";
public static string DEFENSE_Aerovore = "b68307b7-4759-43a3-8679-d844ac3aa73f";
public static string UPGRADE_FaithCastBlades = "32087a66-900e-4f25-95f7-de56d5b424c7";
public static string UPGRADE_RelicOfTheWrathfulGaze = "e6fa5ded-53f5-4914-85bb-1fdff5f32b64";
@@ -98,11 +99,11 @@ 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 PASSIVE_Respite = "607c39f4-a957-4a7a-8fc6-a239f9e570ec";
public static string PASSIVE_OssifyingSwarm = "b8897247-8393-416e-b246-409a6b3263c2";
public static string PASSIVE_QuenchingScythes = "dbf07db4-e7b6-4f81-9f8e-e5391850eead";
@@ -112,14 +113,14 @@ public static class DataType {
public static string PASSIVE_GuidingAmber = "9eab6701-0f0d-4858-b8a4-14e3a5dab822";
public static string PASSIVE_GodstoneBulwark = "482189ac-713d-4870-a960-d2930961c486";
public static string PASSIVE_Invervention = "3a70d237-1530-455a-b4f8-a626d708334c";
public static string PASSIVE_ThrumAttackSpeed = "356b6c33-a857-489c-8218-68c53d03db90";
public static string PASSIVE_MendingCommand = "25d94c3d-dba9-4f02-abf4-904269b539c6";
public static string PASSIVE_StabilizeHallowedGround = "0bbbaf06-fd22-4f48-a888-cc1ab6af046e";
public static string PASSIVE_SpawnQuitl = "80f6b382-da1c-49a1-8235-1ea37983ea54";
public static string PASSIVE_XacalDamage = "69928f20-5332-418f-ada3-694da3f7b199";
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";
+121 -83
View File
@@ -1,40 +1,37 @@
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Model.Immortal.Entity.Data;
using Model.Immortal.Entity.Parts;
using Model.Immortal.Types;
using Model.Entity.Data;
using Model.Entity.Parts;
using Model.Types;
using YamlDotNet.Serialization;
namespace Model.Immortal.Entity;
namespace Model.Entity;
public class EntityModel {
public class EntityModel
{
public static readonly string GameVersion = "0.0.6.8900a";
private static Dictionary<string, EntityModel> _database;
private static Dictionary<string, EntityModel> _database;
private static List<EntityModel> entityModels;
private static List<EntityModel> entityModels;
private static List<EntityModel> entityModelsOnlyHotkey;
private static List<EntityModel> entityModelsOnlyHotkey;
private static Dictionary<string, List<EntityModel>> entityModelsByHotkey;
private static Dictionary<string, List<EntityModel>> entityModelsByHotkey;
public EntityModel() { }
public EntityModel()
{
}
public EntityModel(string data, string entity, bool isSpeculative = false) {
public EntityModel(string data, string entity, bool isSpeculative = false)
{
DataType = data;
EntityType = entity;
IsSpeculative = isSpeculative;
}
public string AsYaml() {
var stringBuilder = new StringBuilder();
var serializer = new Serializer();
stringBuilder.AppendLine(serializer.Serialize(this));
return stringBuilder.ToString();
}
public string DataType { get; set; }
// TODO Serilization currently being used for build orders
@@ -45,50 +42,64 @@ public class EntityModel {
public bool IsSpeculative { get; set; }
public string Descriptive { get; set; } = DescriptiveType.None;
public EntityModel Clone() {
public string AsYaml()
{
var stringBuilder = new StringBuilder();
var serializer = new Serializer();
stringBuilder.AppendLine(serializer.Serialize(this));
return stringBuilder.ToString();
}
public EntityModel Clone()
{
return (EntityModel)MemberwiseClone();
}
public void Copy(EntityModel entity) {
public void Copy(EntityModel entity)
{
DataType = entity.DataType;
EntityType = entity.EntityType;
EntityParts = entity.EntityParts.ToList();
}
public EntityModel AddPart(IEntityPartInterface unitPart) {
public EntityModel AddPart(IEntityPartInterface unitPart)
{
EntityParts.Add(unitPart);
return this;
}
public static Dictionary<string, EntityModel> GetDictionary() {
public static Dictionary<string, EntityModel> GetDictionary()
{
if (_database == null) _database = DATA.Get();
return _database;
}
public static EntityModel Get(string entity) {
public static EntityModel Get(string entity)
{
if (_database == null) _database = DATA.Get();
return _database[entity];
}
public static List<EntityModel> GetList() {
public static List<EntityModel> GetList()
{
if (entityModels == null) entityModels = DATA.Get().Values.ToList();
return entityModels;
}
public static List<EntityModel> GetListOnlyHotkey() {
if (entityModelsOnlyHotkey == null) {
public static List<EntityModel> GetListOnlyHotkey()
{
if (entityModelsOnlyHotkey == null)
{
entityModelsOnlyHotkey = new List<EntityModel>();
foreach (var entity in DATA.Get().Values)
@@ -99,14 +110,18 @@ public class EntityModel {
return entityModelsOnlyHotkey;
}
public static Dictionary<string, List<EntityModel>> GetEntitiesByHotkey() {
if (entityModelsByHotkey == null) {
public static Dictionary<string, List<EntityModel>> GetEntitiesByHotkey()
{
if (entityModelsByHotkey == null)
{
entityModelsByHotkey = new Dictionary<string, List<EntityModel>>();
foreach (var entity in GetList()) {
foreach (var entity in GetList())
{
var entityHotkey = entity.Hotkey();
if (entityHotkey != null) {
if (entityHotkey != null)
{
if (!entityModelsByHotkey.ContainsKey(entityHotkey.Hotkey))
entityModelsByHotkey[entityHotkey.Hotkey] = new List<EntityModel>();
@@ -119,9 +134,10 @@ public class EntityModel {
return entityModelsByHotkey;
}
public static EntityModel GetFrom(string hotkey, string hotkeyGroup, bool holdSpace, string faction,
string immortal) {
string immortal)
{
if (hotkey == null || hotkey == "") return null;
//TODO
@@ -142,121 +158,143 @@ public class EntityModel {
return found;
}
public EntityInfoModel Info() {
public EntityInfoModel Info()
{
return (EntityInfoModel)EntityParts.Find(x => x.GetType() == typeof(EntityInfoModel));
}
public EntitySupplyModel Supply() {
public EntitySupplyModel Supply()
{
return (EntitySupplyModel)EntityParts.Find(x => x.GetType() == typeof(EntitySupplyModel));
}
public EntityTierModel Tier() {
public EntityTierModel Tier()
{
return (EntityTierModel)EntityParts.Find(x => x.GetType() == typeof(EntityTierModel));
}
public EntityProductionModel Production() {
public EntityProductionModel Production()
{
return (EntityProductionModel)EntityParts.Find(x => x.GetType() == typeof(EntityProductionModel));
}
public EntityMovementModel Movement() {
public EntityMovementModel Movement()
{
return (EntityMovementModel)EntityParts.Find(x => x.GetType() == typeof(EntityMovementModel));
}
public EntityVitalityModel Vitality() {
public EntityVitalityModel Vitality()
{
return (EntityVitalityModel)EntityParts.Find(x => x.GetType() == typeof(EntityVitalityModel));
}
public List<EntityRequirementModel> Requirements() {
public List<EntityRequirementModel> Requirements()
{
return EntityParts.FindAll(x => x.GetType() == typeof(EntityRequirementModel))
.Cast<EntityRequirementModel>().ToList();
}
public List<EntityWeaponModel> Weapons() {
public List<EntityWeaponModel> Weapons()
{
return EntityParts.FindAll(x => x.GetType() == typeof(EntityWeaponModel))
.Cast<EntityWeaponModel>().ToList();
}
public List<EntityVanguardReplacedModel> Replaceds() {
public List<EntityVanguardReplacedModel> Replaceds()
{
return EntityParts.FindAll(x => x.GetType() == typeof(EntityVanguardReplacedModel))
.Cast<EntityVanguardReplacedModel>().ToList();
}
public EntityVanguardAddedModel VanguardAdded() {
public EntityVanguardAddedModel VanguardAdded()
{
return (EntityVanguardAddedModel)EntityParts.Find(x => x.GetType() == typeof(EntityVanguardAddedModel));
}
public EntityHotkeyModel Hotkey() {
public EntityHotkeyModel Hotkey()
{
return (EntityHotkeyModel)EntityParts.Find(x => x.GetType() == typeof(EntityHotkeyModel));
}
public EntityFactionModel Faction() {
public EntityFactionModel Faction()
{
return (EntityFactionModel)EntityParts.Find(x => x.GetType() == typeof(EntityFactionModel));
}
public EntityHarvestModel Harvest() {
public EntityHarvestModel Harvest()
{
return (EntityHarvestModel)EntityParts.Find(x => x.GetType() == typeof(EntityHarvestModel));
}
public List<EntityIdAbilityModel> IdAbilities() {
public List<EntityIdAbilityModel> IdAbilities()
{
return EntityParts.FindAll(x => x.GetType() == typeof(EntityIdAbilityModel))
.Cast<EntityIdAbilityModel>().ToList();
}
public List<EntityIdArmyModel> IdArmies() {
public List<EntityIdArmyModel> IdArmies()
{
return EntityParts.FindAll(x => x.GetType() == typeof(EntityIdArmyModel))
.Cast<EntityIdArmyModel>().ToList();
}
public List<EntityIdPassiveModel> IdPassives() {
public List<EntityIdPassiveModel> IdPassives()
{
return EntityParts.FindAll(x => x.GetType() == typeof(EntityIdPassiveModel))
.Cast<EntityIdPassiveModel>().ToList();
}
public List<EntityIdUpgradeModel> IdUpgrades() {
public List<EntityIdUpgradeModel> IdUpgrades()
{
return EntityParts.FindAll(x => x.GetType() == typeof(EntityIdUpgradeModel))
.Cast<EntityIdUpgradeModel>().ToList();
}
public List<EntityIdVanguardModel> IdVanguards() {
public List<EntityIdVanguardModel> IdVanguards()
{
return EntityParts.FindAll(x => x.GetType() == typeof(EntityIdVanguardModel))
.Cast<EntityIdVanguardModel>().ToList();
}
public List<EntityIdPyreSpellModel> IdPyreSpells() {
public List<EntityIdPyreSpellModel> IdPyreSpells()
{
return EntityParts.FindAll(x => x.GetType() == typeof(EntityIdPyreSpellModel))
.Cast<EntityIdPyreSpellModel>().ToList();
}
public List<EntityMechanicModel> Mechanics() {
public List<EntityMechanicModel> Mechanics()
{
return EntityParts.FindAll(x => x.GetType() == typeof(EntityMechanicModel))
.Cast<EntityMechanicModel>().ToList();
}
public List<EntityPassiveModel> Passives() {
public List<EntityPassiveModel> Passives()
{
return EntityParts.FindAll(x => x.GetType() == typeof(EntityPassiveModel))
.Cast<EntityPassiveModel>().ToList();
}
public List<EntityStrategyModel> Strategies() {
public List<EntityStrategyModel> Strategies()
{
return EntityParts.FindAll(x => x.GetType() == typeof(EntityStrategyModel))
.Cast<EntityStrategyModel>().ToList();
}
+4 -3
View File
@@ -1,8 +1,9 @@
using Model.Immortal.Types;
using Model.Types;
namespace Model.Immortal.Entity.Parts;
namespace Model.Entity.Parts;
public class EntityFactionModel : IEntityPartInterface {
public class EntityFactionModel : IEntityPartInterface
{
public string Type { get; set; } = "EntityFactionModel";
public string Faction { get; set; } = FactionType.QRath;
}
+4 -3
View File
@@ -1,8 +1,9 @@
using Model.Immortal.Types;
using Model.Types;
namespace Model.Immortal.Entity.Parts;
namespace Model.Entity.Parts;
public class EntityHarvestModel : IEntityPartInterface {
public class EntityHarvestModel : IEntityPartInterface
{
public string Type { get; set; } = "EntityHarvestModel";
public ResourceType Resource { get; set; } = ResourceType.Alloy;
public float Slots { get; set; }
+13 -7
View File
@@ -1,32 +1,38 @@
using System.Collections.Generic;
namespace Model.Immortal.Entity.Parts;
namespace Model.Entity.Parts;
public class EntityHotkeyModel : IEntityPartInterface {
public class EntityHotkeyModel : IEntityPartInterface
{
public string Type { get; set; } = "EntityHotkeyModel";
public string Hotkey { get; set; }
public bool HoldSpace { get; set; } = false;
public string HotkeyGroup { get; set; }
public bool IsSelectedHotkey(List<string> keys) {
public bool IsSelectedHotkey(List<string> keys)
{
return keys.Contains(Hotkey.ToUpper());
}
public bool IsSelectedHotkeyGroup(List<string> keys) {
public bool IsSelectedHotkeyGroup(List<string> keys)
{
return keys.Contains(HotkeyGroup.ToUpper());
}
public bool IsSelectedHoldSpace(List<string> keys) {
public bool IsSelectedHoldSpace(List<string> keys)
{
return (keys.Contains("SPACE") || keys.Contains(" ")) == HoldSpace;
}
public bool IsSelectedHotkeyGroupWithSpace(List<string> keys) {
public bool IsSelectedHotkeyGroupWithSpace(List<string> keys)
{
var foundKey = false;
var foundHold = false;
foreach (var key in keys) {
foreach (var key in keys)
{
if (key.ToUpper().Equals(HotkeyGroup.ToUpper())) foundKey = true;
if (key.ToUpper().Equals("SPACE") || key.ToUpper().Equals(" ")) foundHold = true;
}
+3 -2
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.Entity.Parts;
namespace Model.Entity.Parts;
public class EntityIdAbilityModel : IEntityPartInterface {
public class EntityIdAbilityModel : IEntityPartInterface
{
public string Type { get; set; } = "EntityIdAbilityModel";
public string Id { get; set; }
}
+3 -2
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.Entity.Parts;
namespace Model.Entity.Parts;
public class EntityIdArmyModel : IEntityPartInterface {
public class EntityIdArmyModel : IEntityPartInterface
{
public string Type { get; set; } = "EntityIdArmyModel";
public string Id { get; set; }
}
+3 -2
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.Entity.Parts;
namespace Model.Entity.Parts;
public class EntityIdPassiveModel : IEntityPartInterface {
public class EntityIdPassiveModel : IEntityPartInterface
{
public string Type { get; set; } = "EntityIdPassiveModel";
public string Id { get; set; }
}
+3 -2
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.Entity.Parts;
namespace Model.Entity.Parts;
public class EntityIdPyreSpellModel : IEntityPartInterface {
public class EntityIdPyreSpellModel : IEntityPartInterface
{
public string Type { get; set; } = "EntityIdPyreSpellModel";
public string Id { get; set; }
}
+3 -2
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.Entity.Parts;
namespace Model.Entity.Parts;
public class EntityIdUpgradeModel : IEntityPartInterface {
public class EntityIdUpgradeModel : IEntityPartInterface
{
public string Type { get; set; } = "EntityIdUpgradeModel";
public string Id { get; set; }
+3 -2
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.Entity.Parts;
namespace Model.Entity.Parts;
public class EntityIdVanguardModel : IEntityPartInterface {
public class EntityIdVanguardModel : IEntityPartInterface
{
public string Type { get; set; } = "EntityIdVanguardModel";
public string Id { get; set; }
}
+4 -3
View File
@@ -1,8 +1,9 @@
using Model.Immortal.Types;
using Model.Types;
namespace Model.Immortal.Entity.Parts;
namespace Model.Entity.Parts;
public class EntityInfoModel : IEntityPartInterface {
public class EntityInfoModel : IEntityPartInterface
{
public string Type { get; set; } = "EntityInfoModel";
public string Name { get; set; } = "";
public string Descriptive { get; set; } = DescriptiveType.None;
+3 -2
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.Entity.Parts;
namespace Model.Entity.Parts;
public class EntityMechanicModel : IEntityPartInterface {
public class EntityMechanicModel : IEntityPartInterface
{
public string Type { get; set; } = "EntityMechanicModel";
public string Name { get; set; } = "";
public string Description { get; set; }
+4 -3
View File
@@ -1,8 +1,9 @@
using Model.Immortal.Types;
using Model.Types;
namespace Model.Immortal.Entity.Parts;
namespace Model.Entity.Parts;
public class EntityMovementModel : IEntityPartInterface {
public class EntityMovementModel : IEntityPartInterface
{
public string Type { get; set; } = "EntityMovementModel";
public float Speed { get; set; } = 0;
public string Movement { get; set; } = MovementType.Ground;
+3 -2
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.Entity.Parts;
namespace Model.Entity.Parts;
public class EntityPassiveModel : IEntityPartInterface {
public class EntityPassiveModel : IEntityPartInterface
{
public string Type { get; set; } = "EntityPassiveModel";
public string Name { get; set; } = "";
public string Description { get; set; }
+3 -2
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.Entity.Parts;
namespace Model.Entity.Parts;
public class EntityProductionModel : IEntityPartInterface {
public class EntityProductionModel : IEntityPartInterface
{
public string Type { get; set; } = "EntityProductionModel";
public int Alloy { get; set; } = 0;
+3 -2
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.Entity.Parts;
namespace Model.Entity.Parts;
public class EntityPyreRewardModel : IEntityPartInterface {
public class EntityPyreRewardModel : IEntityPartInterface
{
public string Type { get; set; } = "EntityPyreRewardModel";
public int BaseReward { get; set; } = 0;
+4 -3
View File
@@ -1,8 +1,9 @@
using Model.Immortal.Types;
using Model.Types;
namespace Model.Immortal.Entity.Parts;
namespace Model.Entity.Parts;
public class EntityRequirementModel : IEntityPartInterface {
public class EntityRequirementModel : IEntityPartInterface
{
public string Type { get; set; } = "EntityRequirementModel";
public string DataType { get; set; }
public string Requirement { get; set; } = RequirementType.Production_Building;
+3 -2
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.Entity.Parts;
namespace Model.Entity.Parts;
public class EntityStrategyModel : IEntityPartInterface {
public class EntityStrategyModel : IEntityPartInterface
{
public string Type { get; set; } = "EntityStrategyModel";
public string Notes { get; set; } = "";
}
+3 -2
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.Entity.Parts;
namespace Model.Entity.Parts;
public class EntitySupplyModel : IEntityPartInterface {
public class EntitySupplyModel : IEntityPartInterface
{
public string Type { get; set; } = "EntitySupplyModel";
public int Takes { get; set; } = 0;
public int Grants { get; set; } = 0;
+3 -2
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.Entity.Parts;
namespace Model.Entity.Parts;
public class EntityTierModel : IEntityPartInterface {
public class EntityTierModel : IEntityPartInterface
{
public string Type { get; set; } = "EntityTierModel";
public float Tier { get; set; }
}
@@ -1,13 +1,12 @@
using System;
using Model.Immortal.Entity.Data;
using Model.Immortal.Types;
using Model.Entity.Data;
namespace Model.Immortal.Entity.Parts;
namespace Model.Entity.Parts;
public class EntityVanguardAddedModel : IEntityPartInterface {
public class EntityVanguardAddedModel : IEntityPartInterface
{
public string Type { get; set; } = "EntityVanguardAddedModel";
public string ImmortalId { get; set; } = DataType.IMMORTAL_Ajari;
public string ReplaceId { get; set; } = "";
}
@@ -1,9 +1,9 @@
using Model.Immortal.Entity.Data;
using Model.Immortal.Types;
using Model.Entity.Data;
namespace Model.Immortal.Entity.Parts;
namespace Model.Entity.Parts;
public class EntityVanguardReplacedModel : IEntityPartInterface {
public class EntityVanguardReplacedModel : IEntityPartInterface
{
public string Type { get; set; } = "EntityVanguardReplacedModel";
public string ImmortalId { get; set; } = DataType.IMMORTAL_Xol;
public string ReplacedById { get; set; } = "";
+4 -3
View File
@@ -1,8 +1,9 @@
using Model.Immortal.Types;
using Model.Types;
namespace Model.Immortal.Entity.Parts;
namespace Model.Entity.Parts;
public class EntityVitalityModel : IEntityPartInterface {
public class EntityVitalityModel : IEntityPartInterface
{
public string Type { get; set; } = "EntityVitalityModel";
public int Health { get; set; } = 0;
public int DefenseLayer { get; set; } = 0;
+4 -4
View File
@@ -1,9 +1,9 @@
using System;
using Model.Immortal.Types;
using Model.Types;
namespace Model.Immortal.Entity.Parts;
namespace Model.Entity.Parts;
public class EntityWeaponModel : IEntityPartInterface {
public class EntityWeaponModel : IEntityPartInterface
{
public int Id { get; set; } = 1;
public int EntityModelId { get; set; }
public virtual EntityModel EntityModel { get; set; }
+4 -2
View File
@@ -1,3 +1,5 @@
namespace Model.Immortal.Entity.Parts;
namespace Model.Entity.Parts;
public interface IEntityPartInterface { }
public interface IEntityPartInterface
{
}
+3 -2
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.Types;
namespace Model.Types;
public static class ArmorType {
public static class ArmorType
{
public static string Light = "Light";
public static string Medium = "Medium";
public static string Heavy = "Heavy";
+3 -2
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.Types;
namespace Model.Types;
public static class BuildType {
public static class BuildType
{
public static string Eco = "Eco";
public static string Harass = "Harass";
public static string Pyre_Hunting = "Pyre_Hunting";
+3 -2
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.Types;
namespace Model.Types;
public static class DefenseType {
public static class DefenseType
{
public static string None = "None";
public static string Shield = "Shield";
public static string Overgrowth = "Overgrowth";
+3 -2
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.Types;
namespace Model.Types;
public static class DescriptiveType {
public static class DescriptiveType
{
public static string None = "None";
public static string Frontliner = "Frontliner";
public static string Force_Multiplier = "Force_Multiplier";
+3 -2
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.Types;
namespace Model.Types;
public static class FactionType {
public static class FactionType
{
public static string None = "None";
public static string Any = "Any";
public static string Neutral = "Neutral";
+3 -2
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.Types;
namespace Model.Types;
public static class ImmortalType {
public static class ImmortalType
{
public static string None = "None";
public static string Any = "Any";
+3 -2
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.Types;
namespace Model.Types;
public static class MovementType {
public static class MovementType
{
public static string Ground = "Ground";
public static string Air = "Air";
}
+3 -2
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.Types;
namespace Model.Types;
public static class RequirementType {
public static class RequirementType
{
public static string Production_Building = "Production_Building";
public static string Research_Building = "Research_Building";
public static string Research_Upgrade = "Research_Upgrade";
+3 -2
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.Types;
namespace Model.Types;
public enum ResourceType {
public enum ResourceType
{
Alloy,
Ether,
Pyre
+3 -2
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.Types;
namespace Model.Types;
public static class TargetType {
public static class TargetType
{
public static string Ground = "Ground";
public static string Air = "Air";
public static string All = "All";
@@ -1,6 +1,7 @@
namespace Model.Work.Git;
namespace Model.Development.Git;
public class CommitType {
public class CommitType
{
public const string Feature = "Feature";
public const string Game_Patch = "Game Patch";
public const string Fix = "Fix";
@@ -1,19 +1,11 @@
using System;
using System.Collections.Generic;
namespace Model.Work.Git;
public class ChangeModel {
public static int id;
public static List<ChangeModel> exampleData = new() { new ChangeModel() };
public ChangeModel() {
Id = id++;
}
namespace Model.Development.Git;
public class GitChangeModel
{
public int Id { get; set; } = 1;
public int PatchModelId { get; set; } = 1;
public int GitPatchModelId { get; set; } = 1;
public string Name { get; set; } = "Add name...";
public string Description { get; set; } = "Add desciption...";
public string Commit { get; set; } = CommitType.Feature;
+13
View File
@@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
namespace Model.Development.Git;
public class GitPatchModel
{
public int Id { get; set; } = 1;
public string Name { get; set; } = "Add name...";
public DateTime Date { get; set; } = DateTime.Now;
public ICollection<GitChangeModel> GitChangeModels { get; set; } = new List<GitChangeModel>();
public string Important { get; set; } = "False";
}
+3 -2
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.Hotkeys;
namespace Model.Hotkeys;
public enum KeyType {
public enum KeyType
{
Action,
ControlGroup,
Cancel,
+47 -24
View File
@@ -1,8 +1,9 @@
using System.Collections.Generic;
namespace Model.Immortal.Hotkeys;
namespace Model.Hotkeys;
public class HotkeyModel {
public class HotkeyModel
{
public static readonly string[] KeyGroups = { "Z", "1", "2", "TAB", "CONTROL", "SHIFT", "C" };
public static readonly string[] HotKeys = { "`", "Q", "W", "E", "R", "A", "S", "F", "X", "V" };
public string KeyText { get; set; }
@@ -11,7 +12,8 @@ public class HotkeyModel {
public int PositionY { get; set; }
public bool IsHidden { get; set; }
public string GetColor() {
public string GetColor()
{
return KeyType == KeyType.Action ? "#404146"
: KeyType == KeyType.Cancel ? "#621b1b"
: KeyType == KeyType.ControlGroup ? "#443512"
@@ -21,113 +23,133 @@ public class HotkeyModel {
: "#37393F";
}
public static List<HotkeyModel> GetAll() {
return new List<HotkeyModel> {
new() {
public static List<HotkeyModel> GetAll()
{
return new List<HotkeyModel>
{
new()
{
KeyText = "`",
KeyType = KeyType.Cancel,
PositionX = 0,
PositionY = 0
},
new() {
new()
{
KeyText = "TAB",
KeyType = KeyType.ControlGroup,
PositionX = 0,
PositionY = 1
},
new() {
new()
{
KeyText = "1",
KeyType = KeyType.ControlGroup,
PositionX = 1,
PositionY = 0
},
new() {
new()
{
KeyText = "Q",
KeyType = KeyType.Action,
PositionX = 1,
PositionY = 1
},
new() {
new()
{
KeyText = "W",
KeyType = KeyType.Action,
PositionX = 2,
PositionY = 1
},
new() {
new()
{
KeyText = "E",
KeyType = KeyType.Action,
PositionX = 3,
PositionY = 1
},
new() {
new()
{
KeyText = "R",
KeyType = KeyType.Action,
PositionX = 4,
PositionY = 1
},
new() {
new()
{
KeyText = "A",
KeyType = KeyType.Action,
PositionX = 1,
PositionY = 2
},
new() {
new()
{
KeyText = "S",
KeyType = KeyType.Action,
PositionX = 2,
PositionY = 2
},
new() {
new()
{
KeyText = "D",
KeyType = KeyType.ControlGroup,
PositionX = 3,
PositionY = 2
},
new() {
new()
{
KeyText = "F",
KeyType = KeyType.Action,
PositionX = 4,
PositionY = 2
},
new() {
new()
{
KeyText = "Z",
KeyType = KeyType.ControlGroup,
PositionX = 1,
PositionY = 3
},
new() {
new()
{
KeyText = "X",
KeyType = KeyType.Action,
PositionX = 2,
PositionY = 3
},
new() {
new()
{
KeyText = "C",
KeyType = KeyType.ControlGroup,
PositionX = 3,
PositionY = 3
},
new() {
new()
{
KeyText = "V",
KeyType = KeyType.Action,
PositionX = 4,
PositionY = 3
},
new() {
new()
{
KeyText = "SPACE",
KeyType = KeyType.Advance,
PositionX = 1,
PositionY = 4
},
// Economy
new() {
new()
{
KeyText = "SHIFT", //TODO Update when game changes
KeyType = KeyType.Economy,
PositionX = 0,
PositionY = 2
},
// Pyre
new() {
new()
{
KeyText = "2",
KeyType = KeyType.Pyre,
PositionX = 2,
@@ -136,7 +158,8 @@ public class HotkeyModel {
},
// Morphs
new() {
new()
{
KeyText = "CONTROL",
KeyType = KeyType.Economy,
PositionX = 0,
+3 -2
View File
@@ -1,5 +1,6 @@
namespace Model.Immortal.Hotkeys;
namespace Model.Hotkeys;
public enum HotKeyType {
public enum HotKeyType
{
SPACE
}
+3 -2
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.MemoryTester;
namespace Model.MemoryTester;
public class AnswerEventArgs {
public class AnswerEventArgs
{
public string Name { get; set; }
public bool IsCorrect { get; set; }
public int Guess { get; set; }
+5 -3
View File
@@ -1,9 +1,11 @@
using System.Collections.Generic;
namespace Model.Immortal.MemoryTester;
namespace Model.MemoryTester;
public class MemoryEntityModel {
public static List<MemoryEntityModel> TestData = new() {
public class MemoryEntityModel
{
public static List<MemoryEntityModel> TestData = new()
{
new MemoryEntityModel { Id = 1, Name = "Masked Hunter" },
new MemoryEntityModel { Id = 2, Name = "Scepter" },
new MemoryEntityModel { Id = 3, Name = "Wraith Bow" },
+5 -3
View File
@@ -1,9 +1,11 @@
using System.Collections.Generic;
namespace Model.Immortal.MemoryTester;
namespace Model.MemoryTester;
public class MemoryQuestionModel {
public static List<MemoryQuestionModel> TestData = new() {
public class MemoryQuestionModel
{
public static List<MemoryQuestionModel> TestData = new()
{
new MemoryQuestionModel { Id = 1, MemoryEntityModelId = 1, Name = "Range", Answer = 600, IsRevealed = false },
new MemoryQuestionModel { Id = 2, MemoryEntityModelId = 2, Name = "Range", Answer = 600, IsRevealed = false },
new MemoryQuestionModel { Id = 3, MemoryEntityModelId = 3, Name = "Range", Answer = 600, IsRevealed = false },
+10
View File
@@ -0,0 +1,10 @@
using System.ComponentModel.DataAnnotations;
namespace Model.Notes;
public class NoteConnectionModel
{
[Key] public int Id { get; set; } = 1;
public int ParentId { get; set; } = 1;
public int ChildId { get; set; } = 1;
}
+47
View File
@@ -0,0 +1,47 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using Model.Doc;
namespace Model.Notes;
public class NoteContentModel
{
public int Id { get; set; }
public int? ParentId { get; set; } = null;
public int? NoteSectionModelId { get; set; } = null;
public string Href { get; set; }
//public DateTime LastUpdated { get; set; }
public DateTime CreatedDate { get; set; }
public DateTime UpdatedDate { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string Content { get; set; }
public string IsHidden { get; set; } = "False";
public string IsPreAlpha { get; set; } = "True";
[NotMapped] public virtual ICollection<NoteContentModel> NoteContentModels { get; set; } = new List<NoteContentModel>();
[NotMapped] public virtual NoteContentModel Parent { get; set; }
[NotMapped] public virtual int PageOrder { get; set; }
private string GetLink()
{
var link = Href;
if (Parent != null) link = $"{Parent.GetLink()}/" + link;
return link;
}
public string GetNoteLink()
{
return $"notes/{GetLink()}";
}
}
-18
View File
@@ -1,18 +0,0 @@
using System;
using System.Collections.Generic;
namespace Model.Immortal.Notes;
public class NoteModel {
public int Id { get; set; }
public DateTime LastUpdated { get; set; }
public string Name { get; set; }
public string Section { get; set; }
public string Description { get; set; }
public bool IsHidden { get; set; } = false;
public bool IsPreAlpha { get; set; } = true;
public string DEPRECATED_Id() {
return (Section + "-" + Name).ToLower().Replace(" ", "-");
}
}
+15
View File
@@ -0,0 +1,15 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Model.Notes;
public class NoteSectionModel
{
[Key] public int Id { get; set; }
public string Name { get; set; }
[NotMapped]
public virtual ICollection<NoteContentModel> NoteContentModels { get; set; } = new List<NoteContentModel>();
}
+3 -2
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.RoadMap.Enums;
namespace Model.RoadMap.Enums;
public class ReleasePriorityType {
public class ReleasePriorityType
{
public static string High = "High";
public static string Medium = "Medium";
public static string Low = "Low";
+3 -2
View File
@@ -1,6 +1,7 @@
namespace Model.Immortal.RoadMap.Enums;
namespace Model.RoadMap.Enums;
public class ReleaseStatusType {
public class ReleaseStatusType
{
public static string In_Development = "In_Development";
public static string Done = "Done";
public static string Future_Possibility = "Future_Possibility";
+24 -13
View File
@@ -1,67 +1,78 @@
using System.Collections.Generic;
using Model.Immortal.RoadMap.Enums;
using Model.RoadMap.Enums;
namespace Model.Immortal.RoadMap;
namespace Model.RoadMap;
public class ImmortalRoadMapModel {
public static readonly List<ImmortalRoadMapModel> Data = new() {
new ImmortalRoadMapModel {
public class ImmortalRoadMapModel
{
public static readonly List<ImmortalRoadMapModel> Data = new()
{
new ImmortalRoadMapModel
{
Name = "UI Overhaul",
Description =
@"In the process of redoing the UI. Perhaps add 'Making Of' page for development related details, including a visual list of all components used, for ease of design reference. Ideally avoid menu bloat. Database, Build Calculator, Notes and Documentation, should be obvious main pages. Review 900px width on all pages.",
Priority = ReleasePriorityType.High,
Status = ReleaseStatusType.In_Development
},
new ImmortalRoadMapModel {
new ImmortalRoadMapModel
{
Name = "Build Calculator Improvements",
Description =
@"The Calculator will be optimized to perform faster. It needs to be updated to consider training queue limits. Also, it needs error popups added for not enough ether, not enough supply, or no more interval time.",
Priority = ReleasePriorityType.High,
Status = ReleaseStatusType.Planned
},
new ImmortalRoadMapModel {
new ImmortalRoadMapModel
{
Name = "Build Calculator Pyre",
Description =
@"Build calculator should also handle pyre generation over time. 2 key will represent taking pyre camps. Make sure people can mark ""casted"" pyre spells as a part of the build order.",
Priority = ReleasePriorityType.Medium,
Status = ReleaseStatusType.Planned
},
new ImmortalRoadMapModel {
new ImmortalRoadMapModel
{
Name = "Build Comparisons",
Description =
@"You should be able to calculate two builds and load them against each other. Compare armies over time, to see when it would be best to strike against a certain build, and when it would be too late.",
Priority = ReleasePriorityType.Medium,
Status = ReleaseStatusType.Planned
},
new ImmortalRoadMapModel {
new ImmortalRoadMapModel
{
Name = "Notes",
Description =
@"There should be general notes on how to play Immortal. Nothing too extensive, but general faction and gameplay feel, like mentioning mechanics like Overgrowth for Aru and Wards for Q'Rath. Interesting but basic lore notes are also ideal, but all of these notes still need to be sortable in a method that feels natural, not a giant text bloat.",
Priority = ReleasePriorityType.High,
Status = ReleaseStatusType.Planned
},
new ImmortalRoadMapModel {
new ImmortalRoadMapModel
{
Name = "Documentation",
Description =
@"There should be documents on how to use this website. Calculator, Database, etc. Ideally, these documents will be designed in a way that becomes easily maintainable with patches. (Currently, some QA document type stuff is appended to the bottom of each tool page.) Add a button to easily go from the current tool, to its matching documented.",
Priority = ReleasePriorityType.Medium,
Status = ReleaseStatusType.Planned
},
new ImmortalRoadMapModel {
new ImmortalRoadMapModel
{
Name = "Test Automation",
Description =
@"All patches should be tested via test automation, to avoid obvious bugs from getting into production. Add a informational test automation page to the Development section.",
Priority = ReleasePriorityType.Medium,
Status = ReleaseStatusType.Planned
},
new ImmortalRoadMapModel {
new ImmortalRoadMapModel
{
Name = "Hot Key Reference",
Description =
@"Assuming the game continues to use Unreal-based hotkeys, there should be a reference for viewing and generating hotkey templates. Perhaps link to community hotkey files for people that do not wish to write their own.",
Priority = ReleasePriorityType.Low,
Status = ReleaseStatusType.Future_Possibility
},
new ImmortalRoadMapModel {
new ImmortalRoadMapModel
{
Name = "Data Features",
Description =
@"Being able to save and load the state of the website would be cool. User's would keep all the data as JSON on their local machine, and just be able to load it when visiting the website. Being able to use the website offline would also be cool. People would only visit the live website to get updates. Perhaps offline website could do a check for this update version.",
+2 -1
View File
@@ -1,6 +1,7 @@
namespace Model.Website.Enums;
public enum NavSelectionType {
public enum NavSelectionType
{
None,
Section,
Page
+2 -1
View File
@@ -1,6 +1,7 @@
namespace Model.Website.Enums;
public class NavigationStateType {
public class NavigationStateType
{
public const string Default = "Default";
public const string Hovering_Menu = "Hovering_Menu";
}
+2 -1
View File
@@ -1,6 +1,7 @@
namespace Model.Website.Enums;
public enum WebDeploymentType {
public enum WebDeploymentType
{
Private,
Public,
Immortal
+2 -1
View File
@@ -1,6 +1,7 @@
namespace Model.Website.Enums;
public class WebPageType {
public class WebPageType
{
//TODO Deprecated
public static readonly string None = "725d1adb-d5c8-4e51-bafb-09c86a94d0b0";
public static readonly string IMMORTAL_About = "16e56a46-e593-4de5-a2ff-272b41a28d99";
+2 -1
View File
@@ -1,6 +1,7 @@
namespace Model.Website.Enums;
public class WebSectionType {
public class WebSectionType
{
public static readonly string None = "28eefe79-3808-48da-8665-3eab5aebca1d";
public static readonly string ImmortalGeneral = "1a7dce11-57ff-453e-abac-6eeab01b9a61";
+2 -1
View File
@@ -1,6 +1,7 @@
namespace Model.Website;
public static class SupportedWebSizes {
public static class SupportedWebSizes
{
// Mins
//public static string Phone = "0px";
public static string Tablet = "479px";
+8 -4
View File
@@ -3,16 +3,20 @@ using Model.Website.Enums;
namespace Model.Website;
public class WebDeploymentModel {
public class WebDeploymentModel
{
public static WebDeploymentType DeploymentType { get; set; } = WebDeploymentType.Private;
public static List<string> Get() {
public static List<string> Get()
{
return DeploymentType == WebDeploymentType.Immortal ? GetImmortal() : new List<string>();
}
public static List<string> GetImmortal() {
return new List<string> {
public static List<string> GetImmortal()
{
return new List<string>
{
"",
"build-calculator",
"comparison-charts",
+4 -2
View File
@@ -4,7 +4,8 @@ using Model.Website.Enums;
namespace Model.Website;
public class WebDescriptionModel {
public class WebDescriptionModel
{
public static readonly List<WebDescriptionModel> List = new();
public string Name { get; set; } = "Add Name";
@@ -12,7 +13,8 @@ public class WebDescriptionModel {
public string Parent { get; set; } = WebSectionType.None;
public bool IsPrivate { get; set; } = true;
public static IEnumerable<WebDescriptionModel> GetPages(string forSection) {
public static IEnumerable<WebDescriptionModel> GetPages(string forSection)
{
return from page in List
where page.Parent == forSection
select page;
+2 -1
View File
@@ -1,6 +1,7 @@
namespace Model.Website;
public class WebPageModel {
public class WebPageModel
{
public int Id { get; set; }
public int WebSectionModelId { get; set; }
public string Name { get; set; } = "Add name";
+2 -1
View File
@@ -1,6 +1,7 @@
namespace Model.Website;
public class WebSectionModel {
public class WebSectionModel
{
public int Id { get; set; }
public string Name { get; set; } = "Add name";
public string Description { get; set; } = "Add description";