diff options
author | David Gay <eapoems@riseup.net> | 2023-10-16 16:30:23 -0400 |
---|---|---|
committer | David Gay <eapoems@riseup.net> | 2023-10-16 16:30:23 -0400 |
commit | f2c4ff69213c3e98bc0e679b4acce2a0d0019876 (patch) | |
tree | 584c12a4141950d55413ce3895c097d4cc141781 /src/rules | |
parent | 84837a689e71d0e695fa016f1e667bbeb16b515b (diff) |
NPC personalities
Diffstat (limited to 'src/rules')
-rw-r--r-- | src/rules/npcs.rs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/rules/npcs.rs b/src/rules/npcs.rs index dc65dbb..696ba0a 100644 --- a/src/rules/npcs.rs +++ b/src/rules/npcs.rs @@ -1,4 +1,5 @@ use crate::dice::roll_formula; +use crate::random_tables::RANDOM_TABLES; use crate::rules::ability_scores::{AbilityScore, AbilityScoreCollection}; use crate::rules::classes::Class; use crate::rules::races::Race; @@ -11,6 +12,7 @@ pub struct Npc { pub race: Option<&'static Race>, pub class: Option<&'static Class>, pub ability_scores: Option<AbilityScoreCollection>, + pub personality: Option<String>, } impl Npc { @@ -19,12 +21,14 @@ impl Npc { race: Option<&'static Race>, class: Option<&'static Class>, ability_scores: Option<AbilityScoreCollection>, + personality: Option<String>, ) -> Self { Npc { alignment, race, class, ability_scores, + personality, } } @@ -90,11 +94,23 @@ impl Npc { self.ability_scores = Some(score_collection); + // TODO: Limit human starting ability scores to 18. // TODO: Verify legality of class based on alignment. // TODO: Verify legality of class based on race. // TODO: Verify legality of class based on ability scores. } + pub fn randomize_personality(&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(", ")); + } + // TODO: Probably break this out later like this. // fn increase_prime_requisites(&mut self, roll_result: &mut RollResult) { // let class_ref = self.class.unwrap(); |