-+-+-+-+-+-+-+-+ START OF PART 76 -+-+-+-+-+-+-+-+ X vowel_set := `5B'a','e','i','o','u','A','E','I','O','U'`5D; X X X`20 X`7B Creatures must be defined here. See TYPES.INC under creature_type for a X complete list of all variables for creatures. Some of the less obvious X are explained below. X`20 X Hit points: '#1d#2' where #2 is the range of each roll and X #1 is the number of added up rolls to make. X Example: a creature with 5 eight-sided hit die X is given '5d8'. X`20 X Attack types: X 1 Normal attack X 2 Poison Strength X 3 Confusion attack X 4 Fear attack X 5 Fire attack X 6 Acid attack X 7 Cold attack X 8 Lightning attack X 9 Corrosion attack X 10 Blindness attack X 11 Paralysis attack X 12 Steal Money X 13 Steal Object X 14 Poison X 15 Lose dexterity X 16 Lose constitution X 17 Lose intelligence X 18 Lose wisdom X 19 Lose experience X 20 Aggravation X 21 Disenchants X 22 Eats food X 23 Eats light X 24 Eats charges X 25 Turn to stone X 26 Vampire Bite X 27`09Mind Flayer Attack X`09`0928`09Hell Hose Attack X`09`0929`09Vargouille Attack X`09`0999 Blank X`20 X Attack descriptions: X 1 hits you. X 2 bites you. X 3 claws you. X 4 stings you. X 5 touches you. X 6 kicks you. X 7 gazes at you. X 8 breathes on you. X 9 spits on you. X 10 makes a horrible wail. X 11 embraces you. X 12 crawls on you. X 13 releases a cloud of spores. X 14 begs you for money. X 15 You've been slimed. X 16 crushes you. X 17 tramples you. X 18 drools on you. X`09`0920`09touches you with its tentacles. X 99 is repelled. X`20 X Example: For a creature which bites for 1d6,then stings for X 2d4 and loss of dex you would use: X '1 2 1d6`7C15 4 2d4' X`20 X CMOVE flags: XMovement. 00000001 Move only to attack X . 00000002 Move,attack normal X . 00000008 20% random movement X . 00000010 40% random movement X . 00000020 75% random movement XSpecial + 00010000 Invisible movement X + 00020000 Move through door X + 00040000 Move through wall X + 00080000 Move through creatures X + 00100000 Picks up objects X + 00200000 Multiply monster XCarries = 01000000 Carries objects. X = 02000000 Carries gold. X = 04000000 Has 60% of time. X = 08000000 Has 90% of time. X = 10000000 1d2 objects/gold. X = 20000000 2d2 objects/gold. X = 40000000 4d2 objects/gold. XSpecial `7E 80000000 Win-the-Game creature. X`20 X SPELL Flags: XFrequency 000001 1 These add up to x. Then X(1 in x). 000002 2 if RANDINT(X) = 1 the X . 000004 4 creature casts a spell. X . 000008 8 XSpells = 000010 Teleport short (blink) X = 000020 Teleport long X = 000040 Teleport player to monster X = 000080 Cause light wound X = 000100 Cause serious wound X = 000200 Hold person (Paralysis) X = 000400 Cause blindness X = 000800 Cause confusion X = 001000 Cause fear X = 002000 Summon monster X = 004000 Summon undead X = 008000 Slow Person X = 010000 Drain Mana X = 020000 Not Used`20 X = 040000 Not Used`20 XBreaths + 080000 Breathe Lightning X + 100000 Breathe Gas X + 200000 Breathe Acid X + 400000 Breathe Frost X + 800000 Breathe Fire X`20 X CDEFENSE flags: X 0001 Hurt by Slay Dragon. X 0002 Hurt by Slay Monster. X 0004 Hurt by Slay Evil. X 0008 Hurt by Slay Undead. X 0010 Hurt by Frost. X 0020 Hurt by Fire. X 0040 Hurt by Poison. X 0080 Hurt by Acid. X 0100 Hurt by Light-Wand. X 0200 Hurt by Stone-to-Mud. X 0400 Minus experience. X 0800 Not used. X 1000 Cannot be charmed or slept. X 2000 Can be seen with infra-vision. `20 X 4000 Max Hit points. X 8000 Not used. X`20 X`20 X Sleep (sleep) : A measure in turns of how fast creature X will notice player (on the average). X Area of affect (aaf) : Max range that creature is able to "notice" X the player.`20 X X Creature data goes here - mwk,opusii X X c_list := ( X('Filthy Street Urchin',%X'0012000A',%X'00000000',%X'2034',400,0, X 4,1,1,'p','1d4','1 14 0d0`7C12 5 0d0' ,0),etc.... ); X`20 X blank_monster := (0,0,0,0,0,0,0,0,0,false,false);`7D X $ CALL UNPACK [.SOURCE.INCLUDE]VALUES.INC;1 292966576 $ create 'f' Xvar `20 X scumuser : boolean; `7B used when detecting users who shouldn't play `7 VD X cookydo : integer; X resist_gas : `5Bpsect(player$data)`5D boolean; X max_weight : `5Bpsect(weight$code)`5D integer; X balrog_ded : `5Bpsect(balrog$code)`5D boolean; X max_creatures : `5Bpsect(moria$data)`5D integer; `7Bmax monsters allowed V`7D X hexnum : `5Bpsect(moria$data)`5D unsigned; `7B conversion variable `7D X Opusii_cnt,mwk_cnt,indx : `5Bpsect(moria$data)`5D integer; `7B index cou Vnters `7D X Opusii, Matt : `5Bpsect(moria$data)`5D text; `7B monster file(s) names ` V7D X REB_Iggy : `5Bpsect(moria$data)`5D integer; X player_max_exp : `5Bpsect(player$data)`5D integer; `7B Max exp possible V `7D X seed : `5Bpsect(player$data),global`5D unsigned; `7B Contains seed # `7D X randes_seed : `5Bpsect(setup$data)`5D unsigned; `7B For encoding colors V `7D X town_seed : `5Bpsect(generate$data)`5D unsigned; `7B Seed for town gener Va`7D X channel : `5Bpsect(io$data),global`5D integer; `7B I/O channel # `7D X io$bin_pause : `5Bpsect(io$data)`5D quad_type; `7B I/O pause time `7 VD X cur_height,cur_width : `5Bpsect(player$data)`5D integer; `7B Cur dungeo Vn size`7D X dun_level : `5Bpsect(player$data)`5D integer; `7B Cur dungeon level ` V7D X missle_ctr : `5Bpsect(player$data)`5D integer; `7B Counter for missles V `7D X msg_line : `5Bpsect(player$data)`5D integer; `7B Contains message txt`7 VD X msg_flag : `5Bpsect(player$data)`5D boolean; `7B Set with first msg `7 VD X old_msg : `5Bpsect(player$data)`5D vtype; `7B Last message `7D X generate : `5Bpsect(setup$data)`5D boolean; `7B Generate next level `7D X death : `5Bpsect(player$data)`5D boolean; `7B True if died `7D X died_from : `5Bpsect(player$data)`5D vtype; `7B What killed him `7D X find_flag : `5Bpsect(player$data)`5D boolean; `7B Used in MORIA `7D X reset_flag : `5Bpsect(player$data)`5D boolean; `7B Used in MORIA `7D X cave_flag : `5Bpsect(player$data)`5D boolean; `7B Used in GET_PANEL ` V7D X light_flag : `5Bpsect(player$data)`5D boolean; `7B Used in MOVE_LIGHT V `7D X redraw : `5Bpsect(player$data)`5D boolean; `7B For redraw screen `7D X stat_column : `5Bpsect(player$data)`5D integer; `7B Column for stats V `7D X print_stat : `5Bpsect(player$data)`5D unsigned; `7B Flag for stats `7D X turn : `5Bpsect(player$data)`5D integer; `7B Cur turn of game `7D X wizard : `5Bpsect(player$data)`5D boolean; `7B Wizard flag `7D X used_line : `5Bpsect(player$data)`5D array `5B2..23`5D of boolean; X password1 : `5Bpsect(setup$data)`5D packed array `5B1..12`5D of char; X password2 : `5Bpsect(setup$data)`5D packed array `5B1..12`5D of char; X days : `5Bpsect(setup$data)`5D array `5B1..7`5D of vtype; X closing_flag : `5Bpsect(player$data)`5D integer; `7B Used for closing V `7D X`20 X `7B Bit testing array `7D X bit_array : `5Bpsect(player$data)`5D array `5B1..32`5D of unsigned; X`20 X `7B External file names; are all located in directory with image `7D X MORIA_HOU : `5Bpsect(setup$data)`5D vtype; X MORIA_MOR : `5Bpsect(setup$data)`5D vtype; X MORIA_MAS : `5Bpsect(setup$data)`5D vtype; `20 X MORIA_TOP : `5Bpsect(setup$data)`5D vtype; X MORIA_HLP : `5Bpsect(setup$data)`5D vtype; X MORIA_MON : `5Bpsect(setup$data)`5D vtype; X MORIA_LOS : `5Bpsect(setup$data)`5D vtype; X MORIA_WIZ : `5Bpsect(setup$data)`5D vtype; X X `7B Following are calculated from max dungeon sizes `7D X max_panel_rows,max_panel_cols : `5Bpsect(player$data)`5D integer; X quart_height,quart_width : `5Bpsect(player$data)`5D integer; X panel_row,panel_col : `5Bpsect(player$data)`5D integer; X panel_row_min,panel_row_max : `5Bpsect(player$data)`5D integer; X panel_col_min,panel_col_max : `5Bpsect(player$data)`5D integer; X panel_col_prt,panel_row_prt : `5Bpsect(player$data)`5D integer; X`20 X `7B Following are all floor definitions `7D X cave : `5Bpsect(moria$data)`5D array `5B1..max_height`5D of row_floor; X blank_floor : `5Bpsect(generate$data)`5D cave_type; X dopen_floor : `5Bpsect(generate$data)`5D floor_type; X lopen_floor : `5Bpsect(generate$data)`5D floor_type; X corr_floor1 : `5Bpsect(generate$data)`5D floor_type; X corr_floor2 : `5Bpsect(generate$data)`5D floor_type; X corr_floor3 : `5Bpsect(generate$data)`5D floor_type; X corr_floor4 : `5Bpsect(generate$data)`5D floor_type; X rock_wall1 : `5Bpsect(generate$data)`5D floor_type; X rock_wall2 : `5Bpsect(generate$data)`5D floor_type; X rock_wall3 : `5Bpsect(generate$data)`5D floor_type; X boundry_wall : `5Bpsect(generate$data)`5D floor_type; X`20 X `7B Following are set definitions `7D X floor_set : `5Bpsect(moria$data)`5D obj_set; X wall_set : `5Bpsect(moria$data)`5D obj_set; X pwall_set : `5Bpsect(moria$data)`5D obj_set; X corr_set : `5Bpsect(moria$data)`5D obj_set; X trap_set : `5Bpsect(moria$data)`5D obj_set; X light_set : `5Bpsect(moria$data)`5D obj_set; X`20 X `7B Following are player variables `7D X py : `5Bpsect(player$data)`5D player_type; X player_title : `5Bpsect(player$data)`5Darray `5B1..max_class`5D of array V `5B1..max_player_level`5D of btype; X player_exp : `5Bpsect(player$data)`5D array `5B1..max_player_level`5D of V integer; X acc_exp : `5Bpsect(player$data)`5D real; `7B Accumulator for fractional V exp`7D X bare_hands : `5Bpsect(player$data)`5D dtype; X char_row : `5Bpsect(player$data)`5D integer; X char_col : `5Bpsect(player$data)`5D integer; X com_val : `5Bpsect(player$data)`5D integer; X pclass : `5Bpsect(player$data)`5D integer; X sex_type : `5Bpsect(player$data)`5D vtype; X race : `5Bpsect(create$data)`5D array `5B1..max_races`5D of race_type; X background : `5Bpsect(create$data)`5D array `5B1..max_background`5D of b Vackground_type; X rgold_adj : `5Bpsect(store$data)`5D array `5B1..max_races`5D of array `5 VB1..max_races`5D of real; X class : `5Bpsect(create$data)`5D array `5B1..max_class`5D of class_type; X mage_spell : `5Bpsect(player$data)`5D array `5B1..max_class`5D of array V `5B1..31`5D of spell_type; X priest_spell : `5Bpsect(player$data)`5D array `5B1..max_class`5D of arra Vy `5B1..31`5D of spell_type; X extra_spell : `5Bpsect(player$data)`5D array `5B1..max_class`5D of array V `5B1..31`5D of spell_type; X magic_spell : `5Bpsect(player$data)`5D array `5B1..max_class`5D of array V `5B1..31`5D of spell_type; X mush : `5Bpsect(setup$data)`5D treasure_type; X player_init : `5Bpsect(create$data)`5D array `5B1..max_class`5D of array V `5B1..5`5D of byteint; X total_winner : `5Bpsect(setup$data)`5D boolean; X `20 X `7B Following are store definitions `7D X owners : `5Bpsect(store$data)`5D array `5B1..max_owners`5D of owner_type V; X store : `5Bpsect(store$data)`5D array `5B1..max_stores`5D of store_type; X store_door : `5Bpsect(generate$data)`5D array `5B1..max_stores`5D of tre Vasure_type; X store_choice : `5Bpsect(store$data)`5D array `5B1..max_stores`5D of arra Vy`20 X`5B1..store$choices`5D of integer; X store_buy : `5Bpsect(store$data)`5D array `5B1..max_stores`5D of obj_set V; X`20 X `7B Following are treasure arrays and variables `7D X object_list : `5Bpsect(moria$data)`5D array `5B1..max_objects`5D of trea Vsure_type; X object_ident : `5Bpsect(moria$data)`5D array `5B1..max_objects`5D of boo Vlean; X t_level : `5Bpsect(moria$data)`5D array `5B0..max_obj_level`5D of intege Vr; X gold_list : `5Bpsect(moria$data)`5D array `5B1..max_gold`5D of treasure_ Vtype; X t_list : `5Bpsect(moria$data)`5D array `5B1..max_talloc`5D of treasure_t Vype; X inventory : `5Bpsect(player$data)`5D array `5B1..inven_max`5D of treasur Ve_type; X inventory_init : `5Bpsect(setup$data)`5D array `5B1..inven_init_max`5D o Vf treasure_type; X blk_mkt_init : `5Bpsect(setup$data)`5D array `5B1..blk_mkt_max`5D of tre Vasure_type; X blank_treasure : `5Bpsect(moria$data)`5D treasure_type; X inven_ctr : `5Bpsect(player$data)`5D integer; `7B Total different obj's V `7D X inven_weight : `5Bpsect(player$data)`5D integer; `7B Cur carried weight V `7D X equip_ctr : `5Bpsect(player$data)`5D integer; `7B Cur equipment ctr `7D +-+-+-+-+-+-+-+- END OF PART 76 +-+-+-+-+-+-+-+-