public void addCollision() {
        //rectangle shaped hitboxes for the players
        Rectangle PHitBox = null, PHitBox2 = null;

        //made two seperate conditionals for the sake of sanity
        //it gets really confusing if you put em together
        if (Menu.isSingle()) {
            //we initialize teh hitboxes for each specific player type
            //only use the first PHitbox for single player
            //this rectangle stays constant no matter how much the width or height changes of the player with different animations
            //therefore the x and y coordinates remain constan for the player if you draw it relative to this rectangle
            if (PlayerPick.getPlayer1Type() == 1) {
                //PHitBox = AnimationRectPLAYER1;
                PHitBox = p.getHitBox();
            } else {
                PHitBox = p.getHitBox2();
            }
        } else {
            //use both for multiplayer
            PHitBox = p.getHitBox();
            PHitBox2 = p.getHitBox2();
        }
        //once the variables are initialized we use other conditionals to check for collision
        if (Menu.isSingle()) {
            if (PlayerPick.getPlayer1Type() == 1) {

                //collision for coins
                for (int j = 0; j < Coins.size(); j++) {
                    Coins c = (Coins) Coins.get(j);
                    Rectangle CHitBox = c.getBounds();
                    if (PHitBox.intersects(CHitBox)) {
                        //coins get removes and points added every collision
                        Coins.remove(j);
                        points++;
                    }
                }
                //collision for enemies
                for (int j = 0; j < alien.size(); j++) {
                    Enemy a = (Enemy) alien.get(j);
                    Rectangle AHitBox = a.getBounds();
                    if (PHitBox.intersects(AHitBox)) {
                        //player loses a bit less than half hp every collision of enemies and enemy gets removed
                        p.setHP(p.getHP() - 250);
                        alien.remove(j);

                    }
                }

                //fireball collisions
                for (int i = 0; i < Fireballs.size(); i++) {
                    Fireball f = (Fireball) Fireballs.get(i);
                    Rectangle FHitBox = f.getBounds();
                    //enemy collsion with fireballs
                    for (int j = 0; j < alien.size(); j++) {
                        Enemy a = (Enemy) alien.get(j);
                        Rectangle AHitBox = a.getBounds();
                        if (f.getVisible()) {
                            if (FHitBox.intersects(AHitBox)) {
                                f.setVisible(false);
                                Fireballs.remove(i);
                                alien.remove(j);
                            }
                        }
                    }

                    //collsion for boss
                    if (boss.getVisible()) {
                        if (PHitBox.intersects(boss.getBounds())) {
                            //different amount of hp is lost if the power up is used
                            if (p.getpowUp() || p.getpowUp2()) {
                                p.setHP(p.getHP() - 20);
                            } else {
                                p.setHP(p.getHP() - 10);
                            }
                        }

                        if (FHitBox.intersects(boss.getBounds())) {

                            if (p.getpowUp() || p.getpowUp2()) {
                                boss.setHP(boss.getHP() - 5);
                            } else {
                                boss.setHP(boss.getHP() - 1);
                            }
                        }
                        for (int j = 0; j < bossMissiles.size(); j++) {
                            Fireball bossF = (Fireball) bossMissiles.get(j);
                            Rectangle BossFHitBox = bossF.getBounds();
                            if (f.getVisible()) {
                                if (BossFHitBox.intersects(PHitBox)) {
                                    p.setHP(p.getHP() - 20);
                                }
                            }
                        }
                    }
                }
            } //same stuff, just for player 1 type --> Quade
            else if (PlayerPick.getPlayer1Type() == 2) {

                //collision for coins
                for (int j = 0; j < Coins.size(); j++) {
                    Coins c = (Coins) Coins.get(j);
                    Rectangle CHitBox = c.getBounds();
                    if (PHitBox.intersects(CHitBox)) {
                        //coins get removes and points added every collision
                        Coins.remove(j);
                        points++;
                    }
                }
                //collision for enemies
                for (int j = 0; j < alien.size(); j++) {
                    Enemy a = (Enemy) alien.get(j);
                    Rectangle AHitBox = a.getBounds();
                    if (PHitBox.intersects(AHitBox)) {
                        //player loses a bit less than half hp every collision of enemies and enemy gets removed
                        p.setHP2(p.getHP2() - 200);
                        alien.remove(j);
                    }
                }

                //fireball collisions
                for (int i = 0; i < Fireballs2.size(); i++) {
                    Fireball f = (Fireball) Fireballs2.get(i);
                    Rectangle FHitBox = f.getBounds();
                    //enemy collsion with fireballs
                    for (int j = 0; j < alien.size(); j++) {
                        Enemy a = (Enemy) alien.get(j);
                        Rectangle AHitBox = a.getBounds();
                        if (f.getVisible()) {
                            if (FHitBox.intersects(AHitBox)) {
                                f.setVisible(false);
                                Fireballs2.remove(i);
                                alien.remove(j);
                            }
                        }
                    }

                    //collsion for boss
                    if (boss.getVisible()) {
                        if (PHitBox.intersects(boss.getBounds())) {
                            //different amount of hp is lost if the power up is used
                            if (p.getpowUp() || p.getpowUp2()) {
                                p.setHP2(p.getHP2() - 20);
                            } else {
                                p.setHP2(p.getHP2() - 10);
                            }
                        }

                        if (FHitBox.intersects(boss.getBounds())) {

                            if (p.getpowUp() || p.getpowUp2()) {
                                boss.setHP(boss.getHP() - 5);
                            } else {
                                boss.setHP(boss.getHP() - 1);
                            }
                        }
                        for (int j = 0; j < bossMissiles.size(); j++) {
                            Fireball bossF = (Fireball) bossMissiles.get(j);
                            Rectangle BossFHitBox = bossF.getBounds();
                            if (f.getVisible()) {
                                if (BossFHitBox.intersects(PHitBox)) {
                                    p.setHP2(p.getHP2() - 20);
                                }
                            }
                        }
                    }
                }
            }
        } //this is called when multiplayer is used
        else {
            //both fireball arraylists are used and only hitboxes are thetwo players

            for (int i = 0; i < Fireballs2.size(); i++) {
                Fireball f = (Fireball) Fireballs2.get(i);
                Rectangle FHitBox = f.getBounds();
                if (f.getVisible()) {
                    if (PHitBox.intersects(FHitBox)) {

                        Fireballs2.remove(i);
                        p.setHP(p.getHP() - 20);
                    }
                }
            }
            for (int i = 0; i < Fireballs.size(); i++) {
                Fireball f = (Fireball) Fireballs.get(i);
                Rectangle FHitBox = f.getBounds();
                if (f.getVisible()) {
                    if (PHitBox2.intersects(FHitBox)) {
                        Fireballs.remove(i);
                        p.setHP2(p.getHP2() - 20);
                    }
                }
            }
        }

    }