Skip to content

Commit

Permalink
refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
turtle-insect committed Jul 20, 2021
1 parent 92f0ecc commit 4c6fea8
Show file tree
Hide file tree
Showing 6 changed files with 54 additions and 38 deletions.
42 changes: 8 additions & 34 deletions MonsterHunterStories2/Egg.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,59 +8,33 @@ class Egg : INotifyPropertyChanged
public event PropertyChangedEventHandler PropertyChanged;
public ObservableCollection<Gene> Genes { get; set; } = new ObservableCollection<Gene>();

private readonly uint mAddress;
public uint Address { get; private set; }

public Egg(uint address)
{
mAddress = address;
Address = address;
for (uint i = 0; i < 9; i++)
{
Genes.Add(new Gene(address + 8 + 4 * i));
}
}
public string Name
{
get
{
if (ID == 0) return "None";
return Info.Instance().Search(Info.Instance().Monster, ID)?.Value;
}
}

public uint ID
{
get { return SaveData.Instance().ReadNumber(mAddress, 4); }
get { return SaveData.Instance().ReadNumber(Address, 4); }
set
{
SaveData.Instance().WriteNumber(mAddress, 4, value);
SaveData.Instance().WriteNumber(Address, 4, value);
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(ID)));
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Name)));
}
}

public uint Smell
{
get { return SaveData.Instance().ReadNumber(mAddress + 4, 1); }
set
{
Util.WriteNumber(mAddress + 4, 1, value, 0, 2);
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Smell)));
}
}

public string AllHex
{
get
{
if (ID == 0) return "None";

return Util.ReadHex(mAddress, Util.EGG_SIZE);
}
get { return SaveData.Instance().ReadNumber(Address + 4, 1); }
set
{
Util.WriteHex(mAddress, value);
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(AllHex)));
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(ID)));
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Name)));
Util.WriteNumber(Address + 4, 1, value, 0, 2);
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Smell)));
}
}
Expand Down
24 changes: 24 additions & 0 deletions MonsterHunterStories2/EggAddress2HexStringConverter.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;

namespace MonsterHunterStories2
{
class EggAddress2HexStringConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
uint address = (uint)value;
return Util.ReadHex(address, Util.EGG_SIZE);
}

public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}
16 changes: 13 additions & 3 deletions MonsterHunterStories2/MainWindow.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -329,11 +329,20 @@
</Grid.ColumnDefinitions>
<DockPanel>
<Button DockPanel.Dock="Bottom" Content="Append Egg" Click="ButtonAppendEgg_Click"/>
<ListBox x:Name="ListBoxEgg" ItemsSource="{Binding Eggs}" DisplayMemberPath="Name"/>
<ListBox x:Name="ListBoxEgg" ItemsSource="{Binding Eggs}">
<ListBox.Resources>
<local:MonsterID2NameConverter x:Key="MonsterID2NameConverter"/>
</ListBox.Resources>
<ListBox.ItemTemplate>
<DataTemplate>
<Label Content="{Binding ID, Converter={StaticResource MonsterID2NameConverter}}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</DockPanel>
<Grid Grid.Column="1">
<Grid.Resources>
<local:MonsterID2NameConverter x:Key="MonsterID2NameConverter"/>
<local:EggAddress2HexStringConverter x:Key="EggAddress2HexStringConverter"/>
<local:RaidActionID2NameConverter x:Key="RaidActionID2NameConverter"/>
</Grid.Resources>
<Grid.ColumnDefinitions>
Expand All @@ -354,7 +363,8 @@
<ComboBoxItem Content="{x:Static prop:Resources.MainEggSmellTypeGood}"/>
<ComboBoxItem Content="{x:Static prop:Resources.MainEggSmellTypeAmazing}"/>
</ComboBox>
<TextBox x:Name="All_Hex" Grid.Row="2" Grid.ColumnSpan="2" Text="{Binding ElementName=ListBoxEgg, Path=SelectedItem.AllHex, UpdateSourceTrigger=PropertyChanged}" TextWrapping="Wrap" IsReadOnly="True"/>
<TextBox x:Name="All_Hex" Grid.Row="2" Grid.ColumnSpan="2" Text="{Binding ElementName=ListBoxEgg, Path=SelectedItem.Address, Mode=OneWay, Converter={StaticResource EggAddress2HexStringConverter},
UpdateSourceTrigger=PropertyChanged}" TextWrapping="Wrap" IsReadOnly="True"/>
<Grid Grid.Row="3" Grid.ColumnSpan="2">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
Expand Down
8 changes: 7 additions & 1 deletion MonsterHunterStories2/MainWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,13 @@ private void ButtonPasteEggHex_Click(object sender, RoutedEventArgs e)
return;
}

egg.AllHex = info;
ViewModel viewmodel = DataContext as ViewModel;
if (viewmodel == null) return;

Util.WriteHex(egg.Address, info);
viewmodel.Eggs.RemoveAt(index);
viewmodel.Eggs.Insert(index, new Egg(egg.Address));
ListBoxEgg.SelectedIndex = index;
}

private void ButtonChoiceGenes_Click(object sender, RoutedEventArgs e)
Expand Down
1 change: 1 addition & 0 deletions MonsterHunterStories2/MonsterHunterStories2.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@
<DependentUpon>ChoiceWindow.xaml</DependentUpon>
</Compile>
<Compile Include="Egg.cs" />
<Compile Include="EggAddress2HexStringConverter.cs" />
<Compile Include="Gene.cs" />
<Compile Include="GeneID2NameConverter.cs" />
<Compile Include="ILineAnalysis.cs" />
Expand Down
1 change: 1 addition & 0 deletions MonsterHunterStories2/MonsterID2NameConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ class MonsterID2NameConverter : IValueConverter
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
uint id = (uint)value;
if (id == 0) return "None";
return Info.Instance().Search(Info.Instance().Monster, id)?.Value;
}

Expand Down

0 comments on commit 4c6fea8

Please sign in to comment.