added speed and regen to fighter class. added speed and regen counters. modified play_game() to use counters to change speed and regen rates.  I'm not totally happy with the speed delays, but it works!
tweaked regen code to work better. made map smaller.  removed the +2 hp heal when pressing 5 or . since we don't need it anymore with regen.
I think I fixed the menu screens from often flickering on and off.   I turned off the keypress repeat in the menu routine then put in a while loop to prevent the menu from closing unless ESC or SPACE was pressed.  Also, set up variables to control keypress repeat delay and interval
added buff class and buff_component to fighter class.  first implementation didn't work since I wasn't properly attaching the buffs list in fighter to be owned by the fighter object.  thus, when I gave the player a buff, ALL the enemies got the same buff.  it's working now.
commit also contains a few minor edits/cleanups and new constants in data to define defaults on the buff duration and decay rate.  NOTE that these variables (like the speed and regen variables) are based on ticks, not player/monster turns
ensured that hp is never higher than max_hp in the main object-update loop. refactored give_items() code to give one copy of all items. will have to tweak when we have more items (drop excess on the ground).  Added padding to the edge of the map so that the scrolling is always consistent.
had to break out 'use_crystal' into a different function for each crystal color.  added orange crystal to increase speed.
added Caster class. theoretically works, but need to refactor the scroll spells to make them generic so player and enemies can use them, along with the scrolls
Tweaked data.py to set MAX_ROOMS to keep a consistent ratio with the size of the map. Not sure how that will work long term.  edits to entities.py to pass the 'user' to the 'use items' functions and the 'cast_xxx' functions.  Need to variablize the inventories for all entities
Generalized the inventory to be a part of the Fighter class. This allows monsters to have and use items. Yay.  Still need to generalize all of the casting functions so they work for both players and monsters.  Also, need to add better monster logic for use of items.
Added a few more STATE variables in data.py.  Need to clean these all up at some point
Added mobitems dict in entitydata.py to seed starting items for monsters.
generalized cast_lightning so enemies can use it. They are pretty deadly now.
fixed annoying issue with the inventory automatically using the item at 'i' if you didn't just barely tap the key. Thanks Space Butler!
updated 'cast_fireball' so monsters can use it.  Ran into a weird issue where the splash damage was killing the monster before its turn was over. Then the game would crash trying to access 'monster.fighter' when it didn't exist.  Had to add several checks in Dungeoneer.py and the use_item routine in entities.py to check for this.
This is clunky, but works.
updated cast_confusion so monsters can confuse the player.  But it takes total control of the player and isn't as elegant as Crawl. It's hilarious though
tweaks to initial monster items
minor tweaks to entity starting items and updated README with some extra info.
refactored power crystal functions so monsters can use them
edited code to allow mobs to pick up items
added full msg_history to display by pressing 'p'.  Also added ability for mobs to pick up items from the ground and to use a random item from their inventory
Another multi-commit.
Added Menuobj to allow colors and characters to be displayed in the menu.
Fixed turns from incrementing if walking into a wall.
Enemies drop all items when they die.
Walking over items will display them to the message window.
display full message history pressing 'p'
full message history now in FULL COLOR
generalized Game.map to give it another dimension to hold dungeon_level
Had to change Game.map to a dict.  Added maplist to data.py mapping dungeon_level to level names.