diff --git a/AideDeJeu/AideDeJeu/Models/Races/RaceItem.cs b/AideDeJeu/AideDeJeu/Models/Races/RaceItem.cs index afe2797c..5028beb0 100644 --- a/AideDeJeu/AideDeJeu/Models/Races/RaceItem.cs +++ b/AideDeJeu/AideDeJeu/Models/Races/RaceItem.cs @@ -13,7 +13,14 @@ namespace AideDeJeuLib string IntelligenceBonus { get; set; } string WisdomBonus { get; set; } string CharismaBonus { get; set; } - string AnyAbilityBonus { get; set; } + + string DispatchedBonus { get; set; } + string MaxDispatchedStrengthBonus { get; set; } + string MaxDispatchedDexterityBonus { get; set; } + string MaxDispatchedConstitutionBonus { get; set; } + string MaxDispatchedIntelligenceBonus { get; set; } + string MaxDispatchedWisdomBonus { get; set; } + string MaxDispatchedCharismaBonus { get; set; } string AbilityScoreIncrease { get; set; } string Age { get; set; } diff --git a/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacter/AbilitiesViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacter/AbilitiesViewModel.cs index 1458338e..ab5d95b9 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacter/AbilitiesViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacter/AbilitiesViewModel.cs @@ -28,12 +28,49 @@ namespace AideDeJeu.ViewModels.PlayerCharacter public class AbilityViewModel : BaseViewModel { private int? _BaseValue = null; - public int? BaseValue { get { return _BaseValue; } set { SetProperty(ref _BaseValue, value); OnPropertyChanged(nameof(Value)); OnPropertyChanged(nameof(Mod)); } } - private int _Bonus = 0; - public int Bonus { get { return _Bonus; } set { SetProperty(ref _Bonus, value); OnPropertyChanged(nameof(Value)); OnPropertyChanged(nameof(Mod)); } } + public int? BaseValue + { + get { return _BaseValue; } + set + { + SetProperty(ref _BaseValue, value); + OnPropertyChanged(nameof(Value)); + OnPropertyChanged(nameof(Mod)); + OnPropertyChanged(nameof(ValueString)); + OnPropertyChanged(nameof(ModString)); + } + } + private int _RacialBonus = 0; + public int RacialBonus + { + get { return _RacialBonus; } + set + { + SetProperty(ref _RacialBonus, value); + OnPropertyChanged(nameof(Value)); + OnPropertyChanged(nameof(Mod)); + OnPropertyChanged(nameof(ValueString)); + OnPropertyChanged(nameof(ModString)); + } + } + private int _RacialDispatchedBonus = 0; + public int RacialDispatchedBonus + { + get { return _RacialDispatchedBonus; } + set + { + SetProperty(ref _RacialDispatchedBonus, value); + OnPropertyChanged(nameof(Value)); + OnPropertyChanged(nameof(Mod)); + OnPropertyChanged(nameof(ValueString)); + OnPropertyChanged(nameof(ModString)); + } + } - public int? Value { get { return BaseValue != null ? BaseValue + Bonus : null; } } + public int? Value { get { return BaseValue != null ? BaseValue + RacialBonus + RacialDispatchedBonus : null; } } + public string ValueString { get { return Value != null ? Value.ToString() : null; } } public int? Mod { get { return Value != null ? Value / 2 - 5 : null; } } + public string ModString { get { return Mod != null ? Mod.Value.ToString("+0;-#") : null; } } } } diff --git a/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacter/PlayerCharacterEditorViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacter/PlayerCharacterEditorViewModel.cs index 5ce8b021..5a601400 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacter/PlayerCharacterEditorViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacter/PlayerCharacterEditorViewModel.cs @@ -56,12 +56,12 @@ namespace AideDeJeu.ViewModels.PlayerCharacter switch(e.PropertyName) { case nameof(SelectedPlayerCharacter.Race): - SelectedPlayerCharacter.Abilities.Strength.Bonus = int.Parse(SelectedPlayerCharacter.Race.Race.StrengthBonus ?? "0"); - SelectedPlayerCharacter.Abilities.Dexterity.Bonus = int.Parse(SelectedPlayerCharacter.Race.Race.DexterityBonus ?? "0"); - SelectedPlayerCharacter.Abilities.Constitution.Bonus = int.Parse(SelectedPlayerCharacter.Race.Race.ConstitutionBonus ?? "0"); - SelectedPlayerCharacter.Abilities.Intelligence.Bonus = int.Parse(SelectedPlayerCharacter.Race.Race.IntelligenceBonus ?? "0"); - SelectedPlayerCharacter.Abilities.Wisdom.Bonus = int.Parse(SelectedPlayerCharacter.Race.Race.WisdomBonus ?? "0"); - SelectedPlayerCharacter.Abilities.Charisma.Bonus = int.Parse(SelectedPlayerCharacter.Race.Race.CharismaBonus ?? "0"); + SelectedPlayerCharacter.Abilities.Strength.RacialBonus = int.Parse(SelectedPlayerCharacter.Race.Race.StrengthBonus ?? "0"); + SelectedPlayerCharacter.Abilities.Dexterity.RacialBonus = int.Parse(SelectedPlayerCharacter.Race.Race.DexterityBonus ?? "0"); + SelectedPlayerCharacter.Abilities.Constitution.RacialBonus = int.Parse(SelectedPlayerCharacter.Race.Race.ConstitutionBonus ?? "0"); + SelectedPlayerCharacter.Abilities.Intelligence.RacialBonus = int.Parse(SelectedPlayerCharacter.Race.Race.IntelligenceBonus ?? "0"); + SelectedPlayerCharacter.Abilities.Wisdom.RacialBonus = int.Parse(SelectedPlayerCharacter.Race.Race.WisdomBonus ?? "0"); + SelectedPlayerCharacter.Abilities.Charisma.RacialBonus = int.Parse(SelectedPlayerCharacter.Race.Race.CharismaBonus ?? "0"); break; } } @@ -1229,17 +1229,17 @@ namespace AideDeJeu.ViewModels.PlayerCharacter (SelectedPersonalityDefect ?? string.Empty) ); form.SetField("For Valeur", SelectedPlayerCharacter?.Abilities?.Strength?.Value?.ToString()); - form.SetField("For MOD", SelectedPlayerCharacter?.Abilities?.Strength?.Mod?.ToString()); + form.SetField("For MOD", SelectedPlayerCharacter?.Abilities?.Strength?.ModString); form.SetField("Dex Valeur", SelectedPlayerCharacter?.Abilities?.Dexterity?.Value?.ToString()); - form.SetField("Dex MOD", SelectedPlayerCharacter?.Abilities?.Dexterity?.Mod?.ToString()); + form.SetField("Dex MOD", SelectedPlayerCharacter?.Abilities?.Dexterity?.ModString); form.SetField("Con Valeur", SelectedPlayerCharacter?.Abilities?.Constitution?.Value?.ToString()); - form.SetField("Con MOD", SelectedPlayerCharacter?.Abilities?.Constitution?.Mod?.ToString()); + form.SetField("Con MOD", SelectedPlayerCharacter?.Abilities?.Constitution?.ModString); form.SetField("Int Valeur", SelectedPlayerCharacter?.Abilities?.Intelligence?.Value?.ToString()); - form.SetField("Int MOD", SelectedPlayerCharacter?.Abilities?.Intelligence?.Mod?.ToString()); + form.SetField("Int MOD", SelectedPlayerCharacter?.Abilities?.Intelligence?.ModString); form.SetField("Sag Valeur", SelectedPlayerCharacter?.Abilities?.Wisdom?.Value?.ToString()); - form.SetField("Sag MOD", SelectedPlayerCharacter?.Abilities?.Wisdom?.Mod?.ToString()); + form.SetField("Sag MOD", SelectedPlayerCharacter?.Abilities?.Wisdom?.ModString); form.SetField("Cha Valeur", SelectedPlayerCharacter?.Abilities?.Charisma?.Value?.ToString()); - form.SetField("Cha MOD", SelectedPlayerCharacter?.Abilities?.Charisma?.Mod?.ToString()); + form.SetField("Cha MOD", SelectedPlayerCharacter?.Abilities?.Charisma?.ModString); //PdfContentByte cb = stamper.GetOverContent(1); //cb.SetRGBColorFill(255, 0, 0); diff --git a/AideDeJeu/AideDeJeu/Views/PlayerCharacter/PlayerCharacterEditorPage.xaml b/AideDeJeu/AideDeJeu/Views/PlayerCharacter/PlayerCharacterEditorPage.xaml index 5a9cb40f..0f4b5bf8 100644 --- a/AideDeJeu/AideDeJeu/Views/PlayerCharacter/PlayerCharacterEditorPage.xaml +++ b/AideDeJeu/AideDeJeu/Views/PlayerCharacter/PlayerCharacterEditorPage.xaml @@ -207,6 +207,8 @@ + + diff --git a/Data/half-elf_hd.md b/Data/half-elf_hd.md index fed38e2a..cb50779a 100644 --- a/Data/half-elf_hd.md +++ b/Data/half-elf_hd.md @@ -1,5 +1,5 @@ - +[Races](races_hd.md#)