diff --git a/mappings/pathfinder2e.mapping b/mappings/pathfinder2e.mapping index 2f3f181..fba43f4 100644 --- a/mappings/pathfinder2e.mapping +++ b/mappings/pathfinder2e.mapping @@ -1,7 +1,7 @@ [ /* Pathfinder2e character sheet mapping for Foundry VTT module 'Export Sheet to PDF' - 05/10/2022 - Kurko#1535 Minimum requirements: Foundry VTT Version 9 | PF2e system version: 3.13.6 -Fixed for Foundry VTT 10 | PF2e system version: 4.2.2 +Fixed for Foundry VTT 10 | PF2e system version: 4.10.4 */ /* ---------- PAGE 1 ----------*/ @@ -487,7 +487,7 @@ Fixed for Foundry VTT 10 | PF2e system version: 4.2.2 /* ---------- PAGE 2 ----------*/ { "pdf": "AncFeats", "foundry": -@items._source.filter(i => i.type === 'feat' && (i.data.featType.value === 'ancestryfeature' || i.data.featType.value === 'heritage')).map(i => i.name? i.data.level.value +': '+ i.name : '').join('\n') + '\n' + +@items._source.filter(i => i.type === 'feat' && (i.data.category === 'ancestryfeature' || i.data.category === 'heritage')).map(i => i.name? i.data.level.value +': '+ i.name : '').join('\n') + '\n' + @items._source.filter(i => i.type === 'feat' && i.data.location === 'ancestry-1').map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + @items._source.filter(i => i.type === 'feat' && i.data.location === 'ancestry-5').map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + @items._source.filter(i => i.type === 'feat' && i.data.location === 'ancestry-9').map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + @@ -496,82 +496,82 @@ Fixed for Foundry VTT 10 | PF2e system version: 4.2.2 }, { "pdf": "SkillFeats", "foundry": -@items._source.filter(i => i.type === 'feat' && i.data.location && i.data.location.slice(0, 5) !== 'skill' && i.data.featType.value === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + -@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-1' && i.data.featType.value === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + -@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-2' && i.data.featType.value === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + -@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-3' && i.data.featType.value === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + -@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-4' && i.data.featType.value === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + -@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-5' && i.data.featType.value === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + -@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-6' && i.data.featType.value === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + -@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-7' && i.data.featType.value === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + -@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-8' && i.data.featType.value === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + -@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-9' && i.data.featType.value === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + -@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-10' && i.data.featType.value === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + -@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-11' && i.data.featType.value === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + -@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-12' && i.data.featType.value === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + -@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-13' && i.data.featType.value === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + -@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-14' && i.data.featType.value === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + -@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-15' && i.data.featType.value === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + -@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-16' && i.data.featType.value === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + -@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-17' && i.data.featType.value === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + -@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-18' && i.data.featType.value === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + -@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-19' && i.data.featType.value === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + -@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-20' && i.data.featType.value === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name : '') +@items._source.filter(i => i.type === 'feat' && i.data.location && i.data.location.slice(0, 5) !== 'skill' && i.data.category === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + +@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-1' && i.data.category === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + +@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-2' && i.data.category === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + +@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-3' && i.data.category === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + +@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-4' && i.data.category === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + +@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-5' && i.data.category === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + +@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-6' && i.data.category === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + +@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-7' && i.data.category === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + +@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-8' && i.data.category === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + +@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-9' && i.data.category === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + +@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-10' && i.data.category === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + +@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-11' && i.data.category === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + +@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-12' && i.data.category === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + +@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-13' && i.data.category === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + +@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-14' && i.data.category === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + +@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-15' && i.data.category === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + +@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-16' && i.data.category === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + +@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-17' && i.data.category === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + +@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-18' && i.data.category === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + +@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-19' && i.data.category === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + +@items._source.filter(i => i.type === 'feat' && i.data.location === 'skill-20' && i.data.category === 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name : '') }, { "pdf": "GenFeats", "foundry": -@items._source.filter(i => i.type === 'feat' && i.data.location === 'general-3' && i.data.featType.value === 'general' && i.data.featType.value !== 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + -@items._source.filter(i => i.type === 'feat' && i.data.location === 'general-7' && i.data.featType.value === 'general' && i.data.featType.value !== 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + -@items._source.filter(i => i.type === 'feat' && i.data.location === 'general-11' && i.data.featType.value === 'general' && i.data.featType.value !== 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + -@items._source.filter(i => i.type === 'feat' && i.data.location === 'general-15' && i.data.featType.value === 'general' && i.data.featType.value !== 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + -@items._source.filter(i => i.type === 'feat' && i.data.location === 'general-19' && i.data.featType.value === 'general' && i.data.featType.value !== 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') +@items._source.filter(i => i.type === 'feat' && i.data.location === 'general-3' && i.data.category === 'general' && i.data.category !== 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + +@items._source.filter(i => i.type === 'feat' && i.data.location === 'general-7' && i.data.category === 'general' && i.data.category !== 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + +@items._source.filter(i => i.type === 'feat' && i.data.location === 'general-11' && i.data.category === 'general' && i.data.category !== 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + +@items._source.filter(i => i.type === 'feat' && i.data.location === 'general-15' && i.data.category === 'general' && i.data.category !== 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') + +@items._source.filter(i => i.type === 'feat' && i.data.location === 'general-19' && i.data.category === 'general' && i.data.category !== 'skill' ).map(i =>i.data.level.value? i.data.level.value +': '+ i.name + '\n' : '') }, { "pdf": "ClassFeatures", "foundry": [ -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 1&& (i.data.featType.value === 'classfeature' || i.data.featType.value === 'archetype' || (i.data.featType.value === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 1)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 2&& (i.data.featType.value === 'classfeature' || i.data.featType.value === 'archetype' || (i.data.featType.value === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 2)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 3&& (i.data.featType.value === 'classfeature' || i.data.featType.value === 'archetype' || (i.data.featType.value === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 3)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 4&& (i.data.featType.value === 'classfeature' || i.data.featType.value === 'archetype' || (i.data.featType.value === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 4)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 5&& (i.data.featType.value === 'classfeature' || i.data.featType.value === 'archetype' || (i.data.featType.value === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 5)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 6&& (i.data.featType.value === 'classfeature' || i.data.featType.value === 'archetype' || (i.data.featType.value === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 6)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 7&& (i.data.featType.value === 'classfeature' || i.data.featType.value === 'archetype' || (i.data.featType.value === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 7)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 8&& (i.data.featType.value === 'classfeature' || i.data.featType.value === 'archetype' || (i.data.featType.value === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 8)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 9&& (i.data.featType.value === 'classfeature' || i.data.featType.value === 'archetype' || (i.data.featType.value === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 9)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 10&& (i.data.featType.value === 'classfeature' || i.data.featType.value === 'archetype' || (i.data.featType.value === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 10)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 11&& (i.data.featType.value === 'classfeature' || i.data.featType.value === 'archetype' || (i.data.featType.value === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 11)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 12&& (i.data.featType.value === 'classfeature' || i.data.featType.value === 'archetype' || (i.data.featType.value === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 12)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 13&& (i.data.featType.value === 'classfeature' || i.data.featType.value === 'archetype' || (i.data.featType.value === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 13)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 14&& (i.data.featType.value === 'classfeature' || i.data.featType.value === 'archetype' || (i.data.featType.value === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 14)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 15&& (i.data.featType.value === 'classfeature' || i.data.featType.value === 'archetype' || (i.data.featType.value === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 15)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 16&& (i.data.featType.value === 'classfeature' || i.data.featType.value === 'archetype' || (i.data.featType.value === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 16)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 17&& (i.data.featType.value === 'classfeature' || i.data.featType.value === 'archetype' || (i.data.featType.value === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 17)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 18&& (i.data.featType.value === 'classfeature' || i.data.featType.value === 'archetype' || (i.data.featType.value === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 18)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 19&& (i.data.featType.value === 'classfeature' || i.data.featType.value === 'archetype' || (i.data.featType.value === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 19)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 20&& (i.data.featType.value === 'classfeature' || i.data.featType.value === 'archetype' || (i.data.featType.value === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 20)', '') || '').join('\n') ) +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 1&& (i.data.category === 'classfeature' || i.data.category === 'archetype' || (i.data.category === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 1)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 2&& (i.data.category === 'classfeature' || i.data.category === 'archetype' || (i.data.category === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 2)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 3&& (i.data.category === 'classfeature' || i.data.category === 'archetype' || (i.data.category === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 3)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 4&& (i.data.category === 'classfeature' || i.data.category === 'archetype' || (i.data.category === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 4)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 5&& (i.data.category === 'classfeature' || i.data.category === 'archetype' || (i.data.category === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 5)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 6&& (i.data.category === 'classfeature' || i.data.category === 'archetype' || (i.data.category === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 6)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 7&& (i.data.category === 'classfeature' || i.data.category === 'archetype' || (i.data.category === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 7)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 8&& (i.data.category === 'classfeature' || i.data.category === 'archetype' || (i.data.category === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 8)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 9&& (i.data.category === 'classfeature' || i.data.category === 'archetype' || (i.data.category === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 9)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 10&& (i.data.category === 'classfeature' || i.data.category === 'archetype' || (i.data.category === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 10)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 11&& (i.data.category === 'classfeature' || i.data.category === 'archetype' || (i.data.category === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 11)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 12&& (i.data.category === 'classfeature' || i.data.category === 'archetype' || (i.data.category === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 12)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 13&& (i.data.category === 'classfeature' || i.data.category === 'archetype' || (i.data.category === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 13)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 14&& (i.data.category === 'classfeature' || i.data.category === 'archetype' || (i.data.category === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 14)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 15&& (i.data.category === 'classfeature' || i.data.category === 'archetype' || (i.data.category === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 15)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 16&& (i.data.category === 'classfeature' || i.data.category === 'archetype' || (i.data.category === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 16)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 17&& (i.data.category === 'classfeature' || i.data.category === 'archetype' || (i.data.category === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 17)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 18&& (i.data.category === 'classfeature' || i.data.category === 'archetype' || (i.data.category === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 18)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 19&& (i.data.category === 'classfeature' || i.data.category === 'archetype' || (i.data.category === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 19)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 20&& (i.data.category === 'classfeature' || i.data.category === 'archetype' || (i.data.category === 'class' && i.data.location)) ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 20)', '') || '').join('\n') ) ].filter(x => String(x)).join('\n') }, { "pdf": "BonusFeats", "foundry": [ -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 1 && i.data.location === '' && i.data.featType.value !== 'ancestryfeature' && i.data.featType.value !== 'classfeature' && i.data.featType.value !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 1)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 2 && i.data.location === '' && i.data.featType.value !== 'ancestryfeature' && i.data.featType.value !== 'classfeature' && i.data.featType.value !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 2)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 3 && i.data.location === '' && i.data.featType.value !== 'ancestryfeature' && i.data.featType.value !== 'classfeature' && i.data.featType.value !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 3)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 4 && i.data.location === '' && i.data.featType.value !== 'ancestryfeature' && i.data.featType.value !== 'classfeature' && i.data.featType.value !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 4)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 5 && i.data.location === '' && i.data.featType.value !== 'ancestryfeature' && i.data.featType.value !== 'classfeature' && i.data.featType.value !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 5)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 6 && i.data.location === '' && i.data.featType.value !== 'ancestryfeature' && i.data.featType.value !== 'classfeature' && i.data.featType.value !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 6)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 7 && i.data.location === '' && i.data.featType.value !== 'ancestryfeature' && i.data.featType.value !== 'classfeature' && i.data.featType.value !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 7)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 8 && i.data.location === '' && i.data.featType.value !== 'ancestryfeature' && i.data.featType.value !== 'classfeature' && i.data.featType.value !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 8)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 9 && i.data.location === '' && i.data.featType.value !== 'ancestryfeature' && i.data.featType.value !== 'classfeature' && i.data.featType.value !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 9)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 10 && i.data.location === '' && i.data.featType.value !== 'ancestryfeature' && i.data.featType.value !== 'classfeature' && i.data.featType.value !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 10)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 11 && i.data.location === '' && i.data.featType.value !== 'ancestryfeature' && i.data.featType.value !== 'classfeature' && i.data.featType.value !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 11)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 12 && i.data.location === '' && i.data.featType.value !== 'ancestryfeature' && i.data.featType.value !== 'classfeature' && i.data.featType.value !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 12)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 13 && i.data.location === '' && i.data.featType.value !== 'ancestryfeature' && i.data.featType.value !== 'classfeature' && i.data.featType.value !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 13)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 14 && i.data.location === '' && i.data.featType.value !== 'ancestryfeature' && i.data.featType.value !== 'classfeature' && i.data.featType.value !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 14)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 15 && i.data.location === '' && i.data.featType.value !== 'ancestryfeature' && i.data.featType.value !== 'classfeature' && i.data.featType.value !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 15)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 16 && i.data.location === '' && i.data.featType.value !== 'ancestryfeature' && i.data.featType.value !== 'classfeature' && i.data.featType.value !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 16)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 17 && i.data.location === '' && i.data.featType.value !== 'ancestryfeature' && i.data.featType.value !== 'classfeature' && i.data.featType.value !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 17)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 18 && i.data.location === '' && i.data.featType.value !== 'ancestryfeature' && i.data.featType.value !== 'classfeature' && i.data.featType.value !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 18)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 19 && i.data.location === '' && i.data.featType.value !== 'ancestryfeature' && i.data.featType.value !== 'classfeature' && i.data.featType.value !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 19)', '') || '').join('\n') ) , -(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 20 && i.data.location === '' && i.data.featType.value !== 'ancestryfeature' && i.data.featType.value !== 'classfeature' && i.data.featType.value !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 20)', '') || '').join('\n') ) +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 1 && i.data.location === '' && i.data.category !== 'ancestryfeature' && i.data.category !== 'classfeature' && i.data.category !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 1)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 2 && i.data.location === '' && i.data.category !== 'ancestryfeature' && i.data.category !== 'classfeature' && i.data.category !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 2)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 3 && i.data.location === '' && i.data.category !== 'ancestryfeature' && i.data.category !== 'classfeature' && i.data.category !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 3)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 4 && i.data.location === '' && i.data.category !== 'ancestryfeature' && i.data.category !== 'classfeature' && i.data.category !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 4)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 5 && i.data.location === '' && i.data.category !== 'ancestryfeature' && i.data.category !== 'classfeature' && i.data.category !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 5)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 6 && i.data.location === '' && i.data.category !== 'ancestryfeature' && i.data.category !== 'classfeature' && i.data.category !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 6)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 7 && i.data.location === '' && i.data.category !== 'ancestryfeature' && i.data.category !== 'classfeature' && i.data.category !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 7)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 8 && i.data.location === '' && i.data.category !== 'ancestryfeature' && i.data.category !== 'classfeature' && i.data.category !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 8)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 9 && i.data.location === '' && i.data.category !== 'ancestryfeature' && i.data.category !== 'classfeature' && i.data.category !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 9)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 10 && i.data.location === '' && i.data.category !== 'ancestryfeature' && i.data.category !== 'classfeature' && i.data.category !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 10)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 11 && i.data.location === '' && i.data.category !== 'ancestryfeature' && i.data.category !== 'classfeature' && i.data.category !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 11)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 12 && i.data.location === '' && i.data.category !== 'ancestryfeature' && i.data.category !== 'classfeature' && i.data.category !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 12)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 13 && i.data.location === '' && i.data.category !== 'ancestryfeature' && i.data.category !== 'classfeature' && i.data.category !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 13)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 14 && i.data.location === '' && i.data.category !== 'ancestryfeature' && i.data.category !== 'classfeature' && i.data.category !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 14)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 15 && i.data.location === '' && i.data.category !== 'ancestryfeature' && i.data.category !== 'classfeature' && i.data.category !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 15)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 16 && i.data.location === '' && i.data.category !== 'ancestryfeature' && i.data.category !== 'classfeature' && i.data.category !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 16)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 17 && i.data.location === '' && i.data.category !== 'ancestryfeature' && i.data.category !== 'classfeature' && i.data.category !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 17)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 18 && i.data.location === '' && i.data.category !== 'ancestryfeature' && i.data.category !== 'classfeature' && i.data.category !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 18)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 19 && i.data.location === '' && i.data.category !== 'ancestryfeature' && i.data.category !== 'classfeature' && i.data.category !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 19)', '') || '').join('\n') ) , +(@items._source.filter(i => i.type === 'feat' && i.data.level.value === 20 && i.data.location === '' && i.data.category !== 'ancestryfeature' && i.data.category !== 'classfeature' && i.data.category !== 'heritage' ).map(i =>i.data.level.value +': '+ i.name.replace('(Level 20)', '') || '').join('\n') ) ].filter(x => String(x)).join('\n') }, /*---------------------------INVENTORY-----------------------------*/