diff options
author | David Gay <eapoems@riseup.net> | 2023-10-16 16:51:39 -0400 |
---|---|---|
committer | David Gay <eapoems@riseup.net> | 2023-10-16 16:51:39 -0400 |
commit | a86e904527470b18f94ed8771635e0517532b2d2 (patch) | |
tree | 90571d7eed5dcf32cb78bbe40fd0db276937029f /src/rules | |
parent | f2c4ff69213c3e98bc0e679b4acce2a0d0019876 (diff) |
Add NPC personality and disposition to persona generation
Diffstat (limited to 'src/rules')
-rw-r--r-- | src/rules/npcs.rs | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/rules/npcs.rs b/src/rules/npcs.rs index 696ba0a..7c84d11 100644 --- a/src/rules/npcs.rs +++ b/src/rules/npcs.rs @@ -12,7 +12,7 @@ pub struct Npc { pub race: Option<&'static Race>, pub class: Option<&'static Class>, pub ability_scores: Option<AbilityScoreCollection>, - pub personality: Option<String>, + pub persona: Option<String>, } impl Npc { @@ -21,14 +21,14 @@ impl Npc { race: Option<&'static Race>, class: Option<&'static Class>, ability_scores: Option<AbilityScoreCollection>, - personality: Option<String>, + persona: Option<String>, ) -> Self { Npc { alignment, race, class, ability_scores, - personality, + persona, } } @@ -100,15 +100,17 @@ impl Npc { // TODO: Verify legality of class based on ability scores. } - pub fn randomize_personality(&mut self) { + pub fn randomize_persona(&mut self) { let appearance = RANDOM_TABLES .roll_table("npc_general_appearance") .to_string(); let tendencies = RANDOM_TABLES .roll_table("npc_general_tendencies") .to_string(); - let components = vec![appearance, tendencies]; - self.personality = Some(components.join(", ")); + let personality = RANDOM_TABLES.roll_table("npc_personality").to_string(); + let disposition = RANDOM_TABLES.roll_table("npc_disposition").to_string(); + let components = vec![appearance, tendencies, personality, disposition]; + self.persona = Some(components.join(", ")); } // TODO: Probably break this out later like this. |