Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- indentations are not necessary. Anything not included in brackets is a comment.
- welcome to DFSL.
- TO DO:
- add no_vegetation_perturb
- [BP_FILE:body_default]
- [CREATURE_FILE:creature_amphibians]
- [CREATURE_FILE:creature_annelids]
- [CREATURE_FILE:creature_birds]
- [CREATURE_FILE:creature_birds_new]
- [CREATURE_FILE:creature_bug_slug_new]
- [CREATURE_FILE:creature_desert_new]
- [CREATURE_FILE:creature_domestic]
- [CREATURE_FILE:creature_insects]
- [CREATURE_FILE:creature_large_mountain]
- [CREATURE_FILE:creature_large_ocean]
- [CREATURE_FILE:creature_large_tropical]
- [CREATURE_FILE:creature_large_tundra]
- [CREATURE_FILE:creature_mountain_new]
- [CREATURE_FILE:creature_next_underground]
- [CREATURE_FILE:creature_ocean_new]
- [CREATURE_FILE:creature_other]
- [CREATURE_FILE:creature_reptiles]
- [CREATURE_FILE:creature_riverlakepool_new]
- [CREATURE_FILE:creature_savage_tropical]
- [CREATURE_FILE:creature_small_mammal_new]
- [CREATURE_FILE:creature_small_mammals]
- [CREATURE_FILE:creature_small_ocean]
- [CREATURE_FILE:creature_small_riverlake]
- [CREATURE_FILE:creature_standard]
- [CREATURE_FILE:creature_subterranean]
- [CREATURE_FILE:creature_temperate_new]
- [CREATURE_FILE:creature_tropical_new]
- [CREATURE_FILE:creature_tundra_taiga_new]
- A list of all the body parts for creatures. If you don't want a bodypart included, just don't add it here.
- BODY is the main tag. What comes next is the bodypart, both added to the raws and pulled from the files.
- The number is the weight - i.e. how often it gets placed.
- [BODY:BASIC_1PARTBODY:32]
- [DESCRIPTION:ADJ:snake-like] an adjective for the description
- [DESCRIPTION:NOUN:creature] a noun for the description
- [BODY:BASIC_1PARTBODY_THOUGHT:4]
- [BODY:BASIC_1PARTBODY_FLYING_HEAD_FLAG_THOUGHT:2]
- [BODY:BASIC_2PARTBODY:83]
- [BODY:BASIC_3PARTARMS:2]
- [BODY:BASIC_3PARTLEGS:2]
- [BODY:BASIC_FRONTLEGS:2]
- [BODY:BASIC_REARLEGS:2]
- [BODY:ARMS_STANCE:4]
- [BODY:7HEADNECKS:2]
- [BODY:BASIC_HEAD:95]
- [BODY:BASIC_HEAD_NECK:12]
- [BODY:BODY_HEAD:4]
- [DESCRIPTION:ADJ:fearsome]
- [DESCRIPTION:NOUN:creature]
- [BODY:BODY_WITH_HEAD_FLAG:9]
- [DESCRIPTION:NOUN:creature] I'm so creative.
- [DESCRIPTION:VERB:is made of a mass of appendages resembling human fingers] this one is actually better.
- [DESCRIPTION:VERB:creeps along the ground like a starfish]
- [BODY:HUMANOID:9]
- [DESCRIPTION:ADJ:humanoid]
- [DESCRIPTION:VERB:walks on two legs]
- [DESCRIPTION:VERB:uses its long arms to strangle its prey] this might not make sense anymore.
- [BODY:HUMANOID_HOOF:2]
- [BODY:HUMANOID_NECK:36]
- [DESCRIPTION:ADJ:humanoid]
- [DESCRIPTION:VERB:walks on two legs]
- [DESCRIPTION:VERB:uses its long arms to strangle its prey] this might not make sense anymore.
- [BODY:HUMANOID_NECK_HOOF:4]
- [BODY:HUMANOID_LEGLESS_NECK:8]
- [DESCRIPTION:ADJ:bat-like]
- [DESCRIPTION:NOUN:creature]
- [BODY:HUMANOID_NECK_FLIER:5]
- [DESCRIPTION:ADJ:bat-like]
- [DESCRIPTION:NOUN:creature]
- [BODY:2WINGS:71]
- [BODY:HUMANOID_ARMLESS:5]
- [DESCRIPTION:NOUN:creature]
- [DESCRIPTION:NOUN:walks with two clawed legs]
- [BODY:HUMANOID_LEGLESS:6]
- [BODY:HUMANOID_4ARMS:4]
- [DESCRIPTION:ADJ:four-armed]
- [DESCRIPTION:NOUN:creature]
- [BODY:HUMANOID_6ARMS:2]
- [BODY:HUMANOID_LEGLESS_4ARMS:2]
- [BODY:HUMANOID_LEGLESS_6ARMS:2]
- [BODY:HUMANOID_NECK_4ARMS:2]
- [BODY:4ARMS_STANCE:3]
- [BODY:HUMANOID_NECK_2HEAD:2]
- [BODY:HUMANOID_SIMPLE:12]
- [DESCRIPTION:ADJ:man-shaped]
- [PREFLIST:simplicity] adds something to the list of preferences a dwarf can have for the creature. poorly implemented, I suppose, as few of these parts use it.
- [BODY:QUADRUPED:3]
- [DESCRIPTION:ADJ:long-bodied]
- [DESCRIPTION:NOUN:quadruped]
- [DESCRIPTION:VERB:runs on four legs] a verb for the description
- [BODY:QUADRUPED_NECK_FRONT_GRASP:24]
- [BODY:QUADRUPED_NECK:108] very common body type.
- [DESCRIPTION:ADJ:long-bodied]
- [DESCRIPTION:NOUN:quadruped]
- [DESCRIPTION:VERB:runs on four legs] a verb for the description
- [BODY:QUADRUPED_NECK_HOOF:28]
- [BODY:INSECT:31]
- [PREFLIST:high-pitched buzz:buzzing]will choose one of the two.
- [DESCRIPTION:NOUN:insect]
- [BODY:INSECT_4LEGS_2ARMS:3]
- [PREFLIST:mystical feel]
- [PREFLIST:mysticism]
- [BODY:SPIDER:62]
- [DESCRIPTION:ADJ:spider-like]
- [DESCRIPTION:DESC:has long, spindly legs]
- [BODY:CRAB_BODY:2]
- [BODY:TWO_NO_CLAW_TENTACLES:2]
- [BODY:TENTACLE_MOUTH:2]
- [BODY:TENTACLE_TEETH:2]
- [BODY:8_SIMPLE_HEAD_ARMS:4]
- [BODY:2_HEAD_CLUBBED_TENTACLES:3]
- [BODY:FOUR_TENTACLES:2]
- [BODY:SIX_TENTACLES:2]
- [BODY:TAIL:238]
- [BODY:SHELL:13]
- [BODY:TAIL_STANCE:3]
- [BODY:TAIL_STINGER:5]
- [BODY:UPPERBODY_PINCERS:7]
- [BODY:2EYES:371]obviously common
- [BODY:3EYES:2]
- [BODY:4EYES:2]
- [BODY:2EYESTALKS:5]
- [BODY:2TUSKS:7]
- [BODY:NOSE:210]
- [BODY:SNOUT_NOSMELL:3]
- [BODY:TRUNK:2]
- [BODY:2EARS:91]
- [BODY:2LUNGS:269]
- [BODY:MOUTH:322]
- [BODY:PROBOSCIS:2]
- [BODY:BEAK:55]
- [BODY:HEART:386]
- [BODY:GUTS:382]
- [BODY:GIZZARD:57]
- [BODY:ORGANS:339]
- [BODY:HUMANOID_JOINTS:89]
- [BODY:THROAT:251]
- [BODY:NECK:253]
- [BODY:SPINE:336]
- [BODY:BRAIN:387]
- [BODY:SKULL:337]
- [BODY:CASQUE:2]
- [BODY:HEAD_HORN:3]
- [BODY:2HEAD_HORN:15]
- [BODY:2HEAD_HORN_NUMBERED:2]
- [BODY:2HEAD_ANTLER:8]
- [BODY:1EYE:2]
- [BODY:BODY_EYE:2]
- [BODY:BODY_EYELID:2]
- [BODY:5FINGERS:32]
- [BODY:4FINGERS:24]
- [BODY:2FINGERS:2]
- [BODY:5TOES:16]
- [BODY:4TOES:65]
- [BODY:3TOES:5]
- [BODY:2TOES:6]
- [BODY:5TOES_FQ_REG:34]here it gets messy.
- [BODY:4TOES_FQ_REG:49]
- [BODY:3TOES_FQ_REG:4]
- [BODY:5TOES_RQ_REG:43]
- [BODY:4TOES_RQ_REG:36]
- [BODY:3TOES_RQ_REG:8]
- [BODY:5TOES_RQ_ANON:25]
- [BODY:5TOES_FQ_FINGERS:24]
- [BODY:4TOES_FQ_FINGERS:4]
- [BODY:SIDE_FINS:66]
- [BODY:DORSAL_FIN:59]
- [BODY:SIDE_FLIPPERS:7]
- [BODY:FRONT_BODY_FLIPPERS:9]
- [BODY:REAR_BODY_FLIPPERS:13]
- [BODY:1HUMP:2]
- [BODY:2HUMPS:2]
- [BODY:CHEEKS:5]
- [BODY:EYELIDS:5]
- [BODY:TONGUE:184]
- [BODY:FORKED_TONGUE:4]
- [BODY:LIPS:2]
- [BODY:FACIAL_FEATURES:50]
- [BODY:ONE_EYELID:2]
- [BODY:RIBCAGE:335]
- [BODY:GENERIC_TEETH_WITH_LARGE_EYE_TEETH:72]
- [BODY:GENERIC_TEETH_WITH_FANGS:14]
- [BODY:RODENT_TEETH:30]
- [BODY:GENERIC_TEETH:76]
- [BODY:TEETH:77]
- [BODY:HAND_FOOT_CENTAUR_NECK:2]
- [DESCRIPTION:ADJ:hideous]
- [BODY:LARGE_MANDIBLES:2]
- [BODY:BILL:8]
- [BODY:HUMANOID_ARMLESS_NECK:58]
- [DESCRIPTION:DESC:has a long neck]
- [DESCRIPTION:DESC:has long legs]
- [PREFLIST:long necks]
- [DESCRIPTION:DESC:bird-like]
- [BODY:TUSK:2]
- [LIST:liquids]defines a new list. This one is for liquids.
- [ADD:liquids:blood]adds "blood" to the list "liquids".
- [ADD:liquids:goo]the "add to list" lines can really be placed anywhere, but I'm putting them here mostly for simplicity.
- [ADD:liquids:slime]
- [ADD:liquids:mucus]
- [ADD:liquids:filth]
- [ADD:liquids:bile]
- [ADD:liquids:ooze]
- [LIST:letters]
- [ADD:letters:a]
- [ADD:letters:a]adding an entry more than once increases the chances of it being used, as you might expect
- [ADD:letters:b]
- [ADD:letters:c]
- [ADD:letters:d]
- [ADD:letters:e]
- [ADD:letters:e]
- [ADD:letters:f]
- [ADD:letters:g]
- [ADD:letters:h]
- [ADD:letters:i]
- [ADD:letters:i]
- [ADD:letters:j]
- [ADD:letters:k]
- [ADD:letters:l]
- [ADD:letters:m]
- [ADD:letters:n]
- [ADD:letters:o]
- [ADD:letters:o]
- [ADD:letters:p]
- [ADD:letters:q]
- [ADD:letters:r]
- [ADD:letters:s]
- [ADD:letters:t]
- [ADD:letters:u]
- [ADD:letters:u]
- [ADD:letters:v]
- [ADD:letters:w]
- [ADD:letters:x]
- [ADD:letters:y]
- [ADD:letters:z]
- [LIST:adj]
- [ADD:adj:freakish]
- [ADD:adj:scary]
- [ADD:adj:terrifying]
- [ADD:adj:calming]
- [ADD:adj:elegant]
- [ADD:adj:impressive]
- [ADD:adj:bizarre]
- [ADD:adj:enormous]
- [ADD:adj:awesome]
- [ADD:adj:unnerving]
- [ADD:adj:freakish]
- [ADD:adj:long]
- [ADD:adj:lustrous]
- [ADD:adj:frightening]
- [ADD:adj:drooping]
- [ADD:adj:sinister]
- [ADD:adj:graceful]
- [ADD:adj:gruesome]
- [LIST:bloodColor]
- [ADD:bloodColor:BLACK]
- [ADD:bloodColor:BLUE]
- [ADD:bloodColor:GREEN]
- [ADD:bloodColor:AQUA]
- [ADD:bloodColor:RED]
- [ADD:bloodColor:VIOLET]
- [ADD:bloodColor:BROWN]
- [ADD:bloodColor:ASH_GRAY]
- [ADD:bloodColor:GRAY]
- [ADD:bloodColor:DARK_BLUE]
- [ADD:bloodColor:TURQUOISE]
- [ADD:bloodColor:DARK_VIOLET]
- [ADD:bloodColor:YELLOW]
- [ADD:bloodColor:WHITE]
- [LIST:skinColor]
- [ADD:skinColor:CLEAR:1]
- [ADD:skinColor:MIDNIGHT_BLUE:1]
- [ADD:skinColor:WHITE:1]
- [ADD:skinColor:BLACK:1]
- [ADD:skinColor:GREEN:1]
- [ADD:skinColor:BLUE:1]
- [ADD:skinColor:ECRU:1]
- [ADD:skinColor:GRAY:1]
- [ADD:skinColor:TAUPE_PALE:1]
- [ADD:skinColor:PINK:1]
- [ADD:skinColor:GOLDENROD:1]
- [LIST:colors]
- [ADD:colors:7:0:0]after "colors:", all instances of ":" are ignored and added to the string. Not true for brackets.
- [ADD:colors:1:0:0]
- [ADD:colors:7:0:1]
- [ADD:colors:0:0:1]
- [ADD:colors:2:0:0]
- [ADD:colors:1:0:1]
- [ADD:colors:7:0:0]
- [ADD:colors:0:0:1]
- [ADD:colors:7:0:1]
- [ADD:colors:5:0:1]
- [ADD:colors:6:0:1]the order of these matches certain other color lists and is important.
- [LIST:scaleList]
- [ADD:scaleList:GOLD:1]
- [ADD:scaleList:RED:1]
- [ADD:scaleList:WHITE:1]
- [ADD:scaleList:CRIMSON:1]
- [ADD:scaleList:BLACK:1]
- [LIST:scaleColor]
- [ADD:scaleColor:5:0:0]color doesn't even look like a word to me anymore.
- [ADD:scaleColor:4:0:1]
- [ADD:scaleColor:7:0:1]
- [ADD:scaleColor:4:0:0]
- [ADD:scaleColor:0:0:1]these match the scaleList values.
- [LIST:hairList]
- [ADD:hairList:GRAY:1]
- [ADD:hairList:BLACK:1]
- [ADD:hairList:YELLOW:1]
- [ADD:hairList:DARK_VIOLET:1]
- [ADD:hairList:BROWN:1]
- [ADD:hairList:WHITE:1]
- [ADD:hairList:BLACK:1]
- [LIST:featherList]
- [ADD:featherList:BROWN:1]
- [ADD:featherList:PURPLE:1]
- [ADD:featherList:GRAY:1]
- [ADD:featherList:BLACK:1]
- [LIST:slimeList]
- [ADD:slimeList:BROWN:1]
- [ADD:slimeList:GREEN:1]
- [ADD:slimeList:CRIMSON:1]
- [ADD:slimeList:YELLOW:1]
- [ADD:slimeList:WHITE:1]
- [ADD:slimeList:GRAY:1]
- [ADD:slimeList:BLACK:1]
- [ADD:slimeList:DARK_VIOLET:1]
- [ADD:slimeList:DARK_GREEN:1]
- [LIST:slimeColor]
- [ADD:slimeColor:6:0:0]
- [ADD:slimeColor:2:0:1]
- [ADD:slimeColor:4:0:0]
- [ADD:slimeColor:6:0:1]
- [ADD:slimeColor:7:0:1]
- [ADD:slimeColor:7:0:0]
- [ADD:slimeColor:0:0:1]
- [ADD:slimeColor:5:0:0]
- [ADD:slimeColor:2:0:0]in case it wasn't obvious, this matches slimelist. Oh, and by the way, the number of items in each list MUST be equal.
- [LIST:eyeList]
- [ADD:eyeList:IRIS_EYE_PURPLE:1]
- [ADD:eyeList:IRIS_EYE_RED:1]
- [ADD:eyeList:BLACK:1]
- [ADD:eyeList:BLACK:1]
- [ADD:eyeList:BLACK:1]
- [ADD:eyeList:IRIS_EYE_GREEN:1]
- [ADD:eyeList:IRIS_EYE_BROWN:1]
- [ADD:eyeList:BLACK:1]
- [ADD:eyeList:BLACK:1]this is all heavily weighted towards black. I don't remember why.
- [ADD:eyeList:IRIS_EYE_GREEN:1]
- [ADD:eyeList:BLACK:1]
- [ADD:eyeList:IRIS_EYE_RED:1]
- [ADD:eyeList:BLACK:1]
- [ADD:eyeList:BLACK:1]
- [ADD:eyeList:GREEN:1]
- [ADD:eyeList:IRIS_EYE_BROWN:1]
- [ADD:eyeList:IRIS_EYE_GOLD:1]
- [ADD:eyeList:IRIS_EYE_YELLOW:1]
- [LIST:stoneName]
- [ADD:stoneName:siltstone]
- [ADD:stoneName:mudstone]
- [ADD:stoneName:claystone]
- [ADD:stoneName:rock salt]
- [ADD:stoneName:dolomite]
- [ADD:stoneName:chert]
- [ADD:stoneName:chalk]
- [ADD:stoneName:granite]
- [ADD:stoneName:diorite]
- [ADD:stoneName:gabbro]
- [ADD:stoneName:rhyolite]
- [ADD:stoneName:basalt]
- [ADD:stoneName:andesite]
- [ADD:stoneName:dacite]
- [ADD:stoneName:obsidian]
- [ADD:stoneName:quartzite]
- [ADD:stoneName:slate]
- [ADD:stoneName:phyllite]
- [ADD:stoneName:schist]
- [ADD:stoneName:gneiss]
- [ADD:stoneName:marble]
- [LIST:stoneID]
- [ADD:stoneID:SILTSTONE]
- [ADD:stoneID:MUDSTONE]
- [ADD:stoneID:CLAYSTONE]
- [ADD:stoneID:ROrCK_SALT]
- [ADD:stoneID:DOLOMITE]
- [ADD:stoneID:CHERT]
- [ADD:stoneID:CHALK]
- [ADD:stoneID:GRANITE]
- [ADD:stoneID:DIORITE]
- [ADD:stoneID:GABBRO]
- [ADD:stoneID:RHYOLITE]
- [ADD:stoneID:BASALT]
- [ADD:stoneID:ANDESITE]
- [ADD:stoneID:DACITE]
- [ADD:stoneID:OBSIDIAN]
- [ADD:stoneID:QUARTZITE]
- [ADD:stoneID:SLATE]
- [ADD:stoneID:PHYLLITE]
- [ADD:stoneID:SCHIST]
- [ADD:stoneID:GNEISS]
- [ADD:stoneID:MARBLE]
- [LIST:stoneColor]
- [ADD:stoneColor:6:0:0]
- [ADD:stoneColor:6:0:0]
- [ADD:stoneColor:0:0:1]
- [ADD:stoneColor:7:0:1]
- [ADD:stoneColor:7:0:1]
- [ADD:stoneColor:6:0:0]
- [ADD:stoneColor:7:0:1]
- [ADD:stoneColor:7:0:0]
- [ADD:stoneColor:0:0:1]
- [ADD:stoneColor:0:0:1]
- [ADD:stoneColor:0:0:1]
- [ADD:stoneColor:0:0:1]
- [ADD:stoneColor:0:0:1]
- [ADD:stoneColor:0:0:1]
- [ADD:stoneColor:0:0:1]
- [ADD:stoneColor:7:0:1]
- [ADD:stoneColor:0:0:1]
- [ADD:stoneColor:0:0:1]
- [ADD:stoneColor:6:0:0]
- [ADD:stoneColor:7:0:1]
- [ADD:stoneColor:7:0:1]
- [LIST:metalName]
- [ADD:metalName:iron]
- [ADD:metalName:gold]
- [ADD:metalName:silver]
- [ADD:metalName:copper]
- [ADD:metalName:nickel]
- [ADD:metalName:zinc]
- [ADD:metalName:bronze]
- [ADD:metalName:brass]
- [ADD:metalName:steel]
- [ADD:metalName:platinum]
- [ADD:metalName:tin]
- [ADD:metalName:lead]
- [ADD:metalName:aluminum]
- [LIST:metalID]
- [ADD:metalID:IRON]
- [ADD:metalID:GOLD]
- [ADD:metalID:SILVER]
- [ADD:metalID:COPPER]
- [ADD:metalID:NICKEL]
- [ADD:metalID:ZINC]
- [ADD:metalID:BRONZE]
- [ADD:metalID:BRASS]
- [ADD:metalID:STEEL]
- [ADD:metalID:PLATINUM]
- [ADD:metalID:TIN]
- [ADD:metalID:LEAD]
- [ADD:metalID:ALUMINUM]
- [LIST:metalColor]
- [ADD:metalColor:0:0:1]
- [ADD:metalColor:6:0:1]
- [ADD:metalColor:7:0:1]
- [ADD:metalColor:6:0:0]
- [ADD:metalColor:7:0:0]
- [ADD:metalColor:7:0:0]
- [ADD:metalColor:6:0:0]
- [ADD:metalColor:6:0:1]
- [ADD:metalColor:0:0:1]
- [ADD:metalColor:7:0:1]
- [ADD:metalColor:7:0:0]
- [ADD:metalColor:0:0:1]
- [ADD:metalColor:7:0:1]
- [BEGIN] All variables defined above this tag are permanent. All the ones below are reset every time you make a creature.
- BEGIN clears all the lists made below this point, as well as the specific creature data, so we can start with a clean slate every time we make a new creature.
- =======Creature creation======= just to show it's the end of the last section.
- [IF:(RND:0:33):1] 1in 33 chance of adding next stuff
- [TAG_ADD:{CANOPENDOORS}{EQUIPS}{INTELLIGENT}] 1 in 33 chance of possible free civ. {these brackets} are converted to the standard raw type as the actual file is compiled.
- [CAN_OPEN_DOORS] set value to true, same for next two
- [EQUIPS]
- [INTELLIGENT]
- Megabeasts and semimegabeasts come next. Their stuff is just easier to add earlier on.
- [ELSEIF:(RND:1:100):1] 1 in 100 chance of a semimegabeast, after the 1 in 33 chance of a new civ.
- [CAN_CIV:FALSE]
- [SEMI]
- [TAG_ADD:{SEMIMEGABEAST}{DIFFICULTY:5}]
- [TAG_ADD: {ATTACK_TRIGGER:50:5000:50000}]
- [TAG_ADD:{CAN_LEARN}{CAN_SPEAK}{CANOPENDOORS}{EQUIPS}{FANCIFUL}]
- [TAG_ADD:{BUILDINGDESTROYER:2}]
- [INT:L1:(RND:2:6)] defining a new integer. These are messily done. Careful with them. Defining a
- variable is permanent (for this particular creature) - it can be used across the entire script,
- regardless of whether it was inside a loop or if/then statement. All variables are removed and reset
- (except for the ones defined above the BEGIN tag) at the start of every creature creation phase.
- [FOR:i:1:L1] for i = 1 to L1, or for (i=1;i<L1;i++); for java coders
- [TAG_ADD:{SPHERE:(RANDOM_SPHERE)}]adds a random sphere.
- [X] end if/end loop tag. empty lines can be used too. Comment lines don't count.
- [IF:(RND:1:4):<>:1]if random number between 1 and 4 is not 1
- [TAG_ADD:{LAIR:SIMPLE_BURROW:100}] you're a little nothing.
- [ELSE] the else script tag thing. If this is called, then YAUR A MINOTAUR type beast.
- [TAG_ADD:{PERSONALITY:BRAVERY:75:90:100}]
- [TAG_ADD:{NATURAL_SKILL:WRESTLING:6}]
- [TAG_ADD:{NATURAL_SKILL:BITE:3}]
- [TAG_ADD:{NATURAL_SKILL:GRASP_STRIKE:6}]
- [TAG_ADD:{NATURAL_SKILL:STANCE_STRIKE:6}]
- [TAG_ADD:{NATURAL_SKILL:MELEE_COMBAT:8}]
- [TAG_ADD:{NATURAL_SKILL:DODGING:6}]
- [TAG_ADD:{NATURAL_SKILL:AXE:8}]
- [TAG_ADD:{NATURAL_SKILL:SWORD:8}]
- [TAG_ADD:{NATURAL_SKILL:DAGGER:8}]
- [TAG_ADD:{NATURAL_SKILL:PIKE:8}]
- [TAG_ADD:{NATURAL_SKILL:MACE:8}]
- [TAG_ADD:{NATURAL_SKILL:HAMMER:8}]
- [TAG_ADD:{NATURAL_SKILL:WHIP:8}]
- [TAG_ADD:{NATURAL_SKILL:SPEAR:8}]
- [TAG_ADD:{NATURAL_SKILL:SITUATIONAL_AWARENESS:12}]
- [TAG_ADD:{PHYS_ATT_RANGE:STRENGTH:1000:1100:1150:1250:1350:1550:2250}]
- [TAG_ADD:{PHYS_ATT_RANGE:TOUGHNESS:1000:1100:1150:1250:1350:1550:2250}]
- [TAG_ADD:{PHYS_ATT_RANGE:AGILITY:1000:1100:1150:1250:1350:1550:2250}]
- [TAG_ADD:{PHYS_ATT_RANGE:ENDURANCE:1000:1100:1150:1250:1350:1550:2250}]
- [TAG_ADD:{PHYS_ATT_RANGE:RECUPERATION:1000:1100:1150:1250:1350:1550:2250}]
- [TAG_ADD:{PHYS_ATT_RANGE:DISEASE_RESISTANCE:1000:1100:1150:1250:1350:1550:2250}]
- [TAG_ADD:{MENT_ATT_RANGE:FOCUS:1000:1100:1150:1250:1350:1550:2250}]
- [TAG_ADD:{MENT_ATT_RANGE:WILLPOWER:1000:1100:1150:1250:1350:1550:2250}]
- [TAG_ADD:{MENT_ATT_RANGE:MEMORY:2000:2100:2150:2250:2350:2550:3250}]
- [TAG_ADD:{MENT_ATT_RANGE:SPATIAL_SENSE:2000:2100:2150:2250:2350:2550:3250}]
- [TAG_ADD:{MENT_ATT_RANGE:KINESTHETIC_SENSE:1000:1100:1150:1250:1350:1550:2250}]
- [TAG_ADD:{LAIR:LABYRINTH:100}]
- [TAG_ADD:{LAIR_HUNTER}]
- [TAG_ADD:{LAIR_HUNTER_SPEECH:lair_hunter_minotaur.txt}]
- [TAG_ADD:{HABIT_NUM:TEST_ALL}]
- [TAG_ADD:{HABIT:GRIND_BONE_MEAL:100}]
- [TAG_ADD:{HABIT:EAT_BONE_PORRIDGE:100}]
- [TAG_ADD:{HABIT:USE_ANY_MELEE_WEAPON:100}]this time, using a blank line to end the if/then, just to show how it works:
- [ELSEIF:(RND:1:100):1]1 in 100 megabeast... after civs and semimegabeasts.
- greetings. this is your captain sspeaking. You are all screwed. Thank you for choosing Talv Airlines, and I bid you all a good day.
- [CAN_CIV:FALSE] just to keep the big ol' brutes from making their own civs.
- [IF:(RND:0:3):1]
- [TAG_ADD:{MEGABEAST}{DIFFICULTY:15}] 11 or higher doesn't get assigne in adv mode quests.
- [ELSE]
- [TAG_ADD:{MEGABEAST}{DIFFICULTY:10}]
- [X]
- [TAG_ADD: {ATTACK_TRIGGER:80:10000:100000}]
- [TAG_ADD:{FANCIFUL}{LARGE_PREDATOR}{LIKES_FIGHTING}{NOFEAR}{NOEXERT}]
- [TAG_ADD:{FREQUENCY:5}]
- [TAG_ADD:{GRASSTRAMPLE:50}]
- [TAG_ADD:{PETVALUE:10000}]
- [TAG_ADD:{PET_EXOTIC}{TRAINABLE}{MOUNT_EXOTIC}]
- [INT:L2:(RND:2:6)]
- [FOR:i:1:L2]
- [TAG_ADD:{SPHERE:(RANDOM_SPHERE)}] I'll show off by ending this with a blank line:
- [IF:(RND:0:1):1]
- [TAG_ADD:{NOSTUN}{NOPAIN}]
- [INT:X1:(RND:1:4)]
- [IF:X1:1]
- [TAG_ADD:{LAIR:WILDERNESS_LOCATION:100}]
- [ELSEIF:X1:2]
- [TAG_ADD:{LAIR:SHRINE:100}]
- [ELSE]
- [TAG_ADD:{LAIR:SIMPLE_BURROW:100}]
- [X1:(RND:1:4)] setting variables is easy.
- First, a dash of dragon.
- [IF:X1:1] I'll admit, though, using Toady's raws format is a bit messy with operators.
- [TAG_ADD:{MENT_ATT_RANGE:WILLPOWER:3000:3500:3750:4000:4250:4500:5000}]
- [TAG_ADD:{HABIT_NUM:TEST_ALL}]
- [TAG_ADD:{HABIT:COLLECT_WEALTH:100}]
- [TAG_ADD:{NATURAL_SKILL:BITE:6}]
- [TAG_ADD:{NATURAL_SKILL:GRASP_STRIKE:6}]
- [TAG_ADD:{NATURAL_SKILL:RANGED_COMBAT:6}]
- [TAG_ADD:{NATURAL_SKILL:MELEE_COMBAT:6}]
- [TAG_ADD:{NATURAL_SKILL:DODGING:6}]
- [TAG_ADD:{NATURAL_SKILL:SITUATIONAL_AWARENESS:6}]
- [ELSEIF:X1:2]A case of colossus.
- don't do anything!
- [ELSEIF:X1:3]A hint of hydra.
- [TAG_ADD:{LAIR_HUNTER}]
- [TAG_ADD:{NATURAL_SKILL:BITE:6}]
- [TAG_ADD:{NATURAL_SKILL:GRASP_STRIKE:6}]
- [TAG_ADD:{NATURAL_SKILL:MELEE_COMBAT:6}]
- [TAG_ADD:{NATURAL_SKILL:DODGING:6}]
- [TAG_ADD:{NATURAL_SKILL:SITUATIONAL_AWARENESS:6}]
- [ELSE]A ray of roc.
- [TAG_ADD:{HABIT_NUM:TEST_ALL}]
- [TAG_ADD:{HABIT:GIANT_NEST:100}]
- [TAG_ADD:{NATURAL_SKILL:BITE:6}]
- [TAG_ADD:{NATURAL_SKILL:STANCE_STRIKE:6}]
- [TAG_ADD:{NATURAL_SKILL:MELEE_COMBAT:6}]
- [TAG_ADD:{NATURAL_SKILL:DODGING:6}]
- [TAG_ADD:{NATURAL_SKILL:SITUATIONAL_AWARENESS:6}]
- [X]
- [INT:R:(RND:1:4)]
- [IF:R:4] cue skyrim theme
- [IS_FIRE_BREATHER]
- [ADD_TAG:{CAN_DO_INTERACTION:MATERIAL_EMISSION}]
- [ADD_TAG: {CDI:ADV_NAME:Breathe fire}]I am a servant of the secret fire
- [ADD_TAG: {CDI:USAGE_HINT:ATTACK}]
- [ADD_TAG: {CDI:BP_REQUIRED:BY_CATEGORY:MOUTH}]
- [ADD_TAG: {CDI:FLOW:DRAGONFIRE}] Wielder of the flame of anor
- [ADD_TAG: {CDI:TARGET:C:LINE_OF_SIGHT}]
- [ADD_TAG: {CDI:TARGET_RANGE:C:15}]
- [ADD_TAG: {CDI:MAX_TARGET_NUMBER:C:1}]
- [ADD_TAG: {CDI:WAIT_PERIOD:50}]
- [ADD_TAG:{FIREIMMUNE_SUPER}]
- [ELSEIF:R:3] It's made of bronze.
- [IS_BRONZE]
- [ADD_TAG:{NOT_BUTCHERABLE}]
- [X]
- [X]
- Here's the stuff for pets.
- [IF:can_civ:false] if the civilization cannnot be made into a civ, basically
- [IF:(RND:0:277):<:61]if a random number between 0 and 277 is less than 61
- [TAG_ADD:{PET}]
- [ELSEIF:(RND:0:277):<:30] this fixes a bug in the old version
- [TAG_ADD:{PET_EXOTIC}] the blank line ends the if statement:
- [IF:(RND:0:277):<:150]
- [TAG_ADD:{MOUNT_EXOTIC}]
- [DESCRIPTION:VERB:can be ridden] yeah, you can add these here too.
- [IF:(RND:0:277):<:4]
- [TAG_ADD:{GLOWTILE:9}{GLOWCOLOR:(RND:1:7):0:1}]bit of fanciness that activates the RND stuff and adds a number to the tag between 1 and 7.
- [IF:(RND:0:277):<:28]
- [TAG_ADD:{TRAINABLE}]
- [DESCRIPTION:VERB:can be trained for war]
- [X]
- [X]
- double line break to end the if-then statements. the bracketed X is optional.
- tag stuff.
- [IF:MEGABEAST:FALSE]
- [IF:(RND:1:1000):<:7]
- [TAG_ADD:{AT_PEACE_WITH_WILDLIFE}]
- [DESCRIPTION:DESC:few natural predators]
- [PREFLIST:peacefulness]
- [IF:(RND:1:1000):<:4]
- [TAG_ADD:{ADOPTS_OWNER}]
- [PREFLIST:aloofness]
- [IF:(RND:1:1000):<:4]
- [TAG_ADD:{AMBUSHPREDATOR}]
- [PREFLIST:mystery]
- [DESCRIPTION:VERB:waits for its prey to pass before striking]
- [IF:(RND:1:1000):<:72]
- [TAG_ADD:{BUILDINGDESTROYER:1}]
- [ELSEIF:(RND:1:1000):<:4]
- [TAG_ADD:{BUILDINGDESTROYER:2}]
- [IF:(RND:1:1000):<:72]
- [TAG_ADD:{INTELLIGENT}]
- [INTELLIGENT]
- [PREFLIST:distinct culture]
- [DESCRIPTION:VERB:is very intelligent]
- [ELSEIF:(RND:1:1000):<:25]
- [TAG_ADD:{CAN_LEARN}{SLOW_LEARNER}]
- [ELSEIF:(RND:1:1000):<:72]
- [TAG_ADD:{CAN_LEARN}]
- [DESCRIPTION:ADJ:intelligent]
- [DESCRIPTION:VERB:likes learning new things]
- [IF:(RND:1:1000):<:137]
- [TAG_ADD:{CANOPENDOORS}]
- [CAN_OPEN_DOORS]
- [IF:(RND:1:1000):<:130]
- [TAG_ADD:{EQUIPS}]
- [DESCRIPTION:VERB:can equip weapons and armor]
- [IF:(RND:1:1000):<:76]
- [TAG_ADD:{FANCIFUL}]
- [DESRIPTION:ADJ:well-known]
- [IF:(RND:1:1000):<:365]
- [TAG_ADD:{GRASSTRAMPLE:0}]
- [ELSEIF:(RND:1:1000):<:7]
- [TAG_ADD:{GRASSTRAMPLE:10}]
- [ELSEIF:(RND:1:1000):<:36]
- [TAG_ADD:{GRASSTRAMPLE:20}]
- [ELSEIF:(RND:1:1000):<:76]
- [TAG_ADD:{GRASSTRAMPLE:50}]
- [IF:(RND:1:1000):<:181]
- [TAG_ADD:{GRAZER}]
- [DESCRIPTION:NOUN:grazer]
- [IS_GRAZER]
- [IF:(RND:1:1000):<:4]
- [TAG_ADD:{HUNTS_VERMIN}]
- [DESCRIPTION:VERB:hunts vermin]
- [IF:(RND:1:1000):<:274]
- [TAG_ADD:{LARGE_PREDATOR}]
- [OR]
- [DESCRIPTION:NOUN:predator]
- [BREAK]
- [X]
- [IS_HUNTER]
- [IF:(RND:1:1000):<:87]
- [TAG_ADD:{LIKES_FIGHTING}]
- [DESCRIPTION:ADJ:violent]
- [PREFLIST:attitude]
- [LIKES_FIGHTING]
- [IF:(RND:1:1000):<:43]
- [TAG_ADD:{LOOSE_CLUSTERS}]
- [DESCRIPTION:VERB:likes wandering alone]
- [IF:(RND:1:1000):<:509]
- [TAG_ADD:{MEANDERER}]
- [IS_ROAMER]
- [X]
- [X]
- [IF:(RND:1:1000):<:112]
- [TAG_ADD:{AMPHIBIOUS}]
- [DESCRIPTION:VERB:is at home both in water and on land]
- [AMPHIBIOUS]
- [IF:(RND:1:1000):<:117]
- [TAG_ADD:{BONECARN}]
- [DESCRIPTION:VERB:feigns eath until a victim passes by:likes to gnaw on old bones:eats the bones of the dead]
- [PREFLIST:savage ways:primitive habits]
- [IF:(RND:1:1000):<:195]
- [TAG_ADD:CARNIVORE]
- [OR] chooses one at random from the following, before a line break or bracketed capital X
- [DESCRIPTION:NOUN:carnivore]
- [DESCRIPTION:ADJ:carnivorous]
- [X]
- [OR]
- [DESCRIPTION:ADJ:predatory]
- [BREAK] a chance to do nothing at all.
- [X]
- [OR]
- [DESCRIPTION:ADJ:scavenging]
- [BREAK]
- [X]
- [PREFLIST:eating habits]
- [IF:(RND:1:1000):<:79]
- [TAG_ADD:{CURIOUSBEAST_EATER}]
- [CURIOUS_COUNT:+:1]
- [TYPE_CUR:eating the provisions of outposts]
- [IF:(RND:1:1000):<:43]
- [TAG_ADD:{CURIOUSBEAST_GUZZLER}]
- [CURIOUS_COUNT:+:1]
- [TYPE_CUR:drinking the provisions of outposts]
- [IF:(RND:1:1000):<:43]
- [TAG_ADD:{CURIOUSBEAST_ITEM}]
- [CURIOUS_COUNT:+:1]
- [TYPE_CUR:stealing items from outposts]
- [IF:(RND:1:1000):<:126]
- [TAG_ADD:{EXTRAVISION}]
- [IF:(RND:1:1000):<:25]
- [TAG_ADD:{FIREIMMUNE}]
- [DESCRIPTION:ADJ:fire-immune]
- [ELSEIF:(RND:1:1000):<:7]
- [TAG_ADD:{FIREIMMUNE_SUPER}]
- [DESCRIPTION:ADJ:fire-immune]
- [IF:(RND:1:1000):<:4]
- [TAG_ADD:{FLEEQUICK}]
- [IF:(RND:1:1000):<:125] birds. for the birds. all the birds. all is birds.
- [TAG_ADD:{FLIER}]
- [FLIES]
- [IF:(RND:1:1000):<:11]
- [TAG_ADD:{LIGHT_GEN}]
- [DESCRIPTION:VERB:glows with its own light]
- [IF:(RND:1:1000):<:7]
- [TAG_ADD:{LOCKPICKER}]
- [DESCRIPTION:VERB:likes wandering alone]
- [IF:(RND:1:1000):<:18]
- [TAG_ADD:{MAGMA_VISION}]
- [DESCRIPTION:DESC:feels at home in magma]
- [IF:(RND:1:1000):<:7]
- [TAG_ADD:{MISCHIEVOUS}]
- [DESCRIPTION:ADJ:mischievous]
- [DESCRIPTION:DESC:is very curious about everything]
- [IF:(RND:1:1000):<:116]
- [TAG_ADD:{NO_DIZZINESS}]
- [IF:(RND:1:1000):<:350]
- [TAG_ADD:{NO_DRINK}]
- [IF:(RND:1:1000):<:54]
- [TAG_ADD:{NO_EAT}]
- [IF:(RND:1:1000):<:65]
- [TAG_ADD:{NO_FEVERS}]
- [DESCRIPTION:VERB:never becomes ill]
- [IF:(RND:1:1000):<:231]
- [TAG_ADD:{NO_SLEEP}]
- [OR]
- [DESCRIPTION:VERB:never seems to sleep]
- [BREAK]
- [X]
- [IF:(RND:1:1000):<:65]
- [TAG_ADD:{NO_THOUGHT_CENTER_FOR_MOVEMENT}]
- [HAS_BRAIN]
- [IF:(RND:1:1000):<:246]
- [TAG_ADD:{NOBONES}]
- [IF:(RND:1:1000):<:65]
- [TAG_ADD:{NOBREATHE}]
- [NO_BREATHE]
- [IF:(RND:1:1000):<:61]
- [TAG_ADD:{NOEMOTION}]
- [DESCRIPTION:ADJ:unemotional]
- [IF:CURIOUS_COUNT:>:1]
- [DESCRIPTION:VERB:is fond of raiding the supplies of outposts]
- [DESCRIPTION:VERB:is a very curious creature]
- [ELSEIF:CURIOUS_COUNT:1]
- [DESCRIPTION:VERB:is a very curious creature]
- [DESCRIPTION:VERB:is fond of (TYPE_CUR)] fancy line for adding the contents of a string.
- [X]
- now we mark all intelligent creatures that are civ-able as sentient.
- [IF:INTELLIGENT]
- [IF:CAN_OPEN_DOORS]
- [IF:EQUIPS]
- [SENTIENT]
- [X]
- [X]
- [X]
- original code has a comment here: ____________BIG SPLIT HERE___________
- [IF:IS_HUNTER]
- [IF:FLIES]
- [DESCRIPTION:VERB:hunt its prey through flight]
- [IF:LIKES_FIGHTING]
- [DESCRIPTION:VERB:likes to kill passing creatures]
- [X]
- [ELSE]
- [IF:FLIES]
- [DESCRIPTION:VERB:flies to escape enemies]
- [IF:LIKES_FIGHTING]
- [DESCRIPTION:VERB:likes to fight passing creatures]
- [X]
- [X]
- [IF:IS_GRAZER]
- [FOODWORD:plants]
- [X]
- [IF:IS_HUNTER]
- [FOODWORD:prey]
- [X]
- Biome stuff.
- All of these are default vanilla values, extracted from the original raws with a program I threw together.
- I excluded the rarest combinations for the sake of keeping this short.
- Therefore, if something happens only once in the raws, RandCreatures won't imitate it.
- In the old version, biomes were chosen at random, though weighted.
- That means a creature could be found in two completely different biomes, like frozen tundra and jungle.
- This fixes that. And you have full access to it - congrats. :)
- [BIOME:ANY_POOL:11] biome starter:tag to add to raws:weight against other starter tags
- [ANY_LAKE:2] the 2 is the chance to add alongside above biome tag; in this case 2*(100/11)%, or about an 18% chance.
- [NOT_FREEZING:2]
- [X]
- [BIOME:FOREST_TAIGA:19]
- [GRASSLAND_TEMPERATE:5]
- [SAVANNA_TEMPERATE:5]
- [SHRUBLAND_TEMPERATE:7]
- [ANY_TEMPERATE_FOREST:14]
- [ANY_DESERT:4]
- [MOUNTAIN:3]
- [TUNDRA:6]
- [ANY_TEMPERATE_WETLAND:3]
- [X]
- [BIOME:ANY_TROPICAL:5]
- [DESERT_BADLAND:4]
- [DESERT_ROCK:4]
- [DESERT_SAND:4]
- [BIOME:GRASSLAND_TEMPERATE:27]
- [FOREST_TAIGA:5]
- [SAVANNA_TEMPERATE:24]
- [SHRUBLAND_TEMPERATE:20]
- [FOREST_TEMPERATE_BROADLEAF:3]
- [FOREST_TEMPERATE_CONIFER:3]
- [MARSH_TEMPERATE_FRESHWATER:2]
- [MARSH_TEMPERATE_SALTWATER:2]
- [ANY_TEMPERATE_FOREST:9]
- [ANY_DESERT:7]
- [TUNDRA:5]
- [SAVANNA_TROPICAL:2]
- [GRASSLAND_TROPICAL:2]
- [ANY_TEMPERATE_WETLAND:4]
- [SHRUBLAND_TROPICAL:2]
- [BIOME:SAVANNA_TEMPERATE:25]
- [FOREST_TAIGA:5]
- [GRASSLAND_TEMPERATE:24]
- [SHRUBLAND_TEMPERATE:21]
- [FOREST_TEMPERATE_BROADLEAF:3]
- [FOREST_TEMPERATE_CONIFER:3]
- [MARSH_TEMPERATE_FRESHWATER:2]
- [MARSH_TEMPERATE_SALTWATER:2]
- [ANY_TEMPERATE_FOREST:9]
- [ANY_DESERT:6]
- [TUNDRA:3]
- [SAVANNA_TROPICAL:2]
- [GRASSLAND_TROPICAL:2]
- [ANY_TEMPERATE_WETLAND:4]
- [SHRUBLAND_TROPICAL:2]
- [BIOME:SHRUBLAND_TEMPERATE:30]
- [FOREST_TAIGA:7]
- [GRASSLAND_TEMPERATE:20]
- [SAVANNA_TEMPERATE:21]
- [FOREST_TEMPERATE_BROADLEAF:3]
- [FOREST_TEMPERATE_CONIFER:3]
- [ANY_TEMPERATE_FOREST:18]
- [ANY_DESERT:6]
- [MOUNTAIN:4]
- [TUNDRA:4]
- [SAVANNA_TROPICAL:2]
- [GRASSLAND_TROPICAL:2]
- [ANY_TEMPERATE_WETLAND:4]
- [ANY_TROPICAL_FOREST:2]
- [SHRUBLAND_TROPICAL:4]
- [BIOME:FOREST_TEMPERATE_BROADLEAF:9]
- [GRASSLAND_TEMPERATE:3]
- [SAVANNA_TEMPERATE:3]
- [SHRUBLAND_TEMPERATE:3]
- [FOREST_TEMPERATE_CONIFER:2]
- [FOREST_TROPICAL_CONIFER:2]
- [FOREST_TROPICAL_DRY_BROADLEAF:2]
- [BIOME:FOREST_TEMPERATE_CONIFER:3]
- [GRASSLAND_TEMPERATE:3]
- [SAVANNA_TEMPERATE:3]
- [SHRUBLAND_TEMPERATE:3]
- [FOREST_TEMPERATE_BROADLEAF:2]
- [BIOME:MARSH_TEMPERATE_FRESHWATER:9]
- [GRASSLAND_TEMPERATE:2]
- [SAVANNA_TEMPERATE:2]
- [MARSH_TEMPERATE_SALTWATER:7]
- [MARSH_TROPICAL_FRESHWATER:6]
- [MARSH_TROPICAL_SALTWATER:5]
- [SWAMP_TEMPERATE_FRESHWATER:3]
- [SWAMP_TROPICAL_FRESHWATER:2]
- [BIOME:MARSH_TEMPERATE_SALTWATER:7]
- [GRASSLAND_TEMPERATE:2]
- [SAVANNA_TEMPERATE:2]
- [MARSH_TEMPERATE_FRESHWATER:7]
- [MARSH_TROPICAL_FRESHWATER:5]
- [MARSH_TROPICAL_SALTWATER:5]
- [BIOME:OCEAN_ARCTIC:22]
- [OCEAN_TEMPERATE:13]
- [RIVER_TEMPERATE_FRESHWATER:4]
- [RIVER_TEMPERATE_BRACKISHWATER:4]
- [RIVER_TEMPERATE_SALTWATER:4]
- [BIOME:ANY_WETLAND:9]
- [ANY_TEMPERATE_FOREST:3]
- [FOREST_TROPICAL_CONIFER:2]
- [FOREST_TROPICAL_DRY_BROADLEAF:2]
- [ANY_SHRUBLAND:6]
- [ANY_SAVANNA:6]
- [ANY_GRASSLAND:7]
- [ANY_DESERT:5]
- [MOUNTAIN:2]
- [TUNDRA:2]
- [ANY_FOREST:3]
- [BIOME:ANY_TEMPERATE_FOREST:38]
- [FOREST_TAIGA:14]
- [GRASSLAND_TEMPERATE:9]
- [SAVANNA_TEMPERATE:9]
- [SHRUBLAND_TEMPERATE:18]
- [ANY_WETLAND:3]
- [FOREST_TROPICAL_CONIFER:2]
- [FOREST_TROPICAL_DRY_BROADLEAF:2]
- [ANY_SHRUBLAND:3]
- [ANY_SAVANNA:3]
- [ANY_GRASSLAND:3]
- [ANY_DESERT:7]
- [MOUNTAIN:5]
- [TUNDRA:4]
- [ANY_TEMPERATE_WETLAND:4]
- [ANY_TROPICAL_FOREST:5]
- [SHRUBLAND_TROPICAL:2]
- [BIOME:FOREST_TROPICAL_CONIFER:5]
- [FOREST_TEMPERATE_BROADLEAF:2]
- [ANY_WETLAND:2]
- [ANY_TEMPERATE_FOREST:2]
- [FOREST_TROPICAL_DRY_BROADLEAF:4]
- [ANY_SHRUBLAND:2]
- [ANY_SAVANNA:2]
- [ANY_GRASSLAND:2]
- [ANY_DESERT:3]
- [BIOME:FOREST_TROPICAL_DRY_BROADLEAF:7]
- [FOREST_TEMPERATE_BROADLEAF:2]
- [ANY_WETLAND:2]
- [ANY_TEMPERATE_FOREST:2]
- [FOREST_TROPICAL_CONIFER:4]
- [ANY_SHRUBLAND:2]
- [ANY_SAVANNA:2]
- [ANY_GRASSLAND:2]
- [ANY_DESERT:2]
- [FOREST_TROPICAL_MOIST_BROADLEAF:3]
- [BIOME:ANY_SHRUBLAND:9]
- [ANY_WETLAND:6]
- [ANY_TEMPERATE_FOREST:3]
- [FOREST_TROPICAL_CONIFER:2]
- [FOREST_TROPICAL_DRY_BROADLEAF:2]
- [ANY_SAVANNA:9]
- [ANY_GRASSLAND:9]
- [ANY_DESERT:7]
- [MOUNTAIN:3]
- [TUNDRA:3]
- [ANY_FOREST:5]
- [BIOME:ANY_SAVANNA:9]
- [ANY_WETLAND:6]
- [ANY_TEMPERATE_FOREST:3]
- [FOREST_TROPICAL_CONIFER:2]
- [FOREST_TROPICAL_DRY_BROADLEAF:2]
- [ANY_SHRUBLAND:9]
- [ANY_GRASSLAND:9]
- [ANY_DESERT:7]
- [MOUNTAIN:3]
- [TUNDRA:3]
- [ANY_FOREST:5]
- [BIOME:ANY_GRASSLAND:11]
- [ANY_WETLAND:7]
- [ANY_TEMPERATE_FOREST:3]
- [FOREST_TROPICAL_CONIFER:2]
- [FOREST_TROPICAL_DRY_BROADLEAF:2]
- [ANY_SHRUBLAND:9]
- [ANY_SAVANNA:9]
- [ANY_DESERT:8]
- [MOUNTAIN:3]
- [TUNDRA:3]
- [ANY_FOREST:5]
- [BIOME:ANY_DESERT:27]
- [FOREST_TAIGA:4]
- [GRASSLAND_TEMPERATE:7]
- [SAVANNA_TEMPERATE:6]
- [SHRUBLAND_TEMPERATE:6]
- [ANY_WETLAND:5]
- [ANY_TEMPERATE_FOREST:7]
- [FOREST_TROPICAL_CONIFER:3]
- [FOREST_TROPICAL_DRY_BROADLEAF:2]
- [ANY_SHRUBLAND:7]
- [ANY_SAVANNA:7]
- [ANY_GRASSLAND:8]
- [MOUNTAIN:6]
- [TUNDRA:6]
- [SAVANNA_TROPICAL:4]
- [GRASSLAND_TROPICAL:4]
- [ANY_TEMPERATE_WETLAND:2]
- [ANY_TROPICAL_FOREST:2]
- [SHRUBLAND_TROPICAL:2]
- [SWAMP_MANGROVE:2]
- [ANY_FOREST:5]
- [BIOME:MOUNTAIN:17]
- [FOREST_TAIGA:3]
- [SHRUBLAND_TEMPERATE:4]
- [ANY_WETLAND:2]
- [ANY_TEMPERATE_FOREST:5]
- [ANY_SHRUBLAND:3]
- [ANY_SAVANNA:3]
- [ANY_GRASSLAND:3]
- [ANY_DESERT:6]
- [TUNDRA:5]
- [SWAMP_MANGROVE:2]
- [ANY_FOREST:3]
- [BIOME:TUNDRA:17]
- [FOREST_TAIGA:6]
- [GRASSLAND_TEMPERATE:5]
- [SAVANNA_TEMPERATE:3]
- [SHRUBLAND_TEMPERATE:4]
- [ANY_WETLAND:2]
- [ANY_TEMPERATE_FOREST:4]
- [ANY_SHRUBLAND:3]
- [ANY_SAVANNA:3]
- [ANY_GRASSLAND:3]
- [ANY_DESERT:6]
- [MOUNTAIN:5]
- [ANY_TEMPERATE_WETLAND:2]
- [ANY_FOREST:2]
- [GLACIER:4]
- [BIOME:SAVANNA_TROPICAL:27]
- [GRASSLAND_TEMPERATE:2]
- [SAVANNA_TEMPERATE:2]
- [SHRUBLAND_TEMPERATE:2]
- [ANY_DESERT:4]
- [GRASSLAND_TROPICAL:23]
- [ANY_TROPICAL_FOREST:7]
- [SHRUBLAND_TROPICAL:22]
- [BIOME:GRASSLAND_TROPICAL:23]
- [GRASSLAND_TEMPERATE:2]
- [SAVANNA_TEMPERATE:2]
- [SHRUBLAND_TEMPERATE:2]
- [ANY_DESERT:4]
- [SAVANNA_TROPICAL:23]
- [ANY_TROPICAL_FOREST:6]
- [SHRUBLAND_TROPICAL:18]
- [BIOME:ANY_TEMPERATE_WETLAND:4]
- [FOREST_TAIGA:3]
- [GRASSLAND_TEMPERATE:4]
- [SAVANNA_TEMPERATE:4]
- [SHRUBLAND_TEMPERATE:4]
- [ANY_TEMPERATE_FOREST:4]
- [ANY_DESERT:2]
- [TUNDRA:2]
- [BIOME:FOREST_TROPICAL_MOIST_BROADLEAF:25]
- [FOREST_TROPICAL_DRY_BROADLEAF:3]
- [SHRUBLAND_TROPICAL:2]
- [SWAMP_MANGROVE:2]
- [BIOME:ANY_TROPICAL_FOREST:21]
- [SHRUBLAND_TEMPERATE:2]
- [ANY_TEMPERATE_FOREST:5]
- [ANY_DESERT:2]
- [SAVANNA_TROPICAL:7]
- [GRASSLAND_TROPICAL:6]
- [SHRUBLAND_TROPICAL:11]
- [SWAMP_MANGROVE:4]
- [SWAMP_TROPICAL_FRESHWATER:2]
- [SWAMP_TROPICAL_SALTWATER:2]
- [BIOME:LAKE_TEMPERATE_SALTWATER:3]
- [LAKE_TEMPERATE_BRACKISHWATER:3]
- [LAKE_TEMPERATE_FRESHWATER:3]
- [RIVER_TEMPERATE_FRESHWATER:2]
- [RIVER_TEMPERATE_BRACKISHWATER:2]
- [RIVER_TEMPERATE_SALTWATER:2]
- [BIOME:LAKE_TEMPERATE_BRACKISHWATER:10]
- [LAKE_TEMPERATE_SALTWATER:3]
- [LAKE_TEMPERATE_FRESHWATER:10]
- [RIVER_TEMPERATE_FRESHWATER:6]
- [RIVER_TEMPERATE_BRACKISHWATER:6]
- [RIVER_TEMPERATE_SALTWATER:2]
- [POOL_TEMPERATE_FRESHWATER:2]
- [POOL_TEMPERATE_BRACKISHWATER:2]
- [BIOME:LAKE_TEMPERATE_FRESHWATER:15]
- [LAKE_TEMPERATE_SALTWATER:3]
- [LAKE_TEMPERATE_BRACKISHWATER:10]
- [RIVER_TEMPERATE_FRESHWATER:10]
- [RIVER_TEMPERATE_BRACKISHWATER:6]
- [RIVER_TEMPERATE_SALTWATER:2]
- [POOL_TEMPERATE_FRESHWATER:3]
- [POOL_TEMPERATE_BRACKISHWATER:2]
- [BIOME:SHRUBLAND_TROPICAL:29]
- [GRASSLAND_TEMPERATE:2]
- [SAVANNA_TEMPERATE:2]
- [SHRUBLAND_TEMPERATE:4]
- [ANY_TEMPERATE_FOREST:2]
- [ANY_DESERT:2]
- [SAVANNA_TROPICAL:22]
- [GRASSLAND_TROPICAL:18]
- [FOREST_TROPICAL_MOIST_BROADLEAF:2]
- [ANY_TROPICAL_FOREST:11]
- [SWAMP_MANGROVE:2]
- [SWAMP_TROPICAL_FRESHWATER:2]
- [SWAMP_TROPICAL_SALTWATER:2]
- [BIOME:ANY_TEMPERATE_LAKE:4]
- [ANY_TEMPERATE_MARSH:2]
- [ANY_TEMPERATE_RIVER:2]
- [BIOME:ANY_TEMPERATE_MARSH:2]
- [ANY_TEMPERATE_LAKE:2]
- [BIOME:SWAMP_MANGROVE:10]
- [ANY_DESERT:2]
- [MOUNTAIN:2]
- [FOREST_TROPICAL_MOIST_BROADLEAF:2]
- [ANY_TROPICAL_FOREST:4]
- [SHRUBLAND_TROPICAL:2]
- [ANY_FOREST:2]
- [MARSH_TROPICAL_FRESHWATER:2]
- [MARSH_TROPICAL_SALTWATER:2]
- [SWAMP_TEMPERATE_FRESHWATER:2]
- [SWAMP_TROPICAL_FRESHWATER:6]
- [SWAMP_TROPICAL_SALTWATER:6]
- [BIOME:ANY_FOREST:6]
- [ANY_WETLAND:3]
- [ANY_SHRUBLAND:5]
- [ANY_SAVANNA:5]
- [ANY_GRASSLAND:5]
- [ANY_DESERT:5]
- [MOUNTAIN:3]
- [TUNDRA:2]
- [SWAMP_MANGROVE:2]
- [BIOME:ANY_OCEAN:18]
- [ANY_LAKE:3]
- [ANY_RIVER:3]
- [BIOME:ANY_LAKE:6]
- [ANY_POOL:2]
- [ANY_OCEAN:3]
- [ANY_RIVER:4]
- [BIOME:ANY_RIVER:5]
- [ANY_OCEAN:3]
- [ANY_LAKE:4]
- [BIOME:MARSH_TROPICAL_FRESHWATER:7]
- [MARSH_TEMPERATE_FRESHWATER:6]
- [MARSH_TEMPERATE_SALTWATER:5]
- [SWAMP_MANGROVE:2]
- [MARSH_TROPICAL_SALTWATER:6]
- [RIVER_TROPICAL_FRESHWATER:2]
- [RIVER_TROPICAL_BRACKISHWATER:2]
- [SWAMP_TEMPERATE_FRESHWATER:2]
- [SWAMP_TROPICAL_FRESHWATER:3]
- [SWAMP_TROPICAL_SALTWATER:2]
- [BIOME:MARSH_TROPICAL_SALTWATER:6]
- [MARSH_TEMPERATE_FRESHWATER:5]
- [MARSH_TEMPERATE_SALTWATER:5]
- [SWAMP_MANGROVE:2]
- [MARSH_TROPICAL_FRESHWATER:6]
- [SWAMP_TROPICAL_FRESHWATER:2]
- [SWAMP_TROPICAL_SALTWATER:2]
- [BIOME:NOT_FREEZING:28]
- [ANY_POOL:2]
- [BIOME:OCEAN_TEMPERATE:39]
- [OCEAN_ARCTIC:13]
- [RIVER_TEMPERATE_FRESHWATER:6]
- [RIVER_TEMPERATE_BRACKISHWATER:6]
- [RIVER_TEMPERATE_SALTWATER:6]
- [OCEAN_TROPICAL:17]
- [BIOME:ANY_TROPICAL_WETLAND:3]
- [BIOME:ANY_TEMPERATE_SWAMP:2]
- [BIOME:RIVER_TEMPERATE_FRESHWATER:16]
- [OCEAN_ARCTIC:4]
- [LAKE_TEMPERATE_SALTWATER:2]
- [LAKE_TEMPERATE_BRACKISHWATER:6]
- [LAKE_TEMPERATE_FRESHWATER:10]
- [OCEAN_TEMPERATE:6]
- [RIVER_TEMPERATE_BRACKISHWATER:12]
- [RIVER_TEMPERATE_SALTWATER:7]
- [RIVER_TROPICAL_FRESHWATER:2]
- [POOL_TEMPERATE_FRESHWATER:2]
- [POOL_TEMPERATE_BRACKISHWATER:2]
- [BIOME:RIVER_TEMPERATE_BRACKISHWATER:12]
- [OCEAN_ARCTIC:4]
- [LAKE_TEMPERATE_SALTWATER:2]
- [LAKE_TEMPERATE_BRACKISHWATER:6]
- [LAKE_TEMPERATE_FRESHWATER:6]
- [OCEAN_TEMPERATE:6]
- [RIVER_TEMPERATE_FRESHWATER:12]
- [RIVER_TEMPERATE_SALTWATER:7]
- [POOL_TEMPERATE_FRESHWATER:2]
- [POOL_TEMPERATE_BRACKISHWATER:2]
- [BIOME:RIVER_TEMPERATE_SALTWATER:7]
- [OCEAN_ARCTIC:4]
- [LAKE_TEMPERATE_SALTWATER:2]
- [LAKE_TEMPERATE_BRACKISHWATER:2]
- [LAKE_TEMPERATE_FRESHWATER:2]
- [OCEAN_TEMPERATE:6]
- [RIVER_TEMPERATE_FRESHWATER:7]
- [RIVER_TEMPERATE_BRACKISHWATER:7]
- [BIOME:OCEAN_TROPICAL:31]
- [OCEAN_TEMPERATE:17]
- [RIVER_TROPICAL_FRESHWATER:2]
- [RIVER_TROPICAL_BRACKISHWATER:2]
- [RIVER_TROPICAL_SALTWATER:2]
- [LAKE_TROPICAL_FRESHWATER:2]
- [LAKE_TROPICAL_BRACKISHWATER:2]
- [LAKE_TROPICAL_SALTWATER:2]
- [BIOME:RIVER_TROPICAL_FRESHWATER:11]
- [MARSH_TROPICAL_FRESHWATER:2]
- [RIVER_TEMPERATE_FRESHWATER:2]
- [OCEAN_TROPICAL:2]
- [RIVER_TROPICAL_BRACKISHWATER:7]
- [RIVER_TROPICAL_SALTWATER:6]
- [LAKE_TROPICAL_FRESHWATER:9]
- [LAKE_TROPICAL_BRACKISHWATER:5]
- [LAKE_TROPICAL_SALTWATER:5]
- [SWAMP_TROPICAL_FRESHWATER:2]
- [BIOME:RIVER_TROPICAL_BRACKISHWATER:7]
- [MARSH_TROPICAL_FRESHWATER:2]
- [OCEAN_TROPICAL:2]
- [RIVER_TROPICAL_FRESHWATER:7]
- [RIVER_TROPICAL_SALTWATER:6]
- [LAKE_TROPICAL_FRESHWATER:5]
- [LAKE_TROPICAL_BRACKISHWATER:5]
- [LAKE_TROPICAL_SALTWATER:5]
- [SWAMP_TROPICAL_FRESHWATER:2]
- [BIOME:RIVER_TROPICAL_SALTWATER:6]
- [OCEAN_TROPICAL:2]
- [RIVER_TROPICAL_FRESHWATER:6]
- [RIVER_TROPICAL_BRACKISHWATER:6]
- [LAKE_TROPICAL_FRESHWATER:5]
- [LAKE_TROPICAL_BRACKISHWATER:5]
- [LAKE_TROPICAL_SALTWATER:5]
- [BIOME:LAKE_TROPICAL_FRESHWATER:10]
- [OCEAN_TROPICAL:2]
- [RIVER_TROPICAL_FRESHWATER:9]
- [RIVER_TROPICAL_BRACKISHWATER:5]
- [RIVER_TROPICAL_SALTWATER:5]
- [LAKE_TROPICAL_BRACKISHWATER:6]
- [LAKE_TROPICAL_SALTWATER:6]
- [BIOME:LAKE_TROPICAL_BRACKISHWATER:6]
- [OCEAN_TROPICAL:2]
- [RIVER_TROPICAL_FRESHWATER:5]
- [RIVER_TROPICAL_BRACKISHWATER:5]
- [RIVER_TROPICAL_SALTWATER:5]
- [LAKE_TROPICAL_FRESHWATER:6]
- [LAKE_TROPICAL_SALTWATER:6]
- [BIOME:LAKE_TROPICAL_SALTWATER:6]
- [OCEAN_TROPICAL:2]
- [RIVER_TROPICAL_FRESHWATER:5]
- [RIVER_TROPICAL_BRACKISHWATER:5]
- [RIVER_TROPICAL_SALTWATER:5]
- [LAKE_TROPICAL_FRESHWATER:6]
- [LAKE_TROPICAL_BRACKISHWATER:6]
- [BIOME:SWAMP_TEMPERATE_FRESHWATER:4]
- [MARSH_TEMPERATE_FRESHWATER:3]
- [SWAMP_MANGROVE:2]
- [MARSH_TROPICAL_FRESHWATER:2]
- [SWAMP_TROPICAL_FRESHWATER:3]
- [SWAMP_TROPICAL_SALTWATER:2]
- [BIOME:SWAMP_TROPICAL_FRESHWATER:7]
- [MARSH_TEMPERATE_FRESHWATER:2]
- [ANY_TROPICAL_FOREST:2]
- [SHRUBLAND_TROPICAL:2]
- [SWAMP_MANGROVE:6]
- [MARSH_TROPICAL_FRESHWATER:3]
- [MARSH_TROPICAL_SALTWATER:2]
- [RIVER_TROPICAL_FRESHWATER:2]
- [RIVER_TROPICAL_BRACKISHWATER:2]
- [SWAMP_TEMPERATE_FRESHWATER:3]
- [SWAMP_TROPICAL_SALTWATER:6]
- [BIOME:DESERT_BADLAND:5]
- [ANY_TROPICAL:4]
- [DESERT_ROCK:5]
- [DESERT_SAND:5]
- [BIOME:DESERT_ROCK:5]
- [ANY_TROPICAL:4]
- [DESERT_BADLAND:5]
- [DESERT_SAND:5]
- [BIOME:DESERT_SAND:5]
- [ANY_TROPICAL:4]
- [DESERT_BADLAND:5]
- [DESERT_ROCK:5]
- [BIOME:SWAMP_TROPICAL_SALTWATER:6]
- [ANY_TROPICAL_FOREST:2]
- [SHRUBLAND_TROPICAL:2]
- [SWAMP_MANGROVE:6]
- [MARSH_TROPICAL_FRESHWATER:2]
- [MARSH_TROPICAL_SALTWATER:2]
- [SWAMP_TEMPERATE_FRESHWATER:2]
- [SWAMP_TROPICAL_FRESHWATER:6]
- [BIOME:GLACIER:4]
- [TUNDRA:4]
- [BIOME:SUBTERRANEAN_CHASM:44]
- [SUBTERRANEAN_WATER:3]
- [BIOME:SUBTERRANEAN_WATER:17]
- [SUBTERRANEAN_CHASM:3]
- [BIOME:SUBTERRANEAN_LAVA:5]
- [BIOME:ANY_LAND:9]
- [BIOME:POOL_TEMPERATE_FRESHWATER:3]
- [LAKE_TEMPERATE_BRACKISHWATER:2]
- [LAKE_TEMPERATE_FRESHWATER:3]
- [RIVER_TEMPERATE_FRESHWATER:2]
- [RIVER_TEMPERATE_BRACKISHWATER:2]
- [POOL_TEMPERATE_BRACKISHWATER:2]
- [BIOME:POOL_TEMPERATE_BRACKISHWATER:2]
- [LAKE_TEMPERATE_BRACKISHWATER:2]
- [LAKE_TEMPERATE_FRESHWATER:2]
- [RIVER_TEMPERATE_FRESHWATER:2]
- [RIVER_TEMPERATE_BRACKISHWATER:2]
- [POOL_TEMPERATE_FRESHWATER:2]
- [BIOME:ANY_TEMPERATE_RIVER:2]
- [ANY_TEMPERATE_LAKE:2]
- =======splitting this off for clarity=======
- [IF:CANCIV:FALSE]
- [IF:(RND:0:277):<:8]
- [TAG_ADD:{GOOD}]
- [DESCRIPTION:VERB:good]
- [ELSEIF:(RND:0:269):<:24]
- [TAG_ADD:{EVIL}]
- [DESCRIPTION:VERB:evil]
- [X]
- [IF:(RND:0:277):<:181]
- [TAG_ADD:{BENIGN}]
- [ELSEIF:(RND:0:96):<:15]
- [TAG_ADD:{SAVAGE}]
- [X]
- [X]
- [IF:SENTIENT]
- [TAG_REMOVE:{PET}]
- [TAG_REMOVE:{PET_EXOTIC}]
- [TAG_REMOVE:{MOUNT_EXOTIC}]
- [TAG_REMOVE:{TRAINABLE}]
- [X]
- =======Split=======
- After all of the above is sorted out, this one line executes the body creation code. Not modifiable.
- It can't be modifiable, really. After all, if you were able to modify the body creation code, some very
- bad stuff would happen... like your creature not working. Or Dwarf Fortress crashing.
- [GENERATE_CREATURE]
- [SKIN_TYPE:SKIN]
- [IF:(RND:1:4):=:1]
- [SKIN_TYPE:SCALE]
- [HAS_HAIR:FALSE]
- [X]
- [INT:rnd:(RND:1:25)]
- [IF:IS_BRONZE]
- [TAG_ADD:{TISSUE:BRONZE}]
- [TAG_ADD: {TISSUE_NAME:bronze:bronze}]
- [TAG_ADD: {TISSUE_MATERIAL:INORGANIC:BRONZE}]
- [TAG_ADD: {MUSCULAR}]
- [TAG_ADD: {FUNCTIONAL}]
- [TAG_ADD: {STRUCTURAL}]
- [TAG_ADD: {RELATIVE_THICKNESS:1}]
- [TAG_ADD: {CONNECTS}]
- [TAG_ADD: {TISSUE_SHAPE:LAYER}]
- [TAG_ADD:{TISSUE_LAYER:BY_CATEGORY:ALL:BRONZE}]
- [TAG_ADD:{ITEMCORPSE:STATUE:NO_SUBTYPE:INORGANIC:BRONZE}]
- [TAG_ADD:{ITEMCORPSE_QUALITY:5}]
- [ELSEIF:RND:<:21]
- [TAG_ADD:{BODY_DETAIL_PLAN:STANDARD_MATERIALS}]
- [IF:SKIN_TYPE:SKIN]
- [IF:(RND:0:1):=:1]
- [TAG_ADD: {REMOVE_MATERIAL:HAIR}]
- [HAS_HAIR:FALSE]
- [X]
- [X]
- [IF:(RND:1:4):=:1:&:HAS_RIBCAGE:=:FALSE:&:HAS_SPINE:=:FALSE:&:HAS_TEETH:=:FALSE:&:HAS_JOINTS:=:FALSE:&:HAS_SKULL:=:FALSE]
- [TAG_ADD: {REMOVE_MATERIAL:BONE}]
- [HAS_BONE:FALSE]
- [X]
- [IF:(RND:1:8):=:1]
- [TAG_ADD: {REMOVE_MATERIAL:CARTILAGE}]
- [HAS_CARTILAGE:FALSE]
- [X]
- [IF:(RND:1:3):=:1:&:HAS_CARTILAGE:=:FALSE:&:HAS_BONE]
- [CHITIN_BONE]
- [TAG_ADD: {REMOVE_MATERIAL:BONE}]
- [TAG_ADD: {USE_MATERIAL_TEMPLATE:CHITIN:CHITIN_TEMPLATE}]
- [X]
- [IF:SKINTYPE:SCALE]
- [TAG_ADD: {REMOVE_MATERIAL:HAIR}]
- [HAS_HAIR:FALSE]
- [TAG_ADD: {REMOVE_MATERIAL:SKIN}]
- [IF:(RND:1:0):=:1]
- [HAS_LEATHER:FALSE]
- [X]
- [TAG_ADD: {USE_MATERIAL_TEMPLATE:SCALE:SCALE_TEMPLATE}]
- [TAG_ADD: {USE_MATERIAL_TEMPLATE:TOOTH:CHITIN_TEMPLATE}]
- [X]
- [IF:HAS_HORN]
- [TAG_ADD: {USE_MATERIAL_TEMPLATE:HORN:HORN_TEMPLATE}]
- [X]
- [IF:HAS_HOOF]
- [TAG_ADD: {USE_MATERIAL_TEMPLATE:HOOF:HOOF_TEMPLATE}]
- [X]
- [IF:HAS_TUSK]
- [TAG_ADD: {USE_MATERIAL_TEMPLATE:IVORY:TOOTH_TEMPLATE}]
- [X]
- [IF:(RND:1:15):1:&:SKIN_TYPE:SKIN]
- [TAG_ADD: {USE_MATERIAL_TEMPLATE:FEATHER:FEATHER_TEMPLATE}]
- [HAS_FEATHER]
- [X]
- [TAG_ADD:{BODY_DETAIL_PLAN}:STANDARD_TISSUES}]
- [IF:SKIN_TYPE:SKIN:&:HAS_HAIR:FALSE]
- [TAG_ADD: {REMOVE_TISSUE:HAIR}]
- [DESCRIPTION:ADJ:hairless]
- [X]
- [IF:HAS_BONE:FALSE]
- [TAG_ADD: {REMOVE_TISSUE:BONE}]
- [X]
- [IF:HAS_CARTILAGE:FALSE]
- [TAG_ADD: {REMOVE_TISSUE:CARTILAGE}]
- [X]
- [IF:SKIN_TYPE:SCALE]
- [TAG_ADD: {REMOVE_TISSUE:HAIR}]
- [TAG_ADD: {REMOVE_TISSUE:SKIN}]
- [TAG_ADD: {USE_TISSUE_TEMPLATE:SCALE:SCALE_TEMPLATE}]
- [TAG_ADD: {USE_TISSUE_TEMPLATE:TOOTH:CHITIN_TEMPLATE}]
- [X]
- [IF:HAS_HORN]
- [TAG_ADD: {USE_TISSUE_TEMPLATE:HORN:HORN_TEMPLATE}]
- [TAG_ADD: {USE_TISSUE_TEMPLATE:HOOF:HOOF_TEMPLATE}]
- [X]
- [IF:HAS_TUSK]
- [TAG_ADD: {USE_TISSUE_TEMPLATE:IVORY:IVORY_TEMPLATE}]
- [X]
- [IF:HAS_FEATHER]
- [TAG_ADD: {USE_TISSUE_TEMPLATE:FEATHER:FEATHER_TEMPLATE}]
- [X]
- [IF:CHITIN_BONE]
- [TAG_ADD: {REMOVE_TISSUE:BONE}]
- [TAG_ADD: {USE_TISSUE_TEMPLATE:CHITIN:CHITIN:TEMPLATE}]
- [X]
- [IF:HAS_HAIR:FALSE:&:HAS_BONSE:FALSE]
- [DESCRIPTION:ADJ:slimy]
- [DESCRIPTION:ADJ:boneless]
- [TAG_ADD:{BODY_DETAIL_PLAN:EXOSKELETON_TISSUE_LAYERS:(SKIN_TYPE):FAT:MUSCLE}]
- [ELSE]
- [TAG_ADD:{BODY_DETAIL_PLAN:VERTEBRATE_TISSUE_LAYERS:(SKIN_TYPE):FAT:MUSCLE:]
- } ]this is to clear things up in notepad++. not read by the program.
- [IF:CHITIN_BONE]
- [TAG_APPEND:CHITIN:]
- [ELSEIF:HAS_BONE]
- [TAG_APPEND:BONE:]
- [ELSE]
- [TAG_APPEND:NONE:]
- [X]
- [IF:HAS_CARTILAGE]
- [TAG_APPEND:CARTILAGE}]
- [ELSEIF:CHITIN_BONE]
- [TAG_APPEND:CHITIN}]
- [ELSE]
- [TAG_APPEND:NONE}]
- [X]
- [X]
- [IF:(RND:1:6):6:&:HASHAIR]
- [TAG_ADD:{BODY_DETAIL_PLAN:BODY_HAIR_TISSUE_LAYERS:HAIR}]
- [PREFLIST:manes]
- [ADD_HAIR]
- [DESCRIPTION:DESC:a thick mane]
- [DESCRIPTION:VERB:is covered in thick fur]
- [IF:EYECOUNT:2:&:HAS_MOUTH:&:HAS_NOSE:&:HAS_EARS]
- [DESCRIPTION:DESC:a mane circling its face]
- [X]
- [X]
- [TAG_ADD:{BODY_DETAIL_PLAN:STANDARD_HEAD_POSITIONS}]
- [IF:(RND:0:2):1]
- [TAG_ADD:{BODY_DETAIL_PLAN:HUMANOID_HEAD_POSITIONS}]
- [X]
- [IF:HAS_RIBCAGE]
- [TAG_ADD:{BODY_DETAIL_PLAN:HUMANOID_RIBCAGE_POSITIONS}]
- [X]
- [IF:(RND:0:2):1]
- [TAG_ADD:{BODY_DETAIL_PLAN:HUMANOID_RELSIZES}]
- [X]
- [IF:HAS_FEATHER]
- [TAG_ADD:{BODY_DETAIL_PLAN:BODY_FEATHER_TISSUE_LAYERS:FEATHER}]
- [DESCRIPTION:ADJ:feathered]
- [DESCRIPTION:DESC:feathers covering its body]
- [X]
- otherwise...
- [ELSEIF:rnd:21]
- [PREFLIST:chittering]
- [SKIN_TYPE:CHITIN]
- [TAG_ADD:{BODY_DETAIL_PLAN:CHITIN_MATERIALS}]
- [TAG_ADD: {USE_MATERIAL_TEMPLATE:TOOTH:CHITIN_TEMPLATE}]
- [IF:HAS_HORN]
- [TAG_ADD:{USE_MATERIAL_TEMPLATE:HORN:HORN_TEMPLATE}]
- [X]
- [IF:HAS_HOOF]
- [TAG_ADD:{USE_MATERIAL_TEMPLATE:HOOF:HOOF_TEMPLATE}]
- [X]
- [IF:HAS_TUSK]
- [TAG_ADD:{USE_MATERIAL_TEMPLATE:IVORY:TOOTH_TEMPLATE}]
- [X]
- [IF:HAS_FEATHER]
- [TAG_ADD:{USE_MATERIAL_TEMPLATE:FEATHER:FEATHER_TEMPLATE}]
- [X]
- [TAG_ADD:{BODY_DETAIL_PLAN:CHITIN_TISSUES}]
- [TAG_ADD: {USE_TISSUE_TEMPLATE:TOOTH:CHITIN_TEMPLATE}]
- [IF:HAS_HORN]
- [TAG_ADD: {USE_TISSUE_TEMPLATE:HORN:HORN_TEMPLATE}]
- [X]
- [IF:HAS_HOOF]
- [TAG_ADD: {USE_TISSUE_TEMPLATE:HOOF:HOOF_TEMPLATE}]
- [X]
- [IF:HAS_TUSK]
- [TAG_ADD: {USE_TISSUE_TEMPLATE:IVORY:IVORY_TEMPLATE}]
- [X]
- [IF:HAS_FEATHER]
- [TAG_ADD: {USE_TISSUE_TEMPLATE:FEATHER:FEATHER_TEMPLATE}]
- [X]
- [TAG_ADD:{BODY_DETAIL_PLAN:EXOSKELETON_TISSUE_LAYERS:CHITIN:FAT:MUSCLE}]
- [TAG_ADD:{BODY_DETAIL_PLAN:STANDARD_HEAD_POSITIONS}]
- [ELSEIF:rnd:22]
- [SKIN_TYPE:FLESH]
- [PREFLIST:warmth]
- [TAG_ADD:{USE_MATERIAL_TEMPLATE:FLESH:MUSCLE_TEMPLATE}]
- [TAG_ADD:{USE_TISSUE_TEMPLATE:FLESH_TEMPLATE}]
- [TAG_ADD:{TISSUE_LAYER:BY_CATEGORY:ALL:FLESH}]
- [IF:(CONTAINS:BODYPART_LIST:BASIC_1PARTBODY)]checking a list for an item. painful.
- [DESCRIPTION:NOUN:ball of skin]
- [X]
- [ELSEIF:rnd:23]
- [SKIN_TYPE:STONE]
- [INT:thisStone:(RND:0:(COUNT:stoneName))]"lk" doesn't mean anything, it's just a random variable name. This
- line creates lk as an integer between 0 and stoneName's count (stoneName is a list defined near the top of
- this file). Using this line, I can have the same values for both stoneName and stoneID, making sure the
- stone strings match. and yes, you can stack commands in parentheses.
- [PREFLIST:rockiness]
- [DESCRIPTION:VERB:is made entirely of stone]
- [TAG_ADD:{TISSUE:ROCK}]
- [TAG_ADD: {TISSUE_NAME:(stoneName:thisStone):NP}]pulls the stone name from index "lk". All you
- need to do to pull a string from a list is just put (theName) inside parentheses. Putting an integer
- behind it is optional. Without a colon, it pulls a random variable.
- [TAG_ADD: {TISSUE_MATERIAL:INORGANIC:(stoneID(thisStone))}]pulls the stonetype matching the
- randomly-pulled stone name
- [TAG_ADD: {MUSCULAR}]
- [TAG_ADD: {FUNCTIONAL}]
- [TAG_ADD: {STRUCTURAL}]
- [TAG_ADD: {RELATIVE_THICKNESS:1}]
- [TAG_ADD: {CONNECTS}]
- [TAG_ADD: {TISSUE_SHAPE:LAYER}]
- [TAG_ADD:{TISSUE_LAYER:BY_CATEGORY:ALL:ROCK}]
- [ELSE] wet-type creatures last.
- [SKIN_TYPE:WET]
- [INT:thisLiquid:(RND:0:liquids.Count)]"count" can be capitalized or lowercase. hopefully.
- [PREFLIST:(liquids(thisLiquid))]
- [DESCRIPTION:VERB:is made entirely of (liquids(thisLiquid))]
- [TAG_ADD:{USE_MATERIAL_TEMPLATE:BLOOD:BLOOD_TEMPLATE}] regardless of what it's made of, it acts like
- blood.
- [TAG_ADD:{TISSUE:BLOOD}]
- [TAG_ADD: {TISSUE_NAME:(liquids(thisLiquid)):NP}]
- [TAG_ADD: {TISSUE_MATERIAL:LOCAL_CREATURE_MAT:BLOOD}]
- [TAG_ADD: {TISSUE_MAT_STATE:LIQUID}]
- [TAG_ADD: {MUSCULAR}]
- [TAG_ADD: {FUNCTIONAL}]
- [TAG_ADD: {STRUCTURAL}]
- [TAG_ADD: {RELATIVE_THICKNESS:1}]
- [TAG_ADD: {CONNECTS}]
- [TAG_ADD: {TISSUE_SHAPE:LAYER}]
- [TAG_ADD:{TISSUE_LAYER:BY_CATEGORY:ALL:BLOOD}]
- [X]
- and we're finally done. NOW FOR THE NEXT PART.
- [IF:(RND:0:20):10]
- [TAG_ADD:{BODYGLOSS:PAW}]
- [X]
- [IF:(RND:0:30):10]
- [TAG_ADD:{BODYGLOSS:MAW}]
- [X]
- [IF:(RND:0:1):1:&:HAS_HEART]
- [TAG_ADD:{SELECT_TISSUE_LAYER:HEART:BY_CATEGORY:HEART}]
- [IF:HAS_THROAT]
- [TAG_ADD:{PLUS_TISSUE_LAYER:SKIN:BY_CATEGORY:THROAT}]
- [TAG_ADD: {TL_MAJOR_ARTERIES}]
- [X]
- [IF:HAS_TOES]
- [rnd:(RND:1:4)]
- [IF:rnd:1]
- [TAG_ADD:{USE_MATERIAL_TEMPLATE:NAIL:NAIL_TEMPLATE}]
- [TAG_ADD:{USE_TISSUE_TEMPLATE:NAIL:NAIL_TEMPLATE}]
- [TAG_ADD:{TISSUE_LAYER:BY_CATEGORY:TOE:NAIL:FRONT}]
- [HAS_NAILS]
- [HAS_TOENAILS]
- [ELSEIF:rnd:2]
- [TAG_ADD:{USE_MATERIAL_TEMPLATE:TALON:NAIL_TEMPLATE}]
- [TAG_ADD:{USE_TISSUE_TEMPLATE:TALON:TALON_TEMPLATE}]
- [TAG_ADD:{TISSUE_LAYER:BY_CATEGORY:TOE:TALON:FRONT}]
- [HAS_TALON]
- [DESCRIPTION:DESC:taloned feet]
- [ELSEIF:rnd:3]
- [TAG_ADD:{USE_MATERIAL_TEMPLATE:CLAW:NAIL_TEMPLATE}]
- [TAG_ADD:{USE_TISSUE_TEMPLATE:CLAW:CLAW_TEMPLATE}]
- [TAG_ADD:{TISSUE_LAYER:BY_CATEGORY:TOE:CLAW:FRONT}]
- [DESCRIPTION:DESC:clawed toes]
- [HAS_CLAWS]
- [HAS_TOECLAWS]
- [X]
- [X]
- [IF:HAS_FINGERS]
- [rnd:(RND:1:3)]
- [IF:rnd:1]
- [IF:HAS_NAILS:FALSE]This is important, to make sure you only add the tissue/material
- templates once.
- [TAG_ADD:{USE_MATERIAL_TEMPLATE:NAIL:NAIL_TEMPLATE}]
- [TAG_ADD:{USE_TISSUE_TEMPLATE:NAIL:NAIL_TEMPLATE}]
- [HAS_FINGERNAILS] In the 34.11 version of RandCreatures, this was inside the above
- if/then statement... which seems erroneous to me. I think the effect of it would be to stop creatures
- from being able to attack with their fingernails if they didn't have toenails. I've fixed it here.
- [TAG_ADD:{TISSUE_LAYER:BY_CATEGORY:FINGER:NAIL:FRONT}]
- [ELSEIF:rnd:2]
- [IF:HAS_CLAWS:FALSE]
- [TAG_ADD:{USE_MATERIAL_TEMPLATE:CLAW:NAIL_TEMPLATE}]
- [TAG_ADD:{USE_TISSUE_TEMPLATE:CLAW:CLAW_TEMPLATE}]
- [HAS_FINGERCLAWS]
- [TAG_ADD:{TISSUE_LAYER:BY_CATEGORY:FINGER:CLAW:FRONT}]
- [DESCRIPTION:DESC:clawed fingers] Might be better for a preflist item... I don't know.
- [X]
- [X]
- [IF:(RND:0:2):!=:0] if a random number between zero and two isn't zero, then:
- [TAG_ADD:{USE_MATERIAL_TEMPLATE:SINEW:SINEW_TEMPLATE}]
- [TAG_ADD:{TENDONS:LOCAL_CREATURE_MAT:SINEW:200}]
- [TAG_ADD:{LIGAMENTS:LOCAL_CREATURE_MAT:SINEW:200}]
- [x]putting this x in lowercase to remind me to watch for typos.
- [TAG_ADD:{HAS_NERVES}] all creatures have nerves. No exceptions, apparently... may change.
- =======Split=======
- This section is stuff that gets added later, but needs to be calculated RIGHT NOW, for
- use with the creature gait speed code stuff.
- First up, age and weight.
- [DOUBLE:maxAge:(DECRND:10:100)] new stuff. define a double of your choice. decrnd pulls
- a random decimal number.
- [DOUBLE:tempDec:(DECRND:1.4:2)]
- [DOUBLE:maxAge2:(maxAge:*:tempDec)] messy, but it's the way it has to be. I'm not trying
- to write something incredible here - just something that works. I may fix it later and
- allow you to stack things like random calls and arithmetic functions, but til then...
- [DOUBLE:bodySize2]these are never null.
- [IF:CAN_CIV] if creature isn't a megabeast, then:
- Here's a bit of magic: multiplies everything in the tag.
- [bodySize2:=*:(DECRND:1:2):(DECRND:1:2):(DECRND:1:2):(DECRND:1:2):(DECRND:1:2):(DECRND:1:2):(DECRND:1:2):(DECRND:1:5):(DECRND:1:5):(DECRND:1:5):(DECRND:1:5):(DECRND:1:5):(DECRND:1:5):(DECRND:1:5)]
- [bodySize2:=*:(SQRT:bodySize2):1.4142] too much new math.
- [bodySize2:=*:bodySize2:bodySize2] a simple square.
- The math behind this: with that last square, small creature stay small, big creatures get bigger. Easy as math.
- Average body size is around 75000, right where I originally wanted it in the first
- release (at least, if everything goes well). A larger size (x2) starts out about 75000 and
- ends up being around 150000. A x2 normal increase becomes a x4 increase. The above is all
- subject to change. I want to make sure I get the occasional "gigantic" creature. Send me
- any better code you come up with if you want; I may implement it. (with you credited,
- of course.)
- [ELSEIF:SEMI:FALSE]
- [bodySize2:(RND:8000000:25000000)] very big creatures.
- [ELSEIF:SEMI]
- [bodySize2:(RND:220000:9000000)] funny that vanilla semimegabeasts are tiny comparatively.
- [X]
- [tempDec:(RND:2:25)]
- [INT:bodySize1:(RND:bodySize2:tempDec)] RandCreatures knows how to round off decimal numbers before multiiplying with integers, yay
- [tempDec:(RND:10:50)]
- [INT:bodySize0:(RND:bodySize1:tempDec)] boy, this is going to be fun to put in. I'm writing the script out first so I know exactly what I need... might not be the best approach.
- [IF:maxAge:>:100]
- [DESCRIPTION:VERB:lives to an old age]
- [X]
- [tempDec:=/:maxAge:(RND:1:10)]/ and - don't work the same way. you only get to use them with two numbers.
- [INT:bodyAge:(MAX:2:tempDec)]
- And now we're ready to add the body size and age tags. We'll add them later. Far later.
- =======Split=======
- splitting this off from the other stuff. (note: the ==split== thing doesn't do anything, by the way - it's
- just a comment.) The reason is... This is totally new code. Toady added creature gaits to 40.xx, so I have
- to find a way to deal with it. Watch out, world. Protyping coming through.
- All of the following are comments made for my personal reference. Yay for maths.
- relevant tags: has_wings, is_biped, is_quadruped, has_fins, has_stance, has_tail, has_grasp, can_fly,
- can_swim, bodysize, grazer, likes_fighting, no_vegetation_perturb, slow_learner, meanderer, flier... may be more that affect it
- STANDARD_BIPED_GAITS: ranges from 1 to 41, standard 30?
- STANDARD_QUADRUPED_GAITS: ranges from 2 to 87, standard 10-45
- STANDARD_CLIMBING_GAITS: ranges from 1 to 56, standard 1-15
- STANDARD_SWIMMING_GAITS: ranges from 1 to 40, standard 1-35
- STANDARD_CRAWLING_GAITS: ranges from 1 to 12, standard 1-12
- STANDARD_FLYING_GAITS: ranges from 15 to 87, standard 15-35
- STANDARD_WALK_CRAWL_GAITS: ranges from 1 to 20, standard 1-10
- fullTotal
- Biped Gaits: 13% 100% 1442 1190 942 587 2440 3499 1.0
- Quadruped Gaits: 31% 100% 1424 1066 830 396 2430 3520 1.0
- Climbing Gaits: 43% 100% 5431 5009 4615 3625 6346 7450 1.0
- Swimming Gaits: 100% 100% 5638 5358 5092 4289 6453 7337 1.0
- Flying Gaits: 18% 100% 1214 936 704 445 2232 3289 1.0
- Crawling Gaits: 91% 100% 7526 7264 7022 6249 8222 8970 1.0
- Walk_crawl Gaits: 14% 100% 6905 6623 6358 5102 7658 8481 1.0
- min
- Biped Gaits: 100% 2% 900 708 515 286 1900 2900 0.62
- Quadruped Gaits: 100% 0% 900 464 322 175 1839 2889 0.63
- Climbing Gaits: 100% 0% 3063 2310 1558 752 4210 5659 0.56
- Swimming Gaits: 100% 0% 941 729 518 288 1947 2963 0.17
- Flying Gaits: 100% 1% 900 597 412 213 1900 2900 0.74
- Crawling Gaits: 100% 0% 4790 4239 3696 1316 5863 7255 0.64
- Walk_crawl Gaits: 100% 2% 3730 3432 3141 1097 4678 5733 0.54
- max
- Biped Gaits: 100% 2% 5487 5239 5004 3601 6285 7122 3.81
- Quadruped Gaits: 100% 0% 2380 1994 1609 689 3465 4738 1.67
- Climbing Gaits: 100% 0% 9000 8900 8825 8775 9500 9900 1.66
- Swimming Gaits: 100% 0% 8612 8462 8335 7857 9171 9677 1.53
- Flying Gaits: 100% 1% 2206 1692 1178 585 3400 4900 1.82
- Crawling Gaits: 100% 0% 9000 8900 8825 8775 9500 9900 1.2
- Walk_crawl Gaits: 100% 2% 9000 8900 8825 8775 9500 9900
- div These numbers show how big of a range there is for each.
- Flying trait: 2.45 2.83 2.86 2.75 1.79 1.69 145
- Crawling trait: 1.88 2.1 2.39 6.67 1.62 1.36 161
- Quadrupedtrait: 2.64 4.3 5.0 3.94 1.88 1.64 183
- Walk_craw trait:2.41 2.59 2.81 8.0 2.03 1.73 195
- Climbing trait: 2.94 3.85 5.66 11.67 2.26 1.75 283
- Biped trait: 6.1 7.4 9.72 12.59 3.31 2.46 416
- Swimming trait: 9.15 11.61 16.09 27.28 4.71 3.27 722
- deviation
- Flying trait: 1.0 0.77 0.58 0.37 1.84 2.71
- Crawling trait: 1.0 0.97 0.93 0.83 1.09 1.19
- Quadruped trait: 1.0 0.75 0.58 0.28 1.71 2.47
- Walk_crawl trait: 1.0 0.96 0.92 0.74 1.11 1.23
- Climbing trait: 1.0 0.92 0.85 0.67 1.17 1.37
- Biped trait: 1.0 0.83 0.65 0.41 1.69 2.43
- Swimming trait: 1.0 0.95 0.9 0.76 1.14 1.3
- gait tag: first initializes, second defines type being edited, third defines chance of the tag being added, fourth defines multiplication weight of standard speeds
- [IF:HAS_WINGS]
- [GAIT:BIPED:2:0.62]
- [GAIT:QUADRUPED:0:0.63]It may be possible to have quadruped walkers with wings. They will be rare, and if they exist, they will be very swift.
- [GAIT:CLIMBING:20:1.4]
- [GAIT:SWIMMING:14:1.53]
- [GAIT:FLYING:66:0.74]
- [GAIT:CRAWLING:16:1.15]
- [GAIT:WALK_CRAWL:2:1.3]
- [X]
- [IF:IS_BIPED]
- [GAIT:BIPED:97:0.99]
- [GAIT:CLIMBING:51:1.05]
- [GAIT:SWIMMING:29:1.21]
- [GAIT:FLYING:74:0.74]
- [GAIT:CRAWLING:33:0.88]
- [GAIT:WALK_CRAWL:4:0.54]
- [GAIT:QUADRUPED:0:1] This line tries to cancel out bipeds with quadruped gaits.
- [X]
- [IF:IS_QUADRUPED]
- [GAIT:QUADRUPED:98:1.01]
- [GAIT:CLIMBING:27:0.56]
- [GAIT:SWIMMING:40:1.28]
- [GAIT:CRAWLING:45:1.02]
- [GAIT:WALK_CRAWL:27:0.89]
- [GAIT:BIPED:0:1]
- [GAIT:FLYING:0:1]
- [X]
- [IF:HAS_FINS]
- [GAIT:SWIMMING:19:0.17]
- [GAIT:CRAWLING:0:1.2]
- [GAIT:WALK_CRAWL:2:1.3]
- [GAIT:BIPED:0:1]
- [GAIT:QUADRUPED:0:1]
- [GAIT:CLIMBING:0:1]
- [GAIT:FLYING:0:1]
- [X]
- [IF:HAS_FLIPPERS]
- [GAIT:CLIMBING:0:1.21]
- [GAIT:SWIMMING:3:0.22]
- [GAIT:CRAWLING:2:1.2]
- [GAIT:WALK_CRAWL:8:1.3]
- [GAIT:BIPED:0:1]
- [GAIT:QUADRUPED:0:1]
- [GAIT:FLYING:0:1]
- [X]
- [IF:UNDER_SWIM]
- [GAIT:CLIMBING:2:1.43]
- [GAIT:SWIMMING:23:0.2]
- [GAIT:CRAWLING:1:1.09]
- [GAIT:WALK_CRAWL:4:1.13]
- [GAIT:BIPED:0:1]
- [GAIT:QUADRUPED:0:1]
- [GAIT:FLYING:0:1]
- [X]
- [IF:HAS_STANCE]
- [GAIT:BIPED:86:1.01]
- [GAIT:QUADRUPED:96:0.93]
- [GAIT:CLIMBING:91:0.98]
- [GAIT:SWIMMING:73:1.09]
- [GAIT:FLYING:81:0.92]
- [GAIT:CRAWLING:76:0.95]
- [GAIT:WALK_CRAWL:17:0.98]
- [X]
- [IF:HAS_TAIL]
- [GAIT:BIPED:16:0.62]
- [GAIT:QUADRUPED:96:0.99]
- [GAIT:CLIMBING:27:0.84]
- [GAIT:SWIMMING:64:0.88]
- [GAIT:FLYING:6:0.74]
- [GAIT:CRAWLING:48:1.0]
- [GAIT:WALK_CRAWL:51:0.8]
- [X]
- [IF:HAS_GRASP]
- [GAIT:BIPED:65:1.04]
- [GAIT:QUADRUPED:0:0.63]
- [GAIT:CLIMBING:38:0.72]
- [GAIT:SWIMMING:16:1.17]
- [GAIT:FLYING:6:0.74]
- [GAIT:CRAWLING:18:0.81]
- [GAIT:WALK_CRAWL:6:0.68]
- [X]
- [IF:CAN_FLY]
- [GAIT:BIPED:11:2.41]
- [GAIT:CLIMBING:35:1.39]
- [GAIT:SWIMMING:13:1.52]
- [GAIT:FLYING:100:1.0]
- [GAIT:CRAWLING:21:1.1]
- [GAIT:WALK_CRAWL:4:1.3]
- [X]
- [IF:CAN_SWIM]
- [GAIT:BIPED:90:1.05]
- [GAIT:QUADRUPED:99:1.0]
- [GAIT:CLIMBING:80:0.91]
- [GAIT:SWIMMING:100:1.0]
- [GAIT:FLYING:72:0.74]
- [GAIT:CRAWLING:84:0.99]
- [GAIT:WALK_CRAWL:72:0.91]
- [X]
- [IF:IS_TINY]
- [GAIT:BIPED:6:3.81]
- [GAIT:QUADRUPED:16:1.56]
- [GAIT:CLIMBING:43:1.35]
- [GAIT:SWIMMING:33:1.07]
- [GAIT:FLYING:81:0.92]
- [GAIT:CRAWLING:37:1.14]
- [GAIT:WALK_CRAWL:44:1.13]
- [X]
- [IF:IS_HUGE]
- [GAIT:BIPED:25:0.66]
- [GAIT:QUADRUPED:36:0.93]
- [GAIT:CLIMBING:12:0.83]
- [GAIT:SWIMMING:23:0.79]
- [GAIT:FLYING:3:0.74]
- [GAIT:CRAWLING:21:0.87]
- [GAIT:WALK_CRAWL:21:0.89]
- [X]
- [IF:IS_GRAZER]
- [GAIT:QUADRUPED:34:0.71]
- [GAIT:CLIMBING:0:1.66]
- [GAIT:SWIMMING:11:1.41]
- [GAIT:CRAWLING:12:1.06]
- [GAIT:BIPED:0:1]
- [GAIT:FLYING:0:1]
- [GAIT:WALK_CRAWL:0:1]
- [X]
- [IF:SLOW_LEARNER]
- [GAIT:BIPED:13:0.68]
- [GAIT:CLIMBING:5:0.91]
- [GAIT:SWIMMING:2:0.98]
- [GAIT:CRAWLING:2:0.67]
- [GAIT:WALK_CRAWL:2:0.95]
- [GAIT:QUADRUPED:0:1]
- [GAIT:FLYING:0:1]
- [X]
- [IF:IS_MEANDERER]
- [GAIT:BIPED:11:0.7]
- [GAIT:QUADRUPED:66:0.79]
- [GAIT:CLIMBING:19:0.67]
- [GAIT:SWIMMING:39:1.15]
- [GAIT:FLYING:10:0.74]
- [GAIT:CRAWLING:37:1.05]
- [GAIT:WALK_CRAWL:10:0.64]
- [X]
- [IF:IS_SAVAGE]
- [GAIT:BIPED:6:0.62]
- [GAIT:QUADRUPED:5:0.63]
- [GAIT:CLIMBING:5:0.84]
- [GAIT:SWIMMING:3:0.81]
- [GAIT:FLYING:1:1.82]
- [GAIT:CRAWLING:4:0.64]
- [GAIT:WALK_CRAWL:2:1.3]
- [X]
- [IF:SWIMS_INNATE]
- [GAIT:BIPED:60:1.14]
- [GAIT:QUADRUPED:99:1.0]
- [GAIT:CLIMBING:62:1.01]
- [GAIT:SWIMMING:92:0.99]
- [GAIT:FLYING:71:0.74]
- [GAIT:CRAWLING:76:1.0]
- [GAIT:WALK_CRAWL:72:0.91]
- [X]
- [IF:IS_VERMIN]
- [GAIT:BIPED:6:3.81]
- [GAIT:QUADRUPED:6:1.67]
- [GAIT:CLIMBING:32:1.37]
- [GAIT:SWIMMING:20:0.83]
- [GAIT:FLYING:52:1.02]
- [GAIT:CRAWLING:22:1.12]
- [GAIT:WALK_CRAWL:29:1.2]
- [X]
- [IF:IS_WARBEAST]
- [GAIT:QUADRUPED:18:0.65]
- [GAIT:CLIMBING:5:0.56]
- [GAIT:SWIMMING:7:1.2]
- [GAIT:FLYING:3:0.74]
- [GAIT:CRAWLING:8:0.91]
- [GAIT:BIPED:0:1]
- [GAIT:WALK_CRAWL:0:1] snake warbeast don't exist in vanilla.
- [X]
- The gait_avg is for use by CALCULATE_GAITS. best not to change this unless you know what you're doing.
- This tells the program what the average values for each gait are.
- Normally I would hardcode this sort of thing. But, in the interest of moddability, have at it.
- [GAIT_AVG:BIPED:1442:1190:942:587:2440:3499]
- [GAIT_AVG:QUADRUPED:1424:1066:830:396:2430:3520]
- [GAIT_AVG:CLIMBING:5431:5009:4615:3625:6346:7450]
- [GAIT_AVG:SWIMMING:5638:5358:5092:4289:6453:7337]
- [GAIT_AVG:FLYING:1214:936:704:445:2232:3289]
- [GAIT_AVG:CRAWLING:7526:7264:7022:6249:8222:8970]
- [GAIT_AVG:WALK_CRAWL:6905:6623:6358:5102:7658:8481]
- Like the body assembler, the gait calculator is so wizardly complex that I
- decided to take it out of the script. I even had to write a program to write the code. okay, not
- really - but I did have to write a program that assembled all the above script data for me from the vanilla raws.
- You can tweak them however you want - it'll make a noticeable difference if you do a bunch of crazy
- stuff to it. DO NOT CHANGE IT TOO MUCH!!! you will wind up with sloths and/or bolts of
- lightning (in creature form) if you change it anywhere outside the 0.2-4 zone.
- watch it. be careful. And don't delete this next line:
- [CALCULATE_GAITS]
- ========Split========
- [IF:(RND:0:7):1]
- [TAG_ADD:{USE_MATERIAL_TEMPLATE:ICHOR:ICHOR_TEMPLATE}]
- [TAG_ADD:{BLOOD:LOCAL_CREATURE_MAT:ICHOR:LIQUID}]
- [TAG_ADD:{CREATURE_CLASS:GENERAL_POISON}]
- [TAG_ADD:{GETS_WOUND_INFECTIONS}]
- [TAG_ADD:{GETS_INFECTIONS_FROM_ROT}]
- [TAG_ADD:{USE_MATERIAL_TEMPLATE:PUS:PUS_TEMPLATE}]
- [TAG_ADD:{PUS:LOCAL_CREATURE_MAT:PUS:LIQUID}]
- [ELSE]
- [TAG_ADD:{USE_MATERIAL_TEMPLATE:BLOOD:BLOOD_TEMPLATE}]
- [IF:(RND:0:25):1]
- [TAG_ADD:{STATE_COLOR:ALL:(bloodColor)}]
- [X]
- [TAG_ADD:{BLOOD:LOCAL_CREATURE_MAT:BLOOD:LIQUID}]
- [TAG_ADD:{CREATURE_CLASS:GENERAL_POISON}]
- [TAG_ADD:{GETS_WOUND_INFECTIONS}]
- [TAG_ADD:{GETS_INFECTIONS_FROM_ROT}]
- [TAG_ADD:{USE_MATERIAL_TEMPLATE:PUS:PUS_TEMPLATE}]
- [TAG_ADD:{PUS:LOCAL_CREATURE_MAT:PUS:LIQUID}]
- [X]
- And now we add the bodysize/age stuff I mentioned way up there somewhere.
- [TAG_ADD:{BODY_SIZE:0:0:(bodySize0)}]
- [TAG_ADD:{BODY_SIZE:1:0:(bodySize1)}] perhaps a bit unimaginative, but give me a break, look at all the other stuff I'm doing.
- [TAG_ADD:{BODY_SIZE:(bodyAge):(bodySize2)}]
- [TAG_ADD:{MAXAGE:(maxAge):(maxAge2)}]
- [DOUBLE:thisIt:(DECRND:1:3)]Can't remember why I called it this. Probably a throwaway name.
- [IF:thisIt:<:1.25] yay, doubles
- [DESCRIPTION:VERB:matures at an old age]
- [ELSEIF:thisIt:>:2.75]
- [DESCRIPTION:VERB:matures at a young age] there was a typo in the original that said "an" instead of "a".
- [X]
- [INT:nextAge:=/:bodyAge:thisIt]
- [TAG_ADD:{CHILD:(nextAge)}]
- [TAG_ADD:{ALL_ACTIVE}] whoa, did I really do this? Huh. This is definitely subject to
- change. I don't have a clue why I would've done this.
- And now size stuff. These are Toady's own interpretations of sizes.
- [IF:bodySize:>:0:&:bodySize:<:10000]
- [DESCRIPTION:SIZE:tiny]
- [X]
- [IF:bodySize:>:1000:&:bodySize:<:59000]
- [DESCRIPTION:SIZE:small]
- [X]
- [IF:bodySize:>:3000:&:bodySize:<:137000]
- [DESCRIPTION:SIZE:medium-sized]
- [X]
- [IF:bodySize:>:92000:&:bodySize:<:4608000]
- [DESCRIPTION:SIZE:huge]
- [X]
- [IF:bodySize:>:138000:&:bodySize:<:6912000]
- [DESCRIPTION:SIZE:large]
- [X]
- [IF:bodySize:>:588000]
- [DESCRIPTION:SIZE:gigantic]
- [IF:HAS_BEAK]
- [DESCRIPTION:DESC:uses its beak to pluck up unsuspecting intruders] stole this from Toady.
- [X]
- [X]
- More stuff!
- [INT:rndX:(RND:1:4)]
- [IF:rndX:2]
- [TAG_ADD:{BODY_APPEARANCE_MODIFIER:LENGTH:90:95:98:100:102:105:110}]
- [TAG_ADD:{BODY_APPEARANCE_MODIFIER:HEIGHT:90:95:98:100:102:105:110}]
- [TAG_ADD:{BODY_APPEARANCE_MODIFIER:BROADNESS:90:95:98:100:102:105:110}]
- [ELSEIF:rndX:3]
- [TAG_ADD:{BODY_APPEARANCE_MODIFIER:LENGTH:80:95:98:100:102:105:120}]
- this is where "tunnels through the rocks" came in. It appeared far too often. I'm removing it in this version. Add it if you wish.
- DESCRIPTION:VERB:tunnels through the rocks
- [IF:(CONTAINS:BODYPART_LIST:BASIC_1PARTBODY)]
- [DESCRIPTION:DESC:hundreds of feet moving along the bottom of its body]
- [X]
- [ELSEIF:rndX:4]
- [TAG_ADD:{BODY_APPEARANCE_MODIFIER:HEIGHT:90:95:98:100:102:105:110}]
- [TAG_ADD:{BODY_APPEARANCE_MODIFIER:BROADNESS:90:95:98:100:102:105:110}]
- [X]
- 2150 lines of script already. This is... truly dizzying. I can't imagine what I'm going to have to write in the actual program.
- ========Attack info========
- It's possible to get a lot more random than this, but I don't want to. I want my creatures
- to rip your eyes out and batter you to little bloody pieces, and then grind what's left
- of you into pulp. Before chopping up what's left and regurgitating it to their young.
- Basically, I want it to hurt as if they're really trying.None of my creatures
- should EVER come across as pathetic by nature.
- [IF:HAS_BEAK]
- [TAG_ADD:{ATTACK:BITE:BODYPART:BY_CATEGORY:BEAK}]
- [TAG_ADD: {ATTACK_SKILL:BITE}]
- [TAG_ADD: {ATTACK_VERB:bite:bites}]
- [TAG_ADD: {ATTACK_CONTACT_PERC:100}] these may change off of "100" later. no idea though.
- [TAG_ADD: {ATTACK_PENETRATION_PERC:100}]
- [TAG_ADD: {ATTACK_FLAG_EDGE}]
- [TAG_ADD: {ATTACK_PRIORITY:MAIN}]
- [TAG_ADD: {ATTACK_FLAG_CANLATCH}]
- [X]
- [IF:HAS_TALON]
- [IF:HAND_TOE:FALSE]handtoe may be obsolete.
- [TAG_ADD:{ATTACKSCRATCH:CHILD_TISSUE_LAYER_GROUP:BY_TYPE:STANCE:BY_CATEGORY:ALL:TALON}]
- [ELSE]
- [TAG_ADD:{ATTACKSCRATCH:CHILD_TISSUE_LAYER_GROUP:BY_TYPE:GRASP:BY_CATEGORY:ALL:TALON}]
- [X]
- [IF:(RND:0:1):1]
- [TAG_ADD: {ATTACK_SKILL:GRASP_STRIKE}]
- [ELSE]
- [TAG_ADD: {ATTACK_SKILL:STANCE_STRIKE}]
- [X]
- [TAG_ADD: {ATTACK_VERB:snatch at:snatches at}]
- [TAG_ADD: {ATTACK_CONTACT_PERC:100}]
- [TAG_ADD: {ATTACK_PENETRATION_PERC:100}]
- [TAG_ADD: {ATTACK_FLAG_EDGE}]
- [TAG_ADD: {ATTACK_PRIORITY:SECOND}]
- [TAG_ADD: {ATTACK_FLAG_WITH}]
- [X]
- [IF:HAS_FOOT]
- [TAG_ADD:{ATTACK:KICK:BODYPART:BY_TYPE:STANCE}]
- [TAG_ADD: {ATTACK_SKILL:STANCE_STRIKE}]
- [TAG_ADD: {ATTACK_VERB:kick:kicks}]
- [TAG_ADD: {ATTACK_CONTACT_PERC:100}]
- [TAG_ADD: {ATTACK_PRIORITY:MAIN}]
- [TAG_ADD: {ATTACK_FLAG_WITH}]
- [X]
- [IF:HAS_TEETH:&:TRUE_HEAD:&:HAS_HEAD]
- [TAG_ADD:{ATTACK:BITE:CHILD_BODYPART_GROUP:BY_CATEGORY:HEAD:BY_CATEGORY:TOOTH}]
- [TAG_ADD: {ATTACK_SKILL:BITE}]
- [TAG_ADD: {ATTACK_VERB:bite:bites}]
- [TAG_ADD: {ATTACK_CONTACT_PERC:100}]
- [TAG_ADD: {ATTACK_PENETRATION_PERC:100}]
- [TAG_ADD: {ATTACK_FLAG_EDGE}]
- [TAG_ADD: {ATTACK_PRIORITY:MAIN}]
- [TAG_ADD: {ATTACK_FLAG_CANLATCH}]
- [X]
- [IF:HAS_TEETH:FALSE:&:HAS_MOUTH]
- [TAG_ADD:{ATTACK:BITE:BODYPART:BY_CATEGORY:MOUTH}]
- [TAG_ADD: {ATTACK_SKILL:BITE}]
- [TAG_ADD: {ATTACK_VERB:bite:bites}]
- [TAG_ADD: {ATTACK_CONTACT_PERC:100}]
- [TAG_ADD: {ATTACK_PRIORITY:MAIN}]
- [TAG_ADD: {ATTACK_FLAG_CANLATCH}]
- [X]
- [IF:HAS_FINGERCLAWS]
- [TAG_ADD:{ATTACK:SCRATCH:CHILD_TISSUE_LAYER_GROUP:BY_TYPE:GRASP:BY_CATEGORY:FINGER:CLAW}]
- [TAG_ADD: {ATTACK_SKILL:GRASP_STRIKE}]
- [TAG_ADD: {ATTACK_VERB:scratch:scratches}]
- [TAG_ADD: {ATTACK_CONTACT_PERC:100}]
- [TAG_ADD: {ATTACK_PENETRATIN_PERC:100}]
- [TAG_ADD: {ATTACK_FLAG_EDGE}]
- [IF:(RND:0:1):1]
- [TAG_ADD: {ATTACK_PRIORITY:MAIN}]
- [ELSE]
- [TAG_ADD: {ATTACK_PRIORITY:SECOND}]
- [X]
- [X]
- [IF:HAS_HAND]
- [TAG_ADD:{ATTACK:PUNCH:BODYPART:BY_TYPE:GRASP}]
- [TAG_ADD: {ATTACK_SKILL:GRASP_STRIKE}]
- [TAG_ADD: {ATTACK_VERB:punch:punches}]
- [TAG_ADD: {ATTACK_CONTACT_PERC:100}]
- [TAG_ADD: {ATTACK_FLAG_WITH}]
- [TAG_ADD: {ATTACK_PRIORITY:SECOND}]
- [X]
- [IF:NO_TENTACLE:FALSE]oh god, it's hentai DF all over again
- [TAG_ADD:{ATTACK:BITE:CHILD_BODYPART_GROUP:BY_CATEGORY:TENTACLE:BY_CATEGORY:TOOTH}]
- [TAG_ADD: {ATTACK_SKILL:BITE}]
- [TAG_ADD: {ATTACK_VERB:bite:bites}]
- [TAG_ADD: {ATTACK_CONTACT_PERC:100}]
- [TAG_ADD: {ATTACK_PENETRATION_PERC:100}]
- [TAG_ADD: {ATTACK_FLAG_EDGE}]
- [TAG_ADD: {ATTACK_PRIORITY:MAIN}]
- [TAG_ADD: {ATTACK_FLAG_CANLATCH}]
- [X]
- [IF:HAS_MANDIBLES]
- [TAG_ADD:{ATTACK:BITE:CHILD_BODYPART_GROUP:BY_CATEGORY:HEAD:BY_CATEGORY:MANDIBLE}]
- [TAG_ADD: {ATTACK_SKILL:BITE}]
- [TAG_ADD: {ATTACK_VERB:bite:bites}]
- [TAG_ADD: {ATTACK_CONTACT_PERC:100}]
- [TAG_ADD: {ATTACK_PENETRATION_PERC:100}]
- [TAG_ADD: {ATTACK_FLAG_EDGE}]
- [TAG_ADD: {ATTACK_PRIORITY:MAIN}]
- [TAG_ADD: {ATTACK_FLAG_CANLATCH}]
- [X]
- [IF:HAS_FINGERNAILS]
- [TAG_ADD:{ATTACK:SCRATCH:CHILD_TISSUE_LAYER_GROUP:BY_TYPE:GRASP:BY_CATEGORY:FINGER:NAIL}]
- [TAG_ADD: {ATTACK_SKILL:GRASP_STRIKE}]
- [TAG_ADD: {ATTACK_VERB:scratch:scratches}]
- [TAG_ADD: {ATTACK_CONTACT_PERC:100}]
- [TAG_ADD: {ATTACK_PENETRATION_PERC:100}]
- [TAG_ADD: {ATTACK_FLAG_EDGE}]
- [TAG_ADD: {ATTACK_PRIORITY:SECOND}]
- [X]
- [IF:HAS_TOENAILS]
- [TAG_ADD:{ATTACK:SCRATCH:CHILD_TISSUE_LAYER_GROUP:BY_TYPE:STANCE:BY_CATEGORY:TOE:NAIL}]
- [TAG_ADD: {ATTACK_SKILL:GRASP_STRIKE}]
- [TAG_ADD: {ATTACK_VERB:scratch:scratches}]
- [TAG_ADD: {ATTACK_CONTACT_PERC:100}]
- [TAG_ADD: {ATTACK_PENETRATION_PERC:100}]
- [TAG_ADD: {ATTACK_FLAG_EDGE}]
- [TAG_ADD: {ATTACK_PRIORITY:SECOND}]
- [X]
- [IF:HAS_TOECLAWS]
- [TAG_ADD:{ATTACK:CLAW:CHILD_TISSUE_LAYER_GROUP:BY_TYPE:STANCE:BY_CATEGORY:ALL:CLAW}]
- [TAG_ADD: {ATTACK_SKILL:GRASP_STRIKE}]
- [TAG_ADD: {ATTACK_VERB:claw:claws}]
- [TAG_ADD: {ATTACK_CONTACT_PERC:100}]
- [TAG_ADD: {ATTACK_PENETRATION_PERC:100}]
- [TAG_ADD: {ATTACK_FLAG_EDGE}]
- [TAG_ADD: {ATTACK_PRIORITY:MAIN}]
- [X]
- [IF:HAS_TUSK:&:TRUE_HEAD]
- [TAG_ADD:{ATTACK:BITE:CHILD_BODYPART_GROUP:BY_CATEGORY:HEAD:BY_CATEGORY:TUSK}]
- [IF:(RND:0:1):1]
- [TAG_ADD: {ATTACK_SKILL:BITE}]
- [TAG_ADD: {ATTACK_VERB:bite:bites}]
- [TAG_ADD: {ATTACK_PENETRATION_PERC:100}]
- [TAG_ADD: {ATTACK_FLAG_EDGE}]
- [TAG_ADD: {ATTACK_FLAG_CANLATCH}]
- [ELSE]
- [TAG_ADD: {ATTACK_FLAG_WITH}]
- [TAG_ADD: {ATTACK_SKILL:BITE}]
- [TAG_ADD: {ATTACK_VERB:gore:gores}]
- [X]
- [TAG_ADD: {ATTACK_PRIORITY:MAIN}]
- [TAG_ADD: {ATTACK_CONTACT_PERC:100}]
- [X]
- [IF:HAS_UPPERBODYPINCERS]
- [TAG_ADD:{ATTACK:SLAP:BODYPART:BY_CATEGORY:PINCER}]
- [TAG_ADD: {ATTACK_SKILL:GRASP_STRIKE}]
- [TAG_ADD: {ATTACK_VERB:snatch:snatches}]
- [TAG_ADD: {ATTACK_CONTACT_PERC:100}]
- [TAG_ADD: {ATTACK_PENETRATION_PERC:100}]
- [TAG_ADD: {ATTACK_FLAG_EDGE}]
- [TAG_ADD: {ATTACK_PRIORITY:MAIN}]
- [TAG_ADD: {ATTACK_FLAG_CANLATCH}]
- [X]
- [IF:HAS_PROBOSCIS]
- [TAG_ADD:{ATTACK:BITE:BODYPART:BY_CATEGORY:PROBOSCIS}]
- [TAG_ADD: {ATTACK_SKILL:BITE}]
- [TAG_ADD: {ATTACK_VERB:bite:bites}]
- [TAG_ADD: {ATTACK_CONTACT_PERC:100}]
- [TAG_ADD: {ATTACK_FLAG_EDGE}]
- [TAG_ADD: {ATTACK_PRIORITY:MAIN}]
- [TAG_ADD: {ATTACK_FLAG_CANLATCH}]
- [TAG_ADD: {SPECIALATTACK_SUCK_BLOOD:25:50}]
- [X]
- ========Other stuff========
- [IF:(RND:0:1):1]
- [TAG_ADD:{HOMEOTHERM:100(RND:10:67)}]This could really use changed - I don't remember why I made it this bizarre. Was it a strange point of pride? I may never know.
- [X]
- [IF:(RND:0:1):1]This is going to have to go higher because of gait changes.
- [TAG_ADD:{SWIMS_INNATE}]
- [IF:SKIN_TYPE:SKIN:&:AMPHIBIOUS]
- [DESCRIPTION:NOUN:amphibian]
- [X]
- [X]
- ========Final description info========
- [IF:IS_SOLITARY]
- [IF:IS_HUNTER]
- [DESCRIPTION:VERB:prefers to hunt alone]
- [IF:IS_ROAMER]
- [DESCRIPTION:VERB:patrols its territory by itself]
- [IF:IS_GRAZER]
- [DESCRIPTION:VERB:likes lots of room to graze]
- [ELSEIF:IN_GROUPS]
- [IF:IS_HUNTER]
- [DESCRIPTION:VERB:hunts in packs]
- [IF:IS_ROAMER]
- [DESCRIPTION:VERB:roams from place to place with others]
- [IF:IS_GRAZER]
- [DESCRIPTION:VERB:is found grazing in groups]
- [X]
- [IF:(CONTAINS:BODYPART_LIST:TRUNK)]
- [DESCRIPTION:VERB:lifts (foodWord) up with its long trunk to eat]
- [X]
- ========Gender Bending========
- [INT:xxx:(RND:0:1)]
- [IF:xxx:0]
- [TAG_ADD:{CASTE:FEMALE}]
- [TAG_ADD: {FEMALE}]
- [IF:(RND:0:1):1]
- [TAG_ADD: {MULTIPLE_LITTER_RARE}]
- [X]
- [TAG_ADD:{CASTE:MALE}]
- [TAG_ADD: {MALE}]
- [ELSE]
- [IF:(RND:0:1):1]
- [TAG_ADD:{BODY_DETAIL_PLAN:LEATHERY_EGG_MATERIALS}]
- [ELSE]
- [TAG_ADD:{BODY_DETAIL_PLAN:EGG_MATERIALS}]
- [X]
- [TAG_ADD:{CASTE:FEMALE}]
- [TAG_ADD: {FEMALE}]
- [TAG_ADD: {LAYS_EGGS}]
- [TAG_ADD: {EGG_MATERIAL:LOCAL_CREATURE_MAT:EGGSHEL:SOLID}]
- [TAG_ADD: {EGG_MATERIAL:LOCAL_CREATURE_MAT:EGG_WHITE:LIQUID}]
- [TAG_ADD: {EGG_MATERIAL:LOCAL_CREATURE_MAT:EGG_YOLK:LIQUID}]
- [TAG_ADD: {EGG_SIZE:(bodySize0:=*:bodySize0:1.1)}]
- [INT:cs:(RND:1:10)]
- [INT:cs2:(RND:1:5)]
- [cs2:=*:cs2:cs]
- [TAG_ADD: {CLUTCH_SIZE:(cs):(cs2)}]
- [TAG_ADD:{CASTE:MALE}]
- [TAG_ADD: {MALE}]
- [X]
- [TAG_ADD:{SELECT_CASTE:ALL}]
- Now we be awesome. Or... rather... we just give dragons their stuff. Bronze colossus stuff is up with the body detail info, in casse you're a little lost.
- [IF:IS_FIREBREATHER]
- [TAG_ADD:{SELECT_MATERIAL:ALL}]
- [TAG_ADD: {MULTIPLY_VALUE:15}] Could be more random.
- [TAG_ADD: {COLDDAM_POINT:NONE}]
- [TAG_ADD: {HEADDAM_POINT:NONE}]
- [TAG_ADD: {IGNITE_POINT:NONE}]
- [TAG_ADD: {IF_EXISTS_SET_MELTING_POINT:55000}]
- [TAG_ADD: {IF_EXISTS_SET_BOILING_POINT:57000}]
- [TAG_ADD: {SPEC_HEAT:30000}]
- [TAG_ADD:{SELECT_MATERIAL:BLOOD}]
- [TAG_ADD: {MELTING_POINT:10000}]
- [X]
- [X] This is an intentional mistake to catch bugs.
- ========Coloration========
- [IF:skinType:!:STONE]
- [IF:skinType:SKIN]
- [INT:skinNum:(RND:1:$COUNT:skinList$)]
- [TAG_ADD: {SET_TL_GROUP:BY_CATEGORY:ALL:SKIN}]
- [TAG_ADD: {TL_COLOR_MODIFIER:(skinList:skinNum)}] some of these array values may be wrong
- [TAG_ADD: {TLCM_NOUN:skin:SINGULAR}]
- [TAG_SET:4:{COLOR:(colorList:skinNum)}]
- [DESCRIPTION:ADJ:(colorToString:skinList:skinNum)}] internal function. takes a DF color (0:0:1, for instance) and turns it into its corresponding color.
- [ELSEIF:skinType:CHITIN]
- [TAG_ADD: {SET_TL_GROUP:BY_CATEGORY:ALL:CHITIN}]
- [TAG_ADD: {TL_COLOR_MODIFIER:BLACK:1}]
- [TAG_ADD: {TLCM_NOUN:exterior:SINGULAR}]
- [TAG_SET:4:{COLOR:0:0:1}]
- [DESCRIPTION:ADJ:black}]
- [ELSEIF:skinType:SCALE]
- [INT:skinNum:(RND:1:$COUNT:scaleList$)]
- [TAG_ADD: {SET_TL_GROUP:BY_CATEGORY:ALL:SCALE}]
- [TAG_ADD: {TL_COLOR_MODIFIER:(scaleList:skinNum)}]
- [TAG_ADD: {TLCM_NOUN:scales:PLURAL}]
- [TAG_SET:4:{COLOR:(scaleColor:skinNum)}]
- [DESCRIPTION:ADJ:(colorToString:scaleList:skinNum)]
- [ELSEIF:skinType:FLESH]
- [INT:skinNum:(RND:1:$COUNT:skinList$)]
- [TAG_ADD: {SET_TL_GROUP:BY_CATEGORY:ALL:FLESH}]
- [TAG_ADD: {TL_COLOR_MODIFIER:(skinList:skinNum)}]
- [TAG_ADD: {TLCM_NOUN:flesh:SINGULAR}]
- [TAG_SET:4:{COLOR:(scaleColor:skinNum)}]
- [DESCRIPTION:ADJ:(colorToString:skinList:skinNum)}]
- [ELSEIF:skintype:WET]
- [INT:skinNum:(RND:1:$COUNT:slimeColor$)]
- [TAG_ADD: {SET_TL_GROUP:BY_CATEGORY:ALL:BLOOD}]
- [TAG_ADD: {TL_COLOR_MODIFIER:(slimeColor:skinNum)}]
- [TAG_ADD: {TLCM_NOUN:(thisType):SINGULAR}] wayyyy, up there, thisType is the type of goo that the creatuer is made of.
- [TAG_SET:4:{COLOR:(dumbList:skinNum)}]
- [DESCRIPTION:ADJ:(colorToString:slimeColor:skinNum)}]
- [X]
- [IF:ADD_HAIR]
- [INT:hairInt:(RND:1:$COUNT:hairList$)]
- [TAG_ADD: {SET_TL_GROUP:BY_CATEGORY:ALL:HAIR}]
- [TAG_ADD: {TL_COLOR_MODIFIER:(hairList:hairInt)}]
- [TAG_ADD: {TLCM_NOUN:hair:SINGULAR}]
- [IF:(R01)] I don't remember what this calls at the moment.
- [DESCRIPTION:ADJ:SET_LAST:(colorToString:hairList:hairInt)] ooh, funky. This is gettin' all complex up in here.
- [X]
- [X]
- [IF:HAS_FEATHER]
- [INT:featherInt:(RND:1:featherList)] Alternate option: using a list as an integer returns the list size
- [TAG_ADD: {SET_TL_GROUP:BY_CATEGORY:ALL:FEATHER}]
- [TAG_ADD: {TL_COLOR_MODIFIER:(featherList:featherInt)}]
- [TAG_ADD: {TLCM_NOUN:feathers:PLURAL}]
- [IF:(R01)]
- [DESCRIPTION:ADJ:SET_LAST:(colorToString:featherList:featherInt)]
- [X]
- [X]
- [IF:EYE_COUNT:>:0]
- [INT:eyeColorNum:(RND:1:(COUNT:EYELIST))]okay, double calls. it needs to be done, might as well.
- [STR:temp0:(colorToString:eyeList:eyeColorNum)]
- [IF:(CONTAINS:temp0: ):FALSE:&:temp0:!:black] the CONTAINS call can be used on regular strings as well.
- [PREFLIST:(temp0) eyes]
- [IF:(R01)]
- [DESCRIPTION:ADJ:(temp0) eyes]
- [ELSE]
- [DESCRIPTION:DESC:(temp0) eyes]
- [X]
- [X]
- [IF:skinType:!:FLESH:&:skinType:!:WET:&:skinType:!:STONE]
- [IF:EYE_COUNT:>:1:&!:(CONTAINS:BODYPART_LIST:BODY_EYE)]
- [TAG_ADD: {SET_TL_GROUP:BY_CATEGORY:EYE:EYE}]
- [TAG_ADD: {TL_COLOR_MODIFIER:(eyeList:eyeColorNum)}]
- [TAG_ADD: {TLCM_NOUN:eyes:PLURAL}
- [ELSEIF:EYE_COUNT:1]
- [TAG_ADD: {SET_TL_GROUP:BY_CATEGORY:ALL:EYE}]
- [TAG_ADD: {TL_COLOR_MODIFIER:(eyeList:eyeColorNum)}]
- [TAG_ADD: {TLCM_NOUN:eye:SINGULAR}]
- [X]
- [X]
- [ELSE]
- [TAG_ADD: {SET_TL_GROUP:BY_CATEGORY:ALL:ROCK}]
- [TAG_ADD: {TL_COLOR_MODIFIER:GRAY}]
- [TAG_ADD: {TLCM_NOUN:stone:SINGULAR}]
- [TAG_SET:4:{COLOR:0:0:1}]
- [X]
- And we're finally done with colors.
- [IF:(RND:0:277):<:77]
- [TAG_ADD:{SELECT_MATERIAL:ALL}]
- [TAG_ADD: {MULTIPLY_VALUE:(RND:2:4}]
- [DESCRIPTION:VERB:is valuable for trade]
- [X]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement