You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
211 lines
7.8 KiB
211 lines
7.8 KiB
@page "/storage" |
|
|
|
@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" |
|
Value="@_isEntityPlainView" |
|
OnChange="EntityViewChanged"/> |
|
</FormLayoutComponent> |
|
</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() |
|
{ |
|
_enabledPermissions = StorageService.GetValue<bool>(StorageKeys.EnabledStorage); |
|
|
|
RefreshDefaults(); |
|
|
|
StorageService.Subscribe(RefreshDefaults); |
|
} |
|
|
|
void IDisposable.Dispose() |
|
{ |
|
StorageService.Unsubscribe(RefreshDefaults); |
|
} |
|
|
|
private int? _attackTime = null; |
|
private int? _travelTime = null; |
|
|
|
private string? _faction = null; |
|
private string? _immortal = null; |
|
|
|
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); |
|
_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 void EntityViewChanged(ChangeEventArgs obj) |
|
{ |
|
StorageService.SetValue(StorageKeys.IsPlainView, 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); |
|
} |
|
|
|
} |