Skip to content

Rust and Redemption Update 1

Latest

Choose a tag to compare

@Jon-Davis Jon-Davis released this 09 Mar 22:21
· 4 commits to main since this release

Changes to Schema

Top Level

Three new fields were added to the top level object.

  • Version: The version will automatically include the date the file was generated. You can use this to check if the version in github is newer than the version currently used.
  • intrusion_tables: This includes a list of intrusion tables from the CSRD.
  • other_tables: This includes other tables found in the CSRD, things like the Foci Connection list, and Hazards in the different genres. Not every table in the csrd has been parsed yet, but a starting list is included.
struct CSRD_DB {
    version: Date                        // NEW
    types: Vec<Type>,                  
    flavors: Vec<Flavor>,             
    descriptors: Vec<Descriptor>,     
    foci: Vec<Focus>,                 
    abilities: Vec<Ability>,          
    cyphers: Vec<Cypher>,            
    cypher_tables: Vec<RollTable>,
    intrusion_tables: Vec<RollTable>,    // NEW
    other_tables: Vec<RollTable>,        // NEW
    artifacts: Vec<Artifact>,        
    creatures: Vec<Creature>,           
    equipment: Vec<Equipment>       
}

Foci

Foci parsing has been completely overhauled to accommodate the style found in the Rust and Redemption content.

  • A new note section was added. Notes are things that would normally be found in the margins of a book.
  • Each focus now contains a list of starting connections, however only the newly added Rust and Redemption foci have these. The standard list of 50 connections included in the csrd is now included in the other_tables field at the top level of the json object.
  • The intrusions field has been updated to be Optional as the Rust and Redemption foci did not include gm intrusions.
  • An additional_equipment, minor_effect, and major_effect field has been added to accommodate the new Rust and Redemption foci.
pub struct Focus {
    name: String, 
    description: String, 
    note: Option<String>,                   // NEW
    connections: Vec<String>,               // NEW
    abilities: Vec<AbilityRef>, 
    intrusions: Option<String>,             // UPDATED
    additional_equipment: Option<String>,   // NEW
    minor_effect: Option<String>,           // NEW
    major_effect: Option<String>            // NEW
}

RollTable

RollTables may now have descriptions associated with them. This is mostly used by the tables found in the intrusion_tables as some of those tables were accompanied by a short blurb of text describing their use.

struct RollTable {
    name: Option<String>,       
    description: Option<String>,    // NEW
    table: Vec<RollEntry>
}