Initial Commit
This commit is contained in:
@@ -0,0 +1,248 @@
|
||||
@page "/storage"
|
||||
|
||||
|
||||
@inherits BasePage
|
||||
@inject IStorageService StorageService
|
||||
@using Services.Website
|
||||
@implements IDisposable
|
||||
@layout PageLayout
|
||||
|
||||
<LayoutMediumContentComponent>
|
||||
@if (!_enabledPermissions)
|
||||
{
|
||||
<AlertComponent Type="@SeverityType.Error">
|
||||
<Title>Storage Disabled</Title>
|
||||
<Message>Enable Storage on the Permissions Page.</Message>
|
||||
</AlertComponent>
|
||||
}
|
||||
else
|
||||
{
|
||||
<PaperComponent>
|
||||
<FormLayoutComponent>
|
||||
<FormToggleComponent
|
||||
Label="Is Plain View"
|
||||
Info="Should Entity view be in plain text?"
|
||||
Value="@_isEntityPlainView"
|
||||
OnChange="EntityViewChanged"/>
|
||||
</FormLayoutComponent>
|
||||
|
||||
<DevOnlyComponent>
|
||||
<FormLayoutComponent>
|
||||
<FormToggleComponent
|
||||
Label="Is Dynamic Formatting"
|
||||
Info="Should [Attacks Per Second/Seconds Between Attack] match in-game values?"
|
||||
Value="@_isDynamicFormatting"
|
||||
OnChange="DynamicFormattingChanged"/>
|
||||
</FormLayoutComponent>
|
||||
</DevOnlyComponent>
|
||||
|
||||
</PaperComponent>
|
||||
|
||||
<PaperComponent>
|
||||
<FormLayoutComponent>
|
||||
<FormNumberComponent Max="2048"
|
||||
Min="0"
|
||||
Value="@(_attackTime == null ? 0 : (int)_attackTime)"
|
||||
OnChange="AttackTimeChanged">
|
||||
<FormLabelComponent>Attack Time</FormLabelComponent>
|
||||
<FormInfoComponent>
|
||||
@if (_attackTime != null)
|
||||
{
|
||||
<i>  T @Interval.ToTime((int)_attackTime)</i>
|
||||
}
|
||||
</FormInfoComponent>
|
||||
</FormNumberComponent>
|
||||
|
||||
<FormNumberComponent Max="2048"
|
||||
Min="0"
|
||||
Value="@(_travelTime == null ? 0 : (int)_travelTime)"
|
||||
OnChange="TravelTimeChanged">
|
||||
<FormLabelComponent>Travel Time</FormLabelComponent>
|
||||
<FormInfoComponent>
|
||||
@if (_travelTime != null)
|
||||
{
|
||||
<i>  T @Interval.ToTime((int)_travelTime)</i>
|
||||
}
|
||||
</FormInfoComponent>
|
||||
</FormNumberComponent>
|
||||
|
||||
<FormSelectComponent OnChange="@OnFactionChanged">
|
||||
<FormLabelComponent>Faction</FormLabelComponent>
|
||||
<ChildContent>
|
||||
<option value="@DataType.FACTION_Aru"
|
||||
selected="@(Faction.Equals(DataType.FACTION_Aru))">
|
||||
Aru
|
||||
</option>
|
||||
<option value="@DataType.FACTION_QRath"
|
||||
selected="@(Faction.Equals(DataType.FACTION_QRath))">
|
||||
Q'Rath
|
||||
</option>
|
||||
</ChildContent>
|
||||
</FormSelectComponent>
|
||||
|
||||
<FormSelectComponent OnChange="@OnImmortalChanged">
|
||||
<FormLabelComponent>Immortal</FormLabelComponent>
|
||||
<ChildContent>
|
||||
@if (Faction == DataType.FACTION_QRath)
|
||||
{
|
||||
<option value="@DataType.IMMORTAL_Orzum"
|
||||
selected="@(Immortal.Equals(DataType.IMMORTAL_Orzum))">
|
||||
Orzum
|
||||
</option>
|
||||
<option value="@DataType.IMMORTAL_Ajari"
|
||||
selected="@(Immortal.Equals(DataType.IMMORTAL_Ajari))">
|
||||
Ajari
|
||||
</option>
|
||||
}
|
||||
@if (Faction == DataType.FACTION_Aru)
|
||||
{
|
||||
<option value="@DataType.IMMORTAL_Mala"
|
||||
selected="@(Immortal.Equals(DataType.IMMORTAL_Mala))">
|
||||
Mala
|
||||
</option>
|
||||
<option value="@DataType.IMMORTAL_Xol"
|
||||
selected="@(Immortal.Equals(DataType.IMMORTAL_Xol))">
|
||||
Xol
|
||||
</option>
|
||||
}
|
||||
</ChildContent>
|
||||
</FormSelectComponent>
|
||||
|
||||
|
||||
<FormNumberComponent Max="600"
|
||||
Min="0"
|
||||
Value="@(_buildingInputDelay == null ? 0 : (int)_buildingInputDelay)"
|
||||
OnChange="OnBuildingInputDelayChanged">
|
||||
<FormLabelComponent>Building Input Delay</FormLabelComponent>
|
||||
<FormInfoComponent>Add a input delay to constructing buildings for simulating worker movement and
|
||||
player micro.
|
||||
</FormInfoComponent>
|
||||
</FormNumberComponent>
|
||||
<FormNumberComponent Max="600"
|
||||
Min="1"
|
||||
Value="@(_waitTime == null ? 0 : (int)_waitTime)"
|
||||
OnChange="@OnWaitTimeChanged">
|
||||
<FormLabelComponent>Wait Time</FormLabelComponent>
|
||||
</FormNumberComponent>
|
||||
</FormLayoutComponent>
|
||||
<FormLayoutComponent>
|
||||
<FormNumberComponent Max="2048"
|
||||
Min="1"
|
||||
Value="@(_waitTo == null ? 0 : (int)_waitTo)"
|
||||
OnChange="@OnWaitToChanged">
|
||||
<FormLabelComponent>Wait To</FormLabelComponent>
|
||||
</FormNumberComponent>
|
||||
|
||||
</FormLayoutComponent>
|
||||
</PaperComponent>
|
||||
}
|
||||
|
||||
<ContentDividerComponent/>
|
||||
|
||||
<PaperComponent>
|
||||
|
||||
</PaperComponent>
|
||||
</LayoutMediumContentComponent>
|
||||
|
||||
@code {
|
||||
bool _enabledPermissions;
|
||||
|
||||
protected override void OnInitialized()
|
||||
{
|
||||
base.OnInitialized();
|
||||
|
||||
_enabledPermissions = StorageService.GetValue<bool>(StorageKeys.EnabledStorage);
|
||||
|
||||
RefreshDefaults();
|
||||
|
||||
StorageService.Subscribe(RefreshDefaults);
|
||||
}
|
||||
|
||||
void IDisposable.Dispose()
|
||||
{
|
||||
StorageService.Unsubscribe(RefreshDefaults);
|
||||
}
|
||||
|
||||
private int? _attackTime;
|
||||
private int? _travelTime;
|
||||
|
||||
private string? _faction;
|
||||
private string? _immortal;
|
||||
|
||||
private string? Faction => _faction == null ? DataType.FACTION_QRath : _faction;
|
||||
private string? Immortal => _immortal == null ? DataType.IMMORTAL_Orzum : _immortal;
|
||||
|
||||
|
||||
private int? _buildingInputDelay;
|
||||
private int? _waitTime;
|
||||
private int? _waitTo;
|
||||
|
||||
|
||||
void RefreshDefaults()
|
||||
{
|
||||
_isEntityPlainView = StorageService.GetValue<bool>(StorageKeys.IsPlainView);
|
||||
_isDynamicFormatting = StorageService.GetValue<bool>(StorageKeys.IsDynamicFormatting);
|
||||
|
||||
_attackTime = StorageService.GetValue<int?>(StorageKeys.AttackTime);
|
||||
_travelTime = StorageService.GetValue<int?>(StorageKeys.TravelTime);
|
||||
|
||||
|
||||
_faction = StorageService.GetValue<string?>(StorageKeys.SelectedFaction);
|
||||
_immortal = StorageService.GetValue<string?>(StorageKeys.SelectedImmortal);
|
||||
|
||||
_buildingInputDelay = StorageService.GetValue<int?>(StorageKeys.BuildInputDelay);
|
||||
_waitTime = StorageService.GetValue<int?>(StorageKeys.WaitTime);
|
||||
_waitTo = StorageService.GetValue<int?>(StorageKeys.WaitTo);
|
||||
|
||||
StateHasChanged();
|
||||
}
|
||||
|
||||
private bool _isEntityPlainView;
|
||||
private bool _isDynamicFormatting;
|
||||
|
||||
private void EntityViewChanged(ChangeEventArgs obj)
|
||||
{
|
||||
StorageService.SetValue(StorageKeys.IsPlainView, obj.Value);
|
||||
}
|
||||
|
||||
private void DynamicFormattingChanged(ChangeEventArgs obj)
|
||||
{
|
||||
StorageService.SetValue(StorageKeys.IsDynamicFormatting, obj.Value);
|
||||
}
|
||||
|
||||
private void AttackTimeChanged(ChangeEventArgs obj)
|
||||
{
|
||||
StorageService.SetValue(StorageKeys.AttackTime, obj.Value);
|
||||
}
|
||||
|
||||
private void TravelTimeChanged(ChangeEventArgs obj)
|
||||
{
|
||||
StorageService.SetValue(StorageKeys.TravelTime, obj.Value);
|
||||
}
|
||||
|
||||
private void OnFactionChanged(ChangeEventArgs obj)
|
||||
{
|
||||
StorageService.SetValue(StorageKeys.SelectedFaction, obj.Value);
|
||||
}
|
||||
|
||||
private void OnImmortalChanged(ChangeEventArgs obj)
|
||||
{
|
||||
StorageService.SetValue(StorageKeys.SelectedImmortal, obj.Value);
|
||||
}
|
||||
|
||||
private void OnBuildingInputDelayChanged(ChangeEventArgs obj)
|
||||
{
|
||||
StorageService.SetValue(StorageKeys.BuildInputDelay, obj.Value);
|
||||
}
|
||||
|
||||
private void OnWaitTimeChanged(ChangeEventArgs obj)
|
||||
{
|
||||
StorageService.SetValue(StorageKeys.WaitTime, obj.Value);
|
||||
}
|
||||
|
||||
private void OnWaitToChanged(ChangeEventArgs obj)
|
||||
{
|
||||
StorageService.SetValue(StorageKeys.WaitTo, obj.Value);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user