diff options
author | David Gay <eapoems@riseup.net> | 2023-10-14 21:08:54 -0400 |
---|---|---|
committer | David Gay <eapoems@riseup.net> | 2023-10-14 21:08:54 -0400 |
commit | 761877d3160cebd312f24971c0f5119b80cfc783 (patch) | |
tree | 098a2c412e6b049f9438a1c9dd9f371669ed4c19 | |
parent | d3997133f809c2e624f2d2d0cbb301d55df5f6cf (diff) |
Refactor NPC ability score modifiers to use a HashMap
-rw-r--r-- | src/data/rules/classes.yaml | 42 | ||||
-rw-r--r-- | src/rules/classes.rs | 8 |
2 files changed, 15 insertions, 35 deletions
diff --git a/src/data/rules/classes.yaml b/src/data/rules/classes.yaml index 88bf6ef..58eb86c 100644 --- a/src/data/rules/classes.yaml +++ b/src/data/rules/classes.yaml @@ -3,8 +3,7 @@ cleric: prime_requisites: - Wisdom npc_ability_score_modifiers: - - ability_score: Wisdom - modifier: +2 + Wisdom: +2 druid: name: "Druid" @@ -17,10 +16,8 @@ fighter: prime_requisites: - Strength npc_ability_score_modifiers: - - ability_score: Strength - modifier: +2 - - ability_score: Constitution - modifier: +1 + Strength: +2 + Constitution: +1 paladin: name: "Paladin" @@ -28,10 +25,8 @@ paladin: - Strength - Wisdom npc_ability_score_modifiers: - - ability_score: Strength - modifier: +2 - - ability_score: Constitution - modifier: +1 + Strength: +2 + Constitution: +1 ranger: name: "Ranger" @@ -40,20 +35,16 @@ ranger: - Intelligence - Wisdom npc_ability_score_modifiers: - - ability_score: Strength - modifier: +2 - - ability_score: Constitution - modifier: +1 + Strength: +2 + Constitution: +1 magic_user: name: "Magic-user" prime_requisites: - Intelligence npc_ability_score_modifiers: - - ability_score: Intelligence - modifier: +2 - - ability_score: Dexterity - modifier: +1 + Intelligence: +2 + Dexterity: +1 illusionist: name: "Illusionist" @@ -66,10 +57,8 @@ thief: prime_requisites: - Dexterity npc_ability_score_modifiers: - - ability_score: Dexterity - modifier: +2 - - ability_score: Intelligence - modifier: +1 + Dexterity: +2 + Intelligence: +1 assassin: name: "Assassin" @@ -77,12 +66,9 @@ assassin: - Strength - Dexterity npc_ability_score_modifiers: - - ability_score: Strength - modifier: +1 - - ability_score: Dexterity - modifier: +2 - - ability_score: Intelligence - modifier: +1 + Strength: +1 + Dexterity: +2 + Intelligence: +1 monk: name: "Monk" diff --git a/src/rules/classes.rs b/src/rules/classes.rs index 9c3a8d1..a034922 100644 --- a/src/rules/classes.rs +++ b/src/rules/classes.rs @@ -11,13 +11,7 @@ pub struct Class { pub name: String, pub prime_requisites: Vec<AbilityScore>, #[serde(default)] - pub npc_ability_score_modifiers: Vec<NpcAbilityScoreModifier>, -} - -#[derive(Deserialize)] -pub struct NpcAbilityScoreModifier { - pub ability_score: AbilityScore, - pub modifier: i32, + pub npc_ability_score_modifiers: HashMap<AbilityScore, i32>, } lazy_static! { |