public void update() {
        ttl--;
        if(!isNew) {
            mapX += velocityX;
            mapY += velocityY;
            angle += angularVelocity;
        } else {
            isNew = false;
        }

        if (registry.getGameController().multiplayerMode != registry.getGameController().multiplayerMode.CLIENT) {
            Point ePoint = new Point((int)mapX, (int)mapY);

            if (friendly) {
                //check to see if it hit any monsters
                if (particleEmitter.checkMobParticleHit(this)) {
                    isDirty = true;
                }
            } else {
                //hit player?
                /*if (particleEmitter.checkPlayerParticleHit(this)) {
                    isDirty = true;
                } else if (particleEmitter.checkPlaceableParticleHit(this)) {
                    isDirty = true;
                }*/
            }

            //check for hitting a block
            if (!disregardTerrain) {
                if (particleEmitter.checkForBlock(getCenterPoint()) != 0) {
                    isDirty = true;
                }
            }
        }
    }