From b8a03245ea5baf0a02851bbe01c43f37ad24c7db Mon Sep 17 00:00:00 2001 From: Stefan Zermatten Date: Tue, 5 Jul 2022 15:40:55 +0200 Subject: [PATCH] Level up dialog now working --- .../methods/getSlotFillFilter.js | 10 +++------- app/imports/server/publications/library.js | 2 ++ .../ui/creature/slots/LevelUpDialog.vue | 9 +-------- .../ui/properties/viewers/ClassViewer.vue | 19 ++++++++++++++++--- 4 files changed, 22 insertions(+), 18 deletions(-) diff --git a/app/imports/api/creature/creatureProperties/methods/getSlotFillFilter.js b/app/imports/api/creature/creatureProperties/methods/getSlotFillFilter.js index 177225b0..21df0bdb 100644 --- a/app/imports/api/creature/creatureProperties/methods/getSlotFillFilter.js +++ b/app/imports/api/creature/creatureProperties/methods/getSlotFillFilter.js @@ -27,14 +27,10 @@ export default function getSlotFillFilter({slot, libraryIds}){ filter.variableName = slot.variableName; // Only search for levels the class needs - const levels = []; if (slot.missingLevels && slot.missingLevels.length) { - levels.push(...slot.missingLevels); - } else if (slot.level) { - levels.push(slot.level); - } - if (levels.length) { - filter.level = {$or: levels}; + filter.level = {$in: slot.missingLevels}; + } else { + filter.level = (slot.level || 0) + 1; } } let tagsOr = []; diff --git a/app/imports/server/publications/library.js b/app/imports/server/publications/library.js index 00a45a5b..ebfdc936 100644 --- a/app/imports/server/publications/library.js +++ b/app/imports/server/publications/library.js @@ -12,6 +12,8 @@ const LIBRARY_NODE_TREE_FIELDS = { order: 1, parent: 1, ancestors: 1, + // SlotFillers + slotQuantityFilled: 1, // Effect operation: 1, targetTags: 1, diff --git a/app/imports/ui/creature/slots/LevelUpDialog.vue b/app/imports/ui/creature/slots/LevelUpDialog.vue index 4eba1043..7a09eb1b 100644 --- a/app/imports/ui/creature/slots/LevelUpDialog.vue +++ b/app/imports/ui/creature/slots/LevelUpDialog.vue @@ -26,7 +26,6 @@ :string="model.description" />

- {{ slotPropertyTypeName }} with tags: - import propertyViewerMixin from '/imports/ui/properties/viewers/shared/propertyViewerMixin.js'; +import insertPropertyFromLibraryNode from '/imports/api/creature/creatureProperties/methods/insertPropertyFromLibraryNode.js'; export default { mixins: [propertyViewerMixin], @@ -83,13 +84,25 @@ export default { }, methods: { levelUpDialog(){ + let classId = this.model._id; this.$store.commit('pushDialogStack', { component: 'level-up-dialog', elementId: 'level-up-btn', data: { - creatureId: this.creatureId, + creatureId: this.context.creatureId, classId: this.model._id, }, + callback(nodeIds){ + if (!nodeIds || !nodeIds.length) return; + let newPropertyId = insertPropertyFromLibraryNode.call({ + nodeIds, + parentRef: { + 'id': classId, + 'collection': 'creatureProperties', + }, + }); + return `tree-node-${newPropertyId}`; + } }); }, }