public boolean firespell(int castID, int casterY, int casterX, int offsetY, int offsetX, int angle, int speed, int movegfxID,int startHeight, int endHeight, int finishID, int enemyY,int enemyX, int Lockon) 
{
fcastid = castID;
fcasterY = casterY;
fcasterX = casterX;
foffsetY = offsetY;
foffsetX = offsetX;
fangle = angle;
fspeed = speed;
fmgfxid = movegfxID;
fsh = startHeight;
feh = endHeight;
ffinishid = finishID;
fenemyY = enemyY;
fenemyX = enemyX;
fLockon = Lockon;

actionTimer = 0;

    //Casts Spell In Hands
    if(cast == false && actionTimer <= 0) {
        stillgfxz(castID, casterY, casterX, 100, 0);
        cast = true;
        firingspell = true;
        }
    //Fires Projectile
    if(cast == true && fired == false && actionTimer <= 0) {
        createProjectile(casterY, casterX, offsetY, offsetX, angle, speed, movegfxID, startHeight, endHeight, Lockon);
        fired = true;
        }
    //Finishes Spell
    if(fired == true && actionTimer <= 0) {
        stillgfxz(finishID, enemyY, enemyX, 100, 95);
        resetGFX(castID, enemyX, enemyY);
        return false;
        }
        return true;
    }