COMMENT { This file is designed to let us define all the enums used by powder in one place. Definitions with no contents become plain enum listings. } COMMENT { These tile listings should match the actual order in the bitmap. } DEFINE TILE { } TILE INVALID 65535 TILE VOID 0 TILE FLOOR TILE WALL TILE DOOR TILE AVATAR TILE LONGSWORD TILE SHIELD TILE GREENDRAGON TILE PATH TILE WATER TILE OPENDOOR TILE TRIDUDE TILE FIREBEETLE TILE SHADOW TILE LADDERDOWN TILE LADDERUP TILE ICESNAKE TILE FIRESNAKE TILE RAT TILE BLOOD TILE GRIDBUG TILE SHITOMI TILE BOOT TILE SANDAL TILE WELL TILE LUX TILE PURPLESLUG TILE BLUEPOTION TILE CURSOR TILE EMPTYSLOT TILE HELM TILE BOTTLE TILE CHAINTUNIC TILE BLUEROBE TILE LEATHERTUNIC TILE STUDDEDTUNIC TILE PURPLEPOTION TILE BOULDER TILE SCROLL TILE SILVERRING TILE IRONRING TILE WOODENRING TILE GLASSRING TILE RUBYRING TILE DAEMON TILE DIAMONDRING TILE EMERALDRING TILE SAPPHIRERING TILE GOLDRING TILE AMETHYSTRING TILE CLEARPOTION TILE MOBIUSRING TILE BAEZLEBUBUL TILE BAEZLEBUBUR TILE STONERING TILE AQUAMARINERING TILE BLUEDRAGON TILE PLATETUNIC TILE GLASSTUNIC TILE INVISIBLESTALKER TILE REDPOTION TILE YELLOWPOTION TILE GREYPOTION TILE WHITEPOTION TILE BLACKPOTION TILE CYANPOTION TILE RAYSLASH TILE RAYPIPE TILE RAYDASH TILE RAYBACKSLASH TILE PEARLNECKLACE TILE GOLDNECKLACE TILE RUBYNECKLACE TILE GIANTRAT TILE WOODENWAND TILE GLASSWAND TILE BAEZLEBUBLL TILE BAEZLEBUBLR TILE SILVERWAND TILE IRONWAND TILE CURVEDWAND TILE FORKEDWAND TILE KIWI TILE BAT TILE LARGEBAT TILE BROWNSLUG TILE DEATHSLUG TILE SOLIDEARTH TILE CRETAN_MINOTAUR_UL TILE CRETAN_MINOTAUR_UR TILE GOLDTRIDUDE_UL TILE GOLDTRIDUDE_UR TILE HUGE3_UL TILE HUGE3_UR TILE HUGE4_UL TILE HUGE4_UR TILE SILVERSWORD TILE WARHAMMER TILE SILVERDAGGER TILE DAGGER TILE SPEAR TILE SILVERSPEAR TILE CLUB TILE FLAMINGSWORD TILE MACE TILE SHORTSWORD TILE KNIFE TILE NOTILE TILE FLOATINGEYE TILE SCORPION TILE CAVESPIDER TILE GIANTSPIDER TILE CRETAN_MINOTAUR_LL TILE CRETAN_MINOTAUR_LR TILE GOLDTRIDUDE_LL TILE GOLDTRIDUDE_LR TILE HUGE3_LL TILE HUGE3_LR TILE HUGE4_LL TILE HUGE4_LR TILE GREENSNAKE TILE IRONTORC TILE SILVERCIRCLET TILE FEATHEREDHELM TILE FLOPPYHAT TILE BLUESPELLBOOK TILE REDSPELLBOOK TILE LEATHERSPELLBOOK TILE PURPLESPELLBOOK TILE GREYSPELLBOOK TILE PLAIDSPELLBOOK TILE BLACKSPELLBOOK TILE GOLDSPELLBOOK TILE THINBLUESPELLBOOK TILE LOCKEDSPELLBOOK TILE BLUERUNEDSPELLBOOK TILE REDRUNEDSPELLBOOK TILE LEATHERRUNEDSPELLBOOK TILE PURPLERUNEDSPELLBOOK TILE GREYRUNEDSPELLBOOK TILE JEWELEDWAND TILE TWISTEDWAND TILE FLOORHOLE TILE PATHHOLE TILE PATHPIT TILE WHITESPELLBOOK TILE BLOODYSPELLBOOK TILE GLASSSPELLBOOK TILE THINREDSPELLBOOK TILE WHITEDRAGON TILE REDDRAGON TILE ICEDAEMON TILE PATHSPIKEDPIT TILE FLOORPIT TILE FLOORSPIKEDPIT TILE LAVA TILE ICE TILE TORCH TILE PURPLEWAND TILE POINTEDSLIPPER TILE RIDINGBOOT TILE IRONSHOE TILE WINGEDBOOT TILE FROG TILE KOBOLD TILE TROLL TILE LIZARDMAN TILE BLACKHEART TILE GRASS TILE MOUNTAIN TILE HILLS TILE FOREST TILE GELATINOUSCUBE TILE HEADLESS TILE KOBOLDMAGE TILE WOODENSTAFF TILE IRONSHODSTAFF TILE HOOKEDSTAFF TILE GNARLEDSTAFF TILE BEJEWELEDSTAFF TILE SKELETON TILE VAMPIREBAT TILE IMP TILE ZOMBIE TILE LICH TILE GHAST TILE CORPSE TILE BONES TILE STUDDEDGORGET TILE THINLEATHERSPELLBOOK TILE THINPURPLESPELLBOOK TILE THINGREYSPELLBOOK TILE JADEWAND TILE JADERING TILE INVALIDSLOT TILE CHAMELEON TILE MOUSE TILE EARTHELEMENTAL TILE IRONGOLEM TILE STONEGOLEM TILE FLESHGOLEM TILE AIRELEMENTAL TILE FIREELEMENTAL TILE WATERELEMENTAL TILE INVISIBLEAVATAR TILE STATUE TILE COCKATRICE TILE MOUNDFLESH TILE ROCK TILE MEATBALL TILE SMOKE TILE GEMENCRUSTEDWAND TILE STONEWAND TILE GOLDWAND TILE REDWAND TILE BLUEWAND TILE POISONSMOKE TILE ACIDSMOKE TILE YELLOWDRAGON TILE THINPLAIDSPELLBOOK TILE THINBLACKSPELLBOOK TILE THINGOLDSPELLBOOK TILE SHADOW_HEAR TILE SHADOW_SMELL TILE SHADOW_ESP TILE STEAMSMOKE TILE KOBOLDFIGHTER TILE CAVETROLL TILE FLOORSMOKEVENT TILE FLOORPOISONVENT TILE FLOORTELEPORTER TILE PATHSMOKEVENT TILE PATHPOISONVENT TILE PATHTELEPORTER TILE BOW TILE ARROW TILE TURTLOID TILE LARGETURTLOID TILE HILLORC TILE ORC TILE SCROLL_BACK TILE SCROLL_TOP TILE SCROLL_BOTTOM TILE UNKNOWN TILE GOLDCROWN TILE CLOGS TILE GHOST TILE ACIDPOOL TILE MINDACIDHAND TILE KOBOLDASSASSIN TILE GLOWINGPOTION TILE BROWNPOTION TILE GREENPOTION TILE LIVINGFROST TILE REINFORCEDWALL TILE FLOORALTAR TILE MAGICDOOR TILE SOULSUCKER TILE SIGNPOST TILE GOLDBEETLE TILE METALFLOOR TILE METALWALL TILE DIMDOOR TILE YRUNE TILE BLUETRIDUDE TILE REDTRIDUDE TILE PURPLETRIDUDE TILE STARS1 TILE STARS2 TILE STARS3 TILE STARS4 TILE STARS5 TILE VIEWPORT TILE ONYXRING TILE RAPIER TILE FORESTFIRE TILE FIREARROW TILE LIGHTNINGRAPIER TILE ICEMACE TILE KOBOLDTHIEF TILE LEATHERHELM TILE EARTHHAMMER TILE AFLAME TILE BROKENVIEWPORT TILE LIVINGTREE TILE CURSEDSLOT TILE HOLYSLOT TILE NORMALSLOT TILE FAVORITESLOT TILE UNIQUEMOB TILE TAMEMOB TILE MIRRORSHIELD TILE TOWERSHIELD TILE KITESHIELD TILE WOODENSHIELD TILE BUCKLER TILE TRICERATOPS TILE ASLEEP TILE ELDER COMMENT { Sprites exist on their own plane. They also get their own palettes. These are largely for stylus cursors and action buttons which we float above the actual tiles for convenience. } DEFINE SPRITE { } SPRITE INVALID 65535 SPRITE EQUIP 0 SPRITE DEQUIP SPRITE DROP SPRITE EAT SPRITE BREATHE SPRITE WALK SPRITE LOOK SPRITE QUAFF SPRITE READ SPRITE ZAP SPRITE FIRE SPRITE QUIVER SPRITE HELP SPRITE UNUSED SPRITE DIP SPRITE OPEN SPRITE CLOSE SPRITE HISTORY SPRITE INVENTORY SPRITE CLIMB SPRITE PICKUP SPRITE NAME SPRITE FORGET SPRITE MINIMAP SPRITE NORTH SPRITE SOUTH SPRITE EAST SPRITE WEST SPRITE NORTHWEST SPRITE NORTHEAST SPRITE SOUTHEAST SPRITE SOUTHWEST SPRITE UP SPRITE DOWN SPRITE TEXT SPRITE TILE SPRITE CANCEL SPRITE VOID SPRITE CURSOR SPRITE COMMAND SPRITE PRAY SPRITE SORT SPRITE SLEEP SPRITE SPLITSTACK SPRITE JUMP SPRITE SWAP SPRITE VERBLIST SPRITE OPTIONS SPRITE RELEASE SPRITE WAIT SPRITE SEARCH SPRITE EMPTYSLOT SPRITE UNUSEDSPELL SPRITE STICKYFLAMES SPRITE MAGICMISSILE SPRITE CHILL SPRITE SPARK SPRITE FROSTBOLT SPRITE LIVINGFROST SPRITE BLIZZARD SPRITE FIREBALL SPRITE FLAMESTRIKE SPRITE LIGHTNINGBOLT SPRITE CHAINLIGHTNING SPRITE SUNFIRE SPRITE ACIDSPLASH SPRITE ACIDICMIST SPRITE CORROSIVEEXPLOSION SPRITE ACIDPOOL SPRITE MINDACID SPRITE DISINTEGRATE SPRITE REGENERATE SPRITE SLOWPOISON SPRITE HEAL SPRITE CUREPOISON SPRITE MAJORHEAL SPRITE RESURRECT SPRITE SUMMON_FAMILIAR SPRITE TRANSFER_KNOWLEDGE SPRITE LIGHT SPRITE DARKNESS SPRITE KNOCK SPRITE TRACK SPRITE WIZARDSEYE SPRITE DIAGNOSE SPRITE PRESERVE SPRITE POSSESS SPRITE MAGICMAP SPRITE DETECTCURSE SPRITE IDENTIFY SPRITE BLINK SPRITE FETCH SPRITE TELEPORT SPRITE TELEWITHCONTROL SPRITE DIRECTWIND SPRITE FORCEBOLT SPRITE FORCEWALL SPRITE DIG SPRITE CREATEPIT SPRITE ROLLINGBOULDER SPRITE PETRIFY SPRITE STONETOFLESH SPRITE ENTOMB SPRITE RAISE_UNDEAD SPRITE RECLAIM_SOUL SPRITE DARK_RITUAL SPRITE POISONITEM SPRITE POISONBOLT SPRITE GHASTIFY SPRITE BINDSOUL SPRITE SOULSUCK SPRITE SUMMON_IMP SPRITE SUMMON_DEMON SPRITE CLOUDKILL SPRITE FINGEROFDEATH SPRITE YESWAY SPRITE NOWAY SPRITE WISH SPRITE FLASH SPRITE GROWFOREST SPRITE DOWNPOUR SPRITE SPELLREADY SPRITE ANIMATEFOREST SPRITE SANDSTORM COMMENT { Mini tiles are the overlay tiles for the avatar. The slot is where the icon was drawn. Each slot has a home (x,y) coord. Thus, if you put something in a weird slot, we can calculate the offset and do a best-guess render. } DEFINE MINI { ENM slot ITEMSLOT BODY } MINI NAKED MINI HELM { slot HEAD } MINI HAT { slot HEAD } MINI BLUEROBE { slot BODY } MINI LEATHERTUNIC { slot BODY } MINI STUDDEDTUNIC { slot BODY } MINI CHAINTUNIC { slot BODY } MINI SWORD { slot RHAND } MINI CLUB { slot RHAND } MINI MACE { slot RHAND } MINI REDSHIELD { slot LHAND } MINI SANDALS { slot FEET } MINI BOOTS { slot FEET } MINI LEATHERHELM { slot HEAD } MINI SILVERCIRCLET { slot HEAD } MINI CRYSTALPLATE { slot BODY } MINI FEATHEREDHELM { slot HEAD } MINI PLATEMAIL { slot BODY } MINI FLAMINGSWORD { slot RHAND } MINI WARHAMMER { slot RHAND } MINI SPEAR { slot RHAND } MINI MIRRORSHIELD { slot LHAND } MINI TOWERSHIELD { slot LHAND } MINI WOODENSHIELD { slot LHAND } MINI BUCKLER { slot LHAND } MINI ROUNDSHIELD { slot LHAND } MINI TORCH { slot LHAND } MINI IRONSHOES { slot FEET } MINI POINTEDSLIPPERS { slot FEET } MINI RIDINGBOOTS { slot FEET } MINI WINGEDBOOTS { slot FEET } MINI STAFF { slot RHAND } MINI POTION { slot RHAND } MINI BOW { slot RHAND } MINI GOLDCROWN { slot HEAD } MINI CLOGS { slot FEET } MINI MINDACIDHAND { slot RHAND } MINI BOOK { slot RHAND } MINI SCROLL { slot RHAND } MINI SHORTSWORD { slot RHAND } MINI DAGGER { slot RHAND } MINI KNIFE { slot RHAND } MINI PEARLNECKLACE { slot AMULET } MINI GOLDNECKLACE { slot AMULET } MINI RUBYNECKLACE { slot AMULET } MINI IRONTORC { slot AMULET } MINI STUDDEDGORGET { slot AMULET } MINI WAND { slot RHAND } MINI LIGHTNINGRAPIER { slot RHAND } MINI ICEMACE { slot RHAND } MINI RAPIER { slot RHAND } MINI EARTHHAMMER { slot RHAND } MINI NAKEDPOISON MINI NAKEDSTONE MINI NONE DEFINE TRAP { CST name "none" ENM attack ATTACK NONE U8 triggerchance 100 ENM moveevade MOVE NONE U8 level 255 } TRAP NONE TRAP HOLE { name "hole" triggerchance 30 moveevade FLY level 1 } TRAP PIT { name "pit" triggerchance 40 moveevade FLY attack TRAP_PIT level 0 } TRAP SPIKEDPIT { name "spiked pit" triggerchance 40 moveevade FLY attack TRAP_SPIKEDPIT level 2 } TRAP SMOKEVENT { name "smoke vent" triggerchance 40 level 4 } TRAP POISONVENT { name "poison vent" triggerchance 40 level 10 } TRAP TELEPORT { name "teleporter" triggerchance 90 level 3 } DEFINE COLOUR { u8 red 0 u8 green 0 u8 blue 0 } COLOUR INVISIBLE 0 COLOUR BLACK { red 0 green 0 blue 0 } COLOUR LIGHTBLACK { red 32 green 32 blue 32 } COLOUR WHITE { red 255 green 255 blue 255 } COLOUR RED { red 255 green 0 blue 0 } COLOUR LIGHTRED { red 255 green 128 blue 128 } COLOUR GREEN { red 0 green 255 blue 0 } COLOUR LIGHTGREEN { red 128 green 255 blue 128 } COLOUR BLUE { red 0 green 0 blue 255 } COLOUR YELLOW { red 255 green 255 blue 0 } COLOUR LIGHTYELLOW { red 255 green 255 blue 128 } COLOUR CYAN { red 0 green 255 blue 255 } COLOUR MAGENTA { red 255 green 0 blue 255 } COLOUR GREY { red 128 green 128 blue 128 } COLOUR BROWN { red 196 green 128 blue 64 } COLOUR DARKGREEN { red 0 green 128 blue 0 } COLOUR DARKRED { red 128 green 0 blue 0 } COMMENT { HUNGER names are the different levels of hunger that someone experiences. } DEFINE HUNGER { CST name "Hungry" U16 foodlevel 0 } HUNGER STARVING { name "Starving" foodlevel 0 } HUNGER HUNGRY { name "Hungry" foodlevel 100 } HUNGER FORAGE { name 0 foodlevel 500 } HUNGER NORMAL { name 0 foodlevel 1000 } HUNGER FULL { name "Full" foodlevel 2500 } COMMENT { DEATHMSG is collections of death messages for different creature types. This allows each creature type to have its own custom death messages suitable to its type. These use the same format as the intrinsic change list. } DEFINE DEATHMSG_MSG { CST msg 0 } DEFINE DEATHMSG { ENMLIST msglist DEATHMSG_MSG NONE } DEATHMSG_MSG NONE 0 { } DEATHMSG_MSG DIE { msg "%U !" } DEATHMSG_MSG HEAP { msg "%U into a heap!" } DEATHMSG_MSG BLOOD { msg "%U in a pool of blood!" } DEATHMSG_MSG DUST { msg "%U in a pile of dust!" } DEATHMSG_MSG WOOD { msg "%U into a pile of twigs!" } DEATHMSG_MSG SPARK { msg "%U in a cloud of sparks!" } DEATHMSG_MSG ICHOR { msg "%U in a pool of ichor!" } DEATHMSG_MSG FLAME { msg "%U in a burst of flame!" } DEATHMSG_MSG FADE { msg "%U into the void!" } DEATHMSG_MSG WISP { msg "%U into wisps!" } DEATHMSG_MSG WATER { msg "%U in a pool of water!" } DEATHMSG BLOOD { msglist DIE msglist HEAP msglist BLOOD } DEATHMSG DUST { msglist DIE msglist HEAP msglist DUST } DEATHMSG WOOD { msglist DIE msglist HEAP msglist WOOD } DEATHMSG SPARK { msglist DIE msglist HEAP msglist SPARK } DEATHMSG ICHOR { msglist DIE msglist HEAP msglist ICHOR } DEATHMSG FLAME { msglist DIE msglist HEAP msglist FLAME } DEATHMSG WATER { msglist DIE msglist HEAP msglist WATER } DEATHMSG INCORPREAL { msglist WISP msglist FADE } COMMENT { Squares have a lot of stuff describing their properties... tile - Base tile to draw this with trap - Trap type. movetype - What moves can be made onto that square minicolour - What to draw the square as on the minimap findchance - Chance of finding the hidden square hiddensquare - What you would find :> invissquare - What it switches to when made invisible description - Noun description of what is here: "a ladder up". invulnerable - True if nothing should ever change this square. transparent - True if one can look through this square. islit - if true, tile always has templit flag set. } DEFINE SQUARE { ENM16 tile TILE VOID ENM trap TRAP NONE ENM movetype MOVE PHASE ENM minicolour COLOUR BLACK U8 findchance 0 ENM hiddensquare SQUARE EMPTY ENM invissquare SQUARE EMPTY ENM disarmsquare SQUARE EMPTY CST description 0 BOOL invulnerable false BOOL transparent true BOOL promptclimb false BOOL islit false BOOL isforest false ENM submergeattack ATTACK SUFFOCATE BOOL isstars false } SQUARE EMPTY 0 { tile SOLIDEARTH minicolour BLACK transparent false } SQUARE WALL { tile WALL minicolour GREY transparent false description "a stone wall" } SQUARE METALWALL { tile METALWALL minicolour GREY transparent false movetype OTHER invulnerable true description "a metal wall" } SQUARE VIEWPORT { tile VIEWPORT minicolour GREY transparent true movetype OTHER invulnerable true description "a glass wall" } SQUARE BROKENVIEWPORT { tile BROKENVIEWPORT minicolour CYAN transparent true movetype WALK invulnerable true description "a broken glass wall" } SQUARE METALFLOOR { tile METALFLOOR minicolour LIGHTBLACK movetype WALK invulnerable true } SQUARE DIMDOOR { tile DIMDOOR minicolour MAGENTA movetype WALK invulnerable true promptclimb true description "a dimensional portal" } SQUARE REINFORCEDWALL { tile REINFORCEDWALL minicolour GREY transparent false invulnerable true movetype OTHER description "a reinforced wall" } SQUARE STARS1 { tile STARS1 minicolour BLACK transparent true invulnerable true movetype WALK description "stars" isstars true } SQUARE STARS2 { tile STARS2 minicolour BLACK transparent true invulnerable true movetype WALK description "stars" isstars true } SQUARE STARS3 { tile STARS3 minicolour BLACK transparent true invulnerable true movetype WALK description "stars" isstars true } SQUARE STARS4 { tile STARS4 minicolour BLACK transparent true invulnerable true movetype WALK description "stars" isstars true } SQUARE STARS5 { tile STARS5 minicolour BLACK transparent true invulnerable true movetype WALK description "stars" isstars true } SQUARE FLOOR { tile FLOOR movetype WALK minicolour RED } SQUARE FLOORALTAR { tile FLOORALTAR movetype WALK minicolour CYAN description "a fiery altar" } SQUARE FLOORHOLE { tile FLOORHOLE movetype WALK minicolour CYAN description "a hole" disarmsquare FLOOR invissquare SECRETFLOORHOLE trap HOLE } SQUARE PATHHOLE { tile PATHHOLE movetype WALK minicolour CYAN description "a hole" disarmsquare CORRIDOR invissquare SECRETPATHHOLE trap HOLE } SQUARE WATER { tile WATER movetype SWIM minicolour BLUE submergeattack DROWN description "water" } SQUARE ICE { tile ICE movetype WALK minicolour CYAN submergeattack DROWN } SQUARE DOOR { tile DOOR movetype PHASE minicolour YELLOW description "a door" transparent false invissquare SECRETDOOR } COMMENT { Blocked doors are intentionally impossible to distinguish from normal doors, the only difference being that the AI will not open blocked doors. This allows special rooms to properly keep monsters contained. } SQUARE BLOCKEDDOOR { tile DOOR movetype PHASE minicolour YELLOW description "a door" transparent false invissquare SECRETDOOR } SQUARE MAGICDOOR { tile MAGICDOOR movetype OTHER minicolour YELLOW description "a magical door" transparent false invulnerable true } SQUARE OPENDOOR { tile OPENDOOR movetype WALK minicolour YELLOW } SQUARE SECRETDOOR { tile WALL movetype PHASE minicolour GREY hiddensquare DOOR findchance 30 transparent false description "a stone wall" } SQUARE CORRIDOR { tile PATH movetype WALK minicolour BROWN } SQUARE LADDERDOWN { tile LADDERDOWN movetype WALK minicolour DARKGREEN description "a ladder down" invulnerable true promptclimb true } SQUARE LADDERUP { tile LADDERUP movetype WALK minicolour GREEN description "a ladder up" invulnerable true promptclimb true } SQUARE FLOORPIT { tile FLOORPIT minicolour CYAN movetype WALK description "a pit" disarmsquare FLOOR invissquare SECRETFLOORPIT trap PIT } SQUARE PATHPIT { tile PATHPIT minicolour CYAN movetype WALK description "a pit" disarmsquare CORRIDOR invissquare SECRETPATHPIT trap PIT } SQUARE FLOORSPIKEDPIT { tile FLOORSPIKEDPIT minicolour CYAN movetype WALK description "a spiked pit" disarmsquare FLOOR invissquare SECRETFLOORSPIKEDPIT trap SPIKEDPIT } SQUARE PATHSPIKEDPIT { tile PATHSPIKEDPIT minicolour CYAN movetype WALK description "a spiked pit" disarmsquare CORRIDOR invissquare SECRETPATHSPIKEDPIT trap SPIKEDPIT } SQUARE SECRETFLOORSPIKEDPIT { tile FLOOR minicolour RED hiddensquare FLOORSPIKEDPIT movetype WALK findchance 60 } SQUARE SECRETPATHSPIKEDPIT { tile PATH minicolour BROWN hiddensquare PATHSPIKEDPIT movetype WALK findchance 60 } SQUARE SECRETFLOORPIT { tile FLOOR minicolour RED hiddensquare FLOORPIT movetype WALK findchance 60 } SQUARE SECRETPATHPIT { tile PATH minicolour BROWN hiddensquare PATHPIT movetype WALK findchance 60 } SQUARE SECRETFLOORHOLE { tile FLOOR minicolour RED hiddensquare FLOORHOLE movetype WALK findchance 60 } SQUARE SECRETPATHHOLE { tile PATH minicolour BROWN hiddensquare PATHHOLE movetype WALK findchance 60 } SQUARE FLOORPOISONVENT { tile FLOORPOISONVENT minicolour CYAN movetype WALK description "a poison vent" disarmsquare FLOOR invissquare SECRETFLOORPOISONVENT trap POISONVENT } SQUARE PATHPOISONVENT { tile PATHPOISONVENT minicolour CYAN movetype WALK description "a poison vent" disarmsquare CORRIDOR invissquare SECRETPATHPOISONVENT trap POISONVENT } SQUARE FLOORSMOKEVENT { tile FLOORSMOKEVENT minicolour CYAN movetype WALK description "a smoke vent" disarmsquare FLOOR trap SMOKEVENT invissquare SECRETFLOORSMOKEVENT } SQUARE PATHSMOKEVENT { tile PATHSMOKEVENT minicolour CYAN movetype WALK description "a smoke vent" disarmsquare CORRIDOR trap SMOKEVENT invissquare SECRETPATHSMOKEVENT } SQUARE SECRETFLOORPOISONVENT { tile FLOOR minicolour RED hiddensquare FLOORPOISONVENT movetype WALK findchance 60 } SQUARE SECRETFLOORSMOKEVENT { tile FLOOR minicolour RED hiddensquare FLOORSMOKEVENT movetype WALK findchance 60 } SQUARE SECRETPATHPOISONVENT { tile PATH minicolour BROWN hiddensquare PATHPOISONVENT movetype WALK findchance 60 } SQUARE SECRETPATHSMOKEVENT { tile PATH minicolour BROWN hiddensquare PATHSMOKEVENT movetype WALK findchance 60 } SQUARE PATHTELEPORTER { tile PATHTELEPORTER minicolour CYAN movetype WALK description "a teleporter" disarmsquare CORRIDOR trap TELEPORT invissquare SECRETPATHTELEPORTER } SQUARE FLOORTELEPORTER { tile FLOORTELEPORTER minicolour CYAN movetype WALK description "a teleporter" disarmsquare CORRIDOR trap TELEPORT invissquare SECRETFLOORTELEPORTER } SQUARE SECRETFLOORTELEPORTER { tile FLOOR minicolour RED hiddensquare FLOORTELEPORTER movetype WALK findchance 60 } SQUARE SECRETPATHTELEPORTER { tile PATH minicolour BROWN hiddensquare PATHTELEPORTER movetype WALK findchance 60 } SQUARE LAVA { tile LAVA minicolour DARKRED movetype SWIM submergeattack DROWN islit true description "lava" } SQUARE ACID { tile ACIDPOOL minicolour YELLOW movetype SWIM submergeattack DROWN description "acid" } SQUARE GRASS { tile GRASS minicolour GREEN movetype WALK } SQUARE MOUNTAIN { tile MOUNTAIN minicolour GREY movetype PHASE transparent 0 description "mountains" } SQUARE HILLS { tile HILLS minicolour YELLOW movetype WALK description "hills" } SQUARE FOREST { tile FOREST minicolour DARKGREEN movetype WALK transparent false isforest true description "forest" } SQUARE FORESTFIRE { tile FORESTFIRE minicolour DARKRED islit true movetype WALK transparent false isforest true description "a forest fire" } SQUARE SIGNPOST { tile SIGNPOST minicolour BROWN movetype WALK description "a signpost" } COMMENT { Different smoke types allow us to produce different smoke effects. } DEFINE SMOKE { CST name "smoke" ENM16 tile TILE VOID ENM attack ATTACK NONE U8 decayrate 5 } SMOKE NONE { name "clear air" tile VOID } SMOKE SMOKE { name "smoke" tile SMOKE attack INHALE_SMOKE } SMOKE STEAM { name "steam" tile STEAMSMOKE attack INHALE_STEAM decayrate 30 } SMOKE POISON { name "poison gas" tile POISONSMOKE attack INHALE_POISONSMOKE } SMOKE ACID { name "acidic smoke" tile ACIDSMOKE attack INHALE_ACIDSMOKE } COMMENT { This is a bit field used for the global map flags. DIG: Can you dig down in this map to get to the next level. NEWMOBS: Can new mobs be generated? NOITEMS: Prohibits item generation NOTELE: Are you allowed to teleport? (Blink is always allowed) } DEFINE MAPFLAG { } MAPFLAG NONE 0 MAPFLAG DIG 1 MAPFLAG NEWMOBS 2 MAPFLAG NOITEMS 4 MAPFLAG NOTELE 8 COMMENT { This is a bit field used for common square flags. TEMPLIT is cleared every round and is used for dynamic lights, while LIT signifies that the square is self-lit. FOV tracks if a square is visible from the stashed FOV location, which will traditionally be the avatars current position. SMOKE is used to track if there is smoke in the square. NOMOB prevents random generation of monsters (but allows /oCM) prevents teleport *into* or reaching via trap door. MAPPED tracks if the avatar has seen the square TRAPPED is unused. } DEFINE SQUAREFLAG { } SQUAREFLAG NONE 0 SQUAREFLAG LIT 1 SQUAREFLAG TEMPLIT 2 SQUAREFLAG MAPPED 4 SQUAREFLAG TRAPPED 8 SQUAREFLAG FOV 16 SQUAREFLAG SMOKE 32 SQUAREFLAG NOMOB 64 COMMENT { Movement names is a bitfield representing different types of movement. Movement is valid if the type & creature movement is nonzero. Standard names are used for creatures to represent multiple modes. } DEFINE MOVE { } MOVE NONE 0 MOVE WALK 1 MOVE SWIM 2 MOVE FLY 4 MOVE PHASE 8 MOVE OTHER 16 MOVE STD_SWIM 3 MOVE STD_FLY 7 MOVE STD_PHASE 13 MOVE ALL 31 COMMENT { The CURSECHANCE determines for items how often they care cursed. Magic types will override this as we usually base curse on the magic type rather than the curse type. The ratios are: 100 0 0 70 20 10 15 70 15 10 20 70 0 0 100 0 100 0 } DEFINE CURSECHANCE { U8 curse 0 U8 normal 100 U8 bless 0 } CURSECHANCE ALWAYSCURSE { curse 100 normal 0 bless 0 } CURSECHANCE OFTENCURSE { curse 70 normal 20 bless 10 } CURSECHANCE NORMAL { curse 15 normal 70 bless 15 } CURSECHANCE OFTENBLESS { curse 10 normal 20 bless 70 } CURSECHANCE ALWAYSBLESS { curse 0 normal 0 bless 100 } CURSECHANCE ALWAYSMUNDANE { curse 0 normal 100 bless 0 } DEFINE ELEMENT { CST name "none" } ELEMENT PHYSICAL { name "physical" } ELEMENT FIRE { name "fire" } ELEMENT COLD { name "cold" } ELEMENT SHOCK { name "shock" } ELEMENT ACID { name "acid" } ELEMENT LIGHT { name "light" } ELEMENT DEATH { name "death" } COMMENT { These are fake elements used solely for noting resistances in the AI. } ELEMENT POISON { name "poison" } ELEMENT REFLECTIVITY { name "reflectivity" } ELEMENT SLEEP { name "sleep" } COMMENT { INTRINSICS are things people can have. Items can also have them, in which case they will pass them to anyone who equips the item. - clearondeath intrinsics will be eliminated by dying. This means if you life save, you will have the intrinsics removed. - survive poly means if it exists on the non-polyed version, it will be transferred to the new mob. - survive unpoly means that when we un-poly we transfer the intrinsic over. This usually matches survivepoly. - clearonpoly means after polying, the base mob has the attribute cleared. This could be set with survive on poly for interesting behaviour. - maxcount is the maximum length a counter can be set for. Counters over this are just set to this. 0 means no max. - visiblechange marks intrinsics which one gets a message for even if not applied to oneself. - maskchangeifclothed marks intrinsics which only broad cast the change if you aren't wearing something that hides that effect. - Format: %U - You %R - Your - verbify infinitive foo. - affectappearance marks intrinsics that need a rebuildAppearance to keep things in sync. - losewheninflictordies will set a five turn timeout when the inflictor of the intrinsic dies. } DEFINE INTRINSIC { CST name "generic intrinsic" CST gaintxt "%U more generic." CST losetxt "%U less generic." BOOL clearondeath 0 BOOL survivepoly false BOOL surviveunpoly false BOOL clearonpoly false BOOL visiblechange 0 BOOL maskchangeifclothed false BOOL ispoison false U8 maxcount 0 ENM resistance INTRINSIC NONE BOOL isspell false BOOL isskill false BOOL affectappearance false BOOL losewheninflictordies false } INTRINSIC NONE { name "nothing special" gaintxt "%U nothing." losetxt "%U nothing." } INTRINSIC DEAD { name "dead" gaintxt "%U ." losetxt "%U to life." } INTRINSIC LEFTHANDED { name "left handed" gaintxt "%R left hand feels dominant." losetxt "%R right hand feels dominant." } INTRINSIC FAST { name "fast" gaintxt "%U up." losetxt "%U down." visiblechange 1 } INTRINSIC QUICK { name "quick" gaintxt "%U ." losetxt "%U less quick." visiblechange 1 } INTRINSIC SLOW { name "slow" gaintxt "%U ." losetxt "%U ." visiblechange 1 } INTRINSIC DIG { name "can dig" gaintxt "%U can dig." losetxt "%U cannot dig." } INTRINSIC UNCHANGING { name "unchanging" gaintxt "%U change." losetxt "Change is good." } INTRINSIC STONING { name "turning to stone" gaintxt "%U to turn to stone." losetxt "%R flesh softens." clearondeath 1 clearonpoly 1 maxcount 3 visiblechange 1 affectappearance true } INTRINSIC RESISTSTONING { name "stoning resistance" gaintxt "%R skin is soft." losetxt "%R skin is less supple." } INTRINSIC RESISTFIRE { name "fire resistance" gaintxt "%U like roasting marshmallows." losetxt "%U feverish." } INTRINSIC RESISTCOLD { name "cold resistance" gaintxt "%U like ice skating." losetxt "%U an icy chill." } INTRINSIC RESISTSHOCK { name "shock resistance" gaintxt "%U insulated." losetxt "%U electrified." } INTRINSIC RESISTACID { name "acid resistance" gaintxt "%U basic." losetxt "%U acidic." } INTRINSIC RESISTPOISON { name "poison resistance" gaintxt "%U healthy." losetxt "%U weak." } INTRINSIC RESISTPHYSICAL { name "physical immunity" gaintxt "%R skin is like rock." losetxt "%R skin is soft." } INTRINSIC TELEPORT { name "teleport" gaintxt "%U jumpy." losetxt "%U stabilized." } INTRINSIC TELEFIXED { name "position fixed" gaintxt "%U localized." losetxt "%U more mobile." } INTRINSIC POSITIONREVEALED { name "position revealed" gaintxt "%U like someone is always watching." losetxt "%U inconspicuous." } INTRINSIC TELEPORTCONTROL { name "teleport control" gaintxt "%U in control." losetxt "%R mind wanders." } INTRINSIC MISSINGFINGER { name "missing a finger" gaintxt "%U lost a finger!" losetxt "%U regained %R finger." visiblechange 1 } INTRINSIC REGENERATION { name "regeneration" gaintxt "%R bruises fade quickly." losetxt "%R bruises return." } INTRINSIC NOREGEN { name "non-regeneratable" gaintxt "%U self-repairing." losetxt "%U to self-repair." } INTRINSIC BLEED { name "bleeding" gaintxt "%U profusely." losetxt "%U bleeding." clearondeath true clearonpoly true visiblechange true } INTRINSIC MAGICDRAIN { name "magic drained" gaintxt "%R mind slows." losetxt "%R mind races." survivepoly true surviveunpoly true } INTRINSIC REFLECTION { name "reflective" gaintxt "A silvery sheen surrounds %U." losetxt "The silvery sheen dissipates from %U." } INTRINSIC SEARCH { name "search" gaintxt "%U aware!" losetxt "%U paying attention." } INTRINSIC VULNSILVER { name "vulnerable to silver" gaintxt "%U to fear silver." losetxt "%U no longer silver." } INTRINSIC GOLDALLERGY { name "allergic to gold" gaintxt "%U an allergy to gold." losetxt "%U to tolerate gold." } INTRINSIC VULNFIRE { name "vulnerable to fire" gaintxt "%U to fear fire." losetxt "%U no longer fire." } INTRINSIC VULNCOLD { name "vulnerable to cold" gaintxt "%U to fear cold." losetxt "%U no longer cold." } INTRINSIC VULNACID { name "vulnerable to acid" gaintxt "%U to fear acid." losetxt "%U no longer acid." } INTRINSIC VULNSHOCK { name "vulnerable to shock" gaintxt "%U to fear shock." losetxt "%U no longer shock." } INTRINSIC VULNPHYSICAL { name "vulnerable to physical attacks" gaintxt "%R skin bruises easily." losetxt "%R skin seems slightly less soft." } INTRINSIC CONFUSED { name "confused" gaintxt "%U confused." losetxt "%U clear headed." visiblechange 1 survivepoly true surviveunpoly true clearonpoly true } INTRINSIC INVISIBLE { name "invisible" gaintxt "%U invisible." losetxt "%U visible." visiblechange 1 maskchangeifclothed true } INTRINSIC SEEINVISIBLE { name "see invisible" gaintxt "%U can see the wind." losetxt "The wind vanishes." } INTRINSIC BLIND { name "blind" gaintxt "%U blind!" losetxt "%U can see." visiblechange 1 maskchangeifclothed true } INTRINSIC DEAF { name "deaf" gaintxt "%U deafened!" losetxt "%U can hear." visiblechange 1 maskchangeifclothed true } INTRINSIC NOISY { name "noisy" gaintxt "%U heavily." losetxt "%R steps are lighter." } INTRINSIC WARNING { name "warning" gaintxt "%U warned." losetxt "%U no longer are warned." } INTRINSIC TELEPATHY { name "telepathic" gaintxt "%U the chattering of voices." losetxt "%R mind quiets." } INTRINSIC STRANGLE { name "strangled" gaintxt "%U cannot breathe!" losetxt "%U can breathe again." clearondeath 1 clearonpoly 1 visiblechange 1 } INTRINSIC NOBREATH { name "breathless" gaintxt "%U not need to breathe." losetxt "%U deeply." } INTRINSIC LIFESAVE { name "life saved" gaintxt "%U fearless." losetxt "%U caution may be the better part of valour." clearondeath 1 } INTRINSIC TIRED { name "tired" gaintxt "%U fatigued." losetxt "%U rejuvenated." clearondeath 1 survivepoly true surviveunpoly true clearonpoly true } INTRINSIC ASLEEP { name "asleep" gaintxt "%U asleep." losetxt "%U up." clearondeath true survivepoly true surviveunpoly true clearonpoly true visiblechange true resistance RESISTSLEEP } INTRINSIC RESISTSLEEP { name "sleep resistance" gaintxt "%U wide awake." losetxt "%U sleepy." } INTRINSIC PARALYSED { name "paralysed" gaintxt "%U paralysed." losetxt "%U can move again." clearondeath true clearonpoly true visiblechange true resistance FREEDOM } INTRINSIC FREEDOM { name "freedom" gaintxt "Pathways open before %U." losetxt "%U constrained." } INTRINSIC AFLAME { name "aflame" gaintxt "%U on fire." losetxt "%R skin no longer burns." clearondeath 1 survivepoly true surviveunpoly true clearonpoly true visiblechange 1 resistance RESISTFIRE } INTRINSIC WATERWALK { name "walk on water" gaintxt "%U very holy." losetxt "%U a sinking feeling." } INTRINSIC JUMP { name "jump" gaintxt "%R legs feel springy." losetxt "%R legs feel like jelly." } INTRINSIC TAME { name "tame" gaintxt "%U tame." losetxt "%R inner animal escapes!" survivepoly true surviveunpoly false visiblechange 1 losewheninflictordies true } INTRINSIC POSSESSED { name "possessed" gaintxt "%U control." losetxt "%U control." survivepoly true surviveunpoly true clearonpoly true visiblechange true } INTRINSIC BRAINDEAD { name "brain dead" gaintxt "%R mind stops." losetxt "%R mind reactivates." survivepoly true surviveunpoly false visiblechange true } INTRINSIC LEADER { name "a leader" gaintxt "%U like taking a leadership role." losetxt "%U abandoned." survivepoly true surviveunpoly true visiblechange true } INTRINSIC SUMMONED { name "summoned" gaintxt "%U called." losetxt "%U unwanted." survivepoly true surviveunpoly true visiblechange 1 } INTRINSIC FAMILIAR { name "a familiar" gaintxt "%U a very close connection." losetxt "%U a close connection." survivepoly true surviveunpoly true visiblechange true } INTRINSIC INPIT { name "in pit" gaintxt 0 losetxt 0 survivepoly true surviveunpoly true clearonpoly true } INTRINSIC INTREE { name "in tree" gaintxt 0 losetxt 0 survivepoly true surviveunpoly true clearonpoly true } INTRINSIC SUBMERGED { name "submerged" gaintxt 0 losetxt 0 survivepoly true surviveunpoly true clearonpoly true } INTRINSIC POLYMORPH { name "polymorph" gaintxt "%U like a change." losetxt "%U fixed." } INTRINSIC POLYCONTROL { name "polymorph control" gaintxt "%U who %p should be." losetxt "%U who %p should be." } INTRINSIC UNIQUE { name "unique" gaintxt "%U special." losetxt "%U like one of the masses." survivepoly true surviveunpoly true } INTRINSIC AMNESIA { name "amnesic" gaintxt "%U what %U doing." losetxt "Memories flood %R mind." survivepoly true surviveunpoly true clearonpoly true losewheninflictordies true } INTRINSIC OFFBALANCE { name "off balance" gaintxt "%U %r balance." losetxt "%U %r balance." visiblechange true } INTRINSIC LICHFORM { name "imbued with evil" gaintxt "%U imbued with evil!" losetxt "%U evil recede..." maxcount 2 } COMMENT { Skill intrinsics, these just mark what skills you have. } INTRINSIC SKILL_DODGE { name "dodge skill" gaintxt "%U can evade attacks better." losetxt "%U no longer how to evade attacks well." isskill true } INTRINSIC SKILL_MOVINGTARGET { name "moving target skill" gaintxt "%U can move in an evasive manner." losetxt "%U move in straight lines." isskill true } INTRINSIC SKILL_SEARCH { name "search skill" gaintxt "%U more carefully." losetxt "%U no longer carefully." isskill true } INTRINSIC SKILL_EVADETRAP { name "evade trap skill" gaintxt "%U can evade traps." losetxt "%U no longer can evade traps." isskill true } INTRINSIC SKILL_ENDUREHUNGER { name "endure hunger skill" gaintxt "%U can endure hunger." losetxt "%U no longer can endure hunger." isskill true } INTRINSIC SKILL_BUTCHERY { name "butchery skill" gaintxt "%U how to butcher corpses." losetxt "%U no longer how to butcher corpses." isskill true } INTRINSIC SKILL_CLEANKILL { name "clean kill skill" gaintxt "%U how to kill cleanly." losetxt "%U no longer how to kill cleanly." isskill true } INTRINSIC SKILL_CHARGE { name "charge skill" gaintxt "%U how to charge at foes." losetxt "%U no longer how to charge at foes." isskill true } INTRINSIC SKILL_LEAPATTACK { name "leap attack skill" gaintxt "%U how to jump into the fray." losetxt "%U no longer how to jump into the fray." isskill true } INTRINSIC SKILL_TWOWEAPON { name "dual wield skill" gaintxt "%U can wield two weapons." losetxt "%U no longer can wield two weapons." isskill true } INTRINSIC SKILL_AMBIDEXTROUS { name "ambidextrous" gaintxt "%U can control both hands equally." losetxt "%R off hand seems clumsier." isskill true } INTRINSIC SKILL_ARMOUR_HELMET { name "helmet skill" gaintxt "%U helmets better." losetxt "%U no longer helmets well." isskill true } INTRINSIC SKILL_ARMOUR_SHIELD { name "shield skill" gaintxt "%U shields better." losetxt "%U no longer shields well." isskill true } INTRINSIC SKILL_ARMOUR_BODY { name "body armour skill" gaintxt "%U body armour better." losetxt "%U no longer body armour well." isskill true } INTRINSIC SKILL_ARMOUR_BOOTS { name "boots skill" gaintxt "%U boots better." losetxt "%U no longer boots well." isskill true } INTRINSIC SKILL_ARMOUR_CLOTH { name "cloth armour skill" gaintxt "%U cloth armour better." losetxt "%U no longer cloth armour well." isskill true } INTRINSIC SKILL_ARMOUR_LEATHER { name "leather armour skill" gaintxt "%U leather armour better." losetxt "%U no longer leather armour well." isskill true } INTRINSIC SKILL_ARMOUR_IRON { name "iron armour skill" gaintxt "%U iron armour better." losetxt "%U no longer iron armour well." isskill true } INTRINSIC SKILL_ARMOUR_EXOTIC { name "exotic armour skill" gaintxt "%U exotic armour better." losetxt "%U no longer exotic armour well." isskill true } INTRINSIC SKILL_WEAPON_SMALL { name "small weapon skill" gaintxt "%U how to wield small weapons." losetxt "%U no longer how to wield small weapons." isskill true } INTRINSIC SKILL_WEAPON_MEDIUM { name "medium weapon skill" gaintxt "%U how to wield medium weapons." losetxt "%U no longer how to wield medium weapons." isskill true } INTRINSIC SKILL_WEAPON_LARGE { name "large weapon skill" gaintxt "%U how to wield large weapons." losetxt "%U no longer how to wield large weapons." isskill true } INTRINSIC SKILL_WEAPON_RANGED { name "ranged weapon skill" gaintxt "%U how to wield ranged weapons." losetxt "%U no longer how to wield ranged weapons." isskill true } INTRINSIC SKILL_WEAPON_EDGED { name "edged weapon skill" gaintxt "%U how to wield edged weapons." losetxt "%U no longer how to wield edged weapons." isskill true } INTRINSIC SKILL_WEAPON_BLUNT { name "blunt weapon skill" gaintxt "%U how to wield blunt weapons." losetxt "%U no longer how to wield blunt weapons." isskill true } INTRINSIC SKILL_WEAPON_POINTED { name "pointed weapon skill" gaintxt "%U how to wield pointed weapons." losetxt "%U no longer how to wield pointed weapons." isskill true } INTRINSIC SKILL_WEAPON_IMPROVISE { name "improvised weapon skill" gaintxt "%U how to wield improvised weapons." losetxt "%U no longer how to wield improvised weapons." isskill true } INTRINSIC SKILL_WEAPON_BLEEDINGWOUND { name "bleeding wound skill" gaintxt "%U how to inflict bleeding wounds." losetxt "%U no longer how to inflict bleeding wounds." isskill true } INTRINSIC SKILL_WEAPON_DISARM { name "disarm skill" gaintxt "%U how to disarm foes." losetxt "%U no longer how to disarm foes." isskill true } INTRINSIC SKILL_WEAPON_IMPALE { name "impale skill" gaintxt "%U how to impale creatures." losetxt "%U no longer how to impale creatures." isskill true } INTRINSIC SKILL_WEAPON_RIPOSTE { name "riposte skill" gaintxt "%U how to riposte with weapons." losetxt "%U no longer how to riposte with weapons." isskill true } INTRINSIC SKILL_WEAPON_TRUEAIM { name "true aim skill" gaintxt "%U how to throw knives true." losetxt "%U no longer how to throw knives true." isskill true } INTRINSIC SKILL_WEAPON_RICOCHET { name "ricochet skill" gaintxt "%U how to bounce arrows off walls." losetxt "%U no longer how to bounce arrows." isskill true } INTRINSIC SKILL_WEAPON_PARRY { name "parrying skill" gaintxt "%U how to parry with weapons." losetxt "%U no longer how to parry with weapons." isskill true } INTRINSIC SKILL_WEAPON_KNOCKOUT { name "knockout skill" gaintxt "%U how to knock out creatures." losetxt "%U no longer how to knock out creatures." isskill true } INTRINSIC SKILL_WEAPON_STUN { name "stun skill" gaintxt "%U how to stun creatures." losetxt "%U no longer how to stun creatures." isskill true } INTRINSIC SKILL_WEAPON_KNOCKBACK { name "knockback skill" gaintxt "%U how to knockback creatures." losetxt "%U no longer how to knockback creatures." isskill true } COMMENT { Spell intrinsics, these just mark what spells you know... } INTRINSIC SPELL_FLASH { name "cast flash" gaintxt "%U Flash." losetxt "%U no longer Flash." isspell true } INTRINSIC SPELL_STICKYFLAMES { name "cast sticky flames" gaintxt "%U Sticky Flames." losetxt "%U no longer Sticky Flames." isspell true } INTRINSIC SPELL_MAGICMISSILE { name "cast magic missile" gaintxt "%U Magic Missile." losetxt "%U no longer Magic Missile." isspell true } INTRINSIC SPELL_CHILL { name "cast chilling touch" gaintxt "%U Chilling Touch." losetxt "%U no longer Chilling Touch." isspell true } INTRINSIC SPELL_SPARK { name "cast spark" gaintxt "%U Spark." losetxt "%U no longer Spark." isspell true } INTRINSIC SPELL_FROSTBOLT { name "cast frost bolt" gaintxt "%U Frost Bolt." losetxt "%U no longer Frost Bolt." isspell true } INTRINSIC SPELL_LIVINGFROST { name "cast living frost" gaintxt "%U Living Frost." losetxt "%U no longer Living Frost." isspell true } INTRINSIC SPELL_BLIZZARD { name "cast blizzard" gaintxt "%U Blizzard." losetxt "%U no longer Blizzard." isspell true } INTRINSIC SPELL_FIREBALL { name "cast fire ball" gaintxt "%U Fire Ball." losetxt "%U no longer Fire Ball." isspell true } INTRINSIC SPELL_FLAMESTRIKE { name "cast flamestrike" gaintxt "%U Flame Strike." losetxt "%U no longer Flame Strike." isspell true } INTRINSIC SPELL_LIGHTNINGBOLT { name "cast lightning bolt" gaintxt "%U Lightning Bolt." losetxt "%U no longer Lightning Bolt." isspell true } INTRINSIC SPELL_CHAINLIGHTNING { name "cast chain lightning" gaintxt "%U Chain Lightning." losetxt "%U no longer Chain Lightning." isspell true } INTRINSIC SPELL_SUNFIRE { name "cast sunfire" gaintxt "%U Sunfire." losetxt "%U no longer Sunfire." isspell true } INTRINSIC SPELL_ACIDSPLASH { name "cast acid splash" gaintxt "%U Acid Splash." losetxt "%U no longer Acid Splash." isspell true } INTRINSIC SPELL_ACIDICMIST { name "cast acidic mist" gaintxt "%U Acidic Mist." losetxt "%U no longer Acidic Mist." isspell true } INTRINSIC SPELL_CORROSIVEEXPLOSION { name "cast corrosive explosion" gaintxt "%U Corrosive Explosion." losetxt "%U no longer Corrosive Explosion." isspell true } INTRINSIC SPELL_ACIDPOOL { name "cast acid pool" gaintxt "%U Acid Pool." losetxt "%U no longer Acid Pool." isspell true } INTRINSIC SPELL_MINDACID { name "cast mind acid" gaintxt "%U Mind Acid." losetxt "%U no longer Mind Acid." isspell true } INTRINSIC SPELL_DISINTEGRATE { name "cast disintegrate" gaintxt "%U Disintegrate." losetxt "%U no longer Disintegrate." isspell true } INTRINSIC SPELL_REGENERATE { name "cast regenerate" gaintxt "%U Regenerate." losetxt "%U no longer Regenerate." isspell true } INTRINSIC SPELL_SLOWPOISON { name "cast slow poison" gaintxt "%U Slow Poison." losetxt "%U no longer Slow Poison." isspell true } INTRINSIC SPELL_HEAL { name "cast heal" gaintxt "%U Heal." losetxt "%U no longer Heal." isspell true } INTRINSIC SPELL_CUREPOISON { name "cast cure poison" gaintxt "%U Cure Poison." losetxt "%U no longer Cure Poison." isspell true } INTRINSIC SPELL_MAJORHEAL { name "cast major heal" gaintxt "%U Major Heal." losetxt "%U no longer Major Heal." isspell true } INTRINSIC SPELL_RESURRECT { name "cast resurrect" gaintxt "%U Resurrect." losetxt "%U no longer Resurrect." isspell true } INTRINSIC SPELL_SUMMON_FAMILIAR { name "cast summon familiar" gaintxt "%U Summon Familiar." losetxt "%U no longer Summon Familiar." isspell true } INTRINSIC SPELL_TRANSFER_KNOWLEDGE { name "cast transfer knowledge" gaintxt "%U Transfer Knowledge." losetxt "%U no longer Transfer Knowledge." isspell true } INTRINSIC SPELL_LIGHT { name "cast light" gaintxt "%U Light." losetxt "%U no longer Light." isspell true } INTRINSIC SPELL_FORCEBOLT { name "cast force bolt" gaintxt "%U Force Bolt." losetxt "%U no longer Force Bolt." isspell true } INTRINSIC SPELL_FORCEWALL { name "cast force wall" gaintxt "%U Force Wall." losetxt "%U no longer Force Wall." isspell true } INTRINSIC SPELL_DIG { name "cast dig" gaintxt "%U Dig." losetxt "%U no longer Dig." isspell true } INTRINSIC SPELL_CREATEPIT { name "cast create pit" gaintxt "%U Create Pit." losetxt "%U no longer Create Pit." isspell true } INTRINSIC SPELL_SANDSTORM { name "cast sandstorm" gaintxt "%U Sandstorm." losetxt "%U no longer Sandstorm." isspell true } INTRINSIC SPELL_GROWFOREST { name "cast grow forest" gaintxt "%U Grow Forest." losetxt "%U no longer Grow Forest." isspell true } INTRINSIC SPELL_ANIMATEFOREST { name "cast animate forest" gaintxt "%U Animate Forest." losetxt "%U no longer Animate Forest." isspell true } INTRINSIC SPELL_DOWNPOUR { name "cast downpour" gaintxt "%U Down Pour." losetxt "%U no longer Down Pour." isspell true } INTRINSIC SPELL_ROLLINGBOULDER { name "cast rolling boulder" gaintxt "%U Rolling Boulder." losetxt "%U no longer Rolling Boulder." isspell true } INTRINSIC SPELL_ENTOMB { name "cast entomb" gaintxt "%U Entomb." losetxt "%U no longer Entomb." isspell true } INTRINSIC SPELL_KNOCK { name "cast knock" gaintxt "%U Knock." losetxt "%U no longer Knock." isspell true } INTRINSIC SPELL_TRACK { name "cast track" gaintxt "%U Track." losetxt "%U no longer Track." isspell true } INTRINSIC SPELL_WIZARDSEYE { name "cast wizard's eye" gaintxt "%U Wizard's Eye." losetxt "%U no longer Wizard's Eye." isspell true } INTRINSIC SPELL_DIAGNOSE { name "cast diagnose" gaintxt "%U Diagnose." losetxt "%U no longer Diagnose." isspell true } INTRINSIC SPELL_POSSESS { name "cast possess" gaintxt "%U Possess." losetxt "%U no longer Possess." isspell true } INTRINSIC SPELL_PRESERVE { name "cast preserve" gaintxt "%U Preserve." losetxt "%U no longer Preserve." isspell true } INTRINSIC SPELL_MAGICMAP { name "cast magic map" gaintxt "%U Magic Map." losetxt "%U no longer Magic Map." isspell true } INTRINSIC SPELL_TELEPORT { name "cast teleport" gaintxt "%U Teleport." losetxt "%U no longer Teleport." isspell true } INTRINSIC SPELL_BLINK { name "cast blink" gaintxt "%U Blink." losetxt "%U no longer Blink." isspell true } INTRINSIC SPELL_FETCH { name "cast fetch" gaintxt "%U Fetch." losetxt "%U no longer Fetch." isspell true } INTRINSIC SPELL_IDENTIFY { name "cast identify" gaintxt "%U Identify." losetxt "%U no longer Identify." isspell true } INTRINSIC SPELL_DETECTCURSE { name "cast detect curse" gaintxt "%U Detect Curse." losetxt "%U no longer Detect Curse." isspell true } INTRINSIC SPELL_DIRECTWIND { name "cast direct wind" gaintxt "%U Direct Wind." losetxt "%U no longer Direct Wind." isspell true } INTRINSIC SPELL_PETRIFY { name "cast petrify" gaintxt "%U Petrify." losetxt "%U no longer Petrify." isspell true } INTRINSIC SPELL_FINGEROFDEATH { name "cast finger of death" gaintxt "%U Finger of Death." losetxt "%U no longer Finger of Death." isspell true } INTRINSIC SPELL_POISONITEM { name "cast poison item" gaintxt "%U Poison Item." losetxt "%U no longer Poison Item." isspell true } INTRINSIC SPELL_POISONBOLT { name "cast poison bolt" gaintxt "%U Poison Bolt." losetxt "%U no longer Poison Bolt." isspell true } INTRINSIC SPELL_RAISE_UNDEAD { name "cast raise undead" gaintxt "%U Raise Undead." losetxt "%U no longer Raise Undead." isspell true } INTRINSIC SPELL_RECLAIM_SOUL { name "cast reclaim soul" gaintxt "%U Reclaim Soul." losetxt "%U no longer Reclaim Soul." isspell true } INTRINSIC SPELL_DARK_RITUAL { name "cast dark ritual" gaintxt "%U Dark Ritual." losetxt "%U no longer Dark Ritual." isspell true } INTRINSIC SPELL_GHASTIFY { name "cast ghastify" gaintxt "%U Ghastify." losetxt "%U no longer Ghastify." isspell true } INTRINSIC SPELL_BINDSOUL { name "cast bind soul" gaintxt "%U Bind Soul." losetxt "%U no longer Bind Soul." isspell true } INTRINSIC SPELL_SOULSUCK { name "cast soul suck" gaintxt "%U Soul Suck." losetxt "%U no longer Soul Suck." isspell true } INTRINSIC SPELL_SUMMON_IMP { name "cast summon imp" gaintxt "%U Summon Imp." losetxt "%U no longer Summon Imp." isspell true } INTRINSIC SPELL_SUMMON_DEMON { name "cast summon daemon" gaintxt "%U Summon Daemon." losetxt "%U no longer Summon Daemon." isspell true } INTRINSIC SPELL_CLOUDKILL { name "cast cloud kill" gaintxt "%U Cloud Kill." losetxt "%U no longer Cloud Kill." isspell true } COMMENT { Poison related intrinsics... } INTRINSIC POISON_MILD { name "mildly poisoned" gaintxt "%U are mildly poisoned." losetxt "%U are cured." clearondeath 1 ispoison true affectappearance true } INTRINSIC POISON_NORMAL { name "poisoned" gaintxt "%U are poisoned." losetxt "%U are cured." clearondeath 1 ispoison true affectappearance true } INTRINSIC POISON_STRONG { name "strongly poisoned" gaintxt "%U are strongly poisoned." losetxt "%U are cured." clearondeath 1 ispoison true affectappearance true } INTRINSIC POISON_HARSH { name "harshly poisoned" gaintxt "%U are harshly poisoned." losetxt "%U are cured." clearondeath 1 ispoison true affectappearance true } INTRINSIC POISON_DEADLY { name "deadly poisoned" gaintxt "%U are deadly poisoned." losetxt "%U are cured." clearondeath 1 ispoison true affectappearance true } COMMENT { Well dressed intrinsics. } INTRINSIC DRESSED_WIZARD { name "dressed as a wizard" gaintxt "%U look like a wizard!" losetxt "%U look less foolish." } INTRINSIC DRESSED_RANGER { name "dressed as a ranger" gaintxt "%U look like a ranger!" losetxt "%U look less adventurous." } INTRINSIC DRESSED_FIGHTER { name "dressed as a fighter" gaintxt "%U look like a fighter!" losetxt "%U look less belligerent." } INTRINSIC DRESSED_CLERIC { name "dressed as a cleric" gaintxt "%U look like a cleric!" losetxt "%U look less holy." } INTRINSIC DRESSED_NECROMANCER { name "dressed as a necromancer" gaintxt "%U look like a servant of death!" losetxt "%U look less deadly." } INTRINSIC DRESSED_BARBARIAN { name "dressed as a barbarian" gaintxt "%U look like a barbarian!" losetxt "%U look like you could read." } COMMENT { Poisons are different levels of nasty poisons that can afflict the adventurer. They DO stack. name The name of the vile poison modulus The poison will apply every this number of turns. chance The chance of being hurt per turn damage The damage done each turn final The final damage done when it expires intrinsic Which intrinsic this poison maps to. } DEFINE POISON { CST name "non-poison" u8 modulus 1 ENM damage ATTACK NONE ENM finaldamage ATTACK NONE ENM intrinsic INTRINSIC NONE } POISON NONE { name "no poison" modulus 255 } POISON MILD { name "mild poison" modulus 2 damage POISONEFFECT_MILD finaldamage POISONEFFECT_NORMAL intrinsic POISON_MILD } POISON NORMAL { name "poison" modulus 2 damage POISONEFFECT_NORMAL finaldamage POISONEFFECT_STRONG intrinsic POISON_NORMAL } POISON STRONG { name "strong poison" modulus 2 damage POISONEFFECT_STRONG finaldamage POISONEFFECT_HARSH intrinsic POISON_STRONG } POISON HARSH { name "harsh poison" modulus 2 damage POISONEFFECT_HARSH finaldamage POISONEFFECT_DEADLY intrinsic POISON_HARSH } POISON DEADLY { name "deadly poison" modulus 1 damage POISONEFFECT_DEADLY finaldamage POISONEFFECT_INSTANTDEATH intrinsic POISON_DEADLY } COMMENT { SKILLS are things that govern physical powers, and are thus to be contrasted from SPELLS. name - The name action - Which action key this skill unveils. intrinsic - Which intrinsic this skill is tied to. prereq - Which skills must be had to gain this skill. god - List of gods that will grant this skill proc - Chance of the skill going off automatically. } DEFINE SKILL { CST name "wood-working" ENM action ACTION NONE ENM intrinsic INTRINSIC NONE ENMLIST prereq SKILL NONE ENMLIST god GOD AGNOSTIC U8 proc 10 } SKILL NONE { name "no skill" } SKILL DODGE { name "Dodge" intrinsic SKILL_DODGE god ROGUE proc 10 } SKILL MOVINGTARGET { name "Moving Target" intrinsic SKILL_MOVINGTARGET god ROGUE proc 20 } SKILL SEARCH { name "Search" intrinsic SKILL_SEARCH god ROGUE } SKILL EVADETRAP { name "Evade Traps" intrinsic SKILL_EVADETRAP god ROGUE } SKILL ENDUREHUNGER { name "Endure Hunger" intrinsic SKILL_ENDUREHUNGER god BARB god CLERIC } SKILL BUTCHERY { name "Butchery" intrinsic SKILL_BUTCHERY god BARB } SKILL CLEANKILL { name "Clean Kill" intrinsic SKILL_CLEANKILL god BARB } SKILL CHARGE { name "Charge" intrinsic SKILL_CHARGE god BARB god FIGHTER } SKILL LEAPATTACK { name "Leap Attack" intrinsic SKILL_LEAPATTACK god BARB } SKILL TWOWEAPON { name "Dual Wield" intrinsic SKILL_TWOWEAPON god ROGUE god BARB } SKILL AMBIDEXTROUS { name "Ambidextrous" intrinsic SKILL_AMBIDEXTROUS god ROGUE prereq TWOWEAPON } SKILL ARMOUR_HELMET { name "Helmets" intrinsic SKILL_ARMOUR_HELMET god FIGHTER } SKILL ARMOUR_SHIELD { name "Shields" intrinsic SKILL_ARMOUR_SHIELD god FIGHTER } SKILL ARMOUR_BODY { name "Body Armour" intrinsic SKILL_ARMOUR_BODY god FIGHTER } SKILL ARMOUR_BOOTS { name "Boots" intrinsic SKILL_ARMOUR_BOOTS god FIGHTER } SKILL ARMOUR_CLOTH { name "Cloth Armour" intrinsic SKILL_ARMOUR_CLOTH god FIGHTER god ROGUE god WIZARD } SKILL ARMOUR_LEATHER { name "Leather Armour" intrinsic SKILL_ARMOUR_LEATHER prereq ARMOUR_CLOTH god FIGHTER god ROGUE } SKILL ARMOUR_IRON { name "Iron Armour" intrinsic SKILL_ARMOUR_IRON prereq ARMOUR_LEATHER god FIGHTER } SKILL ARMOUR_EXOTIC { name "Exotic Armour" intrinsic SKILL_ARMOUR_EXOTIC prereq ARMOUR_LEATHER god FIGHTER god ROGUE god NECRO } COMMENT { These are differently sized weapons you gain skill with. } SKILL WEAPON_SMALL { name "Small Weapons" intrinsic SKILL_WEAPON_SMALL god FIGHTER god ROGUE } SKILL WEAPON_MEDIUM { name "Medium Weapons" intrinsic SKILL_WEAPON_MEDIUM god BARB god FIGHTER god ROGUE } SKILL WEAPON_LARGE { name "Large Weapons" intrinsic SKILL_WEAPON_LARGE god BARB god FIGHTER } SKILL WEAPON_RANGED { name "Ranged Weapons" intrinsic SKILL_WEAPON_RANGED god ROGUE god FIGHTER } COMMENT { And these are different fighting styles you gain skill with. } SKILL WEAPON_EDGED { name "Edged Attacks" intrinsic SKILL_WEAPON_EDGED god BARB god FIGHTER god ROGUE } SKILL WEAPON_BLUNT { name "Blunt Attacks" intrinsic SKILL_WEAPON_BLUNT god BARB god FIGHTER } SKILL WEAPON_POINTED { name "Pointed Attacks" intrinsic SKILL_WEAPON_POINTED god FIGHTER god ROGUE god BARB } SKILL WEAPON_IMPROVISE { name "Improvised Attacks" intrinsic SKILL_WEAPON_IMPROVISE god ROGUE } SKILL WEAPON_BLEEDINGWOUND { name "Bleeding Wounds" intrinsic SKILL_WEAPON_BLEEDINGWOUND prereq WEAPON_SMALL prereq WEAPON_POINTED god ROGUE proc 20 } SKILL WEAPON_DISARM { name "Disarm" intrinsic SKILL_WEAPON_DISARM prereq WEAPON_MEDIUM prereq WEAPON_POINTED god ROGUE proc 10 } SKILL WEAPON_IMPALE { name "Impale" intrinsic SKILL_WEAPON_IMPALE prereq WEAPON_LARGE prereq WEAPON_POINTED god BARB proc 40 } SKILL WEAPON_TRUEAIM { name "True Aim" intrinsic SKILL_WEAPON_TRUEAIM prereq WEAPON_RANGED prereq WEAPON_EDGED god ROGUE } SKILL WEAPON_RICOCHET { name "Ricochet" intrinsic SKILL_WEAPON_RICOCHET prereq WEAPON_RANGED prereq WEAPON_POINTED god ROGUE } SKILL WEAPON_RIPOSTE { name "Riposte" intrinsic SKILL_WEAPON_RIPOSTE prereq WEAPON_SMALL prereq WEAPON_EDGED god FIGHTER god ROGUE } SKILL WEAPON_PARRY { name "Parry" intrinsic SKILL_WEAPON_PARRY prereq WEAPON_MEDIUM prereq WEAPON_EDGED god FIGHTER god ROGUE proc 10 } SKILL WEAPON_KNOCKOUT { name "Knock Out" intrinsic SKILL_WEAPON_KNOCKOUT prereq WEAPON_SMALL prereq WEAPON_BLUNT god ROGUE proc 10 } SKILL WEAPON_STUN { name "Stun" intrinsic SKILL_WEAPON_STUN prereq WEAPON_MEDIUM prereq WEAPON_BLUNT god FIGHTER god BARB proc 10 } SKILL WEAPON_KNOCKBACK { name "Knockback" intrinsic SKILL_WEAPON_KNOCKBACK prereq WEAPON_LARGE prereq WEAPON_BLUNT god BARB proc 20 } COMMENT { SPELLS are what you can cast if you possess the proper intrinsic Some intrinsics have the SPELL enum other than none. Spells are one of four categories, and are ranked in the order they occur here. Later spells should be more powerful. } DEFINE SPELLTYPE { CST name "random spell type" } SPELLTYPE NONE { name "no such circle" } SPELLTYPE ATTACK { name "attack" } SPELLTYPE HEAL { name "heal" } SPELLTYPE UTILITY { name "utility" } SPELLTYPE DEATH { name "death" } DEFINE SPELL { CST name "Spell Name" u8 mpcost 1 u8 hpcost 0 u16 xpcost 0 ENM type SPELLTYPE ATTACK ENM intrinsic INTRINSIC NONE BOOL needsdir true BOOL needstarget false ENMLIST prereq SPELL NONE ENMLIST god GOD AGNOSTIC ENM tile SPRITE UNUSEDSPELL BOOL publish false } SPELL NONE { name "No Spell" } COMMENT { ATTACK spells These should be low cost. } SPELL FLASH { name "Flash" mpcost 5 type ATTACK intrinsic SPELL_FLASH god WIZARD tile FLASH } SPELL STICKYFLAMES { name "Sticky Flames" mpcost 10 type ATTACK intrinsic SPELL_STICKYFLAMES god WIZARD tile STICKYFLAMES prereq FLASH publish true } SPELL MAGICMISSILE { name "Magic Missile" mpcost 5 type ATTACK intrinsic SPELL_MAGICMISSILE god WIZARD god NECRO tile MAGICMISSILE publish true } SPELL CHILL { name "Chilling Touch" mpcost 5 type ATTACK intrinsic SPELL_CHILL god WIZARD tile CHILL publish true } SPELL SPARK { name "Spark" mpcost 8 type ATTACK needsdir 0 intrinsic SPELL_SPARK god WIZARD tile SPARK publish true } SPELL FROSTBOLT { name "Frost Bolt" mpcost 10 type ATTACK intrinsic SPELL_FROSTBOLT god WIZARD prereq MAGICMISSILE prereq CHILL tile FROSTBOLT } SPELL LIVINGFROST { name "Living Frost" mpcost 20 type ATTACK needsdir 0 intrinsic SPELL_LIVINGFROST god WIZARD prereq DIRECTWIND prereq CHILL tile LIVINGFROST } SPELL BLIZZARD { name "Blizzard" mpcost 15 type ATTACK needsdir false needstarget true intrinsic SPELL_BLIZZARD god WIZARD prereq LIVINGFROST tile BLIZZARD } SPELL FIREBALL { name "Fire Ball" mpcost 20 type ATTACK intrinsic SPELL_FIREBALL god WIZARD prereq FLASH prereq MAGICMISSILE tile FIREBALL publish true } SPELL FLAMESTRIKE { name "Flame Strike" mpcost 25 type ATTACK needsdir 0 needstarget 1 intrinsic SPELL_FLAMESTRIKE god WIZARD god CLERIC prereq FLASH prereq MAJORHEAL tile FLAMESTRIKE } SPELL LIGHTNINGBOLT { name "Lightning Bolt" mpcost 30 type ATTACK intrinsic SPELL_LIGHTNINGBOLT god WIZARD prereq MAGICMISSILE prereq SPARK tile LIGHTNINGBOLT publish true } SPELL CHAINLIGHTNING { name "Chain Lightning" mpcost 50 type ATTACK intrinsic SPELL_CHAINLIGHTNING god WIZARD prereq LIGHTNINGBOLT prereq DIRECTWIND tile CHAINLIGHTNING } SPELL SUNFIRE { name "Sunfire" mpcost 60 type ATTACK needsdir 0 intrinsic SPELL_SUNFIRE god WIZARD prereq FIREBALL prereq DIRECTWIND tile SUNFIRE } SPELL ACIDSPLASH { name "Acid Splash" mpcost 10 type ATTACK needsdir 1 intrinsic SPELL_ACIDSPLASH god WIZARD tile ACIDSPLASH publish true } SPELL ACIDICMIST { name "Acidic Mist" mpcost 15 type ATTACK needsdir 0 needstarget 1 intrinsic SPELL_ACIDICMIST god WIZARD prereq ACIDSPLASH prereq DIRECTWIND tile ACIDICMIST } SPELL CORROSIVEEXPLOSION { name "Corrosive Explosion" mpcost 20 type ATTACK needsdir 0 needstarget 1 intrinsic SPELL_CORROSIVEEXPLOSION god WIZARD prereq ACIDICMIST tile CORROSIVEEXPLOSION } SPELL ACIDPOOL { name "Acid Pool" mpcost 35 type ATTACK needsdir 0 needstarget 1 intrinsic SPELL_ACIDPOOL god WIZARD prereq ACIDICMIST tile ACIDPOOL } SPELL MINDACID { name "Mind Acid" mpcost 10 type ATTACK needsdir 0 intrinsic SPELL_MINDACID god WIZARD prereq ACIDSPLASH prereq POISONITEM tile MINDACID publish true } SPELL DISINTEGRATE { name "Disintegrate" mpcost 40 type ATTACK needsdir 1 intrinsic SPELL_DISINTEGRATE god WIZARD prereq ACIDSPLASH prereq FORCEBOLT tile DISINTEGRATE } COMMENT { Healing spells... These are much higher cost. } SPELL REGENERATE { name "Regenerate" mpcost 5 type HEAL intrinsic SPELL_REGENERATE god WIZARD god CLERIC needsdir false needstarget true tile REGENERATE publish true } SPELL SLOWPOISON { name "Slow Poison" mpcost 5 type HEAL intrinsic SPELL_SLOWPOISON god WIZARD god CLERIC needsdir false needstarget true prereq REGENERATE tile SLOWPOISON publish true } SPELL HEAL { name "Heal" mpcost 10 type HEAL intrinsic SPELL_HEAL god WIZARD god CLERIC needsdir false needstarget true tile HEAL publish true } SPELL CUREPOISON { name "Cure Poison" mpcost 20 type HEAL intrinsic SPELL_CUREPOISON god WIZARD god CLERIC needsdir false needstarget true prereq HEAL tile CUREPOISON } SPELL MAJORHEAL { name "Major Heal" mpcost 20 type HEAL intrinsic SPELL_MAJORHEAL god WIZARD god CLERIC needsdir false needstarget true prereq HEAL tile MAJORHEAL } SPELL RESURRECT { name "Resurrect" mpcost 50 xpcost 100 type HEAL intrinsic SPELL_RESURRECT god WIZARD god CLERIC prereq MAJORHEAL prereq CUREPOISON tile RESURRECT } SPELL SUMMON_FAMILIAR { name "Summon Familiar" mpcost 10 xpcost 250 type HEAL needsdir false needstarget false intrinsic SPELL_SUMMON_FAMILIAR god WIZARD god CLERIC tile SUMMON_FAMILIAR publish true } SPELL TRANSFER_KNOWLEDGE { name "Transfer Knowledge" mpcost 15 xpcost 250 type HEAL intrinsic SPELL_TRANSFER_KNOWLEDGE god WIZARD god CLERIC needsdir false needstarget true prereq SUMMON_FAMILIAR tile TRANSFER_KNOWLEDGE publish true } COMMENT { Utility spells, varying costs... } SPELL LIGHT { name "Light" mpcost 5 type UTILITY needsdir 0 intrinsic SPELL_LIGHT god WIZARD god ROGUE tile LIGHT } SPELL DARKNESS { name "Darkness" mpcost 5 type UTILITY needsdir 0 intrinsic SPELL_LIGHT tile DARKNESS } SPELL KNOCK { name "Knock" mpcost 5 type UTILITY intrinsic SPELL_KNOCK needsdir false needstarget true god WIZARD god ROGUE tile KNOCK } SPELL TRACK { name "Track" mpcost 10 type UTILITY intrinsic SPELL_TRACK god WIZARD god ROGUE needsdir 0 needstarget 1 tile TRACK publish true } SPELL WIZARDSEYE { name "Wizard's Eye" mpcost 10 type UTILITY intrinsic SPELL_WIZARDSEYE god WIZARD god ROGUE needsdir 0 needstarget 0 tile WIZARDSEYE } SPELL DIAGNOSE { name "Diagnose" mpcost 10 type UTILITY intrinsic SPELL_DIAGNOSE god WIZARD god CLERIC needsdir 0 needstarget 1 tile DIAGNOSE } SPELL PRESERVE { name "Preserve" mpcost 10 type UTILITY intrinsic SPELL_PRESERVE god WIZARD god NECRO tile PRESERVE } SPELL POSSESS { name "Possess" mpcost 20 type UTILITY intrinsic SPELL_POSSESS god WIZARD god NECRO god CLERIC needsdir 0 needstarget 1 prereq DIAGNOSE tile POSSESS } SPELL MAGICMAP { name "Magic Map" mpcost 25 type UTILITY needsdir 0 intrinsic SPELL_MAGICMAP god WIZARD god ROGUE prereq LIGHT tile MAGICMAP } SPELL DETECTCURSE { name "Detect Curse" mpcost 10 type UTILITY needsdir 0 intrinsic SPELL_DETECTCURSE god WIZARD god ROGUE tile DETECTCURSE publish true } SPELL IDENTIFY { name "Identify" mpcost 25 xpcost 50 type UTILITY needsdir 0 intrinsic SPELL_IDENTIFY god WIZARD god ROGUE prereq DETECTCURSE tile IDENTIFY } SPELL BLINK { name "Blink" mpcost 5 type UTILITY intrinsic SPELL_BLINK god WIZARD god ROGUE needsdir 0 needstarget 1 prereq TELEPORT tile BLINK publish true } SPELL FETCH { name "Fetch" mpcost 10 type UTILITY intrinsic SPELL_FETCH god WIZARD god CLERIC needsdir 0 needstarget 1 prereq TELEPORT tile FETCH } SPELL TELEPORT { name "Teleport" mpcost 10 type UTILITY needsdir 0 intrinsic SPELL_TELEPORT god WIZARD god ROGUE god CLERIC tile TELEPORT } SPELL TELEWITHCONTROL { name "Teleport with Control" mpcost 20 type UTILITY needsdir 0 intrinsic SPELL_TELEPORT tile TELEWITHCONTROL } SPELL DIRECTWIND { name "Direct Wind" mpcost 5 type UTILITY needsdir 1 intrinsic SPELL_DIRECTWIND god WIZARD tile DIRECTWIND publish true } SPELL FORCEBOLT { name "Force Bolt" mpcost 10 type UTILITY needsdir 1 intrinsic SPELL_FORCEBOLT god WIZARD tile FORCEBOLT publish true } SPELL FORCEWALL { name "Force Wall" mpcost 20 type UTILITY needsdir false intrinsic SPELL_FORCEWALL god WIZARD prereq FORCEBOLT tile FORCEWALL } SPELL DIG { name "Dig" mpcost 10 type UTILITY needsdir 1 intrinsic SPELL_DIG god WIZARD tile DIG publish true } SPELL CREATEPIT { name "Create Pit" mpcost 10 type UTILITY needsdir 0 needstarget 1 intrinsic SPELL_CREATEPIT god WIZARD prereq DIG tile CREATEPIT } SPELL SANDSTORM { name "Sandstorm" mpcost 20 type UTILITY needsdir 0 needstarget 1 intrinsic SPELL_SANDSTORM god WIZARD prereq CREATEPIT prereq DIRECTWIND tile SANDSTORM } SPELL GROWFOREST { name "Grow Forest" mpcost 10 type UTILITY needsdir 0 needstarget 1 intrinsic SPELL_GROWFOREST god WIZARD god ROGUE tile GROWFOREST } SPELL ANIMATEFOREST { name "Animate Forest" mpcost 20 type UTILITY needsdir 0 needstarget 1 intrinsic SPELL_ANIMATEFOREST god WIZARD god ROGUE prereq GROWFOREST tile ANIMATEFOREST } SPELL DOWNPOUR { name "Down Pour" mpcost 10 type UTILITY needsdir 0 needstarget 1 intrinsic SPELL_DOWNPOUR god WIZARD tile DOWNPOUR } SPELL ROLLINGBOULDER { name "Rolling Boulder" mpcost 20 type UTILITY needsdir 0 needstarget 1 intrinsic SPELL_ROLLINGBOULDER god WIZARD prereq DIG tile ROLLINGBOULDER publish true } SPELL PETRIFY { name "Petrify" mpcost 40 type UTILITY needsdir 1 intrinsic SPELL_PETRIFY god WIZARD prereq DIG tile PETRIFY } SPELL STONETOFLESH { name "Stone to Flesh" mpcost 40 type UTILITY needsdir 1 intrinsic SPELL_PETRIFY god WIZARD prereq DIG tile STONETOFLESH } SPELL ENTOMB { name "Entomb" mpcost 20 type UTILITY needsdir 0 intrinsic SPELL_ENTOMB god WIZARD prereq DIG tile ENTOMB publish true } COMMENT { Death spells. Yum! } SPELL RAISE_UNDEAD { name "Raise Undead" mpcost 10 type DEATH needsdir 0 needstarget 1 intrinsic SPELL_RAISE_UNDEAD god WIZARD god NECRO tile RAISE_UNDEAD publish true } SPELL RECLAIM_SOUL { name "Reclaim Soul" mpcost 10 type DEATH needsdir false needstarget true intrinsic SPELL_RECLAIM_SOUL god WIZARD god NECRO prereq RAISE_UNDEAD tile RECLAIM_SOUL publish true } SPELL DARK_RITUAL { name "Dark Ritual" mpcost 20 type DEATH needsdir false needstarget false intrinsic SPELL_DARK_RITUAL god WIZARD god NECRO prereq RECLAIM_SOUL tile DARK_RITUAL publish true } SPELL POISONITEM { name "Poison Item" mpcost 5 type DEATH needsdir 0 intrinsic SPELL_POISONITEM god WIZARD god NECRO tile POISONITEM } SPELL POISONBOLT { name "Poison Bolt" mpcost 15 type DEATH needsdir 1 intrinsic SPELL_POISONBOLT god WIZARD god NECRO prereq MAGICMISSILE prereq POISONITEM tile POISONBOLT } SPELL GHASTIFY { name "Ghastify" mpcost 20 type DEATH needsdir 1 intrinsic SPELL_GHASTIFY god WIZARD god NECRO prereq RAISE_UNDEAD tile GHASTIFY } SPELL BINDSOUL { name "Bind Soul" mpcost 30 type DEATH needsdir 1 intrinsic SPELL_BINDSOUL god WIZARD god NECRO prereq GHASTIFY tile BINDSOUL } SPELL SOULSUCK { name "Soul Suck" mpcost 30 type DEATH needsdir false needstarget true intrinsic SPELL_SOULSUCK god WIZARD god NECRO prereq BINDSOUL tile SOULSUCK } SPELL SUMMON_IMP { name "Summon Imp" mpcost 10 type DEATH needsdir 0 intrinsic SPELL_SUMMON_IMP god WIZARD god NECRO tile SUMMON_IMP publish true } SPELL SUMMON_DEMON { name "Summon Daemon" mpcost 30 type DEATH needsdir 0 intrinsic SPELL_SUMMON_DEMON god WIZARD god NECRO prereq SUMMON_IMP tile SUMMON_DEMON } SPELL CLOUDKILL { name "Cloud Kill" mpcost 30 type DEATH needsdir 1 intrinsic SPELL_CLOUDKILL god WIZARD god NECRO prereq POISONBOLT prereq DIRECTWIND tile CLOUDKILL publish true } SPELL FINGEROFDEATH { name "Finger of Death" mpcost 40 type DEATH needsdir 1 intrinsic SPELL_FINGEROFDEATH god WIZARD god NECRO prereq POISONBOLT prereq GHASTIFY tile FINGEROFDEATH publish true } DEFINE ATTITUDE { } ATTITUDE HOSTILE ATTITUDE NEUTRAL ATTITUDE FRIENDLY COMMENT { ATTACKSTYLEs are used to differentiate different modes of attack. } DEFINE ATTACKSTYLE { } ATTACKSTYLE MELEE ATTACKSTYLE THROWN ATTACKSTYLE SPELL ATTACKSTYLE WAND ATTACKSTYLE POISON ATTACKSTYLE MISC ATTACKSTYLE MINION COMMENT { ATTACKs... Where to start? verb - The infinitive of what damage this attack causes. deathtext - How to describe this death. inflict_intrinsic - What intrinsic to inflict on a hit inflict_duration - How long the intrinsic lasts. -1 means permament. inflict_chance - 0-100% chance of inflicting. inflict_resistance - What intrinsic will prevent the infliction inflict_negate - If the attacker has this intrinsic, infliction is negated. reflex_attack - Attack to do on anyone who manages to hit us. reflex_chance - 0-100% chance of doing reflex. damage - The dice representing the damage, 3d5+5, for example. bonustohit - A modifier on the tohit chance. element - The raw element that the attack damages with. range - Distance the attack can act at. reflect - Does the attack obey reflection? stopathit - Does the ray stop at first hit? alwayshit - Does it hit no matter what? explode_chance - Chance of the attack triggering an explosion. explode_smoke - What sort of smoke the explosion should billow out. explode_attack - Attack to make with explosion. explode_name - name of what is exploding, including article nextattack - A chain to another attack which gets its own attack roll. Note this is not used by spells! sameattack - A chain to another attack which will be stacked on this one if it hits. } DEFINE ATTACK { CST verb "hit" CST deathtext "" DICE damage 1d2 S8 bonustohit 0 ENM element ELEMENT PHYSICAL U8 range 1 U8 eat 0 BOOL reflect 0 BOOL stopathit 0 BOOL alwayshit false U8 explode_chance 0 ENM explode_attack ATTACK NONE ENM explode_smoke SMOKE NONE CST explode_name 0 ENM inflict_intrinsic INTRINSIC NONE DICE inflict_duration 0 U8 inflict_chance 100 ENM inflict_resistance INTRINSIC NONE ENM inflict_negate INTRINSIC NONE ENM nextattack ATTACK NONE ENM sameattack ATTACK NONE } ATTACK NONE 0 { damage 0 range 0 } ATTACK INHALE_SMOKE { verb "choke" damage 1d2 inflict_intrinsic BLIND inflict_chance 10 inflict_duration 2d3 inflict_resistance BLIND } ATTACK INHALE_STEAM { verb "scald" damage 2d4 } ATTACK INHALE_POISONSMOKE { verb "choke" damage 1d2 inflict_intrinsic POISON_HARSH inflict_chance 50 inflict_duration 2 inflict_resistance RESISTPOISON } ATTACK INHALE_ACIDSMOKE { verb "burn" damage 3d4 element ACID } ATTACK FROGBITE { verb "bite" damage 1d4+4 } ATTACK GOLDBEETLE_MANDIBLE { verb "bite" damage 1d3+3 nextattack GOLDBEETLE_FEELER } ATTACK GOLDBEETLE_FEELER { verb "brush" damage 1 inflict_intrinsic GOLDALLERGY inflict_duration 5 inflict_chance 75 } ATTACK COCKATRICE_HISS { verb "hiss at" damage 1 inflict_intrinsic STONING inflict_duration 3 inflict_chance 50 inflict_resistance RESISTSTONING nextattack COCKATRICE_BITE } ATTACK COCKATRICE_BITE { verb "bite" damage 1d4+4 } ATTACK FIREBREATH { verb "burn" deathtext "You were roasted like a marshmallow" damage 3d5 element FIRE explode_chance 50 explode_attack FIREBREATHBALL explode_name "the fireball" stopathit 1 range 5 bonustohit 5 } ATTACK FIREBREATHBALL { verb "burn" deathtext "You were roasted like a marshmallow" damage 2d5 alwayshit true element FIRE } ATTACK ICEBREATH { verb "freeze" deathtext "You were frozen into a popsicle" damage 3d5 element COLD range 5 bonustohit 5 } ATTACK GREENDRAGONBITE { verb "bite" damage 2d5 bonustohit 4 inflict_intrinsic POISON_DEADLY inflict_duration 4d3 inflict_chance 100 } ATTACK LIGHTNINGBREATH { verb "shock" deathtext "You were lit up like a Christmas tree" damage 3d5 element SHOCK reflect 1 range 5 bonustohit 5 } ATTACK ACIDBREATH { verb "dissolve" deathtext "You were liquified." damage 3d5 element ACID stopathit 1 explode_chance 100 explode_smoke ACID explode_name "the acid ball" range 5 bonustohit 5 } ATTACK BLEED { deathtext "You suffered acute anemia." verb "bleed" damage 1d3 } ATTACK POISONEFFECT_MILD { verb "poison" damage 1 } ATTACK POISONEFFECT_NORMAL { verb "poison" damage 1d3 } ATTACK POISONEFFECT_STRONG { verb "poison" damage 2d3 } ATTACK POISONEFFECT_HARSH { verb "poison" damage 4d3 } ATTACK POISONEFFECT_DEADLY { verb "poison" damage 4d6 } ATTACK POISONEFFECT_INSTANTDEATH { verb "poison" damage 8d6 } ATTACK MISUSED { verb "bash" damage 1d2 } ATTACK MISUSED_BUTWEAPON { verb "bash" damage 1d2 } ATTACK MISTHROWN { verb "hit" damage 1d2 range 2 bonustohit -2 } ATTACK STRANGLED { verb "strangle" deathtext "You ran short on breath" damage 1d10 } ATTACK TURNED_TO_STONE { verb "petrify" deathtext "You became an objet d'art" damage 0 } ATTACK TURNED_TO_FLESH { verb "fleshify" deathtext "You became featureless pile of meat" damage 0 } ATTACK LOSTBODY { verb "lost body" deathtext "You misplaced your body" damage 0 } ATTACK RECLAIM_SOUL { verb "recycle" deathtext "Your soul has been reduced, reused, and recycled" damage 0 } ATTACK DARK_RITUAL_CONSUME { verb "repurposed" deathtext "You were consumed to power a magical attack" damage 0 } ATTACK SPELL_DARK_RITUAL_NORTH { verb "poison" damage 1d6 alwayshit true inflict_intrinsic POISON_HARSH inflict_duration 5d3 inflict_chance 100 inflict_resistance RESISTPOISON } ATTACK SPELL_DARK_RITUAL_WEST { verb "freeze" damage 6d3 element COLD alwayshit true inflict_intrinsic SLOW inflict_chance 100 inflict_duration 3d3+3 } ATTACK SPELL_DARK_RITUAL_EAST { verb "dissolve" damage 6d6 element ACID alwayshit true } ATTACK SPELL_DARK_RITUAL_SOUTH { verb "shock" damage 1d60 element SHOCK alwayshit true } ATTACK BLIZZARD_SOURCE { verb "detonate" deathtext "You have been used in the fight against global warming" damage 0 } ATTACK DROWN { verb "drown" deathtext "You found it hard to breathe" damage 2d5 } ATTACK SUFFOCATE { verb "suffocate" deathtext "You failed to breathe dirt" damage 2d5 } ATTACK ASPHYXIATE { verb "asphyxiate" deathtext "You tried to breathe vacuum" damage 2d5 } ATTACK FIREWAND { verb "burn" damage 4d6 element FIRE } ATTACK ICEWAND { verb "freeze" damage 6d4 element COLD } ATTACK SLEEPWAND { verb "sedate" damage 1 inflict_intrinsic ASLEEP inflict_duration 2d5+5 inflict_chance 100 inflict_resistance RESISTSLEEP } ATTACK DIGEARTHELEMENTAL { verb "disintegrate" damage 1d50+50 } ATTACK DOUSEFIREELEMENTAL { verb "douse" damage 1d50+50 } ATTACK HOLYWATER { verb "burn" damage 2d4 } ATTACK CEILINGROCKS { verb "bonk" damage 2d4 deathtext "You were buried in rubble" } ATTACK PUNCH { verb "punch" damage 1d3 } ATTACK WHIP { verb "whip" damage 1d5+1 } ATTACK CLAW { verb "claw" damage 1d3+1 } ATTACK CLUB { verb "club" damage 1d4+1 } ATTACK DOUBLECLUB { verb "club" damage 1d6+1 nextattack CLUB } ATTACK TRIPLECLUB { verb "club" damage 1d8+1 nextattack DOUBLECLUB } ATTACK MACE { verb "smash" damage 1d6+1 } ATTACK WARHAMMER { verb "smash" damage 2d4+3 } ATTACK EARTHHAMMER { verb "smash" damage 2d4+5 } ATTACK KNIFE { verb "jab" bonustohit 1 damage 1d3 } ATTACK KNIFETHROWN { verb "stab" bonustohit 3 damage 1d3+2 range 6 } ATTACK DAGGER { verb "stab" bonustohit 1 damage 1d4 } ATTACK DAGGERTHROWN { verb "stab" bonustohit 2 damage 1d4+2 range 5 } ATTACK SPEAR { verb "stab" damage 1d9+1 } ATTACK SPEARTHROWN { verb "impale" damage 1d8+2 bonustohit 1 range 4 } ATTACK SHORTSWORD { verb "slash" damage 1d6 } ATTACK LONGSWORD { verb "slash" damage 1d8 } ATTACK RAPIER { verb "stab" damage 1d7 bonustohit 2 } ATTACK LIGHTNINGRAPIER { verb "stab" damage 1d12 element SHOCK bonustohit 4 } ATTACK ZAPLIGHTNINGRAPIER { verb "zap" damage 1d10 element SHOCK } ATTACK ICEMACE { verb "chill" damage 2 element COLD sameattack MACE inflict_intrinsic SLOW inflict_chance 100 inflict_duration 2d3 } ATTACK WOODENSTAFF { verb "bash" damage 2d2 } ATTACK IRONSHODSTAFF { verb "hit" damage 2d2+2 } ATTACK TORCH { verb "burn" damage 1d5 element FIRE bonustohit -1 } ATTACK TORCHTHROWN { verb "burn" damage 1d5+2 element FIRE bonustohit -2 range 5 } ATTACK ARROWTHROWN { verb "pierce" damage 2d4 bonustohit 0 range 6 } ATTACK FIREARROWTHROWN { verb "burn" damage 2d3 bonustohit 0 range 6 inflict_intrinsic AFLAME inflict_duration 4 inflict_chance 100 } ATTACK ROCKTHROWN { verb "strike" damage 1d2+2 range 4 } ATTACK POTIONTHROWN { verb "hit" damage 1d2 range 4 } ATTACK RINGTHROWN { verb "hit" damage 1 range 7 } ATTACK FLAMING_SWORD { verb "burn" damage 1d3 element FIRE sameattack LONGSWORD } ATTACK DEMON_SWORD { verb "burn" damage 1d5 element FIRE bonustohit 1 sameattack LONGSWORD } ATTACK FREEZING_SWORD { verb "freeze" damage 1d5 element COLD bonustohit 1 sameattack LONGSWORD } ATTACK MINDACID { verb "confuse" damage 2 element ACID inflict_intrinsic CONFUSED inflict_duration 3d5+10 inflict_chance 100 } ATTACK FIRESPIT { verb "spit at" damage 1d4 element FIRE } ATTACK MOUSEBITE { verb "nibble" damage 1 } ATTACK RATBITE { verb "bite" damage 1d2+1 } ATTACK KIWISTAB { verb "stab" damage 2d4 } ATTACK BATBITE { verb "bite" damage 2d2 } ATTACK LARGEBATBITE { verb "bite" damage 2d4 } ATTACK VAMPIREBATBITE { verb "bite" damage 3d4 eat 50 } ATTACK GHASTCLAW { verb "claw" damage 1d4+2 inflict_intrinsic PARALYSED inflict_chance 20 inflict_duration 1d4+2 inflict_resistance PARALYSED } ATTACK GIANTRATBITE { verb "bite" damage 1d4+1 } ATTACK FIRESNAKEBITE { verb "bite" damage 1d4 bonustohit 1 element FIRE } ATTACK ICESNAKEBITE { verb "bite" damage 1d4 bonustohit 1 element COLD } ATTACK GREENSNAKEBITE { verb "bite" damage 1d4 bonustohit 1 inflict_intrinsic POISON_MILD inflict_duration 2d3 inflict_chance 100 } ATTACK GRIDBUGZAP { verb "zap" damage 3d2-2 bonustohit 1 element SHOCK } ATTACK SHITOMICHU { verb "chu" deathtext "You were kissed to death" damage 2d6 bonustohit -2 } ATTACK LIGHTWAND { verb "blind" deathtext "Important lesson: Do not look directly at the light" damage 2 element LIGHT } ATTACK LIGHTBLAST { verb "blind" deathtext "You followed the light - sadly it was the light that killed you" damage 1d4 element LIGHT } ATTACK SPELL_FLASH { verb "blind" damage 2d4 element LIGHT } ATTACK SUNFIREBLAST { verb "blind" deathtext "You looked too long into the sun" damage 7d7+21 element LIGHT alwayshit true } ATTACK FLAMESTRIKE { verb "immolate" deathtext "You angered the wrong god" damage 6d6 element FIRE alwayshit true } ATTACK SURROUNDSMITE { verb "smite" deathtext "You stood too close to a god's avatar" damage 6d3 alwayshit true } ATTACK SLUGSLIME { verb "slime" damage 2d4 element ACID } ATTACK BROWNSLUG { verb "slime" damage 1d4 element ACID } ATTACK DEATHSLUG { verb "stab" damage 2d6 nextattack SLUGSLIME } ATTACK SCORPION { verb "sting" damage 1d3 inflict_intrinsic POISON_NORMAL inflict_duration 5d3 inflict_chance 50 } ATTACK CAVESPIDER { verb "bite" damage 2d3 } ATTACK GIANTSPIDER { verb "bite" damage 2d3 inflict_intrinsic POISON_HARSH inflict_duration 5d3 inflict_chance 50 } ATTACK FLOATINGEYE_REFLEX { verb "stare at" damage 1 inflict_intrinsic PARALYSED inflict_duration 1d20+1 inflict_chance 100 inflict_resistance BLIND inflict_negate BLIND } ATTACK FLOATINGEYE_TRACK { verb "focus on" damage 1 inflict_intrinsic POSITIONREVEALED inflict_duration 4d5 inflict_chance 100 inflict_resistance BLIND } ATTACK GELATINOUSCUBE { verb "smash" damage 2d6 } ATTACK GELATINOUSCUBE_REFLEX { verb "splatter" damage 1d6 element ACID inflict_intrinsic PARALYSED inflict_duration 3d3 inflict_chance 30 } ATTACK LIVINGTREE { verb "smash" damage 1d6+4 } ATTACK TRICERATOPHORN { verb "gore" damage 3d6+4 nextattack TRICERATOPHORN_2 } ATTACK TRICERATOPHORN_2 { verb "gouge" damage 2d6+4 nextattack TRICERATOPHORN_3 } ATTACK TRICERATOPHORN_3 { verb "gouge" damage 2d6+4 } ATTACK EARTHELEMENTAL { verb "smash" damage 3d6+4 nextattack EARTHELEMENTAL_2 } ATTACK EARTHELEMENTAL_2 { verb "smash" damage 3d6+4 } ATTACK AIRELEMENTAL { verb "buffet" damage 2d6 nextattack AIRELEMENTAL_2 } ATTACK AIRELEMENTAL_2 { verb "zap" damage 2d6 element SHOCK } ATTACK FIREELEMENTAL { verb "burn" damage 2d10 element FIRE } ATTACK WATERELEMENTAL { verb "splash" damage 1d5 inflict_intrinsic STRANGLE inflict_chance 100 inflict_duration 2d4+2 } ATTACK FLESHGOLEM { verb "punch" damage 2d4 nextattack FLESHGOLEM_2 } ATTACK FLESHGOLEM_2 { verb "punch" damage 2d4 } ATTACK STONEGOLEM { verb "punch" damage 8 nextattack STONEGOLEM_2 } ATTACK STONEGOLEM_2 { verb "punch" damage 8 } ATTACK IRONGOLEM { verb "punch" damage 2d4+8 nextattack IRONGOLEM_2 } ATTACK IRONGOLEM_2 { verb "punch" damage 2d4+8 } ATTACK GHOST { verb "frighten" deathtext "You were scared to death" damage 2d3 inflict_intrinsic PARALYSED inflict_chance 20 inflict_duration 1d4+2 inflict_resistance PARALYSED } ATTACK CRETAN_MINOTAUR { verb "gore" damage 3d4 nextattack CRETAN_MINOTAUR_2 } ATTACK CRETAN_MINOTAUR_2 { verb "bite" damage 2d8 nextattack CRETAN_MINOTAUR_3 } ATTACK CRETAN_MINOTAUR_3 { verb "punch" damage 2d5 } ATTACK BAEZELBUB_BITE { verb "bite" damage 3d4 nextattack BAEZLEBUB_SWORDFLAME } ATTACK BAEZLEBUB_SWORDFLAME { verb "burn" damage 3d5 element FIRE bonustohit 4 sameattack BEAZELBUG_SWORD } ATTACK BEAZELBUG_SWORD { verb "slash" damage 2d8 } ATTACK GLASSSHARDS { verb "pierce" deathtext "You had a painful last meal" damage 2d4 } ATTACK GLASSFRAGMENTS { verb "pierce" damage 1d4 } ATTACK ACIDICCORPSE { verb "burn" deathtext "You had a terminal case of heartburn" damage 2d3 element ACID } ATTACK SILVERITEM { verb "sear" deathtext "You suffered from metal poisoning" damage 2d3 } ATTACK GOLDITEM { verb "sear" deathtext "Your greed for gold proved unwise" damage 2d3 } ATTACK ACIDPOTION { verb "burn" deathtext "You realized too late that one shouldn't quaff anything found in a dungeon" damage 4d2 element ACID } ATTACK GREEKFIREPOTION { verb "burn" deathtext "Never look a gift potion down the spout" damage 1d6 element FIRE inflict_intrinsic AFLAME inflict_duration 3d2+2 inflict_chance 100 } ATTACK AFLAME { verb "burn" deathtext "A candle that burns twice as bright burns half as long" damage 1d6 element FIRE } ATTACK LAVABURN { verb "burn" deathtext "You were barbequed to well done" damage 3d3+6 element FIRE } ATTACK FORESTFIRE { verb "burn" deathtext "You became one with the forest: ash in the breeze" damage 3d3+6 element FIRE } ATTACK ACIDPOOLBURN { verb "dissolve" deathtext "Your very bones dissolved" damage 4d3+9 element ACID } ATTACK FIRESCROLL { verb "burn" deathtext "You were flamed" damage 4d5 element FIRE alwayshit true } ATTACK ROLLINGBOULDER { verb "crush" damage 4d5 alwayshit true deathtext "You were flattened to a pancake" } ATTACK TRAP_PIT { verb "crush" damage 2d5 deathtext "You fell and could not get up" } ATTACK TRAP_SPIKEDPIT { verb "impale" damage 3d5 deathtext "You were punished by Vlad" } ATTACK DOORSLAM { verb "slam" damage 1d2 element PHYSICAL alwayshit true deathtext "You opened when opportunity knocked only to have the door slammed in your face" } ATTACK SPELL_FORCEBOLT { verb "slam" damage 4 element PHYSICAL alwayshit true } ATTACK SPELL_SANDBLAST { verb "blast" damage 1d4+2 element PHYSICAL alwayshit true } ATTACK SPELL_SANDSTORM { verb "blast" damage 3d7 element PHYSICAL alwayshit true inflict_intrinsic BLIND inflict_chance 20 inflict_duration 2d3 inflict_resistance BLIND } ATTACK SPELL_FORCEWALL { verb "slam" damage 1d4+4 element PHYSICAL alwayshit true } ATTACK SPELL_FROSTBOLT { verb "freeze" damage 2d5 element COLD } ATTACK LIVINGFROST { verb "freeze" damage 2d5 element COLD } ATTACK SPELL_LIGHTNING { verb "shock" damage 1d60 element SHOCK } ATTACK SPELL_MAGICMISSILE { verb "strike" damage 1d2+2 bonustohit 5 } ATTACK SPELL_CHILL { verb "chill" damage 1d4 element COLD inflict_intrinsic SLOW inflict_chance 100 inflict_duration 2d3+3 } ATTACK SPELL_SPARK { verb "zap" damage 1d15 element SHOCK } ATTACK SPELL_FIREBALL { verb "burn" damage 3d6 element FIRE } ATTACK SPELL_FIREBALLBALL { verb "burn" damage 2d6 element FIRE alwayshit true } ATTACK SPELL_ACIDSPLASH { verb "dissolve" damage 6d4 element ACID } ATTACK SPELL_CORROSIVEEXPLOSION { verb "dissolve" damage 6d6 element ACID alwayshit true } ATTACK SPELL_BLIZZARD { verb "freeze" damage 6d3 element COLD alwayshit true inflict_intrinsic SLOW inflict_chance 100 inflict_duration 3d3+3 sameattack SPELL_BLIZZARD_PUMMEL } ATTACK SPELL_BLIZZARD_PUMMEL { verb "pelt" damage 6d3 } ATTACK SPELL_DISINTEGRATE { verb "disintegrate" damage 0 element ACID alwayshit true } ATTACK SPELL_POISONBOLT { verb "poison" damage 1d6 inflict_intrinsic POISON_HARSH inflict_duration 6 inflict_chance 100 inflict_resistance RESISTPOISON } ATTACK SPELL_CLOUDKILL { verb "choke" damage 1d3 explode_chance 100 explode_smoke POISON explode_name "the venom ball" } ATTACK SPELL_FINGEROFDEATH { verb "slay" damage 1000 element DEATH deathtext "You were slain by the Finger of Death" } COMMENT { One's smarts is measured from 0 to 10ish. } DEFINE SMARTS { } SMARTS NONE 0 SMARTS VEGETABLE SMARTS ANIMAL SMARTS CUNNINGANIMAL SMARTS FOOL SMARTS HUMAN SMARTS WISE DEFINE STRENGTH { } STRENGTH NONE 0 STRENGTH MINIMAL STRENGTH WEAK STRENGTH HUMAN STRENGTH STRONG STRENGTH DRAGON COMMENT { AI is the type of move-chooser the critter will use. It is also used to determine attitude to fellow critters. RABID: Attack everyone PACK: Neutral to others, friendly to same mobtype SPECIEST: Neutral to others, friendly to same creature type. FRIENDLY: Friendly to everyone Some flags are stored with it: attackavatar - Do we attack avatar on sight? attackspecies - Attacks fellow species attacktype - Attacks fellow type attackalien - Attacks non-species/type useitems - Can equip/wield items. throwitems - Can throw items. packrat - Picks everything up. zapwands - Can zap wands. markattackpos - Will record location of last attacker in AI state. This allows charging the location of invisible attackers that use ranged attacks. } DEFINE AI { BOOL attackavatar 1 BOOL attackspecies 0 BOOL attacktype 0 BOOL attackalien 1 BOOL useitems 0 BOOL throwitems 0 BOOL packrat 0 BOOL zapwands 0 BOOL markattackpos 1 BOOL opendoors false } AI NONE 0 { attackavatar 0 attackspecies 0 attacktype 0 attackalien 0 } AI RABID { attackavatar 1 attackspecies 1 attacktype 1 attackalien 1 } AI ANIMAL_PACK { attackavatar 0 attackspecies 0 attacktype 0 attackalien 1 } AI MOUSE { attackavatar 0 attackspecies 0 attacktype 0 attackalien 1 markattackpos 0 } AI PACK { attackavatar 1 attackspecies 0 attacktype 0 attackalien 1 } AI ANIMAL_SPECIEST { attackavatar 0 attackspecies 0 attacktype 1 attackalien 1 } AI SPECIEST { attackavatar 1 attackspecies 0 attacktype 1 attackalien 1 } AI EVILHUMANOID { attackavatar 1 attackspecies 0 attacktype 1 attackalien 1 useitems 1 throwitems 1 zapwands 1 packrat 1 opendoors true } AI GOODHUMANOID { attackavatar 0 attackspecies 0 attacktype 1 attackalien 1 useitems 1 throwitems 1 zapwands 1 packrat 1 opendoors true } AI KOBOLD { attackavatar 1 attackspecies 0 attacktype 0 attackalien 1 useitems 1 throwitems 1 zapwands 1 packrat 1 opendoors true } AI TROLL { attackavatar 1 attackspecies 0 attacktype 0 attackalien 1 useitems 1 throwitems 1 zapwands 1 packrat 1 opendoors false } AI SMARTTRIDUDE { attackavatar 1 attackspecies 0 attacktype 0 attackalien 1 useitems 1 throwitems 1 zapwands 1 packrat 1 opendoors true } AI SCAVENGER { attackavatar 0 attackspecies 0 attacktype 1 attackalien 1 useitems 0 packrat 1 } AI FRIENDLY { attackavatar 0 attackspecies 0 attacktype 0 attackalien 0 } DEFINE SIZE { CST name "bread box sized" U16 foodval 0 } SIZE TINY { name "tiny" foodval 50 } SIZE SMALL { name "small" foodval 100 } SIZE MEDIUM { name "medium" foodval 200 } SIZE LARGE { name "large" foodval 500 } SIZE HUGE { name "huge" foodval 1000 } SIZE GARGANTUAN { name "gargantuan" foodval 2000 } COMMENT { The GENDERCHANCE reflects the probability of a creature being one of the three possible genders. If we have plural genders, they'd be added here. } DEFINE GENDERCHANCE { U8 male 50 U8 female 50 U8 neuter 0 } GENDERCHANCE MALE { male 100 female 0 neuter 0 } GENDERCHANCE FEMALE { male 0 female 100 neuter 0 } GENDERCHANCE NEUTER { male 0 female 0 neuter 100 } GENDERCHANCE MORF { male 50 female 50 neuter 0 } COMMENT { A MOBLEVEL is a way of referring ot a mob of a specific threat level The idea is to allow the specification of guardian monsters without knowing the level the map will show up on ahead of time. The range is the threat level around the map's own level that is allowed. Currently minlevel is ignored, and maxleve is just used as a modifier to the threat level. Thus, a monster level 0..threat-max is generated, so there is no guarantee you'll get uber monsters. } DEFINE MOBLEVEL { S16 minlevel -10 S16 maxlevel +10 } MOBLEVEL NONE { minlevel -100 maxlevel -100 } MOBLEVEL WEAK { minlevel -20 maxlevel -5 } MOBLEVEL NORMAL { minlevel -15 maxlevel 0 } MOBLEVEL STRONG { minlevel -5 maxlevel 5 } MOBLEVEL OVERPOWERING { minlevel 5 maxlevel 10 } MOBLEVEL UNIQUE { minlevel 5 maxlevel 5 } COMMENT { A MOBTYPE is a class of MOBs who are considered to be of the same meta type. Thus, all slugs are together, all dragons, all orcs, etc. } DEFINE MOBTYPE { CST name "mobtype" } MOBTYPE NONE { name "None" } MOBTYPE UNUSUAL { name "Unusual" } MOBTYPE DRAGON { name "Dragon" } MOBTYPE SNAKE { name "Snake" } MOBTYPE INSECT { name "Insect" } MOBTYPE SPIDER { name "Spider" } MOBTYPE HUMANOID { name "Humanoid" } MOBTYPE KOBOLD { name "Kobold" } MOBTYPE TROLL { name "Troll" } MOBTYPE RAT { name "Rat" } MOBTYPE CONSTRUCT { name "Construct" } MOBTYPE DAEMON { name "Daemon" } MOBTYPE SLUG { name "Slug" } MOBTYPE UNDEAD { name "Undead" } MOBTYPE BAT { name "Bat" } MOBTYPE GOLEM { name "Golem" } MOBTYPE ELEMENTAL { name "Elemental" } MOBTYPE GOD { name "god" } MOBTYPE TRIDUDE { name "tridude" } DEFINE MOB { ENM16 tile TILE VOID ENM16 tileur TILE VOID ENM16 tilell TILE VOID ENM16 tilelr TILE VOID CST name "unnamed!" ENM movetype MOVE WALK ENM attack ATTACK NONE DICE hp 10 U8 hitdie 1 U8 baseskills 2 DICE mp 0 U8 mpdie 1 U8 basespells 1 U8 explevel 1 S8 baseac 0 U8 lightradius 0 ENM smarts SMARTS ANIMAL ENM strength STRENGTH HUMAN ENM ai AI PACK ENM naturalfoe MOBTYPE NONE ENM size SIZE MEDIUM ENMLIST intrinsic INTRINSIC NONE ENMLIST eatgrant INTRINSIC NONE DICE eatmp 0 ENM mobtype MOBTYPE UNUSUAL ENM slotset ITEMSLOTSET NONE U8 rarity 100 ENMLIST loot ITEM NONE ENMLIST loottype ITEMTYPE NONE ENMLIST edible MATERIAL NONE ENM material MATERIAL FLESH ENM breathattack ATTACK NONE DICE breathdelay 1d4+1 CST breathsubstance "hot air" ENM reflex_attack ATTACK NONE U8 reflex_chance 100 U8 corpsechance 50 BOOL isboneless 0 BOOL isbloodless false BOOL acidiccorpse 0 BOOL canresurrectfromcorpse 0 BOOL blownbywind false U8 noise 1 BOOL usenameasprefix false ENM deathmsg DEATHMSG BLOOD ENM gender GENDERCHANCE MORF ENM evolvetarget MOB NONE U8 evolvelevel 0 BOOL publish false BOOL spacewalk false } COMMENT { Standard mob template MOB { tile name attack hp hitdie mp mpdie explevel baseac smarts strength size slotset } } MOB NONE 0 { name "no one" tile NOTILE rarity 0 } MOB AVATAR { tile AVATAR name "adventurer" attack PUNCH movetype STD_SWIM hp 15 hitdie 1 mp 10 mpdie 0 baseskills 1 basespells 1 explevel 1 baseac 0 smarts HUMAN strength HUMAN mobtype HUMANOID slotset HUMANOID edible FLESH edible WATER gender MALE ai GOODHUMANOID publish true } MOB GREENDRAGON { tile GREENDRAGON name "green dragon" movetype STD_FLY attack GREENDRAGONBITE hp 1d10+35 hitdie 8 mpdie 1 explevel 12 baseac 12 smarts WISE strength DRAGON ai SPECIEST size LARGE intrinsic RESISTPOISON eatgrant RESISTPOISON mobtype DRAGON slotset ANIMAL edible FLESH edible WATER } MOB WHITEDRAGON { tile WHITEDRAGON name "white dragon" movetype STD_FLY attack LONGSWORD hp 1d10+30 hitdie 8 mpdie 1 explevel 8 baseac 12 smarts WISE strength DRAGON ai SPECIEST size LARGE intrinsic RESISTCOLD eatgrant RESISTCOLD mobtype DRAGON slotset ANIMAL edible FLESH edible WATER breathattack ICEBREATH breathsubstance "ice" } MOB REDDRAGON { tile REDDRAGON name "red dragon" movetype STD_FLY attack LONGSWORD hp 1d10+30 hitdie 8 mpdie 1 explevel 8 baseac 12 smarts WISE strength DRAGON ai SPECIEST size LARGE intrinsic RESISTFIRE eatgrant RESISTFIRE mobtype DRAGON slotset ANIMAL edible FLESH edible WATER breathattack FIREBREATH breathsubstance "fire" } MOB BLUEDRAGON { tile BLUEDRAGON name "blue dragon" movetype STD_FLY attack LONGSWORD hp 1d10+30 hitdie 8 mpdie 1 explevel 8 baseac 12 smarts WISE strength DRAGON ai SPECIEST size LARGE intrinsic RESISTSHOCK eatgrant RESISTSHOCK mobtype DRAGON slotset ANIMAL edible FLESH edible WATER noise 3 breathattack LIGHTNINGBREATH breathsubstance "lightning" } MOB YELLOWDRAGON { tile YELLOWDRAGON name "yellow dragon" movetype STD_FLY attack LONGSWORD hp 2d10+40 hitdie 11 mpdie 2 explevel 10 baseac 14 smarts WISE strength DRAGON ai SPECIEST size LARGE intrinsic RESISTACID intrinsic RESISTSTONING eatgrant RESISTACID mobtype DRAGON slotset ANIMAL edible FLESH edible WATER breathattack ACIDBREATH breathsubstance "acid" acidiccorpse 1 } MOB COCKATRICE { tile COCKATRICE name "cockatrice" movetype STD_FLY attack COCKATRICE_HISS hp 1d30+30 hitdie 6 mpdie 0 explevel 7 baseac 7 smarts ANIMAL strength WEAK ai SPECIEST intrinsic RESISTSTONING eatgrant STONING mobtype UNUSUAL edible FLESH edible WATER slotset BIRD gender MALE } MOB DAEMON { tile DAEMON name "daemon" movetype STD_FLY attack DEMON_SWORD hp 5d10+20 hitdie 7 mpdie 4 mp 2d10+20 baseskills 2 basespells 5 explevel 10 baseac 10 smarts WISE strength DRAGON ai RABID size LARGE intrinsic VULNSILVER intrinsic RESISTFIRE eatgrant VULNSILVER eatgrant RESISTFIRE mobtype DAEMON slotset HUMANOID_ARMOURLESS edible FLESH edible WATER intrinsic SPELL_SUMMON_IMP } MOB ICEDAEMON { tile ICEDAEMON name "ice daemon" movetype STD_FLY attack FREEZING_SWORD hp 5d10+20 hitdie 7 mpdie 4 mp 2d10+20 baseskills 2 basespells 5 explevel 10 baseac 10 smarts WISE strength DRAGON ai RABID size LARGE intrinsic VULNSILVER intrinsic RESISTCOLD eatgrant VULNSILVER eatgrant RESISTCOLD mobtype DAEMON slotset HUMANOID_ARMOURLESS edible FLESH edible WATER intrinsic SPELL_FROSTBOLT intrinsic SPELL_LIVINGFROST } MOB BAEZLBUB { tile BAEZLEBUBUL tileur BAEZLEBUBUR tilell BAEZLEBUBLL tilelr BAEZLEBUBLR name "Baezl'bub" movetype STD_FLY attack BAEZELBUB_BITE hp 300 hitdie 20 mp 100 mpdie 20 baseskills 3 basespells 9 explevel 50 baseac 20 smarts WISE strength DRAGON ai RABID size GARGANTUAN intrinsic VULNSILVER intrinsic RESISTFIRE intrinsic RESISTPOISON eatgrant VULNSILVER eatgrant RESISTFIRE eatgrant RESISTPOISON intrinsic SPELL_STICKYFLAMES intrinsic SPELL_FIREBALL intrinsic SPELL_REGENERATE intrinsic SPELL_MAJORHEAL intrinsic SPELL_PRESERVE intrinsic SPELL_TRACK intrinsic SPELL_FETCH intrinsic SPELL_SUMMON_DEMON mobtype DAEMON slotset HUMANOID_HUGE rarity 0 edible FLESH edible WATER loot BLACKHEART corpsechance 100 gender MALE } MOB CRETAN_MINOTAUR { tile CRETAN_MINOTAUR_UL tileur CRETAN_MINOTAUR_UR tilell CRETAN_MINOTAUR_LL tilelr CRETAN_MINOTAUR_LR name "Cretan Minotaur" attack CRETAN_MINOTAUR hp 10d10+100 hitdie 20 mp 0 mpdie 0 baseskills 4 basespells 1 explevel 18 baseac 16 smarts FOOL strength DRAGON ai RABID size GARGANTUAN intrinsic FAST mobtype HUMANOID slotset HUMANOID_HUGE rarity 0 edible FLESH edible WATER noise 3 loot YRUNE corpsechance 100 gender MALE } MOB TRIDUDE { tile TRIDUDE name "tridude" attack CLUB hp 2d10 hitdie 2 mpdie 0 explevel 4 baseac 5 smarts CUNNINGANIMAL strength HUMAN mobtype TRIDUDE slotset HEADONLY edible FLESH edible WATER ai PACK evolvetarget REDTRIDUDE evolvelevel 13 gender NEUTER publish true spacewalk true } MOB REDTRIDUDE { tile REDTRIDUDE name "red tridude" attack DOUBLECLUB hp 2d10+20 hitdie 13 mp 2d10+20 baseskills 4 basespells 4 mpdie 13 explevel 13 baseac 15 smarts HUMAN strength HUMAN mobtype TRIDUDE slotset HEADONLY edible FLESH edible WATER ai SMARTTRIDUDE rarity 0 intrinsic RESISTFIRE eatgrant RESISTFIRE intrinsic SPELL_FLASH intrinsic SPELL_STICKYFLAMES intrinsic SPELL_FIREBALL evolvetarget BLUETRIDUDE evolvelevel 15 gender NEUTER spacewalk true } MOB BLUETRIDUDE { tile BLUETRIDUDE name "blue tridude" attack DOUBLECLUB hp 2d10+20 hitdie 15 mp 2d10+40 mpdie 10 baseskills 4 basespells 6 explevel 15 baseac 15 smarts CUNNINGANIMAL strength HUMAN mobtype TRIDUDE slotset HEADONLY edible FLESH edible WATER ai SMARTTRIDUDE rarity 0 intrinsic RESISTSHOCK eatgrant RESISTSHOCK intrinsic SPELL_SPARK intrinsic SPELL_LIGHTNINGBOLT intrinsic SPELL_CHAINLIGHTNING evolvetarget PURPLETRIDUDE evolvelevel 17 noise 3 gender NEUTER spacewalk true } MOB PURPLETRIDUDE { tile PURPLETRIDUDE name "purple tridude" attack DOUBLECLUB hp 20 hitdie 2 baseskills 2 basespells 8 mp 1d5+35 mpdie 17 explevel 17 baseac 15 smarts HUMAN strength HUMAN mobtype TRIDUDE slotset HEADONLY edible FLESH edible WATER ai SMARTTRIDUDE rarity 0 intrinsic RESISTPHYSICAL intrinsic NOBREATH intrinsic SPELL_FORCEBOLT intrinsic SPELL_FORCEWALL intrinsic SPELL_TELEPORT intrinsic SPELL_PRESERVE intrinsic SPELL_FETCH intrinsic SPELL_DISINTEGRATE loottype WAND gender NEUTER spacewalk true } MOB GOLDTRIDUDE { tile GOLDTRIDUDE_UL tileur GOLDTRIDUDE_UR tilell GOLDTRIDUDE_LL tilelr GOLDTRIDUDE_LR name "Golden Tridude" attack TRIPLECLUB hp 200 hitdie 20 mp 150 mpdie 20 baseskills 6 basespells 8 explevel 25 baseac 25 smarts WISE strength DRAGON ai SMARTTRIDUDE size GARGANTUAN intrinsic FAST intrinsic RESISTSHOCK intrinsic RESISTFIRE intrinsic RESISTACID intrinsic REFLECTION intrinsic SPELL_ACIDSPLASH intrinsic SPELL_ACIDICMIST intrinsic SPELL_CORROSIVEEXPLOSION eatgrant RESISTSHOCK eatgrant RESISTFIRE eatgrant RESISTACID loottype ARTIFACT loottype ARTIFACT loottype ARTIFACT mobtype TRIDUDE slotset HEADONLY rarity 0 edible FLESH edible WATER corpsechance 100 gender NEUTER spacewalk true } MOB FIREBEETLE { tile FIREBEETLE name "fire beetle" attack FIRESPIT hp 1d10 hitdie 1 mpdie 1 explevel 2 baseac 0 smarts ANIMAL strength HUMAN intrinsic RESISTFIRE intrinsic VULNCOLD eatgrant RESISTFIRE eatgrant VULNCOLD mobtype INSECT slotset INSECT edible FLESH edible WATER ai ANIMAL_SPECIEST size SMALL } MOB GOLDBEETLE { tile GOLDBEETLE name "gold beetle" attack GOLDBEETLE_MANDIBLE hp 1d20+40 hitdie 5 mpdie 0 explevel 6 baseac 8 smarts ANIMAL strength HUMAN intrinsic RESISTACID eatgrant RESISTACID eatgrant GOLDALLERGY mobtype INSECT slotset INSECT edible GOLD material GOLD ai ANIMAL_SPECIEST rarity 25 size SMALL } MOB ICESNAKE { tile ICESNAKE name "ice snake" attack ICESNAKEBITE hp 1d5 hitdie 1 mpdie 0 explevel 2 baseac 5 smarts ANIMAL strength WEAK size SMALL intrinsic VULNFIRE intrinsic RESISTCOLD eatgrant VULNFIRE eatgrant RESISTCOLD mobtype SNAKE slotset SNAKE edible FLESH edible WATER ai ANIMAL_SPECIEST } MOB GREENSNAKE { tile GREENSNAKE name "green snake" attack GREENSNAKEBITE hp 2d5 hitdie 2 mpdie 0 explevel 4 baseac 7 smarts ANIMAL strength WEAK size SMALL intrinsic RESISTPOISON eatgrant POISON_NORMAL mobtype SNAKE slotset SNAKE edible FLESH edible WATER ai ANIMAL_SPECIEST } MOB FIRESNAKE { tile FIRESNAKE name "fire snake" attack FIRESNAKEBITE hp 1d5 hitdie 1 mpdie 0 explevel 2 baseac 5 smarts ANIMAL strength WEAK size SMALL intrinsic VULNCOLD intrinsic RESISTFIRE eatgrant VULNCOLD eatgrant RESISTFIRE mobtype SNAKE slotset SNAKE edible FLESH edible WATER ai ANIMAL_SPECIEST } MOB MOUSE { tile MOUSE name "mouse" attack MOUSEBITE hp 1 hitdie 1 mpdie 0 explevel 1 baseac 5 smarts ANIMAL strength WEAK size TINY mobtype RAT slotset ANIMAL ai MOUSE noise 0 evolvetarget RAT evolvelevel 2 publish true } MOB RAT { tile RAT name "rat" attack RATBITE hp 1d4 hitdie 1 mpdie 0 explevel 1 baseac 0 smarts ANIMAL strength WEAK size SMALL mobtype RAT slotset ANIMAL ai ANIMAL_PACK evolvetarget GIANTRAT evolvelevel 3 publish true } MOB GIANTRAT { tile GIANTRAT name "giant rat" attack GIANTRATBITE hp 3d4 hitdie 3 mpdie 0 explevel 3 baseac 0 smarts ANIMAL strength WEAK size MEDIUM mobtype RAT slotset ANIMAL ai PACK publish true } MOB GRIDBUG { tile GRIDBUG name "grid bug" attack GRIDBUGZAP hp 2d5 hitdie 1 mpdie 0 explevel 1 baseac 3 smarts VEGETABLE strength MINIMAL size SMALL intrinsic RESISTSHOCK eatgrant RESISTSHOCK mobtype UNUSUAL slotset INSECT ai SPECIEST isbloodless true deathmsg SPARK publish true } MOB SHITOMI { tile SHITOMI name "shitomi" attack SHITOMICHU hitdie 3 hp 6d5 mpdie 0 explevel 5 baseac 10 smarts FOOL strength MINIMAL ai FRIENDLY slotset ANIMAL mobtype RAT } MOB TRICERATOP { tile TRICERATOPS name "triceratops" attack TRICERATOPHORN hitdie 25 hp 10d4+80 mpdie 0 explevel 18 baseac 20 smarts FOOL strength STRONG ai FRIENDLY slotset ANIMAL intrinsic SKILL_CHARGE rarity 25 } MOB LUX { tile LUX name "lux" attack LIGHTBLAST hp 10 hitdie 1 mpdie 0 explevel 2 baseac 0 smarts ANIMAL strength MINIMAL size SMALL mobtype CONSTRUCT slotset LUX lightradius 2 ai SPECIEST material IRON intrinsic NOBREATH intrinsic DEAF intrinsic NOREGEN corpsechance 0 isbloodless true noise 2 deathmsg SPARK gender NEUTER } MOB BROWNSLUG { tile BROWNSLUG name "brown slug" attack BROWNSLUG hp 1d10 hitdie 1 mpdie 0 explevel 2 baseac 0 smarts ANIMAL strength MINIMAL size SMALL intrinsic RESISTACID intrinsic RESISTSTONING intrinsic SLOW eatgrant RESISTACID mobtype SLUG slotset SLUG ai PACK edible FLESH edible WATER isboneless 1 acidiccorpse 1 evolvetarget PURPLESLUG evolvelevel 6 publish true } MOB PURPLESLUG { tile PURPLESLUG name "purple slug" attack SLUGSLIME hp 3d10 hitdie 3 mpdie 0 explevel 6 baseac 0 smarts ANIMAL strength MINIMAL intrinsic RESISTACID intrinsic RESISTSTONING intrinsic SLOW eatgrant RESISTACID mobtype SLUG slotset SLUG ai PACK edible FLESH edible WATER isboneless 1 acidiccorpse 1 evolvetarget DEATHSLUG evolvelevel 12 } MOB DEATHSLUG { tile DEATHSLUG name "death slug" attack DEATHSLUG hp 3d10+30 hitdie 6 mpdie 0 explevel 12 baseac 10 smarts ANIMAL strength MINIMAL intrinsic RESISTACID intrinsic RESISTSTONING intrinsic SLOW eatgrant RESISTACID acidiccorpse 1 mobtype SLUG slotset SLUG edible FLESH edible WATER ai PACK } MOB FLOATINGEYE { tile FLOATINGEYE name "floating eye" attack FLOATINGEYE_TRACK movetype STD_FLY hp 2d5 hitdie 3 mpdie 0 explevel 3 baseac 4 smarts ANIMAL strength NONE size SMALL eatgrant TELEPATHY reflex_chance 75 reflex_attack FLOATINGEYE_REFLEX ai ANIMAL_SPECIEST intrinsic DEAF slotset NONE isboneless 1 noise 0 publish true } MOB WIZARDSEYE { tile FLOATINGEYE name "wizard's eye" attack FLOATINGEYE_TRACK movetype ALL hp 1d5+5 hitdie 3 mpdie 0 explevel 3 baseac 4 smarts ANIMAL strength NONE size SMALL eatgrant TELEPATHY reflex_chance 75 reflex_attack FLOATINGEYE_REFLEX ai ANIMAL_SPECIEST intrinsic DEAF slotset NONE isboneless 1 noise 0 lightradius 2 rarity 0 } MOB GELATINOUSCUBE { tile GELATINOUSCUBE name "gelatinous cube" attack GELATINOUSCUBE hp 2d5+30 hitdie 6 mpdie 0 explevel 7 baseac 7 smarts NONE strength MINIMAL reflex_chance 100 reflex_attack GELATINOUSCUBE_REFLEX ai SCAVENGER intrinsic RESISTACID intrinsic RESISTSHOCK intrinsic RESISTSTONING intrinsic NOBREATH intrinsic BLIND intrinsic TELEPATHY eatgrant RESISTACID eatgrant RESISTSHOCK acidiccorpse 1 slotset NONE edible IRON edible SILVER isboneless 1 deathmsg ICHOR gender NEUTER } MOB SCORPION { tile SCORPION name "scorpion" attack SCORPION hp 4d5 hitdie 4 mpdie 0 explevel 5 baseac 6 smarts ANIMAL strength MINIMAL size SMALL intrinsic RESISTPOISON eatgrant POISON_STRONG mobtype INSECT slotset INSECT edible FLESH edible WATER ai SPECIEST publish true } MOB CAVESPIDER { tile CAVESPIDER name "cave spider" attack CAVESPIDER hp 2d5 hitdie 2 mpdie 0 explevel 3 baseac 0 smarts ANIMAL strength MINIMAL size SMALL mobtype SPIDER slotset INSECT edible FLESH edible WATER ai ANIMAL_PACK evolvetarget GIANTSPIDER evolvelevel 8 publish true } MOB GIANTSPIDER { tile GIANTSPIDER name "giant spider" attack GIANTSPIDER hp 3d5+15 hitdie 4 mpdie 0 explevel 8 baseac 6 smarts ANIMAL strength MINIMAL mobtype SPIDER slotset INSECT edible FLESH edible WATER ai ANIMAL_PACK } MOB KIWI { tile KIWI name "kiwi" attack KIWISTAB hp 3d5+15 hitdie 3 mpdie 0 explevel 3 baseac 5 smarts ANIMAL strength MINIMAL ai ANIMAL_SPECIEST slotset WINGLESS_BIRD publish true } MOB BAT { tile BAT name "bat" attack BATBITE movetype STD_FLY hp 1d10 hitdie 1 mpdie 0 explevel 2 baseac 5 smarts ANIMAL strength MINIMAL size SMALL ai ANIMAL_PACK intrinsic FAST eatgrant QUICK mobtype BAT edible FLESH edible WATER slotset BIRD evolvetarget LARGEBAT evolvelevel 4 publish true } MOB LARGEBAT { tile LARGEBAT name "large bat" attack LARGEBATBITE movetype STD_FLY hp 1d10+10 hitdie 2 mpdie 0 explevel 4 baseac 10 smarts ANIMAL strength MINIMAL ai ANIMAL_PACK intrinsic FAST eatgrant QUICK mobtype BAT edible FLESH edible WATER slotset BIRD evolvetarget VAMPIREBAT evolvelevel 7 publish true } MOB VAMPIREBAT { tile VAMPIREBAT name "vampire bat" attack VAMPIREBATBITE movetype STD_FLY hp 2d10+10 hitdie 4 mpdie 0 explevel 7 baseac 13 smarts ANIMAL strength MINIMAL ai PACK intrinsic FAST eatgrant QUICK mobtype BAT edible FLESH edible WATER slotset BIRD } MOB STALKER { tile INVISIBLESTALKER name "invisible stalker" attack SLUGSLIME hp 2d10+20 hitdie 4 mpdie 0 explevel 10 baseac 10 smarts ANIMAL strength MINIMAL intrinsic INVISIBLE intrinsic SEEINVISIBLE mobtype UNUSUAL ai SPECIEST edible FLESH edible WATER eatgrant SEEINVISIBLE eatgrant INVISIBLE acidiccorpse 1 slotset HUMANOID noise 0 } MOB FROG { tile FROG name "giant frog" movetype STD_SWIM attack FROGBITE hp 1d10+20 hitdie 5 mpdie 0 explevel 5 baseac 5 smarts ANIMAL strength WEAK mobtype UNUSUAL ai SPECIEST naturalfoe INSECT intrinsic JUMP intrinsic WATERWALK intrinsic VULNFIRE eatgrant JUMP eatgrant WATERWALK eatgrant VULNFIRE edible FLESH edible WATER slotset ANIMAL } MOB SKELETON { tile SKELETON name "skeleton" attack PUNCH hp 10 hitdie 2 mpdie 0 explevel 2 baseac 4 smarts NONE strength HUMAN ai PACK mobtype UNDEAD slotset HUMANOID intrinsic RESISTPOISON intrinsic NOBREATH corpsechance 0 isbloodless true deathmsg DUST publish true usenameasprefix true } MOB ZOMBIE { tile ZOMBIE name "zombie" attack PUNCH hp 20 hitdie 4 mpdie 0 explevel 4 baseac 4 smarts NONE strength HUMAN ai PACK intrinsic SLOW intrinsic RESISTPOISON mobtype UNDEAD slotset HUMANOID corpsechance 0 isbloodless true publish true usenameasprefix true } MOB GHAST { tile GHAST name "ghast" attack GHASTCLAW hp 30 hitdie 6 mpdie 0 baseskills 7 basespells 1 explevel 7 baseac 6 smarts NONE strength HUMAN ai EVILHUMANOID mobtype UNDEAD slotset HUMANOID intrinsic RESISTPOISON corpsechance 0 isbloodless true usenameasprefix true } MOB LICH { tile LICH name "lich" attack PUNCH hp 2d10+30 hitdie 8 mp 2d10+50 mpdie 8 baseskills 9 basespells 9 explevel 13 baseac 8 smarts WISE strength HUMAN ai EVILHUMANOID mobtype UNDEAD slotset HUMANOID intrinsic RESISTCOLD intrinsic TELEPORTCONTROL intrinsic REGENERATION intrinsic VULNFIRE intrinsic VULNSILVER intrinsic SEEINVISIBLE intrinsic RESISTPOISON intrinsic SPELL_CHILL intrinsic SPELL_FROSTBOLT intrinsic SPELL_LIGHTNINGBOLT intrinsic SPELL_TELEPORT intrinsic SPELL_POISONBOLT intrinsic SPELL_POISONITEM eatgrant VULNSILVER eatgrant TELEPORTCONTROL eatmp 1d7 isbloodless true usenameasprefix true } MOB SOULSUCKER { tile SOULSUCKER name "soul sucker" attack WHIP hp 1d10+40 hitdie 8 mp 6d10+50 mpdie 10 explevel 15 baseac 10 smarts WISE strength WEAK ai EVILHUMANOID mobtype UNUSUAL slotset BRAIN intrinsic SEEINVISIBLE intrinsic SPELL_SOULSUCK eatmp 1d4 } MOB IMP { tile IMP name "imp" attack PUNCH hp 1d10 hitdie 1 mp 20 mpdie 1 baseskills 2 basespells 3 explevel 4 baseac 2 smarts HUMAN strength WEAK mobtype DAEMON slotset HUMANOID ai EVILHUMANOID intrinsic RESISTFIRE intrinsic SEEINVISIBLE eatgrant RESISTFIRE eatgrant SEEINVISIBLE intrinsic SPELL_MAGICMISSILE intrinsic SPELL_FIREBALL intrinsic SPELL_TELEPORT } MOB KOBOLD { tile KOBOLD name "kobold" attack PUNCH hp 1d10+15 hitdie 4 mpdie 0 baseskills 4 basespells 2 explevel 6 baseac 6 smarts HUMAN strength HUMAN mobtype KOBOLD slotset HUMANOID edible FLESH edible WATER ai KOBOLD intrinsic SKILL_EVADETRAP loot SHORTSWORD evolvetarget KOBOLDFIGHTER evolvelevel 14 publish true } MOB KOBOLDMAGE { tile KOBOLDMAGE name "kobold mage" attack PUNCH hp 1d10+25 hitdie 5 mpdie 4 mp 4d10 baseskills 6 basespells 5 explevel 9 baseac 6 smarts HUMAN strength HUMAN mobtype KOBOLD slotset HUMANOID edible FLESH edible WATER ai KOBOLD intrinsic SPELL_STICKYFLAMES intrinsic SPELL_CUREPOISON intrinsic SPELL_HEAL intrinsic SPELL_MAGICMISSILE intrinsic SKILL_EVADETRAP eatmp 1d3 evolvetarget KOBOLDASSASSIN evolvelevel 20 publish true } MOB KOBOLDFIGHTER { tile KOBOLDFIGHTER name "kobold fighter" attack PUNCH hp 1d10+45 hitdie 15 mpdie 0 mp 0 baseskills 8 basespells 1 explevel 14 baseac 10 smarts HUMAN strength HUMAN mobtype KOBOLD slotset HUMANOID edible FLESH edible WATER ai KOBOLD intrinsic SKILL_EVADETRAP intrinsic SKILL_WEAPON_PARRY loot LONGSWORD loot CHAINMAIL loot HELM evolvetarget KOBOLDTHIEF evolvelevel 25 publish true } MOB KOBOLDASSASSIN { tile KOBOLDASSASSIN name "kobold assassin" attack PUNCH hp 1d10+35 hitdie 20 mpdie 10 baseskills 8 basespells 8 mp 1d10+20 explevel 20 baseac 15 smarts HUMAN strength HUMAN mobtype KOBOLD slotset HUMANOID edible FLESH edible WATER ai KOBOLD intrinsic RESISTPOISON intrinsic FAST intrinsic SKILL_EVADETRAP intrinsic SKILL_DODGE intrinsic SKILL_WEAPON_BLEEDINGWOUND intrinsic SPELL_POISONITEM intrinsic SPELL_POISONBOLT intrinsic SPELL_TRACK loot SILVERDAGGER publish true } MOB KOBOLDTHIEF { tile KOBOLDTHIEF name "kobold thief" attack PUNCH hp 1d10+75 hitdie 25 mpdie 0 mp 0 baseskills 8 basespells 1 explevel 25 baseac 20 smarts HUMAN strength HUMAN mobtype KOBOLD slotset HUMANOID edible FLESH edible WATER ai KOBOLD intrinsic SKILL_EVADETRAP intrinsic SKILL_DODGE intrinsic SKILL_WEAPON_DISARM intrinsic FAST loot RAPIER loot STUDDEDLEATHER loot LEATHERCAP } MOB TROLL { tile TROLL name "troll" attack PUNCH hp 2d10+15 hitdie 6 mpdie 0 explevel 8 baseac 8 smarts FOOL strength HUMAN mobtype TROLL slotset HUMANOID edible FLESH edible WATER ai TROLL intrinsic REGENERATION eatgrant REGENERATION canresurrectfromcorpse 1 noise 2 loot CLUB evolvetarget CAVETROLL evolvelevel 16 } MOB CAVETROLL { tile CAVETROLL name "cave troll" attack PUNCH hp 2d10+45 hitdie 20 mpdie 0 explevel 16 baseac 20 smarts FOOL strength HUMAN mobtype TROLL slotset HUMANOID edible STONE material STONE ai TROLL intrinsic REGENERATION eatgrant REGENERATION canresurrectfromcorpse 1 noise 2 loot WARHAMMER } MOB LIZARDMAN { tile LIZARDMAN name "lizardman" attack PUNCH hp 1d10+25 hitdie 6 mpdie 0 explevel 8 baseac 8 smarts HUMAN strength HUMAN mobtype HUMANOID slotset HUMANOID edible FLESH edible WATER ai EVILHUMANOID gender MALE loot SPEAR } MOB TURTLOID { tile TURTLOID name "turtloid" movetype STD_SWIM attack PUNCH hp 3d5+25 hitdie 15 mpdie 0 explevel 15 baseac 30 smarts HUMAN mobtype HUMANOID slotset HUMANOID edible FLESH edible WATER ai EVILHUMANOID intrinsic WATERWALK noise 2 loot SHORTSWORD evolvetarget LARGETURTLOID evolvelevel 20 } MOB LARGETURTLOID { tile LARGETURTLOID name "large turtloid" movetype STD_SWIM attack PUNCH hp 3d5+45 hitdie 20 mpdie 0 explevel 20 baseac 40 smarts HUMAN size LARGE mobtype HUMANOID slotset HUMANOID edible FLESH edible WATER ai EVILHUMANOID intrinsic WATERWALK noise 2 loot SPEAR } MOB ORC { tile ORC name "orc" attack PUNCH hp 3d5+25 hitdie 15 mpdie 0 explevel 12 baseac 12 smarts HUMAN mobtype HUMANOID slotset HUMANOID edible FLESH edible WATER ai EVILHUMANOID loot SPEAR evolvetarget HILLORC evolvelevel 18 } MOB HILLORC { tile HILLORC name "hill orc" attack PUNCH hp 3d10+45 hitdie 20 mpdie 0 explevel 18 baseac 24 smarts HUMAN mobtype HUMANOID slotset HUMANOID edible FLESH edible WATER ai EVILHUMANOID loot LONGSWORD } MOB HEADLESS { tile HEADLESS name "headless" attack CLAW hp 1d10+5 hitdie 2 mpdie 0 explevel 3 baseac 2 smarts FOOL strength HUMAN mobtype HUMANOID slotset HEADLESS ai EVILHUMANOID intrinsic BLIND intrinsic TELEPATHY } MOB CHAMELEON { tile CHAMELEON name "chameleon" attack CLAW hp 1d40 hitdie 4 mpdie 0 explevel 6 baseac 6 smarts ANIMAL strength WEAK mobtype UNUSUAL ai SPECIEST edible FLESH edible WATER intrinsic POLYMORPH eatgrant POLYMORPH slotset ANIMAL } MOB LIVINGTREE { tile LIVINGTREE name "animated tree" attack LIVINGTREE hp 80 hitdie 10 mp 0 mpdie 0 baseskills 2 basespells 1 explevel 20 baseac 15 smarts FOOL strength DRAGON mobtype UNUSUAL ai SPECIEST intrinsic VULNFIRE intrinsic NOBREATH slotset TREE material WOOD noise 4 deathmsg WOOD isbloodless true gender NEUTER rarity 0 } MOB EARTHELEMENTAL { tile EARTHELEMENTAL name "earth elemental" attack EARTHELEMENTAL hp 100 hitdie 10 mp 60 mpdie 0 baseskills 2 basespells 4 explevel 20 baseac 15 smarts FOOL strength DRAGON mobtype ELEMENTAL ai SPECIEST intrinsic RESISTSHOCK intrinsic SLOW intrinsic NOBREATH intrinsic NOREGEN intrinsic SPELL_CREATEPIT intrinsic SPELL_ROLLINGBOULDER intrinsic SKILL_EVADETRAP slotset HUMANOID material STONE noise 4 deathmsg DUST isbloodless true gender NEUTER } MOB AIRELEMENTAL { tile AIRELEMENTAL name "air elemental" movetype STD_FLY attack AIRELEMENTAL hp 2d50 hitdie 20 mp 50 mpdie 5 baseskills 2 basespells 4 explevel 25 baseac 20 smarts FOOL strength STRONG mobtype ELEMENTAL ai SPECIEST blownbywind true intrinsic RESISTSHOCK intrinsic SPELL_LIGHTNINGBOLT intrinsic SPELL_SPARK intrinsic FAST intrinsic QUICK intrinsic NOBREATH intrinsic NOREGEN material ETHEREAL slotset NONE corpsechance 0 isbloodless true deathmsg SPARK gender NEUTER } MOB FIREELEMENTAL { tile FIREELEMENTAL name "fire elemental" attack FIREELEMENTAL hp 2d50+100 hitdie 30 mp 100 mpdie 20 baseskills 2 basespells 4 explevel 30 baseac 25 smarts FOOL strength STRONG ai SPECIEST intrinsic RESISTFIRE intrinsic VULNCOLD intrinsic NOBREATH intrinsic NOREGEN intrinsic SPELL_FLASH intrinsic SPELL_FIREBALL intrinsic SPELL_STICKYFLAMES material ETHEREAL lightradius 3 slotset FIREELEMENTAL corpsechance 0 isbloodless true deathmsg FLAME gender NEUTER } MOB WATERELEMENTAL { tile WATERELEMENTAL name "water elemental" movetype STD_SWIM attack WATERELEMENTAL hp 1d50+100 hitdie 25 mp 30 mpdie 2 baseskills 2 basespells 4 explevel 22 baseac 15 smarts FOOL strength STRONG ai SPECIEST intrinsic WATERWALK intrinsic VULNFIRE intrinsic VULNCOLD intrinsic NOBREATH intrinsic NOREGEN intrinsic SPELL_DOWNPOUR material WATER corpsechance 0 eatgrant STRANGLE isbloodless true slotset HUMANOID deathmsg WATER gender NEUTER } MOB FLESHGOLEM { tile FLESHGOLEM name "flesh golem" attack FLESHGOLEM hp 2d10+30 hitdie 15 mpdie 0 explevel 15 baseac 10 smarts FOOL strength STRONG ai SPECIEST intrinsic REGENERATION intrinsic NOBREATH slotset HUMANOID isbloodless true gender NEUTER } MOB STONEGOLEM { tile STONEGOLEM name "stone golem" attack STONEGOLEM hp 4d10+60 hitdie 20 mpdie 0 explevel 19 baseac 15 smarts FOOL strength STRONG ai SPECIEST material STONE intrinsic NOBREATH intrinsic NOREGEN slotset HUMANOID noise 3 deathmsg DUST isbloodless true gender NEUTER } MOB IRONGOLEM { tile IRONGOLEM name "iron golem" attack IRONGOLEM hp 200 hitdie 25 mp 100 mpdie 20 baseskills 2 basespells 4 explevel 27 baseac 20 smarts FOOL strength STRONG ai SPECIEST material IRON intrinsic NOBREATH intrinsic NOREGEN intrinsic RESISTSHOCK intrinsic SPELL_LIGHTNINGBOLT slotset HUMANOID noise 3 deathmsg SPARK isbloodless true gender NEUTER } MOB GHOST { tile GHOST name "ghost" movetype STD_PHASE attack GHOST hp 2d10+40 hitdie 16 mp 2d10+20 mpdie 10 baseskills 2 basespells 4 explevel 17 baseac 18 smarts WISE strength WEAK ai SPECIEST mobtype UNDEAD intrinsic NOBREATH intrinsic RESISTPOISON intrinsic RESISTPHYSICAL intrinsic VULNSILVER intrinsic SEEINVISIBLE intrinsic WARNING intrinsic INVISIBLE intrinsic SPELL_CHILL intrinsic SPELL_FROSTBOLT material ETHEREAL slotset NONE corpsechance 0 isbloodless true deathmsg INCORPREAL } MOB LIVINGFROST { tile LIVINGFROST name "living frost" movetype STD_FLY attack LIVINGFROST hp 30 hitdie 10 mp 0 mpdie 1 explevel 15 baseac 20 smarts NONE strength NONE blownbywind true intrinsic RESISTSTONING intrinsic UNCHANGING intrinsic RESISTCOLD intrinsic RESISTSHOCK intrinsic RESISTACID intrinsic RESISTPOISON intrinsic RESISTPHYSICAL intrinsic FAST intrinsic QUICK intrinsic VULNFIRE intrinsic NOBREATH material ETHEREAL deathmsg INCORPREAL isbloodless true corpsechance 0 rarity 0 } MOB ELDER { tile ELDER name "village elder" attack LIGHTNINGRAPIER movetype WALK hp 65 hitdie 10 mp 60 mpdie 10 explevel 10 baseac 0 smarts HUMAN strength HUMAN mobtype HUMANOID slotset HUMANOID edible FLESH edible WATER gender FEMALE intrinsic SPELL_LIGHTNINGBOLT intrinsic SPELL_SPARK ai FRIENDLY rarity 0 } COMMENT { Another big section here: ITEMS! } DEFINE MATERIAL { CST name "non-material" BOOL soluble false BOOL burnable false } MATERIAL NONE { name "the complete and total lack of substance" } MATERIAL ETHEREAL { name "aether" soluble false } MATERIAL CLOTH { name "cloth" soluble true } MATERIAL LEATHER { name "leather" soluble true } MATERIAL PAPER { name "paper" soluble true burnable true } MATERIAL WOOD { name "wood" soluble true } MATERIAL IRON { name "iron" soluble true } MATERIAL GLASS { name "glass" soluble false } MATERIAL SILVER { name "silver" soluble true } MATERIAL STONE { name "stone" soluble false } MATERIAL GOLD { name "gold" soluble false } MATERIAL MITHRIL { name "mithril" soluble false } MATERIAL FLESH { name "flesh" soluble true } MATERIAL WATER { name "water" soluble false } DEFINE ITEMFLAG1 { } ITEMFLAG1 NONE 0 ITEMFLAG1 ARMORSLOTMASK 7 ITEMFLAG1 ISBOOTS 1 ITEMFLAG1 ISHELMET 2 ITEMFLAG1 ISSHIELD 3 ITEMFLAG1 ISJACKET 4 ITEMFLAG1 ISRING 5 ITEMFLAG1 ISAMULET 6 ITEMFLAG1 ISCURSED 8 ITEMFLAG1 ISBLESSED 16 ITEMFLAG1 ISBLOCKING 64 COMMENT { Above 128 you can't initialize stuff with this. } ITEMFLAG1 ISQUIVERED 128 ITEMFLAG1 ISMAPPED 256 ITEMFLAG1 ISKNOWENCHANT 512 ITEMFLAG1 ISKNOWCHARGES 1024 ITEMFLAG1 ISKNOWPOISON 2048 ITEMFLAG1 ISBELOWGRADE 4096 ITEMFLAG1 ISKNOWCURSE 8192 ITEMFLAG1 ISINVENTORY 16384 ITEMFLAG1 ISARTIFACT 32768 ITEMFLAG1 ISKNOWNOTCURSE 65536 ITEMFLAG1 ISFAVORITE 131072 DEFINE MAGICTYPE { CST name "Type" CST cycname "TYPE" } MAGICTYPE NONE { name "None" cycname "NONE" } MAGICTYPE POTION { name "Potion" cycname "POTION" } MAGICTYPE SCROLL { name "Scroll" cycname "SCROLL" } MAGICTYPE RING { name "Ring" cycname "RING" } MAGICTYPE HELM { name "Helm" cycname "HELM" } MAGICTYPE WAND { name "Wand" cycname "WAND" } MAGICTYPE AMULET { name "Amulet" cycname "AMULET" } MAGICTYPE SPELLBOOK { name "Book" cycname "SPELLBOOK" } MAGICTYPE BOOTS { name "Boots" cycname "BOOTS" } MAGICTYPE STAFF { name "Staff" cycname "STAFF" } COMMENT { POTION.... Potions are the magical half of potions. The mundane half is governed by the relevant ITEMs. These get mixed up with the item potions at random every new game. name is the id'd name of the potion autoid is whether the potion gets ided after it is drunk by the avatar. isgrenade governs whether creatures will consider it a throwable weapon. } DEFINE POTION { CST name "yummy potion" BOOL autoid true ENM cursechance CURSECHANCE NORMAL BOOL isgrenade false ENM grenadeelement ELEMENT PHYSICAL } POTION HEAL { name "heal potion" autoid false } POTION ACID { name "acid potion" isgrenade true grenadeelement ACID } POTION BLIND { name "potion of blindness" autoid false isgrenade true grenadeelement LIGHT } POTION POISON { name "poison potion" isgrenade true grenadeelement POISON } POTION CURE { name "cure potion" autoid false } POTION GREEKFIRE { name "bottle of greek fire" isgrenade true grenadeelement FIRE } POTION ENLIGHTENMENT { name "potion of enlightenment" } POTION SMOKE { name "smoke potion" isgrenade true } POTION MANA { name "mana potion" autoid false } COMMENT { SCROLL is like potion. The name is the true name, the autoid if it autoids on reading. } DEFINE SCROLL { CST name "interesting scroll" BOOL autoid 1 ENM cursechance CURSECHANCE NORMAL U8 rarity 100 } SCROLL ID { name "scroll of identify" } SCROLL REMOVECURSE { name "scroll of remove curse" } SCROLL FIRE { name "scroll of fire" } SCROLL LIGHT { name "scroll of light" } SCROLL MAP { name "scroll of magic mapping" } SCROLL HEAL { name "scroll of healing" } SCROLL TELEPORT { name "scroll of teleport" } SCROLL ENCHANTWEAPON { name "scroll of enchant weapon" } SCROLL ENCHANTARMOUR { name "scroll of enchant armour" } SCROLL MAKEARTIFACT { name "scroll of omnipotence" rarity 1 } COMMENT { RING is like POTION and SCROLL. name is the true name. No autoid here. coolness is how cool it is for the AI. Larger is better. Things that are 0 coolness are not ever wielded. } DEFINE RING { CST name "magic ring" ENMLIST intrinsic INTRINSIC NONE ENM cursechance CURSECHANCE NORMAL U8 coolness 1 } RING WEDDING { name "wedding ring" coolness 0 } RING REGENERATE { name "ring of regeneration" intrinsic REGENERATION coolness 10 } RING TELEPORT { name "ring of teleportation" intrinsic TELEPORT cursechance OFTENCURSE coolness 0 } RING TELEPORTCONTROL { name "ring of teleport control" intrinsic TELEPORTCONTROL coolness 1 } RING MISSINGFINGER { name "ring of the missing finger" intrinsic MISSINGFINGER cursechance OFTENCURSE coolness 0 } RING SEARCH { name "ring of searching" intrinsic SEARCH coolness 2 } RING FIRE { name "ring of fire resistance" intrinsic RESISTFIRE coolness 7 } RING ICE { name "ring of cold resistance" intrinsic RESISTCOLD coolness 5 } RING ACID { name "ring of acid resistance" intrinsic RESISTACID coolness 7 } RING SHOCK { name "ring of shock resistance" intrinsic RESISTSHOCK coolness 7 } RING LIGHT { name "ring of light" coolness 2 } RING INVISIBLE { name "ring of invisibility" intrinsic INVISIBLE cursechance OFTENCURSE coolness 10 } RING SEEINVISIBLE { name "ring of see invisible" intrinsic SEEINVISIBLE coolness 3 } RING POLYMORPH { name "ring of polymorph" intrinsic POLYMORPH coolness 0 } RING POLYCONTROL { name "ring of polymorph control" intrinsic POLYCONTROL coolness 1 } COMMENT { Another magic type, the HELMs... } DEFINE HELM { CST name "magic helm" ENMLIST intrinsic INTRINSIC NONE ENM cursechance CURSECHANCE NORMAL } HELM DRAIN { name "helm of draining" intrinsic MAGICDRAIN cursechance OFTENCURSE } HELM TELEPATHY { name "helm of telepathy" intrinsic TELEPATHY } HELM WARNING { name "helm of warning" intrinsic WARNING } COMMENT { YAMT, the boots. } DEFINE BOOTS { CST name "magic boots" ENMLIST intrinsic INTRINSIC NONE ENM cursechance CURSECHANCE NORMAL } BOOTS WATERWALK { name "boots of water walking" intrinsic WATERWALK } BOOTS SNOWBOOTS { name "fur-lined boots" intrinsic RESISTCOLD } BOOTS JUMP { name "jump boots" intrinsic JUMP } BOOTS SPEED { name "speed boots" intrinsic FAST } BOOTS SQUEAKY { name "squeaky shoes" intrinsic NOISY } COMMENT { YAMT, the amulets... } DEFINE AMULET { CST name "magic amulet" ENMLIST intrinsic INTRINSIC NONE ENM cursechance CURSECHANCE NORMAL U8 coolness 1 } AMULET STRANGULATION { intrinsic STRANGLE name "amulet of strangulation" cursechance ALWAYSCURSE coolness 0 } AMULET REFLECTION { intrinsic REFLECTION name "amulet of reflection" coolness 3 } AMULET LIFESAVING { intrinsic LIFESAVE name "amulet of life saving" coolness 10 } AMULET POISONRESIST { intrinsic RESISTPOISON name "amulet of poison resistance" coolness 5 } AMULET UNCHANGING { intrinsic UNCHANGING name "amulet of unchanging" coolness 1 } DEFINE WAND { CST name "magic wand" ENM cursechance CURSECHANCE NORMAL DICE charges 3d5-3 } WAND TELEPORT { name "wand of teleport" } WAND LIGHT { name "wand of light" } WAND INVISIBLE { name "wand of invisibility" } WAND FIRE { name "wand of fire" } WAND ICE { name "wand of ice" } WAND NOTHING { name "wand of nothing" } WAND DIGGING { name "wand of digging" } WAND CREATETRAP { name "wand of trapping" } WAND CREATEMONSTER { name "wand of create monster" } WAND POLYMORPH { name "wand of polymorph" } WAND SLOW { name "wand of slowness" } WAND SPEED { name "wand of speed" } WAND SLEEP { name "wand of sleep" } COMMENT { YAMT: Spellbooks name Name of the book cursechance Chance of being cursed spells What spells are in this book. skills What skills are in this book. } DEFINE SPELLBOOK { CST name "normal cookbook" ENM cursechance CURSECHANCE NORMAL DICE charges 2d3 ENMLIST spells SPELL NONE ENMLIST skills SKILL NONE } SPELLBOOK FIRE { name "tome of fire" spells MAGICMISSILE spells FLASH spells STICKYFLAMES spells FIREBALL spells FLAMESTRIKE spells SUNFIRE } SPELLBOOK COLD { name "tome of cold" spells MAGICMISSILE spells CHILL spells FROSTBOLT spells LIVINGFROST spells BLIZZARD spells DIRECTWIND } SPELLBOOK SHOCK { name "shocking tome" spells MAGICMISSILE spells SPARK spells LIGHTNINGBOLT spells CHAINLIGHTNING spells DIRECTWIND } SPELLBOOK HEAL { name "tome of healing" spells REGENERATE spells SLOWPOISON spells HEAL spells CUREPOISON spells MAJORHEAL spells RESURRECT spells DIAGNOSE } SPELLBOOK FAMILIAR { name "familiar tome" spells HEAL spells SUMMON_FAMILIAR spells TRANSFER_KNOWLEDGE spells TELEPORT spells FETCH spells TRACK spells DIAGNOSE spells POSSESS } SPELLBOOK DIVINATION { name "tome of divination" spells LIGHT spells MAGICMAP spells DETECTCURSE spells IDENTIFY spells KNOCK spells TRACK spells DIAGNOSE spells WIZARDSEYE } SPELLBOOK FORCE { name "tome of force" spells FORCEBOLT spells FORCEWALL spells TELEPORT spells BLINK spells FETCH spells PRESERVE spells DIRECTWIND } SPELLBOOK EARTH { name "tome of earth" spells DIG spells CREATEPIT spells SANDSTORM spells GROWFOREST spells ANIMATEFOREST spells DOWNPOUR spells ROLLINGBOULDER spells ENTOMB spells PETRIFY } SPELLBOOK DEATH { name "tome of death" spells MAGICMISSILE spells POISONITEM spells POISONBOLT spells CLOUDKILL spells FINGEROFDEATH } SPELLBOOK NECRO { name "tome of necromancy" spells RAISE_UNDEAD spells RECLAIM_SOUL spells DARK_RITUAL spells GHASTIFY spells BINDSOUL spells SOULSUCK spells SUMMON_IMP spells SUMMON_DEMON spells POSSESS spells DIAGNOSE } SPELLBOOK ACID { name "tome of acid" spells ACIDSPLASH spells ACIDICMIST spells ACIDPOOL spells MINDACID spells CORROSIVEEXPLOSION spells DISINTEGRATE spells DIRECTWIND } SPELLBOOK ARMOUR { name "manual of armour" skills ARMOUR_HELMET skills ARMOUR_SHIELD skills ARMOUR_BODY skills ARMOUR_BOOTS } SPELLBOOK MATERIAL { name "guide to armour" skills ARMOUR_CLOTH skills ARMOUR_LEATHER skills ARMOUR_IRON skills ARMOUR_EXOTIC } SPELLBOOK ROGUE { name "manual of guile" skills DODGE skills MOVINGTARGET skills SEARCH skills EVADETRAP skills TWOWEAPON skills AMBIDEXTROUS skills WEAPON_RANGED skills WEAPON_IMPROVISE } SPELLBOOK BLADES { name "book of blades" skills WEAPON_SMALL skills WEAPON_MEDIUM skills WEAPON_EDGED skills WEAPON_TRUEAIM skills WEAPON_RANGED skills WEAPON_PARRY skills WEAPON_RIPOSTE } SPELLBOOK BASHING { name "book of bashing" skills WEAPON_SMALL skills WEAPON_MEDIUM skills WEAPON_LARGE skills WEAPON_BLUNT skills WEAPON_KNOCKOUT skills WEAPON_STUN skills WEAPON_KNOCKBACK } SPELLBOOK SHARPPOINTS { name "book of sharp points" skills WEAPON_SMALL skills WEAPON_MEDIUM skills WEAPON_LARGE skills WEAPON_RANGED skills WEAPON_POINTED skills WEAPON_BLEEDINGWOUND skills WEAPON_DISARM skills WEAPON_IMPALE skills WEAPON_RICOCHET } SPELLBOOK BARB { name "book of H'ruth" skills ENDUREHUNGER skills BUTCHERY skills CLEANKILL skills CHARGE skills LEAPATTACK } DEFINE STAFF { CST name "magic staff" ENMLIST intrinsic INTRINSIC NONE ENM cursechance CURSECHANCE NORMAL } STAFF HEALING { name "staff of healing" intrinsic SPELL_REGENERATE intrinsic SPELL_HEAL intrinsic SPELL_MAJORHEAL intrinsic SPELL_CUREPOISON intrinsic SPELL_SLOWPOISON } STAFF DEATH { name "staff of death" intrinsic SPELL_FINGEROFDEATH intrinsic SPELL_RAISE_UNDEAD intrinsic SPELL_RECLAIM_SOUL intrinsic SPELL_DARK_RITUAL intrinsic SPELL_GHASTIFY intrinsic SPELL_SUMMON_IMP intrinsic SPELL_CLOUDKILL } STAFF DESTRUCTION { name "staff of destruction" intrinsic SPELL_FIREBALL intrinsic SPELL_SUNFIRE intrinsic SPELL_CHAINLIGHTNING intrinsic SPELL_CORROSIVEEXPLOSION intrinsic SPELL_ACIDPOOL intrinsic SPELL_DISINTEGRATE } STAFF BOLT { name "staff of bolts" intrinsic SPELL_MAGICMISSILE intrinsic SPELL_FROSTBOLT intrinsic SPELL_LIGHTNINGBOLT intrinsic SPELL_POISONBOLT intrinsic SPELL_FORCEBOLT } STAFF UTILITY { name "utility staff" intrinsic SPELL_LIGHT intrinsic SPELL_KNOCK intrinsic SPELL_PRESERVE intrinsic SPELL_DETECTCURSE intrinsic SPELL_DIRECTWIND intrinsic SPELL_TELEPORT intrinsic SPELL_PETRIFY intrinsic SPELL_POSSESS } COMMENT { An ITEMTYPE is a general classification of items. This is used to bias rarity between different specific items. This is also used by polymorphing to keep objects inside the same class. ITEMTYPE_NONE and ITEMTYPE_ANY should not be applied to any items. They are meta-types used by the map definitions. ITMETYPE_ARTIFACT maps to ITEMTYPE_ANY, but makeArtifact will be immediately called. } DEFINE ITEMTYPE { CST name "miscelleneous" U8 rarity 100 } ITEMTYPE NONE { name "none" rarity 0 } ITEMTYPE ANY { name "any" rarity 0 } ITEMTYPE ARTIFACT { name "artifact" rarity 0 } ITEMTYPE AMULET { name "amulet" rarity 10 } ITEMTYPE STAFF { name "staff" rarity 5 } ITEMTYPE WEAPON { name "weapon" rarity 100 } ITEMTYPE ARMOUR { name "armour" rarity 100 } ITEMTYPE RING { name "ring" rarity 20 } ITEMTYPE SCROLL { name "scroll" rarity 50 } ITEMTYPE SPELLBOOK { name "book" rarity 10 } ITEMTYPE POTION { name "potion" rarity 100 } ITEMTYPE WAND { name "wand" rarity 50 } ITEMTYPE MISC { name "miscellaneous" rarity 100 } DEFINE ITEM { CST name "unnamed item!" ENM flag1 ITEMFLAG1 NONE ENM16 tile TILE VOID ENM material MATERIAL ETHEREAL U8 weight 1 S8 ac 0 U8 lightradius 0 ENM attack ATTACK MISUSED ENM thrownattack ATTACK MISTHROWN ENM minitile MINI NONE ENM magictype MAGICTYPE NONE ENMLIST intrinsic INTRINSIC NONE ENM cursechance CURSECHANCE NORMAL U8 rarity 100 ENM launcher ITEM NONE ENM itemtype ITEMTYPE MISC BOOL iscarryintrinsic false BOOL isquest false DICE stacksize 1 BOOL equipstack false ENM size SIZE SMALL ENM attackskill SKILL WEAPON_IMPROVISE ENM specialskill SKILL NONE U8 noise 0 } COMMENT { Here's a blank item template. ITEM { name tile material weight attack } } ITEM NONE { name "nothing" tile NOTILE rarity 0 } ITEM KNIFE { name "knife" tile KNIFE material IRON weight 2 attack KNIFE thrownattack KNIFETHROWN minitile KNIFE itemtype WEAPON size TINY attackskill WEAPON_EDGED specialskill WEAPON_TRUEAIM noise 0 } ITEM DAGGER { name "dagger" tile DAGGER material IRON weight 3 attack DAGGER thrownattack DAGGERTHROWN minitile DAGGER itemtype WEAPON size TINY attackskill WEAPON_POINTED specialskill WEAPON_BLEEDINGWOUND noise 0 } ITEM SILVERDAGGER { name "silver dagger" tile SILVERDAGGER material SILVER weight 3 attack DAGGER thrownattack DAGGERTHROWN minitile DAGGER itemtype WEAPON size SMALL attackskill WEAPON_POINTED specialskill WEAPON_BLEEDINGWOUND noise 0 } ITEM WARHAMMER { name "warhammer" tile WARHAMMER material IRON weight 3 attack WARHAMMER minitile WARHAMMER itemtype WEAPON size LARGE attackskill WEAPON_BLUNT specialskill WEAPON_KNOCKBACK noise 4 } ITEM EARTHHAMMER { name "earth hammer" tile EARTHHAMMER material STONE weight 3 attack EARTHHAMMER minitile EARTHHAMMER itemtype WEAPON size LARGE attackskill WEAPON_BLUNT specialskill WEAPON_KNOCKBACK noise 4 intrinsic DIG rarity 0 } ITEM SPEAR { name "spear" tile SPEAR material IRON weight 3 attack SPEAR thrownattack SPEARTHROWN minitile SPEAR itemtype WEAPON size LARGE attackskill WEAPON_POINTED specialskill WEAPON_IMPALE noise 3 } ITEM SILVERSPEAR { name "silver spear" tile SILVERSPEAR material SILVER weight 3 attack SPEAR thrownattack SPEARTHROWN minitile SPEAR itemtype WEAPON size LARGE attackskill WEAPON_POINTED specialskill WEAPON_IMPALE noise 3 } ITEM CLUB { name "club" tile CLUB material WOOD weight 4 attack CLUB minitile CLUB itemtype WEAPON size SMALL attackskill WEAPON_BLUNT specialskill WEAPON_KNOCKOUT noise 2 } ITEM SILVERSWORD { name "silver sword" tile SILVERSWORD material SILVER weight 8 attack LONGSWORD minitile SWORD itemtype WEAPON size MEDIUM attackskill WEAPON_EDGED specialskill WEAPON_PARRY noise 2 } ITEM SHORTSWORD { name "short sword" tile SHORTSWORD material IRON weight 7 attack SHORTSWORD minitile SHORTSWORD itemtype WEAPON size SMALL attackskill WEAPON_EDGED specialskill WEAPON_RIPOSTE noise 2 } ITEM LONGSWORD { name "long sword" tile LONGSWORD material IRON weight 7 attack LONGSWORD minitile SWORD itemtype WEAPON size MEDIUM attackskill WEAPON_EDGED specialskill WEAPON_PARRY noise 2 } ITEM RAPIER { name "rapier" tile RAPIER material IRON weight 4 attack RAPIER minitile RAPIER itemtype WEAPON size MEDIUM attackskill WEAPON_POINTED specialskill WEAPON_DISARM noise 1 } ITEM LIGHTNINGRAPIER { name "lightning rapier" tile LIGHTNINGRAPIER material IRON weight 4 attack LIGHTNINGRAPIER minitile LIGHTNINGRAPIER itemtype WEAPON rarity 0 size MEDIUM attackskill WEAPON_POINTED specialskill WEAPON_DISARM noise 2 } COMMENT { Note how I managed to find three different ways of saying flaming sword? For someone who bitches about consistency, I suck. } ITEM FLAMESWORD { name "flaming sword" tile FLAMINGSWORD material IRON weight 7 lightradius 2 attack FLAMING_SWORD minitile FLAMINGSWORD itemtype WEAPON rarity 0 size MEDIUM attackskill WEAPON_EDGED specialskill WEAPON_PARRY noise 3 } ITEM MACE { name "mace" tile MACE material IRON weight 6 attack MACE minitile MACE itemtype WEAPON size MEDIUM attackskill WEAPON_BLUNT specialskill WEAPON_STUN noise 3 } ITEM ICEMACE { name "ice mace" tile ICEMACE material IRON weight 6 attack ICEMACE minitile ICEMACE itemtype WEAPON rarity 0 size MEDIUM attackskill WEAPON_BLUNT specialskill WEAPON_STUN noise 3 } ITEM BOW { name "bow" tile BOW material WOOD weight 2 attack MISUSED_BUTWEAPON minitile BOW itemtype WEAPON size MEDIUM } ITEM ARROW { name "arrow" tile ARROW material WOOD weight 1 attack MISUSED_BUTWEAPON thrownattack ARROWTHROWN itemtype WEAPON launcher BOW stacksize 2d4 attackskill WEAPON_POINTED specialskill WEAPON_RICOCHET noise 0 equipstack true } ITEM FIREARROW { name "fire arrow" tile FIREARROW material WOOD weight 1 attack MISUSED_BUTWEAPON thrownattack FIREARROWTHROWN itemtype WEAPON launcher BOW stacksize 2d4 lightradius 1 attackskill WEAPON_POINTED specialskill WEAPON_RICOCHET noise 0 rarity 0 equipstack true } ITEM HAT { name "floppy hat" flag1 ISHELMET tile FLOPPYHAT material CLOTH weight 1 ac 2 minitile HAT itemtype ARMOUR noise 0 } ITEM LEATHERCAP { name "leather cap" flag1 ISHELMET tile LEATHERHELM material LEATHER weight 3 ac 4 minitile LEATHERHELM itemtype ARMOUR noise 0 } ITEM HELM { name "iron helm" flag1 ISHELMET tile HELM material IRON weight 4 ac 6 minitile HELM itemtype ARMOUR noise 1 } ITEM FEATHERHELM { name "feathered helm" flag1 ISHELMET tile FEATHEREDHELM material IRON weight 3 ac 6 minitile FEATHEREDHELM magictype HELM itemtype ARMOUR noise 1 } ITEM SILVERCIRCLET { name "silver circlet" flag1 ISHELMET tile SILVERCIRCLET material SILVER weight 1 ac 3 minitile SILVERCIRCLET magictype HELM itemtype ARMOUR noise 0 } ITEM GOLDCROWN { name "gold crown" flag1 ISHELMET tile GOLDCROWN material GOLD weight 10 ac 3 minitile GOLDCROWN magictype HELM itemtype ARMOUR noise 0 } ITEM SANDALS { name "sandals" flag1 ISBOOTS tile SANDAL material LEATHER weight 2 ac 3 minitile SANDALS itemtype ARMOUR noise 1 } ITEM HIKINGBOOTS { name "hiking boots" flag1 ISBOOTS tile BOOT material LEATHER weight 3 ac 5 minitile BOOTS itemtype ARMOUR magictype BOOTS noise 2 } ITEM IRONSHOES { name "iron shoes" flag1 ISBOOTS tile IRONSHOE material IRON weight 10 ac 7 minitile IRONSHOES itemtype ARMOUR noise 3 } ITEM WINGEDBOOTS { name "winged boots" flag1 ISBOOTS tile WINGEDBOOT material LEATHER weight 3 ac 4 minitile WINGEDBOOTS itemtype ARMOUR magictype BOOTS noise 2 } ITEM RIDINGBOOTS { name "riding boots" flag1 ISBOOTS tile RIDINGBOOT material LEATHER weight 3 ac 6 minitile RIDINGBOOTS itemtype ARMOUR magictype BOOTS noise 2 } ITEM POINTEDSLIPPERS { name "pointed slippers" flag1 ISBOOTS tile POINTEDSLIPPER material CLOTH weight 3 ac 1 minitile POINTEDSLIPPERS itemtype ARMOUR magictype BOOTS noise 0 } ITEM CLOGS { name "clogs" flag1 ISBOOTS tile CLOGS material WOOD weight 3 ac 4 minitile CLOGS itemtype ARMOUR magictype BOOTS noise 3 } ITEM WOODENSHIELD { name "wooden shield" flag1 ISSHIELD tile WOODENSHIELD material WOOD weight 3 ac 1 minitile WOODENSHIELD itemtype ARMOUR noise 1 size MEDIUM } ITEM BUCKLER { name "buckler" flag1 ISSHIELD tile BUCKLER material IRON weight 5 ac 1 minitile BUCKLER itemtype ARMOUR noise 2 size SMALL } ITEM ROUNDSHIELD { name "round shield" flag1 ISSHIELD tile SHIELD material IRON weight 8 ac 2 minitile ROUNDSHIELD itemtype ARMOUR noise 2 size MEDIUM } ITEM KITESHIELD { name "kite shield" flag1 ISSHIELD tile KITESHIELD material WOOD weight 10 ac 3 minitile REDSHIELD itemtype ARMOUR noise 3 size MEDIUM } ITEM TOWERSHIELD { name "tower shield" flag1 ISSHIELD tile TOWERSHIELD material IRON weight 20 ac 4 minitile TOWERSHIELD itemtype ARMOUR noise 4 size LARGE } ITEM REFLECTSHIELD { name "mirror shield" flag1 ISSHIELD tile MIRRORSHIELD material SILVER weight 15 ac 3 minitile MIRRORSHIELD intrinsic REFLECTION itemtype ARMOUR rarity 10 noise 3 size MEDIUM } ITEM TORCH { name "torch" flag1 ISSHIELD tile TORCH material WOOD weight 2 ac 0 minitile TORCH attack TORCH thrownattack TORCHTHROWN lightradius 3 size SMALL attackskill WEAPON_BLUNT noise 2 itemtype WEAPON } ITEM BLUEPOTION { name "blue potion" tile BLUEPOTION minitile POTION weight 1 material GLASS magictype POTION itemtype POTION thrownattack POTIONTHROWN equipstack true } ITEM REDPOTION { name "red potion" tile REDPOTION minitile POTION weight 1 material GLASS magictype POTION itemtype POTION thrownattack POTIONTHROWN equipstack true } ITEM PURPLEPOTION { name "purple potion" tile PURPLEPOTION minitile POTION weight 1 material GLASS magictype POTION itemtype POTION thrownattack POTIONTHROWN equipstack true } ITEM YELLOWPOTION { name "yellow potion" tile YELLOWPOTION minitile POTION weight 1 material GLASS magictype POTION itemtype POTION thrownattack POTIONTHROWN equipstack true } ITEM GREYPOTION { name "grey potion" tile GREYPOTION minitile POTION weight 1 material GLASS magictype POTION itemtype POTION thrownattack POTIONTHROWN equipstack true } ITEM WHITEPOTION { name "white potion" tile WHITEPOTION minitile POTION weight 1 material GLASS magictype POTION itemtype POTION thrownattack POTIONTHROWN equipstack true } ITEM BLACKPOTION { name "black potion" tile BLACKPOTION minitile POTION weight 1 material GLASS magictype POTION itemtype POTION thrownattack POTIONTHROWN equipstack true } ITEM CYANPOTION { name "cyan potion" tile CYANPOTION minitile POTION weight 1 material GLASS magictype POTION itemtype POTION thrownattack POTIONTHROWN equipstack true } ITEM GLOWINGPOTION { name "glowing potion" tile GLOWINGPOTION minitile POTION weight 1 lightradius 1 material GLASS magictype POTION itemtype POTION thrownattack POTIONTHROWN equipstack true } COMMENT { Unused potions: BROWNPOTION GREENPOTION } ITEM BLUESPELLBOOK { name "blue book" tile BLUESPELLBOOK minitile BOOK weight 1 material PAPER magictype SPELLBOOK itemtype SPELLBOOK } ITEM REDSPELLBOOK { name "red book" tile REDSPELLBOOK minitile BOOK weight 1 material PAPER magictype SPELLBOOK itemtype SPELLBOOK } ITEM LEATHERSPELLBOOK { name "leather book" tile LEATHERSPELLBOOK minitile BOOK weight 1 material LEATHER magictype SPELLBOOK itemtype SPELLBOOK } ITEM PURPLESPELLBOOK { name "purple book" tile PURPLESPELLBOOK minitile BOOK weight 1 material PAPER magictype SPELLBOOK itemtype SPELLBOOK } ITEM GREYSPELLBOOK { name "grey book" tile GREYSPELLBOOK minitile BOOK weight 1 material PAPER magictype SPELLBOOK itemtype SPELLBOOK } ITEM PLAIDSPELLBOOK { name "plaid book" tile PLAIDSPELLBOOK minitile BOOK weight 1 material PAPER magictype SPELLBOOK itemtype SPELLBOOK } ITEM BLACKSPELLBOOK { name "black book" tile BLACKSPELLBOOK minitile BOOK weight 1 material PAPER magictype SPELLBOOK itemtype SPELLBOOK } ITEM GOLDSPELLBOOK { name "gold book" tile GOLDSPELLBOOK minitile BOOK weight 1 material GOLD magictype SPELLBOOK itemtype SPELLBOOK } ITEM THINBLUESPELLBOOK { name "thin blue book" tile THINBLUESPELLBOOK minitile BOOK weight 1 material PAPER magictype SPELLBOOK itemtype SPELLBOOK } ITEM LOCKEDSPELLBOOK { name "locked book" tile LOCKEDSPELLBOOK minitile BOOK weight 1 material PAPER magictype SPELLBOOK itemtype SPELLBOOK } ITEM BLUERUNEDSPELLBOOK { name "runed blue book" tile BLUERUNEDSPELLBOOK minitile BOOK weight 1 material PAPER magictype SPELLBOOK itemtype SPELLBOOK } ITEM REDRUNEDSPELLBOOK { name "runed red book" tile REDRUNEDSPELLBOOK minitile BOOK weight 1 material PAPER magictype SPELLBOOK itemtype SPELLBOOK } ITEM LEATHERRUNEDSPELLBOOK { name "runed leather book" tile LEATHERRUNEDSPELLBOOK minitile BOOK weight 1 material LEATHER magictype SPELLBOOK itemtype SPELLBOOK } ITEM GREYRUNEDSPELLBOOK { name "runed grey book" tile GREYRUNEDSPELLBOOK minitile BOOK weight 1 material PAPER magictype SPELLBOOK itemtype SPELLBOOK } ITEM WHITESPELLBOOK { name "white book" tile WHITESPELLBOOK minitile BOOK weight 1 material PAPER magictype SPELLBOOK itemtype SPELLBOOK } ITEM GLASSSPELLBOOK { name "glass book" tile GLASSSPELLBOOK minitile BOOK weight 1 material GLASS magictype SPELLBOOK itemtype SPELLBOOK } ITEM BLOODYSPELLBOOK { name "bloody book" tile BLOODYSPELLBOOK minitile BOOK weight 1 material FLESH magictype SPELLBOOK itemtype SPELLBOOK } ITEM THINREDSPELLBOOK { name "thin red book" tile THINREDSPELLBOOK minitile BOOK weight 1 material PAPER magictype SPELLBOOK itemtype SPELLBOOK } COMMENT { ## Unused spell books... ITEM THINLEATHERSPELLBOOK { name "thin leather book" tile THINLEATHERSPELLBOOK minitile BOOK weight 1 material LEATHER magictype SPELLBOOK itemtype SPELLBOOK } ITEM THINPURPLESPELLBOOK { name "thin purple book" tile THINPURPLESPELLBOOK minitile BOOK weight 1 material PAPER magictype SPELLBOOK itemtype SPELLBOOK } ITEM THINGREYSPELLBOOK { name "thin grey book" tile THINGREYSPELLBOOK minitile BOOK weight 1 material PAPER magictype SPELLBOOK itemtype SPELLBOOK } ITEM THINPLAIDSPELLBOOK { name "thin plaid book" tile THINPLAIDSPELLBOOK minitile BOOK weight 1 material PAPER magictype SPELLBOOK itemtype SPELLBOOK } ## ENd unused books. } COMMENT { Unused books: THINBLACKSPELLBOOK THINGOLDSPELLBOOK } ITEM WOODENSTAFF { name "wooden staff" tile WOODENSTAFF minitile STAFF attack WOODENSTAFF weight 5 material WOOD magictype STAFF itemtype STAFF size LARGE attackskill WEAPON_BLUNT noise 3 } ITEM IRONSHODSTAFF { name "iron-shod staff" tile IRONSHODSTAFF minitile STAFF attack IRONSHODSTAFF weight 5 material WOOD magictype STAFF itemtype STAFF size LARGE attackskill WEAPON_BLUNT noise 4 } ITEM CROOK { name "crook" tile HOOKEDSTAFF minitile STAFF attack WOODENSTAFF weight 5 material WOOD magictype STAFF itemtype STAFF size LARGE attackskill WEAPON_BLUNT noise 3 } ITEM GNARLYSTAFF { name "gnarly staff" tile GNARLEDSTAFF minitile STAFF attack WOODENSTAFF weight 5 material WOOD magictype STAFF itemtype STAFF size LARGE attackskill WEAPON_BLUNT noise 3 } ITEM BEJEWELEDSTAFF { name "bejeweled staff" tile BEJEWELEDSTAFF minitile STAFF attack WOODENSTAFF weight 5 material WOOD magictype STAFF itemtype STAFF size LARGE attackskill WEAPON_BLUNT noise 3 } ITEM WATER { name "bottle of water" tile CLEARPOTION minitile POTION weight 1 material GLASS itemtype POTION thrownattack POTIONTHROWN equipstack true } ITEM BOTTLE { name "empty bottle" tile BOTTLE minitile POTION weight 1 material GLASS itemtype MISC thrownattack POTIONTHROWN cursechance ALWAYSMUNDANE equipstack true } ITEM ROBE { name "plain robe" tile BLUEROBE weight 4 flag1 ISJACKET ac 1 minitile BLUEROBE material CLOTH itemtype ARMOUR size MEDIUM noise 0 } ITEM LEATHERTUNIC { name "leather tunic" tile LEATHERTUNIC weight 8 flag1 ISJACKET ac 2 minitile LEATHERTUNIC material LEATHER itemtype ARMOUR size MEDIUM noise 1 } ITEM STUDDEDLEATHER { name "studded leather tunic" tile STUDDEDTUNIC weight 10 flag1 ISJACKET ac 3 minitile STUDDEDTUNIC material LEATHER itemtype ARMOUR size MEDIUM noise 1 } ITEM CHAINMAIL { name "chainmail" tile CHAINTUNIC weight 10 flag1 ISJACKET ac 4 minitile CHAINTUNIC material IRON itemtype ARMOUR size MEDIUM noise 2 } ITEM MITHRILMAIL { name "mithril chainmail" tile CHAINTUNIC weight 5 flag1 ISJACKET ac 5 minitile CHAINTUNIC material MITHRIL itemtype ARMOUR size MEDIUM noise 2 } ITEM BANDEDMAIL { name "banded mail" tile CHAINTUNIC weight 15 flag1 ISJACKET ac 6 minitile CHAINTUNIC material IRON itemtype ARMOUR size MEDIUM noise 3 } ITEM SPLINTMAIL { name "splint mail" tile CHAINTUNIC weight 15 flag1 ISJACKET ac 6 minitile CHAINTUNIC material IRON itemtype ARMOUR size MEDIUM noise 3 } ITEM PLATEMAIL { name "plate mail" tile PLATETUNIC weight 20 flag1 ISJACKET ac 7 minitile PLATEMAIL material IRON itemtype ARMOUR size MEDIUM noise 4 } ITEM CRYSTALPLATE { name "crystal platemail" tile GLASSTUNIC weight 15 flag1 ISJACKET ac 7 minitile CRYSTALPLATE material GLASS itemtype ARMOUR size MEDIUM noise 4 } ITEM BOULDER { name "boulder" tile BOULDER weight 200 material STONE itemtype MISC flag1 ISBLOCKING rarity 0 size HUGE } ITEM MOUNDFLESH { name "mound of flesh" tile MOUNDFLESH weight 200 material FLESH itemtype MISC rarity 0 size HUGE } ITEM ROCK { name "rock" attack MISUSED_BUTWEAPON thrownattack ROCKTHROWN tile ROCK weight 10 material STONE itemtype MISC rarity 10 stacksize 2d2-1 attackskill WEAPON_BLUNT noise 1 size TINY equipstack true } ITEM MEATBALL { name "meatball" tile MEATBALL weight 10 material FLESH itemtype MISC rarity 0 size TINY equipstack true } ITEM WOODENRING { name "wooden ring" material WOOD magictype RING tile WOODENRING weight 1 flag1 ISRING itemtype RING thrownattack RINGTHROWN size TINY } ITEM SILVERRING { name "silver ring" material SILVER magictype RING tile SILVERRING weight 1 flag1 ISRING itemtype RING thrownattack RINGTHROWN size TINY } ITEM IRONRING { name "iron ring" material IRON magictype RING tile IRONRING weight 1 flag1 ISRING itemtype RING thrownattack RINGTHROWN size TINY } ITEM GLASSRING { name "glass ring" material GLASS magictype RING tile GLASSRING weight 1 flag1 ISRING itemtype RING thrownattack RINGTHROWN size TINY } ITEM RUBYRING { name "ruby ring" material GOLD magictype RING tile RUBYRING weight 1 flag1 ISRING itemtype RING thrownattack RINGTHROWN size TINY } ITEM EMERALDRING { name "emerald ring" material GOLD magictype RING tile EMERALDRING weight 1 flag1 ISRING itemtype RING thrownattack RINGTHROWN size TINY } ITEM SAPPHIRERING { name "sapphire ring" material GOLD magictype RING tile SAPPHIRERING weight 1 flag1 ISRING itemtype RING thrownattack RINGTHROWN size TINY } ITEM GOLDRING { name "gold ring" material GOLD magictype RING tile GOLDRING weight 1 flag1 ISRING itemtype RING thrownattack RINGTHROWN size TINY } ITEM AMETHYSTRING { name "amethyst ring" material GOLD magictype RING tile AMETHYSTRING weight 1 flag1 ISRING itemtype RING thrownattack RINGTHROWN size TINY } ITEM DIAMONDRING { name "diamond ring" material GOLD magictype RING tile DIAMONDRING weight 1 flag1 ISRING itemtype RING thrownattack RINGTHROWN size TINY } ITEM MOBIUSRING { name "mobius ring" material IRON magictype RING tile MOBIUSRING weight 1 flag1 ISRING itemtype RING thrownattack RINGTHROWN size TINY } ITEM STONERING { name "stone ring" material STONE magictype RING tile STONERING weight 1 flag1 ISRING itemtype RING thrownattack RINGTHROWN size TINY } ITEM AQUAMARINERING { name "aquamarine ring" material GOLD magictype RING tile AQUAMARINERING weight 1 flag1 ISRING itemtype RING thrownattack RINGTHROWN size TINY } ITEM JADERING { name "jade ring" material STONE magictype RING tile JADERING weight 1 flag1 ISRING itemtype RING thrownattack RINGTHROWN size TINY } ITEM ONYXRING { name "onyx ring" material GOLD magictype RING tile ONYXRING weight 1 flag1 ISRING itemtype RING thrownattack RINGTHROWN size TINY } ITEM PEARLNECKLACE { name "pearl necklace" material STONE magictype AMULET tile PEARLNECKLACE minitile PEARLNECKLACE weight 2 ac 2 flag1 ISAMULET itemtype AMULET noise 2 } ITEM GOLDNECKLACE { name "gold necklace" material GOLD magictype AMULET tile GOLDNECKLACE minitile GOLDNECKLACE weight 2 ac 4 flag1 ISAMULET itemtype AMULET noise 3 } ITEM RUBYNECKLACE { name "ruby necklace" material GOLD magictype AMULET tile RUBYNECKLACE minitile RUBYNECKLACE weight 2 ac 4 flag1 ISAMULET itemtype AMULET noise 1 } ITEM IRONTORC { name "iron torc" material IRON magictype AMULET tile IRONTORC minitile IRONTORC ac 7 weight 2 flag1 ISAMULET itemtype AMULET noise 1 } ITEM STUDDEDGORGET { name "studded leather gorget" material LEATHER magictype AMULET tile STUDDEDGORGET minitile STUDDEDGORGET ac 5 weight 2 flag1 ISAMULET itemtype AMULET noise 0 } ITEM WOODENWAND { name "wooden wand" material WOOD magictype WAND tile WOODENWAND minitile WAND weight 1 itemtype WAND } ITEM GLASSWAND { name "glass wand" material GLASS magictype WAND tile GLASSWAND minitile WAND weight 1 itemtype WAND } ITEM SILVERWAND { name "silver wand" material SILVER magictype WAND tile SILVERWAND minitile WAND weight 1 itemtype WAND } ITEM IRONWAND { name "iron wand" material IRON magictype WAND tile IRONWAND minitile WAND weight 1 itemtype WAND } ITEM CURVEDWAND { name "curved wand" material WOOD magictype WAND tile CURVEDWAND minitile WAND weight 1 itemtype WAND } ITEM FORKEDWAND { name "forked wand" material WOOD magictype WAND tile FORKEDWAND minitile WAND weight 1 itemtype WAND } ITEM JEWELEDWAND { name "jeweled wand" material WOOD magictype WAND tile JEWELEDWAND minitile WAND weight 1 itemtype WAND } ITEM TWISTEDWAND { name "twisted wand" material WOOD magictype WAND tile TWISTEDWAND minitile WAND weight 1 itemtype WAND } ITEM PURPLEWAND { name "purple wand" material WOOD magictype WAND tile PURPLEWAND minitile WAND weight 1 itemtype WAND } ITEM JADEWAND { name "jade wand" material STONE magictype WAND tile JADEWAND minitile WAND weight 1 itemtype WAND } ITEM GEMENCRUSTEDWAND { name "gem encrusted wand" material WOOD magictype WAND tile GEMENCRUSTEDWAND minitile WAND weight 1 itemtype WAND } ITEM STONEWAND { name "stone wand" material STONE magictype WAND tile STONEWAND minitile WAND weight 1 itemtype WAND } ITEM GOLDWAND { name "gold wand" material GOLD magictype WAND tile GOLDWAND minitile WAND weight 1 itemtype WAND } COMMENT { Wands still unused: REDWAND BLUEWAND } ITEM SCROLL_FOOBAR { name "scroll of FOOBAR" material PAPER weight 1 tile SCROLL minitile SCROLL magictype SCROLL itemtype SCROLL } ITEM SCROLL_README { name "scroll of READ ME" material PAPER weight 1 tile SCROLL minitile SCROLL magictype SCROLL itemtype SCROLL } ITEM SCROLL_KARMA { name "scroll of KARMA" material PAPER weight 1 tile SCROLL minitile SCROLL magictype SCROLL itemtype SCROLL } ITEM SCROLL_REDWOP { name "scroll of REDWOP" material PAPER weight 1 tile SCROLL minitile SCROLL magictype SCROLL itemtype SCROLL } ITEM SCROLL_FOLLORCS { name "scroll of FOL LORCS" material PAPER weight 1 tile SCROLL minitile SCROLL magictype SCROLL itemtype SCROLL } ITEM SCROLL_BEWARE { name "scroll of ERAWEB" material PAPER weight 1 tile SCROLL minitile SCROLL magictype SCROLL itemtype SCROLL } ITEM SCROLL_ANCIENTRUNES { name "scroll of ANCIENT RUNES" material PAPER weight 1 tile SCROLL minitile SCROLL magictype SCROLL itemtype SCROLL } ITEM SCROLL_QUIZAR { name "scroll of QUIZAR" material PAPER weight 1 tile SCROLL minitile SCROLL magictype SCROLL itemtype SCROLL } ITEM SCROLL_XYZZY { name "scroll of XYZZY" material PAPER weight 1 tile SCROLL minitile SCROLL magictype SCROLL itemtype SCROLL } ITEM SCROLL_ATARI { name "scroll of ATARI" material PAPER weight 1 tile SCROLL minitile SCROLL magictype SCROLL itemtype SCROLL } COMMENT { ### Unused scrolls. ### End unused scrolls. } ITEM BLACKHEART { name "Baezl'bub's black heart" tile BLACKHEART weight 20 material FLESH itemtype MISC rarity 0 intrinsic TELEFIXED iscarryintrinsic 1 cursechance ALWAYSCURSE isquest 1 } ITEM YRUNE { name "glowing y-rune" tile YRUNE weight 5 material STONE itemtype MISC rarity 0 isquest 1 lightradius 1 } COMMENT { CORPSE and BONES items are normally chained to a MOB so we know who should be resurrected if the appropriate spell is cast. } ITEM CORPSE { name "corpse" tile CORPSE material FLESH weight 50 rarity 0 } ITEM BONES { name "bones" tile BONES material FLESH weight 20 rarity 0 } ITEM STATUE { name "statue" tile STATUE material STONE weight 200 rarity 0 size LARGE } ITEM MINDACIDHAND { name "mind acid" tile MINDACIDHAND minitile MINDACIDHAND material ETHEREAL weight 0 rarity 0 cursechance ALWAYSCURSE attack MINDACID noise 0 attackskill WEAPON_IMPROVISE size SMALL } COMMENT { Item slot sets are descriptions of what itemslots are possible for each creature. They also list the proper name for the bodypart. 0 means the slot isn't present. A name means it is present and should use that name. } DEFINE ITEMSLOTSET { CST head_name 0 CST neck_name 0 CST rhand_name 0 CST lhand_name 0 CST body_name 0 CST rring_name 0 CST lring_name 0 CST feet_name 0 } ITEMSLOTSET NONE { } ITEMSLOTSET HUMANOID { head_name "head" neck_name "neck" rhand_name "right hand" lhand_name "left hand" body_name "body" rring_name "right finger" lring_name "left finger" feet_name "feet" } ITEMSLOTSET TREE { head_name "crown" rhand_name "right branch" lhand_name "left branch" body_name "trunk" rring_name "right twig" lring_name "left twig" feet_name "roots" } ITEMSLOTSET BRAIN { head_name "media corpus" neck_name "brain stem" rhand_name "right tentacle" lhand_name "left tentacle" } ITEMSLOTSET FIREELEMENTAL { head_name "smoke" rhand_name "right flame" lhand_name "left flame" body_name "reaction zone" } ITEMSLOTSET HEADLESS { rhand_name "right hand" lhand_name "left hand" body_name "body" rring_name "right finger" lring_name "left finger" feet_name "feet" } ITEMSLOTSET HEADONLY { head_name "head" } ITEMSLOTSET ANIMAL { head_name "head" neck_name "neck" rhand_name "right paw" lhand_name "left paw" rring_name "right claw" lring_name "left claw" } ITEMSLOTSET SNAKE { head_name "head" neck_name "body" rring_name "tail tip" } ITEMSLOTSET LUX { head_name "lamp-shade" rring_name "cord" } ITEMSLOTSET SLUG { head_name "head" neck_name "neck" rhand_name "radula" rring_name "right antenna" lring_name "left antenna" } ITEMSLOTSET INSECT { head_name "head" neck_name "neck" rhand_name "right mandible" lhand_name "left mandible" rring_name "right claw" lring_name "left claw" } ITEMSLOTSET HUMANOID_ARMOURLESS { head_name "head" neck_name "neck" rhand_name "right hand" lhand_name "left hand" rring_name "right finger" lring_name "left finger" feet_name "feet" } ITEMSLOTSET HUMANOID_HUGE { head_name "head" rhand_name "right hand" lhand_name "left hand" rring_name "right finger" lring_name "left finger" } ITEMSLOTSET BIRD { head_name "head" neck_name "neck" rhand_name "right wing" lhand_name "left wing" rring_name "right toe-claw" lring_name "left toe-claw" } ITEMSLOTSET WINGLESS_BIRD { head_name "head" neck_name "neck" rring_name "right toe-claw" lring_name "left toe-claw" } COMMENT { These are the 8 inventory slots for worn items. desc1 & desc2 - two line, 4 char each line, description of slot. tile - tile to use when slot is empty. preposition - "on head" versus "in hand" bodypart - where this slot corresponds to. areaweight - Amount this slot contributes to AC, 0..100 Actual values are hardcoded in rollAC, and depend on other factors, but this is used for adhoc measures. posx, posy - Pixel coordinates of "home" of this tile. } DEFINE ITEMSLOT { CST desc1 "" CST desc2 "" CST preposition "on" CST bodypart "" ENM16 tile TILE EMPTYSLOT U8 areaweight 0 U8 posx 0 U8 posy 0 bool flipx false bool flipy false } ITEMSLOT HEAD { desc1 "Head" preposition "on" bodypart "head" areaweight 20 posx 7 posy 2 } ITEMSLOT AMULET { desc1 "Neck" preposition "around" bodypart "neck" areaweight 5 posx 7 posy 5 } ITEMSLOT RHAND { desc1 "Main" desc2 "Hand" preposition "in" bodypart "right hand" areaweight 0 posx 13 posy 7 } ITEMSLOT LHAND { desc1 "Off" desc2 "Hand" preposition "in" bodypart "left hand" areaweight 50 posx 13 posy 7 flipx true } ITEMSLOT BODY { desc1 "Body" preposition "over" bodypart "body" areaweight 55 posx 7 posy 8 } ITEMSLOT RRING { desc1 "Rght" desc2 "Ring" preposition "on" bodypart "right finger" posx 13 posy 7 } ITEMSLOT LRING { desc1 "Left" desc2 "Ring" preposition "on" bodypart "left finger" posx 2 posy 6 } ITEMSLOT FEET { desc1 "Feet" preposition "on" bodypart "feet" areaweight 20 posx 7 posy 13 } COMMENT { MAINMENU are entries of the main menu } DEFINE MAINMENU { CST name "No Choice" } MAINMENU NONE MAINMENU NEWGAME { name "New Game" } MAINMENU TUTORIAL { name "Tutorial" } MAINMENU VIEWSCORES { name "View Scores" } MAINMENU LOAD { name "Load" } MAINMENU OPTIONS { name "Options" } MAINMENU QUIT { name "Quit" } MAINMENU SAVESCUM { name "Save Scum" } MAINMENU STRESSTEST { name "Stress Test" } MAINMENU UNLOCK { name "Unlock" } COMMENT { Options are entries of the options menu^ } DEFINE OPTION { } OPTION NONE OPTION HELP OPTION LOAD OPTION SAVE OPTION QUIT OPTION BUTTONS OPTION TILES OPTION OPACITY OPTION FONTS OPTION AUTOPROMPT OPTION SAFEWALK OPTION ACTIONBAR OPTION COLOUREDFONTS OPTION CHARDUMP OPTION KNOWNITEMS OPTION DEBUGINFO OPTION COLLAPSE OPTION DEFAULTS OPTION FULLSCREEN OPTION UNLOCKING COMMENT { Actions are the various choices that can be made from the built in menus. We can thus use a list of a possible actions to look up into this table and generate the action list. } DEFINE ACTION { CST name "UNKNOWN" CST hint "?" ENM tile SPRITE UNUSED } ACTION NONE { name "none" hint "~" tile UNUSED } ACTION EQUIP { name "Equip" hint "e" tile EQUIP } ACTION DEQUIP { name "Unequip" hint "u" tile DEQUIP } ACTION DROP { name "Drop" hint "d" tile DROP } ACTION EAT { name "Eat" hint "e" tile EAT } ACTION BREATHE { name "Breathe" hint "b" tile BREATHE } ACTION WALK { name "Walk" hint "W" tile WALK } ACTION MOVE { name "Move" hint "W" tile WALK } ACTION RELEASE { name "Release" hint "q" tile RELEASE } ACTION QUAFF { name "Quaff" hint "q" tile QUAFF } ACTION READ { name "Read" hint "r" tile READ } ACTION FORGET { name "Forget" hint "F" tile FORGET } ACTION FIRE { name "Fire" hint "f" tile FIRE } ACTION QUIVER { name "Quiver" hint "q" tile QUIVER } ACTION FAVORITE { name "Favorite" hint "f" tile WISH } ACTION DIP { name "Dip" hint "!" tile DIP } ACTION OPEN { name "Open" hint "o" tile OPEN } ACTION CLOSE { name "Close" hint "c" tile CLOSE } ACTION HISTORY { name "History" hint "H" tile HISTORY } ACTION LOCK { name "Lock" hint "L" } ACTION CLIMB { name "Climb" hint "<" tile CLIMB } ACTION PICKUP { name "Pick Up" hint "," tile PICKUP } ACTION SWAP { name "Swap" hint "S" tile SWAP } ACTION SEARCH { name "Search" hint "s" tile SEARCH } ACTION WAIT { name "Wait" hint "w" tile WAIT } ACTION LOOK { name "Look" hint "l" tile LOOK } ACTION ZAP { name "Zap" hint "z" tile ZAP } ACTION OPTIONS { name "Options" hint "O" tile OPTIONS } ACTION HELP { name "Help" hint "?" tile HELP } ACTION USE { name "Use" hint "u" } ACTION JUMP { name "Jump" hint "j" tile JUMP } ACTION THROW { name "Throw" hint "t" tile FIRE } ACTION NAME { name "Name" hint "n" tile NAME } ACTION COMMAND { name "Command" hint "C" tile COMMAND } ACTION MINIMAP { name "MiniMap" hint "M" tile MINIMAP } ACTION SORT { name "Sort" hint "S" tile SORT } ACTION SPLITSTACK { name "Split" hint "S" tile SPLITSTACK } ACTION PRAY { name "Pray" hint "P" tile PRAY } ACTION EXAMINE { name "Examine" hint "x" tile LOOK } ACTION SLEEP { name "Sleep" hint "R" tile SLEEP } ACTION INVENTORY { name "Inventory" hint "i" tile INVENTORY } ACTION VERBLIST { name "Command Menu" hint "V" tile VERBLIST } ACTION WISH { name "Wish" hint "W" tile WISH } ACTION SAFEWALK { name "SafeWalk" hint "W" tile WALK } ACTION RUN { name "Run" hint "r" tile WALK } COMMENT { There is one facet of godhood representing each class. One pledges allegiance to one of these when one chooses a class. Each god has a mob associated with it that allows messages, etc, to properly credit the god. } DEFINE GOD { CST name "One True God" CST classname "Worshiper" U8 mental 0 U8 physical 0 ENM mob MOB NONE CST whimofxom "><0|V| is bored. " } GOD AGNOSTIC { name "no one god" classname "adventurer" whimofxom "><0|V| rolls to disbelieve... And fails! " mental 1 physical 1 } GOD FIGHTER { name "Klaskov" classname "fighter" whimofxom "><0|V| yearns for metal crashing on metal. " mental 0 physical 3 mob GOD_KLASKOV } MOB GOD_KLASKOV { name "Klaskov" rarity 0 mobtype GOD } GOD WIZARD { name "Belweir" classname "wizard" whimofxom "><0|V| would like to see some parlour tricks. " mental 3 physical 0 mob GOD_BELWEIR } MOB GOD_BELWEIR { name "Belweir" rarity 0 mobtype GOD } GOD ROGUE { name "Quizar" classname "rogue" whimofxom "><0|V| hides his desires from you. " mental 1 physical 2 mob GOD_QUIZAR } MOB GOD_QUIZAR { name "Quizar" rarity 0 mobtype GOD } GOD NECRO { name "Tlosh" classname "necromancer" whimofxom "><0|V| wishes for death and decay. " mental 2 physical 1 mob GOD_TLOSH } MOB GOD_TLOSH { name "Tlosh" rarity 0 mobtype GOD } GOD BARB { name "H'ruth" classname "barbarian" whimofxom "><0|V| thirsts for BLOOD! " mental 0 physical 4 mob GOD_HRUTH } MOB GOD_HRUTH { name "H'ruth" rarity 0 mobtype GOD } GOD CLERIC { name "Pax" classname "cleric" whimofxom "><0|V| wants you to stop breaking things. " mental 2 physical 2 mob GOD_PAX } MOB GOD_PAX { name "Pax" rarity 0 mobtype GOD } GOD CULTIST { name "><0|V|" classname "cultist" whimofxom "><0|V| desires what ><0|V| desires. " mob GOD_XOM } MOB GOD_XOM { name "><0|V|" rarity 0 mobtype GOD } COMMENT { Punishments are the justice meeted by disgruntled gods. } DEFINE PUNISH { U16 points 0 ENMLIST god GOD AGNOSTIC } PUNISH FLAMESTRIKE { points 100 god CLERIC god WIZARD god ROGUE god NECRO god CULTIST } PUNISH SUMMON { points 50 god FIGHTER god ROGUE god NECRO god BARB god CULTIST } PUNISH CURSE_WORN { points 50 god CLERIC god WIZARD god ROGUE god NECRO god CULTIST } PUNISH CURSE_ANY { points 20 god FIGHTER god CLERIC god WIZARD god ROGUE god NECRO god BARB god CULTIST } PUNISH DISENCHANT_WEAPON { points 100 god FIGHTER god ROGUE god BARB god CULTIST } PUNISH DISENCHANT_ARMOUR { points 100 god FIGHTER god ROGUE god BARB god CULTIST } PUNISH POISON { points 50 god FIGHTER god CLERIC god WIZARD god ROGUE god NECRO god BARB god CULTIST } PUNISH PARALYSE { points 30 god FIGHTER god ROGUE god BARB god CULTIST } PUNISH SLEEP { points 50 god CLERIC god WIZARD god NECRO god CULTIST } PUNISH MANADRAIN { points 30 god WIZARD god CLERIC god NECRO god CULTIST } PUNISH POLY { points 100 god CLERIC god FIGHTER god WIZARD god CULTIST } PUNISH POLYWEAPON { points 200 god CULTIST } DEFINE BOON { U16 points 0 ENMLIST god GOD AGNOSTIC ENM gifttype ITEMTYPE ANY U8 isrescue 0 } COMMENT { Generic god list: god CLERIC god CULTIST god BARB god NECRO god ROGUE god WIZARD god FIGHTER } BOON LICHFORM { points 150 god NECRO god CULTIST } BOON SURROUNDATTACK { points 200 god BARB god CULTIST } BOON UNCURSE { points 20 god CLERIC god CULTIST god BARB god ROGUE god WIZARD god FIGHTER } BOON HEAL { points 20 isrescue 1 god CLERIC god CULTIST god BARB god ROGUE god FIGHTER } BOON CURE { points 20 isrescue 1 god CLERIC god CULTIST god BARB god ROGUE god WIZARD god FIGHTER } BOON UNSTONE { points 20 isrescue 1 god CLERIC god CULTIST god BARB god ROGUE god WIZARD god FIGHTER } BOON SANCTIFY { points 20 god CLERIC god CULTIST } BOON ENCHANT_WEAPON { points 200 god CULTIST god BARB god NECRO god ROGUE god FIGHTER } BOON ENCHANT_ARMOUR { points 200 god CULTIST god NECRO god ROGUE god FIGHTER } BOON GRANT_SPELL { points 200 god WIZARD god CULTIST } BOON GIFT_WEAPON { points 200 god CULTIST god FIGHTER god BARB gifttype WEAPON } BOON GIFT_ARMOUR { points 200 god CULTIST god FIGHTER gifttype ARMOUR } BOON GIFT_WAND { points 200 god ROGUE god WIZARD gifttype WAND } BOON GIFT_SPELLBOOK { points 200 god WIZARD gifttype SPELLBOOK } BOON GIFT_STAFF { points 200 god WIZARD gifttype STAFF } BOON IDENTIFY { points 200 god ROGUE god WIZARD } DEFINE HELP { CST menu "Of Little Help" } HELP NONE { menu "No Help" } HELP POWDER { menu "POWDER" } HELP KEYBOARD { menu "Keyboard" } HELP GAMEBOY { menu "Buttons" } HELP STYLUS { menu "Stylus" } HELP TOUCH { menu "Touch" } HELP STATUSLINE { menu "Status Line" } HELP SPELL { menu "Spells" } HELP SKILL { menu "Skills" } HELP GOD { menu "Gods" } HELP DEATH { menu "Death" } HELP POWDER_LOCKED { menu "POWDER" } DEFINE MAGICDOOR { } MAGICDOOR NOTENOUGHDOORS MAGICDOOR NOITEMS MAGICDOOR INSUFFICIENTITEMS MAGICDOOR SUCCESS DEFINE SENSE { } SENSE NONE SENSE SIGHT SENSE HEAR SENSE ESP SENSE WARN DEFINE SIGNPOST { } SIGNPOST NONE SIGNPOST LOOK SIGNPOST WELCOME SIGNPOST MINIMAP SIGNPOST BOULDER SIGNPOST MELEE SIGNPOST INVENTORY SIGNPOST PICKUP SIGNPOST DOOR SIGNPOST USE SIGNPOST WATER SIGNPOST SPELLS SIGNPOST SEARCH SIGNPOST DIP SIGNPOST QUIVER SIGNPOST DARK SIGNPOST DRAGONS SIGNPOST WONTUTORIAL SIGNPOST KIWI SIGNPOST WON COMMENT { These matching aliases of the signpost are for the sake of the encyclopedia. You must keep them up to date and in order! } DEFINE SIGNPOST_GBA { } SIGNPOST_GBA NONE SIGNPOST_GBA LOOK SIGNPOST_GBA WELCOME SIGNPOST_GBA MINIMAP SIGNPOST_GBA BOULDER SIGNPOST_GBA MELEE SIGNPOST_GBA INVENTORY SIGNPOST_GBA PICKUP SIGNPOST_GBA DOOR SIGNPOST_GBA USE SIGNPOST_GBA WATER SIGNPOST_GBA SPELLS SIGNPOST_GBA SEARCH SIGNPOST_GBA DIP SIGNPOST_GBA QUIVER SIGNPOST_GBA DARK SIGNPOST_GBA DRAGONS SIGNPOST_GBA WONTUTORIAL SIGNPOST_GBA KIWI SIGNPOST_GBA WON DEFINE SIGNPOST_SDL { } SIGNPOST_SDL NONE SIGNPOST_SDL LOOK SIGNPOST_SDL WELCOME SIGNPOST_SDL MINIMAP SIGNPOST_SDL BOULDER SIGNPOST_SDL MELEE SIGNPOST_SDL INVENTORY SIGNPOST_SDL PICKUP SIGNPOST_SDL DOOR SIGNPOST_SDL USE SIGNPOST_SDL WATER SIGNPOST_SDL SPELLS SIGNPOST_SDL SEARCH SIGNPOST_SDL DIP SIGNPOST_SDL QUIVER SIGNPOST_SDL DARK SIGNPOST_SDL DRAGONS SIGNPOST_SDL WONTUTORIAL SIGNPOST_SDL KIWI SIGNPOST_SDL WON DEFINE SIGNPOST_iPOWDER { } SIGNPOST_iPOWDER NONE SIGNPOST_iPOWDER LOOK SIGNPOST_iPOWDER WELCOME SIGNPOST_iPOWDER MINIMAP SIGNPOST_iPOWDER BOULDER SIGNPOST_iPOWDER MELEE SIGNPOST_iPOWDER INVENTORY SIGNPOST_iPOWDER PICKUP SIGNPOST_iPOWDER DOOR SIGNPOST_iPOWDER USE SIGNPOST_iPOWDER WATER SIGNPOST_iPOWDER SPELLS SIGNPOST_iPOWDER SEARCH SIGNPOST_iPOWDER DIP SIGNPOST_iPOWDER QUIVER SIGNPOST_iPOWDER DARK SIGNPOST_iPOWDER DRAGONS SIGNPOST_iPOWDER WONTUTORIAL SIGNPOST_iPOWDER KIWI SIGNPOST_iPOWDER WON DEFINE BRANCH { U8 symbol '>' CST welcome "%U in the order of the stick." } BRANCH NONE { symbol ' ' welcome "%U into the abyss." } BRANCH MAIN { symbol '\\207' welcome "%U to the main dungeon." } BRANCH TRIDUDE { symbol '\\211' welcome "%U a cave made of metal." } DEFINE TALK { } TALK NONE TALK ELDER