104 lines
2.7 KiB
Plaintext
104 lines
2.7 KiB
Plaintext
@using KoogleApp.Model
|
|
@using KoogleApp.Store.Game
|
|
@using KoogleApp.Store.Game.ThrowPanel
|
|
|
|
@inherits FluxorComponent
|
|
|
|
@inject IState<ThrowPanelState> ThrowPanelState
|
|
@inject IDispatcher Dispatcher
|
|
|
|
@if (ThrowPanelState.Value.IsStated)
|
|
{
|
|
<MudGrid>
|
|
<NumberPinPanel />
|
|
<MudItem xs="4">
|
|
<MudPaper Class="d-flex align-center justify-center mud-width-full py-0">
|
|
<MudButton OnClick="SinkLeftClick">
|
|
<MudIcon Class="ma-2" Icon="@Icons.Material.Filled.ArrowCircleLeft" Color="Color.Error"
|
|
Style="font-size: 3rem;"/>
|
|
Gosse
|
|
</MudButton>
|
|
</MudPaper>
|
|
</MudItem>
|
|
<MudItem xs="4">
|
|
<MudPaper Class="d-flex align-center justify-center mud-width-full py-0">
|
|
<MudButton OnClick="ThrowClick">
|
|
<MudIcon Class="ma-2" Icon="@Icons.Material.Filled.ArrowCircleUp" Color="Color.Success"
|
|
Style="font-size: 3rem;"/>
|
|
Wurf
|
|
</MudButton>
|
|
</MudPaper>
|
|
</MudItem>
|
|
<MudItem xs="4">
|
|
<MudPaper Class="d-flex align-center justify-center mud-width-full py-0">
|
|
<MudButton OnClick="SinkRightClick">
|
|
<MudIcon Class="ma-2" Icon="@Icons.Material.Filled.ArrowCircleRight" Color="Color.Error"
|
|
Style="font-size: 3rem;"/>
|
|
Gosse
|
|
</MudButton>
|
|
</MudPaper>
|
|
</MudItem>
|
|
</MudGrid>
|
|
}
|
|
|
|
|
|
@code {
|
|
|
|
[Parameter]
|
|
public EventCallback<ThrowEventArgs> OnClick { get; set; }
|
|
|
|
[Parameter]
|
|
public EventCallback<ThrowPanelState> OnStateChanged { get; set; }
|
|
|
|
// [Parameter]
|
|
// public ThrowPanelState? PanelState { get; set; }
|
|
|
|
|
|
protected override void OnAfterRender(bool firstRender)
|
|
{
|
|
if (firstRender)
|
|
{
|
|
Dispatcher.Dispatch(new LoadStateFromSessionAction());
|
|
}
|
|
|
|
base.OnAfterRender(firstRender);
|
|
}
|
|
|
|
private async Task OnNumberPinStateChanged(ThrowPanelState state)
|
|
{
|
|
await OnStateChanged.InvokeAsync(state);
|
|
}
|
|
|
|
private async Task SinkLeftClick(MouseEventArgs obj)
|
|
{
|
|
await DoThrow(true, false);
|
|
}
|
|
|
|
private async Task SinkRightClick(MouseEventArgs obj)
|
|
{
|
|
await DoThrow(false, true);
|
|
}
|
|
|
|
private async Task DoThrow(bool leftSink, bool rightSink)
|
|
{
|
|
var ev = new ThrowEventArgs
|
|
{
|
|
LeftSink = leftSink,
|
|
RightSink = rightSink
|
|
};
|
|
// if (GetDisabledState())
|
|
// return;
|
|
await OnClick.InvokeAsync(ev);
|
|
// Activatable?.Activate(this, ev);
|
|
}
|
|
|
|
|
|
|
|
private void ThrowClick(MouseEventArgs obj)
|
|
{
|
|
|
|
}
|
|
|
|
|
|
}
|