summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDavid Gay <eapoems@riseup.net>2023-10-14 21:08:54 -0400
committerDavid Gay <eapoems@riseup.net>2023-10-14 21:08:54 -0400
commit761877d3160cebd312f24971c0f5119b80cfc783 (patch)
tree098a2c412e6b049f9438a1c9dd9f371669ed4c19 /src
parentd3997133f809c2e624f2d2d0cbb301d55df5f6cf (diff)
Refactor NPC ability score modifiers to use a HashMap
Diffstat (limited to 'src')
-rw-r--r--src/data/rules/classes.yaml42
-rw-r--r--src/rules/classes.rs8
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! {