### dfraw_json_parser Installation and Example Usage Source: https://github.com/nwesterhausen/dfraw_parser/blob/main/cli/README.md This section provides instructions on how to install the dfraw_json_parser CLI tool using Cargo and demonstrates a typical usage scenario, including the expected output logs. ```sh Install: cargo install dfraw_json_parser-cli Use: ❯ dfraw_json_parser-cli --vanilla "E:\\SteamLibrary\\steamapps\\common\\Dwarf Fortress" 2023-11-29T17:20:31.708910Z INFO dfraw_json_parser: Dispatching parse for vanilla raws 2023-11-29T17:20:31.715698Z INFO dfraw_json_parser: Found 23 raw modules in Vanilla 2023-11-29T17:20:31.721361Z INFO dfraw_json_parser: Parsing objects for vanilla_bodies v50.01 2023-11-29T17:20:31.746482Z INFO dfraw_json_parser: Parsing objects for vanilla_buildings v50.01 2023-11-29T17:20:31.756534Z INFO dfraw_json_parser: Parsing objects for vanilla_creatures v50.08 2023-11-29T17:20:32.013094Z INFO dfraw_json_parser: Parsing objects for vanilla_descriptors v50.01 2023-11-29T17:20:32.043585Z INFO dfraw_json_parser: Parsing objects for vanilla_entities v50.01 2023-11-29T17:20:32.058126Z INFO dfraw_json_parser: Parsing objects for vanilla_interactions v50.01 2023-11-29T17:20:32.068453Z INFO dfraw_json_parser: Parsing objects for vanilla_items v50.01 2023-11-29T17:20:32.124778Z INFO dfraw_json_parser: Parsing objects for vanilla_languages v50.01 2023-11-29T17:20:32.170190Z INFO dfraw_json_parser: Parsing objects for vanilla_materials v50.01 2023-11-29T17:20:32.214593Z INFO dfraw_json_parser: Parsing objects for vanilla_music v50.04 2023-11-29T17:20:32.230923Z INFO dfraw_json_parser: Parsing objects for vanilla_plants v50.09 2023-11-29T17:20:32.277343Z INFO dfraw_json_parser: Parsing objects for vanilla_reactions v50.01 2023-11-29T17:20:32.294010Z INFO dfraw_json_parser: Parsing objects for vanilla_text v50.01 2023-11-29T17:20:32.523187Z INFO dfraw_json_parser::parser::helpers::absorb_select_creature: looking at 43 SELECT_CREATURE of 1306 raws 2023-11-29T17:20:32.529830Z INFO dfraw_json_parser::parser::helpers::apply_copy_from: updating 364 of 1306 raws from 185 creatures 2023-11-29T17:20:32.540825Z INFO dfraw_json_parser::parser::helpers::apply_copy_from: copied tags to 364 creatures 2023-11-29T17:20:32.544346Z INFO dfraw_json_parser::parser::helpers::apply_copy_from: purged 364 raws 2023-11-29T17:20:32.544540Z INFO dfraw_json_parser::parser::helpers::apply_copy_from: finished with 1306 raws (net 0 lost) 2023-11-29T17:20:32.551432Z INFO dfraw_json_parser: Found 23 raw modules in "vanilla" 2023-11-29T17:20:32.555398Z INFO dfraw_json_parser_cli: Opened parsed-raws.json for writing 2023-11-29T17:20:33.627940Z INFO dfraw_json_parser_cli: Wrote 1306 parsed raws and 21 parsed 'info.txt' files to parsed-raws.json ``` -------------------------------- ### Creature Body Conversion Tags Source: https://github.com/nwesterhausen/dfraw_parser/blob/main/jsonlib/tests/data/c_variation_default.txt Defines tags for converting creature body parts or states. Examples include converting to different toe registration types (5TOES_RQ_REG, 4TOES_RQ_REG, 3TOES_RQ_REG) and setting master body parts. ```dfraw [CVCT_MASTER:BODY] [CVCT_TARGET:5TOES_RQ_REG] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:4TOES_RQ_REG] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:3TOES_RQ_REG] [CV_CONVERT_TAG] ``` -------------------------------- ### DFRaw ANIMAL_PERSON Creature Variation Source: https://github.com/nwesterhausen/dfraw_parser/blob/main/jsonlib/tests/data/c_variation_default.txt An example of a specific creature variation named ANIMAL_PERSON. This variation demonstrates the extensive use of CV_REMOVE_TAG to strip various default creature attributes and CV_CONVERT_TAG to remap body types and appendages. ```DFRaw [CREATURE_VARIATION:ANIMAL_PERSON] [CV_REMOVE_TAG:NAME] [CV_REMOVE_TAG:GENERAL_CHILD_NAME] [CV_REMOVE_TAG:GENERAL_BABY_NAME] [CV_REMOVE_TAG:CASTE_NAME] [CV_REMOVE_TAG:CHILDNAME] [CV_REMOVE_TAG:BABYNAME] [CV_REMOVE_TAG:SMALL_REMAINS] [CV_REMOVE_TAG:DESCRIPTION] [CV_REMOVE_TAG:CREATURE_TILE] [CV_REMOVE_TAG:COLOR] [CV_REMOVE_TAG:MAXAGE] [CV_REMOVE_TAG:SOUND] [CV_REMOVE_TAG:PET] [CV_REMOVE_TAG:PETVALUE] [CV_REMOVE_TAG:PENETRATEPOWER] [CV_REMOVE_TAG:VERMIN_EATER] [CV_REMOVE_TAG:VERMIN_HATEABLE] [CV_REMOVE_TAG:VERMIN_GROUNDER] [CV_REMOVE_TAG:VERMIN_FISH] [CV_REMOVE_TAG:VERMIN_SOIL] [CV_REMOVE_TAG:VERMIN_SOIL_COLONY] [CV_REMOVE_TAG:VERMIN_ROTTER] [CV_REMOVE_TAG:VERMIN_NOTRAP] [CV_REMOVE_TAG:FISHITEM] [CV_REMOVE_TAG:IMMOBILE_LAND] [CV_REMOVE_TAG:TRIGGERABLE_GROUP] [CV_REMOVE_TAG:MOUNT] [CV_REMOVE_TAG:PET_EXOTIC] [CV_REMOVE_TAG:MOUNT_EXOTIC] [CV_REMOVE_TAG:NOT_BUTCHERABLE] [CV_REMOVE_TAG:SPEED] [CV_REMOVE_TAG:SWIM_SPEED] [CV_REMOVE_TAG:MUNDANE] [CV_REMOVE_TAG:POPULATION_NUMBER] [CV_REMOVE_TAG:CLUSTER_NUMBER] [CV_REMOVE_TAG:ATTACK] [CV_REMOVE_TAG:ATTACK_SKILL] [CV_REMOVE_TAG:ATTACK_VERB] [CV_REMOVE_TAG:ATTACK_CONTACT_PERC] [CV_REMOVE_TAG:ATTACK_PRIORITY] [CV_REMOVE_TAG:ATTACK_FLAG_WITH] [CV_REMOVE_TAG:ATTACK_PENETRATION_PERC] [CV_REMOVE_TAG:ATTACK_PREPARE_AND_RECOVER] [CV_REMOVE_TAG:ATTACK_FLAG_EDGE] [CV_REMOVE_TAG:ATTACK_FLAG_CANLATCH] [CV_REMOVE_TAG:SPECIALATTACK_INJECT_EXTRACT] [CV_REMOVE_TAG:SPECIALATTACK_SUCK_BLOOD] [CV_REMOVE_TAG:ATTACK_VELOCITY_MODIFIER] [CV_REMOVE_TAG:GAIT] [CV_REMOVE_TAG:UBIQUITOUS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:QUADRUPED] [CVCT_REPLACEMENT:HUMANOID] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:QUADRUPED_FRONT_GRASP] [CVCT_REPLACEMENT:HUMANOID] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:QUADRUPED_NECK] [CVCT_REPLACEMENT:HUMANOID_NECK:3FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:QUADRUPED_NECK_FRONT_GRASP] [CVCT_REPLACEMENT:HUMANOID_NECK] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:QUADRUPED_HOOF] [CVCT_REPLACEMENT:HUMANOID_HOOF:3FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:QUADRUPED_NECK_HOOF] [CVCT_REPLACEMENT:HUMANOID_NECK_HOOF:3FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:HUMANOID_ARMLESS] [CVCT_REPLACEMENT:HUMANOID:4FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:HUMANOID_ARMLESS_NECK] [CVCT_REPLACEMENT:HUMANOID_NECK:4FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:BODY_WITH_HEAD_FLAG] [CVCT_REPLACEMENT:HUMANOID:3FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:BASIC_1PARTBODY:BASIC_HEAD] [CVCT_REPLACEMENT:HUMANOID:3FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:BASIC_2PARTBODY:BASIC_HEAD] [CVCT_REPLACEMENT:HUMANOID:3FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:BASIC_1PARTBODY:BASIC_HEAD_NECK] [CVCT_REPLACEMENT:HUMANOID_NECK:3FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:BASIC_2PARTBODY:BASIC_HEAD_NECK] [CVCT_REPLACEMENT:HUMANOID_NECK:3FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:INSECT] [CVCT_REPLACEMENT:HUMANOID_4ARMS:3FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:INSECT_4LEGS_2ARMS] [CVCT_REPLACEMENT:HUMANOID:3FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:SPIDER] [CVCT_REPLACEMENT:HUMANOID_6ARMS:3FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:5TOES_FQ_FINGERS] [CVCT_REPLACEMENT:5FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:4TOES_FQ_FINGERS] [CVCT_REPLACEMENT:4FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:3TOES_FQ_FINGERS] [CVCT_REPLACEMENT:3FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:5TOES_FQ_REG] [CVCT_REPLACEMENT:5FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:4TOES_FQ_REG] [CVCT_REPLACEMENT:4FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:3TOES_FQ_REG] [CVCT_REPLACEMENT:3FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:5TOES_RQ_ANON] [CVCT_REPLACEMENT:5TOES] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:4TOES_RQ_ANON] [CVCT_REPLACEMENT:4TOES] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:3TOES_RQ_ANON] [CVCT_REPLACEMENT:3TOES] ``` -------------------------------- ### Initial Tag Definitions Source: https://github.com/nwesterhausen/dfraw_parser/blob/main/jsonlib/tests/data/c_variation_default.txt Shows initial tag definitions that might be applied to creatures, such as attack preparation and recovery times, attack priority, and special attack properties like venom injection. ```DFRAW [CV_NEW_TAG:ATTACK_PREPARE_AND_RECOVER:4:4] [CV_NEW_TAG:ATTACK_PRIORITY:MAIN] [CV_NEW_TAG:SPECIALATTACK_INJECT_EXTRACT:LOCAL_CREATURE_MAT:VENOM:LIQUID:100:100] ``` -------------------------------- ### dfraw_json_parser CLI Usage and Options Source: https://github.com/nwesterhausen/dfraw_parser/blob/main/cli/README.md This section details the command-line interface for the dfraw_json_parser tool. It outlines the basic usage pattern, default behavior, and provides a comprehensive list of all supported options for parsing various Dwarf Fortress raw file types, controlling output, and specifying input sources. ```sh Usage: dfraw-json-parser [OPTIONS] Default behavior: - Parse the vanilla raws - Parse all object types - Print a summary of the parsed raws - Save the parsed raws to 'parsed-raws.json' - Log at the 'info' level The following options are supported: -c, --creature Parse creature raws -p, --plant Parse plant raws -e, --entity Parse entity raws -i, --inorganic Parse inorganic raws -g, --graphics Parse graphics raws -s, --summary Print a summary of the parsed raws -P, --pretty Pretty-print the parsed raws This is only used when saving the parsed raws to a file. -M, --metadata Attach metadata to the parsed raws This includes the raws' file paths and other information about the raws' source. -o, --output PATH Set the output path for the parsed raws Default value: 'parsed-raws.json' -r, --raw PATH Parse a raw file This can be included multiple times to parse multiple raw files directly. -l, --legends PATH Parse a legends export This can be included multiple times to parse multiple legends exports. These should be 'legends-plus' exports from DFHack. -m, --module PATH Parse a raw module This can be included multiple times to parse multiple raw modules directly. This could be to specify a single raw module to parse, or to specify a raw module to parse in addition to the raw modules specified by the --vanilla, --mods, and --installed flags. -v, --verbose Increase the verbosity of the output Default log level: 'info' This supports up to two levels of verbosity. The first level is 'debug', and the second level is 'trace'. (e.g. '-vv' or '--verbose --verbose') -q, --quiet Decrease the verbosity of the output Default log level: 'info' This supports up to two levels of verbosity. The first level is 'warn', and the second level is 'error'. (e.g. '-qq' or '--quiet --quiet') --vanilla Parse the vanilla raws --mods Parse the raws from all mods --installed Parse the raws from installed mods -h, --help Print this help message -V, --version Print the version number ``` -------------------------------- ### Creature Nail Material and Scratch Attack Definitions Source: https://github.com/nwesterhausen/dfraw_parser/blob/main/jsonlib/tests/data/c_variation_default.txt Defines tags related to nail materials and a 'SCRATCH' attack using nails. It specifies material and tissue templates for nails and defines the scratch attack with parameters for skill, verb, contact, penetration, edge flag, preparation/recovery, and priority. ```dfraw [CREATURE_VARIATION:NAIL_MATERIALS] [CV_NEW_TAG:USE_MATERIAL_TEMPLATE:NAIL:NAIL_TEMPLATE] [CV_NEW_TAG:USE_TISSUE_TEMPLATE:NAIL:NAIL_TEMPLATE] [CV_NEW_TAG:TISSUE_LAYER:BY_CATEGORY:FINGER:NAIL:FRONT] [CREATURE_VARIATION:NAIL_SCRATCH_ATTACK] [CV_NEW_TAG:ATTACK:SCRATCH:CHILD_TISSUE_LAYER_GROUP:BY_TYPE:GRASP:BY_CATEGORY:ALL:NAIL] [CV_NEW_TAG:ATTACK_SKILL:GRASP_STRIKE] [CV_NEW_TAG:ATTACK_VERB:scratch:scratches] [CV_NEW_TAG:ATTACK_CONTACT_PERC:100] [CV_NEW_TAG:ATTACK_PENETRATION_PERC:100] [CV_NEW_TAG:ATTACK_FLAG_EDGE] [CV_NEW_TAG:ATTACK_PREPARE_AND_RECOVER:3:3] [CV_NEW_TAG:ATTACK_PRIORITY:SECOND] ``` -------------------------------- ### DFRaw Climbing Gaits Source: https://github.com/nwesterhausen/dfraw_parser/blob/main/jsonlib/tests/data/c_variation_default.txt Defines standard climbing gaits including scramble, faster climb, fast climb, climb, slow climb, and creep, with associated movement parameters. ```DFRaw [CREATURE_VARIATION:STANDARD_CLIMBING_GAITS] [CV_NEW_TAG:GAIT:CLIMB:Scramble:!ARG4:10:3:!ARG2:50:LAYERS_SLOW:STRENGTH:AGILITY:STEALTH_SLOWS:50] [CV_NEW_TAG:GAIT:CLIMB:Faster Climb:!ARG3:5:3:!ARG2:10:LAYERS_SLOW:STRENGTH:AGILITY:STEALTH_SLOWS:20] [CV_NEW_TAG:GAIT:CLIMB:Fast Climb:!ARG2:NO_BUILD_UP:5:LAYERS_SLOW:STRENGTH:AGILITY:STEALTH_SLOWS:10] [CV_NEW_TAG:GAIT:CLIMB:Climb:!ARG1:NO_BUILD_UP:0] [CV_NEW_TAG:GAIT:CLIMB:Slow Climb:!ARG5:NO_BUILD_UP:0] [CV_NEW_TAG:GAIT:CLIMB:Creep:!ARG6:NO_BUILD_UP:0] ``` -------------------------------- ### DFRaw Creature Variation Object Source: https://github.com/nwesterhausen/dfraw_parser/blob/main/jsonlib/tests/data/c_variation_default.txt Defines the structure and application order for creature variations in DFRaw. It outlines how tags are processed, including removal, conversion, and addition, and how arguments can be utilized. ```DFRaw [OBJECT:CREATURE_VARIATION] Order of application: Remove tags are applied starting from the bottom, then convert tags from the bottom, then add tags from the top. Arguments: If APPLY_CREATURE_VARIATION in the creature raws sends in arguments, you can use them below as !ARG1, !ARG2, etc. The GAIT variations below have some examples. In the creature raws, if an argument is of the form "5|6", for example, it'll be converted to "5:6" in the creature variation, so you can handle variable-token arguments with the | character. Conditional tags: Change TAG to CTAG and add, for example, CV_REMOVE_CTAG:1:YES: to require !ARG1 to be YES to execute the changes. ``` -------------------------------- ### DFRaw Bipedal Gaits Source: https://github.com/nwesterhausen/dfraw_parser/blob/main/jsonlib/tests/data/c_variation_default.txt Defines standard bipedal gaits including walk, run, jog, and their associated movement parameters and modifiers. ```DFRaw [CREATURE_VARIATION:STANDARD_BIPED_GAITS] GAIT:type:name:full speed:build up time:turning max:start speed:energy use use NO_BUILD_UP if you jump immediately to full speed these optional flags go at the end: LAYERS_SLOW - fat/muscle layers slow the movement (muscle-slowing counter-acted by strength bonus) STRENGTH - strength attribute can speed/slow movement AGILITY - agility attribute can speed/slow movement STEALTH_SLOWS: - n is percentage slowed it would be interesting to allow quirky attributes (like mental stats), but they aren't supported yet [CV_NEW_TAG:GAIT:WALK:Sprint:!ARG4:10:3:!ARG2:50:LAYERS_SLOW:STRENGTH:AGILITY:STEALTH_SLOWS:50] [CV_NEW_TAG:GAIT:WALK:Run:!ARG3:5:3:!ARG2:10:LAYERS_SLOW:STRENGTH:AGILITY:STEALTH_SLOWS:20] [CV_NEW_TAG:GAIT:WALK:Jog:!ARG2:NO_BUILD_UP:5:LAYERS_SLOW:STRENGTH:AGILITY:STEALTH_SLOWS:10] [CV_NEW_TAG:GAIT:WALK:Walk:!ARG1:NO_BUILD_UP:0] [CV_NEW_TAG:GAIT:WALK:Stroll:!ARG5:NO_BUILD_UP:0] [CV_NEW_TAG:GAIT:WALK:Creep:!ARG6:NO_BUILD_UP:0] ``` -------------------------------- ### Creature New Tag Definitions Source: https://github.com/nwesterhausen/dfraw_parser/blob/main/jsonlib/tests/data/c_variation_default.txt Specifies new tags for defining various creature attributes and abilities. This includes tags for movement (LARGE_ROAMING), learning (CAN_LEARN), communication (CAN_SPEAK), equipment (EQUIPS), interaction (CAN_DO_INTERACTION), and specific behavioral parameters (CDI tags for name, hint, verb, target, etc.). ```dfraw [CV_NEW_TAG:LARGE_ROAMING] [CV_NEW_TAG:SAVAGE] [CV_NEW_TAG:SELECT_CASTE:ALL] [CV_NEW_TAG:GRAVITATE_BODY_SIZE:70000] [CV_NEW_TAG:CHANGE_FREQUENCY_PERC:10] [CV_NEW_TAG:CAN_LEARN] [CV_NEW_TAG:CAN_SPEAK] [CV_NEW_TAG:EQUIPS] [CV_NEW_TAG:CANOPENDOORS] [CV_NEW_TAG:LOCAL_POPS_CONTROLLABLE] [CV_NEW_TAG:LOCAL_POPS_PRODUCE_HEROES] [CV_NEW_TAG:CAN_DO_INTERACTION:PET_ANIMAL] [CV_NEW_TAG:CDI:ADV_NAME:Pet animal] [CV_NEW_TAG:CDI:USAGE_HINT:GREETING] [CV_NEW_TAG:CDI:BP_REQUIRED:BY_TYPE:GRASP] [CV_NEW_TAG:CDI:VERB:pet:pets:pets] [CV_NEW_TAG:CDI:TARGET:A:SELF_ONLY] [CV_NEW_TAG:CDI:TARGET:B:TOUCHABLE] [CV_NEW_TAG:CDI:TARGET_RANGE:B:1] [CV_NEW_TAG:CDI:MAX_TARGET_NUMBER:B:1] [CV_NEW_TAG:CDI:WAIT_PERIOD:20] ``` -------------------------------- ### DFRaw Crawling Gaits Source: https://github.com/nwesterhausen/dfraw_parser/blob/main/jsonlib/tests/data/c_variation_default.txt Defines standard crawling gaits including scramble, faster crawl, fast crawl, crawl, slow crawl, and creep, with associated movement parameters. ```DFRaw [CREATURE_VARIATION:STANDARD_CRAWLING_GAITS] [CV_NEW_TAG:GAIT:CRAWL:Scramble:!ARG4:10:3:!ARG2:50:LAYERS_SLOW:STRENGTH:AGILITY:STEALTH_SLOWS:50] [CV_NEW_TAG:GAIT:CRAWL:Faster Crawl:!ARG3:5:3:!ARG2:10:LAYERS_SLOW:STRENGTH:AGILITY:STEALTH_SLOWS:20] [CV_NEW_TAG:GAIT:CRAWL:Fast Crawl:!ARG2:NO_BUILD_UP:5:LAYERS_SLOW:STRENGTH:AGILITY:STEALTH_SLOWS:10] [CV_NEW_TAG:GAIT:CRAWL:Crawl:!ARG1:NO_BUILD_UP:0] [CV_NEW_TAG:GAIT:CRAWL:Slow Crawl:!ARG5:NO_BUILD_UP:0] [CV_NEW_TAG:GAIT:CRAWL:Creep:!ARG6:NO_BUILD_UP:0] ``` -------------------------------- ### Creature Hoof Attack Definition Source: https://github.com/nwesterhausen/dfraw_parser/blob/main/jsonlib/tests/data/c_variation_default.txt Defines a 'KICK' attack using the hoof as the body part. It specifies the attack skill, verb, contact percentage, preparation/recovery times, and priority. It includes flags for 'WITH' and 'BAD_MULTIATTACK'. ```dfraw [CREATURE_VARIATION:HOOF_ATTACK] [CV_NEW_TAG:ATTACK:KICK:BODYPART:BY_CATEGORY:HOOF] [CV_NEW_TAG:ATTACK_SKILL:STANCE_STRIKE] [CV_NEW_TAG:ATTACK_VERB:kick:kicks] [CV_NEW_TAG:ATTACK_CONTACT_PERC:100] [CV_NEW_TAG:ATTACK_PREPARE_AND_RECOVER:4:4] [CV_NEW_TAG:ATTACK_PRIORITY:MAIN] [CV_NEW_TAG:ATTACK_FLAG_WITH] [CV_NEW_TAG:ATTACK_FLAG_BAD_MULTIATTACK] ``` -------------------------------- ### Parse Creatures and Plants from Dwarf Fortress Raws Source: https://github.com/nwesterhausen/dfraw_parser/blob/main/README.md This functionality parses Dwarf Fortress raw files to extract information about creatures and plants. It focuses on key details such as descriptions, whether they lay eggs, are milkable, and their size. The output is in JSON format, making it searchable and easier to read than the original raw text files. ```rust fn parse_creatures(raw_data: &str) -> Vec { // Implementation to parse creature data vec![] } fn parse_plants(raw_data: &str) -> Vec { // Implementation to parse plant data vec![] } ``` -------------------------------- ### Creature Punch Attack Definition Source: https://github.com/nwesterhausen/dfraw_parser/blob/main/jsonlib/tests/data/c_variation_default.txt Defines a 'PUNCH' attack for a creature. It specifies the attack type, body part, associated skill (GRASP_STRIKE), verb, contact percentage, and preparation/recovery times. It also sets the attack priority to MAIN and includes a flag for 'WITH'. ```dfraw [CREATURE_VARIATION:PUNCH_ATTACK] [CV_NEW_TAG:ATTACK:PUNCH:BODYPART:BY_CATEGORY:HAND] [CV_NEW_TAG:ATTACK_SKILL:GRASP_STRIKE] [CV_NEW_TAG:ATTACK_VERB:punch:punches] [CV_NEW_TAG:ATTACK_CONTACT_PERC:100] [CV_NEW_TAG:ATTACK_PREPARE_AND_RECOVER:3:3] [CV_NEW_TAG:ATTACK_PRIORITY:MAIN] [CV_NEW_TAG:ATTACK_FLAG_WITH] ``` -------------------------------- ### Creature Tag Conversions and Replacements Source: https://github.com/nwesterhausen/dfraw_parser/blob/main/jsonlib/tests/data/c_variation_default.txt This section details various tag conversions and replacements applied to creature definitions. It includes modifications for body types, finger counts, and specific creature attributes, often used to adapt base creature templates. ```dfraw [CVCT_REPLACEMENT:3TOES] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:5TOES_RQ_REG] [CVCT_REPLACEMENT:5TOES] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:4TOES_RQ_REG] [CVCT_REPLACEMENT:4TOES] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:3TOES_RQ_REG] [CVCT_REPLACEMENT:3TOES] ``` ```dfraw [CV_NEW_TAG:LARGE_ROAMING] [CV_NEW_TAG:SAVAGE] [CV_NEW_TAG:SELECT_CASTE:ALL] [CV_NEW_TAG:GRAVITATE_BODY_SIZE:70000] [CV_NEW_TAG:CHANGE_FREQUENCY_PERC:10] [CV_NEW_TAG:CAN_LEARN] [CV_NEW_TAG:CAN_SPEAK] [CV_NEW_TAG:EQUIPS] [CV_NEW_TAG:CANOPENDOORS] [CV_NEW_TAG:LOCAL_POPS_CONTROLLABLE] [CV_NEW_TAG:LOCAL_POPS_PRODUCE_HEROES] [CV_NEW_TAG:CAN_DO_INTERACTION:PET_ANIMAL] [CV_NEW_TAG:CDI:ADV_NAME:Pet animal] [CV_NEW_TAG:CDI:USAGE_HINT:GREETING] [CV_NEW_TAG:CDI:BP_REQUIRED:BY_TYPE:GRASP] [CV_NEW_TAG:CDI:VERB:pet:pets:pets] [CV_NEW_TAG:CDI:TARGET:A:SELF_ONLY] [CV_NEW_TAG:CDI:TARGET:B:TOUCHABLE] [CV_NEW_TAG:CDI:TARGET_RANGE:B:1] [CV_NEW_TAG:CDI:MAX_TARGET_NUMBER:B:1] [CV_NEW_TAG:CDI:WAIT_PERIOD:20] ``` ```dfraw [CREATURE_VARIATION:ANIMAL_PERSON_LEGLESS] [CV_REMOVE_TAG:NAME] [CV_REMOVE_TAG:GENERAL_CHILD_NAME] [CV_REMOVE_TAG:GENERAL_BABY_NAME] [CV_REMOVE_TAG:CASTE_NAME] [CV_REMOVE_TAG:CHILDNAME] [CV_REMOVE_TAG:BABYNAME] [CV_REMOVE_TAG:SMALL_REMAINS] [CV_REMOVE_TAG:DESCRIPTION] [CV_REMOVE_TAG:CREATURE_TILE] [CV_REMOVE_TAG:COLOR] [CV_REMOVE_TAG:MAXAGE] [CV_REMOVE_TAG:SOUND] [CV_REMOVE_TAG:PET] [CV_REMOVE_TAG:PETVALUE] [CV_REMOVE_TAG:PENETRATEPOWER] [CV_REMOVE_TAG:VERMIN_EATER] [CV_REMOVE_TAG:VERMIN_HATEABLE] [CV_REMOVE_TAG:VERMIN_GROUNDER] [CV_REMOVE_TAG:VERMIN_FISH] [CV_REMOVE_TAG:VERMIN_SOIL] [CV_REMOVE_TAG:VERMIN_SOIL_COLONY] [CV_REMOVE_TAG:VERMIN_ROTTER] [CV_REMOVE_TAG:VERMIN_NOTRAP] [CV_REMOVE_TAG:FISHITEM] [CV_REMOVE_TAG:IMMOBILE_LAND] [CV_REMOVE_TAG:TRIGGERABLE_GROUP] [CV_REMOVE_TAG:PET_EXOTIC] [CV_REMOVE_TAG:NOT_BUTCHERABLE] [CV_REMOVE_TAG:SPEED] [CV_REMOVE_TAG:SWIM_SPEED] [CV_REMOVE_TAG:MUNDANE] [CV_REMOVE_TAG:POPULATION_NUMBER] [CV_REMOVE_TAG:CLUSTER_NUMBER] [CV_REMOVE_TAG:ATTACK] [CV_REMOVE_TAG:ATTACK_SKILL] [CV_REMOVE_TAG:ATTACK_VERB] [CV_REMOVE_TAG:ATTACK_CONTACT_PERC] [CV_REMOVE_TAG:ATTACK_PRIORITY] [CV_REMOVE_TAG:ATTACK_FLAG_WITH] [CV_REMOVE_TAG:ATTACK_PENETRATION_PERC] [CV_REMOVE_TAG:ATTACK_PREPARE_AND_RECOVER] [CV_REMOVE_TAG:ATTACK_FLAG_EDGE] [CV_REMOVE_TAG:ATTACK_FLAG_CANLATCH] [CV_REMOVE_TAG:SPECIALATTACK_INJECT_EXTRACT] [CV_REMOVE_TAG:SPECIALATTACK_SUCK_BLOOD] [CV_REMOVE_TAG:ATTACK_VELOCITY_MODIFIER] [CV_REMOVE_TAG:GAIT] [CV_REMOVE_TAG:UBIQUITOUS] ``` ```dfraw [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:QUADRUPED] [CVCT_REPLACEMENT:HUMANOID_LEGLESS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:QUADRUPED_NECK] [CVCT_REPLACEMENT:HUMANOID_LEGLESS_NECK:3FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:QUADRUPED_HOOF] [CVCT_REPLACEMENT:HUMANOID_LEGLESS:3FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:QUADRUPED_NECK_HOOF] [CVCT_REPLACEMENT:HUMANOID_LEGLESS_NECK:3FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:HUMANOID_ARMLESS] [CVCT_REPLACEMENT:HUMANOID_LEGLESS:4FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:HUMANOID_ARMLESS_NECK] [CVCT_REPLACEMENT:HUMANOID_LEGLESS_NECK:4FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:BODY_WITH_HEAD_FLAG] [CVCT_REPLACEMENT:HUMANOID_LEGLESS:3FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:BASIC_1PARTBODY:BASIC_HEAD] [CVCT_REPLACEMENT:HUMANOID_LEGLESS:3FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:BASIC_2PARTBODY:BASIC_HEAD] [CVCT_REPLACEMENT:HUMANOID_LEGLESS:3FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:BASIC_1PARTBODY:BASIC_HEAD_NECK] [CVCT_REPLACEMENT:HUMANOID_LEGLESS_NECK:3FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:BASIC_2PARTBODY:BASIC_HEAD_NECK] [CVCT_REPLACEMENT:HUMANOID_LEGLESS_NECK:3FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:INSECT] [CVCT_REPLACEMENT:HUMANOID_LEGLESS_4ARMS:3FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:SPIDER] [CVCT_REPLACEMENT:HUMANOID_LEGLESS_6ARMS:3FINGERS] ``` ```dfraw [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:5TOES_FQ_FINGERS] [CVCT_REPLACEMENT:5FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:4TOES_FQ_FINGERS] [CVCT_REPLACEMENT:4FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:3TOES_FQ_FINGERS] [CVCT_REPLACEMENT:3FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:5TOES_FQ_REG] [CVCT_REPLACEMENT:5FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:4TOES_FQ_REG] [CVCT_REPLACEMENT:4FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:3TOES_FQ_REG] [CVCT_REPLACEMENT:3FINGERS] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:5TOES_RQ_ANON] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:4TOES_RQ_ANON] [CV_CONVERT_TAG] [CVCT_MASTER:BODY] [CVCT_TARGET:3TOES_RQ_ANON] ``` -------------------------------- ### DFRaw Combined Walk/Crawl Gaits Source: https://github.com/nwesterhausen/dfraw_parser/blob/main/jsonlib/tests/data/c_variation_default.txt Defines gaits that combine walking and crawling movements, including scramble, faster crawl, fast crawl, crawl, slow crawl, and creep. ```DFRaw [CREATURE_VARIATION:STANDARD_WALK_CRAWL_GAITS] [CV_NEW_TAG:GAIT:WALK:Scramble:!ARG4:10:3:!ARG2:50:LAYERS_SLOW:STRENGTH:AGILITY:STEALTH_SLOWS:50] [CV_NEW_TAG:GAIT:WALK:Faster Crawl:!ARG3:5:3:!ARG2:10:LAYERS_SLOW:STRENGTH:AGILITY:STEALTH_SLOWS:20] [CV_NEW_TAG:GAIT:WALK:Fast Crawl:!ARG2:NO_BUILD_UP:5:LAYERS_SLOW:STRENGTH:AGILITY:STEALTH_SLOWS:10] [CV_NEW_TAG:GAIT:WALK:Crawl:!ARG1:NO_BUILD_UP:0] [CV_NEW_TAG:GAIT:WALK:Slow Crawl:!ARG5:NO_BUILD_UP:0] [CV_NEW_TAG:GAIT:WALK:Creep:!ARG6:NO_BUILD_UP:0] ```