From 74252d95c186863a61305dbee8c1a7ba0189fb77 Mon Sep 17 00:00:00 2001 From: Yan Maniez Date: Thu, 28 Mar 2019 13:44:00 +0100 Subject: [PATCH] Tests --- .../AideDeJeu/Models/ClassEquipmentItem.cs | 13 +++ .../AideDeJeu/Models/ClassEvolutionItem.cs | 8 ++ .../AideDeJeu/Models/ClassFeatureItem.cs | 8 ++ .../AideDeJeu/Models/ClassHitPointsItem.cs | 11 +++ .../Models/ClassProficienciesItem.cs | 8 ++ AideDeJeu/AideDeJeu/Models/Item.cs | 21 ++-- Data/HD/hd_barbarian.md | 92 +++--------------- Data/HD/hd_barbarian_berserker.md | 3 +- Data/HD/hd_barbarian_howling.md | 3 +- Data/HD/hd_barbarian_spirits.md | 3 +- Data/HD/hd_barbarian_steel.md | 3 +- Data/HD/hd_bard.md | 6 +- Data/HD/hd_cleric.md | 6 +- Data/HD/hd_druid.md | 6 +- Data/HD/hd_fighter.md | 6 +- Data/HD/hd_monk.md | 6 +- Data/HD/hd_paladin.md | 6 +- Data/HD/hd_ranger.md | 6 +- Data/HD/hd_rogue.md | 6 +- Data/HD/hd_sorcerer.md | 6 +- Data/HD/hd_warlock.md | 6 +- Data/HD/hd_wizard.md | 6 +- Data/barbarian_hd.md | 91 +++++++++-------- Data/library.db | Bin 10817536 -> 10801152 bytes 24 files changed, 153 insertions(+), 177 deletions(-) create mode 100644 AideDeJeu/AideDeJeu/Models/ClassEquipmentItem.cs create mode 100644 AideDeJeu/AideDeJeu/Models/ClassEvolutionItem.cs create mode 100644 AideDeJeu/AideDeJeu/Models/ClassFeatureItem.cs create mode 100644 AideDeJeu/AideDeJeu/Models/ClassHitPointsItem.cs create mode 100644 AideDeJeu/AideDeJeu/Models/ClassProficienciesItem.cs diff --git a/AideDeJeu/AideDeJeu/Models/ClassEquipmentItem.cs b/AideDeJeu/AideDeJeu/Models/ClassEquipmentItem.cs new file mode 100644 index 00000000..9fe03865 --- /dev/null +++ b/AideDeJeu/AideDeJeu/Models/ClassEquipmentItem.cs @@ -0,0 +1,13 @@ +using AideDeJeuLib; + +namespace AideDeJeu.Models +{ + public class ClassEquipmentItem : Item + { + public string Armor { get; set; } + public string Weapons { get; set; } + public string Tools { get; set; } + public string SavingThrows { get; set; } + public string Skills { get; set; } + } +} diff --git a/AideDeJeu/AideDeJeu/Models/ClassEvolutionItem.cs b/AideDeJeu/AideDeJeu/Models/ClassEvolutionItem.cs new file mode 100644 index 00000000..6f78f469 --- /dev/null +++ b/AideDeJeu/AideDeJeu/Models/ClassEvolutionItem.cs @@ -0,0 +1,8 @@ +using AideDeJeuLib; + +namespace AideDeJeu.Models +{ + public class ClassEvolutionItem : Item + { + } +} diff --git a/AideDeJeu/AideDeJeu/Models/ClassFeatureItem.cs b/AideDeJeu/AideDeJeu/Models/ClassFeatureItem.cs new file mode 100644 index 00000000..a06f6114 --- /dev/null +++ b/AideDeJeu/AideDeJeu/Models/ClassFeatureItem.cs @@ -0,0 +1,8 @@ +using AideDeJeuLib; + +namespace AideDeJeu.Models +{ + public class ClassFeatureItem : Item + { + } +} diff --git a/AideDeJeu/AideDeJeu/Models/ClassHitPointsItem.cs b/AideDeJeu/AideDeJeu/Models/ClassHitPointsItem.cs new file mode 100644 index 00000000..333c13f7 --- /dev/null +++ b/AideDeJeu/AideDeJeu/Models/ClassHitPointsItem.cs @@ -0,0 +1,11 @@ +using AideDeJeuLib; + +namespace AideDeJeu.Models +{ + public class ClassHitPointsItem : Item + { + public string HitDice { get; set; } + public string HitPointsAt1stLevel { get; set; } + public string HitPointsAtHigherLevels { get; set; } + } +} diff --git a/AideDeJeu/AideDeJeu/Models/ClassProficienciesItem.cs b/AideDeJeu/AideDeJeu/Models/ClassProficienciesItem.cs new file mode 100644 index 00000000..f747b7f9 --- /dev/null +++ b/AideDeJeu/AideDeJeu/Models/ClassProficienciesItem.cs @@ -0,0 +1,8 @@ +using AideDeJeuLib; + +namespace AideDeJeu.Models +{ + public class ClassProficienciesItem : Item + { + } +} diff --git a/AideDeJeu/AideDeJeu/Models/Item.cs b/AideDeJeu/AideDeJeu/Models/Item.cs index f3122124..6bfacfed 100644 --- a/AideDeJeu/AideDeJeu/Models/Item.cs +++ b/AideDeJeu/AideDeJeu/Models/Item.cs @@ -110,21 +110,22 @@ namespace AideDeJeuLib // throw new NotImplementedException(); //} - [DataMember] + [DataMember(Name = "Item_Id", Order = 0)] [PrimaryKey] public virtual string Id { get; set; } - [DataMember] + + [DataMember(Name = "Item_RootId", Order = 1)] [Indexed] public string RootId { get; set; } - [DataMember] + [DataMember(Name = "Item_ParentLink", Order = 2)] [Indexed] public string ParentLink { get; set; } - [DataMember] + [DataMember(Name = "Item_Name", Order = 3)] public string Name { get; set; } - [DataMember] + [DataMember(Name = "Item_ParentName", Order = 4)] public string ParentName { get; set; } [YamlIgnore] @@ -152,9 +153,9 @@ namespace AideDeJeuLib } } - [DataMember] + [DataMember(Name = "Item_NameLevel", Order = 5)] public int NameLevel { get; set; } - [DataMember] + [DataMember(Name = "Item_AltName", Order = 6)] public string AltName { get; set; } [YamlIgnore] @@ -181,13 +182,13 @@ namespace AideDeJeuLib } } } - [DataMember] + [DataMember(Name = "Item_Source", Order = 7)] public string Source { get; set; } [YamlIgnore] - [DataMember] + [DataMember(Name = "Item_Markdown", Order = 8)] public virtual string Markdown { get; set; } - [DataMember] + [DataMember(Name = "Item_FullText", Order = 9)] public string FullText { get; set; } [IgnoreDataMember] diff --git a/Data/HD/hd_barbarian.md b/Data/HD/hd_barbarian.md index 742b2cd7..f5f5c0b9 100644 --- a/Data/HD/hd_barbarian.md +++ b/Data/HD/hd_barbarian.md @@ -1,14 +1,17 @@ --- !ClassItem -Name: Barbare -AltName: Barbarian (SRD p8) -Source: (MDR p114) -Id: barbarian_hd.md#barbare +Id: barbarian_hd.md#barbarepoints-de-vie RootId: barbarian_hd.md ParentLink: classes_hd.md +Name: BarbarePoints de vie ParentName: Classes -NameLevel: 1 -Attributes: {} +NameLevel: 2 +AltName: Barbarian (SRD p8) +Source: (MDR p114) +Attributes: + HitDice: 1d12 par niveau de barbare + HitPointsAt1stLevel: 12 + votre modificateur de [Constitution](hd_abilities_constitution.md) + HitPointsAtHigherLevels: 1d12 (ou 7) + votre modificateur de [Constitution](hd_abilities_constitution.md) par niveau de barbare après le premier niveau --- >  [Classes](hd_classes.md) @@ -23,78 +26,9 @@ Attributes: {} En tant que barbare, vous bénéficiez des aptitudes de classe suivantes. +## Points de vie -## [Points de vie](hd_barbarian_points_de_vie.md) - - - -## [Maîtrises](hd_barbarian_maitrises.md) - - - -## [Équipement](hd_barbarian_equipement.md) - - - -# [Tableau d'évolution](hd_barbarian_tableau_devolution.md) - - - -## [Rage](hd_barbarian_rage.md) - - - -## [Défense sans armure](hd_barbarian_defense_sans_armure.md) - - - -## [Témérité](hd_barbarian_temerite.md) - - - -## [Sens du danger](hd_barbarian_sens_du_danger.md) - - - -## [Voie primitive](hd_barbarian_voie_primitive.md) - - - -## [Amélioration de caractéristiques](hd_barbarian_amelioration_de_caracteristiques.md) - - - -## [Attaque supplémentaire](hd_barbarian_attaque_supplementaire.md) - - - -## [Déplacement rapide](hd_barbarian_deplacement_rapide.md) - - - -## [Instinct sauvage](hd_barbarian_instinct_sauvage.md) - - - -## [Critique brutal](hd_barbarian_critique_brutal.md) - - - -## [Rage implacable](hd_barbarian_rage_implacable.md) - - - -## [Rage ininterrompue](hd_barbarian_rage_ininterrompue.md) - - - -## [Puissance indomptable](hd_barbarian_puissance_indomptable.md) - - - -## [Champion primitif](hd_barbarian_champion_primitif.md) - - - -# [Voies primitives](hd_barbarian_voies_primitives.md) +**Dés de vie :** 1d12 par niveau de barbare +**Points de vie au niveau 1 :** 12 + votre modificateur de [Constitution](hd_abilities_constitution.md) +**Points de vie aux niveaux supérieurs :** 1d12 (ou 7) + votre modificateur de [Constitution](hd_abilities_constitution.md) par niveau de barbare après le premier niveau diff --git a/Data/HD/hd_barbarian_berserker.md b/Data/HD/hd_barbarian_berserker.md index afbd038e..a5676153 100644 --- a/Data/HD/hd_barbarian_berserker.md +++ b/Data/HD/hd_barbarian_berserker.md @@ -1,6 +1,5 @@ --- !SubClassItem -ParentClassId: hd_barbarian.md Id: barbarian_berserker_hd.md#voie-du-berserker RootId: barbarian_berserker_hd.md ParentLink: barbarian_hd.md#voies-primitives @@ -11,7 +10,7 @@ AltName: Wisdom (SRD p9) Source: (MDR p116) Attributes: {} --- ->  [Voies primitives](hd_barbarian_voies_primitives.md) +>  [Voies primitives](barbarian_hd.md#voies-primitives) --- diff --git a/Data/HD/hd_barbarian_howling.md b/Data/HD/hd_barbarian_howling.md index ab910669..666b835d 100644 --- a/Data/HD/hd_barbarian_howling.md +++ b/Data/HD/hd_barbarian_howling.md @@ -1,6 +1,5 @@ --- !SubClassItem -ParentClassId: hd_barbarian.md Id: barbarian_howling_hd.md#voie-du-hurlement RootId: barbarian_howling_hd.md ParentLink: barbarian_hd.md#voies-primitives @@ -10,7 +9,7 @@ NameLevel: 1 Source: (MDR p118) Attributes: {} --- ->  [Voies primitives](hd_barbarian_voies_primitives.md) +>  [Voies primitives](barbarian_hd.md#voies-primitives) --- diff --git a/Data/HD/hd_barbarian_spirits.md b/Data/HD/hd_barbarian_spirits.md index c69fbeaa..be25980e 100644 --- a/Data/HD/hd_barbarian_spirits.md +++ b/Data/HD/hd_barbarian_spirits.md @@ -1,6 +1,5 @@ --- !SubClassItem -ParentClassId: hd_barbarian.md Id: barbarian_spirits_hd.md#voie-des-esprits RootId: barbarian_spirits_hd.md ParentLink: barbarian_hd.md#voies-primitives @@ -10,7 +9,7 @@ NameLevel: 1 Source: (MDR p117) Attributes: {} --- ->  [Voies primitives](hd_barbarian_voies_primitives.md) +>  [Voies primitives](barbarian_hd.md#voies-primitives) --- diff --git a/Data/HD/hd_barbarian_steel.md b/Data/HD/hd_barbarian_steel.md index e44ea704..254bb122 100644 --- a/Data/HD/hd_barbarian_steel.md +++ b/Data/HD/hd_barbarian_steel.md @@ -1,6 +1,5 @@ --- !SubClassItem -ParentClassId: hd_barbarian.md Id: barbarian_steel_hd.md#voie-de-lacier RootId: barbarian_steel_hd.md ParentLink: barbarian_hd.md#voies-primitives @@ -10,7 +9,7 @@ NameLevel: 1 Source: (MDR p117) Attributes: {} --- ->  [Voies primitives](hd_barbarian_voies_primitives.md) +>  [Voies primitives](barbarian_hd.md#voies-primitives) --- diff --git a/Data/HD/hd_bard.md b/Data/HD/hd_bard.md index 312f3bef..c0372ed5 100644 --- a/Data/HD/hd_bard.md +++ b/Data/HD/hd_bard.md @@ -1,13 +1,13 @@ --- !ClassItem -Name: Barde -AltName: Bard (SRD p11) -Source: (MDR p121) Id: bard_hd.md#barde RootId: bard_hd.md ParentLink: classes_hd.md +Name: Barde ParentName: Classes NameLevel: 1 +AltName: Bard (SRD p11) +Source: (MDR p121) Attributes: {} --- >  [Classes](hd_classes.md) diff --git a/Data/HD/hd_cleric.md b/Data/HD/hd_cleric.md index aa3a0add..af9fec2d 100644 --- a/Data/HD/hd_cleric.md +++ b/Data/HD/hd_cleric.md @@ -1,13 +1,13 @@ --- !ClassItem -Name: Clerc -AltName: Cleric (SRD p15) -Source: (MDR p129) Id: cleric_hd.md#clerc RootId: cleric_hd.md ParentLink: classes_hd.md +Name: Clerc ParentName: Classes NameLevel: 1 +AltName: Cleric (SRD p15) +Source: (MDR p129) Attributes: {} --- >  [Classes](hd_classes.md) diff --git a/Data/HD/hd_druid.md b/Data/HD/hd_druid.md index cdb86163..9a600f08 100644 --- a/Data/HD/hd_druid.md +++ b/Data/HD/hd_druid.md @@ -1,13 +1,13 @@ --- !ClassItem -Name: Druide -AltName: Druid (SRD p17) -Source: (MDR p142) Id: druid_hd.md#druide RootId: druid_hd.md ParentLink: classes_hd.md +Name: Druide ParentName: Classes NameLevel: 1 +AltName: Druid (SRD p17) +Source: (MDR p142) Attributes: {} --- >  [Classes](hd_classes.md) diff --git a/Data/HD/hd_fighter.md b/Data/HD/hd_fighter.md index 779f9cb8..9445d65c 100644 --- a/Data/HD/hd_fighter.md +++ b/Data/HD/hd_fighter.md @@ -1,13 +1,13 @@ --- !ClassItem -Name: Guerrier -AltName: Fighter (SRD p24) -Source: (MDR p160) Id: fighter_hd.md#guerrier RootId: fighter_hd.md ParentLink: classes_hd.md +Name: Guerrier ParentName: Classes NameLevel: 1 +AltName: Fighter (SRD p24) +Source: (MDR p160) Attributes: {} --- >  [Classes](hd_classes.md) diff --git a/Data/HD/hd_monk.md b/Data/HD/hd_monk.md index 3a007755..2187572e 100644 --- a/Data/HD/hd_monk.md +++ b/Data/HD/hd_monk.md @@ -1,13 +1,13 @@ --- !ClassItem -Name: Moine -AltName: Monk (SRD p26) -Source: (MDR p176) Id: monk_hd.md#moine RootId: monk_hd.md ParentLink: classes_hd.md +Name: Moine ParentName: Classes NameLevel: 1 +AltName: Monk (SRD p26) +Source: (MDR p176) Attributes: {} --- >  [Classes](hd_classes.md) diff --git a/Data/HD/hd_paladin.md b/Data/HD/hd_paladin.md index 03a9019c..6163e410 100644 --- a/Data/HD/hd_paladin.md +++ b/Data/HD/hd_paladin.md @@ -1,13 +1,13 @@ --- !ClassItem -Name: Paladin -AltName: Paladin (SRD p30) -Source: (MDR p183) Id: paladin_hd.md#paladin RootId: paladin_hd.md ParentLink: classes_hd.md +Name: Paladin ParentName: Classes NameLevel: 1 +AltName: Paladin (SRD p30) +Source: (MDR p183) Attributes: {} --- >  [Classes](hd_classes.md) diff --git a/Data/HD/hd_ranger.md b/Data/HD/hd_ranger.md index 655bd5d6..f36b165e 100644 --- a/Data/HD/hd_ranger.md +++ b/Data/HD/hd_ranger.md @@ -1,13 +1,13 @@ --- !ClassItem -Name: Rôdeur -AltName: Ranger (SRD p35) -Source: (MDR p194) Id: ranger_hd.md#rôdeur RootId: ranger_hd.md ParentLink: classes_hd.md +Name: Rôdeur ParentName: Classes NameLevel: 1 +AltName: Ranger (SRD p35) +Source: (MDR p194) Attributes: {} --- >  [Classes](hd_classes.md) diff --git a/Data/HD/hd_rogue.md b/Data/HD/hd_rogue.md index 69b1e96c..846fbe9d 100644 --- a/Data/HD/hd_rogue.md +++ b/Data/HD/hd_rogue.md @@ -1,13 +1,13 @@ --- !ClassItem -Name: Roublard -AltName: Rogue (SRD p39) -Source: (MDR p202) Id: rogue_hd.md#roublard RootId: rogue_hd.md ParentLink: classes_hd.md +Name: Roublard ParentName: Classes NameLevel: 1 +AltName: Rogue (SRD p39) +Source: (MDR p202) Attributes: {} --- >  [Classes](hd_classes.md) diff --git a/Data/HD/hd_sorcerer.md b/Data/HD/hd_sorcerer.md index ef31b765..3f4e8ad5 100644 --- a/Data/HD/hd_sorcerer.md +++ b/Data/HD/hd_sorcerer.md @@ -1,13 +1,13 @@ --- !ClassItem -Name: Ensorceleur -AltName: Sorcerer (SRD p41) -Source: (MDR p152) Id: sorcerer_hd.md#ensorceleur RootId: sorcerer_hd.md ParentLink: classes_hd.md +Name: Ensorceleur ParentName: Classes NameLevel: 1 +AltName: Sorcerer (SRD p41) +Source: (MDR p152) Attributes: {} --- >  [Classes](hd_classes.md) diff --git a/Data/HD/hd_warlock.md b/Data/HD/hd_warlock.md index 1915e7c3..2ac2e184 100644 --- a/Data/HD/hd_warlock.md +++ b/Data/HD/hd_warlock.md @@ -1,13 +1,13 @@ --- !ClassItem -Name: Sorcier -AltName: Warlock (SRD p46) -Source: (MDR p209) Id: warlock_hd.md#sorcier RootId: warlock_hd.md ParentLink: classes_hd.md +Name: Sorcier ParentName: Classes NameLevel: 1 +AltName: Warlock (SRD p46) +Source: (MDR p209) Attributes: {} --- >  [Classes](hd_classes.md) diff --git a/Data/HD/hd_wizard.md b/Data/HD/hd_wizard.md index 5e66a3b8..34baa35f 100644 --- a/Data/HD/hd_wizard.md +++ b/Data/HD/hd_wizard.md @@ -1,13 +1,13 @@ --- !ClassItem -Name: Magicien -AltName: Wizard (SRD p52) -Source: (MDR p166) Id: wizard_hd.md#magicien RootId: wizard_hd.md ParentLink: classes_hd.md +Name: Magicien ParentName: Classes NameLevel: 1 +AltName: Wizard (SRD p52) +Source: (MDR p166) Attributes: {} --- >  [Classes](hd_classes.md) diff --git a/Data/barbarian_hd.md b/Data/barbarian_hd.md index f9c66d37..476563e8 100644 --- a/Data/barbarian_hd.md +++ b/Data/barbarian_hd.md @@ -12,29 +12,29 @@ En tant que barbare, vous bénéficiez des aptitudes de classe suivantes. - + ## Points de vie -**Dés de vie :** 1d12 par niveau de barbare -**Points de vie au niveau 1 :** 12 + votre modificateur de [Constitution] -**Points de vie aux niveaux supérieurs :** 1d12 (ou 7) + votre modificateur de [Constitution] par niveau de barbare après le premier niveau +**Dés de vie :** 1d12 par niveau de barbare +**Points de vie au niveau 1 :** 12 + votre modificateur de [Constitution] +**Points de vie aux niveaux supérieurs :** 1d12 (ou 7) + votre modificateur de [Constitution] par niveau de barbare après le premier niveau - + - + ## Maîtrises -**Armures :** [armures légères], [armures intermédiaires], [boucliers] -**Armes :** [armes courantes], [armes de guerre] -**Outils :** aucun -**Jets de sauvegarde :** [Force], [Constitution] -**Compétences :** choisissez deux compétences parmi [Athlétisme], [Dressage], [Intimidation], [Nature], [Perception] et [Survie] +**Armures :** [armures légères], [armures intermédiaires], [boucliers] +**Armes :** [armes courantes], [armes de guerre] +**Outils :** aucun +**Jets de sauvegarde :** [Force], [Constitution] +**Compétences :** choisissez deux compétences parmi [Athlétisme], [Dressage], [Intimidation], [Nature], [Perception] et [Survie] - + - + ## Équipement @@ -44,9 +44,9 @@ Vous commencez avec l'équipement suivant, en plus de l'équipement accordé par * (a) deux [hachettes] ou (b) n'importe quelle [arme courante] * un [paquetage d'explorateur] et quatre [javelines] - + - + # Tableau d'évolution @@ -73,12 +73,9 @@ Vous commencez avec l'équipement suivant, en plus de l'équipement accordé par |19|+6|[Amélioration de caractéristiques]|6|+4| |20|+6|[Champion primitif]|Illimité|+4| + - - - - - + ## Rage @@ -94,25 +91,25 @@ Votre rage dure 1 minute (10 rounds). Cet état prend fin plus tôt si vous ête Une fois que vous êtes entré en état de rage le nombre de fois permis par votre niveau (voir le [tableau d'évolution du barbare], colonne rages), vous devez terminer un [repos long] avant de pouvoir entrer de nouveau en rage. - + - + ## Défense sans armure Tant que vous ne portez pas d'armure, votre [classe d'armure] est égale à 10 + votre modificateur de [Dextérité] + votre modificateur de [Constitution]. Vous pouvez utiliser un [bouclier] et bénéficier de cette aptitude. - + - + ## Témérité À partir du niveau 2, vous pouvez mettre de côté toute tentative de vous défendre pour attaquer avec l'énergie du désespoir. Lors de votre tour, quand vous faites votre première attaque, vous pouvez décider d'attaquer avec témérité. Vous bénéficiez d'un avantage sur toutes vos attaques de corps-à-corps basées sur la [Force] pendant ce tour, mais les attaques dirigées contre vous bénéficient aussi d'un [avantage] jusqu'à votre prochain tour. - + - + ## Sens du danger @@ -120,41 +117,41 @@ Quand vous atteignez le niveau 2, vous développez la capacité instinctive de r Vous bénéficiez d'un avantage sur vos [jets de sauvegarde] de [Dextérité] contre les dangers que vous pouvez voir, comme les pièges et les sorts. Pour bénéficier de cette aptitude, vous ne devez pas être [aveuglé], [assourdi] ni [neutralisé]. - + - + ## Voie primitive Au troisième niveau, vous choisissez une voie qui détermine la nature de votre rage. Vous pouvez choisir la [voie du berserker], la [voie des esprits], la [voie de l'acier] ou la [voie du hurlement]. Toutes sont détaillées à la fin de la section consacrée à cette classe. - + - + ## Amélioration de caractéristiques Quand vous atteignez les niveaux 4, 8, 12, 16 et 19, vous pouvez augmenter de 2 la valeur d'une caractéristique de votre choix ou augmenter de 1 la valeur de deux caractéristiques de votre choix. Cette aptitude ne vous permet pas de dépasser 20 dans une valeur de caractéristique. - + - + ## Attaque supplémentaire À partir du niveau 5, vous pouvez attaquer deux fois au lieu d'une quand vous choisissez l'action attaquer lors de votre tour. - + - + ## Déplacement rapide À partir du niveau 5, votre vitesse augmente de 3 mètres tant que vous ne portez pas d'[armure lourde]. - + - + ## Instinct sauvage @@ -162,9 +159,9 @@ Au niveau 7, votre instinct s'est affiné au point que vous bénéficiez d'un [a De plus, si vous êtes [surpris] au début d'un combat mais que vous n'êtes pas [neutralisé], vous avez la possibilité d'agir normalement pendant votre premier tour si vous le commencez en entrant dans un état de [rage]. - + - + ## Critique brutal @@ -172,9 +169,9 @@ De plus, si vous êtes [surpris] au début d'un combat mais que vous n'êtes pas À partir du niveau 13, vous lancez deux dés additionnels, et trois dés à partir du niveau 17. - + - + ## Rage implacable @@ -182,32 +179,32 @@ De plus, si vous êtes [surpris] au début d'un combat mais que vous n'êtes pas Chaque fois que vous utilisez cette aptitude, le DD augmente de 5. Prendre un repos, court ou long, permet de rétablir le DD initial à 10. - + - + ## Rage ininterrompue À partir du niveau 15, vous êtes habité d'une telle rage qu'elle ne prend fin prématurément que si vous êtes [inconscient] ou que vous choisissez de sortir de cet état. - + - + ## Puissance indomptable À partir du niveau 18, si le total que vous obtenez à un test de [Force] est moins élevé que votre valeur de [Force], vous pouvez utiliser votre valeur de [Force] à la place du résultat du test. - + - + ## Champion primitif Au niveau 20, vous êtes devenu une véritable force de la nature. Vos valeurs de [Force] et de [Constitution] augmentent de 4. Le maximum que vous pouvez atteindre pour ces caractéristiques est désormais de 24. - + diff --git a/Data/library.db b/Data/library.db index 2ba1e6b27cd51fdc0f1a3fb7bb016e00265b54fc..863aefd80dfe7590c4ca4a7136d53157bc7cf756 100644 GIT binary patch delta 137607 zcma&OcU%=m_dkATXLoPky%#RGfKtScAc%;7QZy=dur~x$R8$meG!|Go*ie*X7osV4 zjL}InQH*Jt#9(@25;4sf8zwQuwC|aVd7kI9Yls755A?6$Qp|+r$DDXRDM?OD&H$#DW5AJDNV{H|Pd`>lJd+pL?d>#Subb7TZmo(#+)@>bSWr_HgFlW)}l6^6L6ste+V zs!oXOsyZO9tqMh~stQ4@tO`V|s0u(VuW}=nRrw*7R{0>7RH=x?RaV5JDifksWkf8f z(j%^^k`Px{35Y8TDhu%EiON-o%PW^7E~{LExU_Ns;*!d_h>I&{Aug)qd@QWYM$E6A zinyS165{;I@rZeqV-V+6jzpYWIUI3LC1+)J*19iOQ;sN6f73jX1Tk7h*;wXJtxd1mfh%u85N=IUf@%ITI5qgAvD9awf)Awm}?I z$@v&v$@v&n>5G_NX-7<}Ry=_?sA3u7 zzzWVpY{g>4UKRO>F%@};JuA4DL|4p4jH<{%jI5Z3*u5eHF`|OA(yfBC5>~-k=~}^A z=~BV@=v={>=u|NXv17$!x&ocpp@MVJz9I=Rw1TTiNCoF0xPog&P(>7CU`3gj-{BcCFd?_L==X?m|oDWjI5K&i-tk8eTQCH~S!WQATYcOo{IBRBNRaeTYeo~G) zK|e0nA%0Ybtk4h3Rw8~-wjA;OGSmxnC_qv!NHt&|v5*WvC#uv5a$Yt_)3u zo-Ip8e7USI;!9--h^NaqA1{{SFhXA_>xsz9&|c`NGS14$vhIk_m!a*@6J^~HpDXKv zc)YA5VnZ3{=~!7v0sb55KXUfoc=+kAKr>DyF zi2KV##C>I)rzguePxYmor@B(KAiB4d^R%aw^R&B^^R%m!^R%;+^R&H`>&LdzT-1LG zr86;6TRI(aOKCP@O(|EFO{G&2t4q0>Y%HCCxS@0m;`&mqE9*)*b8Ab}5UWZ#bCso> zxr$QGTzP3f#IjP(S!pTftfZ8)Ra}ZTMT<(K5Vg{9)PGu7%4sPm<+Q9R<+Q9WMFXR& zO1ToPENzSUL@8%wMJZRG<)wDS$4j~TEGtzImzHvFmXvZ$T2#t)XkjTu%rD{WE+|23 zqVr2QA9*EcM|55ZS`eLE!kH+TQ^KjpEy2Nr&MujOIIDy!%gmCoh&d%(${8hGKc6&54q|+9E@E8qEX3Z$yo+OtdFS>j=A9c;T#$i3J&U1|k`xT?~LUJ)$hmcg9jF?!Aqo>ff z7&#F76k~r23B_m~LVPjuA;cBOAoeasR)pAMWJTyz9F9FC#1tbfLeJt(h|$IE5qlIP zD?(H;vLZwlqXr1wi_toSh+==l@M2_0=vM5D7*>ot30;d(8-y;!$d=H#7}*j!6-$U6 zi%}1R4#miv(7u=;h87`zLc1c=2_d9t1?s;LT!cfc5LARlA_NxYBepF<0);k3NT3i< zgw`SW7iA-QijXbAT{H#JS%jPkenrTc;3z`t5PXZqA^H@djR^K4v=PBpgw`RbMW{W3 zQiR$gSc_151WOU;&s2oW6$r*6G!?;6l!B-)NWcVh5wb}BC_)t@4~tO6$nQnSCHbugxg@_9A&cafA`jw& zBD5(|@O+UIf1WFHARaG5GD$-bl1YvgSrLyGA*JLy@=Eq;%MhQ`79-Yc$S$eV(D2A!4LK%z3N$o7vRgwf zCA+j)h�$#2p%%BH6AX?PQyVx=KJpl1Z&L8gZ+J#F8x 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