summaryrefslogtreecommitdiff
path: root/app/lib/rules/tables
diff options
context:
space:
mode:
Diffstat (limited to 'app/lib/rules/tables')
-rw-r--r--app/lib/rules/tables/data/henchmen.yaml93
-rw-r--r--app/lib/rules/tables/data/hl_treasure.yaml54
-rw-r--r--app/lib/rules/tables/data/magic_items.yaml60
-rw-r--r--app/lib/rules/tables/data/npc.yaml271
-rw-r--r--app/lib/rules/tables/data/ua_magic_items.yaml144
5 files changed, 622 insertions, 0 deletions
diff --git a/app/lib/rules/tables/data/henchmen.yaml b/app/lib/rules/tables/data/henchmen.yaml
new file mode 100644
index 0000000..e9aa3ef
--- /dev/null
+++ b/app/lib/rules/tables/data/henchmen.yaml
@@ -0,0 +1,93 @@
+henchman_race:
+ formula: d100
+ rows:
+ - roll: 1-80
+ steps:
+ - text: "Human"
+ - roll: 81-100
+ steps:
+ - table: henchman_nonhuman_race
+henchman_nonhuman_race:
+ formula: d100
+ rows:
+ - roll: 1-25
+ steps:
+ - text: "Dwarf"
+ - roll: 26-50
+ steps:
+ - text: "Elf"
+ - roll: 51-60
+ steps:
+ - text: "Gnome"
+ - roll: 61-85
+ steps:
+ - text: "Half-elf"
+ - roll: 86-95
+ steps:
+ - text: "Halfling"
+ - roll: 96-100
+ steps:
+ - text: "Half-orc"
+
+henchman_class:
+ formula: d100
+ rows:
+ - roll: 1-20
+ steps:
+ - table: henchman_cleric_class
+ - roll: 21-64
+ steps:
+ - table: henchman_fighter_class
+ - roll: 65-84
+ steps:
+ - table: henchman_magic-user_class
+ - roll: 85-99
+ steps:
+ - table: henchman_thief_class
+ - roll: 100
+ steps:
+ - text: "Monk"
+
+
+henchman_cleric_class:
+ formula: d6
+ rows:
+ - roll: 1
+ steps:
+ - class: druid
+ - roll: 2-6
+ steps:
+ - class: cleric
+
+henchman_fighter_class:
+ formula: d10
+ rows:
+ - roll: 1
+ steps:
+ - class: ranger
+ - roll: 2
+ steps:
+ - class: paladin
+ - roll: 3-10
+ steps:
+ - class: fighter
+
+henchman_magic-user_class:
+ formula: d6
+ rows:
+ - roll: 1
+ steps:
+ - class: illusionist
+ - roll: 2-6
+ steps:
+ - class: magic-user
+
+henchman_thief_class:
+ formula: d6
+ rows:
+ - roll: 1
+ steps:
+ - class: assassin
+ - roll: 2-6
+ steps:
+ - class: thief
diff --git a/app/lib/rules/tables/data/hl_treasure.yaml b/app/lib/rules/tables/data/hl_treasure.yaml
new file mode 100644
index 0000000..2900f3e
--- /dev/null
+++ b/app/lib/rules/tables/data/hl_treasure.yaml
@@ -0,0 +1,54 @@
+hl_longsword_type:
+ formula: d100
+ rows:
+ - roll: 1-90
+ steps:
+ - text: "Longsword"
+ - roll: 91-100
+ steps:
+ - text: "Rapier"
+
+hl_short_sword_type:
+ formula: d100
+ rows:
+ - roll: 1-75
+ steps:
+ - text: "Short sword"
+ - roll: 76-100
+ steps:
+ - text: "Epee"
+
+hl_scimitar_type:
+ formula: d100
+ rows:
+ - roll: 1-60
+ steps:
+ - text: "Scimitar"
+ - roll: 76-100
+ steps:
+ - text: "Katana"
+
+hl_non_magic:
+ formula: d100
+ rows:
+ - roll: 1-25
+ steps:
+ - text: "Copper pieces (or combined horde if DL 6+)"
+ - roll: 26-50
+ steps:
+ - text: "Silver pieces"
+ - roll: 51-65
+ steps:
+ - text: "Electrum pieces"
+ - roll: 66-80
+ steps:
+ - text: "Gold pieces"
+ - roll: 81-90
+ steps:
+ - text: "Platinum pieces"
+ - roll: 91-96
+ steps:
+ - text: "Gems"
+ - roll: 97-100
+ steps:
+ - text: "Jewelry"
diff --git a/app/lib/rules/tables/data/magic_items.yaml b/app/lib/rules/tables/data/magic_items.yaml
new file mode 100644
index 0000000..7ed6ddc
--- /dev/null
+++ b/app/lib/rules/tables/data/magic_items.yaml
@@ -0,0 +1,60 @@
+magic_maps:
+ formula: d100
+ rows:
+ - roll: 1-5
+ steps:
+ - text: "Map (false)"
+ - roll: 6-70
+ steps:
+ - text: "Map (monetary treasure)"
+ - roll: 71-90
+ steps:
+ - text: "Map (magic treasure)"
+ - roll: 91-100
+ steps:
+ - text: "Map (combined horde)"
+
+
+sword_intelligence:
+ formula: d100
+ rows:
+ - roll: 1-75
+ steps:
+ - text: ""
+ - roll: 76-83
+ steps:
+ - text: "INT 12"
+ - roll: 84-89
+ steps:
+ - text: "INT 13"
+ - roll: 90-94
+ steps:
+ - text: "INT 14"
+ - roll: 95-97
+ steps:
+ - text: "INT 15"
+ - roll: 98-99
+ steps:
+ - text: "INT 16"
+ - roll: 100
+ steps:
+ - text: "INT 17"
+
+sword_type:
+ formula: d100
+ rows:
+ - roll: 1-70
+ steps:
+ - table: hl_longsword_type
+ - roll: 71-90
+ steps:
+ - text: "Broadsword"
+ - roll: 91-95
+ steps:
+ - text: hl_short_sword_type
+ - roll: 96-99
+ steps:
+ - text: "Bastard sword"
+ - roll: 100
+ steps:
+ - text: "Two-handed sword"
diff --git a/app/lib/rules/tables/data/npc.yaml b/app/lib/rules/tables/data/npc.yaml
new file mode 100644
index 0000000..5c8b7fe
--- /dev/null
+++ b/app/lib/rules/tables/data/npc.yaml
@@ -0,0 +1,271 @@
+npc_alignment:
+ formula: d10
+ rows:
+ - roll: 1
+ steps:
+ - text: "Lawful Good"
+ - roll: 2
+ steps:
+ - text: "Lawful Neutral"
+ - roll: 3
+ steps:
+ - text: "Lawful Evil"
+ - roll: 4
+ steps:
+ - text: "Neutral Evil"
+ - roll: 5
+ steps:
+ - text: "Chaotic Evil"
+ - roll: 6
+ steps:
+ - text: "Chaotic Neutral"
+ - roll: 7
+ steps:
+ - text: "Chaotic Good"
+ - roll: 8
+ steps:
+ - text: "Neutral Good"
+ - roll: 9-10
+ steps:
+ - text: "Neutral"
+
+npc_general_appearance:
+ formula: d10
+ rows:
+ - roll: 1
+ steps:
+ - text: "dirty"
+ - roll: 2
+ steps:
+ - text: "clean"
+ - roll: 3
+ steps:
+ - text: "unkept"
+ - roll: 4
+ steps:
+ - text: "immaculate"
+ - roll: 5
+ steps:
+ - text: "rough"
+ - roll: 6
+ steps:
+ - text: "ragged"
+ - roll: 7
+ steps:
+ - text: "dandyish"
+ - roll: 8
+ steps:
+ - text: "foppish"
+ - roll: 9
+ steps:
+ - text: "non-descript"
+ - roll: 10
+ steps:
+ - text: "imposing"
+
+npc_general_tendencies:
+ formula: d24
+ rows:
+ - roll: 1
+ steps:
+ - text: "optimist"
+ - roll: 2
+ steps:
+ - text: "pessimist"
+ - roll: 3
+ steps:
+ - text: "hedonist"
+ - roll: 4
+ steps:
+ - text: "altruist"
+ - roll: 5
+ steps:
+ - text: "helpful/kindly"
+ - roll: 6
+ steps:
+ - text: "careless"
+ - roll: 7
+ steps:
+ - text: "capricious/mischievous"
+ - roll: 8
+ steps:
+ - text: "sober"
+ - roll: 9
+ steps:
+ - text: "curious/inquisitive"
+ - roll: 10
+ steps:
+ - text: "moody"
+ - roll: 11
+ steps:
+ - text: "trusting"
+ - roll: 12
+ steps:
+ - text: "suspicious/cautious"
+ - roll: 13
+ steps:
+ - text: "precise/exacting"
+ - roll: 14
+ steps:
+ - text: "perceptive"
+ - roll: 15
+ steps:
+ - text: "opinionated/contrary"
+ - roll: 16
+ steps:
+ - text: "violent/warlike"
+ - roll: 17
+ steps:
+ - text: "studious"
+ - roll: 18
+ steps:
+ - text: "foul/barbaric"
+ - roll: 19
+ steps:
+ - text: "cruel/callous"
+ - roll: 20
+ steps:
+ - text: "practical joker/prankster"
+ - roll: 21
+ steps:
+ - text: "servile/obsequious"
+ - roll: 22
+ steps:
+ - text: "fanatical/obsessive"
+ - roll: 23
+ steps:
+ - text: "malevolent"
+ - roll: 24
+ steps:
+ - text: "loquacious"
+
+npc_personality:
+ formula: d8
+ rows:
+ - roll: 1-5
+ steps:
+ - table: npc_average_personality
+ - roll: 6-7
+ steps:
+ - table: npc_extroverted_personality
+ - roll: 8
+ steps:
+ - table: npc_introverted_personality
+
+npc_average_personality:
+ formula: d8
+ rows:
+ - roll: 1
+ steps:
+ - text: "modest"
+ - roll: 2
+ steps:
+ - text: "egoist/arrogant"
+ - roll: 3
+ steps:
+ - text: "friendly"
+ - roll: 4
+ steps:
+ - text: "aloof"
+ - roll: 5
+ steps:
+ - text: "hostile"
+ - roll: 6
+ steps:
+ - text: "well-spoken"
+ - roll: 7
+ steps:
+ - text: "diplomatic"
+ - roll: 8
+ steps:
+ - text: "abrasive"
+
+npc_extroverted_personality:
+ formula: d8
+ rows:
+ - roll: 1
+ steps:
+ - text: "forceful"
+ - roll: 2
+ steps:
+ - text: "overbearing"
+ - roll: 3
+ steps:
+ - text: "friendly"
+ - roll: 4
+ steps:
+ - text: "blustering"
+ - roll: 5
+ steps:
+ - text: "antagonistic"
+ - roll: 6
+ steps:
+ - text: "rude"
+ - roll: 7
+ steps:
+ - text: "rash"
+ - roll: 8
+ steps:
+ - text: "diplomatic"
+
+npc_introverted_personality:
+ formula: d8
+ rows:
+ - roll: 1
+ steps:
+ - text: "retiring"
+ - roll: 2
+ steps:
+ - text: "taciturn"
+ - roll: 3
+ steps:
+ - text: "friendly"
+ - roll: 4
+ steps:
+ - text: "aloof"
+ - roll: 5
+ steps:
+ - text: "hostile"
+ - roll: 6
+ steps:
+ - text: "rude"
+ - roll: 7
+ steps:
+ - text: "courteous"
+ - roll: 8
+ steps:
+ - text: "solitary/secretive"
+
+npc_disposition:
+ formula: d10
+ rows:
+ - roll: 1
+ steps:
+ - text: "cheerful"
+ - roll: 2
+ steps:
+ - text: "morose"
+ - roll: 3
+ steps:
+ - text: "compassionate/sensitive"
+ - roll: 4
+ steps:
+ - text: "unfeeling/insensitive"
+ - roll: 5
+ steps:
+ - text: "humble"
+ - roll: 6
+ steps:
+ - text: "proud/haughty"
+ - roll: 7
+ steps:
+ - text: "even tempered"
+ - roll: 8
+ steps:
+ - text: "hot tempered"
+ - roll: 9
+ steps:
+ - text: "easy going"
+ - roll: 10
+ steps:
+ - text: "harsh"
diff --git a/app/lib/rules/tables/data/ua_magic_items.yaml b/app/lib/rules/tables/data/ua_magic_items.yaml
new file mode 100644
index 0000000..3fa8e5b
--- /dev/null
+++ b/app/lib/rules/tables/data/ua_magic_items.yaml
@@ -0,0 +1,144 @@
+ua_magic:
+ formula: d100
+ rows:
+ - roll: 1-10
+ steps:
+ - table: magic_maps
+ - roll: 11-100
+ steps:
+ - table: ua_magic_items
+
+ua_magic_items:
+ formula: d100
+ rows:
+ - roll: 1-20
+ steps:
+ - text: "Potion"
+ - table: ua_potions
+ - roll: 21-35
+ steps:
+ - text: "Scroll"
+ - table: ua_scrolls
+ - roll: 36-40
+ steps:
+ - text: "Ring"
+ - table: ua_rings
+ - roll: 41-45
+ steps:
+ - text: "Rod/Staff/Wand"
+ - table: ua_rod_staff_wand
+ - roll: 46-60
+ steps:
+ - text: "Misc. Magic"
+ - table: ua_misc_magic
+ - roll: 61-75
+ steps:
+ - text: "Armor/Shield"
+ - table: ua_armor_shields
+ - roll: 76-86
+ steps:
+ - text: "Sword"
+ - table: ua_swords
+ - roll: 87-100
+ steps:
+ - text: "Misc. Weapon"
+ - table: ua_misc_weapons
+
+ua_potions:
+ formula: d100
+ rows:
+ - roll: 1-65
+ steps:
+ - text: "Table 1"
+ - roll: 66-100
+ steps:
+ - text: "Table 2"
+
+ua_scrolls:
+ formula: d100
+ rows:
+ - roll: 1-85
+ steps:
+ - text: "Table 1"
+ - roll: 86-100
+ steps:
+ - text: "Table 2"
+
+ua_rings:
+ formula: d100
+ rows:
+ - roll: 1-67
+ steps:
+ - text: "Table 1"
+ - roll: 68-100
+ steps:
+ - text: "Table 2"
+
+ua_rod_staff_wand:
+ formula: d100
+ rows:
+ - roll: 1-40
+ steps:
+ - text: "Table 1"
+ - roll: 41-100
+ steps:
+ - text: "Table 2"
+
+ua_misc_magic:
+ formula: d100
+ rows:
+ - roll: 1-14
+ steps:
+ - text: "Table 1"
+ - roll: 15-28
+ steps:
+ - text: "Table 2"
+ - roll: 29-42
+ steps:
+ - text: "Table 3"
+ - roll: 43-56
+ steps:
+ - text: "Table 4"
+ - roll: 57-70
+ steps:
+ - text: "Table 5"
+ - roll: 71-85
+ steps:
+ - text: "Table 6"
+ - roll: 86-100
+ steps:
+ - text: "Table 7"
+
+ua_armor_shields:
+ formula: d100
+ rows:
+ - roll: 1-50
+ steps:
+ - text: "Table 1"
+ - roll: 51-100
+ steps:
+ - text: "Table 2"
+
+ua_swords:
+ formula: d100
+ rows:
+ - roll: 1-95
+ steps:
+ - text: "Table 1"
+ - table: sword_type
+ - table: sword_intelligence
+ - roll: 96-100
+ steps:
+ - text: "Table 2"
+ - table: sword_type
+ - table: sword_intelligence
+
+ua_misc_weapons:
+ formula: d100
+ rows:
+ - roll: 1-50
+ steps:
+ - text: "Table 1"
+ - roll: 51-100
+ steps:
+ - text: "Table 2"