diff options
author | David Gay <eapoems@riseup.net> | 2024-04-13 21:25:43 -0400 |
---|---|---|
committer | David Gay <eapoems@riseup.net> | 2024-04-13 21:26:31 -0400 |
commit | 198548a8d88406ffda7856d7cff89e986f383d91 (patch) | |
tree | bce3cfa7182200f614f8afcbd7f6af4d0e2dfbf7 /app | |
parent | c900787aa7838d2c708c6c0e92f9da9f7c9121d2 (diff) |
data files
Diffstat (limited to 'app')
-rw-r--r-- | app/lib/rules/data/classes.yaml | 178 | ||||
-rw-r--r-- | app/lib/rules/data/magic_items.yaml | 52 | ||||
-rw-r--r-- | app/lib/rules/data/races.yaml | 231 | ||||
-rw-r--r-- | app/lib/tables/data/henchmen.yaml | 93 | ||||
-rw-r--r-- | app/lib/tables/data/hl_treasure.yaml | 54 | ||||
-rw-r--r-- | app/lib/tables/data/magic_items.yaml | 60 | ||||
-rw-r--r-- | app/lib/tables/data/npc.yaml | 271 | ||||
-rw-r--r-- | app/lib/tables/data/ua_magic_items.yaml | 144 |
8 files changed, 1083 insertions, 0 deletions
diff --git a/app/lib/rules/data/classes.yaml b/app/lib/rules/data/classes.yaml new file mode 100644 index 0000000..8d9173c --- /dev/null +++ b/app/lib/rules/data/classes.yaml @@ -0,0 +1,178 @@ +cleric: + name: "Cleric" + prime_requisites: + - Wisdom + npc_ability_score_modifiers: + Wisdom: 2 + chances_for_magic: + sword: 0 + misc_weapon: 10 + armor_shield: 10 + protection: 2 + potion: 5 + scroll: 5 + ring: 5 + rod_staff_wand: 5 + misc: 5 + +druid: + name: "Druid" + prime_requisites: + - Wisdom + - Charisma + chances_for_magic: + sword: 0 + misc_weapon: 10 + armor_shield: 10 + protection: 2 + potion: 5 + scroll: 5 + ring: 5 + rod_staff_wand: 5 + misc: 5 + +fighter: + name: "Fighter" + prime_requisites: + - Strength + npc_ability_score_modifiers: + Strength: 2 + Constitution: 1 + chances_for_magic: + sword: 10 + misc_weapon: 5 + armor_shield: 10 + protection: 2 + potion: 3 + scroll: 1 + ring: 5 + rod_staff_wand: 0 + misc: 5 + +paladin: + name: "Paladin" + prime_requisites: + - Strength + - Wisdom + npc_ability_score_modifiers: + Strength: 2 + Constitution: 1 + chances_for_magic: + sword: 10 + misc_weapon: 5 + armor_shield: 10 + protection: 2 + potion: 3 + scroll: 1 + ring: 5 + rod_staff_wand: 0 + misc: 5 + +ranger: + name: "Ranger" + prime_requisites: + - Strength + - Intelligence + - Wisdom + npc_ability_score_modifiers: + Strength: 2 + Constitution: 1 + chances_for_magic: + sword: 10 + misc_weapon: 5 + armor_shield: 10 + protection: 2 + potion: 3 + scroll: 1 + ring: 5 + rod_staff_wand: 0 + misc: 5 + +magic-user: + name: "Magic-user" + prime_requisites: + - Intelligence + npc_ability_score_modifiers: + Intelligence: 2 + Dexterity: 1 + chances_for_magic: + sword: 0 + misc_weapon: 5 + armor_shield: 0 + protection: 10 + potion: 10 + scroll: 10 + ring: 5 + rod_staff_wand: 5 + misc: 5 + +illusionist: + name: "Illusionist" + prime_requisites: + - Intelligence + - Dexterity + chances_for_magic: + sword: 0 + misc_weapon: 5 + armor_shield: 0 + protection: 10 + potion: 10 + scroll: 10 + ring: 5 + rod_staff_wand: 5 + misc: 5 + +thief: + name: "Thief" + prime_requisites: + - Dexterity + npc_ability_score_modifiers: + Dexterity: 2 + Intelligence: 1 + chances_for_magic: + sword: 10 + misc_weapon: 5 + armor_shield: 10 + protection: 2 + potion: 3 + scroll: 1 + ring: 5 + rod_staff_wand: 0 + misc: 5 + +assassin: + name: "Assassin" + prime_requisites: + - Strength + - Dexterity + npc_ability_score_modifiers: + Strength: 1 + Dexterity: 2 + Intelligence: 1 + chances_for_magic: + sword: 10 + misc_weapon: 5 + armor_shield: 10 + protection: 2 + potion: 3 + scroll: 1 + ring: 5 + rod_staff_wand: 0 + misc: 5 + +monk: + name: "Monk" + prime_requisites: + - Strength + - Wisdom + - Dexterity + chances_for_magic: + sword: 0 + misc_weapon: 5 + armor_shield: 0 + protection: 2 + potion: 0 + scroll: 0 + ring: 5 + rod_staff_wand: 0 + misc: 5 diff --git a/app/lib/rules/data/magic_items.yaml b/app/lib/rules/data/magic_items.yaml new file mode 100644 index 0000000..d45bfdd --- /dev/null +++ b/app/lib/rules/data/magic_items.yaml @@ -0,0 +1,52 @@ +##### +# Dummy data, so we can at least generate kinds prior to having all magic items +# implemented. +##### + +potion: + name: "Potion" + kind: Potion + +scroll: + name: "Scroll" + kind: Scroll + +ring: + name: "Ring" + kind: Ring + +rod_staff_wand: + name: "Rod/Staff/Wand" + kind: RodStaffWand + +misc: + name: "Misc" + kind: Misc + +armor_shield: + name: "Armor/Shield" + kind: ArmorShield + +sword: + name: "Sword" + kind: Sword + +protection: + name: "Protection" + kind: Ring # Not actually, but this is fine for now. + +##### +# Remainder of file is actual data. +##### + +sword_plus_one: + name: "Sword +1" + kind: Sword + +ring_of_animal_friendship: + name: "Ring of Animal Friendship" + kind: Ring + +rod_of_absorption: + name: "Rod of Absorption (C, M)" + kind: RodStaffWand diff --git a/app/lib/rules/data/races.yaml b/app/lib/rules/data/races.yaml new file mode 100644 index 0000000..f052e8d --- /dev/null +++ b/app/lib/rules/data/races.yaml @@ -0,0 +1,231 @@ +dwarf: + name: "Dwarf" + ability_score_modifiers: + Constitution: 1 + Charisma: -1 + npc_ability_score_modifiers: + Strength: 1 + Constitution: 1 + Charisma: -1 + ability_score_ranges: + Strength: + male: [8, 18] + female: [] + Intelligence: + male: [3, 18] + female: [] + Wisdom: + male: [3, 18] + female: [] + Dexterity: + male: [3, 17] + female: [] + Constitution: + male: [12, 19] + female: [] + Charisma: + male: [3, 16] + female: [] + level_limits: + fighter: 9 + thief: 9999 + assassin: 9 + +elf: + name: "Elf" + ability_score_modifiers: + Dexterity: 1 + Constitution: -1 + npc_ability_score_modifiers: + Intelligence: 1 + Dexterity: 1 + ability_score_ranges: + Strength: + male: [3, 18] + female: [] + Intelligence: + male: [8, 18] + female: [] + Wisdom: + male: [3, 18] + female: [] + Dexterity: + male: [7, 19] + female: [] + Constitution: + male: [6, 18] + female: [] + Charisma: + male: [8, 18] + female: [] + level_limits: + fighter: 7 + magic-user: 11 + thief: 9999 + assassin: 10 + +gnome: + name: "Gnome" + ability_score_modifiers: + npc_ability_score_modifiers: + Wisdom: 1 + Constitution: 1 + Charisma: -1 + ability_score_ranges: + Strength: + male: [6, 18] + female: [] + Intelligence: + male: [7, 18] + female: [] + Wisdom: + male: [3, 18] + female: [] + Dexterity: + male: [3, 18] + female: [] + Constitution: + male: [8, 18] + female: [] + Charisma: + male: [3, 18] + female: [] + level_limits: + fighter: 6 + illusionist: 7 + thief: 9999 + assassin: 8 + +half-elf: + name: "Half-elf" + ability_score_modifiers: + npc_ability_score_modifiers: + ability_score_ranges: + Strength: + male: [3, 18] + female: [] + Intelligence: + male: [4, 18] + female: [] + Wisdom: + male: [3, 18] + female: [] + Dexterity: + male: [6, 18] + female: [] + Constitution: + male: [6, 18] + female: [] + Charisma: + male: [3, 18] + female: [] + level_limits: + cleric: 5 + druid: 9999 + fighter: 8 + ranger: 8 + magic-user: 8 + thief: 9999 + assassin: 11 + bard: 23 + +halfling: + name: "Halfling" + ability_score_modifiers: + Strength: -1 + Dexterity: 1 + npc_ability_score_modifiers: + Dexterity: 1 + Constitution: 1 + ability_score_ranges: + Strength: + male: [6, 17] + female: [] + Intelligence: + male: [6, 18] + female: [] + Wisdom: + male: [3, 17] + female: [] + Dexterity: + male: [8, 18] + female: [] + Constitution: + male: [10, 19] + female: [] + Charisma: + male: [3, 18] + female: [] + level_limits: + fighter: 6 + thief: 9999 + +half-orc: + name: "Half-orc" + ability_score_modifiers: + Strength: 1 + Constitution: 1 + Charisma: -2 + npc_ability_score_modifiers: + Dexterity: 1 + Constitution: 1 + ability_score_ranges: + Strength: + male: [6, 18] + female: [] + Intelligence: + male: [3, 17] + female: [] + Wisdom: + male: [3, 14] + female: [] + Dexterity: + male: [3, 17] + female: [] + Constitution: + male: [13, 19] + female: [] + Charisma: + male: [3, 12] + female: [] + level_limits: + cleric: 4 + fighter: 10 + thief: 8 + assassin: 9999 + +human: + name: "Human" + ability_score_modifiers: + npc_ability_score_modifiers: + ability_score_ranges: + Strength: + male: [3, 18] + female: [] + Intelligence: + male: [3, 18] + female: [] + Wisdom: + male: [3, 18] + female: [] + Dexterity: + male: [3, 18] + female: [] + Constitution: + male: [3, 18] + female: [] + Charisma: + male: [3, 18] + female: [] + level_limits: + cleric: 9999 + druid: 9999 + fighter: 9999 + paladin: 9999 + ranger: 9999 + magic-user: 9999 + illusionist: 9999 + thief: 9999 + assassin: 9999 + monk: 9999 + bard: 23 diff --git a/app/lib/tables/data/henchmen.yaml b/app/lib/tables/data/henchmen.yaml new file mode 100644 index 0000000..e9aa3ef --- /dev/null +++ b/app/lib/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/tables/data/hl_treasure.yaml b/app/lib/tables/data/hl_treasure.yaml new file mode 100644 index 0000000..2900f3e --- /dev/null +++ b/app/lib/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/tables/data/magic_items.yaml b/app/lib/tables/data/magic_items.yaml new file mode 100644 index 0000000..7ed6ddc --- /dev/null +++ b/app/lib/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/tables/data/npc.yaml b/app/lib/tables/data/npc.yaml new file mode 100644 index 0000000..5c8b7fe --- /dev/null +++ b/app/lib/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/tables/data/ua_magic_items.yaml b/app/lib/tables/data/ua_magic_items.yaml new file mode 100644 index 0000000..3fa8e5b --- /dev/null +++ b/app/lib/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" |