""" #************************************************************************** * Original Diku Mud copyright=C) 1990, 1991 by Sebastian Hammer, * * Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, and Katja Nyboe. * * * * Merc Diku Mud improvments copyright=C) 1992, 1993 by Michael * * Chastain, Michael Quan, and Mitchell Tse. * * * * In order to use any part of this Merc Diku Mud, you must comply with * * both the original Diku license in 'license.doc' as well the Merc * * license in 'license.txt'. In particular, you may not remove either of * * these copyright notices. * * * * Much time and thought has gone into this software and you are * * benefitting. We hope that you share your changes too. What goes * * around, comes around. * ***************************************************************************/ #************************************************************************** * ROM 2.4 is copyright 1993-1998 Russ Taylor * * ROM has been brought to you by the ROM consortium * * Russ Taylor=rtaylor@hypercube.org) * * Gabrielle Taylor=gtaylor@hypercube.org) * * Brian Moore=zump@rom.org) * * By using this code, you have agreed to follow the terms of the * * ROM license, in the file Rom24/doc/rom.license * ***************************************************************************/ #*********** * Ported to Python by Davion of MudBytes.net * Using Miniboa https://code.google.com/p/miniboa/ * Now using Python 3 version https://code.google.com/p/miniboa-py3/ ************/ """ import time from merc import * # * Return ascii name of an affect location. def affect_loc_name( location ): if location == APPLY_NONE: return "none" if location == APPLY_STR: return "strength" if location == APPLY_DEX: return "dexterity" if location == APPLY_INT: return "intelligence" if location == APPLY_WIS: return "wisdom" if location == APPLY_CON: return "constitution" if location == APPLY_SEX: return "sex" if location == APPLY_CLASS: return "class" if location == APPLY_LEVEL: return "level" if location == APPLY_AGE: return "age" if location == APPLY_MANA: return "mana" if location == APPLY_HIT: return "hp" if location == APPLY_MOVE: return "moves" if location == APPLY_GOLD: return "gold" if location == APPLY_EXP: return "experience" if location == APPLY_AC: return "armor class" if location == APPLY_HITROLL: return "hit roll" if location == APPLY_DAMROLL: return "damage roll" if location == APPLY_SAVES: return "saves" if location == APPLY_SAVING_ROD: return "save vs rod" if location == APPLY_SAVING_PETRI: return "save vs petrification" if location == APPLY_SAVING_BREATH: return "save vs breath" if location == APPLY_SAVING_SPELL: return "save vs spell" if location == APPLY_SPELL_AFFECT: return "none" print ("Affect_location_name: unknown location %d." % location) return "(unknown)" # * Return ascii name of an affect bit vector. def affect_bit_name( vector ): buf = "" if vector & AFF_BLIND: buf += " blind" if vector & AFF_INVISIBLE: buf += " invisible" if vector & AFF_DETECT_EVIL: buf += " detect_evil" if vector & AFF_DETECT_GOOD: buf += " detect_good" if vector & AFF_DETECT_INVIS: buf += " detect_invis" if vector & AFF_DETECT_MAGIC: buf += " detect_magic" if vector & AFF_DETECT_HIDDEN: buf += " detect_hidden" if vector & AFF_SANCTUARY: buf += " sanctuary" if vector & AFF_FAERIE_FIRE: buf += " faerie_fire" if vector & AFF_INFRARED: buf += " infrared" if vector & AFF_CURSE: buf += " curse" if vector & AFF_POISON: buf += " poison" if vector & AFF_PROTECT_EVIL: buf += " prot_evil" if vector & AFF_PROTECT_GOOD: buf += " prot_good" if vector & AFF_SLEEP: buf += " sleep" if vector & AFF_SNEAK: buf += " sneak" if vector & AFF_HIDE: buf += " hide" if vector & AFF_CHARM: buf += " charm" if vector & AFF_FLYING: buf += " flying" if vector & AFF_PASS_DOOR: buf += " pass_door" if vector & AFF_BERSERK: buf += " berserk" if vector & AFF_CALM: buf += " calm" if vector & AFF_HASTE: buf += " haste" if vector & AFF_SLOW: buf += " slow" if vector & AFF_PLAGUE: buf += " plague" if vector & AFF_DARK_VISION: buf += " dark_vision" if not buf: return "none" return buf # # * Return ascii name of extra flags vector. def extra_bit_name( extra_flags ): buf = "" if extra_flags & ITEM_GLOW: buf += " glow" if extra_flags & ITEM_HUM: buf += " hum" if extra_flags & ITEM_DARK: buf += " dark" if extra_flags & ITEM_LOCK: buf += " lock" if extra_flags & ITEM_EVIL: buf += " evil" if extra_flags & ITEM_INVIS: buf += " invis" if extra_flags & ITEM_MAGIC: buf += " magic" if extra_flags & ITEM_NODROP: buf += " nodrop" if extra_flags & ITEM_BLESS: buf += " bless" if extra_flags & ITEM_ANTI_GOOD: buf += " anti-good" if extra_flags & ITEM_ANTI_EVIL: buf += " anti-evil" if extra_flags & ITEM_ANTI_NEUTRAL: buf += " anti-neutral" if extra_flags & ITEM_NOREMOVE: buf += " noremove" if extra_flags & ITEM_INVENTORY: buf += " inventory" if extra_flags & ITEM_NOPURGE: buf += " nopurge" if extra_flags & ITEM_VIS_DEATH: buf += " vis_death" if extra_flags & ITEM_ROT_DEATH: buf += " rot_death" if extra_flags & ITEM_NOLOCATE: buf += " no_locate" if extra_flags & ITEM_SELL_EXTRACT: buf += " sell_extract" if extra_flags & ITEM_BURN_PROOF: buf += " burn_proof" if extra_flags & ITEM_NOUNCURSE: buf += " no_uncurse" return "none" if not buf else buf # return ascii name of an act vector */ def act_bit_name( act_flags ): buf = "" if IS_SET(act_flags,ACT_IS_NPC): buf += " npc" if act_flags & ACT_SENTINEL: buf += " sentinel" if act_flags & ACT_SCAVENGER: buf += " scavenger" if act_flags & ACT_AGGRESSIVE: buf += " aggressive" if act_flags & ACT_STAY_AREA: buf += " stay_area" if act_flags & ACT_WIMPY: buf += " wimpy" if act_flags & ACT_PET: buf += " pet" if act_flags & ACT_TRAIN: buf += " train" if act_flags & ACT_PRACTICE: buf += " practice" if act_flags & ACT_UNDEAD: buf += " undead" if act_flags & ACT_CLERIC: buf += " cleric" if act_flags & ACT_MAGE: buf += " mage" if act_flags & ACT_THIEF: buf += " thief" if act_flags & ACT_WARRIOR: buf += " warrior" if act_flags & ACT_NOALIGN: buf += " no_align" if act_flags & ACT_NOPURGE: buf += " no_purge" if act_flags & ACT_IS_HEALER: buf += " healer" if act_flags & ACT_IS_CHANGER: buf += " changer" if act_flags & ACT_GAIN: buf += " skill_train" if act_flags & ACT_UPDATE_ALWAYS: buf += " update_always" else: buf += " player" if act_flags & PLR_AUTOASSIST: buf += " autoassist" if act_flags & PLR_AUTOEXIT: buf += " autoexit" if act_flags & PLR_AUTOLOOT: buf += " autoloot" if act_flags & PLR_AUTOSAC: buf += " autosac" if act_flags & PLR_AUTOGOLD: buf += " autogold" if act_flags & PLR_AUTOSPLIT: buf += " autosplit" if act_flags & PLR_HOLYLIGHT: buf += " holy_light" if act_flags & PLR_CANLOOT: buf += " loot_corpse" if act_flags & PLR_NOSUMMON: buf += " no_summon" if act_flags & PLR_NOFOLLOW: buf += " no_follow" if act_flags & PLR_FREEZE: buf += " frozen" if act_flags & PLR_THIEF: buf += " thief" if act_flags & PLR_KILLER: buf += " killer" return "none" if not buf else buf def comm_bit_name(comm_flags): buf = "" if comm_flags & COMM_QUIET: buf += " quiet" if comm_flags & COMM_DEAF: buf += " deaf" if comm_flags & COMM_NOWIZ: buf += " no_wiz" if comm_flags & COMM_NOAUCTION: buf += " no_auction" if comm_flags & COMM_NOGOSSIP: buf += " no_gossip" if comm_flags & COMM_NOQUESTION: buf += " no_question" if comm_flags & COMM_NOMUSIC: buf += " no_music" if comm_flags & COMM_NOQUOTE: buf += " no_quote" if comm_flags & COMM_COMPACT: buf += " compact" if comm_flags & COMM_BRIEF: buf += " brief" if comm_flags & COMM_PROMPT: buf += " prompt" if comm_flags & COMM_COMBINE: buf += " combine" if comm_flags & COMM_NOEMOTE: buf += " no_emote" if comm_flags & COMM_NOSHOUT: buf += " no_shout" if comm_flags & COMM_NOTELL: buf += " no_tell" if comm_flags & COMM_NOCHANNELS: buf += " no_channels" return "none" if not buf else buf def imm_bit_name(imm_flags): buf = "" if imm_flags & IMM_SUMMON: buf += " summon" if imm_flags & IMM_CHARM: buf += " charm" if imm_flags & IMM_MAGIC: buf += " magic" if imm_flags & IMM_WEAPON: buf += " weapon" if imm_flags & IMM_BASH: buf += " blunt" if imm_flags & IMM_PIERCE: buf += " piercing" if imm_flags & IMM_SLASH: buf += " slashing" if imm_flags & IMM_FIRE: buf += " fire" if imm_flags & IMM_COLD: buf += " cold" if imm_flags & IMM_LIGHTNING: buf += " lightning" if imm_flags & IMM_ACID: buf += " acid" if imm_flags & IMM_POISON: buf += " poison" if imm_flags & IMM_NEGATIVE: buf += " negative" if imm_flags & IMM_HOLY: buf += " holy" if imm_flags & IMM_ENERGY: buf += " energy" if imm_flags & IMM_MENTAL: buf += " mental" if imm_flags & IMM_DISEASE: buf += " disease" if imm_flags & IMM_DROWNING: buf += " drowning" if imm_flags & IMM_LIGHT: buf += " light" if imm_flags & VULN_IRON: buf += " iron" if imm_flags & VULN_WOOD: buf += " wood" if imm_flags & VULN_SILVER: buf += " silver" return "none" if not buf else buf def wear_bit_name(wear_flags): buf = "" if wear_flags & ITEM_TAKE: buf += " take" if wear_flags & ITEM_WEAR_FINGER: buf += " finger" if wear_flags & ITEM_WEAR_NECK: buf += " neck" if wear_flags & ITEM_WEAR_BODY: buf += " torso" if wear_flags & ITEM_WEAR_HEAD: buf += " head" if wear_flags & ITEM_WEAR_LEGS: buf += " legs" if wear_flags & ITEM_WEAR_FEET: buf += " feet" if wear_flags & ITEM_WEAR_HANDS: buf += " hands" if wear_flags & ITEM_WEAR_ARMS: buf += " arms" if wear_flags & ITEM_WEAR_SHIELD: buf += " shield" if wear_flags & ITEM_WEAR_ABOUT: buf += " body" if wear_flags & ITEM_WEAR_WAIST: buf += " waist" if wear_flags & ITEM_WEAR_WRIST: buf += " wrist" if wear_flags & ITEM_WIELD: buf += " wield" if wear_flags & ITEM_HOLD: buf += " hold" if wear_flags & ITEM_NO_SAC: buf += " nosac" if wear_flags & ITEM_WEAR_FLOAT: buf += " float" return "none" if not buf else buf def form_bit_name(form_flags): buf = "" if form_flags & FORM_POISON: buf += " poison" elif form_flags & FORM_EDIBLE: buf += " edible" if form_flags & FORM_MAGICAL: buf += " magical" if form_flags & FORM_INSTANT_DECAY: buf += " instant_rot" if form_flags & FORM_OTHER: buf += " other" if form_flags & FORM_ANIMAL: buf += " animal" if form_flags & FORM_SENTIENT: buf += " sentient" if form_flags & FORM_UNDEAD: buf += " undead" if form_flags & FORM_CONSTRUCT: buf += " construct" if form_flags & FORM_MIST: buf += " mist" if form_flags & FORM_INTANGIBLE: buf += " intangible" if form_flags & FORM_BIPED: buf += " biped" if form_flags & FORM_CENTAUR: buf += " centaur" if form_flags & FORM_INSECT: buf += " insect" if form_flags & FORM_SPIDER: buf += " spider" if form_flags & FORM_CRUSTACEAN: buf += " crustacean" if form_flags & FORM_WORM: buf += " worm" if form_flags & FORM_BLOB: buf += " blob" if form_flags & FORM_MAMMAL: buf += " mammal" if form_flags & FORM_BIRD: buf += " bird" if form_flags & FORM_REPTILE: buf += " reptile" if form_flags & FORM_SNAKE: buf += " snake" if form_flags & FORM_DRAGON: buf += " dragon" if form_flags & FORM_AMPHIBIAN: buf += " amphibian" if form_flags & FORM_FISH: buf += " fish" if form_flags & FORM_COLD_BLOOD: buf += " cold_blooded" return "none" if not buf else buf def part_bit_name(part_flags): buf = '' if part_flags & PART_HEAD: buf += " head" if part_flags & PART_ARMS: buf += " arms" if part_flags & PART_LEGS: buf += " legs" if part_flags & PART_HEART: buf += " heart" if part_flags & PART_BRAINS: buf += " brains" if part_flags & PART_GUTS: buf += " guts" if part_flags & PART_HANDS: buf += " hands" if part_flags & PART_FEET: buf += " feet" if part_flags & PART_FINGERS: buf += " fingers" if part_flags & PART_EAR: buf += " ears" if part_flags & PART_EYE: buf += " eyes" if part_flags & PART_LONG_TONGUE: buf += " long_tongue" if part_flags & PART_EYESTALKS: buf += " eyestalks" if part_flags & PART_TENTACLES: buf += " tentacles" if part_flags & PART_FINS: buf += " fins" if part_flags & PART_WINGS: buf += " wings" if part_flags & PART_TAIL: buf += " tail" if part_flags & PART_CLAWS: buf += " claws" if part_flags & PART_FANGS: buf += " fangs" if part_flags & PART_HORNS: buf += " horns" if part_flags & PART_SCALES: buf += " scales" return "none" if not buf else buf def weapon_bit_name(weapon_flags): buf = '' if weapon_flags & WEAPON_FLAMING: buf += " flaming" if weapon_flags & WEAPON_FROST: buf += " frost" if weapon_flags & WEAPON_VAMPIRIC: buf += " vampiric" if weapon_flags & WEAPON_SHARP: buf += " sharp" if weapon_flags & WEAPON_VORPAL: buf += " vorpal" if weapon_flags & WEAPON_TWO_HANDS: buf += " two-handed" if weapon_flags & WEAPON_SHOCKING: buf += " shocking" if weapon_flags & WEAPON_POISON: buf += " poison" return "none" if not buf else buf def cont_bit_name(cont_flags): buf = '' if cont_flags & CONT_CLOSEABLE: buf += " closable" if cont_flags & CONT_PICKPROOF: buf += " pickproof" if cont_flags & CONT_CLOSED: buf += " closed" if cont_flags & CONT_LOCKED: buf += " locked" return "none" if not buf else buf def off_bit_name(off_flags): buf = '' if off_flags & OFF_AREA_ATTACK: buf += " area attack" if off_flags & OFF_BACKSTAB: buf += " backstab" if off_flags & OFF_BASH: buf += " bash" if off_flags & OFF_BERSERK: buf += " berserk" if off_flags & OFF_DISARM: buf += " disarm" if off_flags & OFF_DODGE: buf += " dodge" if off_flags & OFF_FADE: buf += " fade" if off_flags & OFF_FAST: buf += " fast" if off_flags & OFF_KICK: buf += " kick" if off_flags & OFF_KICK_DIRT: buf += " kick_dirt" if off_flags & OFF_PARRY: buf += " parry" if off_flags & OFF_RESCUE: buf += " rescue" if off_flags & OFF_TAIL: buf += " tail" if off_flags & OFF_TRIP: buf += " trip" if off_flags & OFF_CRUSH: buf += " crush" if off_flags & ASSIST_ALL: buf += " assist_all" if off_flags & ASSIST_ALIGN: buf += " assist_align" if off_flags & ASSIST_RACE: buf += " assist_race" if off_flags & ASSIST_PLAYERS: buf += " assist_players" if off_flags & ASSIST_GUARD: buf += " assist_guard" if off_flags & ASSIST_VNUM: buf += " assist_vnum" return "none" if not buf else buf