@Override
    public boolean isValid(Location loc) {
        if (loc instanceof AdvancedLocation) {
            switch (((AdvancedLocation) loc).getLayer()) {
                case ActorLevel:
                    return super.isValid(loc);
                case FloorLevel:
                    return this.mapGrid.isValid(loc);
                case ObjectLevel:
                    return this.objectGrid.isValid(loc);
                default:
                    throw new IllegalArgumentException();
            }
        } else {
            return super.isValid(loc);
        }
    }