Updating Mudblazor Version

This commit is contained in:
Jonathan
2025-04-27 19:34:50 -04:00
parent 38ff4e3e89
commit e820457176
153 changed files with 5010 additions and 2059 deletions
+14 -9
View File
@@ -20,7 +20,9 @@
</PaperComponent>
<div style="margin-left: 8px">
<ButtonGroupComponent OnClick="choice => { EntityDisplayService.SetDisplayType(choice); }" Choice="@EntityDisplayService.GetDisplayType()" Choices="@EntityDisplayService.DefaultChoices()"></ButtonGroupComponent>
<ButtonGroupComponent OnClick="choice => { EntityDisplayService.SetDisplayType(choice); }"
Choice="@EntityDisplayService.GetDisplayType()"
Choices="@EntityDisplayService.DefaultChoices()"></ButtonGroupComponent>
</div>
<PaperComponent>
@@ -50,7 +52,8 @@
What is this tool?
</InfoQuestionComponent>
<InfoAnswerComponent>
This is a reference database. Mostly so unit stats can be reviewed outside of the game, IMMORTAL: Gates of Pyre.
This is a reference database. Mostly so unit stats can be reviewed outside of the game, IMMORTAL: Gates
of Pyre.
</InfoAnswerComponent>
</InfoBodyComponent>
@@ -59,7 +62,8 @@
Is this database complete?
</InfoQuestionComponent>
<InfoAnswerComponent>
No. A lot of content is missing, that needs to be manually transfered from screenshots of IMMORTAL: Gates of Pyre. This will happen slowly over-time.
No. A lot of content is missing, that needs to be manually transfered from screenshots of IMMORTAL:
Gates of Pyre. This will happen slowly over-time.
</InfoAnswerComponent>
</InfoBodyComponent>
@@ -68,7 +72,9 @@
Is this database updated to the latest version?
</InfoQuestionComponent>
<InfoAnswerComponent>
Maybe. Check this <b>@VariableService.Variables["GamePatch"]</b> version number, and compare it to the number on discord, in the <b>#game-updates</b> channel. That should give a general sense of how out of date the data is.
Maybe. Check this <b>@VariableService.Variables["GamePatch"]</b> version number, and compare it to the
number on discord, in the <b>#game-updates</b> channel. That should give a general sense of how out of
date the data is.
</InfoAnswerComponent>
</InfoBodyComponent>
@@ -103,20 +109,19 @@
border-bottom: 4px solid var(--accent);
padding: 4px;
}
.databaseInfoContainer {
display: flex;
gap: 24px;
}
</style>
@code {
[Inject]
public IEntityFilterService EntityFilterService { get; set; } = default!;
[Inject] public IEntityFilterService EntityFilterService { get; set; } = default!;
readonly List<EntityModel> defaults = (from entity in EntityModel.GetList()
where entity.IsSpeculative == false
+4 -3
View File
@@ -20,7 +20,9 @@
</PaperComponent>
<div style="margin-left: 8px">
<ButtonGroupComponent OnClick="choice => { EntityDisplayService.SetDisplayType(choice); }" Choice="@EntityDisplayService.GetDisplayType()" Choices="@EntityDisplayService.DefaultChoices()"></ButtonGroupComponent>
<ButtonGroupComponent OnClick="choice => { EntityDisplayService.SetDisplayType(choice); }"
Choice="@EntityDisplayService.GetDisplayType()"
Choices="@EntityDisplayService.DefaultChoices()"></ButtonGroupComponent>
</div>
@@ -61,8 +63,7 @@
@code {
[Parameter]
public string? Text { get; set; }
[Parameter] public string? Text { get; set; }
private EntityModel? _entity;
@@ -29,17 +29,17 @@
padding: 30px;
display: flex;
flex-wrap: wrap;
flex-direction: column;
}
.entityPartsContainer {
display: flex;
flex-direction: column;
flex-wrap: wrap;
width: 100%;
}
@@media only screen and (max-width: 1025px) {
.entitiesContainer {
padding: 0px;
@@ -49,10 +49,8 @@
@code {
[CascadingParameter]
public EntityModel? Entity { get; set; }
[CascadingParameter] public EntityModel? Entity { get; set; }
[CascadingParameter]
public string? StyleType { get; set; }
[CascadingParameter] public string? StyleType { get; set; }
}
@@ -33,18 +33,21 @@
<b>- Energy: </b> @production.Energy
</div>
}
@if (!production.DefensiveLayer.Equals(0))
{
<div>
<b>- Shields:</b> @production.DefensiveLayer
</div>
}
if (production.BuildTime != 0)
{
<div>
<b>- BuildTime: </b> @production.BuildTime
</div>
}
if (production.Cooldown != 0)
{
<div>
@@ -68,7 +71,8 @@
<div>
<div>
<b>Name:</b> <EntityLabelComponent EntityId="@spell.DataType"/>
<b>Name:</b>
<EntityLabelComponent EntityId="@spell.DataType"/>
</div>
<div>
<b>Description:</b> @((MarkupString)info.Description)
@@ -90,18 +94,21 @@
<b> Energy: </b> @production.Energy
</div>
}
@if (!production.DefensiveLayer.Equals(0))
{
<div>
<b>Shields:</b> @production.DefensiveLayer
</div>
}
if (production.BuildTime != 0)
{
<div>
<b> BuildTime: </b> @production.BuildTime
</div>
}
if (production.Cooldown != 0)
{
<div>
@@ -119,11 +126,9 @@
@code {
[CascadingParameter]
public EntityModel? Entity { get; set; } = default!;
[CascadingParameter] public EntityModel? Entity { get; set; }
[CascadingParameter]
public string StyleType { get; set; } = "Detailed";
[CascadingParameter] public string StyleType { get; set; } = "Detailed";
}
@@ -26,38 +26,36 @@ else
</div>
<style>
.entityHeader {
display: flex;
flex-direction: row;
gap: 4px;
justify-content: space-between;
margin-bottom: 22px;
width: 100%;
margin-left: -6px;
}
.entityHeaderText {
font-size: 2rem;
font-weight: 900;
}
@@media only screen and (max-width: 1025px) {
.entityHeader {
flex-direction: column;
justify-content: normal;
margin-left: 4px;
display: flex;
flex-direction: row;
gap: 4px;
justify-content: space-between;
margin-bottom: 22px;
width: 100%;
margin-left: -6px;
}
}
</style>
.entityHeaderText {
font-size: 2rem;
font-weight: 900;
}
@@media only screen and (max-width: 1025px) {
.entityHeader {
flex-direction: column;
justify-content: normal;
margin-left: 4px;
}
}
</style>
}
@code {
[CascadingParameter]
public EntityModel? Entity { get; set; } = default!;
[CascadingParameter] public EntityModel? Entity { get; set; }
[CascadingParameter]
public string StyleType { get; set; } = "Detailed";
[CascadingParameter] public string StyleType { get; set; } = "Detailed";
}
@@ -110,17 +110,15 @@ else
gap: 4px;
}
}
</style>
</style>
}
@code {
[CascadingParameter]
public EntityModel? Entity { get; set; } = default!;
[CascadingParameter] public EntityModel? Entity { get; set; }
[CascadingParameter]
public string StyleType { get; set; } = "Detailed";
[CascadingParameter] public string StyleType { get; set; } = "Detailed";
}
@@ -23,10 +23,8 @@
@code {
[CascadingParameter]
public EntityModel? Entity { get; set; } = default!;
[CascadingParameter] public EntityModel? Entity { get; set; }
[CascadingParameter]
public string StyleType { get; set; } = "Detailed";
[CascadingParameter] public string StyleType { get; set; } = "Detailed";
}
@@ -77,7 +77,8 @@
<div>
<div>
<b>Name:</b> <EntityLabelComponent EntityId="@passive.DataType"/>
<b>Name:</b>
<EntityLabelComponent EntityId="@passive.DataType"/>
</div>
<div>
<b>Description:</b> @((MarkupString)info.Description)
@@ -130,11 +131,9 @@
@code {
[CascadingParameter]
public EntityModel? Entity { get; set; } = default!;
[CascadingParameter] public EntityModel? Entity { get; set; }
[CascadingParameter]
public string StyleType { get; set; } = "Detailed";
[CascadingParameter] public string StyleType { get; set; } = "Detailed";
}
@@ -72,6 +72,7 @@
}
</div>
}
@if (Supply != null)
{
<div>
@@ -103,7 +104,8 @@
<div>
<span>
<b>@requirement.Requirement.Replace("_", " "):</b> <EntityLabelComponent EntityId="@requirement.Id"/>
<b>@requirement.Requirement.Replace("_", " "):</b> <EntityLabelComponent
EntityId="@requirement.Id"/>
</span>
</div>
}
@@ -186,29 +188,27 @@
<style>
.ProductionContainer {
display: flex;
gap: 32px;
}
.ProductionContainer {
display: flex;
gap: 32px;
}
@@media only screen and (max-width: 1025px) {
.ProductionContainer {
flex-direction: column;
gap: 4px;
}
}
</style>
@@media only screen and (max-width: 1025px) {
.ProductionContainer {
flex-direction: column;
gap: 4px;
}
}
</style>
}
}
@code {
[CascadingParameter]
public EntityModel? Entity { get; set; }
[CascadingParameter] public EntityModel? Entity { get; set; }
[CascadingParameter]
public string StyleType { get; set; } = "Detailed";
[CascadingParameter] public string StyleType { get; set; } = "Detailed";
private EntityProductionModel Production => Entity!.Production();
@@ -24,11 +24,13 @@
<b>- Pyre: </b>
@production.Pyre
}
if (production.BuildTime != 0)
{
<b>- BuildTime: </b>
@production.BuildTime
}
if (production.Cooldown != 0)
{
<b>- Cooldown: </b>
@@ -51,7 +53,8 @@
<div>
<div>
<b>Name:</b> <EntityLabelComponent EntityId="@spell.DataType"/>
<b>Name:</b>
<EntityLabelComponent EntityId="@spell.DataType"/>
</div>
<div>
<b>Description:</b> @((MarkupString)info.Description)
@@ -64,11 +67,13 @@
<b> Pyre: </b>
@production.Pyre
}
if (production.BuildTime != 0)
{
<b> BuildTime: </b>
@production.BuildTime
}
if (production.Cooldown != 0)
{
<b> Cooldown: </b>
@@ -85,11 +90,9 @@
@code {
[CascadingParameter]
public EntityModel? Entity { get; set; } = default!;
[CascadingParameter] public EntityModel? Entity { get; set; }
[CascadingParameter]
public string StyleType { get; set; } = "Detailed";
[CascadingParameter] public string StyleType { get; set; } = "Detailed";
}
@@ -151,30 +151,28 @@
</div>
</EntityDisplayComponent>
<style>
.statContainer {
display: flex;
gap: 32px;
}
.statContainer {
display: flex;
gap: 32px;
}
@@media only screen and (max-width: 1025px) {
.statContainer {
flex-direction: column;
gap: 4px;
}
}
</style>
@@media only screen and (max-width: 1025px) {
.statContainer {
flex-direction: column;
gap: 4px;
}
}
</style>
}
}
@code {
[CascadingParameter]
public EntityModel? Entity { get; set; } = default!;
[CascadingParameter] public EntityModel? Entity { get; set; }
[CascadingParameter]
public string StyleType { get; set; } = "Detailed";
[CascadingParameter] public string StyleType { get; set; } = "Detailed";
private EntityVitalityModel Vitality => Entity!.Vitality();
@@ -24,7 +24,8 @@
var entity = EntityModel.Get(upgradeId.Id);
<div>
<div>
<b>Name:</b> <EntityLabelComponent EntityId="@entity.DataType"/>
<b>Name:</b>
<EntityLabelComponent EntityId="@entity.DataType"/>
</div>
<div>
<b>Description:</b> @entity.Info().Description
@@ -36,29 +37,27 @@
<style>
.upgradesContainer {
display: flex;
gap: 32px;
}
.upgradesContainer {
display: flex;
gap: 32px;
}
@@media only screen and (max-width: 1025px) {
.upgradesContainer {
flex-direction: column;
gap: 4px;
}
}
</style>
@@media only screen and (max-width: 1025px) {
.upgradesContainer {
flex-direction: column;
gap: 4px;
}
}
</style>
}
}
@code {
[CascadingParameter]
public EntityModel? Entity { get; set; } = default!;
[CascadingParameter] public EntityModel? Entity { get; set; }
[CascadingParameter]
public string StyleType { get; set; } = "Detailed";
[CascadingParameter] public string StyleType { get; set; } = "Detailed";
}
@@ -22,12 +22,14 @@
<EntityDisplayComponent Title="Vanguard">
<div>
<div>
<b>Immortal:</b> <EntityLabelComponent EntityId="@immortal.DataType"/>
<b>Immortal:</b>
<EntityLabelComponent EntityId="@immortal.DataType"/>
</div>
@if (!Vanguard.ReplaceId.Equals(""))
{
<div>
<b>Replaces:</b> <EntityLabelComponent EntityId="@Vanguard.ReplaceId"></EntityLabelComponent>
<b>Replaces:</b>
<EntityLabelComponent EntityId="@Vanguard.ReplaceId"></EntityLabelComponent>
</div>
}
</div>
@@ -37,14 +39,11 @@
@code {
[CascadingParameter]
public EntityModel? Entity { get; set; } = default!;
[CascadingParameter] public EntityModel? Entity { get; set; }
private EntityVanguardAddedModel? Vanguard => Entity?.VanguardAdded();
[CascadingParameter]
public string StyleType { get; set; } = "Detailed";
[CascadingParameter] public string StyleType { get; set; } = "Detailed";
}
@@ -44,13 +44,16 @@
<div>
<div>
<b>Name:</b> <EntityLabelComponent EntityId="@entity.DataType"/>
<b>Name:</b>
<EntityLabelComponent EntityId="@entity.DataType"/>
</div>
<div>
<b>Replaces:</b> <EntityLabelComponent EntityId="@vanguard.ReplaceId"/>
<b>Replaces:</b>
<EntityLabelComponent EntityId="@vanguard.ReplaceId"/>
</div>
<div>
<b>Built From:</b> <EntityLabelComponent EntityId="@productionBuilding"/>
<b>Built From:</b>
<EntityLabelComponent EntityId="@productionBuilding"/>
</div>
</div>
}
@@ -60,11 +63,9 @@
@code {
[CascadingParameter]
public EntityModel? Entity { get; set; } = default!;
[CascadingParameter] public EntityModel? Entity { get; set; }
[CascadingParameter]
public string StyleType { get; set; } = "Detailed";
[CascadingParameter] public string StyleType { get; set; } = "Detailed";
}
@@ -91,12 +91,14 @@
<i>- Light DPS: @(Math.Round(data.LightDamage * data.AttacksPerSecond))</i>&nbsp;
</span>
}
@if (data.MediumDamage != 0)
{
<span>
<i>- Medium DPS: @(Math.Round(data.MediumDamage * data.AttacksPerSecond))</i>&nbsp;
</span>
}
@if (data.HeavyDamage != 0)
{
<span>
@@ -188,12 +190,14 @@
<i>Light DPS: @(Math.Round(data.LightDamage * data.AttacksPerSecond))</i>&nbsp;
</div>
}
@if (data.MediumDamage != 0)
{
<div>
<i>Medium DPS: @(Math.Round(data.MediumDamage * data.AttacksPerSecond))</i>&nbsp;
</div>
}
@if (data.HeavyDamage != 0)
{
<div>
@@ -207,39 +211,37 @@
</EntityDisplayComponent>
<style>
.weaponsContainer {
display: flex;
gap: 32px;
}
.weaponsContainer {
display: flex;
gap: 32px;
}
@@media only screen and (max-width: 1025px) {
.weaponsContainer {
flex-direction: column;
gap: 4px;
}
}
@@media only screen and (max-width: 1025px) {
.weaponsContainer {
flex-direction: column;
gap: 4px;
}
}
.alternateDamage {
margin-left: 18px;
}
.alternateDamage {
margin-left: 18px;
}
.damageContainer {
margin-bottom: 6px;
}
</style>
.damageContainer {
margin-bottom: 6px;
}
</style>
}
}
@code {
[CascadingParameter]
public EntityModel? Entity { get; set; } = default!;
[CascadingParameter] public EntityModel? Entity { get; set; }
[CascadingParameter]
public string StyleType { get; set; } = "Detailed";
[CascadingParameter] public string StyleType { get; set; } = "Detailed";
private bool _isDynamicFormatting = false;
private bool _isDynamicFormatting;
protected override void OnInitialized()
{
@@ -9,6 +9,7 @@
{
styleClass = "selected";
}
<button @onclick="@(e => OnChangeFaction(choice))"
class="choiceButton @styleClass">
@(choice == DataType.Any
@@ -30,7 +31,9 @@
{
styleClass = "selected";
}
<button class="choiceButton @styleClass" @onclick="@(e => OnChangeImmortal(choice))">@name</button>
<button class="choiceButton @styleClass"
@onclick="@(e => OnChangeImmortal(choice))">@name</button>
}
</div>
}
@@ -44,10 +47,12 @@
styleClass = "selected";
}
<button class="choiceButton @styleClass" @onclick="@(e => OnChangeEntity(choice))">@choice.Replace("_", " ")</button>
<button class="choiceButton @styleClass"
@onclick="@(e => OnChangeEntity(choice))">@choice.Replace("_", " ")</button>
}
</div>
<FormTextComponent Id="filterName" Label="Filter Name" Placeholder="Throne..." OnChange="@(e => EntityFilterService.EnterSearchText(e.Value!.ToString()!))"/>
<FormTextComponent Id="filterName" Label="Filter Name" Placeholder="Throne..."
OnChange="@(e => EntityFilterService.EnterSearchText(e.Value!.ToString()!))"/>
</div>
</div>
@@ -99,118 +104,117 @@
<style>
.desktopFilters {
display: flex;
gap: 12px;
flex-direction: column;
justify-content: flex-start;
justify-items: flex-start;
top: 50px;
padding: 12px;
width: 100%;
left: 0px;
}
.desktopFiltersContainer {
width: 75%;
min-width: 1000px;
margin: auto;
display: flex;
gap: 16px;
flex-direction: column;
justify-content: flex-start;
justify-items: flex-start;
}
.filtersContainer {
display: flex;
gap: 16px;
}
.filterContainer {
display: flex;
background-color: var(--background);
gap: 2px;
margin-right: auto;
border-radius: 8px;
}
.choiceButton {
background-color: var(--primary);
color: white;
padding: 12px;
border: 1px solid var(--primary);
}
.choiceButton:hover {
background-color: var(--primary-hover);
border-color: var(--primary-border-hover);
}
.selected {
background-color: var(--secondary);
color: white;
font-style: normal;
font-weight: bold;
}
.selected:hover {
background-color: var(--secondary-hover);
border-color: var(--secondary-border-hover);
}
.filterContainer .choiceButton:first-child {
border-top-left-radius: 8px;
border-bottom-left-radius: 8px;
}
.filterContainer .choiceButton:last-child {
border-top-right-radius: 8px;
border-bottom-right-radius: 8px;
}
@@media only screen and (max-width: 1025px) {
.desktopNavContainer {
display: none;
}
}
@@media only screen and (max-width: 480px) {
.filtersContainer {
.desktopFilters {
display: flex;
gap: 12px;
flex-direction: column;
justify-content: flex-start;
justify-items: flex-start;
top: 50px;
padding: 12px;
width: 100%;
left: 0px;
}
.desktopFiltersContainer {
width: 75%;
min-width: 1000px;
margin: auto;
display: flex;
gap: 16px;
flex-direction: column;
justify-content: flex-start;
justify-items: flex-start;
}
.filtersContainer {
display: flex;
gap: 16px;
}
.filterContainer {
flex-direction: column;
display: flex;
background-color: var(--background);
gap: 2px;
margin-right: auto;
border-radius: 8px;
}
}
.mobileFilters {
display: none;
}
.choiceButton {
background-color: var(--primary);
color: white;
padding: 12px;
border: 1px solid var(--primary);
}
.choiceButton:hover {
background-color: var(--primary-hover);
border-color: var(--primary-border-hover);
}
.selected {
background-color: var(--secondary);
color: white;
font-style: normal;
font-weight: bold;
}
.selected:hover {
background-color: var(--secondary-hover);
border-color: var(--secondary-border-hover);
}
.filterContainer .choiceButton:first-child {
border-top-left-radius: 8px;
border-bottom-left-radius: 8px;
}
.filterContainer .choiceButton:last-child {
border-top-right-radius: 8px;
border-bottom-right-radius: 8px;
}
@@media only screen and (max-width: 1025px) {
.desktopNavContainer {
display: none;
}
}
@@media only screen and (max-width: 480px) {
.filtersContainer {
flex-direction: column;
}
.filterContainer {
flex-direction: column;
}
}
@@media only screen and (max-width: 1024px) {
.mobileFilters {
display: block;
}
.desktopFilters {
display: none;
}
.desktopSpacer {
display: none;
@@media only screen and (max-width: 1024px) {
.mobileFilters {
display: block;
}
.desktopFilters {
display: none;
}
.desktopSpacer {
display: none;
}
}
}
</style>
@code {
[Inject]
public IEntityFilterService EntityFilterService { get; set; } = default!;
[Inject] public IEntityFilterService EntityFilterService { get; set; } = default!;
protected override void OnInitialized()
{