summaryrefslogtreecommitdiff
path: root/src/rules
diff options
context:
space:
mode:
authorDavid Gay <eapoems@riseup.net>2023-10-16 16:51:39 -0400
committerDavid Gay <eapoems@riseup.net>2023-10-16 16:51:39 -0400
commita86e904527470b18f94ed8771635e0517532b2d2 (patch)
tree90571d7eed5dcf32cb78bbe40fd0db276937029f /src/rules
parentf2c4ff69213c3e98bc0e679b4acce2a0d0019876 (diff)
Add NPC personality and disposition to persona generation
Diffstat (limited to 'src/rules')
-rw-r--r--src/rules/npcs.rs14
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.