Module:GameData/doc: Difference between revisions

Retrieve fully-generated attack descriptions
(Fix Alt. Magic spell IDs (in a less than elegant way))
(Retrieve fully-generated attack descriptions)
Line 89: Line 89:
                     const newData = structuredClone(entity);
                     const newData = structuredClone(entity);
                     newData.forEach((i) => {
                     newData.forEach((i) => {
                        i.id = ns + ':' + i.id;
                         i.spellBook = 'altMagic';
                         i.spellBook = 'altMagic';
                     });
                     });
                     return newData;
                     return newData;
                }
            },
            attacks: function(ns, entityType, entity) {
                if (entityType !== 'attacks') {
                    return entity;
                }
                else {
                    entity.forEach((attDef) => {
                        const nsAttID = ns + ':' + attDef.id;
                        const att = game.specialAttacks.getObjectByID(nsAttID);
                        attDef.description = att.description;
                    });
                    return entity;
                 }
                 }
             }
             }
Line 189: Line 201:
     }
     }
     transformDataNode(ns, categoryName, parentNode, nodeKey) {
     transformDataNode(ns, categoryName, parentNode, nodeKey) {
         const dataNode = parentNode[nodeKey];
         let dataNode = parentNode[nodeKey];
         const transformFunc = this.dataPropTransforms[nodeKey];
         const transformFunc = this.dataPropTransforms[nodeKey];
         if (transformFunc !== undefined) {
         if (transformFunc !== undefined) {
             // A transformation function is defined for this node
             // A transformation function is defined for this node
             parentNode[nodeKey] = transformFunc(ns, categoryName, dataNode);
             parentNode[nodeKey] = transformFunc(ns, categoryName, dataNode);
            dataNode = parentNode[nodeKey];
         }
         }
         else if (Array.isArray(dataNode)) {
         if (Array.isArray(dataNode)) {
             // Recursive call to ensure all data is transformed, regardless of its depth
             // Recursive call to ensure all data is transformed, regardless of its depth
             dataNode.forEach((entity, idx) => this.transformDataNode(ns, categoryName, dataNode, idx));
             dataNode.forEach((entity, idx) => this.transformDataNode(ns, categoryName, dataNode, idx));