Separated methods that draw things related to debugging into separate 'draw_debug' method.  The 'Enter' key now works as an alternative to clicking start on main menu.
1-Added a 'debug' module which contains some functions to aid in collision debugging by providing visual cues as to where collisions are occurring.  2-Added a method within '_draw_debug' to call function within new 'debug' module and draw collision points.  3-Moved debug text for bottom right green text into the new '_draw_debug' method.
Moved 'arena1' and 'arena2' to globals.  Both 'arena1' and 'arena2' now consist of namedtuples containing all the proper parameters to be passed to the 'Arena' class.  Adjusted 'Arena' class accordingly.  Adjusted creation of arena within 'GameLoop' accordingly.
Moved 'monster_info' and 'MONSTER_TABLE' to 'globals'.
Added animations for player. Changed some player values for hopefully smoother gameplay.
Minor code reformatting, some code simplification.
Changed some USEREVENT numbers around as I'm not sure that USEREVENT + 8 will ever get triggered.
More minor code reformatting and simplification.
Fixed bug where no new song would start after first song ended (in game).
Added clocks and clock ticks to Start/Help/Options pages as I noticed the game was chewing cpu when idle on those pages.  Also some minor code reformatting.
Changed the player collision detection code. Doesn't seem to glitch out now, but I didn't test every possible case.
Merge remote-tracking branch 'upstream/master'
'StartMenu' now has its own input.
Removed call to pygame.key.set_repeat since our input wasn't actually using this anyway.
(1) Changed 'debug_text_on' to 'DEBUG_VIEW' within Input class, (2) Moved '_draw_players_debug' from 'draw_screen' to 'draw_debug' within GameLoop class, (3) input.DEBUG_VIEW of GameLoop now toggles all debug drawing instead of just the green text.
Added gamepad button constants to globals.py
Input class changes: (1) changed 'ENTER' to 'ENTER_LEAVE' (this enters game from menu or returns to menu from game), (2) '_get_gamepad_input' is now '_get_gamepad_axis_buttons_pressed' and all gamepad inputs are now stored within a 'gp_input' dictionary (similar to keyboard input in 'kb_input'), (3) added '_handle_gamepad_updown_events' to __call__ to handle inputs where not repeating input is important, (4) DEBUG_VIEW can now be toggled by F12 and/or gamepad back button (as well as backquote), (5) PAUSED can now be toggled by gamepad start button, (6) ENTER_LEAVE can now be toggled by simultaneously pressing A and Y gamepad buttons.
Merged Max's changes: (1)-Added functionality to how particles behave and operate; allows particles to do more interesting things, (2)-Changed p_collidelistall since terrains were ignoring particles; similar check used for p_collidelist, (3)-Enabled player 2, (4)-ADDED SKILLS: [Boulder Toss(103): Lobbing motion that stuns on impact.], [Mines(104): Creates a floating particle that deals damage on first target hit.], [Shrapnel Bomb(105): First time hitting the skill lobs a bomb. Second time hitting it makes it explode and create spreading projectiles.], [Shield(106): Simply throws a shield on the player.], [Revolving Yo-yo(107): Particle just revolves around the player; may be switched to RangeParticle instead of Melee.], [Napalm(108): Another cool spell. Initially throws a bomb with low lifespan. If it hits, it places a dot on the target. If it expires, it splits into three smaller napalms, which don't have dots.], [Fire and Ice(109): Shoots two projectiles - Ice and Fire component. If ice hits, snares target. If fire hits, deals damage and places dot.]
Resync to Brian's with my very recent changes. Also made player 2 show.