public boolean checkProjectileCollision(GameActor proj, GameActor other) {
        // currently we are only interested in collision between a projectile and another type of actor
        if(proj == null || other == null) {
            return false;
        }
        PhysicsComponent projPC = (PhysicsComponent)proj.getComponent("PhysicsComponent");
        PhysicsComponent otherPC = (PhysicsComponent)other.getComponent("PhysicsComponent");
        
        if(projPC == null || otherPC == null) {
            return false;
        }
        
        Rectangle projHb = projPC.getHitbox();
        Rectangle otherHb = otherPC.getHitbox();

        if(projHb.x + projHb.width < otherHb.x) {
            return false;
        }
        if(projHb.x > otherHb.x + otherHb.width) {
            return false;
        }
        if(projHb.y + projHb.height < otherHb.y) {
            return false;
        }
        if(projHb.y > otherHb.y + otherHb.height) {
            return false;
        }
        
        // we got here, we got a HIT!
        Application.get().getEventManager().queueEvent(new CollisionEvent(proj, other));
        otherPC.takeDamage(projPC.getDamage());
        /*
        // TODO: figure something better out here (or rather somewhere else...)
        if(otherPC.takeDamage(projPC.getDamage())) {
            InventoryComponent giver = (InventoryComponent)other.getComponent("InventoryComponent");
            StatusComponent sc = (StatusComponent)proj.getComponent("StatusComponent");
            
            if(sc.getAlleciange().equals("friendly")) {
                GameActor p = Application.get().getLogic().getActor(Application.get().getHumanView().getAttachedActor());
                InventoryComponent getter = (InventoryComponent)p.getComponent("InventoryComponent");
                getter.addMoney(giver.getMoney());
            }
        }
        * 
        */
        Application.get().getEventManager().executeEvent(new ActorDestroyedEvent(proj)); // destroy the projectile
        return true;
    }