Compare commits
15 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 450824733d | |||
| 110f909c6f | |||
| a1099628a0 | |||
| 7e85159fd5 | |||
| 2e8daca61c | |||
| 05b714a607 | |||
| 3b0492c70f | |||
| c20280eb13 | |||
| dd863c326e | |||
| 2012aab7b3 | |||
| abb7954614 | |||
| 0f44a6a9a7 | |||
| 34e0a0c8ba | |||
| b0b82811cc | |||
| 4855d78823 |
@@ -1,12 +1,21 @@
|
|||||||
# EliteBGS changelog
|
# EliteBGS changelog
|
||||||
|
|
||||||
# 0.3.7 on 29.01.2024
|
## 0.4.0 on 13.04.2024
|
||||||
|
|
||||||
|
* Change layout of the results into System -> Faction -> Transaction.
|
||||||
|
Many people who contribute *a lot* of things to the BGS have preferred such
|
||||||
|
a layout to find the right things to post to various discord guilds/threads.
|
||||||
|
* Sort all systems in the new overview by name. It just makes them easier to
|
||||||
|
find when there are a lot of entries.
|
||||||
|
* Add a button to deselect/select all buttons.
|
||||||
|
|
||||||
|
## 0.3.7 on 29.01.2024
|
||||||
|
|
||||||
* Fix wrong locations of BGS action if you remain on your carrier while its
|
* Fix wrong locations of BGS action if you remain on your carrier while its
|
||||||
jumping to a new system.
|
jumping to a new system.
|
||||||
* Identify a capital ship in a high CZ by its music.
|
* Identify a capital ship in a high CZ by its music.
|
||||||
|
|
||||||
# 0.3.6 on 25.10.2023
|
## 0.3.6 on 25.10.2023
|
||||||
|
|
||||||
* U17 introduced invalid JSON into the player journal. EliteBGS can now skip over
|
* U17 introduced invalid JSON into the player journal. EliteBGS can now skip over
|
||||||
those and keep processing. This way players won't have to delete lines in their
|
those and keep processing. This way players won't have to delete lines in their
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net7.0-windows</TargetFramework>
|
<TargetFramework>net7.0-windows</TargetFramework>
|
||||||
<OutputType>WinExe</OutputType>
|
<OutputType>WinExe</OutputType>
|
||||||
<Version>0.3.7</Version>
|
<Version>0.4.0</Version>
|
||||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||||
<UseWindowsForms>true</UseWindowsForms>
|
<UseWindowsForms>true</UseWindowsForms>
|
||||||
<UseWPF>true</UseWPF>
|
<UseWPF>true</UseWPF>
|
||||||
@@ -18,12 +18,15 @@
|
|||||||
<Copyright>Copyright 2019 by Florian Stinglmayr</Copyright>
|
<Copyright>Copyright 2019 by Florian Stinglmayr</Copyright>
|
||||||
<RepositoryUrl>https://codeberg.org/nola/EDBGS</RepositoryUrl>
|
<RepositoryUrl>https://codeberg.org/nola/EDBGS</RepositoryUrl>
|
||||||
<PackageTags>ED;Elite Dangerous;BGS</PackageTags>
|
<PackageTags>ED;Elite Dangerous;BGS</PackageTags>
|
||||||
<PackageProjectUrl>https://bgs.n0la.org</PackageProjectUrl>
|
<PackageProjectUrl>https://salusinvicta.org/bgstool/</PackageProjectUrl>
|
||||||
<PackageReadmeFile>README.md</PackageReadmeFile>
|
<PackageReadmeFile>README.md</PackageReadmeFile>
|
||||||
<Description>Elite: Dangerous BGS logging and reporting tool
|
<Description>Elite: Dangerous BGS logging and reporting tool
|
||||||
</Description>
|
</Description>
|
||||||
<PackageIcon>logo_v5.png</PackageIcon>
|
<PackageIcon>logo_v5.png</PackageIcon>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Remove="main-page.png" />
|
||||||
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Resource Include="main-page.png">
|
<Resource Include="main-page.png">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
@@ -37,15 +40,10 @@
|
|||||||
<Pack>True</Pack>
|
<Pack>True</Pack>
|
||||||
<PackagePath>\</PackagePath>
|
<PackagePath>\</PackagePath>
|
||||||
</None>
|
</None>
|
||||||
<None Update="docs\CHANGELOG.md">
|
<None Update="CHANGELOG.md">
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
</None>
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
|
||||||
<Resource Include="docs\main-page.png">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Resource>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Content Include="LICENCE.txt">
|
<Content Include="LICENCE.txt">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
@@ -55,12 +53,12 @@
|
|||||||
<Resource Include="Salus.ico" />
|
<Resource Include="Salus.ico" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="MahApps.Metro" Version="2.4.9" />
|
<PackageReference Include="MahApps.Metro" Version="2.4.10" />
|
||||||
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
|
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
|
||||||
<PackageReference Include="Microsoft.Windows.Compatibility" Version="7.0.0" />
|
<PackageReference Include="Microsoft.Windows.Compatibility" Version="8.0.4" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
|
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||||
<PackageReference Include="Ookii.Dialogs.Wpf" Version="5.0.1" />
|
<PackageReference Include="Ookii.Dialogs.Wpf" Version="5.0.1" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@@ -9,15 +9,112 @@
|
|||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
Title="Elite: Dangerous BGS Helper" Height="520" Width="950" Icon="Salus.ico" Closing="window_Closing">
|
Title="Elite: Dangerous BGS Helper" Height="520" Width="950" Icon="Salus.ico" Closing="window_Closing">
|
||||||
<Window.Resources>
|
<Window.Resources>
|
||||||
|
<local:MinusFortyFiveConverter x:Key="MinusFortyFiveConverter" />
|
||||||
<Style x:Key="StretchingTreeViewStyle" TargetType="TreeViewItem" BasedOn="{StaticResource {x:Type TreeViewItem}}">
|
<Style x:Key="StretchingTreeViewStyle" TargetType="TreeViewItem" BasedOn="{StaticResource {x:Type TreeViewItem}}">
|
||||||
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
|
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
|
||||||
</Style>
|
</Style>
|
||||||
<local:MinusFortyFiveConverter x:Key="MinusFortyFiveConverter" />
|
|
||||||
|
<local:Report x:Key="ObjectivesBasedOnSystem" />
|
||||||
|
|
||||||
|
<HierarchicalDataTemplate DataType="{x:Type local:SystemObjectives}" ItemsSource="{Binding Path=Objectives}">
|
||||||
|
<Grid
|
||||||
|
HorizontalAlignment="Stretch"
|
||||||
|
Width="{Binding ActualWidth, ElementName=entries, Converter={StaticResource MinusFortyFiveConverter}}"
|
||||||
|
>
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="Auto"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<StackPanel Grid.Column="0" Orientation="Horizontal" VerticalAlignment="Center" Margin="0,2,0,2">
|
||||||
|
<CheckBox Focusable="False" IsChecked="{Binding IsEnabled}" VerticalAlignment="Center"/>
|
||||||
|
<TextBlock Text="System: " Margin="2,0,0,0"/>
|
||||||
|
<TextBlock Text="{Binding SystemName}" FontWeight="DemiBold"/>
|
||||||
|
</StackPanel>
|
||||||
|
</Grid>
|
||||||
|
</HierarchicalDataTemplate>
|
||||||
|
|
||||||
|
<HierarchicalDataTemplate DataType="{x:Type local:Objective}"
|
||||||
|
ItemsSource="{Binding Path=UITransactions}"
|
||||||
|
ItemContainerStyle="{StaticResource StretchingTreeViewStyle}">
|
||||||
|
<Grid
|
||||||
|
HorizontalAlignment="Stretch"
|
||||||
|
Width="{Binding ActualWidth, ElementName=entries, Converter={StaticResource MinusFortyFiveConverter}}"
|
||||||
|
>
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="Auto"/>
|
||||||
|
<ColumnDefinition Width="*" />
|
||||||
|
<ColumnDefinition Width="Auto"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<StackPanel Grid.Column="0" Orientation="Horizontal" VerticalAlignment="Center" Margin="0,2,0,2">
|
||||||
|
<CheckBox Focusable="False" IsChecked="{Binding IsEnabled}" VerticalAlignment="Center"/>
|
||||||
|
<TextBlock Text="Faction: " Margin="2,0,0,0"/>
|
||||||
|
<TextBlock Text="{Binding Faction}" FontWeight="DemiBold"/>
|
||||||
|
</StackPanel>
|
||||||
|
<Separator Visibility="Hidden" Grid.Column="1" HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" />
|
||||||
|
<StackPanel Grid.Column="2" HorizontalAlignment="Right" VerticalAlignment="Center" Orientation="Horizontal">
|
||||||
|
<ToggleButton x:Name="ToggleAll" Content="Toggle All" Click="ToggleAll_Click" IsChecked="True" IsThreeState="False"/>
|
||||||
|
<Separator Margin="2,0,2,0" />
|
||||||
|
<Button x:Name="AddCombatZone" Content="Add Combat Zone" Click="AddCombatZone_Click" />
|
||||||
|
</StackPanel>
|
||||||
|
</Grid>
|
||||||
|
</HierarchicalDataTemplate>
|
||||||
|
|
||||||
|
<DataTemplate DataType="{x:Type local:UITransaction}">
|
||||||
|
<!-- This will stretch out the width of the item-->
|
||||||
|
<Grid Initialized="Transaction_Initialized"
|
||||||
|
HorizontalAlignment="Left"
|
||||||
|
Width="{Binding ActualWidth, ElementName=entries, Converter={StaticResource MinusFortyFiveConverter}}"
|
||||||
|
Margin="0,2,0,2"
|
||||||
|
>
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="Auto"/>
|
||||||
|
<ColumnDefinition Width="*" />
|
||||||
|
<ColumnDefinition Width="Auto"/>
|
||||||
|
<ColumnDefinition Width="Auto"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<StackPanel Grid.Column="0" Orientation="Horizontal" HorizontalAlignment="Stretch" VerticalAlignment="Center">
|
||||||
|
<CheckBox Focusable="False" IsChecked="{Binding IsEnabled}" VerticalAlignment="Center"/>
|
||||||
|
<TextBlock Text="{Binding CompletedAt}" Margin="2,0,2,0" HorizontalAlignment="Right" TextAlignment="Center"/>
|
||||||
|
<TextBlock Text="{Binding Name}" FontWeight="DemiBold" TextAlignment="Center"/>
|
||||||
|
</StackPanel>
|
||||||
|
<StackPanel Grid.Column="2" Orientation="Horizontal" HorizontalAlignment="Right" x:Name="CombatZone" Visibility="{Binding IsCombatZone}">
|
||||||
|
<Expander Header="Optional Objectives" Visibility="{Binding IsShipCombatZone}">
|
||||||
|
<StackPanel Orientation="Vertical">
|
||||||
|
<ToggleButton x:Name="CapitalShip" Margin="2,0,2,0" Content="Capital Ship" IsChecked="{Binding HasCapitalShip, Mode=TwoWay}" IsThreeState="False"/>
|
||||||
|
<ToggleButton x:Name="AlliedCaptain" Margin="2,0,2,0" Content="Allied Captain" IsChecked="{Binding HasAlliedCaptain, Mode=TwoWay}" IsThreeState="False"/>
|
||||||
|
<ToggleButton x:Name="EnemyCaptain" Margin="2,0,2,0" Content="Enemy Captain" IsChecked="{Binding HasEnemyCaptain, Mode=TwoWay}" IsThreeState="False"/>
|
||||||
|
<ToggleButton x:Name="AlliedCorrespondent" Margin="2,0,2,0" Content="Allied Correspondent" IsChecked="{Binding HasAlliedCorrespondent, Mode=TwoWay}" IsThreeState="False"/>
|
||||||
|
<ToggleButton x:Name="EnemyCorrespondent" Margin="2,0,2,0" Content="Enemy Correspondent" IsChecked="{Binding HasEnemyCorrespondent, Mode=TwoWay}" IsThreeState="False"/>
|
||||||
|
<ToggleButton x:Name="SpecOps" Margin="2,0,2,0" Content="Spec Ops" IsChecked="{Binding HasSpecOps, Mode=TwoWay}" IsThreeState="False"/>
|
||||||
|
</StackPanel>
|
||||||
|
</Expander>
|
||||||
|
<Expander Header="Difficulty">
|
||||||
|
<StackPanel Orientation="Vertical">
|
||||||
|
<Button x:Name="Low" Content="Low" Click="Low_Click"/>
|
||||||
|
<Button x:Name="Med" Content="Med" Click="Med_Click"/>
|
||||||
|
<Button x:Name="High" Content="High" Click="High_Click"/>
|
||||||
|
<Button x:Name="VeryHigh" Content="Very High" Click="VeryHigh_Click" />
|
||||||
|
</StackPanel>
|
||||||
|
</Expander>
|
||||||
|
<Expander Header="Type">
|
||||||
|
<StackPanel Orientation="Vertical">
|
||||||
|
<Button Content="Ground" x:Name="Ground" Click="Ground_Click"/>
|
||||||
|
<Button Content="Ship" x:Name="Ship" Click="Ship_Click"/>
|
||||||
|
<Button Content="AX" x:Name="Thargoid" Click="Thargoid_Click"/>
|
||||||
|
</StackPanel>
|
||||||
|
</Expander>
|
||||||
|
</StackPanel>
|
||||||
|
<StackPanel Grid.Column="2" Orientation="Horizontal" HorizontalAlignment="Right" x:Name="SellCargo" Visibility="{Binding IsSellCargo}">
|
||||||
|
<TextBlock Text="Adjust Profit: " TextAlignment="Center" />
|
||||||
|
<TextBox x:Name="Profit" MinWidth="80" HorizontalContentAlignment="Right" Text="{Binding Profit, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" LostFocus="Profit_LostFocus" KeyUp="Profit_KeyUp"/>
|
||||||
|
</StackPanel>
|
||||||
|
</Grid>
|
||||||
|
</DataTemplate>
|
||||||
|
|
||||||
</Window.Resources>
|
</Window.Resources>
|
||||||
<mah:MetroWindow.RightWindowCommands>
|
<mah:MetroWindow.RightWindowCommands>
|
||||||
<mah:WindowCommands ShowSeparators="False">
|
<mah:WindowCommands ShowSeparators="False">
|
||||||
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Margin="5,0,5,0">
|
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Margin="5,0,5,0">
|
||||||
<Hyperlink x:Name="URL" NavigateUri="https://bgs.n0la.org/" RequestNavigate="URL_RequestNavigate">Homepage</Hyperlink>
|
<Hyperlink x:Name="URL" NavigateUri="https://salusinvicta.org/bgstool/" RequestNavigate="URL_RequestNavigate">Homepage</Hyperlink>
|
||||||
</TextBlock>
|
</TextBlock>
|
||||||
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Margin="5,0,15,0">
|
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Margin="5,0,15,0">
|
||||||
<Hyperlink x:Name="SRC" NavigateUri="https://codeberg.org/nola/EDBGS" RequestNavigate="URL_RequestNavigate">Source</Hyperlink>
|
<Hyperlink x:Name="SRC" NavigateUri="https://codeberg.org/nola/EDBGS" RequestNavigate="URL_RequestNavigate">Source</Hyperlink>
|
||||||
@@ -63,95 +160,19 @@
|
|||||||
<Button x:Name="GenerateDiscord" Content="Generate Discord Report" VerticalAlignment="Stretch" Margin="0,0,0,0" VerticalContentAlignment="Center" Click="GenerateDiscord_Click"/>
|
<Button x:Name="GenerateDiscord" Content="Generate Discord Report" VerticalAlignment="Stretch" Margin="0,0,0,0" VerticalContentAlignment="Center" Click="GenerateDiscord_Click"/>
|
||||||
<Separator />
|
<Separator />
|
||||||
<ComboBox x:Name="LogType" VerticalAlignment="Stretch" Margin="0,3,0,3" Width="140" SelectionChanged="LogType_SelectionChanged" />
|
<ComboBox x:Name="LogType" VerticalAlignment="Stretch" Margin="0,3,0,3" Width="140" SelectionChanged="LogType_SelectionChanged" />
|
||||||
|
<Separator />
|
||||||
|
<CheckBox x:Name="SelectAll" Content="Select All" IsChecked="True" Click="SelectAll_Click"/>
|
||||||
</ToolBar>
|
</ToolBar>
|
||||||
<TreeView CheckBox.Checked="TreeView_CheckBox_Updated"
|
<TreeView CheckBox.Checked="TreeView_CheckBox_Updated"
|
||||||
CheckBox.Unchecked="TreeView_CheckBox_Updated"
|
CheckBox.Unchecked="TreeView_CheckBox_Updated"
|
||||||
x:Name="entries" Margin="0,0,0,0"
|
x:Name="entries" Margin="0,0,0,0"
|
||||||
Grid.ColumnSpan="3" Grid.Row="2"
|
Grid.ColumnSpan="3"
|
||||||
|
Grid.Row="2"
|
||||||
KeyUp="entries_KeyUp"
|
KeyUp="entries_KeyUp"
|
||||||
HorizontalAlignment="Stretch"
|
HorizontalAlignment="Stretch"
|
||||||
HorizontalContentAlignment="Stretch"
|
HorizontalContentAlignment="Stretch"
|
||||||
|
ItemsSource="{Binding Source={StaticResource ObjectivesBasedOnSystem}}"
|
||||||
>
|
>
|
||||||
<TreeView.ItemTemplate>
|
|
||||||
<HierarchicalDataTemplate DataType="{x:Type local:Objective}" ItemsSource="{Binding UITransactions}" ItemContainerStyle="{StaticResource StretchingTreeViewStyle}">
|
|
||||||
<Grid
|
|
||||||
HorizontalAlignment="Stretch"
|
|
||||||
Width="{Binding ActualWidth, ElementName=entries, Converter={StaticResource MinusFortyFiveConverter}}"
|
|
||||||
>
|
|
||||||
<Grid.ColumnDefinitions>
|
|
||||||
<ColumnDefinition Width="Auto"/>
|
|
||||||
<ColumnDefinition Width="*" />
|
|
||||||
<ColumnDefinition Width="Auto"/>
|
|
||||||
</Grid.ColumnDefinitions>
|
|
||||||
<StackPanel Grid.Column="0" Orientation="Horizontal" VerticalAlignment="Center" Margin="0,2,0,2">
|
|
||||||
<CheckBox Focusable="False" IsChecked="{Binding IsEnabled}" VerticalAlignment="Center"/>
|
|
||||||
<TextBlock Text="System: " Visibility="{Binding HasSystem}" Margin="2,0,0,0"/>
|
|
||||||
<TextBlock Text="{Binding System}" FontWeight="DemiBold" Visibility="{Binding HasSystem}"/>
|
|
||||||
<TextBlock Text="Faction: " Visibility="{Binding HasFaction}" Margin="2,0,0,0"/>
|
|
||||||
<TextBlock Text="{Binding Faction}" FontWeight="DemiBold" Visibility="{Binding HasFaction}"/>
|
|
||||||
</StackPanel>
|
|
||||||
<Separator Visibility="Hidden" Grid.Column="1" HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" />
|
|
||||||
<StackPanel Grid.Column="2" HorizontalAlignment="Right" VerticalAlignment="Center" Orientation="Horizontal">
|
|
||||||
<ToggleButton x:Name="ToggleAll" Content="Toggle All" Click="ToggleAll_Click" IsChecked="True" IsThreeState="False"/>
|
|
||||||
<Separator Margin="2,0,2,0" />
|
|
||||||
<Button x:Name="AddCombatZone" Content="Add Combat Zone" Click="AddCombatZone_Click" />
|
|
||||||
</StackPanel>
|
|
||||||
</Grid>
|
|
||||||
<HierarchicalDataTemplate.ItemTemplate>
|
|
||||||
<HierarchicalDataTemplate>
|
|
||||||
<!-- This will stretch out the width of the item-->
|
|
||||||
<Grid Initialized="Transaction_Initialized"
|
|
||||||
HorizontalAlignment="Left"
|
|
||||||
Width="{Binding ActualWidth, ElementName=entries, Converter={StaticResource MinusFortyFiveConverter}}"
|
|
||||||
Margin="0,2,0,2"
|
|
||||||
>
|
|
||||||
<Grid.ColumnDefinitions>
|
|
||||||
<ColumnDefinition Width="Auto"/>
|
|
||||||
<ColumnDefinition Width="*" />
|
|
||||||
<ColumnDefinition Width="Auto"/>
|
|
||||||
<ColumnDefinition Width="Auto"/>
|
|
||||||
</Grid.ColumnDefinitions>
|
|
||||||
<StackPanel Grid.Column="0" Orientation="Horizontal" HorizontalAlignment="Stretch" VerticalAlignment="Center">
|
|
||||||
<CheckBox Focusable="False" IsChecked="{Binding IsEnabled}" VerticalAlignment="Center"/>
|
|
||||||
<TextBlock Text="{Binding CompletedAt}" Margin="2,0,2,0" HorizontalAlignment="Right" TextAlignment="Center"/>
|
|
||||||
<TextBlock Text="{Binding Name}" FontWeight="DemiBold" TextAlignment="Center"/>
|
|
||||||
</StackPanel>
|
|
||||||
<StackPanel Grid.Column="2" Orientation="Horizontal" HorizontalAlignment="Right" x:Name="CombatZone" Visibility="{Binding IsCombatZone}">
|
|
||||||
<Expander Header="Optional Objectives" Visibility="{Binding IsShipCombatZone}">
|
|
||||||
<StackPanel Orientation="Vertical">
|
|
||||||
<ToggleButton x:Name="CapitalShip" Margin="2,0,2,0" Content="Capital Ship" IsChecked="{Binding HasCapitalShip, Mode=TwoWay}" IsThreeState="False"/>
|
|
||||||
<ToggleButton x:Name="AlliedCaptain" Margin="2,0,2,0" Content="Allied Captain" IsChecked="{Binding HasAlliedCaptain, Mode=TwoWay}" IsThreeState="False"/>
|
|
||||||
<ToggleButton x:Name="EnemyCaptain" Margin="2,0,2,0" Content="Enemy Captain" IsChecked="{Binding HasEnemyCaptain, Mode=TwoWay}" IsThreeState="False"/>
|
|
||||||
<ToggleButton x:Name="AlliedCorrespondent" Margin="2,0,2,0" Content="Allied Correspondent" IsChecked="{Binding HasAlliedCorrespondent, Mode=TwoWay}" IsThreeState="False"/>
|
|
||||||
<ToggleButton x:Name="EnemyCorrespondent" Margin="2,0,2,0" Content="Enemy Correspondent" IsChecked="{Binding HasEnemyCorrespondent, Mode=TwoWay}" IsThreeState="False"/>
|
|
||||||
<ToggleButton x:Name="SpecOps" Margin="2,0,2,0" Content="Spec Ops" IsChecked="{Binding HasSpecOps, Mode=TwoWay}" IsThreeState="False"/>
|
|
||||||
</StackPanel>
|
|
||||||
</Expander>
|
|
||||||
<Expander Header="Difficulty">
|
|
||||||
<StackPanel Orientation="Vertical">
|
|
||||||
<Button x:Name="Low" Content="Low" Click="Low_Click"/>
|
|
||||||
<Button x:Name="Med" Content="Med" Click="Med_Click"/>
|
|
||||||
<Button x:Name="High" Content="High" Click="High_Click"/>
|
|
||||||
<Button x:Name="VeryHigh" Content="Very High" Click="VeryHigh_Click" />
|
|
||||||
</StackPanel>
|
|
||||||
</Expander>
|
|
||||||
<Expander Header="Type">
|
|
||||||
<StackPanel Orientation="Vertical">
|
|
||||||
<Button Content="Ground" x:Name="Ground" Click="Ground_Click"/>
|
|
||||||
<Button Content="Ship" x:Name="Ship" Click="Ship_Click"/>
|
|
||||||
<Button Content="AX" x:Name="Thargoid" Click="Thargoid_Click"/>
|
|
||||||
</StackPanel>
|
|
||||||
</Expander>
|
|
||||||
</StackPanel>
|
|
||||||
<StackPanel Grid.Column="2" Orientation="Horizontal" HorizontalAlignment="Right" x:Name="SellCargo" Visibility="{Binding IsSellCargo}">
|
|
||||||
<TextBlock Text="Adjust Profit: " TextAlignment="Center" />
|
|
||||||
<TextBox x:Name="Profit" MinWidth="80" HorizontalContentAlignment="Right" Text="{Binding Profit, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" LostFocus="Profit_LostFocus" KeyUp="Profit_KeyUp"/>
|
|
||||||
</StackPanel>
|
|
||||||
</Grid>
|
|
||||||
</HierarchicalDataTemplate>
|
|
||||||
</HierarchicalDataTemplate.ItemTemplate>
|
|
||||||
</HierarchicalDataTemplate>
|
|
||||||
</TreeView.ItemTemplate>
|
|
||||||
<TreeView.ItemContainerStyle>
|
<TreeView.ItemContainerStyle>
|
||||||
<Style TargetType="TreeViewItem">
|
<Style TargetType="TreeViewItem">
|
||||||
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
|
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
|
||||||
|
|||||||
@@ -107,6 +107,8 @@ public partial class MainWindow : MetroWindow {
|
|||||||
//{ "HouseSalus", Color.FromRgb(0xBC, 0x94, 0x39) },
|
//{ "HouseSalus", Color.FromRgb(0xBC, 0x94, 0x39) },
|
||||||
{ "HouseSalus", Color.FromRgb(0xED, 0xDA, 0x70) },
|
{ "HouseSalus", Color.FromRgb(0xED, 0xDA, 0x70) },
|
||||||
{ "NovaNavy", Color.FromRgb(0xA1, 0xA4, 0xDB) },
|
{ "NovaNavy", Color.FromRgb(0xA1, 0xA4, 0xDB) },
|
||||||
|
// Official Red of the Polish Flag
|
||||||
|
{ "PolskaGurom", Color.FromRgb(0xD4, 0x21, 0x3D) },
|
||||||
};
|
};
|
||||||
|
|
||||||
foreach (var colourtheme in colorThemes) {
|
foreach (var colourtheme in colorThemes) {
|
||||||
@@ -192,7 +194,7 @@ public partial class MainWindow : MetroWindow {
|
|||||||
transactions.RemoveAll(x => incompletes.Contains(x));
|
transactions.RemoveAll(x => incompletes.Contains(x));
|
||||||
|
|
||||||
report = new Report(transactions);
|
report = new Report(transactions);
|
||||||
this.entries.ItemsSource = report.Objectives;
|
this.entries.ItemsSource = report.SystemObjectives;
|
||||||
} catch (Exception exception) {
|
} catch (Exception exception) {
|
||||||
Log("Something went terribly wrong while parsing the E:D player journal.");
|
Log("Something went terribly wrong while parsing the E:D player journal.");
|
||||||
Log("Please send this to CMDR Hekateh:");
|
Log("Please send this to CMDR Hekateh:");
|
||||||
@@ -271,15 +273,27 @@ public partial class MainWindow : MetroWindow {
|
|||||||
object obj = entries.SelectedItem;
|
object obj = entries.SelectedItem;
|
||||||
bool removed = false;
|
bool removed = false;
|
||||||
|
|
||||||
if (obj.GetType() == typeof(Objective)) {
|
if (obj.GetType() == typeof(SystemObjectives)) {
|
||||||
removed = report.Objectives.Remove(obj as Objective);
|
removed = report.SystemObjectives.Remove(obj as SystemObjectives);
|
||||||
|
} else if (obj.GetType() == typeof(Objective)) {
|
||||||
|
report
|
||||||
|
.SystemObjectives
|
||||||
|
.ForEach(x => {
|
||||||
|
if (x.Objectives.Remove(obj as Objective)) {
|
||||||
|
removed = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
} else if (obj.GetType() == typeof(UITransaction) ||
|
} else if (obj.GetType() == typeof(UITransaction) ||
|
||||||
obj.GetType().IsSubclassOf(typeof(UITransaction))) {
|
obj.GetType().IsSubclassOf(typeof(UITransaction))) {
|
||||||
foreach (Objective parent in report.Objectives) {
|
report
|
||||||
if (parent.UITransactions.Remove(obj as UITransaction)) {
|
.SystemObjectives
|
||||||
removed = true;
|
.SelectMany(x =>
|
||||||
}
|
x.Objectives
|
||||||
}
|
.Where(x => x.UITransactions.Contains(obj as UITransaction))
|
||||||
|
)
|
||||||
|
.ToList()
|
||||||
|
.ForEach(x => removed = x.UITransactions.Remove(obj as UITransaction))
|
||||||
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (removed) {
|
if (removed) {
|
||||||
@@ -557,4 +571,11 @@ public partial class MainWindow : MetroWindow {
|
|||||||
} catch (Exception) {
|
} catch (Exception) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void SelectAll_Click(object sender, RoutedEventArgs e) {
|
||||||
|
if (report == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
report.SystemObjectives.ForEach(t => { t.IsEnabled = (bool)SelectAll.IsChecked; });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ public class MinusFortyFiveConverter : IValueConverter {
|
|||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public object Convert(
|
public object Convert(
|
||||||
object value, Type targetType, object parameter, CultureInfo culture) {
|
object value, Type targetType, object parameter, CultureInfo culture) {
|
||||||
return (double)value - 80;
|
return (double)value - 110;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
|
|||||||
@@ -242,7 +242,7 @@ public class UITransaction : INotifyPropertyChanged {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public class Objective : IComparable<Objective> {
|
public class Objective : IComparable<Objective> {
|
||||||
public bool IsEnabled { get; set; }
|
public bool IsEnabled { get; set; } = true;
|
||||||
|
|
||||||
public List<UITransaction> UITransactions { get; } = new List<UITransaction>();
|
public List<UITransaction> UITransactions { get; } = new List<UITransaction>();
|
||||||
|
|
||||||
|
|||||||
@@ -49,5 +49,5 @@ using System.Windows;
|
|||||||
// You can specify all the values or you can default the Build and Revision Numbers
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
// [assembly: AssemblyVersion("1.0.*")]
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
[assembly: AssemblyVersion("0.3.7.0")]
|
[assembly: AssemblyVersion("0.4.0.0")]
|
||||||
[assembly: AssemblyFileVersion("0.3.7.0")]
|
[assembly: AssemblyFileVersion("0.4.0.0")]
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ been parsed, you may then generate a BGS report you can copy/paste into Discord.
|
|||||||
|
|
||||||
Source code is available at [https://codeberg.org/nola/edbgs](https://codeberg.org/nola/edbgs).
|
Source code is available at [https://codeberg.org/nola/edbgs](https://codeberg.org/nola/edbgs).
|
||||||
|
|
||||||
Binary downloads can be found here: [https://bgs.n0la.org/](https://bgs.n0la.org/).
|
Binary downloads can be found here: [https://salusinvicta.org/bgstool/](https://salusinvicta.org/bgstool/).
|
||||||
|
|
||||||
## How To
|
## How To
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,38 @@
|
|||||||
using System.Collections.Generic;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Linq;
|
||||||
using EDPlayerJournal.BGS;
|
using EDPlayerJournal.BGS;
|
||||||
|
|
||||||
namespace EliteBGS;
|
namespace EliteBGS;
|
||||||
|
|
||||||
|
public class SystemObjectives : INotifyPropertyChanged, IComparable<SystemObjectives> {
|
||||||
|
public event PropertyChangedEventHandler PropertyChanged;
|
||||||
|
|
||||||
|
private bool isenabled = true;
|
||||||
|
|
||||||
|
public bool IsEnabled {
|
||||||
|
get { return isenabled; }
|
||||||
|
set {
|
||||||
|
isenabled = value;
|
||||||
|
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("IsEnabled"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool IsExpanded { get; set; } = false;
|
||||||
|
|
||||||
|
public string SystemName { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
public List<Objective> Objectives { get; set; } = new();
|
||||||
|
|
||||||
|
public int CompareTo(SystemObjectives other) {
|
||||||
|
if (other == null) return 1;
|
||||||
|
return string.Compare(SystemName, other.SystemName, StringComparison.OrdinalIgnoreCase);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class Report {
|
public class Report {
|
||||||
public List<Objective> Objectives { get; set; } = new List<Objective>();
|
public List<SystemObjectives> SystemObjectives { get; set; } = new();
|
||||||
|
|
||||||
public Report() { }
|
public Report() { }
|
||||||
|
|
||||||
@@ -12,29 +40,35 @@ public class Report {
|
|||||||
Populate(transactions);
|
Populate(transactions);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<Objective> Objectives {
|
||||||
|
get {
|
||||||
|
return SystemObjectives
|
||||||
|
.Where(t => t.IsEnabled)
|
||||||
|
.SelectMany(x => x.Objectives)
|
||||||
|
.ToList()
|
||||||
|
;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void Populate(List<Transaction> transactions) {
|
private void Populate(List<Transaction> transactions) {
|
||||||
if (transactions == null || transactions.Count == 0) {
|
if (transactions == null || transactions.Count == 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (Transaction t in transactions) {
|
foreach (Transaction t in transactions) {
|
||||||
Objective o;
|
var o = SystemObjectives.Find(x => string.Compare(x.SystemName, t.System) == 0);
|
||||||
if (t.SystemContribution) {
|
|
||||||
o = Objectives.Find(x => x.Matches(t.System));
|
|
||||||
} else {
|
|
||||||
o = Objectives.Find(x => x.Matches(t.System, t.Faction));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (o == null) {
|
if (o == null) {
|
||||||
if (t.SystemContribution) {
|
o = new SystemObjectives() { SystemName = t.System };
|
||||||
o = new Objective() { System = t.System };
|
SystemObjectives.Add(o);
|
||||||
} else {
|
|
||||||
o = new Objective() { Faction = t.Faction, System = t.System };
|
|
||||||
}
|
|
||||||
Objectives.Add(o);
|
|
||||||
}
|
}
|
||||||
|
var objective = o.Objectives.Find(x => x.Matches(t.System, t.Faction));
|
||||||
o.UITransactions.Add(new UITransaction(t));
|
if (objective == null) {
|
||||||
|
objective = new Objective() { Faction = t.Faction, System = t.System };
|
||||||
|
o.Objectives.Add(objective);
|
||||||
|
}
|
||||||
|
objective.UITransactions.Add(new UITransaction(t));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SystemObjectives.Sort();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
EliteBGS/combatzone.png
Normal file
BIN
EliteBGS/combatzone.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 75 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 68 KiB |
@@ -26,7 +26,7 @@ You can download the **latest** version **0.3.7** at CodeBerg:
|
|||||||
|
|
||||||
Or alternatively from my server:
|
Or alternatively from my server:
|
||||||
|
|
||||||
* [https://bgs.n0la.org/elitebgs-0.3.6.zip](https://bgs.n0la.org/elitebgs-0.3.7.zip)
|
* [https://bgs.n0la.org/elitebgs-0.3.7.zip](https://bgs.n0la.org/elitebgs-0.3.7.zip)
|
||||||
|
|
||||||
## Old Versions
|
## Old Versions
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 67 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 74 KiB |
@@ -1,15 +0,0 @@
|
|||||||
site_name: EliteBGS
|
|
||||||
|
|
||||||
markdown_extensions:
|
|
||||||
- pymdownx.snippets:
|
|
||||||
check_paths: true
|
|
||||||
|
|
||||||
theme:
|
|
||||||
name: lumen
|
|
||||||
|
|
||||||
nav:
|
|
||||||
- Overview: 'index.md'
|
|
||||||
- "Detailed Description": 'description.md'
|
|
||||||
- "Combat Zones": 'combatzones.md'
|
|
||||||
- FAQ: 'faq.md'
|
|
||||||
- Changelog: 'CHANGELOG.md'
|
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
EDBGS is a project containing the EliteBGS BGS application. It also contains the dotnet
|
EDBGS is a project containing the EliteBGS BGS application. It also contains the dotnet
|
||||||
class library EDPlayerJournal, which reads and parses Elite Dangerous player journals.
|
class library EDPlayerJournal, which reads and parses Elite Dangerous player journals.
|
||||||
|
|
||||||
See [https://bgs.n0la.org/](https://bgs.n0la.org) for further details.
|
See [https://salusinvicta.org/bgstool/](https://salusinvicta.org/bgstool/) for further details.
|
||||||
|
|
||||||
The tool helps with creating BGS reports for squadrons that support factions in
|
The tool helps with creating BGS reports for squadrons that support factions in
|
||||||
Elite: Dangerous that can be copy and pasted into a Discord server. It finds all BGS
|
Elite: Dangerous that can be copy and pasted into a Discord server. It finds all BGS
|
||||||
|
|||||||
Reference in New Issue
Block a user