game patch(Immortal) 0.0.6.9121a patch updates, plus WIP build calculator code
This commit is contained in:
@@ -22,15 +22,8 @@ else
|
|||||||
|
|
||||||
private EntityModel Entity => DATA.Get()[EntityId];
|
private EntityModel Entity => DATA.Get()[EntityId];
|
||||||
|
|
||||||
protected override void OnInitialized()
|
|
||||||
{
|
|
||||||
Console.Write(Entity.Info().Name);
|
|
||||||
}
|
|
||||||
|
|
||||||
void EntityLabelClicked()
|
void EntityLabelClicked()
|
||||||
{
|
{
|
||||||
Console.WriteLine("EntityLabelClicked()");
|
|
||||||
|
|
||||||
entityDialogService.AddDialog(EntityId);
|
entityDialogService.AddDialog(EntityId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
{
|
{
|
||||||
<div class="navMenuPosition">
|
<div class="navMenuPosition">
|
||||||
<div class="navMenuContainer">
|
<div class="navMenuContainer">
|
||||||
<DesktopNavSectionComponent Section=webSection/>
|
<DesktopNavSectionComponent Section=webSection> </DesktopNavSectionComponent>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
@@ -141,7 +141,6 @@
|
|||||||
|
|
||||||
void MenuClicked(int menuName)
|
void MenuClicked(int menuName)
|
||||||
{
|
{
|
||||||
Console.WriteLine($"MenuClicked {menuName}");
|
|
||||||
navigationService.ChangeNavigationSectionId(menuName);
|
navigationService.ChangeNavigationSectionId(menuName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -152,7 +151,6 @@
|
|||||||
|
|
||||||
void HoverOut(MouseEventArgs mouseEventArgs)
|
void HoverOut(MouseEventArgs mouseEventArgs)
|
||||||
{
|
{
|
||||||
Console.WriteLine(NavigationStateType.Default);
|
|
||||||
navigationService.ChangeNavigationState(NavigationStateType.Default);
|
navigationService.ChangeNavigationState(NavigationStateType.Default);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@@ -155,7 +155,6 @@
|
|||||||
entity = DATA.Get()[entityDialogService.GetEntityId()];
|
entity = DATA.Get()[entityDialogService.GetEntityId()];
|
||||||
refresh++;
|
refresh++;
|
||||||
|
|
||||||
Console.WriteLine("OnUpdate()");
|
|
||||||
StateHasChanged();
|
StateHasChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -110,9 +110,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.taskContainer.@StatusType.In_Progress.ToLower() {
|
.taskContainer.@StatusType.In_Progress.ToLower() {
|
||||||
border-color: #030129;
|
border-color: #030129;
|
||||||
background-color: #2c3a4c;
|
background-color: #2c3a4c;
|
||||||
@@ -144,6 +141,10 @@
|
|||||||
border-width: 8px;
|
border-width: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.taskContainer.@TaskType.Document.ToLower() {
|
||||||
|
border-style: dashed;
|
||||||
|
border-width: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
.taskName {
|
.taskName {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
|||||||
@@ -33,6 +33,12 @@
|
|||||||
<b>- Energy: </b> @production.Energy
|
<b>- Energy: </b> @production.Energy
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
@if (!production.DefensiveLayer.Equals(0))
|
||||||
|
{
|
||||||
|
<div>
|
||||||
|
<b>- Shields:</b> @production.DefensiveLayer
|
||||||
|
</div>
|
||||||
|
}
|
||||||
if (production.BuildTime != 0)
|
if (production.BuildTime != 0)
|
||||||
{
|
{
|
||||||
<div>
|
<div>
|
||||||
@@ -84,6 +90,12 @@
|
|||||||
<b> Energy: </b> @production.Energy
|
<b> Energy: </b> @production.Energy
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
@if (!production.DefensiveLayer.Equals(0))
|
||||||
|
{
|
||||||
|
<div>
|
||||||
|
<b>Shields:</b> @production.DefensiveLayer
|
||||||
|
</div>
|
||||||
|
}
|
||||||
if (production.BuildTime != 0)
|
if (production.BuildTime != 0)
|
||||||
{
|
{
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
<div>
|
<div>
|
||||||
<b>Name:</b> @info.Name
|
<b>Passive Name:</b> @info.Name
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<b>- Description:</b> @((MarkupString)info.Description)
|
<b>- Description:</b> @((MarkupString)info.Description)
|
||||||
@@ -54,7 +54,7 @@
|
|||||||
var requirementModel = DATA.Get()[requirement.Id];
|
var requirementModel = DATA.Get()[requirement.Id];
|
||||||
<div>
|
<div>
|
||||||
<span>
|
<span>
|
||||||
<b>@requirement.Requirement.Replace("_", " "):</b> @requirementModel.Info().Name
|
<b>- @requirement.Requirement.Replace("_", " "):</b> @requirementModel.Info().Name
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,6 +42,12 @@
|
|||||||
<b>Pyre:</b> @Production.Pyre
|
<b>Pyre:</b> @Production.Pyre
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
@if (!Production.Pyre.Equals(0))
|
||||||
|
{
|
||||||
|
<div>
|
||||||
|
<b>Shields:</b> @Production.DefensiveLayer
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
|
||||||
@if (!Production.BuildTime.Equals(0))
|
@if (!Production.BuildTime.Equals(0))
|
||||||
{
|
{
|
||||||
@@ -128,6 +134,12 @@
|
|||||||
<b>Pyre:</b> @Production.Pyre
|
<b>Pyre:</b> @Production.Pyre
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
@if (!Production.DefensiveLayer.Equals(0))
|
||||||
|
{
|
||||||
|
<div>
|
||||||
|
<b>Shields:</b> @Production.DefensiveLayer
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
|
||||||
@if (!Production.BuildTime.Equals(0))
|
@if (!Production.BuildTime.Equals(0))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,6 +23,13 @@
|
|||||||
<b>Energy:</b> @Vitality.Energy
|
<b>Energy:</b> @Vitality.Energy
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
@if (!Vitality.Lasts.Equals(0))
|
||||||
|
{
|
||||||
|
<div>
|
||||||
|
<b>Lasts:</b> @Vitality.Lasts.ToString()s
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
|
||||||
@if (Vitality.Armor != "")
|
@if (Vitality.Armor != "")
|
||||||
{
|
{
|
||||||
<div>
|
<div>
|
||||||
@@ -92,6 +99,12 @@
|
|||||||
<b>Energy:</b> @Vitality.Energy
|
<b>Energy:</b> @Vitality.Energy
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
@if (!Vitality.Lasts.Equals(0))
|
||||||
|
{
|
||||||
|
<div>
|
||||||
|
<b>Lasts:</b> @Vitality.Lasts.ToString()s
|
||||||
|
</div>
|
||||||
|
}
|
||||||
@if (Vitality.Armor != "")
|
@if (Vitality.Armor != "")
|
||||||
{
|
{
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
+8
-10
@@ -20,7 +20,6 @@ builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.
|
|||||||
|
|
||||||
builder.Services.AddLocalization();
|
builder.Services.AddLocalization();
|
||||||
|
|
||||||
|
|
||||||
builder.Services.AddSingleton<INavigationService, NavigationService>();
|
builder.Services.AddSingleton<INavigationService, NavigationService>();
|
||||||
builder.Services.AddSingleton<IKeyService, KeyService>();
|
builder.Services.AddSingleton<IKeyService, KeyService>();
|
||||||
builder.Services.AddSingleton<IImmortalSelectionService, ImmortalSelectionService>();
|
builder.Services.AddSingleton<IImmortalSelectionService, ImmortalSelectionService>();
|
||||||
@@ -30,9 +29,15 @@ builder.Services.AddSingleton<IEconomyService, EconomyService>();
|
|||||||
builder.Services.AddSingleton<ITimingService, TimingService>();
|
builder.Services.AddSingleton<ITimingService, TimingService>();
|
||||||
builder.Services.AddSingleton<IMemoryTesterService, MemoryTesterService>();
|
builder.Services.AddSingleton<IMemoryTesterService, MemoryTesterService>();
|
||||||
builder.Services.AddSingleton<IEntityFilterService, EntityFilterService>();
|
builder.Services.AddSingleton<IEntityFilterService, EntityFilterService>();
|
||||||
|
builder.Services.AddSingleton<IGameLogicService, GameLogicService>();
|
||||||
builder.Services.AddSingleton<IEntityDisplayService, EntityDisplayService>();
|
builder.Services.AddSingleton<IEntityDisplayService, EntityDisplayService>();
|
||||||
|
builder.Services.AddSingleton<IEntityDialogService, EntityDialogService>();
|
||||||
|
builder.Services.AddSingleton<IToastService, ToastService>();
|
||||||
|
builder.Services.AddSingleton<IWebsiteService, WebsiteService>();
|
||||||
|
builder.Services.AddSingleton<IAgileService, AgileService>();
|
||||||
|
builder.Services.AddSingleton<IGitService, GitService>();
|
||||||
|
builder.Services.AddSingleton<INoteService, NoteService>();
|
||||||
|
builder.Services.AddSingleton<IDocumentationService, DocumentationService>();
|
||||||
|
|
||||||
builder.Services.AddSingleton(new HttpClient
|
builder.Services.AddSingleton(new HttpClient
|
||||||
{
|
{
|
||||||
@@ -40,8 +45,6 @@ builder.Services.AddSingleton(new HttpClient
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
builder.Services.AddSingleton<IEntityDialogService, EntityDialogService>();
|
|
||||||
builder.Services.AddSingleton<IToastService, ToastService>();
|
|
||||||
|
|
||||||
#if NO_SQL
|
#if NO_SQL
|
||||||
|
|
||||||
@@ -49,11 +52,6 @@ builder.Services.AddSingleton<IToastService, ToastService>();
|
|||||||
//builder.Services.AddDbContext<DatabaseContext>(options => { options.UseSqlite("Data Source=./Database.db"); });
|
//builder.Services.AddDbContext<DatabaseContext>(options => { options.UseSqlite("Data Source=./Database.db"); });
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
builder.Services.AddSingleton<IWebsiteService, WebsiteService>();
|
|
||||||
builder.Services.AddSingleton<IAgileService, AgileService>();
|
|
||||||
builder.Services.AddSingleton<IGitService, GitService>();
|
|
||||||
builder.Services.AddSingleton<INoteService, NoteService>();
|
|
||||||
builder.Services.AddSingleton<IDocumentationService, DocumentationService>();
|
|
||||||
|
|
||||||
|
|
||||||
await builder.Build().RunAsync();
|
await builder.Build().RunAsync();
|
||||||
|
|||||||
@@ -104,7 +104,7 @@ You can notice a single line of this file can be broken down like this.
|
|||||||
|
|
||||||
## Modify the Input.ini file
|
## Modify the Input.ini file
|
||||||
|
|
||||||
Your now going to want to modify the file with your own hotkey setup.
|
You are now going to want to modify the file with your own hotkey setup.
|
||||||
|
|
||||||
To do this, replace any of the Key=`VALUE` mapped to the desired actions with any value from the list below.
|
To do this, replace any of the Key=`VALUE` mapped to the desired actions with any value from the list below.
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
[{"Id":1,"Name":"Agile Sprint","Description":"Changelogs and sprint views were going to be pushed till later, but I am feeling inspired by the IGP Content Creators\u0027 minimum weekly lifecycle requirement. So I am going to focus on agile-related tasks, and handle roadmap tasks after this initial sprint. All weekly sprints will release on Sunday, starting next Sunday.","StartDate":"2022-02-14T00:00:00","EndDate":"2022-02-20T00:00:00","Notes":null,"AgileTaskModels":[]},{"Id":2,"Name":"SQL Update","Description":"The SQL update is big enough to be a full sprint in of itself, and I spent less time this week for development. Will just extend sprint by 2 week, and remove all non SQL tasks from the sprint.","StartDate":"2022-02-20T00:00:00","EndDate":"2022-03-27T00:00:00","Notes":null,"AgileTaskModels":[]},{"Id":3,"Name":"Database Page","Description":"Improvements to the Database page","StartDate":"2022-03-27T00:00:00","EndDate":"2022-04-03T00:00:00","Notes":null,"AgileTaskModels":[]},{"Id":4,"Name":"Branding","Description":"Improve streaming branding around the website","StartDate":"2022-04-03T00:00:00","EndDate":"2022-04-10T00:00:00","Notes":null,"AgileTaskModels":[]},{"Id":5,"Name":"Calculators","Description":"Improve Calculators","StartDate":"2022-04-10T00:00:00","EndDate":"2022-04-24T00:00:00","Notes":null,"AgileTaskModels":[]},{"Id":6,"Name":"Infrastructure Misc","Description":"Localization, Analytics, and Test Automation","StartDate":"2022-04-24T00:00:00","EndDate":"2022-05-08T00:00:00","Notes":null,"AgileTaskModels":[]},{"Id":7,"Name":"Damage Calculator and Lists","Description":"Sort unit data by damage output. Select a attack and defense unit to see hits to kill.","StartDate":"2022-05-08T00:00:00","EndDate":"2022-05-22T00:00:00","Notes":null,"AgileTaskModels":[]},{"Id":8,"Name":"More Test Automation and CI","Description":"More test automation work. Integrate into CI","StartDate":"2022-05-22T00:00:00","EndDate":"2022-06-05T00:00:00","Notes":null,"AgileTaskModels":[]}]
|
[{"Id":0,"Name":"Easy Tasks","Description":"General tasks that I can grab when too tired to program","StartDate":null,"EndDate":null,"Notes":null,"AgileTaskModels":[]},{"Id":1,"Name":"Agile Sprint","Description":"Changelogs and sprint views were going to be pushed till later, but I am feeling inspired by the IGP Content Creators\u0027 minimum weekly lifecycle requirement. So I am going to focus on agile-related tasks, and handle roadmap tasks after this initial sprint. All weekly sprints will release on Sunday, starting next Sunday.","StartDate":"2022-02-14T00:00:00","EndDate":"2022-02-20T00:00:00","Notes":null,"AgileTaskModels":[]},{"Id":2,"Name":"SQL Update","Description":"The SQL update is big enough to be a full sprint in of itself, and I spent less time this week for development. Will just extend sprint by 2 week, and remove all non SQL tasks from the sprint.","StartDate":"2022-02-20T00:00:00","EndDate":"2022-03-27T00:00:00","Notes":null,"AgileTaskModels":[]},{"Id":3,"Name":"Database Page","Description":"Improvements to the Database page","StartDate":"2022-03-27T00:00:00","EndDate":"2022-04-03T00:00:00","Notes":null,"AgileTaskModels":[]},{"Id":4,"Name":"Branding","Description":"Improve streaming branding around the website","StartDate":"2022-04-03T00:00:00","EndDate":"2022-04-10T00:00:00","Notes":null,"AgileTaskModels":[]},{"Id":5,"Name":"Calculators","Description":"Improve Calculators","StartDate":"2022-04-10T00:00:00","EndDate":"2022-04-24T00:00:00","Notes":null,"AgileTaskModels":[]},{"Id":6,"Name":"Infrastructure Misc","Description":"Localization, Analytics, and Test Automation","StartDate":"2022-04-24T00:00:00","EndDate":"2022-05-08T00:00:00","Notes":null,"AgileTaskModels":[]},{"Id":7,"Name":"Damage Calculator and Lists","Description":"Sort unit data by damage output. Select a attack and defense unit to see hits to kill.","StartDate":"2022-05-08T00:00:00","EndDate":"2022-05-22T00:00:00","Notes":null,"AgileTaskModels":[]},{"Id":8,"Name":"More Test Automation and CI","Description":"More test automation work. Integrate into CI","StartDate":"2022-05-22T00:00:00","EndDate":"2022-06-05T00:00:00","Notes":null,"AgileTaskModels":[]}]
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
|||||||
[{"Id":1,"Name":"Database UX Patch","Date":"2022-03-13T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":2,"Name":"Thrum Stats Hotfix","Date":"2022-03-12T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":3,"Name":"Memory Tester Patch","Date":"2022-03-01T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":4,"Name":"Hide Pyre Hotfix","Date":"2022-02-20T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":5,"Name":"Stream Patch","Date":"2022-02-20T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":6,"Name":"Agile UI Hotfix","Date":"2022-02-20T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":7,"Name":"Armor Patch","Date":"2022-02-19T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":8,"Name":"Home Page Patch","Date":"2022-02-19T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":9,"Name":"Mobile Menu Hotfix 2","Date":"2022-02-19T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":10,"Name":"Mobile Menu Hotfix","Date":"2022-02-19T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":11,"Name":"Mobile Menu Patch","Date":"2022-02-19T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":12,"Name":"0.0.6.8375a Patch","Date":"2022-02-18T00:00:00","GitChangeModels":[],"Important":"True"},{"Id":13,"Name":"Google Tracking Hotfix","Date":"2022-02-18T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":14,"Name":"Privacy Policy Patch","Date":"2022-02-17T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":15,"Name":"Home Page Quick Hotfix","Date":"2022-02-16T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":16,"Name":"Early Agile Patch","Date":"2022-02-16T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":17,"Name":"Form Text Rendering Hotfix","Date":"2022-02-15T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":18,"Name":"Reducing Timing Interval Hotfix","Date":"2022-02-15T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":19,"Name":"Changelog Patch","Date":"2022-02-14T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":20,"Name":"SQL Patch","Date":"2022-03-26T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":21,"Name":"Stream Patch","Date":"2022-03-30T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":22,"Name":"0.0.6.8900a Patch","Date":"2022-03-30T00:00:00","GitChangeModels":[],"Important":"True"},{"Id":23,"Name":"Database Links Patch","Date":"2022-04-01T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":24,"Name":"Open Source Patch","Date":"2022-04-03T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":25,"Name":"Stream Patch","Date":"2022-04-03T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":26,"Name":"Notes/Docs Patch","Date":"2022-04-10T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":27,"Name":"Stream Patch","Date":"2022-04-10T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":28,"Name":"Passive Patch","Date":"2022-04-12T00:00:00","GitChangeModels":[],"Important":"True"}]
|
[{"Id":1,"Name":"Database UX Patch","Date":"2022-03-13T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":2,"Name":"Thrum Stats Hotfix","Date":"2022-03-12T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":3,"Name":"Memory Tester Patch","Date":"2022-03-01T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":4,"Name":"Hide Pyre Hotfix","Date":"2022-02-20T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":5,"Name":"Stream Patch","Date":"2022-02-20T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":6,"Name":"Agile UI Hotfix","Date":"2022-02-20T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":7,"Name":"Armor Patch","Date":"2022-02-19T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":8,"Name":"Home Page Patch","Date":"2022-02-19T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":9,"Name":"Mobile Menu Hotfix 2","Date":"2022-02-19T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":10,"Name":"Mobile Menu Hotfix","Date":"2022-02-19T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":11,"Name":"Mobile Menu Patch","Date":"2022-02-19T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":12,"Name":"0.0.6.8375a Patch","Date":"2022-02-18T00:00:00","GitChangeModels":[],"Important":"True"},{"Id":13,"Name":"Google Tracking Hotfix","Date":"2022-02-18T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":14,"Name":"Privacy Policy Patch","Date":"2022-02-17T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":15,"Name":"Home Page Quick Hotfix","Date":"2022-02-16T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":16,"Name":"Early Agile Patch","Date":"2022-02-16T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":17,"Name":"Form Text Rendering Hotfix","Date":"2022-02-15T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":18,"Name":"Reducing Timing Interval Hotfix","Date":"2022-02-15T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":19,"Name":"Changelog Patch","Date":"2022-02-14T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":20,"Name":"SQL Patch","Date":"2022-03-26T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":21,"Name":"Stream Patch","Date":"2022-03-30T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":22,"Name":"0.0.6.8900a Patch","Date":"2022-03-30T00:00:00","GitChangeModels":[],"Important":"True"},{"Id":23,"Name":"Database Links Patch","Date":"2022-04-01T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":24,"Name":"Open Source Patch","Date":"2022-04-03T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":25,"Name":"Stream Patch","Date":"2022-04-03T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":26,"Name":"Notes/Docs Patch","Date":"2022-04-10T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":27,"Name":"Stream Patch","Date":"2022-04-10T00:00:00","GitChangeModels":[],"Important":"False"},{"Id":28,"Name":"Passive Patch","Date":"2022-04-12T00:00:00","GitChangeModels":[],"Important":"True"},{"Id":29,"Name":"0.0.6.9121a Patch","Date":"2022-04-13T00:00:00","GitChangeModels":[],"Important":"True"}]
|
||||||
@@ -4,4 +4,5 @@ public class TaskType
|
|||||||
{
|
{
|
||||||
public const string Feature = "Feature";
|
public const string Feature = "Feature";
|
||||||
public const string Bug = "Bug";
|
public const string Bug = "Bug";
|
||||||
|
public const string Document = "Document";
|
||||||
}
|
}
|
||||||
@@ -10,7 +10,19 @@ public class BuildOrderModel
|
|||||||
public string Name { get; set; } = "";
|
public string Name { get; set; } = "";
|
||||||
public string Color { get; set; } = "red";
|
public string Color { get; set; } = "red";
|
||||||
|
|
||||||
public Dictionary<int, List<EntityModel>> Orders { get; set; } = new()
|
public Dictionary<int, List<EntityModel>> StartedOrders { get; set; } = new()
|
||||||
|
{
|
||||||
|
{
|
||||||
|
0,
|
||||||
|
new List<EntityModel>
|
||||||
|
{
|
||||||
|
EntityModel.Get(DataType.STARTING_Bastion),
|
||||||
|
EntityModel.Get(DataType.STARTING_TownHall_Aru)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
public Dictionary<int, List<EntityModel>> CompletedOrders { get; set; } = new()
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
0,
|
0,
|
||||||
@@ -29,7 +41,7 @@ public class BuildOrderModel
|
|||||||
|
|
||||||
public List<EntityModel> GetOrdersAt(int interval)
|
public List<EntityModel> GetOrdersAt(int interval)
|
||||||
{
|
{
|
||||||
return (from ordersAtTime in Orders
|
return (from ordersAtTime in StartedOrders
|
||||||
from orders in ordersAtTime.Value
|
from orders in ordersAtTime.Value
|
||||||
where ordersAtTime.Key == interval
|
where ordersAtTime.Key == interval
|
||||||
select orders).ToList();
|
select orders).ToList();
|
||||||
@@ -37,7 +49,7 @@ public class BuildOrderModel
|
|||||||
|
|
||||||
public List<EntityModel> GetCompletedAt(int interval)
|
public List<EntityModel> GetCompletedAt(int interval)
|
||||||
{
|
{
|
||||||
return (from ordersAtTime in Orders
|
return (from ordersAtTime in StartedOrders
|
||||||
from orders in ordersAtTime.Value
|
from orders in ordersAtTime.Value
|
||||||
where ordersAtTime.Key + (orders.Production() == null ? 0 : orders.Production().BuildTime) == interval
|
where ordersAtTime.Key + (orders.Production() == null ? 0 : orders.Production().BuildTime) == interval
|
||||||
select orders).ToList();
|
select orders).ToList();
|
||||||
@@ -45,15 +57,16 @@ public class BuildOrderModel
|
|||||||
|
|
||||||
public List<EntityModel> GetCompletedBefore(int interval)
|
public List<EntityModel> GetCompletedBefore(int interval)
|
||||||
{
|
{
|
||||||
return (from ordersAtTime in Orders
|
return (from ordersAtTime in StartedOrders
|
||||||
from orders in ordersAtTime.Value
|
from orders in ordersAtTime.Value
|
||||||
|
where ordersAtTime.Key >= interval
|
||||||
where ordersAtTime.Key + (orders.Production() == null ? 0 : orders.Production().BuildTime) <= interval
|
where ordersAtTime.Key + (orders.Production() == null ? 0 : orders.Production().BuildTime) <= interval
|
||||||
select orders).ToList();
|
select orders).ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<EntityModel> GetHarvestersCompletedBefore(int interval)
|
public List<EntityModel> GetHarvestersCompletedBefore(int interval)
|
||||||
{
|
{
|
||||||
return (from ordersAtTime in Orders
|
return (from ordersAtTime in StartedOrders
|
||||||
from orders in ordersAtTime.Value
|
from orders in ordersAtTime.Value
|
||||||
where ordersAtTime.Key + (orders.Production() == null ? 0 : orders.Production().BuildTime) <= interval
|
where ordersAtTime.Key + (orders.Production() == null ? 0 : orders.Production().BuildTime) <= interval
|
||||||
where orders.Harvest() != null
|
where orders.Harvest() != null
|
||||||
|
|||||||
+163
-52
@@ -55,8 +55,8 @@ public class DATA
|
|||||||
DataType.TEAPOT_FlyingTeapot, new EntityModel(DataType.TEAPOT_FlyingTeapot, EntityType.Teapot)
|
DataType.TEAPOT_FlyingTeapot, new EntityModel(DataType.TEAPOT_FlyingTeapot, EntityType.Teapot)
|
||||||
.AddPart(new EntityInfoModel
|
.AddPart(new EntityInfoModel
|
||||||
{
|
{
|
||||||
Name = "Flying Teapot", Description = "Basic observer. Can fly and see hidden units",
|
Name = "Flying Teapot", Description = "Basic observer. Can fly and see hidden units within 1000 range.",
|
||||||
Notes = @"Much flying, Wow!"
|
Notes = @"Doesn't take up a scout slot."
|
||||||
})
|
})
|
||||||
.AddPart(new EntityRequirementModel { Id = DataType.TEAPOT_Teapot })
|
.AddPart(new EntityRequirementModel { Id = DataType.TEAPOT_Teapot })
|
||||||
.AddPart(new EntityProductionModel { Alloy = 100, Ether = 50 })
|
.AddPart(new EntityProductionModel { Alloy = 100, Ether = 50 })
|
||||||
@@ -259,6 +259,7 @@ public class DATA
|
|||||||
.AddPart(new EntityIdPyreSpellModel { Id = DataType.ISPELL_SummonGroveGuardian })
|
.AddPart(new EntityIdPyreSpellModel { Id = DataType.ISPELL_SummonGroveGuardian })
|
||||||
.AddPart(new EntityIdPyreSpellModel { Id = DataType.ISPELL_InfuseTroops })
|
.AddPart(new EntityIdPyreSpellModel { Id = DataType.ISPELL_InfuseTroops })
|
||||||
.AddPart(new EntityIdPyreSpellModel { Id = DataType.ISPELL_ConstructBloodWell })
|
.AddPart(new EntityIdPyreSpellModel { Id = DataType.ISPELL_ConstructBloodWell })
|
||||||
|
.AddPart(new EntityIdPyreSpellModel { Id = DataType.ISPELL_MarkPrey })
|
||||||
.AddPart(new EntityIdPyreSpellModel { Id = DataType.ISPELL_TheGreatHunt })
|
.AddPart(new EntityIdPyreSpellModel { Id = DataType.ISPELL_TheGreatHunt })
|
||||||
.AddPart(new EntityIdVanguardModel { Id = DataType.VANGUARD_BoneStalker_Xol })
|
.AddPart(new EntityIdVanguardModel { Id = DataType.VANGUARD_BoneStalker_Xol })
|
||||||
.AddPart(new EntityIdVanguardModel { Id = DataType.VANGUARD_WhiteWoodReaper_Xol })
|
.AddPart(new EntityIdVanguardModel { Id = DataType.VANGUARD_WhiteWoodReaper_Xol })
|
||||||
@@ -319,7 +320,12 @@ public class DATA
|
|||||||
DataType.IPASSIVE_MothersHunger,
|
DataType.IPASSIVE_MothersHunger,
|
||||||
new EntityModel(DataType.IPASSIVE_MothersHunger, EntityType.Passive)
|
new EntityModel(DataType.IPASSIVE_MothersHunger, EntityType.Passive)
|
||||||
.AddPart(new EntityInfoModel
|
.AddPart(new EntityInfoModel
|
||||||
{ Name = "Mother's Hunger", Description = "Mala's Blood Wells grant you pyre for nearby non-quitl deaths." })
|
{
|
||||||
|
Name = "Mother's Hunger",
|
||||||
|
Description = "Mala's Blood Wells grant you pyre for nearby non-quitl deaths, based on the supply.",
|
||||||
|
Notes = "+1 per supply"
|
||||||
|
|
||||||
|
})
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
DataType.IPASSIVE_StalkersSense,
|
DataType.IPASSIVE_StalkersSense,
|
||||||
@@ -458,7 +464,10 @@ public class DATA
|
|||||||
DataType.VANGUARD_Sceptre_Orzum,
|
DataType.VANGUARD_Sceptre_Orzum,
|
||||||
new EntityModel(DataType.VANGUARD_Sceptre_Orzum, EntityType.Army)
|
new EntityModel(DataType.VANGUARD_Sceptre_Orzum, EntityType.Army)
|
||||||
.AddPart(new EntityInfoModel
|
.AddPart(new EntityInfoModel
|
||||||
{ Name = "Sceptre", Descriptive = DescriptiveType.Harrier, Description = "" })
|
{
|
||||||
|
Name = "Sceptre", Descriptive = DescriptiveType.Harrier, Description = "",
|
||||||
|
Notes = "Loses 16 energy per second when moving."
|
||||||
|
})
|
||||||
.AddPart(new EntityTierModel { Tier = 3 })
|
.AddPart(new EntityTierModel { Tier = 3 })
|
||||||
.AddPart(new EntityHotkeyModel { Hotkey = "R", HoldSpace = true, HotkeyGroup = "Z" })
|
.AddPart(new EntityHotkeyModel { Hotkey = "R", HoldSpace = true, HotkeyGroup = "Z" })
|
||||||
.AddPart(new EntityFactionModel { Faction = FactionType.QRath })
|
.AddPart(new EntityFactionModel { Faction = FactionType.QRath })
|
||||||
@@ -631,7 +640,7 @@ public class DATA
|
|||||||
.AddPart(new EntityFactionModel { Faction = FactionType.Aru })
|
.AddPart(new EntityFactionModel { Faction = FactionType.Aru })
|
||||||
.AddPart(new EntityVanguardAddedModel
|
.AddPart(new EntityVanguardAddedModel
|
||||||
{ ReplaceId = DataType.UNIT_MaskedHunter, ImmortalId = DataType.IMMORTAL_Xol })
|
{ ReplaceId = DataType.UNIT_MaskedHunter, ImmortalId = DataType.IMMORTAL_Xol })
|
||||||
.AddPart(new EntityProductionModel { Alloy = 50, Ether = 0, BuildTime = 40 })
|
.AddPart(new EntityProductionModel { Alloy = 50, Ether = 0, BuildTime = 35 })
|
||||||
.AddPart(new EntitySupplyModel { Takes = 2 })
|
.AddPart(new EntitySupplyModel { Takes = 2 })
|
||||||
.AddPart(new EntityVitalityModel
|
.AddPart(new EntityVitalityModel
|
||||||
{ Health = 85, DefenseLayer = 10, Armor = ArmorType.Light, IsEtheric = false })
|
{ Health = 85, DefenseLayer = 10, Armor = ArmorType.Light, IsEtheric = false })
|
||||||
@@ -687,6 +696,7 @@ public class DATA
|
|||||||
.AddPart(new EntityMovementModel { Speed = 400, Movement = MovementType.Ground })
|
.AddPart(new EntityMovementModel { Speed = 400, Movement = MovementType.Ground })
|
||||||
.AddPart(new EntityWeaponModel
|
.AddPart(new EntityWeaponModel
|
||||||
{ Damage = 5, Range = 50, AttacksPerSecond = 1.887f, Targets = TargetType.Ground })
|
{ Damage = 5, Range = 50, AttacksPerSecond = 1.887f, Targets = TargetType.Ground })
|
||||||
|
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_HarvestAlloy })
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
DataType.UNIT_Sipari,
|
DataType.UNIT_Sipari,
|
||||||
@@ -790,6 +800,8 @@ public class DATA
|
|||||||
Damage = 20, MediumDamage = 24, HeavyDamage = 28, Range = 500, AttacksPerSecond = 0.667f,
|
Damage = 20, MediumDamage = 24, HeavyDamage = 28, Range = 500, AttacksPerSecond = 0.667f,
|
||||||
Targets = TargetType.All
|
Targets = TargetType.All
|
||||||
})
|
})
|
||||||
|
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_WindStep })
|
||||||
|
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_ZephyrRange })
|
||||||
.AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_Windstep })
|
.AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_Windstep })
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -815,11 +827,13 @@ public class DATA
|
|||||||
.AddPart(new EntityMovementModel { Speed = 435, Movement = MovementType.Ground })
|
.AddPart(new EntityMovementModel { Speed = 435, Movement = MovementType.Ground })
|
||||||
.AddPart(new EntityWeaponModel
|
.AddPart(new EntityWeaponModel
|
||||||
{
|
{
|
||||||
Damage = 20, LightDamage = 40, MediumDamage = 30, Range = 250, AttacksPerSecond = 0.5f,
|
LightDamage = 32, MediumDamage = 24, Damage = 16, Range = 250, AttacksPerSecond = 0.5f,
|
||||||
Targets = TargetType.Ground
|
Targets = TargetType.Ground
|
||||||
})
|
})
|
||||||
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_SiroccoScript })
|
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_SiroccoScript })
|
||||||
.AddPart(new EntityIdPassiveModel(){Id = DataType.PASSIVE_RadiantWard})
|
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_RadiantWard })
|
||||||
|
.AddPart(new EntityIdAbilityModel {Id = DataType.ABILITY_RadiantWard})
|
||||||
|
.AddPart(new EntityIdPassiveModel(){Id = DataType.PASSIVE_SiroccoScript})
|
||||||
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -829,7 +843,8 @@ public class DATA
|
|||||||
{
|
{
|
||||||
Name = "Absolver", Descriptive = DescriptiveType.Zone_Control,
|
Name = "Absolver", Descriptive = DescriptiveType.Zone_Control,
|
||||||
Description =
|
Description =
|
||||||
"Zone Control (Ground Unit) - Deploys to gain increased rate of fire to hold a position. Can only attack ground."
|
"Zone Control (Ground Unit) - Deploys to gain increased rate of fire to hold a position. Can only attack ground.",
|
||||||
|
Notes = "Deploy time is 2 seconds. Mobilize time is 1.5 seconds."
|
||||||
})
|
})
|
||||||
.AddPart(new EntityTierModel { Tier = 2 })
|
.AddPart(new EntityTierModel { Tier = 2 })
|
||||||
.AddPart(new EntityHotkeyModel { Hotkey = "F", HotkeyGroup = "Z" })
|
.AddPart(new EntityHotkeyModel { Hotkey = "F", HotkeyGroup = "Z" })
|
||||||
@@ -886,7 +901,7 @@ public class DATA
|
|||||||
.AddPart(new EntityWeaponModel
|
.AddPart(new EntityWeaponModel
|
||||||
{ Damage = 8, Range = 500, AttacksPerSecond = 1.429f, Targets = TargetType.Ground })
|
{ Damage = 8, Range = 500, AttacksPerSecond = 1.429f, Targets = TargetType.Ground })
|
||||||
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_RelicOfTheWrathfulGaze })
|
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_RelicOfTheWrathfulGaze })
|
||||||
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_Maledictions })
|
.AddPart(new EntityIdAbilityModel { Id = DataType.ABILITY_Maledictions })
|
||||||
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_RelicOfTheWrathfulGaze })
|
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_RelicOfTheWrathfulGaze })
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -922,6 +937,8 @@ public class DATA
|
|||||||
Damage = 60, MediumDamage = 80, HeavyDamage = 100, Range = 1300, AttacksPerSecond = 0.143f,
|
Damage = 60, MediumDamage = 80, HeavyDamage = 100, Range = 1300, AttacksPerSecond = 0.143f,
|
||||||
Targets = TargetType.Ground
|
Targets = TargetType.Ground
|
||||||
})
|
})
|
||||||
|
|
||||||
|
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_HallowedRuin })
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
DataType.UNIT_Sentinel,
|
DataType.UNIT_Sentinel,
|
||||||
@@ -1059,6 +1076,7 @@ public class DATA
|
|||||||
.AddPart(new EntityMovementModel { Speed = 400, Movement = MovementType.Ground })
|
.AddPart(new EntityMovementModel { Speed = 400, Movement = MovementType.Ground })
|
||||||
.AddPart(new EntityWeaponModel
|
.AddPart(new EntityWeaponModel
|
||||||
{ Damage = 8, Range = 40, AttacksPerSecond = 1.25f, Targets = TargetType.Ground })
|
{ Damage = 8, Range = 40, AttacksPerSecond = 1.25f, Targets = TargetType.Ground })
|
||||||
|
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_HarvestAlloy })
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
DataType.UNIT_MaskedHunter,
|
DataType.UNIT_MaskedHunter,
|
||||||
@@ -1088,6 +1106,7 @@ public class DATA
|
|||||||
{ Damage = 7, Range = 400, AttacksPerSecond = 1.4f, Targets = TargetType.All, HeavyDamage = 6 })
|
{ Damage = 7, Range = 400, AttacksPerSecond = 1.4f, Targets = TargetType.All, HeavyDamage = 6 })
|
||||||
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_Offering })
|
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_Offering })
|
||||||
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_BloodMothersFevor })
|
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_BloodMothersFevor })
|
||||||
|
.AddPart(new EntityIdPassiveModel { Id = DataType.ABILITY_Offering })
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
DataType.UNIT_Xacal,
|
DataType.UNIT_Xacal,
|
||||||
@@ -1148,6 +1167,8 @@ public class DATA
|
|||||||
Targets = TargetType.Ground
|
Targets = TargetType.Ground
|
||||||
})
|
})
|
||||||
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_QuenchingScythes })
|
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_QuenchingScythes })
|
||||||
|
|
||||||
|
.AddPart(new EntityIdPassiveModel { Id = DataType.ABILITY_CullingStrike })
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
DataType.UNIT_RedSeer,
|
DataType.UNIT_RedSeer,
|
||||||
@@ -1311,6 +1332,8 @@ public class DATA
|
|||||||
TargetType.Air
|
TargetType.Air
|
||||||
})
|
})
|
||||||
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_AaroxBurn })
|
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_AaroxBurn })
|
||||||
|
|
||||||
|
.AddPart(new EntityIdAbilityModel() { Id = DataType.ABILITY_DiveBomb })
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
DataType.UNIT_Thrum,
|
DataType.UNIT_Thrum,
|
||||||
@@ -1355,6 +1378,7 @@ public class DATA
|
|||||||
.AddPart(new EntityWeaponModel
|
.AddPart(new EntityWeaponModel
|
||||||
{ Damage = 9, Range = 500, AttacksPerSecond = 0.714f, Targets = TargetType.Ground })
|
{ Damage = 9, Range = 500, AttacksPerSecond = 0.714f, Targets = TargetType.Ground })
|
||||||
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_GuidingAmber })
|
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_GuidingAmber })
|
||||||
|
.AddPart(new EntityIdPassiveModel() { Id = DataType.PASSIVE_WraithBowRange })
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
DataType.UNIT_Behemoth,
|
DataType.UNIT_Behemoth,
|
||||||
@@ -1383,7 +1407,7 @@ public class DATA
|
|||||||
Targets = TargetType.Ground
|
Targets = TargetType.Ground
|
||||||
})
|
})
|
||||||
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_BehemothCapacity })
|
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_BehemothCapacity })
|
||||||
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_QuitlStorage })
|
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_BehemothCapacity })
|
||||||
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_QuitlStorage2 })
|
.AddPart(new EntityIdPassiveModel { Id = DataType.PASSIVE_QuitlStorage2 })
|
||||||
|
|
||||||
|
|
||||||
@@ -1417,6 +1441,19 @@ public class DATA
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
DataType.UPGRADE_RadiantWard,
|
||||||
|
new EntityModel(DataType.UPGRADE_RadiantWard, EntityType.Tech)
|
||||||
|
.AddPart(new EntityInfoModel
|
||||||
|
{
|
||||||
|
Name = "Research Radiant Ward", Descriptive = DescriptiveType.Upgrade,
|
||||||
|
Description = "Unlocks the dervish's Radiant Ward ability"
|
||||||
|
})
|
||||||
|
.AddPart(new EntityHotkeyModel { Hotkey = "V", HotkeyGroup = "TAB" })
|
||||||
|
.AddPart(new EntityFactionModel { Faction = FactionType.QRath })
|
||||||
|
.AddPart(new EntityProductionModel { Alloy = 80, Ether = 80, BuildTime = 34 })
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
DataType.UPGRADE_FortifiedIcons,
|
DataType.UPGRADE_FortifiedIcons,
|
||||||
new EntityModel(DataType.UPGRADE_FortifiedIcons, EntityType.Tech)
|
new EntityModel(DataType.UPGRADE_FortifiedIcons, EntityType.Tech)
|
||||||
@@ -1498,7 +1535,7 @@ public class DATA
|
|||||||
.AddPart(new EntityInfoModel
|
.AddPart(new EntityInfoModel
|
||||||
{
|
{
|
||||||
Name = "Sirocco Script", Descriptive = DescriptiveType.Upgrade,
|
Name = "Sirocco Script", Descriptive = DescriptiveType.Upgrade,
|
||||||
Description = "Increases the Dervish's movement speed by 50%."
|
Description = "Grant's the Dervish Sirocco Script"
|
||||||
})
|
})
|
||||||
.AddPart(new EntityHotkeyModel { Hotkey = "F", HotkeyGroup = "TAB" })
|
.AddPart(new EntityHotkeyModel { Hotkey = "F", HotkeyGroup = "TAB" })
|
||||||
.AddPart(new EntityFactionModel { Faction = FactionType.QRath })
|
.AddPart(new EntityFactionModel { Faction = FactionType.QRath })
|
||||||
@@ -1563,7 +1600,10 @@ public class DATA
|
|||||||
DataType.UPGRADE_Offering,
|
DataType.UPGRADE_Offering,
|
||||||
new EntityModel(DataType.UPGRADE_Offering, EntityType.Tech)
|
new EntityModel(DataType.UPGRADE_Offering, EntityType.Tech)
|
||||||
.AddPart(new EntityInfoModel
|
.AddPart(new EntityInfoModel
|
||||||
{ Name = "Offering", Descriptive = DescriptiveType.Upgrade, Description = "Unlocks Offering" })
|
{
|
||||||
|
Name = "Offering",
|
||||||
|
Descriptive = DescriptiveType.Upgrade,
|
||||||
|
Description = "Unlocks Offering" })
|
||||||
.AddPart(new EntityHotkeyModel { Hotkey = "W", HotkeyGroup = "TAB" })
|
.AddPart(new EntityHotkeyModel { Hotkey = "W", HotkeyGroup = "TAB" })
|
||||||
.AddPart(new EntityFactionModel { Faction = FactionType.Aru })
|
.AddPart(new EntityFactionModel { Faction = FactionType.Aru })
|
||||||
.AddPart(new EntityRequirementModel
|
.AddPart(new EntityRequirementModel
|
||||||
@@ -1684,9 +1724,47 @@ public class DATA
|
|||||||
Requirement = RequirementType.Research_Building
|
Requirement = RequirementType.Research_Building
|
||||||
})
|
})
|
||||||
.AddPart(new EntityProductionModel { Alloy = 50, Ether = 75, BuildTime = 29 })
|
.AddPart(new EntityProductionModel { Alloy = 50, Ether = 75, BuildTime = 29 })
|
||||||
.AddPart(new EntityIdUpgradeModel { Id = DataType.UPGRADE_WraithBowRange })
|
|
||||||
.AddPart(new EntityIdPassiveModel() { Id = DataType.PASSIVE_WraithBowRange })
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
DataType.UPGRADE_Stalk,
|
||||||
|
new EntityModel(DataType.UPGRADE_Stalk, EntityType.Tech)
|
||||||
|
.AddPart(new EntityInfoModel
|
||||||
|
{
|
||||||
|
Name = "Research Stalk",
|
||||||
|
Description = "Unlocks the Bone Stalker's Stabilize",
|
||||||
|
Descriptive = DescriptiveType.Upgrade
|
||||||
|
})
|
||||||
|
.AddPart(new EntityHotkeyModel { Hotkey = "W", HotkeyGroup = "TAB", HoldSpace = false })
|
||||||
|
.AddPart(new EntityFactionModel { Faction = FactionType.Aru })
|
||||||
|
.AddPart(new EntityRequirementModel
|
||||||
|
{
|
||||||
|
Id = DataType.BUILDING_Neurocyte,
|
||||||
|
Requirement = RequirementType.Research_Building
|
||||||
|
})
|
||||||
|
.AddPart(new EntityProductionModel { Alloy = 100, Ether = 80, BuildTime = 60 })
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
DataType.UPGRADE_Ambush,
|
||||||
|
new EntityModel(DataType.UPGRADE_Ambush, EntityType.Tech)
|
||||||
|
.AddPart(new EntityInfoModel
|
||||||
|
{
|
||||||
|
Name = "Research Ambush",
|
||||||
|
Description = "When Hidden, the Bone Stalker's next attack deals double damage",
|
||||||
|
Descriptive = DescriptiveType.Upgrade
|
||||||
|
})
|
||||||
|
.AddPart(new EntityHotkeyModel { Hotkey = "V", HotkeyGroup = "TAB", HoldSpace = false })
|
||||||
|
.AddPart(new EntityFactionModel { Faction = FactionType.Aru })
|
||||||
|
.AddPart(new EntityRequirementModel
|
||||||
|
{
|
||||||
|
Id = DataType.BUILDING_RedVale,
|
||||||
|
Requirement = RequirementType.Research_Building
|
||||||
|
})
|
||||||
|
.AddPart(new EntityProductionModel { Alloy = 100, Ether = 125, BuildTime = 80 })
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
DataType.UPGRADE_BloodPlague,
|
DataType.UPGRADE_BloodPlague,
|
||||||
new EntityModel(DataType.UPGRADE_BloodPlague, EntityType.Tech)
|
new EntityModel(DataType.UPGRADE_BloodPlague, EntityType.Tech)
|
||||||
@@ -1726,7 +1804,7 @@ public class DATA
|
|||||||
// Neutral
|
// Neutral
|
||||||
{
|
{
|
||||||
DataType.PASSIVE_BastionPassives,
|
DataType.PASSIVE_BastionPassives,
|
||||||
new EntityModel(DataType.PASSIVE_Respite, EntityType.Passive)
|
new EntityModel(DataType.PASSIVE_BastionPassives, EntityType.Passive)
|
||||||
.AddPart(new EntityInfoModel
|
.AddPart(new EntityInfoModel
|
||||||
{
|
{
|
||||||
Name = "(Scouts and Pyre)", Descriptive = DescriptiveType.Passive,
|
Name = "(Scouts and Pyre)", Descriptive = DescriptiveType.Passive,
|
||||||
@@ -1742,7 +1820,7 @@ public class DATA
|
|||||||
{
|
{
|
||||||
Name = "Respite", Descriptive = DescriptiveType.Passive,
|
Name = "Respite", Descriptive = DescriptiveType.Passive,
|
||||||
Description =
|
Description =
|
||||||
@"Nearby units will slowly heal after not attacking for several seconds."
|
@"Nearby units will slowly heal after not attacking or being attacked for 10 seconds."
|
||||||
})
|
})
|
||||||
.AddPart(new EntityFactionModel { Faction = FactionType.Any })
|
.AddPart(new EntityFactionModel { Faction = FactionType.Any })
|
||||||
},
|
},
|
||||||
@@ -1854,6 +1932,18 @@ public class DATA
|
|||||||
.AddPart(new EntityFactionModel { Faction = FactionType.QRath })
|
.AddPart(new EntityFactionModel { Faction = FactionType.QRath })
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
DataType.PASSIVE_SiroccoScript,
|
||||||
|
new EntityModel(DataType.PASSIVE_SiroccoScript, EntityType.Passive)
|
||||||
|
.AddPart(new EntityInfoModel
|
||||||
|
{
|
||||||
|
Name = "Sirocco Script Rites", Descriptive = DescriptiveType.Passive,
|
||||||
|
Description = @"Increases the derish's movement speed"
|
||||||
|
})
|
||||||
|
.AddPart(new EntityRequirementModel(){ Id = DataType.UPGRADE_SiroccoScript})
|
||||||
|
.AddPart(new EntityFactionModel { Faction = FactionType.QRath })
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
DataType.PASSIVE_HallowingRites,
|
DataType.PASSIVE_HallowingRites,
|
||||||
new EntityModel(DataType.PASSIVE_HallowingRites, EntityType.Passive)
|
new EntityModel(DataType.PASSIVE_HallowingRites, EntityType.Passive)
|
||||||
@@ -1956,8 +2046,8 @@ public class DATA
|
|||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
DataType.PASSIVE_QuitlStorage,
|
DataType.PASSIVE_BehemothCapacity,
|
||||||
new EntityModel(DataType.PASSIVE_QuitlStorage, EntityType.Passive)
|
new EntityModel(DataType.PASSIVE_BehemothCapacity, EntityType.Passive)
|
||||||
.AddPart(new EntityInfoModel
|
.AddPart(new EntityInfoModel
|
||||||
{
|
{
|
||||||
Name = "Quitl Storage", Descriptive = DescriptiveType.Passive,
|
Name = "Quitl Storage", Descriptive = DescriptiveType.Passive,
|
||||||
@@ -2000,17 +2090,7 @@ public class DATA
|
|||||||
.AddPart(new EntityFactionModel { Faction = FactionType.Aru })
|
.AddPart(new EntityFactionModel { Faction = FactionType.Aru })
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
|
||||||
DataType.PASSIVE_RadiantWard,
|
|
||||||
new EntityModel(DataType.PASSIVE_RadiantWard, EntityType.Passive)
|
|
||||||
.AddPart(new EntityInfoModel
|
|
||||||
{
|
|
||||||
Name = "Radiant Ward", Descriptive = DescriptiveType.Applies_Debuff,
|
|
||||||
Description = @"This unit is revealed?",
|
|
||||||
Notes = "Not implemented."
|
|
||||||
})
|
|
||||||
.AddPart(new EntityFactionModel { Faction = FactionType.QRath })
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
{
|
||||||
DataType.PASSIVE_Stalk,
|
DataType.PASSIVE_Stalk,
|
||||||
@@ -2018,10 +2098,11 @@ public class DATA
|
|||||||
.AddPart(new EntityInfoModel
|
.AddPart(new EntityInfoModel
|
||||||
{
|
{
|
||||||
Name = "Stalk", Descriptive = DescriptiveType.Passive,
|
Name = "Stalk", Descriptive = DescriptiveType.Passive,
|
||||||
Description = @"This unit has hidden when stabilized.",
|
Description = @"After remaining stationary for several seconds, gain Hidden 3 and a movement speed boost.",
|
||||||
Notes = "Not implemented."
|
Notes = "Lose hidden on attacking"
|
||||||
})
|
})
|
||||||
.AddPart(new EntityFactionModel { Faction = FactionType.Aru })
|
.AddPart(new EntityFactionModel { Faction = FactionType.Aru })
|
||||||
|
.AddPart(new EntityRequirementModel{Id=DataType.UPGRADE_Stalk})
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -2029,9 +2110,20 @@ public class DATA
|
|||||||
new EntityModel(DataType.PASSIVE_Stalk, EntityType.Passive)
|
new EntityModel(DataType.PASSIVE_Stalk, EntityType.Passive)
|
||||||
.AddPart(new EntityInfoModel
|
.AddPart(new EntityInfoModel
|
||||||
{
|
{
|
||||||
Name = "Stalk", Descriptive = DescriptiveType.Passive,
|
Name = "Ambush", Descriptive = DescriptiveType.Passive,
|
||||||
Description = @"This unit deals double damage when attacking from hidden.",
|
Description = @"This unit deals double damage when attacking from hidden.",
|
||||||
Notes = "Not implemented."
|
})
|
||||||
|
.AddPart(new EntityFactionModel { Faction = FactionType.Aru })
|
||||||
|
.AddPart(new EntityRequirementModel(){Id=DataType.UPGRADE_Ambush})
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
DataType.PASSIVE_HiddenX,
|
||||||
|
new EntityModel(DataType.PASSIVE_HiddenX, EntityType.Passive)
|
||||||
|
.AddPart(new EntityInfoModel
|
||||||
|
{
|
||||||
|
Name = "Hidden X", Descriptive = DescriptiveType.Passive,
|
||||||
|
Description = @"This unit cannot be seen unless enemies units are within X.",
|
||||||
})
|
})
|
||||||
.AddPart(new EntityFactionModel { Faction = FactionType.Aru })
|
.AddPart(new EntityFactionModel { Faction = FactionType.Aru })
|
||||||
},
|
},
|
||||||
@@ -2085,19 +2177,6 @@ public class DATA
|
|||||||
.AddPart(new EntityRequirementModel(){ Id = DataType.UPGRADE_FortifiedIcons, Requirement = RequirementType.Research_Upgrade})
|
.AddPart(new EntityRequirementModel(){ Id = DataType.UPGRADE_FortifiedIcons, Requirement = RequirementType.Research_Upgrade})
|
||||||
.AddPart(new EntityFactionModel { Faction = FactionType.QRath })
|
.AddPart(new EntityFactionModel { Faction = FactionType.QRath })
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
|
||||||
DataType.PASSIVE_Maledictions,
|
|
||||||
new EntityModel(DataType.PASSIVE_Maledictions, EntityType.Passive)
|
|
||||||
.AddPart(new EntityInfoModel
|
|
||||||
{
|
|
||||||
Name = "Maledictions", Descriptive = DescriptiveType.Applies_Debuff,
|
|
||||||
Description = @"Stun ground unit? With Maledictions spell.",
|
|
||||||
Notes = "Not implemented"
|
|
||||||
})
|
|
||||||
.AddPart(new EntityFactionModel { Faction = FactionType.QRath })
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
{
|
||||||
DataType.PASSIVE_MendingCommand,
|
DataType.PASSIVE_MendingCommand,
|
||||||
new EntityModel(DataType.PASSIVE_MendingCommand, EntityType.Passive)
|
new EntityModel(DataType.PASSIVE_MendingCommand, EntityType.Passive)
|
||||||
@@ -2246,6 +2325,32 @@ public class DATA
|
|||||||
|
|
||||||
// Abilities
|
// Abilities
|
||||||
// Q'Rath
|
// Q'Rath
|
||||||
|
{
|
||||||
|
DataType.ABILITY_RadiantWard,
|
||||||
|
new EntityModel(DataType.ABILITY_RadiantWard, EntityType.Ability)
|
||||||
|
.AddPart(new EntityInfoModel
|
||||||
|
{
|
||||||
|
Name = "Radiant Ward", Descriptive = DescriptiveType.Ability,
|
||||||
|
Description = @"Spawns a mine that reveals enemy units, slows them, and makes them take increased damage for a duration.",
|
||||||
|
})
|
||||||
|
.AddPart(new EntityFactionModel { Faction = FactionType.QRath })
|
||||||
|
.AddPart(new EntityProductionModel { DefensiveLayer = 30, Cooldown = 40} )
|
||||||
|
.AddPart(new EntityRequirementModel { Id = DataType.UPGRADE_RadiantWard })
|
||||||
|
.AddPart(new EntityVitalityModel {Health = 30, DefenseLayer = 30, Lasts = 30, Armor = ArmorType.Light, IsStructure = true})
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
DataType.ABILITY_Maledictions,
|
||||||
|
new EntityModel(DataType.ABILITY_Maledictions, EntityType.Ability)
|
||||||
|
.AddPart(new EntityInfoModel
|
||||||
|
{
|
||||||
|
Name = "Maledictions", Descriptive = DescriptiveType.Ability,
|
||||||
|
Description = @"Stun ground unit? With Maledictions spell.",
|
||||||
|
Notes = "Not implemented"
|
||||||
|
})
|
||||||
|
.AddPart(new EntityFactionModel { Faction = FactionType.QRath })
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
DataType.ABILITY_BladesOfTheGodhead,
|
DataType.ABILITY_BladesOfTheGodhead,
|
||||||
new EntityModel(DataType.ABILITY_BladesOfTheGodhead, EntityType.Ability)
|
new EntityModel(DataType.ABILITY_BladesOfTheGodhead, EntityType.Ability)
|
||||||
@@ -2368,10 +2473,12 @@ public class DATA
|
|||||||
{
|
{
|
||||||
Name = "Offering", Descriptive = DescriptiveType.Ability,
|
Name = "Offering", Descriptive = DescriptiveType.Ability,
|
||||||
Description =
|
Description =
|
||||||
"Sacrifices 10 life to increase range, speed, and attack speed for several seconds."
|
"Sacrifices 10 life to give Masked Hunters +3 damage for 3 shots. And increased speed and attack speed."
|
||||||
})
|
})
|
||||||
.AddPart(new EntityHotkeyModel { Hotkey = "E", HotkeyGroup = "D" })
|
.AddPart(new EntityHotkeyModel { Hotkey = "E", HotkeyGroup = "D" })
|
||||||
.AddPart(new EntityFactionModel { Faction = FactionType.Aru })
|
.AddPart(new EntityFactionModel { Faction = FactionType.Aru })
|
||||||
|
.AddPart(new EntityRequirementModel(){ Id= DataType.UPGRADE_Offering})
|
||||||
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
DataType.ABILITY_DiveBomb,
|
DataType.ABILITY_DiveBomb,
|
||||||
@@ -2405,7 +2512,7 @@ public class DATA
|
|||||||
{
|
{
|
||||||
Name = "Lethal Bond", Descriptive = DescriptiveType.Ability,
|
Name = "Lethal Bond", Descriptive = DescriptiveType.Ability,
|
||||||
Description =
|
Description =
|
||||||
"After a short delay, enemy units in the target area receive a debuff which causes them to take double damage from all attacks for a duration."
|
"After a short delay, enemy units in the target area receive a debuff which causes them to take double damage from all attacks for a duration. Also gives the White Wood Reaper invisibility if it affects at least 1 enemy"
|
||||||
})
|
})
|
||||||
.AddPart(new EntityHotkeyModel { Hotkey = "R", HotkeyGroup = "D" })
|
.AddPart(new EntityHotkeyModel { Hotkey = "R", HotkeyGroup = "D" })
|
||||||
.AddPart(new EntityVanguardAddedModel
|
.AddPart(new EntityVanguardAddedModel
|
||||||
@@ -2484,7 +2591,7 @@ public class DATA
|
|||||||
Description =
|
Description =
|
||||||
"Deals damage over time in an area and marks affected units for several seconds. Units that die while marked spawn a quitl.",
|
"Deals damage over time in an area and marks affected units for several seconds. Units that die while marked spawn a quitl.",
|
||||||
Notes =
|
Notes =
|
||||||
"Deals 20 damage + 15% of max life of the target immediately upon affecting the enemy unit. It deals the same damage again after 8 seconds. If the unit dies during those 8 seconds (including the final burst), spawns 1 quitl every 2 supply of the dead unit, rounded up"
|
"Deals 10 damage + 5% of max life of the target immediately upon affecting the enemy unit. It deals 15 damage + 15% after 8 seconds. If the unit dies during those 8 seconds (including the final burst), spawns 1 quitl every 2 supply of the dead unit, rounded up. Stacking only refreshes duration of debuff."
|
||||||
})
|
})
|
||||||
.AddPart(new EntityHotkeyModel { Hotkey = "W", HotkeyGroup = "D" })
|
.AddPart(new EntityHotkeyModel { Hotkey = "W", HotkeyGroup = "D" })
|
||||||
.AddPart(new EntityVanguardAddedModel { ImmortalId = DataType.IMMORTAL_Mala })
|
.AddPart(new EntityVanguardAddedModel { ImmortalId = DataType.IMMORTAL_Mala })
|
||||||
@@ -2530,6 +2637,7 @@ public class DATA
|
|||||||
.AddPart(new EntityMovementModel { Speed = 210, Movement = MovementType.Ground })
|
.AddPart(new EntityMovementModel { Speed = 210, Movement = MovementType.Ground })
|
||||||
.AddPart(new EntityWeaponModel
|
.AddPart(new EntityWeaponModel
|
||||||
{ Damage = 125, Range = 1500, AttacksPerSecond = 0.175f, Targets = TargetType.Ground })
|
{ Damage = 125, Range = 1500, AttacksPerSecond = 0.175f, Targets = TargetType.Ground })
|
||||||
|
.AddPart(new EntityIdPassiveModel(){Id = DataType.PASSIVE_HiddenX})
|
||||||
},
|
},
|
||||||
// Pyre Spells
|
// Pyre Spells
|
||||||
// Q'Rath
|
// Q'Rath
|
||||||
@@ -2691,16 +2799,19 @@ public class DATA
|
|||||||
{
|
{
|
||||||
DataType.ISPELL_MarkPrey,
|
DataType.ISPELL_MarkPrey,
|
||||||
new EntityModel(DataType.ISPELL_MarkPrey, EntityType.Pyre_Spell)
|
new EntityModel(DataType.ISPELL_MarkPrey, EntityType.Pyre_Spell)
|
||||||
.AddPart(new EntityInfoModel { Name = "Mark Prey", Description = "Knowing where things are lets you hunt them?", Notes = "Not implemented."})
|
.AddPart(new EntityInfoModel { Name = "Mark Prey",
|
||||||
|
Description = @"Enemy units in the target area are <b>Revealed</b> through fog of war. Units still in the area after a short delay are marked for 10 seconds to take bonus damage and provide Pyre when killed.",
|
||||||
|
Notes = "+3 pyre for kills"
|
||||||
|
})
|
||||||
.AddPart(new EntityHotkeyModel { Hotkey = "E", HotkeyGroup = "1" })
|
.AddPart(new EntityHotkeyModel { Hotkey = "E", HotkeyGroup = "1" })
|
||||||
.AddPart(new EntityFactionModel { Faction = FactionType.Aru })
|
.AddPart(new EntityFactionModel { Faction = FactionType.Aru })
|
||||||
.AddPart(new EntityVanguardAddedModel { ImmortalId = DataType.IMMORTAL_Xol })
|
.AddPart(new EntityVanguardAddedModel { ImmortalId = DataType.IMMORTAL_Xol })
|
||||||
.AddPart(new EntityProductionModel { })
|
.AddPart(new EntityProductionModel { Cooldown = 15, Pyre = 25})
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
DataType.ISPELL_TheGreatHunt,
|
DataType.ISPELL_TheGreatHunt,
|
||||||
new EntityModel(DataType.ISPELL_TheGreatHunt, EntityType.Pyre_Spell)
|
new EntityModel(DataType.ISPELL_TheGreatHunt, EntityType.Pyre_Spell)
|
||||||
.AddPart(new EntityInfoModel { Name = "The Great Hunt", Description = "Reduces enemy vision to 300."})
|
.AddPart(new EntityInfoModel { Name = "The Great Hunt", Description = "Enemy unit and structures have their vision reduce to 3 for a short time."})
|
||||||
.AddPart(new EntityHotkeyModel { Hotkey = "R", HotkeyGroup = "1" })
|
.AddPart(new EntityHotkeyModel { Hotkey = "R", HotkeyGroup = "1" })
|
||||||
.AddPart(new EntityFactionModel { Faction = FactionType.Aru })
|
.AddPart(new EntityFactionModel { Faction = FactionType.Aru })
|
||||||
.AddPart(new EntityVanguardAddedModel { ImmortalId = DataType.IMMORTAL_Xol })
|
.AddPart(new EntityVanguardAddedModel { ImmortalId = DataType.IMMORTAL_Xol })
|
||||||
|
|||||||
@@ -115,16 +115,23 @@ public static class DataType
|
|||||||
public static string UPGRADE_BloodPlague = "9c207e21-f595-49d0-967d-f30ca8cc3745";
|
public static string UPGRADE_BloodPlague = "9c207e21-f595-49d0-967d-f30ca8cc3745";
|
||||||
public static string UPGRADE_BirthingStorm = "0cb2f1a4-03b3-491b-9db3-d2d4590ede3a";
|
public static string UPGRADE_BirthingStorm = "0cb2f1a4-03b3-491b-9db3-d2d4590ede3a";
|
||||||
|
|
||||||
|
public static string UPGRADE_RadiantWard = "c8acc6d0-9f26-475a-aff4-4e2b2f9657f2";
|
||||||
|
|
||||||
|
public static string UPGRADE_Stalk = "36fbc2c0-e9e3-4f54-a79a-981db908c25c";
|
||||||
|
public static string UPGRADE_Ambush = "6cf83dc9-717f-4fa9-b417-a3371474a1da";
|
||||||
|
|
||||||
public static string PASSIVE_WraithBowRange = "196dd8a6-2044-44e1-aac4-fbaa40552699";
|
public static string PASSIVE_WraithBowRange = "196dd8a6-2044-44e1-aac4-fbaa40552699";
|
||||||
|
|
||||||
|
|
||||||
|
public static string PASSIVE_HiddenX = "7b819996-ffc0-4e07-9c11-c91c5f9d467b";
|
||||||
|
|
||||||
|
|
||||||
public static string PASSIVE_Respite = "607c39f4-a957-4a7a-8fc6-a239f9e570ec";
|
public static string PASSIVE_Respite = "607c39f4-a957-4a7a-8fc6-a239f9e570ec";
|
||||||
public static string PASSIVE_BastionPassives = "ea42b9cb-2456-4ed2-b490-fcfde12c6153";
|
public static string PASSIVE_BastionPassives = "ea42b9cb-2456-4ed2-b490-fcfde12c6153";
|
||||||
public static string PASSIVE_HallowedWarrior = "fea43ced-33f3-4531-af7d-740c1789fec1";
|
public static string PASSIVE_HallowedWarrior = "fea43ced-33f3-4531-af7d-740c1789fec1";
|
||||||
public static string PASSIVE_GreavesOfAhqar = "3c408d75-7bee-4089-84c0-74620ac708b6";
|
public static string PASSIVE_GreavesOfAhqar = "3c408d75-7bee-4089-84c0-74620ac708b6";
|
||||||
public static string PASSIVE_FortifiedIcons = "35f3f02f-e22e-44be-b2ea-82972c383308";
|
public static string PASSIVE_FortifiedIcons = "35f3f02f-e22e-44be-b2ea-82972c383308";
|
||||||
|
|
||||||
public static string PASSIVE_Maledictions = "6cdc109c-157d-433a-b225-192e39c0b613";
|
|
||||||
public static string PASSIVE_HarvestAlloy = "84bacf5a-b106-455c-8cff-66c3998404f8";
|
public static string PASSIVE_HarvestAlloy = "84bacf5a-b106-455c-8cff-66c3998404f8";
|
||||||
public static string PASSIVE_RelicOfTheWrathfulGaze = "ccebc0c9-cfd5-465a-8a5d-2495bd745a83";
|
public static string PASSIVE_RelicOfTheWrathfulGaze = "ccebc0c9-cfd5-465a-8a5d-2495bd745a83";
|
||||||
|
|
||||||
@@ -139,6 +146,8 @@ public static class DataType
|
|||||||
|
|
||||||
public static string PASSIVE_ThroneMovingShot = "699423ed-7410-4daf-8b07-9dc733a8bf55";
|
public static string PASSIVE_ThroneMovingShot = "699423ed-7410-4daf-8b07-9dc733a8bf55";
|
||||||
|
|
||||||
|
public static string PASSIVE_SiroccoScript = "11c21afa-ff88-4e42-9f97-a1d1595b115c";
|
||||||
|
|
||||||
public static string PASSIVE_HallowingRites = "9c8ae47b-954e-4a17-8f35-f128c9114b61";
|
public static string PASSIVE_HallowingRites = "9c8ae47b-954e-4a17-8f35-f128c9114b61";
|
||||||
public static string PASSIVE_RegentsWrath = "f111f004-6548-4430-9d13-ef44ab108ae7";
|
public static string PASSIVE_RegentsWrath = "f111f004-6548-4430-9d13-ef44ab108ae7";
|
||||||
public static string PASSIVE_PsalmOfFire = "d28f6b7c-d319-4fb8-bdd4-92ede40a0751";
|
public static string PASSIVE_PsalmOfFire = "d28f6b7c-d319-4fb8-bdd4-92ede40a0751";
|
||||||
@@ -146,10 +155,9 @@ public static class DataType
|
|||||||
public static string PASSIVE_HallowedGround = "bdb28984-246f-4642-84ab-9e83c02b3e2e";
|
public static string PASSIVE_HallowedGround = "bdb28984-246f-4642-84ab-9e83c02b3e2e";
|
||||||
public static string PASSIVE_CastFromLife = "3cc734de-f8e7-4e69-9fa5-bdf725c4941b";
|
public static string PASSIVE_CastFromLife = "3cc734de-f8e7-4e69-9fa5-bdf725c4941b";
|
||||||
public static string PASSIVE_Rootway = "46768d4a-5047-4973-b5ca-995cda25ee8d";
|
public static string PASSIVE_Rootway = "46768d4a-5047-4973-b5ca-995cda25ee8d";
|
||||||
public static string PASSIVE_QuitlStorage = "a210f109-d3ac-44d4-9724-601c795a2394";
|
public static string PASSIVE_BehemothCapacity = "a210f109-d3ac-44d4-9724-601c795a2394";
|
||||||
public static string PASSIVE_QuitlStorage2 = "0b27b863-fce5-40e4-96c7-6df94bdd92b9";
|
public static string PASSIVE_QuitlStorage2 = "0b27b863-fce5-40e4-96c7-6df94bdd92b9";
|
||||||
public static string PASSIVE_Temporary = "940c04f1-df0b-4cf7-9514-09dfd9009554";
|
public static string PASSIVE_Temporary = "940c04f1-df0b-4cf7-9514-09dfd9009554";
|
||||||
public static string PASSIVE_RadiantWard = "db1fc8bd-d86a-4eda-b83c-16e8d0ce4f81";
|
|
||||||
public static string PASSIVE_Stalk = "9c107bfd-0050-4670-91b8-f9a8d771225d";
|
public static string PASSIVE_Stalk = "9c107bfd-0050-4670-91b8-f9a8d771225d";
|
||||||
public static string PASSIVE_Ambush = "9d0a9482-0303-4a15-bb88-972f6ae60a39";
|
public static string PASSIVE_Ambush = "9d0a9482-0303-4a15-bb88-972f6ae60a39";
|
||||||
|
|
||||||
@@ -177,6 +185,10 @@ public static class DataType
|
|||||||
public static string PASSIVE_FireQuitl = "80f6b382-da1c-49a1-8235-1ea37983ea54";
|
public static string PASSIVE_FireQuitl = "80f6b382-da1c-49a1-8235-1ea37983ea54";
|
||||||
public static string PASSIVE_XacalDamage = "69928f20-5332-418f-ada3-694da3f7b199";
|
public static string PASSIVE_XacalDamage = "69928f20-5332-418f-ada3-694da3f7b199";
|
||||||
|
|
||||||
|
public static string ABILITY_RadiantWard = "db1fc8bd-d86a-4eda-b83c-16e8d0ce4f81";
|
||||||
|
|
||||||
|
public static string ABILITY_Maledictions = "6cdc109c-157d-433a-b225-192e39c0b613";
|
||||||
|
|
||||||
public static string ABILITY_BladesOfTheGodhead = "000154ac-faf5-483d-b0bd-e84335891a27";
|
public static string ABILITY_BladesOfTheGodhead = "000154ac-faf5-483d-b0bd-e84335891a27";
|
||||||
public static string ABILITY_Windstep = "a410b296-39f7-42e0-87c8-6cef11eb967c";
|
public static string ABILITY_Windstep = "a410b296-39f7-42e0-87c8-6cef11eb967c";
|
||||||
public static string ABILITY_Leap = "aa155b88-125a-4d25-b63f-77987ea6e519";
|
public static string ABILITY_Leap = "aa155b88-125a-4d25-b63f-77987ea6e519";
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ namespace Model.Entity;
|
|||||||
|
|
||||||
public class EntityModel
|
public class EntityModel
|
||||||
{
|
{
|
||||||
public static readonly string GameVersion = "0.0.6.8900a";
|
public static readonly string GameVersion = "0.0.6.9121a";
|
||||||
|
|
||||||
private static Dictionary<string, EntityModel> _database= null!;
|
private static Dictionary<string, EntityModel> _database= null!;
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ public class EntityProductionModel : IEntityPartInterface
|
|||||||
public int Pyre { get; set; } = 0;
|
public int Pyre { get; set; } = 0;
|
||||||
|
|
||||||
public int Energy { get; set; } = 0;
|
public int Energy { get; set; } = 0;
|
||||||
|
|
||||||
|
public int DefensiveLayer { get; set; } = 0;
|
||||||
public int BuildTime { get; set; } = 0;
|
public int BuildTime { get; set; } = 0;
|
||||||
|
|
||||||
// Remove cooldown as a cost, and move into ability stats
|
// Remove cooldown as a cost, and move into ability stats
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ public class EntityVitalityModel : IEntityPartInterface
|
|||||||
public string Type { get; set; } = "EntityVitalityModel";
|
public string Type { get; set; } = "EntityVitalityModel";
|
||||||
public int Health { get; set; } = 0;
|
public int Health { get; set; } = 0;
|
||||||
public int DefenseLayer { get; set; } = 0;
|
public int DefenseLayer { get; set; } = 0;
|
||||||
|
|
||||||
|
public int Lasts { get; set; } = 0;
|
||||||
public string Defense { get; set; } = DefenseType.None;
|
public string Defense { get; set; } = DefenseType.None;
|
||||||
public string Armor { get; set; } = ArmorType.Light;
|
public string Armor { get; set; } = ArmorType.Light;
|
||||||
public bool IsEtheric { get; set; } = false;
|
public bool IsEtheric { get; set; } = false;
|
||||||
|
|||||||
@@ -244,6 +244,17 @@ public interface IMemoryTesterService {
|
|||||||
public void Unsubscribe(MemoryAction memoryAction);
|
public void Unsubscribe(MemoryAction memoryAction);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface IGameLogicService
|
||||||
|
{
|
||||||
|
public bool Add(EntityModel entity, int atInterval);
|
||||||
|
public int MeetsRequirements(EntityModel entity, int interval);
|
||||||
|
public int MeetsAlloy(EntityModel entity, int interval);
|
||||||
|
public int MeetsEther(EntityModel entity, int interval);
|
||||||
|
public int MeetsPyre(EntityModel entity, int interval);
|
||||||
|
public int MeetsSupply(EntityModel entity, int interval);
|
||||||
|
public int MeetsTrainingQueue(EntityModel entity, int interval);
|
||||||
|
}
|
||||||
|
|
||||||
public interface IBuildOrderService {
|
public interface IBuildOrderService {
|
||||||
public bool Add(EntityModel entity, IEconomyService withEconomy, IToastService toastService);
|
public bool Add(EntityModel entity, IEconomyService withEconomy, IToastService toastService);
|
||||||
public void Add(EntityModel entity, int atInterval);
|
public void Add(EntityModel entity, int atInterval);
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ public class BuildComparisionService : IBuildComparisonService {
|
|||||||
|
|
||||||
public void HydratedLoadedJson() {
|
public void HydratedLoadedJson() {
|
||||||
foreach (var build in buildComparison.Builds)
|
foreach (var build in buildComparison.Builds)
|
||||||
foreach (var orders in build.Orders.Values)
|
foreach (var orders in build.StartedOrders.Values)
|
||||||
foreach (var order in orders)
|
foreach (var order in orders)
|
||||||
order.Copy(EntityModel.Get(order.DataType));
|
order.Copy(EntityModel.Get(order.DataType));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ public class BuildOrderService : IBuildOrderService
|
|||||||
|
|
||||||
public Dictionary<int, List<EntityModel>> GetOrders()
|
public Dictionary<int, List<EntityModel>> GetOrders()
|
||||||
{
|
{
|
||||||
return buildOrder.Orders;
|
return buildOrder.StartedOrders;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Subscribe(Action action)
|
public void Subscribe(Action action)
|
||||||
@@ -37,10 +37,26 @@ public class BuildOrderService : IBuildOrderService
|
|||||||
|
|
||||||
public void Add(EntityModel entity, int atInterval)
|
public void Add(EntityModel entity, int atInterval)
|
||||||
{
|
{
|
||||||
if (!buildOrder.Orders.ContainsKey(atInterval))
|
if (!buildOrder.StartedOrders.ContainsKey(atInterval))
|
||||||
buildOrder.Orders.Add(atInterval, new List<EntityModel> { entity.Clone() });
|
{
|
||||||
else
|
buildOrder.StartedOrders.Add(atInterval, new List<EntityModel> { });
|
||||||
buildOrder.Orders[atInterval].Add(entity.Clone());
|
}
|
||||||
|
|
||||||
|
var production = entity.Production();
|
||||||
|
|
||||||
|
var completedTime = atInterval;
|
||||||
|
if (production != null)
|
||||||
|
{
|
||||||
|
completedTime += production.BuildTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!buildOrder.CompletedOrders.ContainsKey(atInterval))
|
||||||
|
{
|
||||||
|
buildOrder.CompletedOrders.Add(completedTime, new List<EntityModel> { });
|
||||||
|
}
|
||||||
|
|
||||||
|
buildOrder.StartedOrders[atInterval].Add(entity.Clone());
|
||||||
|
buildOrder.CompletedOrders[completedTime].Add(entity.Clone());
|
||||||
|
|
||||||
if (atInterval > lastInterval) lastInterval = atInterval;
|
if (atInterval > lastInterval) lastInterval = atInterval;
|
||||||
}
|
}
|
||||||
@@ -72,10 +88,10 @@ public class BuildOrderService : IBuildOrderService
|
|||||||
//Account for human Micro delay
|
//Account for human Micro delay
|
||||||
interval += HumanMicro;
|
interval += HumanMicro;
|
||||||
|
|
||||||
if (!buildOrder.Orders.ContainsKey(interval))
|
if (!buildOrder.StartedOrders.ContainsKey(interval))
|
||||||
buildOrder.Orders.Add(interval, new List<EntityModel> { entity.Clone() });
|
buildOrder.StartedOrders.Add(interval, new List<EntityModel> { entity.Clone() });
|
||||||
else
|
else
|
||||||
buildOrder.Orders[interval].Add(entity.Clone());
|
buildOrder.StartedOrders[interval].Add(entity.Clone());
|
||||||
|
|
||||||
lastInterval = interval;
|
lastInterval = interval;
|
||||||
|
|
||||||
@@ -109,20 +125,20 @@ public class BuildOrderService : IBuildOrderService
|
|||||||
EntityModel entityRemoved = null!;
|
EntityModel entityRemoved = null!;
|
||||||
|
|
||||||
|
|
||||||
if (buildOrder.Orders.Keys.Count > 1)
|
if (buildOrder.StartedOrders.Keys.Count > 1)
|
||||||
{
|
{
|
||||||
var last = buildOrder.Orders.Keys.Last();
|
var last = buildOrder.StartedOrders.Keys.Last();
|
||||||
|
|
||||||
if (buildOrder.Orders[last].Count > 0)
|
if (buildOrder.StartedOrders[last].Count > 0)
|
||||||
{
|
{
|
||||||
entityRemoved = buildOrder.Orders[last].Last();
|
entityRemoved = buildOrder.StartedOrders[last].Last();
|
||||||
buildOrder.Orders[last].Remove(buildOrder.Orders[last].Last());
|
buildOrder.StartedOrders[last].Remove(buildOrder.StartedOrders[last].Last());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (buildOrder.Orders[last].Count == 0) buildOrder.Orders.Remove(last);
|
if (buildOrder.StartedOrders[last].Count == 0) buildOrder.StartedOrders.Remove(last);
|
||||||
|
|
||||||
if (buildOrder.Orders.Keys.Count > 0)
|
if (buildOrder.StartedOrders.Keys.Count > 0)
|
||||||
lastInterval = buildOrder.Orders.Keys.Last() + 1;
|
lastInterval = buildOrder.StartedOrders.Keys.Last() + 1;
|
||||||
else
|
else
|
||||||
lastInterval = 1;
|
lastInterval = 1;
|
||||||
|
|
||||||
@@ -158,23 +174,27 @@ public class BuildOrderService : IBuildOrderService
|
|||||||
|
|
||||||
public List<EntityModel> GetOrdersAt(int interval)
|
public List<EntityModel> GetOrdersAt(int interval)
|
||||||
{
|
{
|
||||||
return (from ordersAtTime in buildOrder.Orders
|
if (!buildOrder.StartedOrders.ContainsKey(interval))
|
||||||
from orders in ordersAtTime.Value
|
{
|
||||||
where ordersAtTime.Key == interval
|
return new List<EntityModel>();
|
||||||
select orders).ToList();
|
}
|
||||||
|
|
||||||
|
return buildOrder.StartedOrders[interval].ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<EntityModel> GetCompletedAt(int interval)
|
public List<EntityModel> GetCompletedAt(int interval)
|
||||||
{
|
{
|
||||||
return (from ordersAtTime in buildOrder.Orders
|
if (!buildOrder.CompletedOrders.ContainsKey(interval))
|
||||||
from orders in ordersAtTime.Value
|
{
|
||||||
where ordersAtTime.Key + (orders.Production() == null ? 0 : orders.Production().BuildTime) == interval
|
return new List<EntityModel>();
|
||||||
select orders).ToList();
|
}
|
||||||
|
|
||||||
|
return buildOrder.CompletedOrders[interval].ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<EntityModel> GetCompletedBefore(int interval)
|
public List<EntityModel> GetCompletedBefore(int interval)
|
||||||
{
|
{
|
||||||
return (from ordersAtTime in buildOrder.Orders
|
return (from ordersAtTime in buildOrder.StartedOrders
|
||||||
from orders in ordersAtTime.Value
|
from orders in ordersAtTime.Value
|
||||||
where ordersAtTime.Key + (orders.Production() == null ? 0 : orders.Production().BuildTime) <= interval
|
where ordersAtTime.Key + (orders.Production() == null ? 0 : orders.Production().BuildTime) <= interval
|
||||||
select orders).ToList();
|
select orders).ToList();
|
||||||
@@ -182,7 +202,7 @@ public class BuildOrderService : IBuildOrderService
|
|||||||
|
|
||||||
public List<EntityModel> GetHarvestersCompletedBefore(int interval)
|
public List<EntityModel> GetHarvestersCompletedBefore(int interval)
|
||||||
{
|
{
|
||||||
return (from ordersAtTime in buildOrder.Orders
|
return (from ordersAtTime in buildOrder.StartedOrders
|
||||||
from orders in ordersAtTime.Value
|
from orders in ordersAtTime.Value
|
||||||
where ordersAtTime.Key + (orders.Production() == null ? 0 : orders.Production().BuildTime) <= interval
|
where ordersAtTime.Key + (orders.Production() == null ? 0 : orders.Production().BuildTime) <= interval
|
||||||
where orders.Harvest() != null
|
where orders.Harvest() != null
|
||||||
@@ -197,14 +217,14 @@ public class BuildOrderService : IBuildOrderService
|
|||||||
foreach (var requirement in requirements)
|
foreach (var requirement in requirements)
|
||||||
if (requirement.Requirement == RequirementType.Morph)
|
if (requirement.Requirement == RequirementType.Morph)
|
||||||
{
|
{
|
||||||
var entitiesNeeded = from entitiesAtInterval in buildOrder.Orders
|
var entitiesNeeded = from entitiesAtInterval in buildOrder.StartedOrders
|
||||||
from requiredEntity in entitiesAtInterval.Value
|
from requiredEntity in entitiesAtInterval.Value
|
||||||
where requestedInterval > entitiesAtInterval.Key +
|
where requestedInterval > entitiesAtInterval.Key +
|
||||||
(requiredEntity.Production() == null ? 0 : requiredEntity.Production().BuildTime)
|
(requiredEntity.Production() == null ? 0 : requiredEntity.Production().BuildTime)
|
||||||
where requiredEntity.DataType == requirement.Id
|
where requiredEntity.DataType == requirement.Id
|
||||||
select requiredEntity;
|
select requiredEntity;
|
||||||
|
|
||||||
var entitiesAlreadyMorphed = from entitiesAtInterval in buildOrder.Orders
|
var entitiesAlreadyMorphed = from entitiesAtInterval in buildOrder.StartedOrders
|
||||||
from existingEntity in entitiesAtInterval.Value
|
from existingEntity in entitiesAtInterval.Value
|
||||||
where existingEntity.DataType == entity.DataType
|
where existingEntity.DataType == entity.DataType
|
||||||
select existingEntity;
|
select existingEntity;
|
||||||
@@ -214,7 +234,7 @@ public class BuildOrderService : IBuildOrderService
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var entitiesNeeded = from entitiesAtInterval in buildOrder.Orders
|
var entitiesNeeded = from entitiesAtInterval in buildOrder.StartedOrders
|
||||||
from requiredEntity in entitiesAtInterval.Value
|
from requiredEntity in entitiesAtInterval.Value
|
||||||
where requestedInterval > entitiesAtInterval.Key +
|
where requestedInterval > entitiesAtInterval.Key +
|
||||||
(requiredEntity.Production() == null ? 0 : requiredEntity.Production().BuildTime)
|
(requiredEntity.Production() == null ? 0 : requiredEntity.Production().BuildTime)
|
||||||
@@ -279,14 +299,14 @@ public class BuildOrderService : IBuildOrderService
|
|||||||
|
|
||||||
|
|
||||||
var supplyTakenTotal = 0;
|
var supplyTakenTotal = 0;
|
||||||
var supplyTakens = from entitiesAtInterval in buildOrder.Orders
|
var supplyTakens = from entitiesAtInterval in buildOrder.StartedOrders
|
||||||
from supplyTakingEntity in entitiesAtInterval.Value
|
from supplyTakingEntity in entitiesAtInterval.Value
|
||||||
where supplyTakingEntity.Supply()?.Takes > 0
|
where supplyTakingEntity.Supply()?.Takes > 0
|
||||||
select supplyTakingEntity.Supply().Takes;
|
select supplyTakingEntity.Supply().Takes;
|
||||||
foreach (var supplyTaken in supplyTakens) supplyTakenTotal += supplyTaken;
|
foreach (var supplyTaken in supplyTakens) supplyTakenTotal += supplyTaken;
|
||||||
|
|
||||||
var supplyGrantedTotal = 0;
|
var supplyGrantedTotal = 0;
|
||||||
var supplyGranteds = from entitiesAtInterval in buildOrder.Orders
|
var supplyGranteds = from entitiesAtInterval in buildOrder.StartedOrders
|
||||||
from supplyGrantingEntity in entitiesAtInterval.Value
|
from supplyGrantingEntity in entitiesAtInterval.Value
|
||||||
where supplyGrantingEntity.Supply()?.Grants > 0
|
where supplyGrantingEntity.Supply()?.Grants > 0
|
||||||
select supplyGrantingEntity.Supply().Grants;
|
select supplyGrantingEntity.Supply().Grants;
|
||||||
|
|||||||
@@ -0,0 +1,58 @@
|
|||||||
|
using Model.Entity;
|
||||||
|
using Model.Types;
|
||||||
|
|
||||||
|
namespace Services.Immortal;
|
||||||
|
|
||||||
|
public class GameLogicService : IGameLogicService
|
||||||
|
{
|
||||||
|
private ITimingService timingService;
|
||||||
|
private IEconomyService economyService;
|
||||||
|
private IBuildOrderService buildOrderService;
|
||||||
|
|
||||||
|
public GameLogicService(ITimingService timingService, IEconomyService economyService, IBuildOrderService buildOrderService)
|
||||||
|
{
|
||||||
|
this.timingService = timingService;
|
||||||
|
this.economyService = economyService;
|
||||||
|
this.buildOrderService = buildOrderService;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Add(EntityModel entity, int atInterval)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int MeetsRequirements(EntityModel entity, int interval)
|
||||||
|
{
|
||||||
|
var buildOrders = buildOrderService.GetCompletedBefore(interval);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int MeetsAlloy(EntityModel entity, int interval)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int MeetsEther(EntityModel entity, int interval)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int MeetsPyre(EntityModel entity, int interval)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int MeetsSupply(EntityModel entity, int interval)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int MeetsTrainingQueue(EntityModel entity, int interval)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -63,7 +63,6 @@ public class NavigationService : INavigationService {
|
|||||||
webSectionType = section;
|
webSectionType = section;
|
||||||
navSelectionType = NavSelectionType.Section;
|
navSelectionType = NavSelectionType.Section;
|
||||||
|
|
||||||
Console.WriteLine(webSectionType);
|
|
||||||
NotifyDataChanged();
|
NotifyDataChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user