wabbajack/Wabbajack.App.Wpf/Views/ModeSelectionView.xaml
2023-11-26 20:15:53 +01:00

656 lines
39 KiB
XML

<rxui:ReactiveUserControl
x:Class="Wabbajack.ModeSelectionView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:icon="http://metro.mahapps.com/winfx/xaml/iconpacks"
xmlns:local="clr-namespace:Wabbajack"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:rxui="http://reactiveui.net"
xmlns:ic="clr-namespace:FluentIcons.WPF;assembly=FluentIcons.WPF"
d:DesignHeight="700"
d:DesignWidth="1000"
x:TypeArguments="local:ModeSelectionVM"
mc:Ignorable="d">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="3*" />
<RowDefinition Height="1*" />
<RowDefinition Height="0.05*" />
</Grid.RowDefinitions>
<Grid Grid.Row="0" Grid.Column="0">
<Grid.RowDefinitions>
<RowDefinition Height="10*" />
<RowDefinition Height="4*" />
<RowDefinition Height="2*" />
<RowDefinition Height="22*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Viewbox Grid.Row="0" Grid.Column="0" HorizontalAlignment="Left" VerticalAlignment="Top">
<Label Grid.Row="0" FontSize="86.7" FontWeight="Bold" Padding="0" Margin="0">
<StackPanel Orientation="Horizontal">
<TextBlock Foreground="{StaticResource ForegroundBrush}" Text="Welcome to " />
<TextBlock Foreground="{StaticResource PrimaryBrush}" Text="Wabbajack" />
</StackPanel>
</Label>
</Viewbox>
<Viewbox Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Top">
<Label FontSize="16" Foreground="{StaticResource ForegroundBrush}" Padding="0, 4, 0, 4" Margin="0">
<StackPanel Orientation="Horizontal">
<TextBlock Text="The home of " />
<TextBlock x:Name="ModlistAmountTextBlock" Foreground="{StaticResource PrimaryBrush}" />
<TextBlock Text=" ready-made modlists spanning " />
<TextBlock x:Name="GameAmountTextBlock" Foreground="{StaticResource PrimaryBrush}" />
<TextBlock Text=" games." />
</StackPanel>
</Label>
</Viewbox>
<Grid Grid.Row="3" Grid.RowSpan="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="581*" />
<ColumnDefinition Width="20*" />
<ColumnDefinition Width="581*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="81*" />
<RowDefinition Height="14*" />
<RowDefinition Height="81*" />
</Grid.RowDefinitions>
<Border Grid.Row="0" Grid.Column="0" BorderBrush="{StaticResource PrimaryVariantBrush}" CornerRadius="8" BorderThickness="16">
<Grid Grid.Row="0" Grid.Column="0" Background="{StaticResource PrimaryVariantBrush}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock
Grid.Column="0"
Grid.Row="0"
Text="Find a modlist that suits your playstyle"
FontWeight="DemiBold"
FontSize="28"
/>
<ic:SymbolIcon
Grid.Row="0"
Grid.Column="1"
VerticalAlignment="Top"
Symbol="Search"
IsFilled="True"
FontSize="28"
/>
<TextBlock Grid.Column="0" Grid.Row="1" Grid.RowSpan="2" LineHeight="24" FontSize="14" VerticalAlignment="Bottom">
Go through a series of questions to find a modlist that works for you through <Hyperlink Command="{Binding VisitModlistWizardCommand}"> our<LineBreak />
Wabbakinator quiz</Hyperlink>, or <Hyperlink Command="{Binding BrowseCommand}">navigate the gallery</Hyperlink> yourself and pick something that looks fun.
</TextBlock>
</Grid>
</Border>
<Border Grid.Row="0" Grid.Column="2" BorderBrush="{StaticResource PrimaryVariantBrush}" CornerRadius="8" BorderThickness="16">
<Grid Grid.Row="0" Grid.Column="0" Background="{StaticResource PrimaryVariantBrush}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock
Grid.Column="0"
Grid.Row="0"
Text="Follow the usually short documentation"
FontWeight="DemiBold"
FontSize="28"
/>
<ic:SymbolIcon
Grid.Row="0"
Grid.Column="1"
VerticalAlignment="Top"
Symbol="DocumentOnePageMultiple"
IsFilled="True"
FontSize="28"
/>
<TextBlock Grid.Column="0" Grid.Row="1" Grid.RowSpan="2" LineHeight="24" FontSize="14" VerticalAlignment="Bottom">
Some modlists have steps that you need to take before you install the list, some don't.<LineBreak/>
Check your list's documentation on how to get started.
</TextBlock>
</Grid>
</Border>
<Border Grid.Row="2" Grid.Column="0" BorderBrush="{StaticResource PrimaryVariantBrush}" CornerRadius="8" BorderThickness="16">
<Grid Grid.Row="0" Grid.Column="0" Background="{StaticResource PrimaryVariantBrush}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock
Grid.Column="0"
Grid.Row="0"
Text="Start downloading your chosen list"
FontWeight="DemiBold"
FontSize="28"
/>
<ic:SymbolIcon
Grid.Row="0"
Grid.Column="1"
VerticalAlignment="Top"
Symbol="DrawerArrowDownload"
IsFilled="True"
FontSize="28"
/>
<TextBlock Grid.Column="0" Grid.Row="1" Grid.RowSpan="2" LineHeight="24" FontSize="14" VerticalAlignment="Bottom">
Pick a destination with enough free space and click the "Start download" button. You might<LineBreak/>
have to log into Nexus first, but rest assured it will just work™.
</TextBlock>
</Grid>
</Border>
<Border Grid.Row="2" Grid.Column="2" BorderBrush="{StaticResource PrimaryVariantBrush}" CornerRadius="8" BorderThickness="16">
<Grid Grid.Row="0" Grid.Column="0" Background="{StaticResource PrimaryVariantBrush}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock
Grid.Column="0"
Grid.Row="0"
Text="Ready to start playing!"
FontWeight="DemiBold"
FontSize="28"
/>
<ic:SymbolIcon
Grid.Row="0"
Grid.Column="1"
VerticalAlignment="Top"
Symbol="PlayCircle"
IsFilled="True"
FontSize="28"
/>
<TextBlock Grid.Column="0" Grid.Row="1" Grid.RowSpan="2" LineHeight="24" FontSize="14" VerticalAlignment="Bottom">
If your install completed successfully and you're done with the documentation as well, you're<LineBreak/>
now ready to launch the modlist and play!
</TextBlock>
</Grid>
</Border>
</Grid>
</Grid>
<Grid Grid.Row="1" Margin="5,15">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button Grid.Row="1" Grid.Column="0"
x:Name="BrowseButton"
Margin="15,0"
Background="Transparent"
BorderBrush="Transparent"
ClipToBounds="False">
<Button.Template>
<ControlTemplate TargetType="Button">
<Border Background="{TemplateBinding Background}">
<ContentPresenter />
</Border>
</ControlTemplate>
</Button.Template>
<Grid ClipToBounds="False">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Viewbox Grid.Row="1">
<Grid>
<Grid>
<ic:SymbolIcon
Width="140"
Height="140"
Margin="0,0,0,10"
HorizontalAlignment="Center"
ClipToBounds="False"
Foreground="{StaticResource PrimaryVariantBrush}"
Symbol="ClockArrowDownload"
Opacity="0.6" />
<Grid.Style>
<Style TargetType="Grid">
<Setter Property="Effect">
<Setter.Value>
<BlurEffect Radius="50" />
</Setter.Value>
</Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding IsMouseOver, RelativeSource={RelativeSource AncestorType={x:Type Button}}}" Value="True">
<Setter Property="Effect">
<Setter.Value>
<BlurEffect Radius="75" />
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Style>
</Grid>
<Grid>
<icon:PackIconFontAwesome
Width="140"
Height="140"
Margin="0,0,0,10"
HorizontalAlignment="Center"
ClipToBounds="False"
Foreground="{StaticResource SecondaryBrush}"
Kind="CloudDownloadAltSolid" />
<Grid.Effect>
<BlurEffect Radius="25" />
</Grid.Effect>
<Grid.Resources>
<Style TargetType="Grid">
<Setter Property="Opacity" Value="0" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsMouseOver, RelativeSource={RelativeSource AncestorType={x:Type Button}}}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetProperty="Opacity"
To="0.6"
Duration="0:0:0.0" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetProperty="Opacity"
To="0"
Duration="0:0:4.0" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Resources>
</Grid>
<icon:PackIconFontAwesome
Width="140"
Height="140"
Margin="0,0,0,10"
HorizontalAlignment="Center"
Kind="CloudDownloadAltSolid">
<icon:PackIconFontAwesome.Style>
<Style TargetType="icon:PackIconFontAwesome">
<Setter Property="Foreground" Value="{StaticResource DimForegroundBrush}" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsMouseOver, RelativeSource={RelativeSource AncestorType={x:Type Button}}}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetProperty="(icon:PackIconFontAwesome.Foreground).(SolidColorBrush.Color)"
To="{StaticResource ForegroundColor}"
Duration="0:0:0.0" />
<ColorAnimation
Storyboard.TargetProperty="(icon:PackIconFontAwesome.Foreground).(SolidColorBrush.Color)"
To="{StaticResource LightSecondary}"
Duration="0:0:2.0" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetProperty="(icon:PackIconFontAwesome.Foreground).(SolidColorBrush.Color)"
To="{StaticResource DimForegroundColor}"
Duration="0:0:4.0" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
</icon:PackIconFontAwesome.Style>
</icon:PackIconFontAwesome>
</Grid>
</Viewbox>
<TextBlock Grid.Row="2"
HorizontalAlignment="Center"
VerticalAlignment="Top"
FontSize="25"
Text="Browse Modlists">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Opacity" Value="0.2" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsMouseOver, RelativeSource={RelativeSource AncestorType={x:Type Button}}}" Value="True">
<Setter Property="Opacity" Value="1" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</Grid>
</Button>
<Button Grid.Row="1" Grid.Column="1"
x:Name="InstallButton"
Margin="15,0"
Background="Transparent"
BorderBrush="Transparent"
ClipToBounds="False">
<Button.Template>
<ControlTemplate TargetType="Button">
<Border Background="{TemplateBinding Background}">
<ContentPresenter />
</Border>
</ControlTemplate>
</Button.Template>
<Grid ClipToBounds="False">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Viewbox Grid.Row="1">
<Grid>
<Grid>
<icon:PackIconFontAwesome
Width="140"
Height="140"
Margin="0,0,0,10"
HorizontalAlignment="Center"
ClipToBounds="False"
Foreground="{StaticResource PrimaryVariantBrush}"
Kind="HddSolid"
Opacity="0.6" />
<Grid.Style>
<Style TargetType="Grid">
<Setter Property="Effect">
<Setter.Value>
<BlurEffect Radius="50" />
</Setter.Value>
</Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding IsMouseOver, RelativeSource={RelativeSource AncestorType={x:Type Button}}}" Value="True">
<Setter Property="Effect">
<Setter.Value>
<BlurEffect Radius="75" />
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Style>
</Grid>
<Grid>
<icon:PackIconFontAwesome
Width="140"
Height="140"
Margin="0,0,0,10"
HorizontalAlignment="Center"
ClipToBounds="False"
Foreground="{StaticResource SecondaryBrush}"
Kind="HddSolid" />
<Grid.Effect>
<BlurEffect Radius="25" />
</Grid.Effect>
<Grid.Resources>
<Style TargetType="Grid">
<Setter Property="Opacity" Value="0" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsMouseOver, RelativeSource={RelativeSource AncestorType={x:Type Button}}}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetProperty="Opacity"
To="0.6"
Duration="0:0:0.0" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetProperty="Opacity"
To="0"
Duration="0:0:4.0" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Resources>
</Grid>
<icon:PackIconFontAwesome
Width="140"
Height="140"
Margin="0,0,0,10"
HorizontalAlignment="Center"
Kind="HddSolid">
<icon:PackIconFontAwesome.Style>
<Style TargetType="icon:PackIconFontAwesome">
<Setter Property="Foreground" Value="{StaticResource DimForegroundBrush}" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsMouseOver, RelativeSource={RelativeSource AncestorType={x:Type Button}}}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetProperty="(icon:PackIconFontAwesome.Foreground).(SolidColorBrush.Color)"
To="{StaticResource ForegroundColor}"
Duration="0:0:0.0" />
<ColorAnimation
Storyboard.TargetProperty="(icon:PackIconFontAwesome.Foreground).(SolidColorBrush.Color)"
To="{StaticResource LightSecondary}"
Duration="0:0:2.0" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetProperty="(icon:PackIconFontAwesome.Foreground).(SolidColorBrush.Color)"
To="{StaticResource DimForegroundColor}"
Duration="0:0:4.0" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
</icon:PackIconFontAwesome.Style>
</icon:PackIconFontAwesome>
</Grid>
</Viewbox>
<TextBlock Grid.Row="2"
HorizontalAlignment="Center"
VerticalAlignment="Top"
FontSize="25"
Text="Install From Disk">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Opacity" Value="0.2" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsMouseOver, RelativeSource={RelativeSource AncestorType={x:Type Button}}}" Value="True">
<Setter Property="Opacity" Value="1" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</Grid>
</Button>
<Button Grid.Row="1" Grid.Column="2"
x:Name="CompileButton"
Margin="15,0"
Background="Transparent"
BorderBrush="Transparent"
ClipToBounds="False">
<Button.Template>
<ControlTemplate TargetType="Button">
<Border Background="{TemplateBinding Background}">
<ContentPresenter />
</Border>
</ControlTemplate>
</Button.Template>
<Grid ClipToBounds="False">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Viewbox Grid.Row="1">
<Grid>
<Grid>
<icon:PackIconFontAwesome
Width="140"
Height="140"
Margin="0,0,0,10"
HorizontalAlignment="Center"
ClipToBounds="False"
Foreground="{StaticResource PrimaryVariantBrush}"
Kind="PlusCircleSolid"
Opacity="0.6" />
<Grid.Style>
<Style TargetType="Grid">
<Setter Property="Effect">
<Setter.Value>
<BlurEffect Radius="50" />
</Setter.Value>
</Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding IsMouseOver, RelativeSource={RelativeSource AncestorType={x:Type Button}}}" Value="True">
<Setter Property="Effect">
<Setter.Value>
<BlurEffect Radius="75" />
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Style>
</Grid>
<Grid>
<icon:PackIconFontAwesome
Width="140"
Height="140"
Margin="0,0,0,10"
HorizontalAlignment="Center"
ClipToBounds="False"
Foreground="{StaticResource SecondaryBrush}"
Kind="PlusCircleSolid" />
<Grid.Effect>
<BlurEffect Radius="25" />
</Grid.Effect>
<Grid.Resources>
<Style TargetType="Grid">
<Setter Property="Opacity" Value="0" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsMouseOver, RelativeSource={RelativeSource AncestorType={x:Type Button}}}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetProperty="Opacity"
To="0.6"
Duration="0:0:0.0" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetProperty="Opacity"
To="0"
Duration="0:0:4.0" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Resources>
</Grid>
<icon:PackIconFontAwesome
Width="140"
Height="140"
Margin="0,0,0,10"
HorizontalAlignment="Center"
Kind="PlusCircleSolid">
<icon:PackIconFontAwesome.Style>
<Style TargetType="icon:PackIconFontAwesome">
<Setter Property="Foreground" Value="{StaticResource DimForegroundBrush}" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsMouseOver, RelativeSource={RelativeSource AncestorType={x:Type Button}}}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetProperty="(icon:PackIconFontAwesome.Foreground).(SolidColorBrush.Color)"
To="{StaticResource ForegroundColor}"
Duration="0:0:0.0" />
<ColorAnimation
Storyboard.TargetProperty="(icon:PackIconFontAwesome.Foreground).(SolidColorBrush.Color)"
To="{StaticResource LightSecondary}"
Duration="0:0:2.0" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetProperty="(icon:PackIconFontAwesome.Foreground).(SolidColorBrush.Color)"
To="{StaticResource DimForegroundColor}"
Duration="0:0:4.0" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
</icon:PackIconFontAwesome.Style>
</icon:PackIconFontAwesome>
</Grid>
</Viewbox>
<TextBlock Grid.Row="2"
HorizontalAlignment="Center"
VerticalAlignment="Top"
FontSize="25"
Text="Create a Modlist">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Opacity" Value="0.2" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsMouseOver, RelativeSource={RelativeSource AncestorType={x:Type Button}}}" Value="True">
<Setter Property="Opacity" Value="1" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</Grid>
</Button>
</Grid>
<local:LinksView Grid.Row="0" Grid.RowSpan="3" Grid.Column="0"
Margin="10"
HorizontalAlignment="Right"
VerticalAlignment="Top" />
</Grid>
</rxui:ReactiveUserControl>