docs(game): migrate game-design canon notes from Joplin into docs/game/
Eight canon notes (Game Concept Overview, Mechanics Source Mapping, Combat System & Stat Scaling Design, Skill & Magic System, Medals & Honours System, Lore & World Building, Idle Fantasy Inspirations, Tech Stack & Architecture) as markdown, note title as H1, with source line citing the Joplin note ID. Joplin keeps status notes.
This commit is contained in:
parent
2343d5e154
commit
7a9a5a3e7b
8 changed files with 2810 additions and 0 deletions
390
docs/game/skill-magic-system.md
Normal file
390
docs/game/skill-magic-system.md
Normal file
|
|
@ -0,0 +1,390 @@
|
|||
# Skara Brae — Skill & Magic System (MERP/Rolemaster-Inspired)
|
||||
|
||||
Source: Joplin note 4c295d18c9b04aea947b534834ffaced, migrated 2026-10-03
|
||||
|
||||
> **Goal**: Port the depth of the MERP/Rolemaster skill and magic engine into Skara Brae's existing use-based, BIGINT-stat, idle/MMO framework — *without* abandoning the Torn-style "stats only go up, train by doing" feel.
|
||||
|
||||
---
|
||||
|
||||
## 1. Design Philosophy — Reconciling Two Worlds
|
||||
|
||||
| Concern | RoleMaster/MERP | Skara Brae Existing | Resolution |
|
||||
|---|---|---|---|
|
||||
| **How skills grow** | Development Points spent per level (point-buy) | Use-based XP per skill (like RuneScape/Idle Fantasy) | **Hybrid**: practice-ranks by use **+** development-ranks by spend. See §3. |
|
||||
| **Skill depth** | ~60 skills in 18+ categories, stat-linked, diminishing returns | Flat list of ~25 skills, each on its own XP bar | Adopt RM **categories**, **rank-bonus formula**, **stat integration**, **maneuver difficulties**. |
|
||||
| **Magic** | Spell *lists* (open/closed/base), realm-based, learned in order, power-point cost | 4 BT1 schools + 3 realms mentioned but undefined | Full **spell-list system** (§5): curated lists per realm, ordered progression, PP cost, bolt/ball/utility classification. |
|
||||
| **Resolution** | d100 open-ended + skill bonus vs. maneuver difficulty | d100 open-ended for combat only | Generalize d100 open-ended **maneuver roll** to *all* skills (§4). |
|
||||
| **Stats** | 10 stats | 6 BIGINT stats (Str/Agi/Con/Int/Wis/Cha) | Map each skill to 1–3 of our 6 stats (§2.2). |
|
||||
|
||||
**Key principle**: Use-based training is the *primary* advancement loop (consistent with Torn + Idle Fantasy + the idle/offline features). Development Points are a *secondary* layer that lets players cross-train skills they don't actively grind — exactly Rolemaster's flexibility, but earned through play rather than per-level allocation alone.
|
||||
|
||||
---
|
||||
|
||||
## 2. The Skill Catalogue
|
||||
|
||||
### 2.1 Skill Categories
|
||||
|
||||
All skills are organized into Rolemaster-style **categories**. A character's **profession (class)** grants a **profession modifier** per category — a discount on Development Point cost and/or a small bonus to the skill bonus. This is the Rolemaster "class feel" mechanism.
|
||||
|
||||
| # | Category | Example Skills | Primary Use |
|
||||
|---|---|---|---|
|
||||
| 1 | **Armor** | Light Armor, Medium Armor, Heavy Armor, Shield | Mitigation, agility penalties |
|
||||
| 2 | **Weapon — Melee** | 1H Edged, 1H Concussion, 2-Handed, Polearms, Unarmed, Martial Arts | Attack rolls, OB |
|
||||
| 3 | **Weapon — Ranged** | Bow, Crossbow, Thrown, Sling | Ranged attack rolls |
|
||||
| 4 | **Athletic / Brawn** | Climbing, Swimming, Gymnastics (dodge), Lifting | Movement, escape, evasion |
|
||||
| 5 | **Awareness / Search** | Perception, Alertness, Tracking, Trap Sense, Ambush Awareness | Detection, scouting |
|
||||
| 6 | **Body Development** | Constitution (HP pool growth), Stamina | Survivability |
|
||||
| 7 | **Combat Maneuvers** | Mounted Combat, Adrenal Defense, Multiple Parry, Feint | Advanced combat options |
|
||||
| 8 | **Craft / Trade** | Blacksmithing, Alchemy, Enchanting, Tailoring, Jewelcrafting, Fletching, Cooking | Crafting professions |
|
||||
| 9 | **Gathering** | Mining, Herbalism, Woodcutting, Fishing, Skinning | Material acquisition |
|
||||
| 10 | **Directed Spells** | Runes, Staves & Wands, Scrolls | Using magic items |
|
||||
| 11 | **Influence** | Leadership, Persuasion, Intimidation, Disguise | Social, guild, trade |
|
||||
| 12 | **Lore** | General Lore, Magical Lore, Religious Lore, Skara Brae Lore | Quests, puzzles, dungeon riddles |
|
||||
| 13 | **Magic Lore** | Runereading, Spell Mastery, Mana Weaving | Spellcasting support |
|
||||
| 14 | **Mental** *(Mentalism)* | Telepathy, Mental Defense, Mind Control, Enhancement | Mentalism spell channeling |
|
||||
| 15 | **Outdoor / Environment** | Foraging, Survival, Weather Reading, Navigation | Wilderness, Wilds, offshore |
|
||||
| 16 | **Self Control** | Meditation (mana regen), Frenzy (berserk), Willpower (RR bonus) | Buffs, recovery |
|
||||
| 17 | **Special Attacks** | Backstab, Ambush, Poisons, Stunning Blows | Rogue/Monk techniques |
|
||||
| 18 | **Spells** *(per realm)* | Essence Lists, Channeling Lists, Mentalism Lists | Spellcasting — see §5 |
|
||||
| 19 | **Subterfuge / Stealth** | Lockpicking, Pickpocketing, Sneaking, Hiding, Trap Setting | Thievery, adventures |
|
||||
| 20 | **Technical / Trade** | Bartering, Appraisal, Engineering (siege/traps) | Economy, guild siege |
|
||||
| 21 | **Urban** | Streetwise, Gambling, Carousing, Black Market (fencing) | Inn, Lower City, Harbor |
|
||||
|
||||
> Mappers to existing design: categories 8 & 9 = the 5 gathering + 7 crafting professions already defined. Category 19 = the Thievery tree. Category 21 = social/inn activities. Category 18 = the magic system in §5.
|
||||
|
||||
### 2.2 Stat Linkage
|
||||
|
||||
Each skill rolls **1–3 relevant stats**. Stat bonus is derived from the BIGINT stat via a **logarithmic bonus function** (so billions-scale stats still produce a bounded, meaningful bonus):
|
||||
|
||||
```
|
||||
stat_bonus(value) = floor( 10 * log2( value / 10 ) ) // bounded, grows slowly
|
||||
// Example: 10 → 0, 20 → +10, 80 → +30, 10K → +100, 1B → ~+200
|
||||
```
|
||||
|
||||
(Exact curve TBD in tuning — the point is **slow, diminishing** growth so that a character with 1B Intelligence isn't auto-winning every lore check, but is meaningfully better than one with 10K.)
|
||||
|
||||
| Sample skills | Linked Stats |
|
||||
|---|---|
|
||||
| 1H Edged | Str, Agi |
|
||||
| Bow | Agi |
|
||||
| Stealth / Sneaking | Agi |
|
||||
| Lockpicking | Agi, Int |
|
||||
| Blacksmithing | Str, Int |
|
||||
| Alchemy | Int, Wis |
|
||||
| Persuasion | Cha |
|
||||
| Tracking | Wis, Int |
|
||||
| Meditation | Wis, Con |
|
||||
| Unarmed / Martial Arts | Str, Con, Agi |
|
||||
| Runereading | Int |
|
||||
|
||||
---
|
||||
|
||||
## 3. Skill Ranks — Practice + Development (Hybrid)
|
||||
|
||||
### 3.1 Two Tracks, One Bonus
|
||||
|
||||
A skill's effectiveness is driven by its **total ranks**, which come from two sources:
|
||||
|
||||
1. **Practice Ranks** — earned automatically by using the skill (use-based XP → rank thresholds). *This is the core loop.* Each skill has its own XP bar. Offline apprentice workers grant practice XP at 50% (existing design).
|
||||
2. **Development Ranks** — purchased with **Development Points (DP)**. Lets a player boost a skill they aren't actively grinding, or push past a practice plateau.
|
||||
|
||||
```
|
||||
total_ranks(skill) = practice_ranks + development_ranks
|
||||
skill_bonus(skill) = rank_bonus(total_ranks)
|
||||
+ Σ stat_bonus(linked_stats)
|
||||
+ profession_bonus(class, category)
|
||||
+ equipment_bonus
|
||||
+ situational_modifiers
|
||||
```
|
||||
|
||||
### 3.2 Rank Bonus — Diminishing Returns (Rolemaster Formula, Adapted)
|
||||
|
||||
| Rank Band | Bonus per Rank | Cumulative at Band End |
|
||||
|---|---|---|
|
||||
| Ranks 1–10 | +5 each | +50 |
|
||||
| Ranks 11–20 | +3 each | +80 |
|
||||
| Ranks 21–30 | +2 each | +100 |
|
||||
| Ranks 31–50 | +1 each | +120 |
|
||||
| Ranks 51+ | +0.5 each (rounded) | slow creep |
|
||||
|
||||
This mirrors Rolemaster's "first rank is worth a lot, then diminishing." It keeps use-based grinding rewarding early and makes Development Points meaningful for pushing high-end skills. **Caps** per skill can be set per tuning (e.g., max 50 ranks for non-combat, higher for weapons/spells).
|
||||
|
||||
### 3.3 Development Points
|
||||
|
||||
- **DP per character level** = `5 + stat_bonus(Intelligence)` (Intelligence = learning aptitude). Patrons may get +2.
|
||||
- **DP cost to buy a rank** depends on the skill's category and the character's profession:
|
||||
|
||||
| Profession Modifier | DP per Rank | Meaning |
|
||||
|---|---|---|
|
||||
| Favored | 1 | Class's core competencies |
|
||||
| Normal | 2 | Secondary skills |
|
||||
| Unfavored | 4 | Outside the class's wheelhouse |
|
||||
| Restricted | 8 (or disallowed) | E.g., heavy spellcasting for a Warrior |
|
||||
|
||||
| Class | Favored Categories (examples) | Unfavored |
|
||||
|---|---|---|
|
||||
| **Warrior** | Armor, Weapon-Melee, Weapon-Ranged, Body Dev, Combat Maneuvers | Spells, Mental |
|
||||
| **Rogue** | Subterfuge/Stealth, Special Attacks, Urban, Awareness, Weapon-Melee | Spells (closed), Self Control |
|
||||
| **Mage** | Spells (Essence), Lore, Magic Lore, Directed Spells, Craft (Enchant/Alchemy) | Armor, Weapon-Melee, Subterfuge |
|
||||
| **Bard** | Spells (Mentalism), Influence, Lore, Urban, Self Control | Armor (heavy), Body Dev |
|
||||
| **Cleric** | Spells (Channeling), Influence, Self Control, Lore | Weapon-Ranged, Subterfuge |
|
||||
| **Ranger** | Weapon-Ranged, Outdoor/Envir, Awareness, Gathering, minor Channeling | Urban, Influence |
|
||||
| **Paladin** | Armor, Weapon-Melee, Spells (minor Channeling), Self Control, Influence | Subterfuge, Mental |
|
||||
| **Monk** | Unarmed/Martial Arts, Athletic, Self Control, Body Dev | Armor (heavy), Spells |
|
||||
|
||||
### 3.4 Classless Cross-Training
|
||||
|
||||
Because any class *can* buy any (non-restricted) skill at higher DP cost, a Warrior *can* learn a basic Fire Bolt — but it costs 8 DP/rank and caps low. This is pure Rolemaster flexibility and rewards hybrid builds, while keeping class identity strong.
|
||||
|
||||
---
|
||||
|
||||
## 4. Skill Resolution — The Maneuver Roll (Generalized d100)
|
||||
|
||||
Every non-trivial skill action resolves with the same engine as combat: an **open-ended d100 maneuver**.
|
||||
|
||||
### 4.1 Difficulty Modifiers
|
||||
|
||||
| Difficulty | Modifier | Example in Skara Brae |
|
||||
|---|---|---|
|
||||
| Routine | +30 | Pick an easy lock (tavern cellar) |
|
||||
| Easy | +20 | Track a fresh trail in snow |
|
||||
| Light | +10 | Brew a basic healing potion |
|
||||
| Medium | 0 | Pickpocket a sober merchant |
|
||||
| Hard | −10 | Pickpocket a guard; scale a city wall |
|
||||
| Very Hard | −20 | Defuse a dungeon trap; fence rare goods |
|
||||
| Extremely Hard | −30 | Pick a vault lock in the Noble Quarter |
|
||||
| Sheer Folly | −50 | Climb a sheer cliff in a storm |
|
||||
| Absurd | −70 | Pickpocket Mangar's lieutenant |
|
||||
|
||||
### 4.2 Resolution
|
||||
|
||||
```
|
||||
maneuver_total = d100_open_ended() + skill_bonus(skill) + difficulty_modifier
|
||||
```
|
||||
|
||||
Open-ended: 96–100 rolls again and adds; 01–05 rolls again and subtracts (downward open-ended, per Rolemaster).
|
||||
|
||||
### 4.3 Result Table
|
||||
|
||||
| maneuver_total | Outcome | Effect |
|
||||
|---|---|---|
|
||||
| ≥ +80 | **Absolute Success** | Best result + bonus (e.g., +50% yield, bonus loot) |
|
||||
| +21 to +79 | **Complete Success** | Full intended effect |
|
||||
| 0 to +20 | **Partial Success** | Effect at reduced value / longer time |
|
||||
| −20 to −1 | **Failure** | No effect; small chance of minor mishap |
|
||||
| −80 to −21 | **Absolute Failure** | Failure + complication (broken pick, alarm, wasted materials) |
|
||||
| ≤ −81 | **Spectacular Failure** | Severe consequence (injury, aggro, lost materials, trap sprung) |
|
||||
|
||||
Downward open-ended rolls (01–05) feed the lower bands → the "fumble" tension that makes Rolemaster feel alive.
|
||||
|
||||
### 4.4 Why This Matters
|
||||
|
||||
- **Adventures** (pickpocketing, burglary, fencing) now use real skill checks with difficulty tiers — replacing a flat success chance.
|
||||
- **Crafting** quality rolls (Common→Legendary) can be driven off the maneuver table instead of a separate d100.
|
||||
- **Dungeon puzzles** (lore checks, riddles, lockpicking, trap disarming) become skill encounters.
|
||||
- **Social** actions (persuade the Beggar King, bluff the City Watch) use Influence skills.
|
||||
- Consistent with the combat crit table already designed — **one unified resolution engine**.
|
||||
|
||||
---
|
||||
|
||||
## 5. The Magic System — Spell Lists per Realm
|
||||
|
||||
### 5.1 Realms & Primary Stat (Power Points)
|
||||
|
||||
| Realm | Casters | Primary Stat (PP) | Flavor |
|
||||
|---|---|---|---|
|
||||
| **Essence** | Mages | Intelligence | Raw magical energy woven from the world |
|
||||
| **Channeling** | Clerics, Paladins (minor) | Wisdom | Power granted by the Old Gods |
|
||||
| **Mentalism** | Bards | Charisma | Power drawn from mind and will |
|
||||
|
||||
**Power Points (PP)** = the spell-casting resource (replaces/generates the `mana` BIGINT pool). PP-per-level scales with the realm stat bonus:
|
||||
|
||||
```
|
||||
max_pp = base_pp(class) + realm_stat_bonus * pp_multiplier(class)
|
||||
```
|
||||
|
||||
PP regenerates over time, boosted by **Meditation** skill (Self Control) and blessings. Spells cost PP to cast; higher-tier spells on a list cost more.
|
||||
|
||||
### 5.2 Spell Lists — Open, Closed, Base
|
||||
|
||||
A **spell list** is an ordered progression: spell #1 is the weakest, spell #N is the strongest. You must learn a list **in order** — you can't learn spell #10 without #1–#9. This is core Rolemaster.
|
||||
|
||||
| List Class | Availability | Example |
|
||||
|---|---|---|
|
||||
| **Open** | Available to *all* casters of that realm (favored DP cost) | Essence Hand (utility) for all Essence users |
|
||||
| **Closed** | Restricted to specific professions of that realm (normal/normal+ cost) | Life Mastery (healing) closed to Clerics |
|
||||
| **Base** | The profession's signature lists (cheapest, defines the class) | Fire Law as a Mage base list |
|
||||
|
||||
You **rank up a spell list** like a skill (practice by casting + DP). Your **list rank** determines the highest spell number you can cast from that list. E.g., Fire Law rank 12 lets you cast Fire Law spells 1–12.
|
||||
|
||||
### 5.3 Curated Spell Lists per Realm
|
||||
|
||||
*(Target: ~20 lists per realm, ~10–15 spells each. Below is the launch set — expandable.)*
|
||||
|
||||
#### Essence (Mages)
|
||||
|
||||
| List | Class | Highlights |
|
||||
|---|---|---|
|
||||
| **Fire Law** | Base (Mage) | Spark → Fire Bolt → Wall of Fire → Fire Ball → Inferno |
|
||||
| **Ice Law** | Base (Mage) | Frost → Ice Bolt → Freeze → Blizzard |
|
||||
| **Light Law** | Base (Mage) | Glow → Light Bolt → Blinding Flash → Sun Bolt |
|
||||
| **Earth Law** | Closed | Stone Bolt → Entangle → Earthquake |
|
||||
| **Water Law** | Closed | Water Bolt → Wave → Tidal Surge |
|
||||
| **Illusions** | Closed | Phantasmal Force → Blur → Invisibility |
|
||||
| **Living Change** | Closed | Enhance Stat → Shrink → Polymorph |
|
||||
| **Lofty Bridge** | Closed | Leap → Long Step → Gate → Teleport |
|
||||
| **Essence Hand** | Open | Light → Unseen Hand → Lock Lore → Dispel |
|
||||
| **Essence Ways** | Open | Detect Magic → Aura Reading → Sense Essence |
|
||||
| **Spell Wall** | Open | Minor Shield → Barrier → Wall of Force |
|
||||
| **Essence Perceptions** | Open | Detect Essence → Analyze Magic |
|
||||
|
||||
> **BT1 School Mapping**: The four Bard's Tale schools are *focuses within Essence*:
|
||||
> - **Magician** (offensive) → Fire/Ice/Light Law base lists
|
||||
> - **Conjurer** (summoning) → summoning sub-lists + Earth Law
|
||||
> - **Sorcerer** (debilitating) → Illusions + Living Change
|
||||
> - **Wizard** (utility) → Lofty Bridge + Essence Hand + Spell Wall
|
||||
>
|
||||
> Switching "school" at the Review Board = reprioritizing which base lists you rank. **Master all four = Archmage** (all Essence lists learned).
|
||||
|
||||
#### Channeling (Clerics)
|
||||
|
||||
| List | Class | Highlights |
|
||||
|---|---|---|
|
||||
| **Life Mastery** | Base (Cleric) | Minor Heal → Major Heal → Regeneration → Resurrection |
|
||||
| **Repulse / Undead Mastery** | Base (Cleric) | Turn Undead → Hold Undead → Control Undead |
|
||||
| **Protections** | Base (Cleric) | Sanctuary → Holy Shield → Consecration |
|
||||
| **Detections** | Closed | Detect Evil → Detect Undead → Detect Trap |
|
||||
| **Creations** | Closed | Create Light → Create Food → Create Water |
|
||||
| **Weather Ways** | Closed | Calm Weather → Fair Winds → Storm Call |
|
||||
| **Communal Ways** | Open | Sense Deity → Commune → Divine Guidance |
|
||||
| **Channeling Perceptions** | Open | Detect Aura → Sense Danger |
|
||||
|
||||
#### Mentalism (Bards)
|
||||
|
||||
| List | Class | Highlights |
|
||||
|---|---|---|
|
||||
| **Mind Mastery** | Base (Bard) | Daze → Confusion → Mental Stun → Dominate |
|
||||
| **Song / Sound** | Base (Bard) | Valor (atk buff) → Hope (morale) → Fear (debuff) → Charm → Lullaby (sleep). *Long-duration bard songs.* |
|
||||
| **Self Healing** | Closed | Mend → Recover → Revitalize |
|
||||
| **Mind's Door** | Closed | Telepathy → Mind Speech → Mind Store |
|
||||
| **Body Control** | Closed | Adrenal Speed → Adrenal Strength → Prowess |
|
||||
| **Mental Illusions** | Closed | Mirage → Phantasm → Mirage Illusion |
|
||||
| **Mind's Eye** | Open | Sense Thoughts → Detect Motive |
|
||||
| **Mental Defenses** | Open | Mind Barrier → Mental Shield → Iron Will |
|
||||
|
||||
### 5.4 Spell Classification (Combat Integration)
|
||||
|
||||
| Type | Resolution | Notes |
|
||||
|---|---|---|
|
||||
| **Bolt** (directed) | Attack roll = d100 open-ended + Directed Spells skill vs. target's defense (like a missile) | Fire Bolt, Ice Bolt. Can trigger crit tables (elemental crit). |
|
||||
| **Ball / Area** (non-directed) | Target makes **Resistance Roll**: d100 + Will bonus + level vs. spell level | Fire Ball, Blizzard. Failed RR = full effect; partial = reduced. |
|
||||
| **Defensive / Utility** | Auto-cast (costs PP); resisted only where noted | Shields, teleports, detections, healing. |
|
||||
|
||||
This slots directly into the existing **Resistance Roll** design (d100 + Will vs. spell difficulty) and the **d100 open-ended crit tables**. Elemental crit tables (burn, frost, shock) extend the slash/crush/puncture/unarmed tables already defined.
|
||||
|
||||
### 5.5 Spell Acquisition — The Review Board
|
||||
|
||||
Per existing design, the **Adventurers' Guild (Review Board)** is where you learn magic:
|
||||
- Increase a spell-list rank by paying gold + meeting the level/practice prerequisite.
|
||||
- Casters must visit to gain access to new spell numbers on a list.
|
||||
- **Magical exam** (lore check) for spellcasters (existing design) — now a real *Magical Lore* maneuver.
|
||||
- Mages switch Essence-school focus here (reprioritize base lists).
|
||||
- **Archmage**: a Mage who has maxed all four BT1 schools' base lists → cosmetic title + achievement + small global casting bonus.
|
||||
|
||||
### 5.6 Spell Scrolls & Items
|
||||
|
||||
- **Scrolls** (Directed Spells → Scrolls skill): one-use spell from any list; lets non-casters cast minor spells (Torn-like consumable). Found in dungeons, crafted by Enchanting.
|
||||
- **Staves & Wands** (Directed Spells → Staves & Wands): rechargeable PP-cost items casting a fixed spell. Crafted/bound via Enchanting.
|
||||
- **Runes** (Magic Lore → Runereading): permanent magical inscriptions on gear; activated by Runereading skill.
|
||||
|
||||
---
|
||||
|
||||
## 6. Integration With Existing Systems
|
||||
|
||||
| Existing System | Change / Enhancement |
|
||||
|---|---|
|
||||
| **Combat (crit tables)** | Elemental crit tables added (burn, frost, shock). Bolts roll like missiles; balls use RR. Maneuver roll unified with combat. |
|
||||
| **BIGINT stats** | `stat_bonus()` log function feeds skills. Stats keep growing to billions; bonuses grow slowly (bounded). |
|
||||
| **Adventures** | Success now computed via maneuver roll + skill bonus + difficulty tier. Time-of-day & skill synergies become modifiers. |
|
||||
| **Crafting (5 gather + 7 craft)** | These are skills in categories 8 & 9. Quality roll driven by maneuver table; crafting crits = upward open-ended success. |
|
||||
| **Thievery** | Lives in Subterfuge/Stealth category (Lockpicking, Pickpocketing, Sneaking, Hiding). Adventures use these directly. |
|
||||
| **Education courses** | Completing a course grants **DP** (development points) — a second DP source beyond leveling. Makes education feel impactful. |
|
||||
| **Blessings** | Could grant temporary +skill bonus or +DP regen instead of flat multipliers. |
|
||||
| **Workers (apprentice)** | Apprentice grants *practice XP* to a chosen skill at 50% — unchanged, now feeds practice ranks. |
|
||||
| **Database** | New tables needed: `skill_categories`, `character_skill_ranks` (split practice/dev), `spell_lists`, `character_spell_list_ranks`, `spell_definitions`. See §7. |
|
||||
|
||||
---
|
||||
|
||||
## 7. Database Additions (Draft)
|
||||
|
||||
```sql
|
||||
-- Skill ranks (practice + development split)
|
||||
CREATE TABLE character_skills (
|
||||
character_id UUID NOT NULL REFERENCES characters(id),
|
||||
skill_name VARCHAR(48) NOT NULL,
|
||||
category VARCHAR(32) NOT NULL,
|
||||
practice_ranks INT NOT NULL DEFAULT 0,
|
||||
development_ranks INT NOT NULL DEFAULT 0,
|
||||
experience BIGINT NOT NULL DEFAULT 0, -- feeds practice_ranks
|
||||
PRIMARY KEY (character_id, skill_name)
|
||||
);
|
||||
|
||||
-- Development point pool per character
|
||||
ALTER TABLE characters ADD COLUMN unspent_dp INT NOT NULL DEFAULT 0;
|
||||
|
||||
-- Spell lists
|
||||
CREATE TABLE spell_lists (
|
||||
id VARCHAR(64) PRIMARY KEY, -- e.g. 'fire_law'
|
||||
realm VARCHAR(16) NOT NULL, -- essence | channeling | mentalism
|
||||
list_class VARCHAR(16) NOT NULL, -- open | closed | base
|
||||
name VARCHAR(64) NOT NULL,
|
||||
description TEXT
|
||||
);
|
||||
|
||||
-- Spell definitions (ordered within a list)
|
||||
CREATE TABLE spells (
|
||||
id VARCHAR(64) PRIMARY KEY, -- e.g. 'fire_law_3'
|
||||
list_id VARCHAR(64) NOT NULL REFERENCES spell_lists(id),
|
||||
spell_number INT NOT NULL, -- position in list (1..N)
|
||||
name VARCHAR(64) NOT NULL,
|
||||
spell_type VARCHAR(16) NOT NULL, -- bolt | ball | defensive | utility
|
||||
pp_cost INT NOT NULL,
|
||||
effect_json JSONB NOT NULL, -- damage, duration, modifiers
|
||||
description TEXT,
|
||||
UNIQUE (list_id, spell_number)
|
||||
);
|
||||
|
||||
-- Character spell-list ranks
|
||||
CREATE TABLE character_spell_lists (
|
||||
character_id UUID NOT NULL REFERENCES characters(id),
|
||||
list_id VARCHAR(64) NOT NULL REFERENCES spell_lists(id),
|
||||
rank INT NOT NULL DEFAULT 0, -- highest spell_number accessible
|
||||
experience BIGINT NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (character_id, list_id)
|
||||
);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 8. Open Design Questions
|
||||
|
||||
- [ ] **Stat bonus curve**: exact `stat_bonus()` function shape — log2 base? Per-stat caps?
|
||||
- [ ] **Rank caps**: hard cap per skill (50? 100?) or soft cap via DP scarcity?
|
||||
- [ ] **PP vs. existing `mana` BIGINT column**: unify into PP, or keep mana as the raw pool and PP as derived? Recommend: rename `mana`→PP conceptually, derive max from formula.
|
||||
- [ ] **Elemental crit tables**: how many (burn/frost/shock/sonic/poison)? Where stored (`skara-brae-common/crit-tables/`)?
|
||||
- [ ] **Scroll/wand crafting**: which Enchanting recipes produce scrolls? List-restricted or universal?
|
||||
- [ ] **DP from education**: how many DP per completed course? Balance against per-level DP.
|
||||
- [ ] **Multi-realm casters**: should any class get a *second* realm at reduced effectiveness (e.g., Ranger = Essence + Channeling minor)? Rolemaster has semi/hybrid casters.
|
||||
- [ ] **Archmage bonus**: cosmetic only, or small global casting bonus?
|
||||
|
||||
---
|
||||
|
||||
## Related Notes
|
||||
|
||||
- [Game Concept Overview](joplin://9cf8a2e701654ffbbd6512cc837c7e2f) — Skills, classes, stats, spell schools, education
|
||||
- [Combat System & Stat Scaling Design](joplin://0ef630db4e3e4d6dab18ccaefccaaa5a) — d100 open-ended crit tables (this system generalizes them)
|
||||
- [Mechanics Source Mapping](joplin://87a0f70b45c4453caae0fa2b5b8a96f9) — RoleMaster source mapping (expanded here)
|
||||
- [Lore & World Building](joplin://867bdc9845624908a90928887a71c4c9) — Adventurers' Guild / Review Board, districts for learning
|
||||
- [Tech Stack & Architecture](joplin://cecd2ef2690d4d1fba3450342aa63953) — DB schema, crate structure (skills.rs, spell engine)
|
||||
- [Project Plan](joplin://d243ae57778343fca997d46b73d0ee3b) — Roadmap, MVP scope
|
||||
- [Medals & Honours System](joplin://4877acc671ed4bfcb0d6bf2c5323c94a) — Skill/magic mastery feeds medals
|
||||
Loading…
Add table
Add a link
Reference in a new issue