feat(Documents) Notes/Docs page improvements and warning cleanup
This commit is contained in:
@@ -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;
|
||||
@@ -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";
|
||||
}
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
namespace Model.Immortal.Chart.Enums;
|
||||
namespace Model.Chart.Enums;
|
||||
|
||||
public enum ChartColorType {
|
||||
public enum ChartColorType
|
||||
{
|
||||
Red,
|
||||
LightGreen,
|
||||
Cyan,
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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()}";
|
||||
}
|
||||
}
|
||||
@@ -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>();
|
||||
}
|
||||
@@ -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; }
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
namespace Model.Immortal.Economy.Enums;
|
||||
namespace Model.Economy.Enums;
|
||||
|
||||
public enum HarvesterType {
|
||||
public enum HarvesterType
|
||||
{
|
||||
Worker,
|
||||
EtherExtractor,
|
||||
Bastion
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
namespace Model.Immortal.Economy.Enums;
|
||||
namespace Model.Economy.Enums;
|
||||
|
||||
public enum RequestType {
|
||||
public enum RequestType
|
||||
{
|
||||
Unit,
|
||||
Building
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
namespace Model.Immortal.Economy.Enums;
|
||||
namespace Model.Economy.Enums;
|
||||
|
||||
public enum WorkerStateType {
|
||||
public enum WorkerStateType
|
||||
{
|
||||
Building,
|
||||
Unit
|
||||
}
|
||||
+897
-439
File diff suppressed because it is too large
Load Diff
@@ -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";
|
||||
|
||||
@@ -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
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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; }
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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; }
|
||||
}
|
||||
@@ -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; }
|
||||
}
|
||||
@@ -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; }
|
||||
}
|
||||
@@ -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; }
|
||||
}
|
||||
@@ -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; }
|
||||
|
||||
@@ -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; }
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -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; }
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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; }
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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; } = "";
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -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; } = "";
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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; }
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
namespace Model.Immortal.Entity.Parts;
|
||||
namespace Model.Entity.Parts;
|
||||
|
||||
public interface IEntityPartInterface { }
|
||||
public interface IEntityPartInterface
|
||||
{
|
||||
}
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
@@ -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";
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
namespace Model.Immortal.Types;
|
||||
namespace Model.Types;
|
||||
|
||||
public enum ResourceType {
|
||||
public enum ResourceType
|
||||
{
|
||||
Alloy,
|
||||
Ether,
|
||||
Pyre
|
||||
|
||||
@@ -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;
|
||||
@@ -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";
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
namespace Model.Immortal.Hotkeys;
|
||||
namespace Model.Hotkeys;
|
||||
|
||||
public enum KeyType {
|
||||
public enum KeyType
|
||||
{
|
||||
Action,
|
||||
ControlGroup,
|
||||
Cancel,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
namespace Model.Immortal.Hotkeys;
|
||||
namespace Model.Hotkeys;
|
||||
|
||||
public enum HotKeyType {
|
||||
public enum HotKeyType
|
||||
{
|
||||
SPACE
|
||||
}
|
||||
@@ -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; }
|
||||
|
||||
@@ -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" },
|
||||
|
||||
@@ -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 },
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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()}";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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(" ", "-");
|
||||
}
|
||||
}
|
||||
@@ -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>();
|
||||
}
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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.",
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
namespace Model.Website.Enums;
|
||||
|
||||
public enum NavSelectionType {
|
||||
public enum NavSelectionType
|
||||
{
|
||||
None,
|
||||
Section,
|
||||
Page
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
namespace Model.Website.Enums;
|
||||
|
||||
public enum WebDeploymentType {
|
||||
public enum WebDeploymentType
|
||||
{
|
||||
Private,
|
||||
Public,
|
||||
Immortal
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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,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;
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
Reference in New Issue
Block a user