/* BYOM (Be Your Own Monster) v1.0

        Be Your Own Monster is the patch that allows you to take on the
        role of the heroic do-gooding marine, the fiendish fiend, the
        shambling shambler, or the wizardly scrag

        Teams -- Teams are formed by race, instead of by skin color.
                 Marines vs Fiends, Fiends vs Scrags!

        Impulse 101 -- Change to Marine at next oppurtunity
        Impulse 102 -- Change to Fiend at next oppurtunity
        Impulse 103 -- Change to Shambler at next oppurtunity
        Impulse 104 -- Change to Scrag at next oppurtunity

        next oppurtunity means death or level change.

        I've made changes to:
            WEAPONS.QC
            CLIENT.QC
            PLAYER.QC
            WORLD.QC
            ITEMS.QC
            COMBAT.QC

        Email me at aexia@u.washington.edu

        Email me if:
            1. You know how to implement Scrag flying like swimming
            2. What are good numbers for the view offsets for each
               monster
            3. You know how to change the bounding box on the shambler so
               that he really is huge
            4. you find a bug

        Thanks to:
            iD Software for creating Quake
            John & Josh Spickes for writing the Fiend's Pentagram
                patch. I borrowed some code from their patch. That patch
                also cleared up a great many things about QuakeC
            My parents for paying the phone bill
            Queen Maeve, creator of the universe. Where would I be without
                Her Warm Furry Bellyness sitting on my papers and keyboard?
*/
float IMP_MARINE        = 101;
float IMP_FIEND         = 102;
float IMP_SHAMBLER      = 103;
float IMP_WIZARD        = 104;

float CL_MARINE         = 0;
/*      Class: Marine
        Armor: Normal
        Weapons: Axe, Shotgun, Super shotgun, Nailgun, Super Nailgun,
                  Grenade Launcher, Rocket Launcher, Lightning Gun
                 (Starts with Axe and Shotgun)
        Medkits: Normal
        Notes: Default deathmatch player. You undoubtedly know him already.
*/
float CL_FIEND          = 1;
/*      Class: Fiend
        Armor: Can't use it
        Weapons: Close Range Melee, Ramming Jump Attack
        Medkits: 1/3 as useful
        Special: Long range jumping, 300% max health
        Notes: Works just like the Fiend's Pentagram patch. Will have to claw
               its way out of water sometimes.
*/
float CL_SHAMBLER       = 2;
/*      Class: Shambler
        Armor: Can't use it
        Weapons: Close Range Meelee, Lightning Attack
        Medkits: 1/6 as useful
        Special: No items are useful, Lightning Ammo regenerates naturally,
                 600% max health, regenerates health slowly, takes only
                 half damage from rockets, lightning firing rate is slow
        Notes: Shamlber will look funny in some places since he's so huge.
               I haven't figured out how to change the bounding box to
               match his size yet...

*/
float CL_WIZARD         = 3;
/*      Class: Scrag
        Armor: Can't use it
        Weapons: Energy Spikes
        Medkits: 25% more useful
        Special: No items are useful, flying, Energy Ammo regenerates
        Notes: Flying is buggy when you start out and coming out of a
               teleporter. Just run into a wall, use up or down, and go
               forward to get rid of the "acceleterated slide" effect. In
               the future, I plan to make flying like swimming if possible.
*/

// now a part of entity
.float class;
.float nextclass;

float NEW_WEAPON_BOLT       = 256;
float NEW_WEAPON_SPIKE      = 512;
float NEW_WEAPON_MELEE      = 1024;

// Function prototypes
void() player_demon_melee;
void() player_shambler_melee;
void() player_shambler_bolt;
void() player_wizard_shot;
void() player_demon_jump;

void() player_wizard_pain;
void() player_demon_pain;
void() player_shambler_pain;

void() player_wizard_die;
void() player_demon_die;
void() player_shambler_die;

void() Player_Demon_JumpTouch;
void(float side) Player_Demon_Attack;
